数学建模社区-数学中国

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

作者: seven3069    时间: 2016-10-12 22:38
标题: 雅可比迭代法解线性方程组
雅可比迭代法解线性方程组:
  1. %雅可比迭代法解线性方程组;
    # T( R3 K- O- }. p2 a: y. k% o& g
  2. clc;clear;close;
    4 e. j/ h$ b2 J+ p3 h9 z
  3. % digits(4);
    ! F  O1 f- A- p: D8 o
  4. A=input('请输入系数矩阵:');
    - u% p5 q: B  \2 O
  5. b=input('请输入b矩阵(列向量):');
    + d  B/ J9 L/ b$ C
  6. X0=input('请输入迭代初值(列向量):');
    . j! V& W. o& s, b$ f* j
  7. k=input('请输入迭代次数:');
    ( [- L6 j, Y) ~- d$ X' s( C
  8. [M1,N1]=size(A);( _# k' [2 s+ S5 Z! O  Q! _$ i
  9. % X0=[3.1481 4.8 2.037]';* ]% Z9 W" A5 i3 I( ?8 H
  10. % f=X0;
    " u4 L3 D" y! `
  11. % X=X0;
    1 ~% W0 z2 L% i$ b
  12. % vpa(X0);
    # N" u# H& F; F" t+ W9 L
  13. % vpa(X);6 y& V8 d! e! r& a1 J1 ]6 u
  14. % vpa(f);- ]3 [# B* Z* Q9 N2 {' z1 j
  15. OUT=[];
    " C# U  x4 O+ ^' H3 M+ g' j8 C* d0 Z
  16. % vpa(OUT);! P' D+ `) V$ `* e8 @
  17. %M=[0 -0.2222 0.0370;-0.4 0 -0.1333;-0.0185 -0.0185 0];
    3 X) c1 L# b, S# S; b
  18. %求解M矩阵;6 k" Z' w6 C5 x, g3 u; R
  19. for m=1:M17 s. m. o/ `) N3 t
  20.     for n=1:N1
    - ~1 w' \' e" o& R
  21.       if m==n
    2 T( j2 ]2 c) u/ x
  22.           D(m,n)=A(m,n);2 Z) g6 I; F% i5 [. X# D6 M
  23.       else! m# s4 y* {/ r8 e, Q
  24.           D(m,n)=0;0 ]1 Z" V% h/ D
  25.       end
    + k! k- s! b1 S# h- ?& |! g
  26.     end
    8 c+ u+ X- N$ w. x
  27. end& f* ~8 V4 ^6 r
  28. LU=A-D
    " z! O. f2 D+ Q! u7 p
  29. M=-inv(D)*(LU); R3 Q* k# e; n% d* a# L# p& d
  30. f=inv(D)*b: G! c; a, }$ S+ s& A5 x
  31. X=X0;
    $ }4 ?6 e( `  x) U$ _, R( Z
  32. %特征根求解;4 H& `$ z$ W; a" c  A$ e
  33. [v,d]=eig(M)
    : m# K% t0 J4 x* N$ n
  34. % vpa(M);
    ! R  w1 J# W4 e! s- ~
  35. for i=1:k;; a7 h, t$ {1 y( m  ]; x
  36.     X=M*X+f;
    * T  t$ c* j: F* h2 e# E
  37.     OUT=[OUT;X'];) j6 e, C1 X! `" b, k$ s0 I
  38.     K1(i)=i;
    8 A5 ?6 g1 b3 m- K- V( Z
  39. end
    1 m6 [7 c0 P: e. f: p' U
  40. K1=[0 K1]';$ F' a! ~4 d/ E" _3 M9 T. z6 K
  41. OUT1=[X0';OUT];
    ) H- ~2 l8 |( q' H5 x
  42. OUT1=[K1 OUT1]
    - r+ C4 c- z+ X: T& V# J
  43. % vpa(OUT1);) M: }) j3 U3 c. F5 b# J  k5 T
  44. xlswrite('C:\Users\LENOVO\Desktop\雅可比迭代法2.xls',OUT1);% i8 }+ V* e. C0 ~
复制代码
结果输入与输出范例:
  1. 请输入系数矩阵:[5 -1 -1 -1;-1 10 -1 -1;-1 -1 5 -1;-1 -1 -1 10]
    9 k/ @; j2 Z  F. W1 q
  2. 请输入b矩阵(列向量):[-4 12 8 34]'
    4 X2 F, R! Z  Z* o3 b0 ]! Y
  3. 请输入迭代初值(列向量):[0 0 0 0 ]': w+ R, q4 j2 I, C
  4. 请输入迭代次数:5
    . I: u) J) E, j
  5. 结果输出:
    - G8 U/ D9 j; L# w' h1 N
  6. ! {" l% A+ {, ], ]
  7. LU =
    , m& d. M5 q# e/ M+ s+ Y9 P

  8. 8 Q1 P& a' `# A& y" \9 G% T
  9.      0    -1    -1    -1
    + X2 u- t2 H4 {) K) F
  10.     -1     0    -1    -1
    - |3 z9 J: X- c7 S: p+ D4 F
  11.     -1    -1     0    -1
    ! {4 q, r7 b" U" b) A/ g! A* y
  12.     -1    -1    -1     0
    / k8 A4 Q* G- @# y; d  Z
  13. / z4 i: I6 ?: V- v, E

  14. 1 p: }2 C9 X" |" B* d8 j3 h8 a( ]2 y
  15. M =. w! ]8 T9 n3 \

  16. # h' k$ a+ z, `: D! e# M+ q
  17.          0    0.2000    0.2000    0.2000
    " L4 r# g+ |1 j* A2 f+ k
  18.     0.1000         0    0.1000    0.1000
    ( M: ~5 {4 h! @0 s
  19.     0.2000    0.2000         0    0.2000
    3 R0 ]) x& A  v% q
  20.     0.1000    0.1000    0.1000         0% w2 J" S( m; G$ _6 h* G8 A
  21. " }5 \5 _6 s2 p, N% f- ~2 |

  22. % \, D5 X; ~3 o/ u
  23. f =7 M' O5 _* H$ I6 K8 q

  24. ' x  ^6 [: K+ w  b
  25.    -0.8000
    , l$ a/ X8 L3 U! H- o. N% ?
  26.     1.20005 c1 X7 m! F0 m% S
  27.     1.6000
    + g  @3 ~- r) }- w9 s
  28.     3.4000
    2 z, l( c8 c* i. u' w
  29.   R, W$ C* {2 c; D

  30. ; U8 W% L; v: H
  31. v =% w" G# d$ q6 p  N  c
  32. . ], e, D2 j8 {5 j2 Z0 r$ _8 |
  33.    -0.6082   -0.7071   -0.5406    0.0000
    , g6 l/ o" ~; [) z
  34.    -0.3607   -0.0000    0.4558   -0.7071
    5 K  Y* o% h- m# U9 T& p
  35.    -0.6082    0.7071   -0.5406    0.00008 c; v. O4 ^* e* v
  36.    -0.3607   -0.0000    0.4558    0.7071: v) d1 F! x/ H7 G0 E$ f1 j8 }2 @

  37. 7 G2 T2 M9 \# A1 E9 v) n: h0 Z

  38. , b" i8 `4 `/ E) d; s: U8 p
  39. d =1 ~/ e. D8 Z5 l) y+ I$ ?# ~" |7 `

  40. ) h5 T& S7 [% e
  41.     0.4372         0         0         0
    $ O; b- ]: k# P- o, j( j, I
  42.          0   -0.2000         0         0$ N  |' U1 z/ i% \7 m
  43.          0         0   -0.1372         0
    ; E! J8 ~( P! Y
  44.          0         0         0   -0.1000
    8 U5 p  O( |' M5 A4 A* Q; s
  45. ; S6 J: I5 N& \7 o9 |5 d* W. |
  46. 迭代结果输出:
    2 i) x9 U( `9 d. G

  47. ( K) {( L( o- ~# ?% c6 O
  48. OUT1 =- q- O* ]+ @4 q

  49. ' W4 t8 i/ W* Q
  50.          0         0         0         0         0
    , h1 k, |8 y" k+ l+ \) U
  51.     1.0000   -0.8000    1.2000    1.6000    3.4000! R' f! Z8 S, p4 }0 W2 G: }
  52.     2.0000    0.4400    1.6200    2.3600    3.6000
    + d  A0 M( G9 U; z# y% r/ Y% L
  53.     3.0000    0.7160    1.8400    2.7320    3.8420
    7 j& N" y9 S2 Z7 i7 X" o# v3 @- T
  54.     4.0000    0.8828    1.9290    2.8796    3.9288, b: @' N4 w1 ~0 e! t/ N: ]
  55.     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