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

📄 jacobi2.m

📁 数值分析中几个基础的matlab程序
💻 M
字号:
function [x]=Jacobi2(A,b)

% 用Jacobi迭代求解线性方程组,矩阵A是方阵

    x0=zeros(1,length(b)); % 赋初值

    tol=10^(-6); % 给定误差界

    N=100;  % 给定最大迭代次数

    [n,n]=size(A); % 确定矩阵A的阶

    k=1;

    % 迭代过程

    while k<=N

        for i=1:n

            x(i)=(b(i)-A(i,:)*x0'+x0(i)*A(i,i))/A(i,i);

        end

        if max(abs(x-x0))<=tol

            fid = fopen('J_Inter_result.txt', 'wt');

            fprintf(fid,'\n********用Jacobi迭代求解线性方程组的输出结果********\n\n');

            fprintf(fid,'迭代次数: %d次\n\n',k);

            fprintf(fid,'x的值\n\n');

            fprintf(fid, '%12.8f \n', x);

            break;

        end

        k=k+1;

        x0=x;

    end

    if k==N+1

      fid = fopen('J_Inter_result.txt', 'wt');

      fprintf(fid,'\n********用Jacobi迭代求解线性方程组的输出结果********\n\n');

      fprintf(fid,'迭代次数: %d次\n\n',k);

      fprintf(fid,'超过最大迭代次数,求解失败!');
    end

⌨️ 快捷键说明

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