第一范文网 - 专业文章范例文档资料分享平台

反演基本问题

来源:用户分享 时间:2025/10/7 10:51:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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 ,当该式范数为欧氏范数时,

σmaxσmin

cond A =

,越大则病态程度越严重

可以使用matlab中的cond函数来判断,用法 c = cond(X);

norm函数也可以,即条件数的第一种定义;

已经在matlab中验证条件数为1e8数量级的病态矩阵,用以上cond()或norm()的方法结果一致。见附录程序一。 反演程序中,cond(K)= 2.6073e+09

2 矩阵除法及线性方程组的解

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=3 3x=6 6\\3=0.5 6/3=2

2.3 常定、超定与欠定方程组

矩阵除法可以用来方便地解线性方程组。例如要求下列方程组的解x=[ x1; x2; x3]。 6 x1 + 3 x2 + 4 x3 = 3 -2 x1 + 5 x2 + 7 x3 = -4 8 x1 - 4 x2 - 3 x3 = -7

此式可写成矩阵形式 Ax=B,求解的MATLAB程序为 A = [6,3,4;-2,5,7;8,-4,-;B = [3;-4;-;x = A\\B 得 x = 0.6000 7.0000 -5.4000

MATLAB中的除法还可以用来解方程数不等于未知数个数的情况。比如再加上一个方程 x1+5 x2 -7x3 = 9 这时系数矩阵A1的阶数为4′3。不难看出A1的行数nA1是方程数,其列数mA1是未知数的个数,nA1>mA1,说明方程组是超定的,方程无解。照样列MATLAB程序

A1 = [6,3,4;-2,5,7;8,-4,-3;1,5,-;B1 = [3;-4;-7;;x1 = A1\\B1 答案为 x1 = -0.1564 1.0095 -0.6952

它并未显示出错信息,却给出了解,这怎么可能呢?实际上,这时MATLAB给出的是最小二乘解。把这个x1代入方程组,肯定任何一个方程都不满足,都可得出1个误差,把这4个误差的平方相加开方,称为均方差。解x1保证比其他任何解所得的均方差都小。

MATLAB中的除法还可以用来解方程数少于未知数个数的情况,A1矩阵的nA1

3 为什么不直接得x=A+b?

这个问题实际上是问为什么不用matlab中的A\\b?反演遇到的一般为超定方程,从2.3节超定方程组分析看出,用matlab直接得出的解使残差r=||b-Ax||最小;当遇到A为严重病态时,由1.1节,r最小仍可能得到一个与真值相差很大的近似解。

4 信噪比的定义

? )的标准差[3]。 (1)SNR定义为第一个回波的幅度值除以误差矢量r(r?b?Ax(2)SNR定义为采集回波串获取的首个数据y(t1) 除以测量误差的标准差[4]。

n?1m?SNR?y(t1)/y(t)?f(T)exp(?t/T)??i?2ji2j?

mi?1?j?1?2(3)\程序提出,信噪比定义为第三个回波幅度除以噪声的标准差。

5 回波串累加法提高信噪比

由于 NMR 信号强度随着累加次数?增加?倍,噪声是随机的,它只能增加因此?次累加后,信噪比 SNR( signal-to-noise)增加?倍。?倍。当我们把数据累加 100 次,

SNR就增加了 10 倍。这也是目前运用最广的提高核磁共振回波串信噪比的方法。 将多次测量的回波串信号进行累加,得到适合的信噪比 。另外,对于长T2分量,由于其衰减得很慢,单次测量有时会漏掉这类信息,增加回波串个数,经过多次累加后,增强了对衰减慢的长T2分量的分辨能力。

参考文献

[1] 百度百科-病态矩阵http://baike.http://www.china-audit.com//view/1728471.htm

[2] 王丽丽. 低场脉冲 NMR 横向弛豫信号解谱算法研究[D]. 中国科学院研究生院 (电工研究所), 2006.

[3] 王为民, 李培. 核磁共振驰豫信号的多指数反演[J]. 中国科学: A 辑, 2001, 31(8): 730-736.

[4] 陈圆. 核磁测井 T_2 谱分布反演算法研究[D]. 华中科技大学, 2009.

附录

程序一

>> A=[1.2969 0.8648;0.2161 0.1441] A =

1.2969 0.8648 0.2161 0.1441

>> b=[0.8642;0.1440] b =

0.8642 0.1440

>> cond(A)

ans =

2.4973e+08

>> det(A)

ans =

1.0000e-08

>> norm(A)

ans =

1.5803

>> lamda=eig(A)

lamda =

1.4410 0.0000

>> inv(A)

ans =

1.0e+08 *

0.1441 -0.8648 -0.2161 1.2969

>> norm(inv(A))*norm(A)

ans =

2.4973e+08

>> x=inv(A)*b x =

2.0000 -2.0000

>> x1=A\\b x1 =

2.0000 -2.0000

搜索更多关于: 反演基本问题 的文档
反演基本问题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c18e2l75tjq1xkfw974r8_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top