QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
, M" `! J% @: B1 C4 M4 u主函数:equation()
  1. function equation()4 n; ?* c7 _6 P3 k
  2. + M! w5 T) @3 {! c$ Q8 V
  3. global sigma mu T lambda
    / [2 ~4 A7 v7 X, [
  4. # X8 y- Y3 @6 j& A6 w) f+ O
  5. sigma = 5;   % 定义sigma的值
    8 \! n$ J; U) B6 f6 h: z
  6. . w& M- m& ^' B) z; {
  7. mu = 0.4;    % 定义mu的值
    8 S5 s+ z, ]: u5 I9 D) a

  8. - Y4 h( T9 V9 P& o
  9. T = 1.7;     % 定义T的值0 C: _+ l/ |\" Q4 w/ r3 @& l

  10. , {0 W  r- a' |1 y- [4 J2 A( U
  11. N = 1;/ o+ W  C0 z5 R\" ?5 ]0 k, ~

  12. ! c5 M2 N4 U/ M
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点! @\" p1 |+ _2 ?! O% c1 T- {
  14. - j) E$ |3 d7 w' X! r8 b( T8 t
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    4 R+ X, O5 j% O3 F2 e

  16. 0 |: y' k! }+ `\" d/ k0 U
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    \" w  o) t9 t1 u6 e/ G6 X; k
  18. # c/ c* |3 E, R
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    4 U/ I% f6 D# T( E# Y

  20. # e5 P4 F# F/ f. x) j
  21.     N = N + 1;
    4 \; ^8 c\" v- R3 U\" ^& u

  22. ' _7 ?6 A% e4 D4 y+ |* c5 r
  23. end: C1 |5 V* v: n) i5 N

  24. 5 v6 B0 m+ a; c7 R
  25. lambda = 0:0.05:1;! T: ~% C/ A; C4 w
  26. . ?' r& B* `  w
  27. plot(lambda, value)   % 绘图
    8 E( |$ p' F* d8 N  u3 X
  28. ! r$ v! C) M9 g
  29. title(['T=', num2str(T)])   % 给出图的标题* J3 c. P: _1 Z# P% o/ {

  30. \" e( [/ O  m: d2 t4 s$ @7 h
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x); u, y( V4 c( Q! }) ^

  2. \" H  O$ H& r5 S$ `2 r6 ~, h
  3. global sigma mu T lambda! `0 o# K9 |1 D0 |0 w7 X% X0 N0 v

  4. + v& ~  J+ \9 v, x
  5. %x(1)~x(8)分别对应8个未知数  s1 N( z+ j+ F0 a, N! o' Y
  6. 4 V, S' t2 p1 T2 L/ F
  7. Y1 = x(1);   
    ; S4 t# |6 ], c- ]1 C

  8.   x6 ^+ X5 R7 |# K% z6 |
  9. Y2 = x(2);
    # Q) W# \, z: [% U) u0 o; t/ B: }
  10. 4 n2 k: E: y( g7 V
  11. G1 = x(3);9 x: z( y/ S5 M/ I! w0 |5 t+ e

  12. \" _8 X% i2 e: g( x
  13. G2 = x(4);' ~& l: M# M9 H. S
  14. 0 a( G/ o  P, p' a, ^
  15. w1 = x(5);% B. @# E$ D' b
  16. ! b) a4 ]  Z3 N/ G2 X/ b; k
  17. w2 = x(6);- b/ r4 O8 k; Y/ [7 k: k

  18. 3 H  {6 ~4 U  z
  19. omega1 = x(7);
    5 r% H$ o! z, @4 p% r+ r+ P' n

  20. + i! G, m* X6 I  G, R8 q8 Y( g2 v
  21. omega2 = x(8);
    , J4 Z+ g9 y0 y2 ^7 A

  22. % V3 w7 A) k, i7 D, L' o9 j( m
  23. %定义8个方程  e4 `- E4 |' A# a' U0 h

  24. 4 b; D& v) j- @8 c7 C9 X5 e
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;% J9 D6 @7 V  G5 x2 F
  26. # J  H5 I# }4 d
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;! p* P+ i\" J) T

  28. ; ~3 j( `5 \5 Y! V, y! n4 g# h
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));' N. [4 f- {+ U( ?3 b1 ^

  30. 8 f% t/ ~/ ~& `/ }5 o/ T
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));3 v% M0 R1 _- `5 M
  32. . N$ s# C; s0 c% l! m* L+ G
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    5 a: s! w$ O4 p( m

  34. 8 y: z& B/ K) K' ~
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);& d' \3 X  z- v\" b. L
  36. # z6 x. H( N+ e; U8 W
  37. eq7 = omega1 - w1 * G1^(-mu);! [0 p* O0 n* ^\" j/ p( Y& R
  38. , r7 m& C, s* i  C, ~+ F
  39. eq8 = omega2 - w2 * G2^(-mu);\" W+ E\" P; k; K8 P0 |- ]
  40. + P6 `) F4 `  B2 C
  41. %返回方程组7 Z- j1 ^, M- i
  42. 5 x9 G- l7 R1 v. q6 L, B9 {
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];3 H; {2 @0 C, S3 G3 B+ `$ k' c

  44. 4 g! Z* U  d\" g0 V* [. x4 S
  45. end
    ' N! u5 a2 Z( L$ D* A\" l1 O
  46. * p1 j) V1 d# J9 {4 b7 }
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。) v* f9 C4 o4 W. _
' t+ z1 O- o* a" {: O4 I. M
结果图片如下:) |! J8 O' m% G# Y" M/ @, s
VeryCapture_20231118115514.jpg 5 x! h+ |3 z# A4 E7 x7 D
$ Y% p" |5 X( s6 V- |

4 `5 B, o! Q1 R$ H6 Q$ v5 Z1 r; B; L& Y! f, |! b9 \4 W

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-10 17:22 , Processed in 0.602025 second(s), 55 queries .

回顶部