雅可比迭代纸

以下是我写的,请放心使用~ ~ ~

%超松弛迭代(排序方法)

function [x k flag]=SOR(A,b,eps,w,maxl)

%A是方程的系数矩阵。

%b是方程的右向量。

精确度需要%eps。

%maxl是最大迭代次数,默认值是100。

%w是超松弛因子,默认值是1。

%x是方程组的解

%k是迭代的次数

%flag是一个指示器变量。

%分配的初始值:

如果nargin & lt5 maxl = 100;结束

如果nargin & lt4w = 1;结束

如果nargin & lt3 EPS = 1e-5;结束

n =长度(b);k = 0;

x =零(n,1);y =零(n,1);flag = ' OK

%开始迭代:

虽然是真的

y = x;% y和z都是辅助变量。

对于i=1:n

z = b(I);

对于j=1:n

如果j~=i

z=z-A(i,j)* x(j);

结束

结束

如果abs(A(i,I))& lt;1e-10|k==maxl

flag=“失败”;返回;

结束

z=z/A(i,I);x(I)=(1-w)* x(I)+w * z;

结束

if norm(y-x,INF)& lt;蓄电池

打破;

结束

k = k+1;

结束

解线性方程组的%Jacobi迭代法

function [x k flag]=Jacobi(A,b,eps,maxl)

%A是方程式的系数矩阵。

%b是方程的右向量。

精确度需要%eps。

%maxl是最大迭代次数,默认值是100。

%x是方程组的解

%k是迭代的次数

%flag是一个指示器变量。

%分配的初始值:

如果nargin & lt4 maxl = 100;结束

如果nargin & lt3 EPS = 1e-5;结束

n =长度(b);k = 0;

x =零(n,1);y =零(n,1);flag = ' OK

%开始迭代:

而1

对于i=1:n

y(I)= b(I);

对于j=1:n

如果j~=i

y(i)=y(i)-A(i,j)* x(j);

结束

结束

如果abs(A(i,I))& lt;1e-10|k==maxl

flag=“失败”;返回;

结束

y(i)=y(i)/A(i,I);

结束

if norm(y-x,INF)& lt;蓄电池

打破;

结束

x = y;k = k+1;

结束

我肯定能通过一点调试。都是测试过的。记得给我打分。谢谢~ ~ ~