QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。
' J# r- v  I/ p" `/ d主函数:equation()
  1. function equation()
    ; K( y1 O4 g3 i; r9 I( q4 i+ d

  2. 9 R' N; u\" N; R; h0 c+ b
  3. global sigma mu T lambda0 W6 t6 p3 w/ \7 C! B9 @  z! c

  4. # s/ I# u\" M3 v) }% {\" C8 e
  5. sigma = 5;   % 定义sigma的值9 O# C, h9 ^& _2 V5 v  h
  6. 9 s; g) p% r. g4 S7 V
  7. mu = 0.4;    % 定义mu的值
    ' r2 ^) G/ V0 p  M
  8. 7 U+ r3 f' I; k1 V5 }' @( P
  9. T = 1.7;     % 定义T的值; F( G7 l. E) v+ ~6 D

  10. ) ~4 [: z8 A$ w- F9 K2 k
  11. N = 1;% \3 a( g\" o2 g

  12. 3 v9 {) V  ~( D. U: ?, \! ?
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点$ i4 j* ]( z2 E

  14. + X0 l* B, f& p& F: _
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    # J7 [/ w, I# F

  16. # ]. g; h% c: U. Q
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里8 I. Z; E  {6 ~\" M/ f1 o* J
  18. 9 }* ~1 u: g/ r# [
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里; u9 X! |+ Q3 n3 |, ^! }5 Y
  20. 4 e; e+ s8 G4 ?6 [
  21.     N = N + 1;) S  ^6 Y4 K5 N# S! e0 C
  22. 4 `* Z7 I* j* D' O' w
  23. end/ H! ^% w& d$ k% ~

  24. 9 |# [; H8 ^  k! {; x5 ~( o
  25. lambda = 0:0.05:1;; {% y. t5 H' F9 z

  26. 2 L8 H& |/ Q1 b/ A
  27. plot(lambda, value)   % 绘图: g* _, f; h1 a: j: T9 N: D
  28. \" S4 {) |! `, E: {
  29. title(['T=', num2str(T)])   % 给出图的标题2 A\" Z, _; @\" d& ]) D; t- E6 d+ C
  30. % e4 p: d) o# X# i+ D\" @2 p0 y6 s
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x)! ^/ R# U3 R9 c3 f+ z

  2. , Q: V0 d9 N& V
  3. global sigma mu T lambda3 h) k0 D, c1 n* D7 l

  4. 4 o- K1 t6 q* K; E& t6 v1 N
  5. %x(1)~x(8)分别对应8个未知数
    % t4 z, g- q2 l\" b

  6. ) G' }0 C4 i- K: `( [
  7. Y1 = x(1);    ) G% D7 {1 x: H$ X
  8. 5 X( ~3 h6 u7 b# n# h
  9. Y2 = x(2);8 \6 f7 @) N) _* M
  10. 1 o3 U. k. x; g7 [! @1 ^% z
  11. G1 = x(3);) E0 r, e* U2 N* C
  12. # `* q( B5 l$ r& v4 E
  13. G2 = x(4);
    + Q0 P* x) b) e# c3 V
  14. ! K4 R/ j5 \1 c0 U' v. c' b
  15. w1 = x(5);* t$ O5 K3 c1 v1 N  y( D2 A
  16. 8 A6 W) E/ K9 Z# b& t( O7 @
  17. w2 = x(6);: }\" k/ Y, B/ `6 N\" y, j
  18. + ]* _9 q! }9 ?; V
  19. omega1 = x(7);- W+ q- k0 }, F\" l
  20. ( a% G+ D3 s  n1 ^. q: Q
  21. omega2 = x(8);' ]6 y* ~$ j5 w9 ]# V3 a# w  z& Q
  22. 2 E. |9 G2 k9 N
  23. %定义8个方程
    ; n2 {  e! s  U* u( T- V! R( K
  24. , ?# y4 J, b6 k9 o* v9 I
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;! ?, M\" C6 U* t/ [* W. u

  26. 0 V9 y$ p1 N/ w
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    \" D3 ?' `' o# q( @( h
  28. 5 S3 v5 w5 e0 ^\" q( ~0 s% g- [: x  v
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));) p0 p* f4 j1 y5 ~4 `8 H
  30. , d  h4 l8 B$ f\" _; B
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));
    ! Q' x& g& Q) Z: d' H: s
  32. % m3 k( T( N$ W, w  J$ o7 \
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);, ]& n# w0 c* Q5 o6 F\" {: Y& B! g2 U
  34. 6 Q9 t- j+ k# D; B9 |! f
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);3 Z7 t5 _9 K4 K7 e9 e! u

  36. 9 T9 Y) _  B! |( U
  37. eq7 = omega1 - w1 * G1^(-mu);\" f( ~- p, R0 `8 j% y! s4 g

  38. 6 e% s  O0 L$ h
  39. eq8 = omega2 - w2 * G2^(-mu);7 P- p! P7 T0 i! l; u& b, f( A

  40. ' ?, y1 H( o' l9 _
  41. %返回方程组
    6 h/ N/ y7 t) R3 p1 p. S

  42. . P; T- g  h- Q/ j# f
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];
    % Q% w; o8 K  o1 _4 f0 G) t

  44. 5 B0 _9 k( J9 }3 w# C$ f$ z
  45. end
    ( q; N+ R4 Q+ r# O5 I/ l5 `4 Y

  46. % k; b- z\" G+ n9 ?, J
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。- ^) j8 Y; C( K% s* Q$ x+ u, T

; p( m7 i0 U0 i- J& j结果图片如下:$ R6 {! R' n4 ^# K
VeryCapture_20231118115514.jpg
% X- E; v; }' H/ P8 T( |6 s: T+ c0 B3 H5 h) I

* J; g% S6 ?- g8 X+ z6 H/ F9 \' j+ e$ t- |$ k9 ?

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-6-20 16:17 , Processed in 0.427005 second(s), 54 queries .

回顶部