QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。! ~) b0 q; v+ M$ v' q3 ~$ N! ^& s
主函数:equation()
  1. function equation()
    2 ?' U6 r+ l& ~9 N9 \# W

  2. 5 \; |+ U3 t* v# {9 N3 i0 O( U& m
  3. global sigma mu T lambda
    8 `9 ]) [' I: I3 ]0 X
  4. * q7 m; S+ h  y' T8 b5 b+ S5 W( G  L
  5. sigma = 5;   % 定义sigma的值: R5 |\" P\" h- M) _- V; T7 P0 y5 S

  6. ) p/ \1 ~* ?5 F( w4 N* h
  7. mu = 0.4;    % 定义mu的值6 u, }. H8 G: X* u& [' s8 b4 R

  8. - K1 u, K\" M; o) E, d' N5 P6 Z
  9. T = 1.7;     % 定义T的值0 c) s\" p. @2 h4 Y# H& e; G+ Z

  10. / g( g0 h5 F- o& D8 M( L
  11. N = 1;
    8 L3 ^( C: m: \. }- e1 a% L9 ^

  12. . k, e+ O0 V) Q8 g' W
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点+ |) G9 y1 {: a0 H* f

  14. . Q: T) J% u& b9 b
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    ' u4 O! T9 ^9 E
  16. . V5 s' O0 I* K0 N1 n9 l# J
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里7 C; P8 r\" }3 |. U% T4 F
  18. & {) B( x# q' C( ~+ d' u) ?1 E
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里% C\" O2 O' D; D) p% ~& m
  20. 2 t; Y7 |6 w8 m: a! K: D6 s* H. Y9 P
  21.     N = N + 1;5 W5 n- y  c% F\" r5 F
  22. + [3 ?. K9 w3 J# k/ g
  23. end\" b8 v5 ?9 v8 D9 f  d7 h

  24. \" ]+ D4 f2 C0 f
  25. lambda = 0:0.05:1;# f/ X$ ]( a0 L; }- s2 v' g

  26. + I8 @- R2 I- k) s0 }$ u9 g
  27. plot(lambda, value)   % 绘图
    & [& {3 b$ @( }# E5 u1 x6 M4 J
  28. 0 }6 m- Q+ S: r4 v
  29. title(['T=', num2str(T)])   % 给出图的标题' k  I2 Z! r* p9 h) G/ X# \

  30. ! g) d; {) o! b5 t! a
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    * I2 A# J* x3 [  G1 ]0 E) H  n
  2. / f3 W* h4 }! ~: b# ^) T0 }
  3. global sigma mu T lambda
    , A4 O! |6 H6 T0 c

  4. 3 q9 B. s' T8 @7 b% K) Z3 P) N6 X
  5. %x(1)~x(8)分别对应8个未知数
    1 W/ }0 R  y5 U& z9 U
  6. 8 Y% V4 G, K& h( e# w) v7 H! W\" T1 i9 a
  7. Y1 = x(1);   
    % m8 K1 M) K# \2 P) K) w; R
  8. # u7 @9 c2 K3 I8 {8 {
  9. Y2 = x(2);
    / }) O* p& W) @/ ]$ }. A( y$ y

  10. & f$ f0 {5 v1 M
  11. G1 = x(3);
    $ X, ~5 k) l& ^( [, j8 ^8 z/ `9 d

  12. ; `2 b% I4 _- q; I
  13. G2 = x(4);2 g- D% T- [! D4 N+ g7 C\" g' R. B

  14. : m0 a4 S, W! y+ `
  15. w1 = x(5);
    . w\" g# M0 [; G1 \% M
  16. 3 t3 f$ M7 ?$ Y2 I# u+ l7 M
  17. w2 = x(6);3 L2 c/ N1 r) @2 W1 f# T  J

  18. ; Q' J: v  u( H% W( K
  19. omega1 = x(7);
    8 a! x- `4 J' w. ?

  20. ' S9 v. z5 P9 e# L( A' N' m3 y) d2 L3 M8 v
  21. omega2 = x(8);3 `5 l6 A  f# L) c* ]* N& a
  22. : |3 I1 e; a1 @) C4 G\" ]+ u
  23. %定义8个方程3 j+ Y! w% ^\" f3 R* H) u

  24. 8 F; ?\" ^) d+ G; G& ?
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    5 b0 i3 o/ F! l& P$ d& b5 k

  26. 9 @$ [  ^* l, f
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    $ p) `0 l* a) J

  28. 3 V* F) x2 E* V0 {  {* E
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    # ~% I! G! C- p% @
  30. , B5 c& t9 M+ u: J
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));5 A2 ~% u# d) B2 Y: ~# _
  32. 8 K1 u, F) {- W
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    8 S6 ?4 W* M1 ~5 W9 J

  34. 8 N2 R; Z( o# y3 s* P2 c* Y
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);# B1 j  s4 ]4 V4 ~+ n0 `: t

  36. ) @# c* B4 G\" @7 B7 i
  37. eq7 = omega1 - w1 * G1^(-mu);
    ; l. @4 _* m\" W

  38. 5 |: s- {0 [0 r8 J
  39. eq8 = omega2 - w2 * G2^(-mu);
    + |+ ~7 a, H4 r, S9 h) f

  40. : j- X0 U3 V% S& J
  41. %返回方程组
    ) p1 Q4 G\" |( y1 H' g

  42. 0 ^9 i/ a0 i2 U1 f& G, B! Q7 }3 l
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];% |. l% X! y3 l1 a( x
  44. . R' e1 Z1 k* L
  45. end
    4 V& S% K' H& c* ?$ @1 ^& U. N  \
  46. - v+ X: y1 i7 `
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。) E' B& m/ [4 k; l# E
$ M& F( i$ m/ _6 o) ]9 s6 q- A
结果图片如下:
% D+ N9 b' I: I- b6 y VeryCapture_20231118115514.jpg ) m  ?/ R2 w0 \5 @; \* k. |/ R
2 `$ ~0 x5 M* \& {

7 c) K( |+ m, p; m. j& J- J4 a7 E/ C

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-13 14:19 , Processed in 0.405629 second(s), 55 queries .

回顶部