QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。, |6 ]$ Q; `0 N) a( I
主函数:equation()
  1. function equation()! H/ |. W- Z1 A6 j& D
  2. 4 E, H6 P& K0 I! a
  3. global sigma mu T lambda. G: `5 F1 p7 s4 k
  4. 3 M/ u1 _7 t- {
  5. sigma = 5;   % 定义sigma的值
    % T8 |! U, x9 d
  6. , d! {# n/ |+ i\" B2 R. k
  7. mu = 0.4;    % 定义mu的值
      p% @0 }1 U$ O

  8. 9 Q/ g0 p+ Q  H
  9. T = 1.7;     % 定义T的值
    ( \! U1 {2 S4 B6 a
  10. * ?  \1 {, E, |# i; j' l( x
  11. N = 1;
    ; @; v& L5 f\" I* x4 \
  12. $ R8 ]/ h# f# \. \
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点) h6 e. |7 p  {! r5 I8 K! _2 N

  14. . v- h+ C& Q7 v6 Q% Y
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    6 A; R' `6 U; \\" Y% |# q/ @$ u
  16. % L4 @& i0 `( w4 x1 U
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里/ Y. i; L\" c: L. P: L: ?
  18. 4 _6 d* z& {3 B9 }' T: L
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里\" ]+ U: M' U% V5 M
  20.   i( S! v+ H* M0 d  K
  21.     N = N + 1;0 i' t. U( N! q6 |

  22. ! V8 B8 B( Z: \' ?
  23. end6 X) b0 h# ?\" x. r1 X3 K

  24. ' O  ^! `  |) p' G, T: K  a2 o3 j
  25. lambda = 0:0.05:1;+ K4 t; A7 \. N* X
  26. * F7 H1 |- m; X; s% ?. q; Z
  27. plot(lambda, value)   % 绘图
    ) L, b4 A; V5 q/ Z' [% s
  28. + N) o- [+ c+ Q7 c& I8 P3 R3 ?
  29. title(['T=', num2str(T)])   % 给出图的标题4 l, \% r8 E4 A) E, O

  30. ) u5 @( o( ^  x+ J+ ?. ]% t* I
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)  t1 q. q  ?' V8 K/ \7 `

  2. ! k/ M- h/ L& n' ~\" [
  3. global sigma mu T lambda
    8 @2 l$ o. l5 z! i3 t

  4. ) u, i4 _3 A* u  Z
  5. %x(1)~x(8)分别对应8个未知数
    - \- H5 I5 a+ w& V* W( T

  6. - b/ h2 w\" v9 g% E: y
  7. Y1 = x(1);   
    : f) X5 ~1 T  y

  8. : Z& J! n0 d1 g- b1 Z
  9. Y2 = x(2);4 z& N! o/ C% R0 k2 e0 i
  10. 0 I6 z5 T7 h% I: a, m! {
  11. G1 = x(3);( ~$ z7 i  Q) ]5 _- K) E

  12. 1 k  _) D1 T0 I7 V
  13. G2 = x(4);
    : j- k\" L: R* [

  14. ; I. S7 H# |! @/ n/ J1 j3 F' m\" m
  15. w1 = x(5);/ f) w# T/ _& g

  16. ) ~2 u4 l2 ^\" z: a3 J/ X6 T
  17. w2 = x(6);
    ) ^# }+ q' Y$ \8 U
  18. 7 O% M! ]+ c! a  Y# E9 |# ~- F5 C
  19. omega1 = x(7);& s\" }\" x4 _8 x1 ]
  20. 8 c3 J- s: n; `8 x( A/ V$ l
  21. omega2 = x(8);6 e0 ~3 n$ m2 X- o

  22. ) {; ~% h* e% ?) ^3 U% ?9 N# D
  23. %定义8个方程
    4 H. }6 \* J9 T5 M: ]- `4 n
  24. ; K* q- f, L, e& d, J) l
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    * S' p: p9 e0 B3 l' S  f
  26. 7 p2 a) O, Y% O0 b) V2 L
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    5 N; c8 }8 r9 H8 i/ e# B2 |! g% V
  28. ; Q8 l4 o+ w* ?& Y. C2 I' t3 ?2 [
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    \" a0 C  P. s- ]4 k

  30. / {\" ^: y& X\" ?( |1 c
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    : Q# q) \6 P/ T3 n! @- \7 E4 {
  32. & e6 l7 j8 W8 S
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);3 j# X3 b6 B1 t  k
  34.   |% E$ N' ~2 Y4 v
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    8 S( B7 p' O' [4 @7 X  |

  36. / f) i\" n# W6 [* U* f
  37. eq7 = omega1 - w1 * G1^(-mu);
    , ~+ ~, n% l* p6 c
  38. : {, X1 [# G: g% g
  39. eq8 = omega2 - w2 * G2^(-mu);3 O- o- D- `; ~# ~9 D
  40. / f: q# S1 o% ]8 p' I. Z
  41. %返回方程组. E/ w4 t) }) S7 E# u0 Q  T: ?
  42. 2 |; T8 D5 K& y, M0 B\" r- ?. l7 H
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];9 L# M4 s7 o. j- }( s% o% s2 [! f, u
  44. ( T! _) n1 p, s; |# `/ ?8 ^6 H! k
  45. end& g7 ^2 [9 l# t7 j* H! z4 i1 h2 I
  46. : C, O\" K8 S$ d) O2 s# u
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
- \4 U5 A' r. b9 }) a* ^4 M
$ z$ x5 p7 R% @5 E. y: m结果图片如下:
( K0 E: }2 q% ^& \( } VeryCapture_20231118115514.jpg
) M. C. V- ^: N* ~* Y6 X1 T% R4 T, I! d; ~7 N* U/ z  |
0 k. H/ ?6 m' q+ \7 T

; g; C5 Y0 K; Z0 ?

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-11 01:51 , Processed in 0.949723 second(s), 55 queries .

回顶部