QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |正序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
1 x- J* \! v3 x7 Z/ u/ ]7 T8 `7 g主函数:equation()
  1. function equation()* v% |+ k1 C7 q\" v/ J$ X; I- G8 e\" t

  2. / u$ D8 [$ e: `2 j* H' E8 M
  3. global sigma mu T lambda
    7 R6 t( I* c& f  A0 Y5 X
  4. + q, T) ~( x5 ^# ^: Q) S
  5. sigma = 5;   % 定义sigma的值3 n5 O- g% v' Z! J) w9 u

  6. $ t( F/ @# |+ o2 x3 N5 a+ g' T
  7. mu = 0.4;    % 定义mu的值* D. m/ B, x  c; Z) x% T) W0 l
  8. % }9 D  \8 Z0 B7 ~: X, t& _
  9. T = 1.7;     % 定义T的值, m\" N7 D5 x: w4 q) d6 I

  10. 2 e$ z5 Q3 H: y6 _1 N0 L
  11. N = 1;
    / w0 T$ I5 }, |$ ~7 L) n  W/ g

  12. ! D# n' f0 j. F  l/ R$ O
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点/ Z3 C( S7 t* L. Z# j$ I
  14. & m9 @& i% d  J9 U3 x2 F
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    # L, t5 E/ |$ C- }
  16. $ N, Z& W0 E' d
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里6 v) ~& e$ Y2 ~: J5 P2 F2 W

  18. & U) C/ m7 o) Y9 n. G
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    3 O1 Q: X7 }. H

  20. 9 E1 k- U* j( N
  21.     N = N + 1;! m( j% j3 _  A' }* ]4 X' U
  22. $ f# U6 ^* L! T, C0 d4 O6 a
  23. end
    ; Q! B& x' ^$ w! U: H) P
  24. 4 }7 A, |0 u0 `. R( @\" h5 y3 v. h
  25. lambda = 0:0.05:1;: _# P* v( ~9 M+ L, v* I( y
  26. 3 y0 W3 ~% S\" T3 Q! }* `; M& N
  27. plot(lambda, value)   % 绘图  s) V4 p9 {, G5 V) U
  28. 7 U# Z4 v, P- @, x5 b0 ~4 w
  29. title(['T=', num2str(T)])   % 给出图的标题\" J+ {/ h, U  H7 z/ W

  30. : q* n, i) f& l% d( G/ a
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)/ V0 d: s  q& Q9 y
  2. ; P& I1 w; D# G3 G2 }5 O0 s
  3. global sigma mu T lambda
    ( q; Z4 R7 l  J0 K% q; c
  4. 7 \9 P/ P  f0 L\" Z& ~: O' K5 B9 y
  5. %x(1)~x(8)分别对应8个未知数% T2 z; l/ a' `6 G1 ?
  6. ! M+ i1 z, ]5 d9 s2 x- I
  7. Y1 = x(1);   
    3 N' e4 M4 O7 w

  8. 7 j( F  ?- \- |$ @+ h+ ?8 n8 D
  9. Y2 = x(2);
    7 r% C0 b, D* i7 V0 h

  10.   P! r) Q, n3 O/ c
  11. G1 = x(3);
    / H\" j# n: ^, W/ u

  12. ) B8 p8 t- {4 ?9 A; I  r
  13. G2 = x(4);
    7 n$ [6 R* I8 p
  14. 9 i% C4 l* W' {8 E- N: n
  15. w1 = x(5);3 \% w* G8 G# d  E  z2 u# c

  16. , t- N1 B. o6 q) Z* Q9 i) r) h
  17. w2 = x(6);
    8 i, @/ n( n' y% a* ?; q9 S. b+ z

  18. ' c6 N3 X# N2 M, Z! [; L& p; `
  19. omega1 = x(7);
    4 d. O6 y9 M: p  x; K
  20. / s% v, `5 ^0 g
  21. omega2 = x(8);
    : I, K% t8 ^+ v9 o7 B7 o/ Y- Y  T' S
  22. , u# `1 b* r) U. U2 S
  23. %定义8个方程7 X- a& N  B6 @7 Z  I: T+ z

  24. 1 K; S& v# x6 _4 v4 I3 |
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;0 D/ D7 S- t# R; {$ A0 D
  26. # D7 s+ X# k# E# a& `$ H0 e
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;( Q6 I3 {+ d9 T7 W% _9 z
  28. \" _1 P7 H* _% @& j
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));. u4 e& I. m$ [

  30. ' I5 z  Y0 Z! T5 k1 Q; w
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    $ p- T9 ?$ d. O' q! L/ q

  32. 4 N4 R$ k. C2 h2 n; T6 L! ~
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    0 g! L6 U$ G3 A5 V& V1 f. k5 t6 v

  34. $ N+ W9 i; D( H8 u\" f
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    ( R; I' ~% k  w8 J. b

  36. \" M( E3 V2 b' I' u0 _0 F8 R% \
  37. eq7 = omega1 - w1 * G1^(-mu);) y' C/ O3 f& V9 \

  38. $ D* ^\" x- w  _- R& p% O8 p
  39. eq8 = omega2 - w2 * G2^(-mu);
    ! ^1 g6 `2 J5 q' Z& k& Q2 i2 `
  40. 4 {1 {2 j3 Q/ M
  41. %返回方程组
    + F. l& j+ l' k6 ~6 H

  42. / f' B! m2 R% q4 j' }' [3 C( ?
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    ( V' A  P+ K' }7 \\" P  e0 S\" d\" N, t

  44. 7 t3 N: Q\" P( |8 n
  45. end
    7 c2 }5 f  S: a4 L, r! u
  46. + G\" Q+ g6 }# E8 F: a8 _
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。4 R) h% S4 p- U5 e! q: K* J3 L+ W
* L, V/ A, q6 q3 X
结果图片如下:
% [! ~1 o7 x  |' y( U3 B2 e VeryCapture_20231118115514.jpg ! t0 o/ B4 G- N# ^5 J

0 e1 v4 R/ A* Y
1 H$ o$ A6 c% V* G0 |& [! Z5 i5 x4 t* E

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 03:50 , Processed in 0.416686 second(s), 56 queries .

回顶部