24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2167  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

eudemonia333

新虫 (初入文坛)

[求助] 病态矩阵求解

病态线性方程组阵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
  • 2013-04-22 20:58:46, 16.5 K
  • 附件 2 : B.xls
  • 2013-04-22 20:58:49, 13.5 K

» 收录本帖的淘帖专辑推荐

精彩

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chunbendan

铜虫 (初入文坛)

【答案】应助回帖

寒,怎么变成表情了哦。 就是一个:加一个)
6楼2013-04-27 11:55:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

chunbendan

铜虫 (初入文坛)

【答案】应助回帖


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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eudemonia333

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by chunbendan at 2013-04-26 09:27:39
病态矩阵求解需要特别注意。matlab里直接用inv(A)*B肯定是不行的,误差超级大。用A\B不知道有没有内部进行处理,也不建议用。建议自己写算法,奇异值修正或者是迭代法都可以。我这里写两个简单的迭代法程序供楼主参 ...

谢谢!
上面两个程序不太适应我的矩阵,计算完出现了NaN,Warning: Matrix is singular to working precision. 直接采用inv没有上面两个错误。
3楼2013-04-26 16:49:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chunbendan

铜虫 (初入文坛)

【答案】应助回帖

引用回帖:
3楼: Originally posted by eudemonia333 at 2013-04-26 16:49:33
谢谢!
上面两个程序不太适应我的矩阵,计算完出现了NaN,Warning: Matrix is singular to working precision. 直接采用inv没有上面两个错误。...

我没用你的数据测试,应该修改一下能用,或者用列主元消去法也可以。我明天帮你弄一下
用inv处理奇异矩阵不行的

[ 发自手机版 http://muchong.com/3g ]
4楼2013-04-26 23:24:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 297,工科调剂?河南农业大学本科 +14 河南农业大学-能 2026-04-14 14/700 2026-04-16 14:41 by dingyanbo1
[考研] 289 分105500药学专硕求调剂(找B区学校) +4 白云123456789 2026-04-13 4/200 2026-04-16 00:18 by 粉沁若尘
[考研] 310求调剂 +16 666真好 2026-04-11 18/900 2026-04-15 13:28 by 黑科技矿业
[考研] 211本科材料化工求调剂 +19 YHLAH 2026-04-11 23/1150 2026-04-14 22:25 by fenglj492
[考研] 调剂 +12 月@163.com 2026-04-11 12/600 2026-04-14 15:37 by zs92450
[考研] 245求调剂 +6 冰糖橘?汽水 2026-04-13 10/500 2026-04-14 10:49 by jyl0317
[考研] 人工智能320调剂08工类还有机会吗 +18 振—TZ 2026-04-10 19/950 2026-04-14 10:34 by screening
[考研] 考研英一数一338分 +9 长江大学东校区 2026-04-13 10/500 2026-04-14 00:41 by 王珺璞
[考研] 2026硕士调剂_能动_河南农业大学 +4 河南农业大学-能 2026-04-12 4/200 2026-04-13 22:01 by bljnqdcc
[考研] 303求调剂 +14 SereinQ 2026-04-10 15/750 2026-04-11 20:43 by 蓝云思雨
[考研] 343求调剂 +9 王国帅 2026-04-10 9/450 2026-04-11 20:31 by dongdian1
[考研] 085600材料与化工329分求调剂 +16 叶zilin 2026-04-10 16/800 2026-04-11 11:04 by may_新宇
[考研] 0854调剂 +5 音像店听花鼓戏 2026-04-10 5/250 2026-04-11 10:49 by qingpingzhu
[考研] 297求调剂 +9 Kwgyz 2026-04-09 9/450 2026-04-11 10:09 by zhq0425
[考研] 广东省 085601 329分求调剂 +14 Eddieddd 2026-04-10 14/700 2026-04-11 09:58 by bljnqdcc
[考研] 中药学调剂 初试324 +4 洋甘菊、 2026-04-10 6/300 2026-04-11 09:41 by gong120082
[考研] 085402通信工程调剂,有4项学科竞赛国奖(电赛国二),硕士研究生调剂自荐信。 +5 m永o不v言o弃m 2026-04-09 5/250 2026-04-11 09:33 by zhq0425
[考研] 263能源动力专硕求调剂 +3 加大号饭盒袋 2026-04-10 3/150 2026-04-10 22:23 by 286640313
[考研] 298求调剂 +13 钉叮咚冬瓜 2026-04-09 13/650 2026-04-10 15:49 by jiajinhpu
[考研] 337求调剂 +4 Gky09300550, 2026-04-09 4/200 2026-04-09 17:18 by 帕尔马拉特
信息提示
请填处理意见