QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2923

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
+ ?; g. Y2 t$ |( o: d4 X主函数:equation()
  1. function equation()
    . V9 r* ?2 R& P% p

  2. \" ]' u( ?/ z3 A: O/ w0 A
  3. global sigma mu T lambda8 {: R2 F3 [& K5 k
  4. & p$ ?* d8 U4 Z- k& w
  5. sigma = 5;   % 定义sigma的值
    * A3 c0 f4 ^- H8 v

  6. 1 }5 N\" y4 _  Q; E5 y: r; v
  7. mu = 0.4;    % 定义mu的值
    6 C1 W1 d2 A6 q0 j
  8. # c0 K4 t1 T' c( d/ }
  9. T = 1.7;     % 定义T的值
    ; r8 F$ F+ u, r
  10. \" N' W  w- w4 I1 x. z- d
  11. N = 1;1 r+ M! Y6 v! ~( f
  12. ! M' y2 K0 D6 D3 i' a. o0 t$ S6 ?
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    & H/ y# u6 I( l

  14. # m$ K1 Q% e+ u  ^1 G2 x  u$ u# M- G! W
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    - I5 {) j\" E; r5 K/ \- u

  16. ) V5 D( i* W3 A$ I
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    2 b5 w& u# E& e. m8 a
  18. 4 }1 \' X8 o5 o% h5 e
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里/ [. s1 D0 Z( _1 ]9 j9 t8 d7 J

  20. 1 |0 m# {9 ^* R; P8 q
  21.     N = N + 1;\" R) ^* m3 S5 E$ L& R, g

  22. 0 h\" k: }' z  X2 t) c
  23. end
    5 Q9 i) r; |\" b\" T% S  [
  24. 6 F( Y/ @) b8 s# Q# p) b7 ^2 ~, |
  25. lambda = 0:0.05:1;
    \" X\" p' b3 ]/ G/ [6 Y. f  n

  26. \" k  N2 C% E6 G\" ?; @
  27. plot(lambda, value)   % 绘图. B4 I, o0 a# j. C! U1 p
  28. . m! U3 B4 q# F2 q: {) s' N0 C/ ^
  29. title(['T=', num2str(T)])   % 给出图的标题
    + N1 Y+ ?6 m, E, Y6 p
  30. ( N+ x1 ?: a8 J, }8 h
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)+ e# }/ J\" i+ O) d' v1 r( f8 A/ [
  2. $ z  e# H; l- o2 b' B) @! O: `. l9 C
  3. global sigma mu T lambda
    7 C5 j4 ~0 e5 Z
  4. 0 s+ A; _  p. I; R3 `) p
  5. %x(1)~x(8)分别对应8个未知数* s8 B6 M# z- \1 y  R: i) x& d
  6. 9 [- i( M. Q* ~
  7. Y1 = x(1);   
    * a3 k0 L* Q% K; P9 F0 s
  8. . D& c0 P+ r1 i- @$ J3 _8 Q6 i, k
  9. Y2 = x(2);$ [; a- y7 U9 y8 G# h
  10. / n  C6 V% u9 D- f; C
  11. G1 = x(3);
    5 A/ v3 V) V% \! o\" k- R) k2 _
  12. 5 Q% A- j- |# }
  13. G2 = x(4);( _& T) l! \$ V
  14. % _# J- U$ e0 Q' K/ V. {
  15. w1 = x(5);) L2 [1 G/ M& B! _\" [* }3 X$ }, C
  16. 9 e; z; _0 ^+ r0 [\" ]' p
  17. w2 = x(6);3 W/ f( R8 |5 p/ n
  18. ! R! ^2 M. Q! g
  19. omega1 = x(7);
    8 h( V$ k$ r1 \; s: H6 c
  20. % f3 w  T/ c$ K# h8 ^! t& X
  21. omega2 = x(8);# [& U; z. @; y) x% f

  22. . H+ E9 n9 {1 @# K- A
  23. %定义8个方程
    ! p. M4 V' {! g& @+ Q+ @' q

  24. ; f/ V/ S  `! j: I  |% B' f+ X
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;3 i2 @$ R$ u  [8 P

  26. 8 ~- T, x$ T* x! \& o
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    - g0 M7 ?1 l2 c4 ]. M

  28. % f/ g$ M) c! C) O
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    ' Q+ I: @1 {* D  w\" o0 f

  30. ' O0 c# i5 H  w6 m' k( U: C% M
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));5 w, W4 @' e; ^, V2 k  o

  32. 7 i3 Q1 y/ N\" p* r  M  h0 C7 Q7 @9 D
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    + o$ G6 R. U4 C+ u3 F# k4 Z
  34. 7 B8 c: v8 _/ p5 w# u; R/ c
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);- _1 |  ]7 P3 }+ Y# f0 _( B

  36. 4 t. r; A5 X* r( n% [  @: z8 z
  37. eq7 = omega1 - w1 * G1^(-mu);\" ~5 {9 a; z2 i: ^' N
  38. ; V  l: H) i/ ~! R
  39. eq8 = omega2 - w2 * G2^(-mu);
      k; K  Z& ]0 Q3 _
  40. & p& o0 p0 R* r' l# E* J. _
  41. %返回方程组
    : Z  g- J) r8 }' B7 ~9 ^9 z$ Q+ G

  42. 6 g, s1 p2 Q: t8 h& x! V
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];6 @\" l! n1 {' y' w\" M& [, T' H

  44. $ c* V) H! K# l5 k2 I4 t# \( h  f
  45. end
    : ]+ u0 n% r9 O& j\" T

  46. : {2 T3 E$ I. y; J
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。" F+ l4 X& E% ~$ A7 T) Z6 {
* `+ G4 Q5 z3 j" k
结果图片如下:( l% o8 G/ a2 F8 v, N
VeryCapture_20231118115514.jpg
9 l3 k, A) S, \& Z4 a; O6 D% z
' o0 H0 L; j9 E  o* G+ O5 l3 s: h' S; N

+ z3 S9 [/ P0 Y0 D# D

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-4-20 11:00 , Processed in 0.448133 second(s), 55 queries .

回顶部