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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
解微分方程运行后,出现的结果先是逐渐变大的数据,然后是变为无穷大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就不知道是程序问题还是硬件问题
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    愤怒
    2021-6-12 00:00
  • 签到天数: 1657 天

    连续签到: 28 天

    [LV.Master]伴坛终老

    累计签到:3154 天
    连续签到:12 天
    发表于 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-9 07:50

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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