QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。' l( O. n/ T" R, |6 A
主函数:equation()
  1. function equation()
    8 ?+ M9 |  [7 Z6 W( s
  2. 5 p- G$ N* b\" a, r, P\" F/ Y
  3. global sigma mu T lambda
    . J6 W; `- a; @8 Z1 T' x6 c8 s

  4. % f' p, y% y  N& ]2 \0 V6 w' G
  5. sigma = 5;   % 定义sigma的值
    - L+ e7 R; j' E
  6. 9 l7 u! x* T3 ^. Z, F
  7. mu = 0.4;    % 定义mu的值1 K1 D2 C/ a5 S& G' E\" V
  8. - S& P% R9 b- E4 t% A( L& z+ W+ m
  9. T = 1.7;     % 定义T的值5 u9 m1 p/ n0 b7 c7 {

  10.   p. Y! h3 O; O/ b4 j+ i0 s8 o' a
  11. N = 1;8 b) |6 Y+ j\" ^/ x5 }; m. l

  12. $ g0 \9 b& B9 p  {
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    1 |/ V% M: ^, A7 E/ R
  14. 2 z. G! G1 a% ?( t6 |\" S; ~
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    2 l; u3 k5 ^' p- I- c- Z) U4 j
  16.   z- @0 L. i/ a3 |
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    . e\" ]$ x1 j7 w  Q
  18.   }. X5 a, D; I0 T
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里$ h& F2 r) n5 K% {0 f# g# I6 {% e

  20. ! K! v5 F/ n/ t* }% ~: ?0 D$ f\" S
  21.     N = N + 1;& G1 Y9 @/ w1 S3 k5 \

  22. & s3 [9 }: {8 K# n
  23. end
    ( j+ C2 O# _5 d' {( U& q

  24. 6 ~7 V( s$ l* E
  25. lambda = 0:0.05:1;, z) O- H7 F9 B# r

  26.   g2 j7 W8 x$ F( u6 Z) e
  27. plot(lambda, value)   % 绘图: V3 D) d- [/ P/ T
  28. ) H8 _  c5 l: Z\" @* h! V' E
  29. title(['T=', num2str(T)])   % 给出图的标题
    1 c+ h) ?  ?1 g% Z

  30. 4 j& P/ o% r. u: M1 m* U/ n6 i
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)( W* h. c- e( `0 E# l  A
  2. 7 y& l0 u( l) D2 X
  3. global sigma mu T lambda3 y1 ?) J; \/ [9 v9 F. ]
  4. 2 W3 @: x& m# H! s' A\" q/ d3 M
  5. %x(1)~x(8)分别对应8个未知数
      y  e; Q1 i! s. c+ r

  6. 2 `2 ]% t; U& ]: K1 l; T$ c
  7. Y1 = x(1);   
    6 I6 R4 u: [) r8 N+ K# B4 G3 P

  8. ) e3 c\" P3 X' p, M5 H
  9. Y2 = x(2);
    9 @. b/ F4 H% d  R; k1 o
  10. 4 L( _) L4 Q& @4 m% W- ?
  11. G1 = x(3);7 X7 X. z0 L) O6 g! n/ G  s
  12. 7 B6 A; }- ~8 @8 u7 H( U
  13. G2 = x(4);
    8 S\" y+ ^: F, q. w% D1 {+ C3 f
  14. 6 D\" q0 T5 o8 _5 r5 V/ ~0 R
  15. w1 = x(5);' x7 v\" E! X\" }' t' }
  16. 1 r2 K: w/ Q\" O\" U
  17. w2 = x(6);
    & U  P  H6 B7 i/ L

  18. 8 l' m: J5 D; y9 q. M( d
  19. omega1 = x(7);
      O9 J0 F# q. b; K: B8 I5 b

  20. ' S+ ?8 R! l& z  l
  21. omega2 = x(8);- F* v3 v0 k+ P3 j( o
  22. 3 g% b3 h' K1 M7 u) o/ q
  23. %定义8个方程* x' i2 @( m0 C7 p9 D' r
  24. * e1 {3 l6 I$ {6 P
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    8 e' e3 r+ k3 w! {

  26. + b0 D! t$ A  x! l( W4 x; s; S
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    0 U2 Z- i9 q9 s4 A) D+ z) R
  28. $ b& C% _# p, V' R* h4 d
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    ! d2 o0 u4 b  X, c* x2 l
  30. $ v; K/ v0 ?( V
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));2 R; Y2 }9 c# m: C2 R

  32. $ b* b* m* T7 r* e& F
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    $ ^; P1 c\" q9 B
  34. / `! h/ W+ e4 E( ^) i3 ^5 e
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);' U  U6 G) e% M$ x+ ?* c& e9 k
  36. ! `' d2 `, b) O0 n% k3 O
  37. eq7 = omega1 - w1 * G1^(-mu);
    5 e) e* j4 n  K/ O! R

  38. 2 \\" k, \9 S! _' i* m1 b* Q
  39. eq8 = omega2 - w2 * G2^(-mu);6 i, G& h+ i: K5 o& K6 w8 ]
  40. + t: F2 L/ ~* e* a5 ~  T' S) Y
  41. %返回方程组; M# e8 y0 [+ @% O# B
  42. . o$ a0 X# D5 I# o* c3 c6 ?2 G) E
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];9 e1 p  T* n! m+ p- p7 p

  44. . |0 x\" |\" T+ a  O  J
  45. end\" G/ j* \4 k! N' O

  46. # v+ n5 n2 l  B, K( K7 p
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。6 p& F9 ^6 U1 M& H- A

$ a8 A" E  H4 F7 s: t9 G- h结果图片如下:
- `6 D# c% G/ }  m6 X' ~ VeryCapture_20231118115514.jpg # M/ l7 l3 ^& o& U
' [) Q* }$ L" J! c& A4 \7 F
8 i" M! `2 q, k5 ?

- `" ?# z8 x3 s. H/ h

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-8-26 02:43 , Processed in 2.574506 second(s), 54 queries .

回顶部