QQ登录

只需要一步,快速开始

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

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

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

833

主题

1

听众

2184

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |正序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
4 k# y8 m' ~% Q8 g  S5 r( d主函数:equation()
  1. function equation()
    1 t; H. |, @2 U: r# h

  2. ! j8 b4 b2 T2 u. p! b) _: d4 b
  3. global sigma mu T lambda7 ^\" C% y! E/ g4 \, W) U
  4. 0 F0 p7 C; l, q$ @  W
  5. sigma = 5;   % 定义sigma的值
    1 z2 x3 f9 C, C% V% _. H- V5 [
  6. 1 |2 ?9 \2 |- y  W. s( N
  7. mu = 0.4;    % 定义mu的值
      _) S# Y( d4 r1 U2 E
  8. * W( T  ]3 r5 K8 f2 J
  9. T = 1.7;     % 定义T的值. N8 I( l4 H% S
  10.   ]) F* l- M7 ]- F6 p4 X
  11. N = 1;, J& {- E4 C# t( m\" j, m$ J

  12.   m' ~% j# [9 ?
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点* P- V9 h$ X* O2 i! D0 {- i+ K
  14. : ~3 [, K+ z* K1 |
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    7 a! m1 y& C8 }$ ]2 F1 G
  16. 8 V  j7 _3 u4 }! a5 f0 N
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    : }: l# ~2 k\" G
  18. % d- k* C+ s1 R$ u
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里% v+ C1 l# a0 R. ]/ u2 g

  20. ' s$ c5 G3 w\" ?9 B+ a
  21.     N = N + 1;
    ' L) o: K0 X8 @8 X9 V, A$ S

  22. / S+ V4 `7 E. N' _$ h/ I
  23. end/ N# P0 `2 Z5 u* ?+ D) |! C
  24. 8 ]\" @. @/ p4 O4 D( z( F
  25. lambda = 0:0.05:1;
    . s8 S# ?: ~4 P) E
  26. - \0 L\" |5 ]! L- V: q
  27. plot(lambda, value)   % 绘图$ z; u\" T& ^1 W# F) ^
  28. 4 d) y+ T' x, H- L9 |) y
  29. title(['T=', num2str(T)])   % 给出图的标题3 K8 x& S7 H0 S% i
  30.   a\" X( z  z4 P# i\" {
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    - Z+ j& S3 I2 ?' O4 M9 ~+ y6 b

  2. & V4 T8 C, ^% X& W, v7 V2 T
  3. global sigma mu T lambda
    1 t0 h* P, }9 ?0 O. E( I

  4. ' N6 ?5 L. _; D' r+ x- w1 n
  5. %x(1)~x(8)分别对应8个未知数
    - r# k: _* y' E2 U0 D- h

  6. 7 v\" q$ U  f- j0 l7 W
  7. Y1 = x(1);    6 W9 j* f) H% o- n7 n
  8. ! u, W0 b, `8 P
  9. Y2 = x(2);- @/ b6 T, y; k4 Y

  10. $ k3 c% y\" c5 e& k
  11. G1 = x(3);( u7 [/ p' s9 Q1 ~3 ^2 D7 b+ v7 E4 x: Q
  12. 4 c; |' d3 E6 {
  13. G2 = x(4);
    - A3 @6 s4 q\" e7 w% i

  14. 2 @1 Y6 I  }. o/ s
  15. w1 = x(5);+ c6 C( D4 J3 m1 B  U- U6 I  T
  16. + T+ R8 f. Q6 \4 |
  17. w2 = x(6);
    , [& P- W7 x* D/ C. V' K  r7 ?8 N

  18. 4 s4 g% h6 F! j  q) J
  19. omega1 = x(7);; J1 `- T  D# r  F( [( k

  20. 1 I+ }  u0 D: \1 `  w
  21. omega2 = x(8);+ q7 b# O; G* m' Z7 {
  22. , m  W& v9 O9 I6 v8 p  M! t$ k! F4 A
  23. %定义8个方程  S) g2 B9 t7 o/ O1 w$ H0 ?
  24. ) A8 @3 s9 ?/ u4 V
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    ' }2 e1 k+ z/ _0 ]1 \

  26. . |/ T) c. h9 G5 f) ~. O2 s4 n$ M
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    # R$ L) O* F/ \
  28. ! q3 b( j+ Y* \6 L' Y0 V* ^
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    ) S$ d8 C+ A5 R4 _3 \3 |; W8 k

  30. # e# f9 }& C# g8 U: L\" W5 U
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));8 S# m- n8 d% V; a5 a

  32. ( l9 x/ w% l- m3 L' w) j0 S1 D
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);: K7 t( \  c& i2 c0 H

  34. 9 C1 N- M! k) u1 D' M
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);% U, i+ \2 ~3 Q, n  _! {\" m

  36. ! i( h5 [. u$ _# m
  37. eq7 = omega1 - w1 * G1^(-mu);% X9 T8 U\" l; F4 j4 U

  38. # L; V' V4 l/ q  F  Y6 Q8 [3 M) A0 v
  39. eq8 = omega2 - w2 * G2^(-mu);
    8 X- C2 @5 P/ ]9 f) |7 B
  40. 2 h2 I( O# F: ]7 U' a, }* T/ o
  41. %返回方程组7 b  R  ]/ z! H+ J+ B8 b

  42. ' r8 z' f0 z: }\" V3 L5 J4 Y1 Z
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];6 M- s3 K: l  I\" O3 [

  44. + H+ Q3 a9 k; |+ X& S
  45. end
    7 k/ U6 B. d/ ?' A; J
  46. 0 g- e. v1 h+ n
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。% ~9 r: U% N- I: }2 H* B7 b
: o9 ]" N1 B, @0 \
结果图片如下:
4 A7 |, v! R- y( F VeryCapture_20231118115514.jpg 9 x" N$ ^& {5 F0 j

: @2 S- x: j$ g/ O% l) }+ h1 l$ Z) A
$ `6 y. S& s! r3 b- z( H. W& j5 h+ [' ]5 d/ u

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-29 14:15 , Processed in 0.301987 second(s), 56 queries .

回顶部