数学建模社区-数学中国

标题: 雅可比迭代法解线性方程组 [打印本页]

作者: seven3069    时间: 2016-10-12 22:38
标题: 雅可比迭代法解线性方程组
雅可比迭代法解线性方程组:
  1. %雅可比迭代法解线性方程组;% W9 ?3 Z* i; a! i6 G/ K# `! S
  2. clc;clear;close;
    / N1 T& m/ H8 Z1 t' W, b; f
  3. % digits(4);1 D5 P/ c3 F0 q% P. F5 }
  4. A=input('请输入系数矩阵:');, h. G& `) z# }. m. a) }
  5. b=input('请输入b矩阵(列向量):');
    % M( t5 Q2 d7 K$ P5 C
  6. X0=input('请输入迭代初值(列向量):');
    + `' s. f" s0 o& R: N' g: h; ]1 e
  7. k=input('请输入迭代次数:');
    ( \- O/ S! L$ z1 H) w. t# V
  8. [M1,N1]=size(A);1 w% `. x) E- q, n
  9. % X0=[3.1481 4.8 2.037]';" N: y+ R6 |! n% F. Z! \1 a
  10. % f=X0;
    2 p4 |) j- G. r8 m& B! v
  11. % X=X0;( S( h' _- y2 s  I9 o- V1 P; I, P% |8 j
  12. % vpa(X0);
    ' |7 d  L: {5 g4 _, G
  13. % vpa(X);# u- w4 a) R. x  r9 C* ?
  14. % vpa(f);
    1 B8 D$ ^5 w/ o* R( P- H
  15. OUT=[];2 d  t  F( g' V/ ?$ V. ^
  16. % vpa(OUT);
    - j* x' U1 D5 N$ ~$ z, e% ?
  17. %M=[0 -0.2222 0.0370;-0.4 0 -0.1333;-0.0185 -0.0185 0];
    / ~; c. y/ d% @
  18. %求解M矩阵;
    . m/ A8 G  ]& P' @
  19. for m=1:M1
    7 D9 t) f% @0 v1 n$ e
  20.     for n=1:N1
    / A5 S( n3 C& U# |% `: G
  21.       if m==n
    6 R4 ?2 J& G# W/ |
  22.           D(m,n)=A(m,n);! \  D5 n9 N- y; T8 d# j
  23.       else
    $ _+ y0 E; D- K' [5 b3 B: ~
  24.           D(m,n)=0;3 f4 U4 ~& z( t) u0 F1 H% w
  25.       end* T; d9 f3 {- H/ b
  26.     end1 N( m  u* C* s7 i: F$ ^& W% o- u
  27. end
    5 H  D( c" {6 [! A# V9 Q- N9 |
  28. LU=A-D, k( }7 X: {0 ~' g, D
  29. M=-inv(D)*(LU)& p+ L5 X& k3 r" m! H
  30. f=inv(D)*b
    ' T/ a  E( F% h3 }0 m3 ?
  31. X=X0;( T$ }! h# @* ]' E& I
  32. %特征根求解;1 D0 Q& V. g; E: {1 V) d
  33. [v,d]=eig(M)
    ' q! A, k. m& w2 j, [
  34. % vpa(M);; u& {6 a9 J! j3 z# K4 B4 v9 d7 [8 h: o
  35. for i=1:k;
    0 B$ M0 h) `$ X/ `3 U- B
  36.     X=M*X+f;( k' Y: N: q- x" u6 n8 U
  37.     OUT=[OUT;X'];
    ' Z+ |- H8 D! r; a3 R( E, f1 V
  38.     K1(i)=i;2 x+ Q2 f) b) @
  39. end
    + M5 N& u% t0 o# h5 S  H( B
  40. K1=[0 K1]';/ b7 \' K- S; w+ }3 ~
  41. OUT1=[X0';OUT];
    : N' v- G% D  A+ ^% ]) k) O
  42. OUT1=[K1 OUT1]# }# t, N- h2 I6 f
  43. % vpa(OUT1);
    " ^; Z6 W. _9 z5 X" e0 w
  44. xlswrite('C:\Users\LENOVO\Desktop\雅可比迭代法2.xls',OUT1);9 c6 {8 o" `: o& D/ r
复制代码
结果输入与输出范例:
  1. 请输入系数矩阵:[5 -1 -1 -1;-1 10 -1 -1;-1 -1 5 -1;-1 -1 -1 10]
    ) W; u+ F% g6 l3 a  K
  2. 请输入b矩阵(列向量):[-4 12 8 34]'
    + w2 s. Z! P# x: k0 B" R0 f: s, I
  3. 请输入迭代初值(列向量):[0 0 0 0 ]'
    9 t& D$ ]7 Y4 c9 s" T. U
  4. 请输入迭代次数:5( g5 ~  J) Y5 R- c3 `
  5. 结果输出:
    + r; @9 M9 ~: o7 D# R6 C: P% Y

  6. 6 U5 j! I: m7 a% M& T
  7. LU =
    ) p& H* w& H5 X5 w- `
  8. 1 u4 a4 n  m" Y$ d3 ]
  9.      0    -1    -1    -1- r) T2 ?  S  b" t
  10.     -1     0    -1    -1
    ! J1 P) K$ i( h, U; a
  11.     -1    -1     0    -1) E; N/ x: @* C
  12.     -1    -1    -1     0: ^2 u2 w! g# |/ n1 Y2 u

  13. # D; ~# n/ U! L+ ~/ }2 p

  14. % L4 Y2 i, e; Z3 E- N7 K- R
  15. M =: u0 h2 u+ q: b1 Q. W& E( b; v
  16. / S* J1 w% E: }
  17.          0    0.2000    0.2000    0.2000# q! F, X! z) K1 o! I7 ?* s
  18.     0.1000         0    0.1000    0.1000
    0 [' J* t* s* o1 d# {$ e
  19.     0.2000    0.2000         0    0.20007 o/ Y: m, ?# f  u8 G+ p1 c0 C
  20.     0.1000    0.1000    0.1000         0+ W2 [: m4 m6 O& l" @. @" M: W$ y4 o
  21. 3 R/ {5 c" B# N
  22. ; ^; p) _) O) c. K* c
  23. f =( y. F) P9 i/ o0 A( o

  24. 9 k0 W$ O. P2 X1 L4 J* Z6 C
  25.    -0.8000
    / y. L0 U! D; Q; |6 c) B
  26.     1.20009 |6 M* j4 C$ J5 a0 p  F; w
  27.     1.60006 {8 z4 O- j+ t1 F0 B
  28.     3.4000" r' ]# L: z- B* B

  29. " ?: [" L# w6 c3 w( e6 v1 h: G

  30. 6 [' K) d: r' G; Q
  31. v =4 d6 N6 B% x6 ~0 y
  32. 7 o1 x9 H3 h% Q" D# J6 w
  33.    -0.6082   -0.7071   -0.5406    0.0000
    0 z0 T6 r+ c0 t/ g7 E
  34.    -0.3607   -0.0000    0.4558   -0.7071: R! [0 h' J; ?( |% I! e
  35.    -0.6082    0.7071   -0.5406    0.0000
    4 i+ r4 X6 n% H- W1 F
  36.    -0.3607   -0.0000    0.4558    0.7071
    6 u. N+ u, q1 |, ~$ @8 ~; I  X! T
  37. ) N" B8 c* ~. f1 a0 v! h, M; s$ v
  38. % }" f0 L7 E4 m" K- u4 |7 c! Q# c
  39. d =6 N) G. d2 s. U- d

  40. + ]" g/ Q6 r1 `1 Y) C
  41.     0.4372         0         0         0
    ( {( n# H5 {9 }" I3 N
  42.          0   -0.2000         0         0; M7 U9 P6 J$ d( _
  43.          0         0   -0.1372         0" j, ~9 k7 ~1 X+ M4 Y* ^
  44.          0         0         0   -0.1000, r% d7 m& H5 b+ d8 U$ Y
  45. ! K7 v% w0 F! U0 ?/ x5 x$ M
  46. 迭代结果输出:! N8 b# b& \  O3 E$ i- r( K, o! i3 I2 K
  47. * k+ u7 N6 r: o  a
  48. OUT1 =2 v; @/ p% |7 V. l% M
  49. 7 q3 R, D* k! p; m8 G1 ?
  50.          0         0         0         0         0/ h! N: }9 P0 H
  51.     1.0000   -0.8000    1.2000    1.6000    3.4000
    4 h. d! V) D' a0 Q
  52.     2.0000    0.4400    1.6200    2.3600    3.6000
    1 h+ m' y$ Z" I3 i
  53.     3.0000    0.7160    1.8400    2.7320    3.84208 |8 D  o0 P0 Y6 }5 B
  54.     4.0000    0.8828    1.9290    2.8796    3.92885 L  D% p% [0 r/ q
  55.     5.0000    0.9475    1.9691    2.9481    3.9691
复制代码
( q* \1 e! G$ M6 |9 w





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5