QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2975

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
- K8 h+ y% D* N7 N9 u8 s" x主函数:equation()
  1. function equation()
    1 _9 Y  a8 Y6 }\" ^4 z

  2. . X# k6 s2 A2 N) X% p0 @& D
  3. global sigma mu T lambda; M# D! f) j; G4 K; y

  4. , O, l) F) X2 B! a2 _. s
  5. sigma = 5;   % 定义sigma的值
    8 O2 d8 V1 u, @+ u: l
  6. $ I$ N7 H3 @# ^5 P2 _
  7. mu = 0.4;    % 定义mu的值
    - V7 i. |5 M  x4 M  k) P  H

  8. 2 c8 o$ d+ J7 X$ ]
  9. T = 1.7;     % 定义T的值  f! K  U& m: k0 [  {
  10. 9 O$ M! X1 o7 F; z6 e$ {
  11. N = 1;
    6 p. P3 @8 K2 I7 ^4 W' ^! _

  12. . c( E1 q& A! B3 Z. ^& Q
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    - _& [- w8 m) P& h  f) O9 |
  14. & q+ n, W+ u9 D\" _6 j8 u3 u! b
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    8 m' [  c0 H# [6 ?& v2 \/ y' B# C

  16. % U1 x0 X4 z\" @$ I) A
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    ' l& B$ F7 l6 B  \5 e  j
  18. ; {) f3 O4 v- f* N  E
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里5 m# ^& s3 d, P! o. W/ u
  20. 8 i7 X% L: i$ ]* G6 H
  21.     N = N + 1;2 K3 j4 d; f0 t! a# W
  22.   J# ~, @8 t* ^4 a& D8 E- R
  23. end) {* R6 s* m  t3 v8 v; K
  24. . e! R& I4 R) {
  25. lambda = 0:0.05:1;
    1 O5 s2 Z( {. i
  26.   A- Q* Z6 o6 Q6 \8 x  L8 q
  27. plot(lambda, value)   % 绘图, v. y$ }3 q\" f

  28. 1 i9 w& B' ]- k5 v+ c
  29. title(['T=', num2str(T)])   % 给出图的标题
    , B/ u; R- v- O( a2 u

  30. ; f% N/ J- i0 @0 t
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)9 f- b+ b, p5 J
  2. 9 j8 a) }4 L& v' p, ^8 O
  3. global sigma mu T lambda2 j+ t3 W! M) o' ^

  4. 9 y: O6 _8 |' d8 J6 B
  5. %x(1)~x(8)分别对应8个未知数& J- p& l( C' [- s
  6. 5 C- W  e/ d& l$ r
  7. Y1 = x(1);   
    $ N! i\" `/ I: Y) l% H% M
  8. 7 j% m' P3 v% e\" v' |* s  y% t' c
  9. Y2 = x(2);8 f7 U' s2 ?$ f% u; @
  10. - ?  E  V+ ]2 {6 y; o/ d
  11. G1 = x(3);
    # j: t4 T1 w* V1 \0 Z, @

  12. 2 a5 h$ ~0 V0 J' }
  13. G2 = x(4);0 V/ x& }2 d; @  s
  14. 8 x, y* x4 ~  w! I' C6 h  c
  15. w1 = x(5);
    4 y' u, f! Q% {# S% X( B% S
  16. : m9 d2 d* p  E' e( U4 ]  e
  17. w2 = x(6);; G8 [# K. d+ C! ~7 t

  18. 1 {$ S7 \$ Q' m5 P1 k! v! K
  19. omega1 = x(7);3 P5 w3 {. z  p3 m5 o. B9 C/ x

  20. 2 Q6 H) S& U4 h/ Q
  21. omega2 = x(8);\" W, o6 |) G& y0 \( ^7 Y7 R, B

  22. , V# p0 r6 a  e% }
  23. %定义8个方程2 ^) k- {1 N. U

  24. ; A3 z8 x( _+ t/ P2 ]
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;! j) E( V$ @& x
  26. & q4 Z7 p5 c! J: d+ w, q' T
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;$ s6 X1 b2 v2 D

  28. 7 Z8 G/ |6 D\" c/ T% |
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));8 |\" D' G& B/ ^

  30. % y/ V5 d$ r- e% k' X
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));) J: ?; g: k* ^\" v. D0 W
  32. * G: V/ C6 u$ Y
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    ' A) T4 z) \) V

  34. 7 t2 p- w% i( @$ ^
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);8 m+ K! _( c5 H# d8 ?: Z
  36. 0 D; s% Y; {8 y  [/ |$ ]
  37. eq7 = omega1 - w1 * G1^(-mu);3 S7 M8 b2 ^2 d1 u
  38. $ Z+ l* K3 S7 m& u0 S9 _
  39. eq8 = omega2 - w2 * G2^(-mu);
    ( q) U2 _& |) v) \+ N1 i2 B\" N

  40. : M& ?) Z4 _% e( _
  41. %返回方程组
    . W7 ], x6 g3 E' `/ S' Z! e
  42. , L- e9 G& V. b0 {/ X; H
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];/ Q) h' y4 e\" q' H5 E- ~. f$ [
  44. ! @% m% G3 [! K% f/ p\" z8 Q
  45. end2 a8 X( A0 W  k; z

  46. . G* s/ c2 m( Y% W4 O
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
; o: t& K' W: a' b: R: j, l* r( }+ q& {0 p, W4 }; q, Z
结果图片如下:
0 \/ Z) J: r% E/ c5 Q VeryCapture_20231118115514.jpg
. R3 p4 q- u+ A# ?5 j. {4 ]: p! |0 E% r- K0 ?" c
0 V7 Z4 a$ l4 D7 D: m* ^  q
6 o4 }9 Y. v# v4 A( j8 Y

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-9-12 09:44 , Processed in 0.400865 second(s), 54 queries .

回顶部