QQ登录

只需要一步,快速开始

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

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

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

833

主题

1

听众

2186

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
' J7 \3 T. `0 t主函数:equation()
  1. function equation()
    & J; q8 d0 }0 _# N: P, i

  2. 9 `% E4 G/ r/ Q8 ]
  3. global sigma mu T lambda
    # Y' o) Y, Q5 f8 A& |4 U
  4. 2 X) A- x, l8 I  _5 P
  5. sigma = 5;   % 定义sigma的值0 X8 R' w/ u( R8 B8 p' ~' f

  6. & M7 A7 D; i7 T) ?' s2 V
  7. mu = 0.4;    % 定义mu的值5 T% h$ }; U# O! l1 V
  8. 8 }2 d% z) `8 {+ W; I5 Z
  9. T = 1.7;     % 定义T的值
    6 ~' n2 y! Z  j

  10. 4 d5 \9 _( }\" u, @; }: T
  11. N = 1;4 _/ \+ W/ x& z8 N9 `
  12. 5 E& e- G( D+ [9 A& o
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    ; b3 E) r8 m) x
  14. # y4 h! E2 \# ]' ?; s0 A( H
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值( q) a/ ?. q2 d4 D$ @

  16. 4 v! G; C5 }6 {( h3 T& r
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里& l2 R8 m9 Q4 h* M, J

  18. 3 @\" z\" {9 [! c0 V. {# H! }
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    ' t9 P, J! b& M. Y: f5 [0 z

  20. 7 V. t& H& e  B# F
  21.     N = N + 1;) s! K: d5 E# B: d4 [; h  u9 l! k! I

  22. % x5 t2 n; E3 U; Q
  23. end
    5 a! @  d6 _! c. j+ `0 R* X
  24. 2 m! J, I4 l. x% J2 {! S  p
  25. lambda = 0:0.05:1;! g+ n$ t2 a+ A0 F5 c  \8 w

  26. $ T( q6 b* y, {# P( s' `
  27. plot(lambda, value)   % 绘图
    ; L- F* r) \) e# P' o
  28. 3 o' z' C, J2 \2 H# Q# g8 ?
  29. title(['T=', num2str(T)])   % 给出图的标题
    ! s6 C& G- ]\" b

  30. 1 Z5 H3 E& A+ v+ {: ]) b% ?
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    \" Q- x/ ]& b0 |2 O
  2. 8 }% a3 ?9 H* J; L6 i) z+ p) j
  3. global sigma mu T lambda
    ! G4 M& h5 J' O) ~+ Q& S
  4. ; Q4 }8 P& j3 }0 ]1 s5 G2 G
  5. %x(1)~x(8)分别对应8个未知数
    4 `2 ^! ?5 Z- [3 p/ C/ ^

  6. 8 D7 [7 R! S9 ?, I4 }' {
  7. Y1 = x(1);   
    ' `& H$ h\" O# d; m& B1 a
  8. * y2 S/ e+ D: l. t, e
  9. Y2 = x(2);
    ) N  E6 H3 \1 ?5 Y\" d% u
  10. \" t; L5 m3 ~+ i5 ~7 I9 c
  11. G1 = x(3);' w7 T! n/ {0 X3 ^  @7 e

  12. 6 Q' O6 ^+ ]% j$ p7 P0 J\" C
  13. G2 = x(4);
    - ~$ U; f. S. y0 y6 S: w% {+ K' z8 c
  14. \" o/ B9 ]3 C, @& c0 \
  15. w1 = x(5);
    - L\" n1 ^0 O, J6 `6 ?9 w

  16. * \2 [( L# k, @; K# @# F9 F  e/ y$ q
  17. w2 = x(6);
    4 [; V! o. A7 n# v2 x
  18. $ ^( ?, N! |/ f* J2 \) x7 X/ q
  19. omega1 = x(7);- T' }7 E# K\" p6 c) j, r- S. A
  20. , P* o# g( V; ^
  21. omega2 = x(8);, C& i  m1 y) `/ m
  22. & y: w, v6 m, x+ y( D6 k+ Z. t
  23. %定义8个方程& ~2 m6 }0 p: S. Q3 {
  24. ( D5 g5 Z6 j5 s2 ^1 d. a4 S( q: E1 Q
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    * W: W( e% k! v9 C( H

  26. ; K2 Q/ G' y- e/ [\" {6 J
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;% A9 U( f7 N+ P8 j

  28. 5 d; F1 i9 Z0 _$ `& i
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));9 N) x2 S/ n: ^* g) s

  30. & _5 M\" I- a8 w; l6 r9 ]5 j7 x
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));  K: Z\" U$ N, H
  32. \" B6 W. i& t0 r8 V3 b. F, O+ M
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);  z9 D( g4 F6 @* P: j
  34. 5 [2 C# _/ J# D/ ]: X, h0 m
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    ; v; E# c/ Z% N# O
  36. 7 Z, l- S: p  u8 n9 V' l
  37. eq7 = omega1 - w1 * G1^(-mu);
    / @+ N$ N% {) E  `% w( [\" o' s& _

  38. $ x7 d1 {- \; \# w7 @0 N/ [2 V. F
  39. eq8 = omega2 - w2 * G2^(-mu);
    1 t0 D' G0 V8 q4 E/ N% g4 Z3 Z' U; }

  40. . u; ~! l: @, Y- T7 d1 Z
  41. %返回方程组
    , @& \- V1 Q& M! r4 d3 S

  42. ! o5 Z\" N& _& A+ E- e( a
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    0 r+ G) H6 }! q3 |; ]7 ~& f
  44. ' d, L! }, o$ d\" R
  45. end/ D$ v8 i' V; h4 n. a  q( s
  46. ! n; i/ ~3 B! F
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。9 g$ ~  ^" Y# [% o) T5 y
7 Z5 _6 i, V  [: N
结果图片如下:
0 ?+ ^6 \8 a6 N- y; [' r6 U VeryCapture_20231118115514.jpg 9 b% U# F" [% c( G0 }$ f9 N& U0 G
: Q+ M  @1 ^3 s0 G+ x: l' t. Y+ a. r

! S2 E/ S4 K/ b- S8 j
4 s8 `8 M7 G" m) u" `& q

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, 2024-6-4 13:08 , Processed in 0.616358 second(s), 54 queries .

回顶部