| 查看: 2676 | 回复: 17 | ||
wangjunyahit银虫 (初入文坛)
|
[求助]
求Matlab高手解决线性方程组的迭代求解问题
|
|
|
遇到一个线性方程组Ax=b的求解问题,使用Matlab直接求解但不确定结果是否正确, 想使用迭代解法求解验证结果,但苦于找不到合适的迭代解法和程序,希望各位大神 给予帮助,感激涕零!!! 方程组是这样的: A=[-1.2e-21,1.4e6,1.4e6,-1.4e6,1.3e6; 8.9e-22,-1.4e6,4.9e3,3.8e3,0; 1.8e-22,1.4e3,-1.4e6,4.3e3,0; 4.4e-23,3.2e2,1.2e3,-5.1e6,4.3e3; 5.3e-23,0,0,1.3e3,-2.3e6] b=[0;-1.8e-4;-1.3e-2;-1.5e-2;-4.0e-3] 直接求解如下: x=A\b; x=[ 1.029393177754837e+20 6.565808888911404e-08 2.259822851544940e-08 3.842185487752932e-09 4.113382036189007e-09] rcond(A)=1.694258513618419e-29;矩阵A可逆的条件数估值接近0,矩阵A条件不好,得到的解有误差 希望各位大神 给予帮助,感激涕零!!! ~EZ9ND[(A@F3IUUY9EJVQ4C.jpg [ Last edited by wangjunyahit on 2012-11-24 at 16:10 ] |
» 猜你喜欢
A期刊撤稿
已经有3人回复
职称评审没过,求安慰
已经有34人回复
垃圾破二本职称评审标准
已经有17人回复
回收溶剂求助
已经有6人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
申请26博士
已经有5人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab求解非线性方程组,错误提示怎么解决
已经有5人回复
用不动点迭代求非线性方程组,求得的不是想要的解,怎么办
已经有12人回复
matlab求解非线性方程组,求助!
已经有6人回复
求助!matlab用fsolve函数求解非线性方程组的问题!
已经有19人回复
matlab微分方程组参数拟合,以周为单位求解,汇总后以年为单位进行数值比较
已经有4人回复
如何使用matlab求解非线性方程组的所有整数解?
已经有9人回复
Matlab求解偏微分方程组
已经有22人回复
matlab求解非线性方程组
已经有16人回复
matlab数值求解边界条件微分方程组
已经有7人回复
求matlab求解一个方程组的问题
已经有6人回复
求高人指点用matlab求解非线性方程组,解决了追加100金币;
已经有11人回复
请教Matlab高手解多元非线性方程组中的参数
已经有6人回复
matlab的fsove 命令求解非线性方程组
已经有6人回复
MATLAB求解一个比较复杂的方程
已经有14人回复
都不知道怎么命名标题:迭代法解方程组?
已经有16人回复
【求助】MATLAB 解方程组【已解决】
已经有7人回复
【求助】向各位大侠求助matlab求解微分方程组遇到的一个问题
已经有21人回复
【求助】matlab求解非线性方程组,并画图处理。要求y,z是实数解!
已经有18人回复
【求助】求教 多元指数方程如何解 有软件否?
已经有6人回复
【求助】matlab怎么求解偏微分方程组啊,先谢谢了
已经有13人回复
【求助】100金币求助高人一个程序解方程
已经有15人回复
非线性方程组的迭代法(数值计算高手请进)
已经有7人回复
【求助】求教matlab解非线性方程组
已经有9人回复
【求助】求一个用牛顿迭代法解非线性方程组的程序
已经有10人回复
【求助】如何用Runge-Kutta迭代求解二阶常微分方程组【已解决】
已经有9人回复

【答案】应助回帖
★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与 2012-11-25 19:58:30
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与 2012-11-25 19:58:30
|
你学过数值分析没有,这个可以用高斯迭代法和雅可比迭代法求解,不过虽然用迭代法,跑程序时还是有警告,可能求解还是不是非常可靠,我求解了一个,下面我把高斯迭代法那个我求解用的程序和运行结果贴在下面: function gsdd(A,b,x0,fs,wucha,ddcs) D=diag(diag(A)); U=-triu(A,1); L=-tril(A,-1); ljzx=inv(A)*b'; if det(D)==0 disp('对角矩阵D奇异,迭代不能实现'); return end B=(D-L)\U;f=(D-L)\b'; for k=1:ddcs x1=B*x0'+f; epsilon=norm(x1-x0',fs); wcx=norm(x1-x0',fs)/(norm(x1,fs)+eps); x0=x1'; if (epsilon end end if (epsilon>wucha)||(wcx>wucha)||k==ddcs disp(' 超过给定最大迭代次数,可能不收敛 ') return end disp('迭代次数:'); k disp('迭代结果:'); x=x0' disp('逆矩阵求解结果:'); x=ljzx end >> A=[-1.2e-21,1.4e6,1.4e6,-1.4e6,1.3e6; 8.9e-22,-1.4e6,4.9e3,3.8e3,0; 1.8e-22,1.4e3,-1.4e6,4.3e3,0; 4.4e-23,3.2e2,1.2e3,-5.1e6,4.3e3; 5.3e-23,0,0,1.3e3,-2.3e6]; >> b=[0;-1.8e-4;-1.3e-2;-1.5e-2;-4.0e-3]'; >> x0=[1 1 1 1 1]; >> gsdd(A,b,x0,1,10^(-15),1000) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.694259e-029. > In gsdd at 5 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.352941e-028. > In gsdd at 10 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.352941e-028. > In gsdd at 10 迭代次数: k = 527 迭代结果: x = 1.029393177754839e+020 6.565808888911417e-008 2.259822851544943e-008 3.842185487752933e-009 4.113382036189012e-009 逆矩阵求解结果: x = 1.029393177754837e+020 6.565808888911401e-008 2.259822851544940e-008 3.842185487752931e-009 4.113382036189006e-009 |

3楼2012-11-25 01:28:13
2楼2012-11-24 20:35:20
change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
15楼2013-04-27 15:35:47
change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
17楼2013-04-27 15:48:18
wangjunyahit
银虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 366.5
- 帖子: 19
- 在线: 11.2小时
- 虫号: 1697137
- 注册: 2012-03-17
- 性别: GG
- 专业: 工程热物理相关交叉领域

4楼2012-11-25 09:28:56
wangjunyahit
银虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 366.5
- 帖子: 19
- 在线: 11.2小时
- 虫号: 1697137
- 注册: 2012-03-17
- 性别: GG
- 专业: 工程热物理相关交叉领域

5楼2012-11-25 09:33:37
wangjunyahit
银虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 366.5
- 帖子: 19
- 在线: 11.2小时
- 虫号: 1697137
- 注册: 2012-03-17
- 性别: GG
- 专业: 工程热物理相关交叉领域
|
谢谢您的解答,非常感激! 我之前也用过雅克比迭代和高斯赛德尔迭代进行过求解另外一个类似的方程,但是没有收敛,不知道是不是初值选择的问题,麻烦您帮忙看下!谢谢!方程如下: A=[-1.070906744447462E-017 244564571.598802 303866255.019473 303856255.019473 303756255.019473 ; 9.735515836938967E-017 -437040200.438244 546168396.621813 415770404.263350 0.000000000000000E+000 ; 1.947103215071310E-017 157778358.747585 -986775896.684545 473345946.492110 0.000000000000000E+000; 4.867758037678274E-018 34697270.0918581 136741245.043259 -1333413850.81819 473345946.492110 ; 5.841309406796348E-018 0.000000000000000E+000 0.000000000000000E+000 136741245.043259 -778102201.511583 ]; b=[ 104348331231.704 -2072871.66710357 -154296552.906917 -178403143.022063 -48501206.8009638 ]'; |

6楼2012-11-25 11:12:12
【答案】应助回帖
★ ★
xiegangmai: 金币+2, 帖中代码部分可使用“插入代码”功能 2012-11-25 19:58:47
xiegangmai: 金币+2, 帖中代码部分可使用“插入代码”功能 2012-11-25 19:58:47
|
这个用迭代法的话验证的话,没有哪一种迭代法是通用的,验证的话,你就用列主元消去法吧,一定程度上能控制舍入误差.下面且用列主元消去法求解,过程贴下面: function gauss(A,b,delta) %解线性方程组 B=[A b']; [B,n]=disha(B); X=A\b'; for k=1:n if abs(B(k,k)) return end end x=(B(:,1:n))\B(:,n+1); disp('方程有有唯一解其解为:'); disp('i x(i)'); for i=1:n disp(sprintf('%d %.17e',i,x(i))); end function [A hs]=disha(A) [hs,ls]=size(A); for i=1:hs-1 s=A(:,i); [m,row]=max(abs(s(i:hs))); if A(i,i)~=m s1=A(i, ;A(i, =A(row+i-1, ;A(row+i-1, =s1;end for j=i:hs-1 % if A(j+1,i)==0 % continue % end % r=A(i,i)/A(j+1,i); %A(j+1, =A(j+1, *r-A(i, ;r=A(j+1,i)/A(i,i); A(j+1, =A(i, *r-A(j+1, ;end end end disp('逆矩阵求解结果: '); for k=1:1:5 disp(sprintf('%d %.17e',k,X(k)')); end end >> gauss(A,b,10^(-18)) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 4.382649e-026. > In gauss at 5 Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 6.691293e-026. > In gauss at 12 方程有有唯一解其解为: i x(i) 1 8.90763948846464080e+026 2 3.22058008969693620e+002 3 8.07073018970861680e+001 4 2.39314314743592430e+001 5 1.09550426143824530e+001 逆矩阵求解结果: 1 8.90763948846463800e+026 2 3.22058008969693560e+002 3 8.07073018970861540e+001 4 2.39314314743592430e+001 5 1.09550426143824530e+001 >> |

7楼2012-11-25 13:04:02
wangjunyahit
银虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 366.5
- 帖子: 19
- 在线: 11.2小时
- 虫号: 1697137
- 注册: 2012-03-17
- 性别: GG
- 专业: 工程热物理相关交叉领域

8楼2012-11-25 17:04:02
9楼2012-11-25 17:38:11

10楼2012-11-25 21:55:52













回复此楼
;