数学建模社区-数学中国
标题:
雅可比迭代法解线性方程组
[打印本页]
作者:
seven3069
时间:
2016-10-12 22:38
标题:
雅可比迭代法解线性方程组
雅可比迭代法解线性方程组:
%雅可比迭代法解线性方程组;
# T( R3 K- O- }. p2 a: y. k% o& g
clc;clear;close;
4 e. j/ h$ b2 J+ p3 h9 z
% digits(4);
! F O1 f- A- p: D8 o
A=input('请输入系数矩阵:');
- u% p5 q: B \2 O
b=input('请输入b矩阵(列向量):');
+ d B/ J9 L/ b$ C
X0=input('请输入迭代初值(列向量):');
. j! V& W. o& s, b$ f* j
k=input('请输入迭代次数:');
( [- L6 j, Y) ~- d$ X' s( C
[M1,N1]=size(A);
( _# k' [2 s+ S5 Z! O Q! _$ i
% X0=[3.1481 4.8 2.037]';
* ]% Z9 W" A5 i3 I( ?8 H
% f=X0;
" u4 L3 D" y! `
% X=X0;
1 ~% W0 z2 L% i$ b
% vpa(X0);
# N" u# H& F; F" t+ W9 L
% vpa(X);
6 y& V8 d! e! r& a1 J1 ]6 u
% vpa(f);
- ]3 [# B* Z* Q9 N2 {' z1 j
OUT=[];
" C# U x4 O+ ^' H3 M+ g' j8 C* d0 Z
% vpa(OUT);
! P' D+ `) V$ `* e8 @
%M=[0 -0.2222 0.0370;-0.4 0 -0.1333;-0.0185 -0.0185 0];
3 X) c1 L# b, S# S; b
%求解M矩阵;
6 k" Z' w6 C5 x, g3 u; R
for m=1:M1
7 s. m. o/ `) N3 t
for n=1:N1
- ~1 w' \' e" o& R
if m==n
2 T( j2 ]2 c) u/ x
D(m,n)=A(m,n);
2 Z) g6 I; F% i5 [. X# D6 M
else
! m# s4 y* {/ r8 e, Q
D(m,n)=0;
0 ]1 Z" V% h/ D
end
+ k! k- s! b1 S# h- ?& |! g
end
8 c+ u+ X- N$ w. x
end
& f* ~8 V4 ^6 r
LU=A-D
" z! O. f2 D+ Q! u7 p
M=-inv(D)*(LU)
; R3 Q* k# e; n% d* a# L# p& d
f=inv(D)*b
: G! c; a, }$ S+ s& A5 x
X=X0;
$ }4 ?6 e( ` x) U$ _, R( Z
%特征根求解;
4 H& `$ z$ W; a" c A$ e
[v,d]=eig(M)
: m# K% t0 J4 x* N$ n
% vpa(M);
! R w1 J# W4 e! s- ~
for i=1:k;
; a7 h, t$ {1 y( m ]; x
X=M*X+f;
* T t$ c* j: F* h2 e# E
OUT=[OUT;X'];
) j6 e, C1 X! `" b, k$ s0 I
K1(i)=i;
8 A5 ?6 g1 b3 m- K- V( Z
end
1 m6 [7 c0 P: e. f: p' U
K1=[0 K1]';
$ F' a! ~4 d/ E" _3 M9 T. z6 K
OUT1=[X0';OUT];
) H- ~2 l8 |( q' H5 x
OUT1=[K1 OUT1]
- r+ C4 c- z+ X: T& V# J
% vpa(OUT1);
) M: }) j3 U3 c. F5 b# J k5 T
xlswrite('C:\Users\LENOVO\Desktop\雅可比迭代法2.xls',OUT1);
% i8 }+ V* e. C0 ~
复制代码
结果输入与输出范例:
请输入系数矩阵:[5 -1 -1 -1;-1 10 -1 -1;-1 -1 5 -1;-1 -1 -1 10]
9 k/ @; j2 Z F. W1 q
请输入b矩阵(列向量):[-4 12 8 34]'
4 X2 F, R! Z Z* o3 b0 ]! Y
请输入迭代初值(列向量):[0 0 0 0 ]'
: w+ R, q4 j2 I, C
请输入迭代次数:5
. I: u) J) E, j
结果输出:
- G8 U/ D9 j; L# w' h1 N
! {" l% A+ {, ], ]
LU =
, m& d. M5 q# e/ M+ s+ Y9 P
8 Q1 P& a' `# A& y" \9 G% T
0 -1 -1 -1
+ X2 u- t2 H4 {) K) F
-1 0 -1 -1
- |3 z9 J: X- c7 S: p+ D4 F
-1 -1 0 -1
! {4 q, r7 b" U" b) A/ g! A* y
-1 -1 -1 0
/ k8 A4 Q* G- @# y; d Z
/ z4 i: I6 ?: V- v, E
1 p: }2 C9 X" |" B* d8 j3 h8 a( ]2 y
M =
. w! ]8 T9 n3 \
# h' k$ a+ z, `: D! e# M+ q
0 0.2000 0.2000 0.2000
" L4 r# g+ |1 j* A2 f+ k
0.1000 0 0.1000 0.1000
( M: ~5 {4 h! @0 s
0.2000 0.2000 0 0.2000
3 R0 ]) x& A v% q
0.1000 0.1000 0.1000 0
% w2 J" S( m; G$ _6 h* G8 A
" }5 \5 _6 s2 p, N% f- ~2 |
% \, D5 X; ~3 o/ u
f =
7 M' O5 _* H$ I6 K8 q
' x ^6 [: K+ w b
-0.8000
, l$ a/ X8 L3 U! H- o. N% ?
1.2000
5 c1 X7 m! F0 m% S
1.6000
+ g @3 ~- r) }- w9 s
3.4000
2 z, l( c8 c* i. u' w
R, W$ C* {2 c; D
; U8 W% L; v: H
v =
% w" G# d$ q6 p N c
. ], e, D2 j8 {5 j2 Z0 r$ _8 |
-0.6082 -0.7071 -0.5406 0.0000
, g6 l/ o" ~; [) z
-0.3607 -0.0000 0.4558 -0.7071
5 K Y* o% h- m# U9 T& p
-0.6082 0.7071 -0.5406 0.0000
8 c; v. O4 ^* e* v
-0.3607 -0.0000 0.4558 0.7071
: v) d1 F! x/ H7 G0 E$ f1 j8 }2 @
7 G2 T2 M9 \# A1 E9 v) n: h0 Z
, b" i8 `4 `/ E) d; s: U8 p
d =
1 ~/ e. D8 Z5 l) y+ I$ ?# ~" |7 `
) h5 T& S7 [% e
0.4372 0 0 0
$ O; b- ]: k# P- o, j( j, I
0 -0.2000 0 0
$ N |' U1 z/ i% \7 m
0 0 -0.1372 0
; E! J8 ~( P! Y
0 0 0 -0.1000
8 U5 p O( |' M5 A4 A* Q; s
; S6 J: I5 N& \7 o9 |5 d* W. |
迭代结果输出:
2 i) x9 U( `9 d. G
( K) {( L( o- ~# ?% c6 O
OUT1 =
- q- O* ]+ @4 q
' W4 t8 i/ W* Q
0 0 0 0 0
, h1 k, |8 y" k+ l+ \) U
1.0000 -0.8000 1.2000 1.6000 3.4000
! R' f! Z8 S, p4 }0 W2 G: }
2.0000 0.4400 1.6200 2.3600 3.6000
+ d A0 M( G9 U; z# y% r/ Y% L
3.0000 0.7160 1.8400 2.7320 3.8420
7 j& N" y9 S2 Z7 i7 X" o# v3 @- T
4.0000 0.8828 1.9290 2.8796 3.9288
, b: @' N4 w1 ~0 e! t/ N: ]
5.0000 0.9475 1.9691 2.9481 3.9691
复制代码
6 G/ d: Q* A6 d+ s8 u
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5