QQ登录

只需要一步,快速开始

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

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

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

1175

主题

4

听众

2860

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。6 j! R! Y1 w* J
主函数:equation()
  1. function equation()
    & f2 j4 N\" a\" z! s6 k' ~$ u\" Z# @6 D

  2. / g, p+ R6 c* v
  3. global sigma mu T lambda8 n; E* ^. _% D3 g4 ~3 b
  4. ) f- i  D- l% I* {# W( v
  5. sigma = 5;   % 定义sigma的值
    7 z0 P% N9 G9 X1 x; O7 T

  6. ( v# ?! n\" _1 ~2 s. I$ _$ [% ~
  7. mu = 0.4;    % 定义mu的值
      B4 I/ D6 C7 X9 _+ I
  8. \" B. j) q$ r- P6 q- N8 M
  9. T = 1.7;     % 定义T的值0 }( P# r\" _+ P/ W9 }\" Z

  10. 7 f: w# {( U- t! r. b
  11. N = 1;
    ( ]) C\" O( P- g/ v/ }* x9 J; |
  12. & t. V5 L# V3 t: s% L, e3 |3 E: B: h
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    * o0 |! q( j) a
  14. ( Q% w7 Y& ~5 h1 a\" V/ a
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值* t' B- f! f# \4 A+ s# T
  16. # A* I* }. f9 D2 }! C' r9 Z& B\" Z. D
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    0 f* x1 i\" ^8 k. b\" s) ^
  18. \" ?) |+ c/ s* B' b- P
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里) V) O8 d$ L4 C; w

  20. , |. ?5 Q+ b- t) {: ?; h1 j) Q
  21.     N = N + 1;
    - ]2 ^# Z$ O& s% X# Z

  22. , q: I; T& W9 H7 o\" M& L
  23. end
    # u! ~, c$ T+ x2 V6 I; {

  24. ( Y4 i9 O. a+ G
  25. lambda = 0:0.05:1;\" E( P% J' V+ n+ _+ I* ^

  26.   `& D3 s) M+ l  R. ^8 N6 H( I, D
  27. plot(lambda, value)   % 绘图
    9 z$ T( N* h  C$ O/ L- w% s

  28.   V# m# P) K0 J
  29. title(['T=', num2str(T)])   % 给出图的标题- w( J2 b% e4 u; Y8 U
  30. , u$ J$ Z/ O) b: i. d
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    5 k( z: N2 |0 j

  2. 7 n/ \2 [, I- ^5 Y
  3. global sigma mu T lambda
    1 \1 A% o\" \7 J9 J) d& G. q+ |& l
  4. + k& G' E7 T! W$ r! p& X
  5. %x(1)~x(8)分别对应8个未知数
    1 k- f1 g0 t! i; [3 ~1 n8 L

  6. : \2 v, B$ H: `0 O* C% L+ O
  7. Y1 = x(1);    , U- k) P& q) p: J4 [
  8. # \$ y# x& W1 M+ X4 h7 u9 y
  9. Y2 = x(2);: C+ T8 T; E- i* S, L

  10. 7 ]8 s& X* R$ C! H$ a. A
  11. G1 = x(3);
    * i7 A4 x. {7 F  W& k

  12. - y( t, W+ F& o, n2 {
  13. G2 = x(4);4 B, A( n* }. P- S( }: n
  14. ) G# L1 h4 C, @, C+ ~5 j+ _
  15. w1 = x(5);
    . I, z/ j; ^- x+ {- J% E
  16. 6 ~$ N/ X1 g. r' p: h5 A
  17. w2 = x(6);' [, |) J7 Z+ U

  18. 5 }  f7 I2 T4 v) _* ~
  19. omega1 = x(7);
    ; p  @. P: \+ P
  20. ! Q8 H6 D3 m. {
  21. omega2 = x(8);( e  B# q1 }\" h, a6 b\" W

  22. + [/ W* `2 E1 S2 D& z
  23. %定义8个方程
    ' v! N# D6 p% J: l3 c

  24. \" @( x: I: B1 }) n) Y
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;  b% A7 Z2 o2 u2 J$ u# L8 U

  26. * y( `\" d2 C9 L\" C& {5 ]3 W
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;$ d9 |( Q: w. o8 R9 B

  28. & |9 T4 q2 x6 B5 Q3 r1 Z- p& I/ \! g
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));' T\" Y5 }# D3 b0 _$ X! X6 u7 H
  30. . l3 L) A* c& l8 ?+ J6 u; n. \- C) v* Z
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    ; J4 U6 Z7 X- j) A$ w
  32. / I$ s, U2 A\" ^3 T/ e/ h
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    / O: p  `4 W, x! l: I

  34. 0 x2 n7 c- `+ X' Q) C
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);. J$ s; A\" w8 [) U) ~  o1 b
  36. & [- _5 k\" L1 n# f* j3 z
  37. eq7 = omega1 - w1 * G1^(-mu);/ T! T) z( k% v6 L3 J
  38. & r, C3 \3 a% Z* y4 M- y
  39. eq8 = omega2 - w2 * G2^(-mu);
    + y; @* C( y. I2 s* T; P$ |

  40. 3 o2 p4 l: G% B4 S' R
  41. %返回方程组# m  ?- \\" ?9 J& @

  42. % m0 ]+ [6 T( m3 E
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];- T  l# W6 F; D' k0 L7 B. }
  44. : r2 I' y; x* [* z& N
  45. end
    9 k) P* T- f1 T2 l$ D

  46. * w! e$ Z  \8 P& Z4 o
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
; \! d" g1 S. L! _6 P' F2 _  y( t5 l8 |2 R  ^3 H
结果图片如下:
2 H+ p: @! `; G' V VeryCapture_20231118115514.jpg 8 L& z, H$ p$ D5 N* A1 |( s& p" \

' k* S- \4 U! h; d, ^. T3 Q: \0 f+ t9 U  H  w8 f$ [& \

# U+ D6 z% l1 Y! F3 H3 s

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, 2025-8-12 03:22 , Processed in 0.401129 second(s), 54 queries .

回顶部