QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。1 N7 B+ V1 g' B8 U# N
主函数:equation()
  1. function equation()% [2 H; @' G- l/ b# M

  2. ) P) I! l8 {& M* N
  3. global sigma mu T lambda
    1 F2 X- R5 q3 d& y0 R. ^

  4. % U: H  Q% h4 Q) H
  5. sigma = 5;   % 定义sigma的值
    5 h4 W+ e, L( s$ y6 Y

  6. + Z# _& y, X4 x/ g! m% U6 b/ y' Y
  7. mu = 0.4;    % 定义mu的值
    ! N' q. f3 Y9 ]! W8 C

  8. # ^% m* P; I\" X! a0 A
  9. T = 1.7;     % 定义T的值
      v) A9 z  o4 @; b- S1 g

  10. & M6 m! B0 H2 m- v/ D$ H2 Q0 O
  11. N = 1;
    ' U- [/ K! {' v* d) _# X$ N4 m\" D5 ~

  12. 7 |\" L; J' H; w4 N
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点( E* d& [+ Q% M; ~3 k

  14. 9 H- f, w. r- u$ Z
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    9 L\" \\" N8 \- d# K; z, X

  16. $ E% a/ s2 }% e: c
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里2 z# W9 z0 `& g
  18. ' R4 ]1 s4 S8 k4 L& J
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    $ F' Q' i3 R! m) a7 {# l# f9 s
  20. 6 `7 Y9 p/ Z\" _8 |, `9 @9 L
  21.     N = N + 1;
    3 l3 O0 o2 h4 o2 K7 e# i

  22. . _( z0 Q* S' i! ?9 t7 u1 Q
  23. end
    0 C9 y4 B9 _* C9 F

  24. 5 L! {1 y% Q4 ~
  25. lambda = 0:0.05:1;
    . `8 T# ^! O' Z% z
  26. 9 V& b. o1 d' l. O, ]
  27. plot(lambda, value)   % 绘图
    ' q. C+ h! M& X% j, X
  28. 9 _5 y+ e) _# b2 K
  29. title(['T=', num2str(T)])   % 给出图的标题
    ( i6 ?9 u$ S$ t0 P0 K0 {4 B9 t9 G3 f' i
  30. 7 `( A# ]. }& I5 A, M
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    - t& i* Q: @3 O, v! ]

  2. 9 [1 e. D, w( T9 ^: R( D% @
  3. global sigma mu T lambda
    9 m; \$ _' [! D5 r! c$ K
  4. * f$ K' s, I6 t: I7 V\" {4 Y; ^
  5. %x(1)~x(8)分别对应8个未知数
    % I# W  ~4 m' `3 @. v

  6. % V: e7 `6 k1 E. D. r8 C, X
  7. Y1 = x(1);    8 T; m3 e% l% [7 [
  8. / b1 P! K* N. ~0 R& p. P\" O
  9. Y2 = x(2);
    : E+ i/ P4 |; R

  10. 5 C, l% @\" h0 L0 j6 I; ^5 ?& W
  11. G1 = x(3);3 q: Y& t, @0 Q, b, ?: X

  12. ) q, H7 Z9 r\" m- D7 S3 ~: y
  13. G2 = x(4);& B  _$ B7 O. C4 C
  14. & k! E$ w9 |) M7 P0 H
  15. w1 = x(5);
    ( d6 y  O$ z9 M1 J( F, _

  16. ( R' p* t4 C: w2 f* a# ?5 y
  17. w2 = x(6);) o- g  V8 h\" B( H7 {

  18. 0 s$ L2 k% m- o; \' @: j5 C
  19. omega1 = x(7);
    ' y! v: i& O1 J8 l
  20. & _3 @* J6 A! w
  21. omega2 = x(8);% ]. [- z% O2 z! i7 h3 g7 n

  22. * B* S6 M0 k\" c. b( H$ I# r) i4 z6 w
  23. %定义8个方程
    2 J0 r/ f0 u, C7 A5 e9 c

  24. * e( I2 T: ^, Z: d5 ?\" h7 \
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
      F5 _! _8 x3 U7 h6 _( P: a
  26. : V3 Z( M\" @+ \. @3 a  Z
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    ( E* o) m9 v4 R5 i  g+ b: @8 ^- a6 ~) J
  28. : b: K\" {/ g2 `7 }+ @) L
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    7 ?6 g8 |8 I, Q- P7 j5 Q4 r( M
  30. 4 X5 K) u; b8 x- l& J
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    6 u7 G2 X3 q5 {& R8 Z5 _$ l
  32. ) z9 D! }: Q) h- N4 P
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);0 N: T9 V& S4 c1 Q2 N1 Q7 d
  34. 9 d8 \. D! b; R; E4 q* i
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);% E; Z; w) f6 k\" g5 X: X
  36. , {2 g: w9 Z5 P5 q
  37. eq7 = omega1 - w1 * G1^(-mu);% t6 n% `/ u6 j: \. _5 ]- f

  38. : ?7 G, `+ X) B6 p: ]9 ^5 H
  39. eq8 = omega2 - w2 * G2^(-mu);
    * i3 B8 V( k# W1 B5 E
  40. 9 f- S8 V9 _# V* A  }
  41. %返回方程组
      p( s: q$ P6 ?' l1 F$ c7 z; d\" J
  42. # `, C1 p, j! ]# A
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    + s/ Q$ k  S+ b3 m2 k+ m6 A- t# |
  44. 8 k2 m) u1 q5 y5 S! |
  45. end
    ; F3 ?+ {& H6 [* d9 J
  46. ) ^5 ^9 R' Z1 m5 H) |9 ]\" o
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
# s5 X. n6 W7 K! w5 ^: Y
- C' t/ N" q; }: G: o0 {6 ~结果图片如下:
8 O! Y/ G' X1 a: U VeryCapture_20231118115514.jpg
" ~  b% N$ I2 Y0 g2 O* P* U: N/ B+ i. N. V. j  d4 @2 j! s3 n0 v6 f0 U

+ U1 f: f$ d, H& h; Z/ Z8 d' V1 X: ~2 ~' t5 i  S  W

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-10-17 04:48 , Processed in 0.410198 second(s), 54 queries .

回顶部