矩阵求逆
一个76阶的矩阵,对角线上都有元素,非对角线很少一部分元素,请问这样的矩阵求逆会不会有问题?因为基于此矩阵求解的最终结果远远大于正常值。求教各位高人是什么原因··· 你的这个问题更像是一个数值分析的问题,似乎和matlab关系不大,建议你看看数值分析相关的书籍 可能和算法选择有关,选择合适的算法应该可以解决 2# qibbxxt这个问题还是没有到数值分析上吧(没求方程组的值)?就是一个矩阵求逆。
楼主用det(a)看你的矩阵的行列式det(a)是否等于零。
不等于零那结果就没问题的。
等于零那这个矩阵就没有逆阵的。 本帖最后由 bainhome 于 2010-10-18 17:10 编辑
楼主问了个空灵飘逸,充满禅意的好问题!如羚羊挂角,无迹可寻!使人赞叹不已。
什么叫拥抱自然?这就是!这才是真正的原生态问题!
回楼上:一般主对角占优矩阵只要不线性相关,不可逆情况很少出现,76阶可能性更小,依我长期在论坛搅和新人的经验,八成是在command windows中求了个逆,结果本来该是零的地方出现了a×10^-n这样的截断误差,MATLAB偏偏不识趣——把这个项提取并放在矩阵最前面作为系数乘,而楼主又选择性忽视,只看里面的数据,自然“远远大于”那个“正确结果”,潇洒飘逸地一问,娱乐一下而已。 你用增广矩阵试试 敢问增广矩阵怎么试···? :'( det(a)=2.458218086792935e-272,应该是零了,那该怎么修改矩阵呢?这个矩阵形式不能变
4# chenzhian 呃···那该怎么办呢?结果是它的行列式几乎是零,有解决办法吗?
5# bainhome 也来一个“空灵飘逸,充满禅意”的回答,
1、教学目的和要求1掌握矩阵可逆的定义和可逆的充要条件;
2、与增广矩阵没关系,矩阵可逆首先要求是方阵,若不是方阵,才用到增广矩阵; 本帖最后由 bainhome 于 2010-10-18 18:34 编辑
这个行列式结果说明该矩阵线性相关,基本可以肯定要不就是你输入值错了,要不就是该矩阵错了,如果矩阵本身有问题,可以用pinv来求伪逆,但我想你用不上这个结果。
两个建议:
1.假如是在MATLAB中得到的,请没事不要用符号矩阵去算76阶的逆;
2.像我暗示的那样,你不把矩阵数据拿出来,别人无法给出任何建议——至少我没这个本事。瞎猜我也不愿意干。
最好能先检查一下你的矩阵来源,恐怕问题不会是在求逆上,inv用了二十来年了,没理由为一个70阶的矩阵就破例算错。 本帖最后由 bainhome 于 2010-10-18 18:42 编辑
另外可用rref化成行最简看看最后有几行零,确定其线性相关性 bainhome老师说的有道理,你最好把矩阵贴上来看下。
我们也试下啊。
“基于此矩阵求解的最终结果远远大于正常值”
不知道是否楼主在求方程组的解。
如果是,那可能就是病态线性方程组了。 恩,不好意思,没有把矩阵贴出来,矩阵比较大,麻烦大家把文本文件导入matlab后运行下面这段程序,Lg就是我要的矩阵···辛苦大家啦~~
Lgg=load('D:\gaoya_gaotiao.txt');%读取电感参数
k=0;
for i=1:elenum+elenum_t
for j=1:elenum+elenum_t
k=k+1;
Lg(i,j)=Lgg(k);
end
end
for i=1:elenum+elenum_t
for j=1:i
if(i>j)
Lg(i,j)=Lg(j,i);
end
end
end
11# bainhome elenum+elenum_t
是多少啊 本帖最后由 chenzhian 于 2010-10-19 11:11 编辑
14# ganzhouzqh
代码中的elenum+elenum_t应该是等于76吧 。
我求了他的逆,然后用A=inv(Lg)*Lg。在format long的显示格式下看到的是个单位矩阵。
我认为这个结果没有问题。 76,不好意思~~
15# lxx244lxx 就像2#所说,求得的det(Lg)基本上是零,是不是根本就不能求逆?
16# chenzhian 8# 和18# 只看到del(Lg) = 2.4582e-272 很接近于0这个事实,就认为“结果是它的行列式几乎是零”,而有“是不是根本就不能求逆?”的疑问?
而没有看到Lg矩阵中的元素特点:所有的元素都是很小的小数,大都在小数点后第4位才有值!,就算是小数点后第3位有值,如0.009,根据行列式的计算方法,76项这样的小数相乘当然是一个很小的数呢!
不信的话,将对角线的元素抽出来组成对角阵试试,其行列式为1.8138e-274 不等于0,逆矩阵一定存在,但行列式几乎等于0。
经过验证 inv(Lg)*Lg 为单位阵,因此计算结果没有问题。(16#也得出同样结论) 本帖最后由 bainhome 于 2010-10-19 23:07 编辑
没有运行程序,仅从表面判断看的确要不得。
运行程序后发现结果矩阵是一个前面一部分仅存在对角线元素、后面行数据分布较为平均,用rank验证该矩阵为满秩阵,必然可逆。我前一页的推测基本准确,而这一页我没运行程序直接发言,证明是个nonsense,我已经删掉自己的错误发言,楼上两位比我细致严谨得多。
页:
[1]
2