QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
' u& N1 M4 d# r- P  P; J( M主函数:equation()
  1. function equation()+ p# ?- i# w& n* y0 j

  2. 6 H# [) @0 S6 A+ v! C; [\" h
  3. global sigma mu T lambda
    / q4 j6 n1 `, m) _

  4. , C4 ?1 V  U1 A$ Z0 \5 V
  5. sigma = 5;   % 定义sigma的值
    : Y2 L: h2 v1 X2 y$ |0 D# p# S
  6.   A4 S- f\" j1 ]
  7. mu = 0.4;    % 定义mu的值7 i- R- l6 S$ A7 s& t8 L0 L9 Y- F
  8. % W+ R4 T! s6 o0 x. o- N
  9. T = 1.7;     % 定义T的值
    : ?$ b9 `+ N% V; n1 C
  10. * Y) H  ?, A7 j$ b
  11. N = 1;
    7 y8 B5 ^8 v3 j' l

  12. ; ]5 @) S* E( u/ J- w
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点( g! u4 I) m' T

  14.   o* j/ s6 _8 H
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值  |! n' @5 v) w
  16. 4 \2 K% ?5 C- p* A  c6 L
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里  U5 M\" H, h5 s1 I) a+ N2 U9 V, {# a
  18.   n! R9 N- e\" N# b) S2 L
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    8 D: B2 w5 L& D( B1 v4 a' U

  20. & A: S& J( n  N' o9 U
  21.     N = N + 1;
    . X. `9 Y3 ~$ _$ @; b0 i$ [. X

  22. 3 Y% k9 ]2 N9 i- V+ n2 {; h
  23. end\" G- S! i5 m9 l- `0 f9 _

  24. 6 u! |) m, ]9 s  |5 S& O
  25. lambda = 0:0.05:1;6 R+ T\" E' C% Z2 V9 j& {9 j
  26. $ M* T7 {- u- I2 w0 t+ `5 q
  27. plot(lambda, value)   % 绘图
    $ I7 L- o+ z3 }) i; h

  28. 3 t/ w. a! b& X/ M
  29. title(['T=', num2str(T)])   % 给出图的标题. `1 c& X; l% l% P* u- h- @
  30. % Y$ h# s5 s5 i) U* `$ i
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)0 e: K9 x, X/ o7 G; D$ M4 o7 n: t
  2. ; K# N0 B/ A6 M7 f
  3. global sigma mu T lambda\" w+ q/ K5 W# G% _7 X$ _
  4. 0 L+ A: _. ]! r8 ~1 Q* D. d
  5. %x(1)~x(8)分别对应8个未知数( e4 ?8 h6 o  X1 h$ K

  6. # |7 `+ w& \2 P+ q0 b% }
  7. Y1 = x(1);   
    / t3 J. _7 E3 |1 Q8 I
  8. 6 m# H9 [9 s) \* Q! k: n* D
  9. Y2 = x(2);
    6 W  H- c' E: B7 {) I
  10. 5 \: W; a% K  e! x5 o; X/ s+ T
  11. G1 = x(3);
    7 B- u, K* J8 j! v' a5 \- j
  12. 2 V- |2 P! p; O0 C) }& R
  13. G2 = x(4);2 Q' a7 V. D  U
  14. 4 n( T5 Q- h8 C8 D8 M* m# W
  15. w1 = x(5);
    1 N* Z; n* Q8 X

  16.   x# c2 H! C. |
  17. w2 = x(6);) s$ N4 X9 |$ w
  18. 6 b6 h- f+ X! r. B' P# u) e2 y2 F
  19. omega1 = x(7);
      p- ]# N# |& W\" m, Z

  20. 3 U# _: c0 F/ A2 k\" O' K9 B* s
  21. omega2 = x(8);3 ?& ?) d3 C2 g) D! p

  22. - p! }\" \* M- r\" r
  23. %定义8个方程3 V; e4 U% {% T

  24. * z- V: c9 L6 V. a\" H/ t\" Y\" B\" O
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    ( ]% Y1 |9 v% ~
  26. 9 |/ a- [  f+ v' l. x\" v- Q
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;; O2 K  r4 X. ^7 N
  28. & n* m3 ?7 ^9 U. Q
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    $ p. @5 L- v. X1 c
  30. 4 a6 K2 L4 E7 H1 w\" D% T8 O
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));8 N' t& @/ a% k$ n1 h* X9 o
  32. ) k0 s% |: ?; _* F3 a+ z
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);/ Y$ ~. r( t! j. L

  34. 1 X1 K5 {. b2 X' ~4 |5 H+ H2 X9 S% H
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    . T: \0 W( T, l( v9 n' k5 m

  36. + e% j  m& ^: T3 Y8 p
  37. eq7 = omega1 - w1 * G1^(-mu);, Q7 H5 O9 R8 L8 ^+ ?

  38. 7 T9 }! B0 t1 v2 y6 N% l
  39. eq8 = omega2 - w2 * G2^(-mu);
    3 E  v( |2 m5 D9 U4 r' V% ^
  40. . O1 ~' v$ z; e8 U
  41. %返回方程组5 h& O- w$ |; m9 n7 g' H/ z
  42. - T: s\" k8 W: f3 g4 J# Y& Z
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];$ g# _& g2 L: _; \+ S7 l

  44. / Q& o% i9 {\" G4 c\" x
  45. end- @3 k/ k+ Z/ U, H: b+ G5 Q% U
  46. + n. J/ @; B- T# m. v
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
" c+ a1 S% h8 i/ s( |$ m% S: X  A. L' U& _
结果图片如下:
! p7 [% N9 l% N' s+ C, a* x5 K VeryCapture_20231118115514.jpg * g# I6 K6 V: M: p" k- d
$ x: n' t( A. Y- }7 V
4 P8 Z8 Y5 A9 t( @
% K  A& t8 D8 L# I/ s: q

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-8-26 04:22 , Processed in 0.311971 second(s), 55 queries .

回顶部