QQ登录

只需要一步,快速开始

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

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

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

803

主题

1

听众

1983

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
8 W* r1 E/ u7 N7 ?4 j主函数:equation()
  1. function equation()
    0 v: x1 {) y- E. F& @. ?

  2. . i$ ^  r8 t6 X; B/ X
  3. global sigma mu T lambda
    ! T. o- @: A- v* K% O: e, G; A

  4. 3 r/ Z: ~: c+ \# v2 ~1 J6 Z' M. y
  5. sigma = 5;   % 定义sigma的值
    ' N\" `9 G( R$ h, \
  6. 9 E! ~2 \, \6 q8 q6 k
  7. mu = 0.4;    % 定义mu的值
      \\" I  Y# H2 l/ H+ r

  8. % T\" l1 O& U\" q\" U  L; v; }3 h- g
  9. T = 1.7;     % 定义T的值1 }5 t. `& X; A  T1 v4 P) l
  10. # t$ H) _4 u/ y& b  e
  11. N = 1;
    0 m( \3 H8 c8 [4 h6 n3 O3 d

  12. - l4 m9 |+ ^/ q8 _, E+ M( h
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    % K9 Q4 s% N$ g- K0 U! ^
  14. 2 ^1 w1 ]3 h6 }7 ?2 L
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    ! c% n) O/ S  |' O# K5 E$ r3 U9 r- U

  16. ! @* S( V1 C* B
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里/ \& a( T3 H$ i! |

  18. 1 N& J2 ^  Q3 v) W+ ]\" W
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里1 w# `6 w: j# f) y8 _# D3 k
  20. % h2 t5 O! b. M% Z\" y; W; v0 r: W
  21.     N = N + 1;# I\" Z7 m2 J% |& ]0 C+ G- Y/ s! ]\" Q

  22. . h) f6 P; t& W( u) r1 }! j3 A* D
  23. end4 ~4 E9 p+ M6 o! f9 j5 A( m; c
  24. + W8 N/ v2 }$ W\" ^
  25. lambda = 0:0.05:1;/ V2 O$ V5 `& l2 K7 C
  26. % ~) U) t( W! S( r0 \6 A. e
  27. plot(lambda, value)   % 绘图8 I# }$ ~: O/ b0 t/ o0 V
  28. : J9 {4 G' o5 B1 P
  29. title(['T=', num2str(T)])   % 给出图的标题) `8 o$ l! w- A8 d! ?0 o( X

  30. * e! y' J2 W' ~, f! X5 N
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    & Z/ U( z; X2 ?& t- W7 G* y2 e; g

  2. + ], A! Q* g: O6 f, Z3 y
  3. global sigma mu T lambda
    . {( ]/ C* A0 ~. ]! }

  4. # A  n! j+ G& c- S
  5. %x(1)~x(8)分别对应8个未知数
    ; C: O1 g5 {  t8 N7 o- b
  6. , T1 ?( y6 _* \3 B* H7 D6 _- D4 o' ^3 N
  7. Y1 = x(1);    4 a+ V  z; F& x# A0 [/ d' O' Q
  8. % |% W6 m: e5 y# [7 U
  9. Y2 = x(2);
    2 U2 y5 s! r* X/ W2 M! E
  10. ( O2 ?0 a7 @7 c* Z# H' L
  11. G1 = x(3);2 y- M9 k5 ?( j, d. N3 E- g

  12. . o: }& {\" r4 w9 C& j1 x' [
  13. G2 = x(4);
    5 i; E8 o( g8 C% s, l; t
  14. + z/ `$ @: h, F6 _; m7 R& z4 h4 E
  15. w1 = x(5);
    7 f3 a- i5 t8 E+ ?* `: H1 _

  16. : l$ K# n) e\" Z  K/ M* ]
  17. w2 = x(6);' E# |$ R* o\" y; \  K( h( d

  18. ( h% B  S* d% ?  }
  19. omega1 = x(7);
    \" b6 [& |; }4 I
  20. , j+ X( }7 O5 e2 G4 ?: D8 W$ o
  21. omega2 = x(8);
    0 @6 w  t4 A0 U% s& S3 d
  22. - g: L# O$ k2 r3 d, \
  23. %定义8个方程, z1 m0 q1 E\" b$ i

  24. 3 V' E9 l2 {  v  S: V
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    + c3 T: q6 d: h7 q
  26. # `/ u# @4 t5 |6 b) Z7 @, e9 b
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;5 x0 L* {6 e* I8 o, ^9 V9 T9 b, ^
  28. 1 s3 V; Q' R7 {
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));  _1 m% i* b0 n. \9 N
  30. & L! t& b; g7 h, a4 x( s
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));* m1 u: [# c( G- A1 t+ _& P; d

  32. 5 V% [, c) p! b3 I  S! I! A
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    4 P! j1 m, L2 V) P6 [$ r0 U9 B
  34. % x* a: D' |* S8 M
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    \" _9 x5 u  f4 H9 N$ n( Z
  36. 5 q1 R* U2 h* w
  37. eq7 = omega1 - w1 * G1^(-mu);. L( A# p/ N* f7 l
  38. & B% ~# h. w1 {( e! Z9 H( C' u
  39. eq8 = omega2 - w2 * G2^(-mu);
    - K6 V& C- e' m3 e3 \
  40. ) `( z$ ~* L3 L7 E
  41. %返回方程组
    7 y, ?. z- h5 P9 J# U1 e; c
  42. ; A, X9 m' n0 R+ \3 @
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];- T4 C) m. C- J' z6 l, K7 D

  44. 5 x  C4 d$ t5 X
  45. end
    $ x* `! A; I: z
  46. \" o# J9 j+ ?; Y! C( a& h- o  D. B& a
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
+ |+ a; `7 O# b* ~
. l. o/ R& \3 d2 U( y/ ?9 s' }结果图片如下:9 u6 l1 o3 k9 v
VeryCapture_20231118115514.jpg
3 w- d( Q! }* G. f5 L7 n, w
: A0 u+ g  D. Y# U; \0 l. J4 i% a1 U3 N9 ~# ]5 i: I2 |
  b( @9 U: h# t" |) k: r7 l

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, 2024-5-15 16:25 , Processed in 0.295518 second(s), 55 queries .

回顶部