雅各比迭代法

一、语法知识
1、严格上、下三角矩阵是指对角线上元素为零的上、下三角矩阵,可用函数tril,triu来实现

A =

    10     2     6
     4     8    -1
    -2     3     5

tril(A)
ans =

    10     0     0
     4     8     0
    -2     3     5
tril(A,-1)
ans =

     0     0     0
     4     0     0
    -2     3     0
tril(A,1)
ans =

    10     2     0
     4     8    -1
    -2     3     5

2、对角矩阵可以用diag来实现

diag(A)
ans =
    10
     8
     5
diag(diag(A))
ans =

    10     0     0
     0     8     0
     0     0     5

二、实现雅各比迭代具体代码

%% function x=jacobi(a,b,x0,eps)
%功能:雅各比迭代法
%输入:a方程组系数,b常数项系数,x0初始值,eps精度
%输出:迭代次数和方程解
%迭代格式:x(k)=M*x(k-1)+b;M=(inv(D))(L+U);b=inv(D)*b;D为A的对角矩阵,L和U是A的严格下上三角矩阵
%%
function x=jacobi(a,b,x0,eps)
if nargin==3
    eps=1.0e-6;
elseif nargin<3
    error;
    return;
end

d=diag(diag(a));
d=inv(d);
l=tril(a,-1);
u=triu(a,1);
m=-d*(l+u);
f=d*b;
k=1
x=m*x0+f;
while (norm(x0-x)>=eps)&(k<=1000)
    x0=x;
    x=m*x0+f;
    k=k+1;
end

disp('迭代次数')
k
disp('方程近似解为')
x

参考:常用数值算法及其MATLAB实现(夏省祥编)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值