数学建模社区-数学中国
标题:
雅可比迭代法解线性方程组
[打印本页]
作者:
seven3069
时间:
2016-10-12 22:38
标题:
雅可比迭代法解线性方程组
雅可比迭代法解线性方程组:
%雅可比迭代法解线性方程组;
/ |6 ^; {0 a% B
clc;clear;close;
4 L+ p+ o, E1 S D- J9 R6 I% a
% digits(4);
" _0 ~; }- R$ f" f, {: g
A=input('请输入系数矩阵:');
' w7 _) ?9 ~+ I" Z& T- M+ y: m) C: t
b=input('请输入b矩阵(列向量):');
) E$ Z l1 r; h& c
X0=input('请输入迭代初值(列向量):');
# ]9 U9 Q& k( M
k=input('请输入迭代次数:');
7 W/ q7 R& ]7 i
[M1,N1]=size(A);
5 L) }( Z2 o0 F
% X0=[3.1481 4.8 2.037]';
3 ^( B6 X5 T7 n% H# C, M
% f=X0;
9 p' G& X7 ` u7 @! ]# t* j
% X=X0;
0 P& x. F% W* s
% vpa(X0);
9 g- X" b# U6 D0 H( V" L
% vpa(X);
7 x: ^. O2 {0 I- |( s2 o* J$ a; ^3 K
% vpa(f);
* L$ u, j; B+ t
OUT=[];
7 d! Z! ^( M% `' Z3 j) H2 Q
% vpa(OUT);
2 N. O* Z- C& \# m5 ?# d. f
%M=[0 -0.2222 0.0370;-0.4 0 -0.1333;-0.0185 -0.0185 0];
% R7 f2 {& p8 w+ T
%求解M矩阵;
1 L1 v$ U0 I* Y) S
for m=1:M1
- k$ b3 x9 V& R! I: e# _# V
for n=1:N1
' W0 J" _( p' g' _1 b- i0 U
if m==n
7 B1 k/ M; y8 d8 ~
D(m,n)=A(m,n);
4 }+ K5 e% m4 W* l2 p6 X" ^ L* a+ M
else
" c ?! K* n) h& I+ g7 j
D(m,n)=0;
@$ c$ a I7 K3 M9 q) p
end
6 [! D5 K5 U+ U& L3 Y+ [" i0 ?
end
8 T: w, O3 d% H" ~3 {
end
# v1 N& p" a# R0 G1 q
LU=A-D
6 I0 K$ z, B/ i2 h4 Y
M=-inv(D)*(LU)
. U/ f7 ^ H- N
f=inv(D)*b
/ |" c& l' Z( \) v z; k: a
X=X0;
& p6 n9 ]6 U$ o7 X& E5 }
%特征根求解;
0 T1 G4 Z5 H T, W
[v,d]=eig(M)
/ c2 z, v, t: n4 ]0 {7 \0 n
% vpa(M);
* B1 }( C5 c) \5 A
for i=1:k;
7 `) ^& o4 U# Y8 p0 k6 j0 S" @$ Z
X=M*X+f;
0 a- J R; o) k) B) Z! ?$ p
OUT=[OUT;X'];
3 h9 l8 e' w* f' [# @, x. e
K1(i)=i;
, a- ?) f1 P6 G7 {) n6 U
end
, B' {& H9 ` i0 Q# j
K1=[0 K1]';
1 H$ v6 [3 k2 Q4 h* X% F
OUT1=[X0';OUT];
/ m. E |- R- j/ E# ^
OUT1=[K1 OUT1]
/ ~1 r9 q$ J2 X" a U
% vpa(OUT1);
6 W3 J. ~4 E( U
xlswrite('C:\Users\LENOVO\Desktop\雅可比迭代法2.xls',OUT1);
( Z0 e8 z& o1 w6 `: a& v5 O
复制代码
结果输入与输出范例:
请输入系数矩阵:[5 -1 -1 -1;-1 10 -1 -1;-1 -1 5 -1;-1 -1 -1 10]
u7 s5 H; Z+ w9 w V' S M
请输入b矩阵(列向量):[-4 12 8 34]'
" [! h8 {$ w# ~
请输入迭代初值(列向量):[0 0 0 0 ]'
3 M( V5 h" P) M* _) E- s) H
请输入迭代次数:5
, ~" v0 D' y I. p) a3 E9 L) R) G
结果输出:
: S+ F7 @+ _0 Z4 {
9 c0 z; ~9 W1 t% T' Q) p; X( |
LU =
( O u4 G! u2 B8 _ U
9 \9 @3 w' x \
0 -1 -1 -1
& ]& z: Q& n3 l+ R1 y! n4 `
-1 0 -1 -1
5 E8 o) y, K( s' Q- d5 Z
-1 -1 0 -1
( r7 a7 q8 z2 s7 J: ~
-1 -1 -1 0
% L- X3 Q' b m4 n. \3 c
( a& t; k4 B! Y. N% r2 {
) `: i8 e5 ]3 K$ E) h5 G1 U
M =
) G7 o! l, }( y1 }5 T" g8 V# Z- O
# [, B) R2 z8 H3 W( V
0 0.2000 0.2000 0.2000
: s; F+ \' j% @* H+ l3 _7 s
0.1000 0 0.1000 0.1000
. z1 q0 o4 M! E; A' U
0.2000 0.2000 0 0.2000
" e1 a" V" q, X0 o, T& a
0.1000 0.1000 0.1000 0
5 Q0 O9 Z- x3 U9 R
8 W, y! p7 ~/ V3 R/ L
5 g f+ J/ y, s1 l4 l0 T
f =
3 |6 ?7 K$ Z8 S" d
& W: |' D% O2 \. h; w; U6 L
-0.8000
3 {6 i# t0 u+ Y6 w' X/ R0 }0 J
1.2000
! J- o* `- @ i4 K& p' }
1.6000
% S6 ?! @( {/ N
3.4000
) N: f; U: R, {, G% a* Q" W
# |/ H- g0 X. }$ y8 o/ N
+ Z" ^* l" b0 M
v =
/ o9 w5 p) w. l
% L6 N0 N2 I/ Q- A+ ~
-0.6082 -0.7071 -0.5406 0.0000
+ l/ @: E* S0 ~1 M3 H6 C3 {
-0.3607 -0.0000 0.4558 -0.7071
* m$ T+ z7 R3 s1 J% c
-0.6082 0.7071 -0.5406 0.0000
" b" M! ?4 d& o
-0.3607 -0.0000 0.4558 0.7071
5 ^% @$ e9 {, g- V4 v9 l
/ `& R* d4 ]9 W: G7 J8 x- s" z
" \& h3 M% S! M' X
d =
. ]$ a' S( p! z
3 [& z, m. s4 }; X4 l+ y
0.4372 0 0 0
3 {/ \* _6 X8 o0 f
0 -0.2000 0 0
\2 q( F6 g$ g5 N, Z+ L5 y
0 0 -0.1372 0
0 E1 O( P/ e; H& J
0 0 0 -0.1000
# V1 s0 Y4 h5 f5 L* J) B w s
' _% Y6 r+ R# c
迭代结果输出:
1 C3 }+ Y" @# |4 Z; k E* m
% W8 R T9 C$ h
OUT1 =
E" p6 V ?1 Q# g! _- K
: @# n6 ^- B( o
0 0 0 0 0
+ D7 t0 b% g' U: \! E2 _
1.0000 -0.8000 1.2000 1.6000 3.4000
3 |5 l6 r, A9 r$ L
2.0000 0.4400 1.6200 2.3600 3.6000
& C- Q# ~8 N+ \' M
3.0000 0.7160 1.8400 2.7320 3.8420
) i0 W; @2 B$ F& B
4.0000 0.8828 1.9290 2.8796 3.9288
, w+ S ?# q k. |" d
5.0000 0.9475 1.9691 2.9481 3.9691
复制代码
( a; I) m! e" I
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5