QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
7 I$ |% X: t5 d1 q6 C3 r5 C9 z# |主函数:equation()
  1. function equation()
    8 g; e0 s  I9 D8 [

  2. 7 f# O* U! _+ X/ }
  3. global sigma mu T lambda
    # e$ a+ L. Y0 I+ C) N

  4. - J* e6 q9 [1 J9 e
  5. sigma = 5;   % 定义sigma的值- C! D; T) m' L( ]2 Q1 K
  6. 9 n/ b, H. |8 J# C4 G5 ~* g
  7. mu = 0.4;    % 定义mu的值$ q* v2 y* r/ p! x1 {

  8. ! o0 ^) r  A  h1 n. L
  9. T = 1.7;     % 定义T的值0 _/ d/ P4 q) ?\" ?8 ^

  10. ' X% Y( `) t( M0 A7 q
  11. N = 1;
    ( M! e3 j! R9 f# q

  12. # X* I; i  R6 x. W7 {4 i* J9 W5 }
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点3 c+ N4 D. S  W; M+ `. v

  14. ( r5 o: X% s! r0 W
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    & [\" X, u; s6 d+ s

  16. 0 R9 F6 b, j. e( \% u5 T8 v
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    $ `8 Q\" n& G( J. Z

  18. & ]3 Q9 u2 l  S, Q
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    * d+ Y6 s- K' }. B! ^

  20. 0 h0 l% z& b  a
  21.     N = N + 1;$ L1 k6 x2 w$ o: E2 ~1 |9 w+ B

  22. 4 l/ _8 h5 `3 U. j
  23. end
    \" v, V, W1 W) w4 r) ?* R* {
  24. ! X( W5 Y! J3 t7 l. G+ `
  25. lambda = 0:0.05:1;
    / @# m9 f- \+ A; _( W5 r2 Z

  26. 9 m8 j/ i0 ?' Z4 ?: o) I
  27. plot(lambda, value)   % 绘图
    ( {+ a4 K. q* l5 R
  28. : A; [7 y6 v& U3 x
  29. title(['T=', num2str(T)])   % 给出图的标题
    5 V# _  C! I: a8 O; p

  30. 6 a* O6 b\" I. A7 R( L: e; X
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    & S$ C0 i1 M. a9 ^. L( |- @2 b0 Q* R
  2. ' X+ X0 R0 q; }) r: R
  3. global sigma mu T lambda
    & E9 o/ u& C! H1 m/ E1 h) v\" |; c' Q. F
  4. . e' e+ a3 R) S: ], |; x
  5. %x(1)~x(8)分别对应8个未知数
    & l\" o/ {) `* \* i1 L; f\" l7 N

  6. 4 ?3 j( _/ P4 a% _$ @
  7. Y1 = x(1);   
    9 V; Z. C7 G. X8 T
  8. 2 d( B* B6 g# }% Y
  9. Y2 = x(2);
    * v$ b7 S. |; C( c5 K+ M

  10. ) l\" A+ L1 q2 A1 l) R! \
  11. G1 = x(3);
    5 |) Q* I6 O) j  q4 m

  12. 2 I7 L; V# t$ W* A
  13. G2 = x(4);
    ! m! @2 r/ @' u7 ]9 }' M
  14.   [( Q% q0 ~& @' E+ D
  15. w1 = x(5);: A2 _4 r1 |( Q. r1 G. ]

  16. 9 W0 p0 z8 s7 J6 {2 h, R( g
  17. w2 = x(6);
      H\" ~5 }# X. }( t0 Q# j: q0 I& p

  18. . H: [5 l6 A\" I\" ?
  19. omega1 = x(7);
    2 w\" M- S: N, H3 U
  20. ( Z6 Q/ h9 R  g& `
  21. omega2 = x(8);6 j4 {( d( C: Y- K; r, |) Q* y

  22. $ X. ]) r! J$ b. l2 |! m0 K$ w
  23. %定义8个方程/ i8 G+ X; y1 A5 v

  24. ( O' g8 _+ b8 y% a# y
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    0 _: A. {# G0 s5 e: M9 N: |

  26. $ q+ y( Q' C( U
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;+ D/ P\" s\" w% ?0 N3 v& U

  28. % i! V3 c' q+ T! b# |( O
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    1 i: o- {% V1 B2 _
  30. , {# _  C7 e\" B9 x( O( |
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    # Y2 {; t2 u. f% p
  32. : H8 ]& N, z8 |& C7 P( R; T
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);4 ^7 }1 D; _* [* E2 \, N
  34. & O8 m9 m! S& H
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);\" x4 T4 D* u* Z+ P; i

  36. , k1 Q& }' x( ?7 h, _
  37. eq7 = omega1 - w1 * G1^(-mu);. @* h' p+ Q! w+ w( B5 K# Q
  38. 2 v) ]* R/ U( ]& ?; d$ w
  39. eq8 = omega2 - w2 * G2^(-mu);
    $ ?# n\" r' z- A4 W3 ~1 N3 \4 q1 g5 z\" O

  40. 3 S; _- F$ |* ]9 H3 U
  41. %返回方程组
    3 [* ]* j: n* K2 I, H+ |4 X
  42. \" h+ Y% o  N$ l6 ~- ?6 q0 a& F3 P
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];7 N( \& `/ z2 S3 h4 A' Z0 {6 ^
  44. * }) I0 i' M6 O# r% C1 m
  45. end3 ~' {& T/ Q1 L* g# I/ A7 \8 ^

  46. + g4 O6 E0 U# v5 x# G/ {# X7 G
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
4 V9 f4 N% I% H- S7 n8 U
$ i/ P! K& {- \  m3 {结果图片如下:
* n9 G( u( V* s4 D2 U VeryCapture_20231118115514.jpg + z9 o* T. j4 m; m+ G" C! o
! u; N, g3 s0 }' Y! l

! H+ ]5 A; L( k' Z) h4 [/ J0 D% c0 g7 `$ d; ?1 Q! 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-11 13:49 , Processed in 0.432485 second(s), 54 queries .

回顶部