利用C程序编写格拉姆-施密特正交化的过程.doc_第1页
利用C程序编写格拉姆-施密特正交化的过程.doc_第2页
利用C程序编写格拉姆-施密特正交化的过程.doc_第3页
利用C程序编写格拉姆-施密特正交化的过程.doc_第4页
利用C程序编写格拉姆-施密特正交化的过程.doc_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用C程序编写格拉姆-施密特正交化的过程格拉姆-施密特正交化 在线性代数中,如果内积空间上的一组向量能够组成一个子空间,那么这一组向量就称为这个子空间的一个基。GramSchmidt正交化提供了一种方法,能够通过这一子空间上的一个基得出子空间的一个正交基,并可进一步求出对应的标准正交基。这种正交化方法以Jrgen Pedersen Gram和Erhard Schmidt命名,然而比他们更早的拉普拉斯(Laplace)和柯西(Cauchy)已经发现了这一方法。在李群分解中,这种方法被推广为岩泽分解(Iwasawa decomposition)。在数值计算中,GramSchmidt正交化是数值不稳定的,计算中累积的舍入误差会使最终结果的正交性变得很差。因此在实际应用中通常使用豪斯霍尔德变换或Givens旋转进行正交化。记法 :维数为n的内积空间 :中的元素,可以是向量、函数,等等 :与的内积 :、张成的子空间 :在上的投影基本思想Gram-Schmidt正交化的基本想法,是利用投影原理在已有正交基的基础上构造一个新的正交基。设。是上的维子空间,其标准正交基为,且不在上。由投影原理知,与其在上的投影之差是正交于子空间的,亦即正交于的正交基。因此只要将单位化,即那么就是在上扩展的子空间的标准正交基。根据上述分析,对于向量组张成的空间(),只要从其中一个向量(不妨设为)所张成的一维子空间开始(注意到就是的正交基),重复上述扩展构造正交基的过程,就能够得到的一组正交基。这就是Gram-Schmidt正交化。算法首先需要确定已有基底向量的顺序,不妨设为。Gram-Schmidt正交化的过程如下:这样就得到上的一组正交基,以及相应的标准正交基。例考察如下欧几里得空间Rn中向量的集合,欧氏空间上内积的定义为 =bTa:下面作GramSchmidt正交化,以得到一组正交向量:下面验证向量与的正交性:将这些向量单位化:于是就是的一组标准正交基底。不同的形式随着内积空间上内积的定义以及构成内积空间的元素的不同,Gram-Schmidt正交化也表现出不同的形式。例如,在实向量空间上,内积定义为:在复向量空间上,内积定义为:函数之间的内积则定义为:与之对应,相应的GramSchmidt正交化就具有不同的形式。利用C程序编写格拉姆-施密特正交化的过程C语言程序如下:#include #include #define N 3 /N表示基的个数#define M 4 /M表示维数float zj(float a,float b) /这是求内积函数int i;float k=0;for(i=0;iM;i+)k+=ai*bi;return k;main()float pNM,bNM,kN;int i,j,m;for(i=0;iN;i+) printf(请输入第%d个向量:n,i+1); for(j=0;jM;j+) scanf(%f,pi+j);for(i=0;iN*M;i+)b0i=p0i;/下面是正交化过程for(i=1;iN;i+) /i表示第i个向量 for(m=0;mi;m+) km=zj(bi,bm)/zj(bm,bm); /km表示正交化过程中向量前的系数 for(j=0;jM;j+) /j表示每个向量中的坐标 for(m=0;mi;m+) bij-=km*bmj; printf(正交化结果为:n); for(i=0;iN;i+) printf(第%d个向量是:n,i+1); for(j=0;jM;j+) printf(%g ,bij); putchar(n);/下面是单位化过程 for(i=0;iN;i+) for(j=0;jM;j+) pij=bij/sqrt(zj(bi,bi); printf(n单位化结果为:n); for(i=0;iN;i+) printf(第%d个向量是:n,i+1); for(j=0;jM;j+) printf(%g ,pij); putchar(n);实验结果如下:实践课总结: 在这次实践课的课题讨论中,我所在的这个组个个都发挥自己得能动性。都积极主动。拿到课题后,我们马上讨论分工,针对自己所分到得板块去查阅资料,然后再次讨论总结,最后每个人都提出问题共同解决。 当然,在整个过程中遇到问题也是必然的。例如,由于对C语言不熟练而导致在程序设计时遇到种种困难,多而杂得程序设计在排版上不能让读者一目了然,感觉有点凌乱,并且在第一次试讲过程中老师和细心得同学都提出了几个疑议。下来后我们再次讨论。针对那些问题并进行机上调试。结果得出,我们得设计可能繁杂冗长了些,但没有错,因为输入书上得例子后可以得到正确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论