数学建模社区-数学中国

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

作者: seven3069    时间: 2016-10-12 22:38
标题: 雅可比迭代法解线性方程组
雅可比迭代法解线性方程组:
  1. %雅可比迭代法解线性方程组;( S! W  I; J2 S9 D4 s8 ]) I% V
  2. clc;clear;close;
    6 K% J% N; O- y1 m
  3. % digits(4);, S& P* y/ L( B$ q5 C5 J3 X
  4. A=input('请输入系数矩阵:');" k0 o( L4 \1 Y4 H; @% M& ?6 f) z
  5. b=input('请输入b矩阵(列向量):');8 `9 K6 w# X; w4 D4 M
  6. X0=input('请输入迭代初值(列向量):');! Y5 m$ u. R5 s9 k  z
  7. k=input('请输入迭代次数:');
    ' X" \, M6 C) D1 ?" _" x
  8. [M1,N1]=size(A);. \* e$ |. Q5 u- P$ d
  9. % X0=[3.1481 4.8 2.037]';
    ' M4 E4 W! \. Y* N" |0 S
  10. % f=X0;
    ' Q7 R8 i# O9 t# m
  11. % X=X0;: p7 |, U$ s. e0 O+ S+ e* G3 E
  12. % vpa(X0);6 p& u# F4 [! U0 g4 X  s
  13. % vpa(X);. x% p5 a8 m1 E4 Q: x$ h
  14. % vpa(f);
    & a/ n. F8 ?  V2 b1 |4 [/ B
  15. OUT=[];* b0 |  j: \- s9 _9 x6 j
  16. % vpa(OUT);" V2 _! H4 l0 S1 o5 r+ c5 {6 L
  17. %M=[0 -0.2222 0.0370;-0.4 0 -0.1333;-0.0185 -0.0185 0];# O) w2 D/ A6 ]* F. L# b( n# M
  18. %求解M矩阵;* K  W3 Z7 ?* a" m
  19. for m=1:M1' i" o8 T1 g( W5 E
  20.     for n=1:N1
    4 P; _/ c0 f  _
  21.       if m==n
    0 M# L5 L: N4 D: Z$ p, o" ?
  22.           D(m,n)=A(m,n);% `/ G9 w. Q% {$ k5 t: P
  23.       else' y) \* ?) k  o' L2 r& l/ T
  24.           D(m,n)=0;
    . Z2 E/ \7 i* k
  25.       end; {1 K& `1 [, W5 B$ v& e
  26.     end0 \5 r8 l' o# Y8 d' H! s! t
  27. end9 Z" y* O3 ?1 M4 ^( ^* ]% ~* O, r
  28. LU=A-D6 D5 f7 |. t* I( c1 c, j& l" ~+ h
  29. M=-inv(D)*(LU)
    . d5 y1 C" s0 Q/ J' \7 a7 Q
  30. f=inv(D)*b
    # C: P" x! o4 u4 d" l1 {$ B( }& n
  31. X=X0;
    " j/ F1 E* ?: [& w
  32. %特征根求解;
    ! j3 {, U+ Q4 }
  33. [v,d]=eig(M); }, k' F, q8 ]6 S
  34. % vpa(M);( I! J5 R; }& f# F
  35. for i=1:k;5 c% A5 p' A8 k2 Z% l
  36.     X=M*X+f;7 h1 x9 E( ?0 x. Q$ Z
  37.     OUT=[OUT;X'];
    : {' j) Y- _, m' Z
  38.     K1(i)=i;
    $ Y$ Z$ x! S# p# @& G+ ]
  39. end
    8 G6 O0 B! v5 g1 k3 r
  40. K1=[0 K1]';  p$ u; D, J' Z5 c1 @; S  Y! D' e% [
  41. OUT1=[X0';OUT];
    ' U' r* Z! `- G3 i7 W: E4 v
  42. OUT1=[K1 OUT1]* B6 l5 u9 s0 ~. V; X& [
  43. % vpa(OUT1);5 _* F; s5 s+ J7 ]1 H  f
  44. xlswrite('C:\Users\LENOVO\Desktop\雅可比迭代法2.xls',OUT1);
    4 J  X+ ?3 X  ]/ o" a% B5 }
复制代码
结果输入与输出范例:
  1. 请输入系数矩阵:[5 -1 -1 -1;-1 10 -1 -1;-1 -1 5 -1;-1 -1 -1 10]
    - X% b/ U5 D$ j, Q, w
  2. 请输入b矩阵(列向量):[-4 12 8 34]'4 F1 f- I/ c7 s1 w! \2 ^& x* X
  3. 请输入迭代初值(列向量):[0 0 0 0 ]'/ O, O- {4 v# B; }, |& z  W
  4. 请输入迭代次数:5; u* |; V8 W) X" r! p$ M
  5. 结果输出:9 X0 |9 F2 y  Y# d6 Z# s% P' o) D
  6. ( J+ @" z: Q  h9 {2 p3 y
  7. LU =
    - o* Y2 J" @# X$ w7 m0 R5 a/ W2 ]
  8. ) g) O$ J" f9 {" \! @5 G) v* f% j
  9.      0    -1    -1    -1
    - e3 i$ m8 v; \% q- M  U& B- i" w
  10.     -1     0    -1    -1
    & y& ]6 I3 i" i. A" J* p  j
  11.     -1    -1     0    -1
    $ b7 v) _( c) a
  12.     -1    -1    -1     0* d9 @' N' c; c; @- ~
  13. 9 A5 G% h$ ]$ ^: }& `# Z
  14. - U2 Q! Q# D4 `; L% ?# i# G
  15. M =
    ! }4 l. l4 v) s+ ]7 K

  16. 0 i7 t% t. g" [
  17.          0    0.2000    0.2000    0.2000& l$ k8 ^- }4 M9 H/ p$ x. a- ?
  18.     0.1000         0    0.1000    0.1000
    8 y& V. D% C3 K- m) c
  19.     0.2000    0.2000         0    0.2000
    ) ^/ f1 t: M1 ?; W
  20.     0.1000    0.1000    0.1000         0
    ' R4 X" X" z, l- o2 X3 O1 n6 R
  21. & `9 J1 P# E, D5 }# M* h3 i8 w

  22. 0 ]& U" E  f4 N! K, [1 U/ \
  23. f =  ^1 a3 J5 e# N

  24. $ X: f( E% O. L7 D9 L% f: z
  25.    -0.8000
    2 Q( Z/ M- p! ]$ u
  26.     1.2000' B% W: w" f+ ?6 x) |( v
  27.     1.6000
    ' W& V" \( d: W& c, k% m* b
  28.     3.40006 H; y/ a/ u0 P/ A; s: J

  29. - i, e1 H* K2 X0 M8 T
  30. 7 M+ `' q' K; z0 f+ M  s# t
  31. v =: f4 i3 f5 M( Q
  32. ! ]5 x" D8 }5 d. q: @: v! k. X
  33.    -0.6082   -0.7071   -0.5406    0.00001 {5 e$ T% ?1 e) n0 Y' W
  34.    -0.3607   -0.0000    0.4558   -0.7071. H3 F- E& ~9 @$ U
  35.    -0.6082    0.7071   -0.5406    0.0000  S& S9 y8 t8 L2 U5 Y4 J
  36.    -0.3607   -0.0000    0.4558    0.7071
      d9 L8 f( r4 J% [

  37. 0 _6 g1 e# I7 h
  38. * ^% h6 ?/ I6 U; |) Y
  39. d =5 m; J& e8 O" M  _

  40. 5 `4 l$ `# K* c6 x& A+ H
  41.     0.4372         0         0         05 a6 d- ^" c2 r4 i3 @
  42.          0   -0.2000         0         0. [- B6 z9 v9 P4 \, I5 U3 W9 x
  43.          0         0   -0.1372         01 t. @, M% i* {" G6 h
  44.          0         0         0   -0.1000
    7 i% v* \& E- _' `  I

  45. ) X, j6 O4 r" J0 X
  46. 迭代结果输出:
    ( Q% l* u" P, }( ?: V$ |: X8 f
  47. ! `: ?0 H/ c% {9 w" y* E: Q
  48. OUT1 =
    7 S. x. y3 b: B0 ~1 I# n# R
  49. 7 W) f3 H* l# l) \- i; b: U. D
  50.          0         0         0         0         09 T+ b4 o* v! r) l6 i
  51.     1.0000   -0.8000    1.2000    1.6000    3.4000
    # R' F( G" i* _+ Q8 W
  52.     2.0000    0.4400    1.6200    2.3600    3.6000
    4 a) _% r2 L- q. D
  53.     3.0000    0.7160    1.8400    2.7320    3.8420
    3 c  J: J2 f+ S% E" A
  54.     4.0000    0.8828    1.9290    2.8796    3.9288
    / `5 S! A& t4 Z9 q1 |3 w
  55.     5.0000    0.9475    1.9691    2.9481    3.9691
复制代码
4 u. k6 f0 M# ]: ]1 H- D4 X





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