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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
解微分方程运行后,出现的结果先是逐渐变大的数据,然后是变为无穷大Inf,接着就是NaN,这是怎么回事?有哪位知道啊?: W% E# G1 E' f5 h7 w  J
其中一段的结果如下:7 K* ]4 ~- K2 S8 v- D0 C
. B# `) h: Y+ P1 A) p: d4 \/ f
-6.577334937091747730665057507568065230549384834272368050884038839567853*10^273,
: a9 s! F; O8 g/ g1 q: S& I/ e1 q$ L-5.139195757419310323174537703330917750350843564381075360877238710618581*10^291,
( }/ ?, v; ]( c" r+ H; f  X-Inf
- c0 ]7 [& _* P, a! YNaN. R9 q1 g( [& q8 r( {
NaN
- T; L& Z/ \5 R! c" o' k" JNaN: z& L8 Z4 _. K2 k# J1 D8 m2 M
. s( i. x7 Q% u2 d
/ D& g! V$ x# }* B4 \0 U$ N
是用龙格-库塔方法计算微分方程组得出的结果,程序如下:$ y1 ]8 k) i0 b! m6 t
function R = wffcz(f,g,a,b,xa,ya,N,I)
& _: t% @, V0 q0 q* q%UNTITLED2 Summary of this function goes here
# i2 Z9 l1 Y6 t' t" ~2 p8 Q% Detailed explanation goes here# H0 E& b" ~& y" W  h
%x'=f(t,x,y) y'=g(t,x,y)
2 ?$ z7 @" z: [! e& P%N为迭代次数; K6 O( j  G+ i# x( J, t$ p( K8 w
%h为步长
9 N& B; J" g  a%ya,xa为初值# ?& _/ J- x* t! y  Y; O- }
B1=2.652e+005;A1=2.922;
! R9 ~2 s$ l! C, G& lB2=2.233e+005;A2=1.442;
# b+ s- T9 V* J6 c# u) q! [R1=94.25;6 `4 n; u6 D0 K
C=6.897e-11;) y, f( y$ l7 ]: x, ~- Z
L1=21.75e-6;
6 }0 Y- [2 S, _0 G8 y- Y. I+ V%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);9 x( v  e" k' n+ S% }: T5 G9 R* m
f=@(t,x,y)((I-(x-((x-B1)/A1-y)*R1-B2)/A2-(x-B1)/A1)/C);
$ b: h0 _0 Z* ], og=@(t,x,y)(((x-((x-B1)/A1-y)*R1-B2)/A2-y)*R1/L1);
& u, t1 u* \% ph=(b-a)/N;5 y* V( I; V; v( c& u
T=zeros(1,N+1);* B4 }1 G6 B: b8 P+ U
X=zeros(1,N+1);
! u7 u! b1 D: V" D7 BY=zeros(1,N+1);9 f# ^) K1 c4 C% E) r
T=a:h:b;4 u4 d& f) i% _6 A1 R
X(1)=xa;
0 g+ v$ D* P( l+ iY(1)=ya;& y4 G2 r' o  r) ?7 ~* K
for j=1:N3 {4 p5 e' z! s! C- h% d
f1=vpa(feval(f,T(j),X(j),Y(j)),90);2 s7 }* Y; G2 c0 h7 X
g1=vpa(feval(g,T(j),X(j),Y(j)),90);
- R0 t/ A+ A. [4 `f2=vpa(feval(f,T(j)+h/2,X(j)+h/2*f1,Y(j)+g1/2),90);
2 s; X5 ~* V. ]: lg2=vpa(feval(g,T(j)+h/2,X(j)+h/2*f1,Y(j)+h/2*g1),90);" T7 Y7 t7 f+ X% o- N" y' V, Q
f3=vpa(feval(f,T(j)+h/2,X(j)+h/2*f2,Y(j)+h*g2/2),90);
) \' G. U! w7 c3 E# a7 \g3=vpa(feval(g,T(j)+h/2,X(j)+h/2*f2,Y(j)+h/2*g2),90);
% c' r! u9 h0 G8 |. d" ^/ ~8 C$ p; Xf4=vpa(feval(f,T(j)+h,X(j)+h*f3,Y(j)+h*g3),90);: W6 G1 Z  h; U' X# ~, H
g4=vpa(feval(g,T(j)+h,X(j)+h*f3,Y(j)+h*g3),90);7 S& d/ i& r5 g3 J
X(j+1)=vpa(X(j)+h*(f1+2*f2+2*f3+f4)/6,90);  [% N6 N# y( H* V- H
Y(j+1)=vpa(Y(j)+h*(g1+2*g2+2*g3+g4)/6,90);7 x. r  l4 m. p8 c: |! Q' D
R=[T' X' Y'];& R: o; J, `* N% X# P
end% Q) D& f; v: E: O" S/ {
就不知道是程序问题还是硬件问题
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    愤怒
    2021-6-12 00:00
  • 签到天数: 1657 天

    连续签到: 28 天

    [LV.Master]伴坛终老

    累计签到:3169 天
    连续签到:27 天
    发表于 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-24 21:43

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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