数值分析 jacobi迭代法求解线性方程组 MATLAB程序实现

jacobi迭代法 参考数值分析第四版 颜庆津著 P36 

数值分析 jacobi迭代法MATLAB程序实现   运行输入为:


运行结果为:



以下是函数内容(保存为jacobi.m文件,在MATLAB中运行):

%function [G,d,x,N]=jacobi(A,b)



%Jacobi迭代法求解线性方程组。迭代公式x(k+1)=Gx(k)+d,(k=0,1,…).
%返回迭代矩阵G,d和方程组的解x,以及迭代次数N


%2015.11.6  密密编写  (*^__^*) 嘻嘻……
function [G,d,x2,N]=jacobi(A,b)
n=size(A);
if n(1)~=n(2)
    error('矩阵A不是方阵');
end

%初始化
N=1;%迭代次数
%X=zeros(N,n)%存储每次迭代解出的x,迭代次数N
B=zeros(n);%用B表示L+U
D=zeros(n);
G=zeros(n);
x=ones(n,1);%生成全1的n维列向量
d=ones(n,1);
B=A;
for i=1:n
    B(i,i)=0;
    D(i,i)=A(i,i);
end
%迭代开始
G=-inv(D)*B;
if vrho(G)>1
    error('jacobi迭代法不收敛!');
end
d=inv(D)*b;
x1=x;
x2=G*x+d;
while norm(x2-x1,inf)>10^(-4)
    x1=x2;
    x2=G*x2+d;
    N=N+1;
end
x=x2;
end
  • 8
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值