QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-18 12:10 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了一个包含8个未知数的非线性方程组的求解,并绘制了一个关于参数lambda的图形。! U7 f+ Y$ _, |; Q) S" ?) E2 A
主函数:equation()
  1. function equation()
    9 ~) j* u) X# z% I' s
  2. 8 O. w! Y- T% m/ k+ Y% y# k
  3. global sigma mu T lambda
    2 r% \4 l/ T) A5 Q* q

  4. , n; d! V, ]/ s- X7 v' K: {4 E% N7 ?2 s
  5. sigma = 5;   % 定义sigma的值
    : Q- R2 h& P/ ^5 P+ g
  6. ' k; M- F* l) X\" h% @
  7. mu = 0.4;    % 定义mu的值2 T- z/ X1 U3 a$ N% v
  8. $ ]/ M* b5 S/ s3 v& A3 P
  9. T = 1.7;     % 定义T的值+ c# Z/ Z. C5 _4 [6 P
  10. $ H9 n\" k5 r- M
  11. N = 1;$ z, G' |9 |+ b! v, q/ e% \. A

  12. ; A0 ?! @! ?$ g9 u$ S
  13. for lambda = 0:0.05:1   % lambda从0到1,隔0.05计算一个点% {- W# \- V# ^. d+ X# l
  14. % X' M1 w( T1 P' ~
  15.     x0 = [0.5000 0.5000 1.1817 1.1817 1.0000 1.0000 0.9354 0.9354] * 1;    % 定义迭代初值
    0 ?; o/ X) ~1 L) ]3 n' X( `$ P+ |

  16.   e6 S+ Z$ C. M1 O5 y- [, u3 ?8 _7 O
  17.     x = fsolve(@myfun, x0);    % 采用fsolve函数解对应lambda下的方程组,结果保存在x里, ?\" s# d; Q9 ]\" q* Q. G  b

  18. . E2 C\" p) |2 Y+ ~( N! H
  19.     value(N) = x(7) - x(8);     % 求出对应lambda下的omega1-omega2的值,保存在value里
    9 J4 q4 H6 `& [\" x- _
  20. \" `  {) E% |# n; p. o
  21.     N = N + 1;. {& z: ?6 [' `' l' _& X\" e8 B

  22. & }1 Y4 N% @' |8 l; U9 y: o; h
  23. end
    5 H\" S! ^0 B+ U4 N6 Y

  24. 6 _% N; A* W4 V% w
  25. lambda = 0:0.05:1;5 H% j0 a# J! ^$ c& ~* X: {4 |
  26. \" a1 {4 R3 G9 ]4 @4 c/ Q6 a! ~
  27. plot(lambda, value)   % 绘图
    ' a5 Q# z) T- @7 ?) Q4 Q( L7 c0 c' J

  28. $ G! f' L/ i% v* y
  29. title(['T=', num2str(T)])   % 给出图的标题
    & a2 T4 f- p1 [

  30. ; o4 g. `- ^2 |\" {: t
  31. end
复制代码
子函数:myfun(x)
  1. function F = myfun(x): p\" f8 Q& T0 p0 ~- }# ?4 A
  2. 1 e1 w  N( |- A* B4 |) P8 z\" O
  3. global sigma mu T lambda* `# _, N0 s1 @4 K- d

  4. ! d9 Z1 U3 m( k
  5. %x(1)~x(8)分别对应8个未知数
    $ f0 e6 e6 X9 j0 @7 F3 h* H

  6. : L/ v! [0 h) b# q* Q
  7. Y1 = x(1);    ' o/ H6 W% w1 `; f- t/ i\" ^
  8. ( r: Z: |- K# r. X/ w* q
  9. Y2 = x(2);, Q3 ^7 R( F9 F2 I9 [& d: [* T
  10. 4 D* N! T8 }  s% @, r1 b
  11. G1 = x(3);3 ^% a- {8 Z2 u

  12. 0 g7 \1 H* M# \( E
  13. G2 = x(4);! `6 f6 p! C7 j& R! ?8 V

  14. 0 o& `. x2 J0 F9 T1 |, A3 [
  15. w1 = x(5);
    . ]% L* _( |  C$ _) s5 U4 y0 q
  16. 4 j2 I- @5 ]1 Z% Y9 F7 U9 U
  17. w2 = x(6);\" f2 D% D5 o7 Q: q' Q/ T
  18. . W1 t7 z: Q- {% b- r+ W) m4 `
  19. omega1 = x(7);
    . m3 T: |\" e$ o% Q( E
  20. ( O; U  P: b* H$ X9 {4 b5 ~9 O
  21. omega2 = x(8);
    * v) o\" w, ^\" ]. l

  22. + P4 e+ k/ E4 P- u
  23. %定义8个方程\" ]4 f5 J) e$ `- [/ X% ^3 ]! o
  24. 2 O3 G0 R* J' K6 Y. A$ e0 G2 c6 e
  25. eq1 = Y1 - mu * lambda * w1 - (1 - mu) / 2;( Q5 v. e# A& E+ z% r# @, h
  26. * J; E7 R5 H% D6 O3 W: s
  27. eq2 = Y2 - mu * (1 - lambda) * w2 - (1 - mu) / 2;
    : Y; |6 a9 \( S1 l. f

  28.   w+ ]5 \8 O9 f+ Q- v
  29. eq3 = G1 - (lambda * w1^(1 - sigma) + (1 - lambda) * (w2 * T)^(1 - sigma))^(1 / (1 - sigma));/ |* i3 L' e9 K: m- @$ d0 v
  30. , E\" d1 s3 ]6 Z1 c/ x\" R
  31. eq4 = G2 - (lambda * (w1 * T)^(1 - sigma) + (1 - lambda) * w2^(1 - sigma))^(1 / (1 - sigma));+ j# a4 t' N6 P9 |8 n+ S6 q6 G

  32. # n  E1 w! n+ V9 P/ L
  33. eq5 = w1 - (Y1 * G1^(sigma - 1) + Y2 * (G2^(sigma - 1)) * T^(1 - sigma))^(1 / sigma);
    , K3 ~# w( P2 a- A2 G7 H
  34. # A+ @: a6 f. U. I4 T
  35. eq6 = w2 - (Y1 * (G1^(sigma - 1)) * T^(1 - sigma) + Y2 * G2^(sigma - 1))^(1 / sigma);4 e4 N( R, D: _7 @2 m# X
  36. 1 C5 ]' L% |! T! b: h9 H/ g8 [
  37. eq7 = omega1 - w1 * G1^(-mu);* Y! v3 w1 F' N. v

  38. 8 L. g& Q! M9 H4 E5 Q
  39. eq8 = omega2 - w2 * G2^(-mu);
    \" f1 r$ ~5 H' A' F
  40. ' v; D+ Q5 x1 ]+ s\" e
  41. %返回方程组% `! D4 G7 }3 |6 I* }
  42. # g3 V/ P; @. `9 ~% G5 V
  43. F = [eq1; eq2; eq3; eq4; eq5; eq6; eq7; eq8];: j4 L$ b6 F9 Y( y, e' g! ]& j# S
  44. / Z, O+ X8 n+ s9 H
  45. end
    ! l( Y# {  [7 |3 X3 M

  46. ) K) q1 A\" I! U6 l( o: J/ G
复制代码
这个代码通过fsolve函数求解非线性方程组,其中lambda在一定范围内变化。结果被用于计算omega1 - omega2的值,并将这些值随lambda的变化进行绘图。
% ]% T+ A% y; p$ M
6 C& k- O( B' |4 j# K3 y结果图片如下:
( d5 J7 h) ?; J% i& n- J8 d VeryCapture_20231118115514.jpg
4 G7 w9 N/ G# T- k" a' k( J& P4 J" l) Y' z1 g

8 i* [4 q7 X$ l4 I9 c; c
" ?3 [  B; R9 E7 d

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

回顶部