24小时热门版块排行榜    

查看: 4167  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

文刀星

木虫 (小有名气)

[求助] ode45积分出现NaN 已有1人参与

对一个函数积分,给定初始值,积分到某一时刻,出现了NaN的情况,最后一项是一个常数,不用管;然后以出现NaN之前的一个数据重新积分,却可以积分到最后,什么情况?

options=odeset('events',@eventRe);
x0=[0.9922,-0.1396,0,1.0157,0,0,0.1667];
[t,x,te,xe,ie]=ode45(@myGAzrfun,[0,2],x0,options)
%上面的积分积分到t=0.0324(t(17))的下一个节点0.0357时,出现NaN情况,见下面部分数据;

x1=x(17,;
[t,x,te,xe,ie]=ode45(@myGAzrfun,[t(17),2],x1,options)
%然后将t=0.0324的时刻所对应的的初值及时间重新积分,却又能够继续积分下去;

   0.9939   -0.1396         0    1.0139    0.0125         0    0.1667
    0.9948   -0.1396         0    1.0130    0.0188         0    0.1667
    0.9957   -0.1396         0    1.0121    0.0252         0    0.1667
    0.9965   -0.1395         0    1.0112    0.0315         0    0.1667
       NaN       NaN       NaN       NaN       NaN       NaN    0.1667
       NaN       NaN       NaN       NaN       NaN       NaN    0.1667
       NaN       NaN       NaN       NaN       NaN       NaN    0.1667
       NaN       NaN       NaN       NaN       NaN       NaN    0.1667
       NaN       NaN       NaN       NaN       NaN       NaN    0.1667
%上面是积分遇到问题时的部分数据;
%下面是积分到最后的部分数据,而且也是我想要的数据,说明应当是正确的,可是为啥会出现上面的情况?
   0.4418   -0.1594         0    1.0001    0.1092         0    0.1667
    0.4221   -0.1612         0    1.0001    0.1096         0    0.1667
    0.4030   -0.1631         0    1.0000    0.1100         0    0.1667
te =
    0.1213
xe =
    0.4030   -0.1631         0    1.0000    0.1100         0    0.1667
ie =
     1

ode45积分出现NaN
360截图20150516124651022.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文刀星

木虫 (小有名气)

引用回帖:
2楼: Originally posted by wuhanfeng at 2015-05-16 14:37:27
可能在函数在这个点产生奇性,或者值比较大,matlab算不出来

先谢谢你的回复!
那为什么以上一个点代入继续积分却可以呢?而且感觉我的函数中没有产生奇异点的可能,因为只有x(4)做分母,但第四列没有出现零啊。
3楼2015-05-16 14:45:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

wuhanfeng

新虫 (小有名气)

可能在函数在这个点产生奇性,或者值比较大,matlab算不出来

[ 发自小木虫客户端 ]
2楼2015-05-16 14:37:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文刀星

木虫 (小有名气)

现在发现把该语句[t,x,te,xe,ie]=ode45(@myGAzrfun,[0,2],x0,options)
改为[t,x,te,xe,ie]=ode45(@myGAzrfun,[0,1],x0,options)就可以正常积分出来了;也就是把[0,2]改为[0,1]就可以了;后来试了几组数据,发现1.2还行,1.3就不行了。这是怎么回事啊???请各位大神指点指点!给点意见!
4楼2015-05-16 17:03:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuhanfeng

新虫 (小有名气)

不知道你的函数具体形式,总之ode45是数值计算方法,只要在区间内的值都能算出来,积分就能积的出来
5楼2015-05-16 18:56:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 是这周出结果还是下周出结果? +3 yuleib84 2026-08-11 3/150 2026-08-11 21:53 by jnhyjjm
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[硕博家园] 读博的好处 +3 lnee 2026-08-11 3/150 2026-08-11 18:10 by 希望我好好的
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 13/650 2026-08-11 09:49 by 家与远方
[基金申请] 基金中了 +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
信息提示
请填处理意见