一、语法知识
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实现(夏省祥编)