QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
  k: A+ w3 A+ P4 x7 D3 A3 u主函数:equation()
  1. function equation()2 D, f+ {  U) C1 n# J

  2. 1 G1 Q# u$ u3 Q2 F3 _$ V
  3. global sigma mu T lambda
    2 ]+ m$ h' q( b% z8 S
  4. 7 c0 Q2 c% A. `  i5 e- L, }8 b
  5. sigma = 5;   % 定义sigma的值
    : f( n  m+ {, @- H: ?) v

  6. * H8 z1 u3 A/ }8 s& u8 T% D
  7. mu = 0.4;    % 定义mu的值
    ) s0 t% ?' S( y0 x/ s3 B' e; T
  8. ) q/ B* O9 k6 R, G; e7 ^
  9. T = 1.7;     % 定义T的值
    . E6 D& B1 b1 f9 t# b
  10. \" F  k\" E9 z% h  h4 A/ n
  11. N = 1;# U5 ?; k: _, M& r

  12. 7 A- W% K3 ]. K2 @- Y
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点$ S& a6 p5 A5 N& P- i7 d  r7 i, z

  14. $ Z7 o5 l9 V\" M- {, O
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    4 A; k. ?3 L: R' S4 g- I

  16. 5 d; w9 o/ A% Z3 N. E0 V' @1 g
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里; T1 [# S/ s* C) e' e

  18. & j, h, U, p. p9 o) `  s
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    # L\" C9 `! \' @' X* j

  20. ! ]& w' I* K9 ~% Q( w. s8 z
  21.     N = N + 1;
    3 Y+ b& [* x: s; A6 ?9 s: m

  22. ) l* P7 r1 x9 [( l* |
  23. end+ F8 F  e$ q3 W& P% }

  24. \" i0 y+ x; s6 P
  25. lambda = 0:0.05:1;7 m5 X: _+ J' [4 J\" @

  26. % o& [8 x& b. f9 W; ~
  27. plot(lambda, value)   % 绘图% b! ?& O6 Y5 E2 b
  28. : o+ e7 d7 o! b; W  Y
  29. title(['T=', num2str(T)])   % 给出图的标题
    # U& z+ {2 f8 J

  30. ; a& ^  {3 T- w& k7 q
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)3 L) ]) u* p* D, o

  2. ! w6 ?; L; B+ V+ B' x\" e\" ]
  3. global sigma mu T lambda
    ' a1 H1 b8 K0 R* P& A% n
  4. 5 i: D6 \5 ]6 i. b
  5. %x(1)~x(8)分别对应8个未知数( f$ i' s, {, M+ S5 p+ i

  6. 0 a# Z/ V% Y' s& B# V' Q& A
  7. Y1 = x(1);    2 C& y1 h2 t4 \* \, S

  8. ) W* O. l$ ^( @* k
  9. Y2 = x(2);1 x, K* \4 b1 E) E* D7 ^
  10. + `; p; y; C8 {2 H1 r& L( M
  11. G1 = x(3);
    & N. B) ?. \* @: a$ d9 @% {0 C
  12. ! m$ H; d. [4 p; h4 h, K
  13. G2 = x(4);
    $ `1 |1 s& s5 l( s

  14. 1 `! Z1 r' j' ?& `
  15. w1 = x(5);' M+ v\" b& \7 A0 B9 `. r; @6 f( I
  16. ' r\" t/ S7 V\" v3 ?
  17. w2 = x(6);6 @! `% G& H; B
  18. \" k( [! d0 s- x/ a( l8 d5 _
  19. omega1 = x(7);0 T/ B4 s2 @, P# F, e, V, E

  20. \" T& G7 @) H$ B; {% z
  21. omega2 = x(8);: s. \6 |5 N8 R' {$ Z7 ?

  22. ( F  ~0 r* [5 [; j: T8 J5 s& e1 V6 m
  23. %定义8个方程
    ! G  P% o; B5 }* N) M

  24. * a9 d( n2 @3 ?
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;6 }\" e+ U7 x3 c# N& Q% C
  26. ! \; P% M# L6 E9 c
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;$ k. i2 O$ G9 |\" u
  28. + E. H3 v3 I5 m: L3 N: A
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));: j% L- u/ G9 V6 ^0 F0 ^. s

  30. / V7 y, z* n: `* e
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));& N\" q* u! @& p/ k0 E0 Z9 d8 W
  32. \" |: [! d+ ]. `8 Q& |  Z3 v\" t
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);( s3 @- X+ E6 j# Z; E' w
  34. : q5 R% l2 |- o$ W# g
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    # f' H  ^5 @9 P) C  V% H
  36. * E% z\" l& y8 F3 K
  37. eq7 = omega1 - w1 * G1^(-mu);& c7 E9 ^% g% U
  38. 8 ]* w' x. i\" q
  39. eq8 = omega2 - w2 * G2^(-mu);( a0 @2 U% D) n& O

  40. * n4 s5 z4 z, Q
  41. %返回方程组
    : |+ n) b% r0 L
  42. # j; L: Q# {  u
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    $ w  `7 i, l* O/ C1 P( q/ Q
  44. 3 l6 W# i) j$ t' t8 b( K
  45. end9 U9 [1 L* X6 L6 o, w

  46. 3 }: R4 H4 d* V
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
/ o! p: U& h. P" Y: W) F, J7 b& s5 z% c- ^, z# w4 W# z0 {
结果图片如下:
6 p6 j0 q1 g, ^ VeryCapture_20231118115514.jpg
; ~: Q* T! m: F6 K
' k' G; J" g- t4 S! V4 A. M3 i. W
3 x* T; U  p) |3 ~* Q
' x7 D5 j- k; j6 P6 U7 j

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, 2026-10-17 08:00 , Processed in 0.305244 second(s), 54 queries .

回顶部