QQ登录

只需要一步,快速开始

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

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

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

1175

主题

4

听众

2828

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。( Z0 p& d! e/ N" E' f) b$ j
主函数:equation()
  1. function equation()
    , S) L* o6 E3 q\" G: F+ }# e) y

  2. 3 o\" r' t( I3 k7 |* k
  3. global sigma mu T lambda  {% y; v+ l4 X3 P* b
  4.   W. h, N, B, Z\" n+ ^2 c) J3 t
  5. sigma = 5;   % 定义sigma的值
      u2 J! Y% m* S* z* U, [

  6. 8 |. t, I. H7 A5 w  H4 k' F
  7. mu = 0.4;    % 定义mu的值
    + r  ~( s- m( w5 H8 X* X
  8. ( L, Y- A$ s, \& R5 V* {% j
  9. T = 1.7;     % 定义T的值/ W, R3 \; S$ n, S. r
  10. 7 K# D  w% E: t3 N6 X
  11. N = 1;
    3 P/ x0 I\" L- `; }' j
  12. ! t; ^$ ~% }. e- _* Q; [' p0 j
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    / m1 r% H, i% n2 m
  14. 4 \7 b/ h; T6 Z& Q& H, i% d4 Z
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值6 n4 {& ]- s! P\" W  U* F- M5 p7 s3 ]

  16. * S, U0 f% T1 d
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    ; x+ q+ p, n, V4 d; s
  18. * B- v7 ^' y* {
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里3 R6 H- C! V: J3 h, ?8 G

  20. + p  z: X3 e4 K; m  c& R\" p
  21.     N = N + 1;
    ( H' W: m5 T4 ]) e! ], i
  22.   L: e0 p0 G9 @3 L4 y; V
  23. end( ^) K8 H4 S% K$ V; E
  24. . M# f$ W. J. {
  25. lambda = 0:0.05:1;' I, }' m1 M& u) D- I
  26. 5 ?8 i1 ~3 C8 g. l
  27. plot(lambda, value)   % 绘图1 g4 ]. S- @, ?: H$ d  \5 V
  28. 7 s\" o1 A! r4 Y) N  \& `7 `
  29. title(['T=', num2str(T)])   % 给出图的标题) Z  z$ ?$ F5 V, i! i
  30. % c' c+ H+ Q2 o' ]
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    - n  W# y  A2 {# K

  2. . e% @% q* R9 `: ]
  3. global sigma mu T lambda
    ( W% D1 X5 k, f9 E2 G( Q3 j  r

  4. / x, \8 W: z2 O
  5. %x(1)~x(8)分别对应8个未知数* Z7 e: G! o3 V2 _

  6. & b& e1 R2 W- n: z- k6 m# V3 s
  7. Y1 = x(1);    1 j% ?% G5 K6 R4 ^
  8. ( Z; ?/ \: [% _7 [
  9. Y2 = x(2);; I& A1 ^0 K( M  P6 _* z

  10. 3 a, l\" E# \1 L
  11. G1 = x(3);
    ' c- w' b# a- ^7 @: x
  12. 6 T7 y! r\" [5 x# D: Y! L8 G
  13. G2 = x(4);
    3 X' g6 i% z7 V\" C4 r+ {
  14. - i: H* x/ ~$ i2 M2 s
  15. w1 = x(5);
    0 G4 v0 k4 o: ]! A4 M4 g' U9 z
  16. ; ?9 [6 I) U: S\" Q7 D2 ?
  17. w2 = x(6);3 i7 t4 H& Q8 f( N( \2 S

  18. + G9 `; m: h( Z- \9 p2 a! O2 J
  19. omega1 = x(7);
    9 K0 W! {5 ^* H, h- Y2 Y2 ]
  20. % B\" @$ Z\" g5 d; X# r
  21. omega2 = x(8);' u* ~) D1 d1 J* t; |4 \6 r2 f
  22. ) T% Y% s& n4 l7 r* ]9 S
  23. %定义8个方程
    2 W- Y0 R6 k$ W

  24. 8 B) x. V4 s  u9 N# B( W) U% b
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;, U5 }: S5 T, r

  26. ) F- U. C8 q6 Y! w$ D6 d
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    % r% Y* j# N7 Y$ s) M* X  B

  28. ) w( V  q4 }8 @  C\" [  N
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    # g/ u  P6 f5 D# G

  30. 6 k8 l4 ?/ y( V
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));\" D* t* U3 F) c* i0 r- x$ d

  32. $ w0 G0 J+ k3 d$ z2 h# c. w
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    * e) t6 j8 N: ?

  34. 8 k\" O  J; L3 ]2 g# p
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    ( B  A& T\" g* O; U4 B' s$ h\" I
  36. 7 X1 T) V9 z\" a# d
  37. eq7 = omega1 - w1 * G1^(-mu);7 `5 t! G9 _6 b3 z5 F2 G6 X
  38. & H3 t7 a5 r3 W, V- J/ c3 _
  39. eq8 = omega2 - w2 * G2^(-mu);- X+ G' ~. k+ t2 |

  40. * O  ]- @, o6 b0 Z8 S0 d
  41. %返回方程组
    5 F( g# ?( B, n- Y3 J% l5 V

  42. & u# u8 m5 i\" F! h6 A
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];4 \0 [( `& `6 ^7 c6 t2 h) ~
  44. \" N) |( Y  [) V/ I7 X* y
  45. end8 z3 ?# ~- r( e/ ?- T
  46. 1 b$ \2 H% |3 n: Y: `\" M2 D
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
1 _( f5 ]" l+ ]0 H3 b- h# R, p$ J. {2 w' t0 A+ }: L0 N
结果图片如下:
* ]7 x2 O+ o$ a3 k/ ~, x& c VeryCapture_20231118115514.jpg
5 W1 }8 i' p+ m% J( ?' }
( ]1 S. m  m: j9 F- \9 q4 D
- f$ U- ^& ]+ [, e) k7 x# q
: r# j2 R3 Y9 f2 I6 h" [

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-24 01:28 , Processed in 0.444776 second(s), 54 queries .

回顶部