松弛法求解matlab程序,jacobig-s,超松弛迭代法matlab程序

function iteration

A=[10,1,2,3,4;

1,9,-1,2,-3;

2,-1,7,3,-5;

3,2,3,12,-1;

4,-3,-5,-1,15];

b=[12,-27,14,-17,12]';

x0=[0,0,0,0,0]';

tol=1e-12;

disp('jacobi迭代法的结果和次数如下:')

[x,k]=Fjacobi(A,b,x0,tol)

disp('G-S迭代法的结果和次数如下:':')

[x,k]=Fgseid(A,b,x0,tol)

disp('超松弛的结果和次数如下:':')

[x,k]=Fsor(A,b,x0,,tol)

disp('共轭梯度法的结果和次数如下:':')

[x,k]=Fcg(A,b,x0,tol)

%jacobi迭代法

function [x,k]=Fjacobi(A,b,x0,tol)

max=300;

D=diag(diag(A));

L=-tril(A,-1);

U=-triu(A,1);

B=D\(L+U);

f=D\b;

x=B*x0+f;

k=1;

while norm(x-x0)>=tol

x0=x;

x=B*x0+f;

k=k+1;

if(k>=max)

disp('μü′ú3?1y300′?£?·?3ì×é?é?ü2?ê?á2');

return;

end

end

%G-S迭代法

function [x,k]=Fgseid(A,b,x0,tol)

max=300;

D=diag(diag(A));

L=-tril(A,-1);

U=-triu(A,1);

G=(D-L)\U;

f=(D-L)\b;

x=G*x0+f;

k=1;

while norm(x-x0)>=tol

x0=x;

x=G*x0+f;

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值