| 查看: 2119 | 回复: 5 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
病态矩阵求解
|
|||
|
病态线性方程组阵Ax=B,A为19*19的矩阵,条件数E11,行列式2.3E90。 (1)是不是这类病态矩阵直接采用A\B或者inv(A)*B结果偏差都比较大?试过用符号解再转换为数值和直接inv(A)*B,发现二者结果误差很小。对此问题比较疑惑。 (2)矩阵较大,不好贴出,A和B均在附件中,如果有其它高精度的求解方法(如tikhonov正则化方法,在网上下载了tikhonov源代码,采用后结果和A\B相比增大了1000倍,不知道是我自己写的调用代码有问题还是其它问题)求大神赐教。 [ Last edited by eudemonia333 on 2013-4-22 at 21:03 ] |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : A.xls
- 附件 2 : B.xls
2013-04-22 20:58:46, 16.5 K
2013-04-22 20:58:49, 13.5 K
» 收录本帖的淘帖专辑推荐
精彩 |
» 猜你喜欢
表哥与省会女结婚,父母去帮带孩子被省会女气回家生重病了
已经有12人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有14人回复
江汉大学解明教授课题组招博士研究生/博士后
已经有3人回复
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有11人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有10人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有11人回复
» 本主题相关价值贴推荐,对您同样有帮助:
大家对病态矩阵是怎么理解的啊
已经有11人回复
跪求 在协方差矩阵非正定情况下,多元正态分布的概率分布函数求解方法!
已经有4人回复
求Matlab高手解决线性方程组的迭代求解问题
已经有17人回复
求大神帮忙解病态线性方程组
已经有5人回复
寻研究反问题的虫友????
已经有22人回复
如何用matlab求解矩阵系数的二阶微分方程
已经有13人回复
向saladin983致敬,也请教问题
已经有6人回复
矩阵相乘,逆向求解,这种方法可行吗?
已经有8人回复
inv函数
已经有3人回复
如何用c++来求解矩阵的相关问题。
已经有12人回复
Catia机械有限元分析到最后出错提示
已经有7人回复
如何得到一个奇异矩阵的线性无关的行号
已经有3人回复
请教一下对某一个矩阵如何求解近似对称轴?
已经有3人回复
大型非对称稀疏矩阵求解
已经有9人回复
【求助】fortran求解矩阵
已经有7人回复
【求助】求解一道有关泡利矩阵的量子力学习题
已经有12人回复
【求助】Riccati传递矩阵法求解临界转速(有部分程序)
已经有5人回复
chunbendan
铜虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 237.9
- 红花: 1
- 帖子: 18
- 在线: 5.5小时
- 虫号: 2251057
- 注册: 2013-01-20
- 性别: GG
- 专业: 计算数学与科学工程计算
6楼2013-04-27 11:55:12
chunbendan
铜虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 237.9
- 红花: 1
- 帖子: 18
- 在线: 5.5小时
- 虫号: 2251057
- 注册: 2013-01-20
- 性别: GG
- 专业: 计算数学与科学工程计算
【答案】应助回帖
★
lovibond: 金币+1, 鼓励新虫应助 2013-04-27 12:12:00
lovibond: 金币+1, 鼓励新虫应助 2013-04-27 12:12:00
|
病态矩阵求解需要特别注意。matlab里直接用inv(A)*B肯定是不行的,误差超级大。用A\B不知道有没有内部进行处理,也不建议用。建议自己写算法,奇异值修正或者是迭代法都可以。我这里写两个简单的迭代法程序供楼主参考: Jacobi迭代的函数文件:XJGJacobi.m function [x1,n]=XJGJacobi(A,b,x0,eps) % [x1,n]=XJGJacobi(A,b,x0,eps)使用JACOBI迭代法进行迭代求解方程A*x=b % A,b 输入量,方程的矩阵和向量 % x0 输入量,迭代初始值 % eps 精度,比如0.0001 % x1 输出,结果 % n 输出,迭代次数 D=diag(diag(A)); B=D\(D-A); n=1; % 初始迭代 x1=B*x0+D\b; while norm(x1-x0,inf)>eps %终止条件 n=n+1; x0=x1; x1=B*x0+D\b; end GAUSS_SEIDIAL迭代的函数文件:XJGGauss.m function [x1,n]=XJGGauss(A,b,x0,eps) % [x1,n]=XJGGauss(A,b,x0,eps) % 本函数使用GAUSS-SEDIAL迭代法进行迭代求解线性方程A*x=b % A,b 方程中的矩阵和向量 % x0 初始迭代值 % eps 精度 % 2011年12月5日 18:47:56 LD=tril(A,0); U=-triu(A,1); B=LD\U; f=LD\b; x1=B*x0+f; n=1; %迭代次数 while norm(x1-x0,inf)>eps %终止条件 n=n+1; x0=x1; x1=B*x0+f; end return %我随便写了A和B,你的矩阵太大了 %用于求解的脚本文件: A=[6,2,1,-2 2,5,0,-2 -2,0,8,5 1,3,2,7]; b=[4;7;-1;0]; x0=zeros(4,1); %初始值 eps=1e-5; %精度 % Jacobi迭代法求解并显示结果 [x1,n]=XJGJacobi(A,b,x0,eps); disp('Jacobi迭代的结果为:') disp(x1) disp('Jacobi迭代的次数为:') disp(n) % GAUSS-SEDIAL迭代法求解并显示结果 [x1,n]=XJGGauss(A,b,x0,eps); disp('Gauss-Sedial迭代的结果为:') disp(x1) disp('Guass-Sedial迭代次数为:') disp(n) |
2楼2013-04-26 09:27:39
3楼2013-04-26 16:49:33
chunbendan
铜虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 237.9
- 红花: 1
- 帖子: 18
- 在线: 5.5小时
- 虫号: 2251057
- 注册: 2013-01-20
- 性别: GG
- 专业: 计算数学与科学工程计算
4楼2013-04-26 23:24:09













回复此楼
就是一个:加一个)