您好,欢迎访问三七文档
1病态矩阵1.1概念----与奇异阵的区别病态矩阵[1]是指求解方程组时对数据的小扰动很敏感的矩阵。解线性方程组Ax=b时,若对于系数矩阵A及右端项b的小扰动δA、δb,方程组(A+δA)χ=b+δb的解χ与原方程组Ax=b的解差别很大,则称矩阵A为病态矩阵。方程组的近似解χ一般都不可能恰好使剩余r=b-Aχ为零,这时χ亦可看作小扰动问题Aχ=b-r(即δA=0,δb=-r)的解,所以当A为病态时,即使剩余很小,仍可能得到一个与真解相差很大的近似解。奇异阵就是行列式为零的矩阵。1.2判断A的最小奇异值可以衡量A与奇异值矩阵集合相距有多远[2]。【区别奇异值与特征值:方阵才有特征值】条件数cond(A)=||A||∗||A−1||,当该式范数为欧氏范数时,cond(A)=σmaxσmin,越大则病态程度越严重可以使用matlab中的cond函数来判断,用法c=cond(X);norm函数也可以,即条件数的第一种定义;已经在matlab中验证条件数为1e8数量级的病态矩阵,用以上cond()或norm()的方法结果一致。见附录程序一。反演程序中,cond(K)=2.6073e+092矩阵除法及线性方程组的解2.1逆矩阵inv()在线性代数中,没有除法,只有逆矩阵。矩阵除法是MATLAB从逆矩阵的概念引申来的。先介绍逆矩阵的定义,对于任意n´n阶方阵A,如果能找到一个同阶的方阵V,使AV=I其中,I为n阶的单位矩阵eye(n)。则V就是A的逆阵。数学符号表示为V=A-1逆阵V存在的条件是A的行列式det(A)不等于0,V的最古典的求法为高斯消去法,可参阅线性代数书。MATLAB已把它做成了内部函数inv,输入V=inv(A)就可得到A的逆矩阵V。如果det(A)等于或很接近于零,MATLAB会显示出出错或警告信息:“A矩阵病态(ill-conditioned),结果精度不可靠”。【病态矩阵:由于计算机软硬件的原因(精度、舍入误差什么的)对矩阵求解造成很大的误差】注意:1.求解方程组时很少直接采用inv(),而是用左除,无论是执行时间还是数值精度上都要优于直接求逆。2.inv(A)中A必须为方阵,方阵才具有逆矩阵。2.2左除\和右除/现在来看方程D*X=B,设X为未知矩阵,在等式两端同时左乘以inv(D),即inv(D)*D*X=inv(D)*B等式左端inv(D)*D=I,而I*X=X,因此,上式成为X=inv(D)*B=D\B把D的逆阵左乘以B,MATLAB就记作D\,称之为“左除”。从D*X=B的阶数检验可知,B与D的行数相等,因此,左除时的阶数检验条件是:两矩阵的行数必须相等。如果原始方程的未知矩阵在左而系数矩阵在右,即X*D=B则按上述同样的方法可以写出X=B*inv(D)=B/D把D的逆阵右乘以B,记作/D,称之为“右除”。同理,右除时的阶数检验条件是:两矩阵的列数必须相等。6x=33x=66\3=0.56/3=22.3常定、超定与欠定方程组矩阵除法可以用来方便地解线性方程组。例如要求下列方程组的解x=[x1;x2;x3]。6x1+3x2+4x3=3-2x1+5x2+7x3=-48x1-4x2-3x3=-7此式可写成矩阵形式Ax=B,求解的MATLAB程序为A=[6,3,4;-2,5,7;8,-4,-;B=[3;-4;-;x=A\B得x=0.60007.0000-5.4000MATLAB中的除法还可以用来解方程数不等于未知数个数的情况。比如再加上一个方程x1+5x2-7x3=9这时系数矩阵A1的阶数为4´3。不难看出A1的行数nA1是方程数,其列数mA1是未知数的个数,nA1mA1,说明方程组是超定的,方程无解。照样列MATLAB程序A1=[6,3,4;-2,5,7;8,-4,-3;1,5,-;B1=[3;-4;-7;;x1=A1\B1答案为x1=-0.15641.0095-0.6952它并未显示出错信息,却给出了解,这怎么可能呢?实际上,这时MATLAB给出的是最小二乘解。把这个x1代入方程组,肯定任何一个方程都不满足,都可得出1个误差,把这4个误差的平方相加开方,称为均方差。解x1保证比其他任何解所得的均方差都小。MATLAB中的除法还可以用来解方程数少于未知数个数的情况,A1矩阵的nA1mA1,说明方程组是不定的,它有无穷个解。此时,仍然可用除法符号来求出解。这个解是满足方程的,但它不是唯一解。它是令x1中某个或某些元素为0的一个特殊解。3为什么不直接得x=A+b?这个问题实际上是问为什么不用matlab中的A\b?反演遇到的一般为超定方程,从2.3节超定方程组分析看出,用matlab直接得出的解使残差r=||b-Ax||最小;当遇到A为严重病态时,由1.1节,r最小仍可能得到一个与真值相差很大的近似解。4信噪比的定义(1)SNR定义为第一个回波的幅度值除以误差矢量r(ˆrbAx)的标准差[3]。(2)SNR定义为采集回波串获取的首个数据1()yt除以测量误差的标准差[4]。2122111()/()()exp(/)mnijijijSNRytytfTtTm(3)CAL_0526_2D09_band3程序提出,信噪比定义为第三个回波幅度除以噪声的标准差。5回波串累加法提高信噪比由于NMR信号强度随着累加次数增加倍,噪声是随机的,它只能增加倍。因此次累加后,信噪比SNR(signal-to-noise)增加倍。当我们把数据累加100次,SNR就增加了10倍。这也是目前运用最广的提高核磁共振回波串信噪比的方法。将多次测量的回波串信号进行累加,得到适合的信噪比。另外,对于长T2分量,由于其衰减得很慢,单次测量有时会漏掉这类信息,增加回波串个数,经过多次累加后,增强了对衰减慢的长T2分量的分辨能力。参考文献[1]百度百科-病态矩阵[2]王丽丽.低场脉冲NMR横向弛豫信号解谱算法研究[D].中国科学院研究生院(电工研究所),2006.[3]王为民,李培.核磁共振驰豫信号的多指数反演[J].中国科学:A辑,2001,31(8):730-736.[4]陈圆.核磁测井T_2谱分布反演算法研究[D].华中科技大学,2009.附录程序一A=[1.29690.8648;0.21610.1441]A=1.29690.86480.21610.1441b=[0.8642;0.1440]b=0.86420.1440cond(A)ans=2.4973e+08det(A)ans=1.0000e-08norm(A)ans=1.5803lamda=eig(A)lamda=1.44100.0000inv(A)ans=1.0e+08*0.1441-0.8648-0.21611.2969norm(inv(A))*norm(A)ans=2.4973e+08x=inv(A)*bx=2.0000-2.0000x1=A\bx1=2.0000-2.0000
本文标题:反演基本问题
链接地址:https://www.777doc.com/doc-2566348 .html