⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 高斯塞得迭代和雅可比迭代的程序,对计算矩阵有帮助
💻 TXT
字号:



clear
%输入松弛变量w
%%%%%%%%%%%%输入B的阶数
tic
poufen=5  ;
m=2^poufen-1 ;
n=2*m+1  ;
d=5 ;
duijiao=0.5  ;
cedui=2  ;

x1=zeros(n*m,1);       %生成解空间
x0=ones(n*m,1);       %赋初值
% b=(cos((0:n*m-1)*pi))' ;  %AX=b中的b值(1,-1,1,-1```````-1,1)
b=ones(m*n,1) ;
first_x=x0;
second_x=x1;
k=0;
while norm(first_x-second_x)>10^(-6)  && k<10000   %%%%控制误差精度
        % //////////////前面m行的情况////////
        i=1       ;  %第一行时 
        x1(1)=(1/d)*(b(1)+duijiao*x0(2)+cedui*x0(1+m));
        
        for i=2:m-1     %%第2行至第m行时 
            x1(i)=(1/d)*(b(i)+duijiao*x1(i-1)+duijiao*x0(i+1)+cedui*x0(i+m));
        end
        
        i=m   ;     %第m行时 
        x1(i)=(1/d)*(b(i)+duijiao*x1(i-1)+cedui*x0(i+m));
 
        % //////////////从第m+1行至第m*(n-1)行时的情况////
       for i=(m+1):m*(n-1)  
            if mod(i,m)==1   %行数除m的余1时的情况
             x1(i)=(1/d)*(b(i)+cedui*x1(i-m)+duijiao*x0(i+1)+cedui*x0(i+m));
            else if mod(i,m)==0    %行数是m的整数倍时的情况
                     x1(i)=(1/d)*(b(i)+cedui*x1(i-m)+duijiao*x1(i-1)+cedui*x0(i+m));
                else    %行数除m的不余1也不余0时的情况
                     x1(i)=(1/d)*(b(i)+cedui*x1(i-m)+duijiao*x1(i-1)+duijiao*x0(i+1)+cedui*x0(i+m));
                end
            end
       end
        % //////////////从第m*(n-1)+1行至第m*n行时的情况////
         i=m*(n-1)+1  ; %第m*(n-1)+1行时 
         x1(i)=(1/d)*(b(i)+cedui*x1(i-m)+duijiao*x0(i+1));
         
         for i=(m*(n-1)+2):(m*n-1)   %%%第m*(n-1)+2行至第m*n-1行时 
             x1(i)=(1/d)*(b(i)+cedui*x1(i-m)+duijiao*x1(i-1)+duijiao*x0(i+1));
         end
         
         i=m*n    ;  %第m*n行即最后一行时的情况
         x1(i)=(1/d)*(b(i)+cedui*x1(i-m)+duijiao*x1(i-1));
     
         first_x=x0;
         second_x=x1;
         x0=x1;
         k=k+1;
end
YouxianyuanZJ=x1 ;
disp('运算次数k= ')
k

toc

       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -