| 查看: 2684 | 回复: 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人回复

9楼2012-11-25 17:38:11
2楼2012-11-24 20:35:20
【答案】应助回帖
★ ★
感谢参与,应助指数 +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
wangjunyahit
银虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 366.5
- 帖子: 19
- 在线: 11.2小时
- 虫号: 1697137
- 注册: 2012-03-17
- 性别: GG
- 专业: 工程热物理相关交叉领域

4楼2012-11-25 09:28:56













回复此楼