声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2479|回复: 2

请问 高斯-赛德尔迭代 实例如何编程???

[复制链接]
发表于 2006-3-28 15:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
刚接触matlab ,遇到“高斯-赛德尔迭代编程”,头大了!请高手指点!<BR>
回复
分享到:

使用道具 举报

发表于 2006-3-28 15:29 | 显示全部楼层

回复:(sunny819)请问 高斯-赛德尔迭代 实例如何编...

<P>function x=gaussdiedai(A,b,n)</P>
<P>%用高斯-赛德尔迭代解线性方程组</P>
<P>Len=length(A);</P>
<P>%求A的维数</P>
<P>U=-triu(A,1);B=A+U;</P>
<P>if (norm(B)==0)</P>
<P>x='Error!';  </P>
<P>%若B不可逆,给出错误信息,程序中止</P>
<P>else</P>
<P>     B2=inv(B)*U;f2=inv(B)*b;</P>
<P>    rou=max(abs(eig(B2)))</P>
<P>    %否则计算B2谱半径</P>
<P>    if (rou&gt;=1)</P>
<P>        x='Not convergent!'; </P>
<P>%谱半径&gt;=1,不收敛,中止程序</P>
<P>    else</P>
<P>        %否则进行n次高斯-赛德尔迭代,输出结果</P>
<P>        x=ones(Len,1);</P>
<P>        for i=1:n</P>
<P>            x=B2*x+f2;</P>
<P>        end</P>
<P>    end</P>
<P>end</P>
发表于 2009-5-26 14:08 | 显示全部楼层
还有有没有其他的?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 12:28 , Processed in 0.052289 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表