QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
/ p1 u' [+ i- |. C; ~6 A主函数:equation()
  1. function equation()\" m7 k; v, k  C$ g

  2. * }+ c1 A9 @% |+ ^! r
  3. global sigma mu T lambda
    # k1 a, I1 D) P2 w
  4. 0 S# G, d+ m5 C# O4 n' o: O
  5. sigma = 5;   % 定义sigma的值
    6 L- ?: P6 G\" f' e% i

  6. $ h0 o9 G5 M+ d9 f, G
  7. mu = 0.4;    % 定义mu的值: F0 p) g' b8 |
  8. , Z& o2 L2 k5 c\" K
  9. T = 1.7;     % 定义T的值7 Q0 H% u' J8 {\" W$ q

  10. ! F! |4 B2 c* z: r
  11. N = 1;5 g# Z5 s7 A; W0 r, W, q

  12. 0 }0 _+ [  I% d! ^( G! P1 F6 q
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    * l0 ]# `9 w; C- a/ ]
  14. 8 ^/ [' o+ y\" c2 O; z% Y; }- ~6 d+ O  r
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    & ^8 k# o; k\" [# [: s
  16. + ~* Z* P& O8 b8 H& a  H' j+ v
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    ) C6 v; O* @8 G; u6 f
  18. * D+ a! q# o0 w$ \$ u8 @; T' f
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    - T\" N+ Z% ^' U5 e% K6 b5 \; b5 n

  20. ) c4 p3 Y. S  w+ M+ @( Y! ]- R
  21.     N = N + 1;
    + p  ~8 y# |5 H4 o

  22. % @) E- g6 E9 f+ j8 V$ [: V
  23. end
    7 b' T* z* ?) O, r- X% `\" \

  24.   s% U9 N' F: e; R
  25. lambda = 0:0.05:1;0 R; f4 H- t1 {- G9 X+ e

  26. - Z4 i8 F- h$ w0 W5 y% v2 I* Z
  27. plot(lambda, value)   % 绘图
    ! c1 l0 y, T1 v

  28. ' `7 c, j: @, F. a) U5 R+ E4 L  H& _
  29. title(['T=', num2str(T)])   % 给出图的标题
      ^4 Y3 p4 b\" W9 p
  30. 8 G- Y! \0 ?% R
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)# `% r6 ], i, \: l
  2. ) P8 E* G3 X' q( c\" d# `
  3. global sigma mu T lambda
    3 V6 i; z+ @) i, }' G: D

  4. ' p: a; }\" S2 L- e+ u\" [
  5. %x(1)~x(8)分别对应8个未知数
    ( [$ ?- \/ ?8 [9 d; w
  6. # }; |: g& q% s8 u% s\" f
  7. Y1 = x(1);    4 [. T# `9 `4 m5 ^\" i

  8. \" ?% K9 j' S' _
  9. Y2 = x(2);\" b) |- {: o  m* n5 ?- e\" V8 K
  10. % T( m5 s) P- M/ `& c
  11. G1 = x(3);
    ( {0 x7 R' I# f7 @( B1 B. {4 `4 K
  12. 6 E( n+ h# z$ y! X$ d\" H
  13. G2 = x(4);# r- P+ M9 {3 D% h7 r

  14. ' f: T- c' t; X0 D' m( e* B* Z0 O
  15. w1 = x(5);! S) ~8 g/ }$ B: R\" U

  16. # W+ g& O) L$ h1 f
  17. w2 = x(6);; W7 |2 i3 ]: ^6 [4 h& j) b
  18. 9 h7 @% Z\" g& c/ U1 \1 x: K1 s
  19. omega1 = x(7);( {) G+ o& y5 Z8 e/ B, @

  20. ) S9 R3 o1 H- T' h- W
  21. omega2 = x(8);
    2 J3 L* W\" K# q4 }* M( I

  22. 5 C% o' D6 d) S3 f4 Z( f1 j
  23. %定义8个方程
    - U! [  N$ g# h0 M2 p! @& B8 {
  24. 8 i. p- R: h& @\" ~3 E
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    ! U2 ~' e* T  ?$ W& U% ]5 L1 a

  26. . o2 n( F# u/ w7 V2 t; n
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;2 m$ w* _0 T% J3 o' y. C

  28. 8 a2 z0 v' G# K- K: b, p
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));6 f: ^, x1 z  N3 p- S6 @4 S7 w9 S

  30. 5 G% }; m7 X3 i+ @( Q8 i
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));& c1 O. U\" P  H3 M2 n7 L

  32. ' l: C, I; ~6 Q( a! G$ d$ b1 b+ @
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);, H  Q/ k: N1 z1 U* ^

  34. 8 m\" c/ I0 i, ]\" U9 v6 V' E
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);. {5 T1 @& Z- }

  36. $ @; N0 p+ {7 \+ j; |: T
  37. eq7 = omega1 - w1 * G1^(-mu);
    ; ~' x* c/ C# ?2 Y& V

  38. 5 A* Q8 Q! U3 a7 |( i/ p  o
  39. eq8 = omega2 - w2 * G2^(-mu);% d\" r2 L6 `/ b$ p1 Q* R8 ^2 T

  40. + J5 b- l3 G3 _' Y
  41. %返回方程组
    ; y' I7 Z\" z) B0 K\" Q8 Z
  42. $ P8 V$ l- p$ K/ e$ C
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    * z2 d- k\" _2 B& l

  44. % n2 f, w+ p* [( X% O; \7 P
  45. end
    4 o  q! |* v' |

  46. 6 O  a\" }) s5 Y- U+ L6 C# R
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
5 l0 t& [, x: I$ P) s) ~9 H
$ k# k/ N, V0 \2 `, f结果图片如下:! i; F5 `. b3 g
VeryCapture_20231118115514.jpg + n- l5 F! `" R# R' i' l/ y
) N5 g! e  X3 @! h- O: q
5 h6 G1 z+ E1 i: z1 ?
* Z4 c; e; h! f/ x) a8 N

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-7-10 01:25 , Processed in 1.256836 second(s), 55 queries .

回顶部