前言
在计算大型稀疏矩阵方程组时,利用迭代法往往比较合适
本文将介绍雅可比迭代法及对应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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19clear;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
1
2
3
4
5
6
7
8function 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
仓库地址
最后
以上就是甜蜜书包最近收集整理的关于【数值分析】解线性方程组的迭代法(雅可比迭代法)前言迭代公式代码仓库地址的全部内容,更多相关【数值分析】解线性方程组内容请搜索靠谱客的其他文章。
发表评论 取消回复