当然!以下是使用雅可比迭代法求解线性方程组的 MATLAB 示例代码:

function [x, iter] = jacobi(A, b, maxIter, tolerance)
    n = length(b);
    x = zeros(n, 1);
    x_prev = x;
    
    for iter = 1:maxIter
        for i = 1:n
            sigma = 0;
            for j = 1:n
                if j ~= i
                    sigma = sigma + A(i, j) * x_prev(j);
                end
            end
            x(i) = (b(i) - sigma) / A(i, i);
        end
        
        if norm(x - x_prev) < tolerance
            break;
        end
        
        x_prev = x;
    end
end

使用示例:

A = [4, -1, 0; -1, 4, -1; 0, -1, 4];
b = [1; 1; 1];
maxIter = 100;
tolerance = 1e-6;

[x, iter] = jacobi(A, b, maxIter, tolerance);

disp('Solution:');
disp(x);
disp('Number of iterations:');
disp(iter);

在这个示例中,我们解一个具有对角占优性质的线性方程组,其中 A 是系数矩阵,b 是右侧常数向量,maxIter 是最大迭代次数,tolerance 是迭代停止的容差。函数返回解向量 x 以及迭代次数 iter,然后我们在示例中打印出解和迭代次数。

请注意,这只是基于雅可比迭代法的简单示例代码。实际上,MATLAB 中有更高效的内置线性方程组求解器,例如 '' 运算符和 'linsolve' 函数,它们可以更方便地求解线性方程组。

MATLAB 雅可比迭代法求解线性方程组示例代码

原文地址: https://www.cveoy.top/t/topic/R4O 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录