QQ登录

只需要一步,快速开始

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

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

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

1171

主题

4

听众

2781

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。0 O. `& [+ L) @$ e6 K( k
主函数:equation()
  1. function equation()
    ! p6 L8 a2 C: u, r2 f* Z. q9 [

  2. 0 `1 O! ]' v& f
  3. global sigma mu T lambda
    - E# x3 H* @4 ]\" f: u* V0 U  j* O
  4. * B* J6 @$ [. S$ O8 Q
  5. sigma = 5;   % 定义sigma的值
    0 q7 s; @; r7 ^\" ~3 P6 A6 D
  6. ' v\" J1 A* J1 K2 J- [6 }- {, C
  7. mu = 0.4;    % 定义mu的值4 I2 m, q; m. l7 g/ K, [$ B

  8. # k, c8 r+ z5 ]1 w6 ~8 |
  9. T = 1.7;     % 定义T的值# P- a* V% `6 _- ]# P

  10. 6 m6 w5 p, p' B+ ^& a2 }. [. J
  11. N = 1;
    ! |+ R' L+ y1 a; Q9 o7 E
  12. 4 U6 N3 H, j0 ?* i5 M
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    6 u  E7 q( K3 Y, O
  14. , y; I/ U. q- a5 ~( L\" X
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值! W. _$ g* ^* V, V

  16. & c) e3 p( h* f# [, H  Y
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里7 b3 w5 ~( H+ t  P' Q& m8 G  Y

  18. ' Y, z; h) u3 t1 `; D. `- C9 H
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里- ~7 f1 y3 b2 }2 c) c* }. W$ \

  20. 1 A6 p1 G* W. g4 F8 h
  21.     N = N + 1;
    / g+ Z4 L: h+ p
  22. + }3 s# V' i: N  F2 M
  23. end
    & c6 `0 A5 i! O
  24. ' d# `, b- }$ Q% T8 Q4 t\" J$ S\" Q
  25. lambda = 0:0.05:1;
    0 ]6 H5 w; s7 q\" s) ]! ~
  26. 8 f/ Z- A* H) |) w1 S: L9 X! f* X; [
  27. plot(lambda, value)   % 绘图
    * |) e' i) y4 l2 x& ~, s2 p
  28. # B' z8 z9 R7 b1 D
  29. title(['T=', num2str(T)])   % 给出图的标题
    \" ]  G) s\" w: b% A( j. g  J- w

  30. - H! n! J& A2 V7 C
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)  g7 z: s\" U2 w& F( \( Q

  2. 4 D/ G9 w- y4 K\" z- X, ^
  3. global sigma mu T lambda- {, ]- q; w- N7 L4 O( ^: Z7 `

  4. 1 X! b\" }5 i# h+ Y8 z2 }2 w- T
  5. %x(1)~x(8)分别对应8个未知数$ X: [$ R; s4 i, b0 k3 H0 S+ N& Q
  6. % W$ ]+ x, J( a5 S# e3 i5 _
  7. Y1 = x(1);   
    \" q0 d; }4 V8 r- J% u
  8. 5 e- s8 `# X: p4 {8 Y
  9. Y2 = x(2);0 t4 }7 {8 Z/ F+ h5 p' K( d7 h

  10.   R9 R$ D, \/ G/ r. x) Y' Y
  11. G1 = x(3);3 X7 ~1 U# D: M$ [( Z

  12. 2 I1 O7 N; J! @% d) x3 J  c
  13. G2 = x(4);' ]; d  A7 I6 w/ P# k

  14. 1 n\" U( }+ r8 I0 p* G) X
  15. w1 = x(5);7 G) m6 o# o  z& o# x4 ?+ X! i1 ~  z
  16. + i0 F, n$ o/ v) r$ i
  17. w2 = x(6);' s$ i# n\" e* C
  18. . |8 M* n/ V& V\" U9 }
  19. omega1 = x(7);$ F4 T' P& k# J, G
  20. ' _7 R6 q. T) y; @# p% D
  21. omega2 = x(8);2 P/ U% A% c& I9 ~

  22. % f8 ^( [6 b4 t) T+ q& O
  23. %定义8个方程
    , l9 |/ F8 J$ S' k& t
  24. 9 a% t! i$ n5 B# J& F! w; X6 G
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    \" R3 B8 \7 I- S* b# D' y

  26. 9 a6 v( w  x2 `9 ^- _( |2 H
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;& d- Z/ H, h( ?% g, N\" L4 e
  28. 4 _, F1 N4 F. E; S
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));% f) r/ h# c7 g9 k: A
  30. 3 X  B5 W% _- s
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    6 J0 M+ b# E5 O# _8 L

  32. 3 [/ N+ ~# A0 L, |4 w/ W& \
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    ' r) Q/ S1 k  A/ z* ]

  34. + {, m/ M1 O6 v& z
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);6 G; p( l& S% g: \6 |! o
  36. ! J% s+ m* o9 w2 @$ [8 u9 c
  37. eq7 = omega1 - w1 * G1^(-mu);' i# X( @+ {# i( @+ e
  38. 5 V0 z( W: @' M6 k) v7 B+ U\" f
  39. eq8 = omega2 - w2 * G2^(-mu);) `8 `7 e$ W$ _9 [

  40. / \/ o7 N8 X3 u; S( u; Y0 {6 i4 F- H
  41. %返回方程组9 ~0 r, l6 p& {& i

  42. 0 O/ ^8 J; c8 v% @' B\" A+ L
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];\" o) w6 C! R  t+ @1 y. m
  44. 1 {# R+ C: K- l0 S7 p( p2 Z
  45. end, Z% B  N- l6 f* x

  46. 1 Q1 m5 U0 k9 s7 v\" r
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
* R/ G# @+ [  g6 m- z" j0 s
4 c. ~/ n. g# v# m" t) P结果图片如下:
) ]8 t& p# R: D+ {  _& i- \ VeryCapture_20231118115514.jpg
) ^4 R8 L8 ~# |) ^8 y7 D  W& y, u

) h8 p  r4 R4 b9 u) m1 ~5 f! P) d( `7 V. Y; m

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, 2025-6-27 13:38 , Processed in 0.312810 second(s), 54 queries .

回顶部