设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 1174|回复: 2

在微分方程计算过程中,结果中出现NaN,是怎么回事

[复制链接]

该用户从未签到

尚未签到

发表于 2013-2-28 17:14:03 | 显示全部楼层 |阅读模式

马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

您需要 登录 才可以下载或查看,没有账号?立即加入

×
解微分方程运行后,出现的结果先是逐渐变大的数据,然后是变为无穷大Inf,接着就是NaN,这是怎么回事?有哪位知道啊?8 S' {8 E  p4 b2 S3 o$ B: u# {
其中一段的结果如下:
% w$ p; A( \& T, _' ]$ F. q- ?0 j2 c) R
0 A0 o$ c$ Y4 ~5 G( `2 ?- Q-6.577334937091747730665057507568065230549384834272368050884038839567853*10^273,  q# I: `% l7 m* h) ?& `+ E
-5.139195757419310323174537703330917750350843564381075360877238710618581*10^291,
0 w0 N# }1 v2 G# e; a2 p-Inf
/ n3 x; P, B! t  T3 Y, k- U" b* iNaN2 |2 m7 y: \' Z4 E: N9 G4 M
NaN
7 c  S3 {. s$ ^/ _9 I  n$ h' P5 MNaN. w2 h# c. x) r0 U3 S* X" V
8 M: U. m" X. i: F/ ]# V8 m
5 P3 p) D+ m" t1 w  i+ k
是用龙格-库塔方法计算微分方程组得出的结果,程序如下:( V4 q2 g# u; `5 R' @/ f  @
function R = wffcz(f,g,a,b,xa,ya,N,I). ~, J2 i8 n, F
%UNTITLED2 Summary of this function goes here6 U& T: B5 Q- V, j2 R% J7 i
% Detailed explanation goes here5 U" z; S1 N  n& y. X
%x'=f(t,x,y) y'=g(t,x,y)
" e5 S4 Z8 ^, Y& w! T& }%N为迭代次数
7 ^; u) X) [/ d1 t/ b%h为步长$ |! w! b* B! f( j1 d6 Q: \
%ya,xa为初值! j/ l& U8 s: Q5 H- g
B1=2.652e+005;A1=2.922;
, ]3 {! V- ]* IB2=2.233e+005;A2=1.442;
% i- Z0 _0 L+ v* dR1=94.25;
6 }5 u# l8 h7 r5 m% ~+ nC=6.897e-11;  x1 E( Q8 n0 @$ ?
L1=21.75e-6;
5 d4 C; M3 n. x5 u1 w( K) N2 @% D$ r%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);
- F9 Z1 E& l) L0 z' Bf=@(t,x,y)((I-(x-((x-B1)/A1-y)*R1-B2)/A2-(x-B1)/A1)/C);; c$ [% u  r. o) K
g=@(t,x,y)(((x-((x-B1)/A1-y)*R1-B2)/A2-y)*R1/L1);
5 Z( q$ Q' d+ ]2 Q9 p' {; Gh=(b-a)/N;
# l3 x4 o: k& e& n6 jT=zeros(1,N+1);
& F+ s/ c% m' Z" w5 \, x) RX=zeros(1,N+1);
5 N' V# T" _1 T6 SY=zeros(1,N+1);& Z- r+ J! h- ?7 E5 b+ O3 }
T=a:h:b;
" c# _/ ^$ @/ T" W2 K4 i* o8 ~1 `X(1)=xa;! v( m7 L/ l1 q3 @- ?( K; l
Y(1)=ya;
& H1 ~  M% _( ?8 u5 g" j* cfor j=1:N
8 K' L; y" x$ N4 K) ]9 qf1=vpa(feval(f,T(j),X(j),Y(j)),90);
- f4 P+ Y! o: f; v5 H; f8 Q3 \g1=vpa(feval(g,T(j),X(j),Y(j)),90);: L6 n5 f+ i; e% a
f2=vpa(feval(f,T(j)+h/2,X(j)+h/2*f1,Y(j)+g1/2),90);0 }' s9 y) c% g& D% p& y/ _: e
g2=vpa(feval(g,T(j)+h/2,X(j)+h/2*f1,Y(j)+h/2*g1),90);0 M6 |' s. X$ F* R
f3=vpa(feval(f,T(j)+h/2,X(j)+h/2*f2,Y(j)+h*g2/2),90);, J7 ^4 W2 a$ R; w( [2 C! F
g3=vpa(feval(g,T(j)+h/2,X(j)+h/2*f2,Y(j)+h/2*g2),90);" U' m2 o3 q: z* l
f4=vpa(feval(f,T(j)+h,X(j)+h*f3,Y(j)+h*g3),90);
- I+ m/ G" I5 U2 v$ d- D8 ?5 A9 ag4=vpa(feval(g,T(j)+h,X(j)+h*f3,Y(j)+h*g3),90);! @5 k$ e- Z$ h0 T/ P3 ]
X(j+1)=vpa(X(j)+h*(f1+2*f2+2*f3+f4)/6,90);
9 p3 i- X1 n* g# a, s$ y) K1 _Y(j+1)=vpa(Y(j)+h*(g1+2*g2+2*g3+g4)/6,90);" q; Y0 g1 P7 W* c! T$ s
R=[T' X' Y'];- [; ?0 n& I+ H" t" w/ E2 T
end" D/ k- C9 o3 Y% Y& K" z9 H
就不知道是程序问题还是硬件问题
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    愤怒
    2021-6-12 00:00
  • 签到天数: 1657 天

    连续签到: 28 天

    [LV.Master]伴坛终老

    累计签到:3171 天
    连续签到:1 天
    发表于 2013-3-1 00:36:11 | 显示全部楼层
    执行程序之前写一句“format long”,有可能是初值设的不好,另外为什么方程的系数这样大呢
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2013-3-1 08:23:30 | 显示全部楼层
    支持楼主~~~
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2026-10-30 06:05

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

    快速回复 返回顶部 返回列表