QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
( r$ I/ [( [& O, B主函数:equation()
  1. function equation()7 G/ r% J$ J/ d5 p; R5 [

  2. ! ^& k: f5 @5 X$ C
  3. global sigma mu T lambda; D/ G/ W$ j3 f0 t2 b

  4. % z- r# a( G% d* b! L$ v
  5. sigma = 5;   % 定义sigma的值/ b+ t' D2 M$ s3 }( ?5 p7 j

  6. , i5 }6 T4 |+ [
  7. mu = 0.4;    % 定义mu的值( T( F5 n/ H) s1 J

  8. ! T& R3 k, U7 ^. l  H
  9. T = 1.7;     % 定义T的值
    ' x# k/ [; j  b5 R# z2 ?7 G

  10. 7 `1 u. h+ S7 Q; g2 \
  11. N = 1;
    $ V( m2 {+ c8 }- {& V; A3 f% J- I
  12. ; n: V  _$ a\" k% \* }( u& h
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点
    9 Z* l2 l) |1 a0 Y8 e3 M

  14. 9 m+ g8 ^; h3 {4 S\" a$ h( U5 U; U
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    4 D! h9 g/ T) h0 A. N\" w: Y

  16. ; P: ?; N& |# e, K6 y\" X
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里
    $ e- I+ R* v6 {
  18. ' K; ^* P6 A# R\" r$ w# g6 S& B( q
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    $ }5 [# N: n3 s8 w4 W7 j! P7 [

  20. 1 ~\" U% V3 j6 q
  21.     N = N + 1;7 q/ t) y8 U\" ]9 M0 c
  22. % O9 h  P8 r' [4 W+ a& m  a
  23. end
    - \6 e! W4 w# |  \+ V) H
  24. , s3 u- [7 v) W4 y6 L. g
  25. lambda = 0:0.05:1;
    & F( K: O( w+ T
  26. # I6 H+ T  z. A
  27. plot(lambda, value)   % 绘图
    6 R0 [0 E; i$ Z3 s9 U

  28. 9 D2 {& a7 H  r7 ?7 V/ U+ [) n+ C
  29. title(['T=', num2str(T)])   % 给出图的标题4 x$ g! I4 @  G; h6 \( m4 ?5 S& D5 v
  30.   Z/ R$ x. j+ L5 R
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x). ^* S& F\" j3 \7 b
  2. : F+ [; F/ T4 @! `
  3. global sigma mu T lambda' }2 t0 u\" T# p- p

  4. ; p% v: S8 y$ `  Q  C\" e7 u
  5. %x(1)~x(8)分别对应8个未知数, k& @  a+ Q7 Z+ P' O8 {! i( q) e\" D
  6. ; t2 K% b' I  x: l1 |% K0 `
  7. Y1 = x(1);    / c* m$ r6 s! k

  8. ) M( H- e% P  r# l5 u
  9. Y2 = x(2);  ]( m' {) _; t6 {( l8 `) F
  10. * b1 }, q2 N) J& a
  11. G1 = x(3);
    ) y( Z5 [* d+ d7 O, h

  12. . O7 q, ^$ s: ~8 ~
  13. G2 = x(4);
    ' z6 j/ Y/ i' v- D
  14. & ?: x  M( S- [/ o+ ^5 `
  15. w1 = x(5);) ~, ?4 U, `; b! ?( ^0 E
  16. 6 I- f* D2 f/ n! n( O0 a
  17. w2 = x(6);  o' k/ ~1 Q5 z
  18. \" L! ~6 y- z/ |
  19. omega1 = x(7);
      @3 |+ _* q, k8 \6 z- U
  20. : D' k4 Q7 m6 L9 s, q9 n' [6 h; b* P
  21. omega2 = x(8);0 g' E0 |0 z4 ]& d3 B& \0 W9 n

  22. * o! P- }5 C6 H% E* k
  23. %定义8个方程9 J' t1 X) o6 S4 J
  24. ' }. F% f; {/ P  f4 A( A
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;  Q% \! K3 v. R, o
  26. ( ~' _4 @+ X: o0 O, |+ |$ z
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    ) U( O( I* s4 X# ]6 O3 @% ?
  28. 7 n. r1 p# T$ r5 L. S
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));
    ! c$ ^4 Y1 [, G- N\" }. }

  30. 7 Z. n/ v/ o, u1 b9 Z/ V6 s$ T
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));. `\" d8 g& x2 m7 L3 Z
  32. 8 ^. ~( m0 }5 I: c# C: j
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);2 S( w* T% G( B; }$ A7 K

  34. ) t  {9 N\" f: t. Z2 ]+ r5 S
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);) U7 V& v3 M) S4 E6 y1 J

  36. % E- H1 U9 F0 e  ~: }& k; |
  37. eq7 = omega1 - w1 * G1^(-mu);
    0 q* P2 m; Y, K7 n* n
  38. % q; E( P& C8 Q( ]+ z1 b\" d# N
  39. eq8 = omega2 - w2 * G2^(-mu);
    4 S+ ~1 R4 k6 ]2 E0 S  j. h, {
  40. 8 C  K7 ]8 `# c3 {+ v2 l
  41. %返回方程组2 U2 Q2 Q2 a( D- X8 r  \& E
  42. - z5 a- m% y/ o1 @7 ^
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];5 l; C3 Q2 ^. V/ \4 d3 T* z

  44. & J9 z. D* M/ j5 y% O3 z3 ]$ P0 l; r
  45. end
    $ L, @) r\" \  f- K% H0 Z# g+ V
  46. $ r3 F; x3 M% g3 b0 B
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。3 \! W- X/ v0 z
0 @4 F9 @" b% L1 n' k2 Q+ D( o
结果图片如下:
) I" w8 a, E# \7 R: A VeryCapture_20231118115514.jpg
7 e  q( Y! Q( n) }4 y7 y  \7 g) y: Y4 u- O" |2 G9 {
' D: Y" G8 D; T4 b' ^  |' D5 e) p
1 I& f" ~( d9 H2 e$ `2 t0 M: \

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 00:39 , Processed in 0.316409 second(s), 54 queries .

回顶部