MATLAB 雅可比迭代法求解线性方程组示例代码
当然!以下是使用雅可比迭代法求解线性方程组的 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' 函数,它们可以更方便地求解线性方程组。
原文地址: https://www.cveoy.top/t/topic/R4O 著作权归作者所有。请勿转载和采集!