QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
; V) b9 S  M# j& d4 c0 g主函数:equation()
  1. function equation()
    1 G' p0 M; \\" z. i
  2. $ _0 A5 e1 t$ a- m
  3. global sigma mu T lambda, p* H\" [+ V7 [! C$ w5 ?

  4. 9 G6 i0 s. L4 T
  5. sigma = 5;   % 定义sigma的值
    2 a. a# [% N\" |- l! e- e
  6. 9 }$ ^: T' e& O1 E; X6 L
  7. mu = 0.4;    % 定义mu的值
    / k; q; ^7 m: y/ W$ m
  8. , n  m4 o3 S- x  y$ `
  9. T = 1.7;     % 定义T的值' @6 C0 b4 `/ k4 e
  10. ) t' E2 k% b9 m0 j  q. d
  11. N = 1;
      P/ L: c1 w* _$ ^8 u) j1 n( `

  12. 8 q- w& L2 r( X2 I  |1 T
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    2 Q0 T! D1 s6 @1 z1 _

  14. & W8 E7 Y\" I( S\" F$ R
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    ' u, o+ ]3 x. \3 o
  16. & R0 ?* ^6 |9 A4 a# G
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    0 w8 B\" G  Z4 W. u& F' F
  18. : A+ o' V0 M( E& a3 p9 C# o: m
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    2 b6 T6 W. N. U; `/ r

  20. ; q) P\" J' A- u
  21.     N = N + 1;
    & M, k1 H# N2 p0 y
  22. - X$ A2 c\" p. D  h# [+ r* q
  23. end
    - g5 c) s$ X/ b  d+ u9 Z% r

  24. 2 M: v8 |# v\" H
  25. lambda = 0:0.05:1;) c3 g7 Q\" c\" w8 X: I
  26. . a. w5 M* W, m9 z
  27. plot(lambda, value)   % 绘图
    # [1 f* n* G$ P7 b5 ?3 U3 T5 F, W

  28. 5 N\" q: ~, @- l9 g& h; F' f
  29. title(['T=', num2str(T)])   % 给出图的标题- R3 \' }$ Y* b+ B
  30. : W; G: ?. f+ ?' V) ^
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)
    * x& e2 A0 @3 J: F1 \/ k
  2. 3 j% A+ R$ V0 f! l3 ?) M  Z) K
  3. global sigma mu T lambda9 n9 X/ M3 a! I+ l
  4.   {+ r$ B5 @0 X5 Q3 [1 x
  5. %x(1)~x(8)分别对应8个未知数2 {! H$ U+ ^7 R5 D$ X
  6. 4 y3 a+ Z, m9 y2 W5 u
  7. Y1 = x(1);    \" {& R! J! ^4 K' r% D% T5 d8 @1 m/ }

  8.   w  w  f6 U9 M% O/ W9 d% R- A
  9. Y2 = x(2);  {1 s1 N9 R\" y0 G9 G+ r: S
  10. ( s1 f( Y* M1 V0 Z( t) L
  11. G1 = x(3);9 S; z. M  u5 H7 ^

  12. 3 S, X4 Q2 b% \7 R- m, C4 q9 ?
  13. G2 = x(4);1 F' Z6 P0 R9 c. H3 F

  14. & X9 W7 i& u' C: J
  15. w1 = x(5);
    : L: c7 r; M( o4 L\" ?- i- B/ w

  16. , x7 x. {7 h# r2 I
  17. w2 = x(6);# Q$ k5 Y+ K2 q
  18. 7 q9 X+ P; w4 V$ H
  19. omega1 = x(7);& p8 y3 E7 U0 x$ W3 d
  20. 9 s+ p+ w' N/ s
  21. omega2 = x(8);
    , {5 a, z: b7 F6 U; i\" f7 a

  22. 1 e  }+ X% I3 W3 N( z) P' C
  23. %定义8个方程6 C& L0 U3 l. f9 D

  24. 5 D, ~6 p* o2 ]0 R# [5 h5 @9 p5 f
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;
    ' D, V1 y  ?$ L1 m& P8 I* Q' \6 S1 b( c
  26. % D0 g' y. i' a) S; l2 y( H5 Q
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    ' x& m5 m9 q) Q: N, h; y0 b6 M
  28. 1 P  F% j' h7 n4 m7 I& e
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    & [) _\" Q4 m, O3 p

  30. 6 @! i$ B' ~& E* D
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    , |  c5 D8 A- Z1 n0 Y* F3 b; N7 [

  32. ; z4 s8 `' \  q, f7 Q
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);% q3 Z0 `2 L7 j8 V0 l* v, @. z9 v, v% U' L
  34. $ H. E4 @2 o$ Y/ z8 G7 l0 U
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);
    # R3 `) a) v5 O% y

  36. 5 Q; Q8 Q5 B- u- t- ]7 K
  37. eq7 = omega1 - w1 * G1^(-mu);: p- ^0 _7 {\" F
  38. 5 I. r9 W; p4 g5 S- c2 g5 Y
  39. eq8 = omega2 - w2 * G2^(-mu);
    ( ^& k# ?+ V\" Q/ V
  40. , v0 K2 {$ o% v( f\" B
  41. %返回方程组3 I% b: q3 I; O- H& J
  42. ' j: a  _/ e* Z) }2 o; ?, y! x
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];/ C2 H( l9 n. B: R

  44.   r7 ]7 I' ~# S- l& E# i3 z
  45. end5 j. i& a5 f3 S2 V, c
  46. . I- }( D, Q! Z8 R& H
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
+ S9 J! q/ G* v6 F7 t
6 G" M! ~( n: i; k. f9 h, o* f/ {结果图片如下:
! m; D+ |3 R1 t VeryCapture_20231118115514.jpg
2 c5 V# Q* \; L- p$ ]/ p# c0 E# }. y) Z9 s% z

7 p% Y; H4 R) J3 ^, O1 E. j
8 t8 |5 J' N9 ?

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:59 , Processed in 0.430869 second(s), 55 queries .

回顶部