概述
前言
在计算大型稀疏矩阵方程组时,利用迭代法往往比较合适
本文将介绍雅可比迭代法及对应matlab代码
迭代公式
对线性方程
A
x
=
b
Ax=b
Ax=b,有雅可比迭代公式:
{
x
(
0
)
=
(
x
1
(
0
)
,
x
2
(
0
)
,
⋯
,
x
n
(
0
)
)
T
,
x
i
(
k
+
1
)
=
(
b
i
−
∑
j
=
1
,
j
≠
i
n
a
i
j
x
j
(
k
)
)
/
a
i
i
,
i
=
1
,
2
,
⋯
,
n
;
k
=
0
,
1
,
⋯
迭
代
次
数
.
left { begin{array}{c} x^{(0)}=(x_1^{(0)},x_2^{(0)},cdots ,x_n^{(0)})^T,\ x_i^{(k+1)}=(b_i-sum_{j=1,jneq i}^na_{ij}x_j^{(k)})/a_{ii},\ i=1,2,cdots ,n;k=0,1,cdots 迭代次数. end{array} right.
⎩⎪⎨⎪⎧x(0)=(x1(0),x2(0),⋯,xn(0))T,xi(k+1)=(bi−∑j=1,j=inaijxj(k))/aii,i=1,2,⋯,n;k=0,1,⋯迭代次数.
代码
main.m
clear;clc
%% input
A=input('A=');
b=input('b=');
x=input('x0=');
k=input('k=');
n=size(A,1);
%% x(k+1)
for m=0:k
for i=1:n
x(i)=(b(i)-f_sum(A,x,i,n))./A(i,i);
end
end
%% output
x
f_sum.m
function sum=f_sum(A,x,i,n)
sum=0;
for j=1:n
if j~=i
sum=sum+A(i,j)*x(j);
end
end
仓库地址
本文涉及代码已上传GitHub
仓库地址
最后
以上就是甜蜜书包为你收集整理的【数值分析】解线性方程组的迭代法(雅可比迭代法)前言迭代公式代码仓库地址的全部内容,希望文章能够帮你解决【数值分析】解线性方程组的迭代法(雅可比迭代法)前言迭代公式代码仓库地址所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复