最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Gauss_Seidel迭代法的Matlab程序

来源:动视网 责编:小OO 时间:2025-10-01 02:12:56
文档

Gauss_Seidel迭代法的Matlab程序

Jacobi算法:functionx=jacobi(A,b)n=length(b);N=100;e=1e-5;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;D=diag(diag(A));L=zeros(n,n);%定义L为n乘n的矩阵U=zeros(n,n);%定义U为n乘n的矩阵M=zeros(n,n);%定义M为n乘n的矩阵fori=1:n%求d的逆forj=1:nM=1/d(i,j);endendfori=2:n%求L,下三角矩阵forj=1:i-1L(i,j)=-A
推荐度:
导读Jacobi算法:functionx=jacobi(A,b)n=length(b);N=100;e=1e-5;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;D=diag(diag(A));L=zeros(n,n);%定义L为n乘n的矩阵U=zeros(n,n);%定义U为n乘n的矩阵M=zeros(n,n);%定义M为n乘n的矩阵fori=1:n%求d的逆forj=1:nM=1/d(i,j);endendfori=2:n%求L,下三角矩阵forj=1:i-1L(i,j)=-A
Jacobi算法:

function x=jacobi(A,b)

n=length(b);

N=100;

e=1e-5;

x0=zeros(n,1);

x=x0;

x0=x+2*e;

k=0;

D=diag(diag(A));

L=zeros(n,n);   %定义L为n乘n的矩阵

U=zeros(n,n);   %定义U为n乘n的矩阵

M=zeros(n,n);   %定义M为n乘n的矩阵

for i=1:n %求d的逆 

    for j=1:n

        M=1/d(i,j);

    end

end

for i=2:n     %求L,下三角矩阵

   for j=1:i-1

     L(i,j)=-A(i,j);

   end

end

for i=1:n-1 %求U,下三角矩阵

   for j=i+1:n

       U(i,j)=-A(i,j);

      end

end

while max(abs(x0-x))>e&k      x0=x;

    x=M*(L+U)*x+M*b;

     k=k+1;

 k

    disp(x')

end

if k==N WARNING('已达到最大迭代');

end

A=[4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 0 0 -1;-1 0 0 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4];b=[0;5;0;6;-2;6]x=agui_jacobi(A,b)

Gauss_Seidel迭代法的Matlab程序

function x=agui_gs(A,b)

n=length(b);

N=100;

e=1e-5;

x0=zeros(n,1);

x=x0;

x0=x+2*e;

k=0;

D=diag(diag(a));

L=zeros(n,n);   %定义L为n乘n的矩阵

U=zeros(n,n);   %定义U为n乘n的矩阵

for i=2:n     %求L,下三角矩阵

   for j=1:i-1

     L(i,j)=-A(i,j);

   end

end

for i=1:n-1 %求U,下三角矩阵

   for j=i+1:n

       U(i,j)=-A(i,j);

      end

end

while max(abs(x0-x))>e&k       x0=x;

    x=(D-L)\D-L)\\b;

   k=k+1;

 k

    disp(x')

end

if k==N WARNING('已达到最大迭代');

end

SOR算法:

function[x,k]=SOR(A,b,w)%k为迭代次数,w为松弛因子

 ep=1e-5;

 n=length(A);

 k=0;

x=zeros(n,1);

y=zeros(n,1);

while 1

    y=x;

    for i=1:n

       z=b(i);

        for j=1:n

            if j~=i

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

            end

        end

        z=z/A(i,i);

x(i)=(1-w)*x(i)+w*z;

    end

if max(abs(y-x))        break;

    end

    k=k+1;

end

文档

Gauss_Seidel迭代法的Matlab程序

Jacobi算法:functionx=jacobi(A,b)n=length(b);N=100;e=1e-5;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;D=diag(diag(A));L=zeros(n,n);%定义L为n乘n的矩阵U=zeros(n,n);%定义U为n乘n的矩阵M=zeros(n,n);%定义M为n乘n的矩阵fori=1:n%求d的逆forj=1:nM=1/d(i,j);endendfori=2:n%求L,下三角矩阵forj=1:i-1L(i,j)=-A
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top