matlab-雅克比迭代法

%算法 p188
%例题 p209
clc;
clear;
A=[1 0.4 0.4
0.4 1 0.8
0.4 0.8 1];
b=[ 1
2
3];
%迭代四次
height=size(A,1);
D=diag(diag(A));
L=tril(A,-1);%得到L
U=triu(A,1);%得到U
% x=[1 ;1 ;1]%初始向量x
x=ones(height,1);
k=0;
for i=1:1:length(A)
for j=1:1:length(A)
sum=0;
if j~=i
sum=sum+A(i,j)*x(j);
end
x(i)=(b(i)-sum)/A(i,i);
k=k+1;

end
% %迭代4次
% %迭代矩阵B
% B=inv(D)*(L+U)
% f=inv(D)*b
% x(1)=B*x(1)+f
% x(2)=B*x(2)+f
% x(3)=B*x(3)+f
end
x1=A\b
x


%上面的三行代码等于下面注释掉的多行代码
% d=diag(A)
% D=zeros(height,height);
% for i=1:1:height
% D(i,i)=d(i)
% end
% L=zeros(height,height);
% U=zeros(height,height);
% for i=1:1:height
% for j=1:1:height
% if i<j
% L(i,j)=A(i,j)
% else if i>j
% U(i,j)=A(i,j)
% end
% end
% end
% end
%A=D+L+U
%k表示迭代次数

转载于:https://www.cnblogs.com/xyblogs/p/9118951.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值