|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
解微分方程运行后,出现的结果先是逐渐变大的数据,然后是变为无穷大Inf,接着就是NaN,这是怎么回事?有哪位知道啊?
, D7 J7 Q A# M: a其中一段的结果如下:1 t) N' c K# u6 j
, _7 K2 L. a6 T4 F9 g-6.577334937091747730665057507568065230549384834272368050884038839567853*10^273,4 V4 Z$ l( x' h; A
-5.139195757419310323174537703330917750350843564381075360877238710618581*10^291,+ w( }; J7 e" p! @" z
-Inf
) ?5 ^( C- _& z8 ~/ I" {/ ~" xNaN
: o( _' J5 @3 p$ z GNaN
/ Z: W, F1 J) D2 b0 R! x' |+ O4 lNaN4 a; @+ O( _6 j
; b' C0 ^$ u5 l! J- E7 d5 w# g% J6 ~5 Q+ k
是用龙格-库塔方法计算微分方程组得出的结果,程序如下:
! U; q, @" v* `' f3 ?; _1 `! zfunction R = wffcz(f,g,a,b,xa,ya,N,I)
8 w7 @2 c4 z( X+ Y%UNTITLED2 Summary of this function goes here1 W8 ]) u- C. ^0 o- x- P5 I
% Detailed explanation goes here7 R8 L' K) d2 g: P4 s
%x'=f(t,x,y) y'=g(t,x,y)
8 i% ]* ]8 W, d {* W%N为迭代次数
/ O; }& s! p( S) x# l%h为步长
) s$ h" ]8 p! K# C+ L%ya,xa为初值
5 w& M4 `8 w) }' Y% m3 OB1=2.652e+005;A1=2.922;$ q& i- l) n1 e
B2=2.233e+005;A2=1.442;; N$ D+ H) V* b! W
R1=94.25;. L5 d% f1 h3 u2 v1 B
C=6.897e-11;
/ R9 W& s1 t6 z9 m8 IL1=21.75e-6;
+ L" ~8 B% }/ m$ o%f=@(t,x,y)((25079999999999999898935095034332140556544638976*t^9 - 3116000000000000083537608917399754195861504*t^8 + 164799999999999990698756673337884147712*t^7 - 4823999999999999755901658355204096*t^6 + 83320000000000003537039785984*t^5 - 770099999999999994757120*t^4 + 3330000000000000000*t^3 - 94230000000000*t^2 + 1885000000*t + 1847/50-(x-((x-B1)/A1-y)*R1-B2)/A2-(x-B1)/A1)/C);
% `+ |: \8 @# r6 E2 nf=@(t,x,y)((I-(x-((x-B1)/A1-y)*R1-B2)/A2-(x-B1)/A1)/C);
3 K3 e. [7 ~0 `! `g=@(t,x,y)(((x-((x-B1)/A1-y)*R1-B2)/A2-y)*R1/L1);6 k) N! e; ~, b' x- |/ _
h=(b-a)/N;" q4 Z' ~( ?/ g- X
T=zeros(1,N+1);4 O; H7 k. {. X; H7 Y$ r
X=zeros(1,N+1);$ |# W; }* k8 { T9 K; u8 |
Y=zeros(1,N+1);/ {" Q, P( j$ D8 q# h( a
T=a:h:b;
' ?5 t. [- J9 a* z gX(1)=xa;
3 P8 Y/ l M6 S; ` p6 EY(1)=ya;
/ i6 `' k; m+ i* y; L, k9 Cfor j=1:N
K) }: O- m* T+ @( ?$ C, ]3 Gf1=vpa(feval(f,T(j),X(j),Y(j)),90);
" ?$ X8 f& s0 Lg1=vpa(feval(g,T(j),X(j),Y(j)),90);# `5 s8 ?8 R9 u: U2 _" t6 j% e
f2=vpa(feval(f,T(j)+h/2,X(j)+h/2*f1,Y(j)+g1/2),90);
" Q- Z# N" N6 }# X! I/ fg2=vpa(feval(g,T(j)+h/2,X(j)+h/2*f1,Y(j)+h/2*g1),90);: C; N6 f5 K! l$ N$ C1 R
f3=vpa(feval(f,T(j)+h/2,X(j)+h/2*f2,Y(j)+h*g2/2),90);
' e! ^( b: |9 s# L/ {: kg3=vpa(feval(g,T(j)+h/2,X(j)+h/2*f2,Y(j)+h/2*g2),90);9 u8 D) X6 S/ Z/ Z9 h4 M/ W
f4=vpa(feval(f,T(j)+h,X(j)+h*f3,Y(j)+h*g3),90);! p' @1 J( }5 p9 S# w
g4=vpa(feval(g,T(j)+h,X(j)+h*f3,Y(j)+h*g3),90);0 E' }3 B( e* K, t# H( T9 X, m
X(j+1)=vpa(X(j)+h*(f1+2*f2+2*f3+f4)/6,90);. [* R# }0 s. c$ R/ d1 A: ?. b
Y(j+1)=vpa(Y(j)+h*(g1+2*g2+2*g3+g4)/6,90);4 j. R( A+ k* v* s. t: Z# L8 b
R=[T' X' Y'];: g7 o4 W @! o0 U' B
end
( v) T% n9 o4 o5 ~5 W/ W就不知道是程序问题还是硬件问题 |