QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2240|回复: 0
打印 上一主题 下一主题

matlab实现 8个未知数的非线性方程组的求解

[复制链接]
字体大小: 正常 放大

1175

主题

4

听众

2803

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。; \: K! o% B0 J6 s* ?
主函数:equation()
  1. function equation()8 N( d9 c3 m- p) @; @: _

  2. 8 k( V3 v/ ]) C1 O9 o2 y/ W
  3. global sigma mu T lambda
    4 l1 j' W+ X  H& Z/ |& n

  4. 9 c4 G0 Z, z- K6 A; l8 m5 q
  5. sigma = 5;   % 定义sigma的值
    8 k( l! ~; P6 F1 i
  6. 9 w& B* {8 j/ q% S' Y
  7. mu = 0.4;    % 定义mu的值
    ! F/ m9 q& A+ R/ [8 K
  8. & ~% m$ Z% w0 W
  9. T = 1.7;     % 定义T的值
    8 Z& R) ^; F6 X& ]: O4 u9 w' e
  10. : D9 K1 I/ f# t8 i  [. T
  11. N = 1;
    ( e  n4 m7 g- u6 G

  12. 4 f! s+ b9 c2 o/ Q4 j
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    - S( N\" d. j. Y7 Y9 ~) X! m

  14. 5 R& }5 K0 {1 _
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值) s7 K2 z: @6 p4 C& p8 B. r7 j

  16. : o4 j+ v: m/ x; A1 T5 }* |& |7 l
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里5 i. r' j4 T( @+ o3 L1 m
  18. $ S( k: S/ C8 D. _# {9 I' L* @$ x6 j
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    , ]' Q0 x8 n7 }: G
  20. ) N\" g2 A6 a, y  D  d6 U\" \
  21.     N = N + 1;
    ! I) `; e, A- U# O4 Y; Y& p% q
  22. * f7 E3 V, u. W2 Y. f2 T* F7 m
  23. end0 U. c4 A. j* n; m& F. c! Y! D  v

  24. 2 w! g3 T# r( G) D: g9 g\" c/ _
  25. lambda = 0:0.05:1;# ]( O) X& I/ @( d: W7 N
  26. , F) d. E% W7 j1 D+ R$ L, M( h) \/ l
  27. plot(lambda, value)   % 绘图
    \" _! L' i7 M% C' }
  28. - s! g4 x. l: W: e$ C! b& m/ L
  29. title(['T=', num2str(T)])   % 给出图的标题
    , S\" y: K! F. S\" [8 W8 w

  30. - x8 r8 G7 Y/ P! N7 B8 T( W1 j3 [: \
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)\" l; t6 g7 @, f+ p- M% d\" i
  2.   _3 _1 t' `3 K4 F$ l
  3. global sigma mu T lambda
    1 l4 E- V8 r& L+ t. U2 K
  4. 5 i* {2 Z& t! G, S% I2 ^: X3 c
  5. %x(1)~x(8)分别对应8个未知数/ I) y4 z6 p* m2 ?$ h6 V: q

  6. 4 r- ^. ^/ f1 Z  M
  7. Y1 = x(1);    - E) C- t/ Z3 ?( ]  j& B
  8. 2 q% \8 g& \* \  m. f
  9. Y2 = x(2);
    / p0 j' p9 m& o! N) F% T

  10. ! H* t0 ^. }; X+ J' u
  11. G1 = x(3);
    * J0 F$ ]5 N  ]1 h

  12. ' _0 E2 G  \+ J$ y8 I7 @
  13. G2 = x(4);
    ) n+ W. _- ~! ?$ e1 `
  14. . X6 C/ J! _  i
  15. w1 = x(5);
    9 \% j7 M. e- J  n: b1 f

  16. 9 W\" Y9 c' I3 W\" _) a, E
  17. w2 = x(6);, |& ?& ~: G) W\" s* X
  18. 0 F6 k; f  D2 A$ T* E' ?
  19. omega1 = x(7);( |/ a8 Z6 C$ ?5 t; a

  20. 3 w( J; e7 E9 S/ s; s! ^\" c
  21. omega2 = x(8);+ q6 ?6 v; Z- h) f6 r7 v* z

  22. & f. y9 z8 F# C; ]  [
  23. %定义8个方程( S/ i. [2 h) X

  24. . B! L0 O1 ]$ f+ f# r0 R
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    9 n* O( x$ z$ h) \

  26. 2 D$ g. `) X$ |  z
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;. o% Y$ W5 S& o

  28. ! p! K$ o9 ~3 n\" f. j; l/ K
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    ; I3 {\" W$ p+ y\" }
  30. # C, f: W9 _1 e2 o. d. e' i
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));9 k7 @/ R2 D3 w) ]1 S5 ~

  32. ) U7 l9 x$ `4 K; P, G% j
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    ' j4 ~4 S! s1 C$ F1 e* S- E
  34. 5 o4 R8 _% K) b& B; p- `
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);1 ?- O\" [/ ]. }

  36. / P: ]5 H  K0 u! Y3 w9 |% }: n
  37. eq7 = omega1 - w1 * G1^(-mu);
    2 S- [6 |: B# t% A+ c

  38. % j8 P7 V3 _5 N+ u  u6 `1 l3 z  m\" Y$ y1 q
  39. eq8 = omega2 - w2 * G2^(-mu);- B0 W, w% X\" K, [

  40. 8 _6 r- o! T2 ~2 ^- r
  41. %返回方程组3 ]  n, A: i\" K0 B$ N; o
  42. $ A: a, ?9 G) V' X9 e3 f! ^
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    8 m- P5 T' F& z( u
  44. # t2 k3 Z1 j, J& n. i0 B3 W
  45. end1 x3 q. g\" f( v3 P2 {. v8 @

  46. . ?  N  Y, z+ O6 T1 F3 u3 ^
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
' W9 E3 j6 a+ n  `- U$ I# h
1 C" J2 ]& b; U4 R5 o结果图片如下:& q  z3 T. ~: h5 E
VeryCapture_20231118115514.jpg 3 n" K- j" Q. h2 \7 K
7 Q9 o; m( U. [4 u, ^4 m4 c9 A

: v5 D, W: R2 Q. W% A5 ?( D% `7 i$ H- m; s$ s5 T) d6 a/ U

MATLAB求解非线性方程组 fsolve源程序代码.rar

872 Bytes, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-7-5 18:54 , Processed in 0.300239 second(s), 54 queries .

回顶部