QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
) M' d% }9 J$ `% K; J& I- k主函数:equation()
  1. function equation()& A7 l0 c, ]- w; w\" m
  2. ' i$ K% s& i3 Q1 K2 Y- Y7 U3 I+ ]
  3. global sigma mu T lambda2 a7 C5 _% @- v' F. C/ Q8 k

  4. - O- `$ b6 q/ Z+ o- H3 d! d
  5. sigma = 5;   % 定义sigma的值
    - I. \& J% K( p
  6. 6 k0 u1 n# Z4 j8 Y/ R# p2 {
  7. mu = 0.4;    % 定义mu的值- q! ?6 P$ g! j7 v, s2 a\" O

  8. ! P% F! E* T. K! x! Z; f/ Q/ a5 H
  9. T = 1.7;     % 定义T的值
    ( L* X) o5 j; I! Q& j+ \
  10. ' g. `5 z- h4 J. v4 m/ E2 r
  11. N = 1;( [* ~\" ^  R\" V6 g
  12. : E. ?) t7 V- n) }
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点% w# X4 A* g7 L$ d: {
  14. ! }+ l2 J3 a) e+ D
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    7 C9 E/ N' i6 p- J
  16. - w, x% U; u4 B2 `% L
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里' n- S! r- t, V1 T5 W

  18. 4 W4 t4 C0 i3 Z\" R4 H
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    , V. C0 W' o3 O3 S) ^  ^+ j. L
  20. 4 }1 N- E7 t\" n
  21.     N = N + 1;5 L' x2 Y. D\" x* l9 q

  22. . U6 w: X  G9 ~, m' Q% r- D: ~
  23. end
    ; y; }\" x2 e' H! v

  24. 4 I  q$ K. i. }4 \/ l
  25. lambda = 0:0.05:1;
    & K7 G& n& v. s- x- A6 G5 R+ ?
  26. . G) Y, G: v5 D+ P, C
  27. plot(lambda, value)   % 绘图' e, W  A. ?, ~3 [3 b3 c0 }

  28. 7 s: ~; s) o# H# X
  29. title(['T=', num2str(T)])   % 给出图的标题
    0 Q% P, {- b' U  i) `4 E* Q$ m

  30. . ^& `8 t- X- r\" Z# _. r; x/ L' i
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    * A\" O7 P7 E+ Z/ ?  U) N
  2. : d, d- @\" A7 p4 U# J) a
  3. global sigma mu T lambda% E6 W. P- ?8 }. a) ^2 n' x

  4. $ B$ B( d& ?; E) |, g, u: c2 ~
  5. %x(1)~x(8)分别对应8个未知数
    \" R5 w& k. y\" @0 m) H5 Z9 `

  6. 3 J8 B8 i* S5 N% ~, R6 n0 N
  7. Y1 = x(1);    ! f: K1 n* l  E* c+ \; E6 g7 {
  8. 7 i) ~4 o  I/ P
  9. Y2 = x(2);5 |  [: w( J/ K$ S

  10. ' |+ N& s2 c+ v( j4 F/ y$ H
  11. G1 = x(3);
    8 ?; s% y/ `8 o( \  a

  12. \" J/ ]5 x! @0 \) F+ C
  13. G2 = x(4);; F6 {  U! }, T0 O4 L

  14. + X+ s, V+ ^; V* U
  15. w1 = x(5);
    . [4 x' @3 B( B\" u' @$ ?1 d

  16. # |7 m\" B; F3 r9 ~3 \4 p  E, U
  17. w2 = x(6);
    0 |( _\" q& q1 b8 j5 |6 [5 g

  18. : q7 E. n5 ?6 g\" A7 j$ }: N0 A! f
  19. omega1 = x(7);
    ; r7 {$ s% Q' M* x& P5 H, Z
  20. / e$ }1 R7 y) l2 I1 I1 n; {6 ~% _
  21. omega2 = x(8);
    ' g  ^0 Y; @/ }2 Y. D

  22. \" a8 o9 ?6 E. m# f$ p7 m
  23. %定义8个方程
    9 h3 g\" R2 w6 O+ g

  24. 9 K& @+ U) B& g9 X& i
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    $ T+ |- x) [, [( {3 i. z
  26. ( X3 Q/ ]& x6 k) o
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;+ F* r+ U! }2 l' D\" M
  28. \" u! T- C2 z7 T; w$ I
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    ) D- t5 X, t\" j- ?- a
  30. # x9 i9 z; @) L* Z5 D# o* |0 K7 z
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    ! G1 X1 Z1 G  D
  32. ; E6 o3 O- e# I6 V; H8 b# y
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);, q# C* ^) D* e6 f6 _! J1 l+ a
  34. * o/ O  g2 i  J+ a& I) x
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);5 d0 F5 g( W2 S# `9 a' \

  36. ) K$ {8 x; [7 K\" Z9 o# J/ C3 D
  37. eq7 = omega1 - w1 * G1^(-mu);' v$ w1 N7 q; e\" q$ z, n) ?

  38. $ Y0 ?% I; o2 c3 b% B. r
  39. eq8 = omega2 - w2 * G2^(-mu);
    3 n# \$ I* [9 [) o2 {

  40. * ~+ D. H. ]$ _\" l# x  U( |' j
  41. %返回方程组- I2 I/ d1 @. N/ h. v

  42. ! _% Y: b4 s) g
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];0 b$ E( j3 P, e0 x  N  W5 |

  44. # T9 W% z; a7 p  C: a+ \
  45. end/ e4 U* p( f4 j: @& k$ P4 A

  46. 0 V6 c+ d% c, O- v
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。) \" ~3 E' l. E3 s7 A& N1 _
' L; j4 U; Z; N  O2 _. u
结果图片如下:3 T) r# b/ @5 K3 Q1 a
VeryCapture_20231118115514.jpg ! z0 X  Z  h9 z$ W) Y" N+ m
6 I6 [" S1 Q* Y

) j8 {# s' ]. D6 k; M; U- _8 G1 z$ G% j) i1 ~- E9 ^% ^7 z

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-6-20 21:03 , Processed in 0.471532 second(s), 55 queries .

回顶部