QQ登录

只需要一步,快速开始

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

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

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

1176

主题

4

听众

2887

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。; V0 t9 a8 C$ @- D% U/ O- _. v6 e
主函数:equation()
  1. function equation()6 f3 T! S, ~% x0 t

  2.   Q0 j\" E0 y1 b' h8 V
  3. global sigma mu T lambda
    6 r, q4 ~1 ~! g( K3 e
  4. , T: \% o$ _1 W3 d/ P, e
  5. sigma = 5;   % 定义sigma的值
    ( w4 f2 Q- A1 }3 Y5 R* i8 ?& K

  6. 9 o, I/ G) f' q0 f1 b
  7. mu = 0.4;    % 定义mu的值
    6 e3 ?. M6 v3 E+ }# @) h  r. u

  8. 0 H) s; T, s( T
  9. T = 1.7;     % 定义T的值2 T0 s- J) L- M9 N$ s( x4 E
  10. 9 ^, I0 R, [\" y1 a0 D) H, M
  11. N = 1;
    : C$ N1 W$ }\" I4 U
  12. 7 H. Z% D8 C; i; M7 U# p
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    / Y' z4 a( m* M$ y6 `
  14. $ t7 H$ `8 O\" H$ F9 b+ l% _8 q
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    , Q( y\" t; j2 Q/ E

  16. 1 W, z& X; A: ]7 i$ S( G# F2 z1 h
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    8 `2 T8 ]! ~+ n% i' f7 A

  18. 9 E\" n' o& c9 z6 B, C; c
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    , z) \* Y8 f. y. M
  20. - y% J( F: v* Q5 G
  21.     N = N + 1;
    7 U- J: O. ~9 i1 g- c

  22. + f/ G4 O: ^\" ~- `\" u$ ]
  23. end8 C9 u/ I& q0 f# S\" ^2 l7 _
  24. , q% p1 b7 D1 e: _\" ~
  25. lambda = 0:0.05:1;5 b9 U  o/ p/ [  O

  26. # H( O$ T$ c# z& ?# u; J( J
  27. plot(lambda, value)   % 绘图
    $ c9 H7 x5 X* |  i' W

  28. ' u& ]  }) W* F  b
  29. title(['T=', num2str(T)])   % 给出图的标题) A, j8 y( h2 _

  30. 8 r. y( W8 `) q\" u
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    9 k, M+ G, T& L7 e\" f

  2. + ~9 O7 c# I0 S& _
  3. global sigma mu T lambda
    \" P' Z0 m6 x0 t: e0 J0 Z
  4.   K) F8 f: r/ O( w$ p6 i
  5. %x(1)~x(8)分别对应8个未知数
    7 {1 c& Z9 C: u9 a; `

  6. 6 z% P: b5 u8 W; [7 O- J
  7. Y1 = x(1);   
    & N& w\" z' J0 d/ o  _; \1 [0 v

  8. + `' U( o# h0 g& ~& }\" n3 a! r
  9. Y2 = x(2);
    , M2 w8 S7 ~( X* G  O! s6 l6 q
  10. ; N# B+ |( \+ ~- v& e) t
  11. G1 = x(3);
      d5 m: s  Y5 X* V5 v- U4 j

  12. ! P* @5 o) H6 V, H! L) C
  13. G2 = x(4);
    9 j& K& o! y8 O* S

  14. ) G# _! p1 K\" c% b( p9 a
  15. w1 = x(5);* k8 H0 }$ ?! }& P, I% Z

  16. ; Q( @$ \( \/ H6 C, D4 X3 g
  17. w2 = x(6);
    : B# {% x6 z6 W. `; J9 v
  18. 1 {/ m( l; ^) B& [+ }% m0 {0 d
  19. omega1 = x(7);
    : ]  x! s$ j: `; ~, F
  20. - n- p! S- v% V2 }
  21. omega2 = x(8);1 G! I8 }# z0 h\" D; ?' A* H
  22. 6 ~% V% P4 X* s
  23. %定义8个方程
    . E; V2 w. _' m( f2 o
  24. + f6 @7 M( g  a
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;, W: H% M: G& ]9 K! Z\" f1 P

  26. . `8 R5 W% L  o3 m# f; f
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;3 h' q$ Z8 n1 |- }% c
  28. - j; |\" f9 R4 _7 K: q
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));; `5 S( C1 K7 z5 e5 h* x
  30. ) Z% H: q\" y$ y; j( k/ [/ s8 |
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    3 t2 j8 s2 Z9 e! l, s' U7 d0 ?

  32. * }  w2 b* ?6 u4 T& e+ ^5 H
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    3 K; Y2 I8 t; ]9 Q  m0 B\" j

  34. 2 I& i! P9 ?/ t4 Q. B% F$ C5 e, t; L
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    + p7 }9 x' J; C7 E' t
  36. + N/ _) R6 i4 d\" Q) D* |7 _3 j
  37. eq7 = omega1 - w1 * G1^(-mu);
    # [& y8 y6 b1 g* @9 o# r
  38. 4 F/ Q* I% f. w0 n
  39. eq8 = omega2 - w2 * G2^(-mu);
    6 ?/ ^4 W4 j( \, J, X4 D' c1 x
  40. 6 a2 p7 P3 R# _4 t. t9 T2 a
  41. %返回方程组
    ! j! p6 x( s, `# M
  42. 7 o6 {0 c/ z1 d- {! _
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    ' v2 K5 ^, q. u8 J
  44. ( h$ B8 w7 L6 J  d, t; x
  45. end
    8 O. r4 t% u7 G
  46. * A# c; N, B3 I& t) N
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
+ S: _3 M4 O- k# p5 O3 K
5 W4 Q! M0 F/ F9 Y: L结果图片如下:
/ [9 a3 d* y$ J$ R7 v4 a! G% p VeryCapture_20231118115514.jpg / e2 V0 |9 w7 Y! l) W: j& m
4 S! D! H+ Z; P

3 J3 I  }' O3 B3 R4 u3 f$ m& w4 M. i/ V8 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, 2025-10-21 03:36 , Processed in 0.681439 second(s), 55 queries .

回顶部