用matlab求解常微分时的Warning
function hh%options=odeset()
=ode23t(@fun,0:0.01:5,0.5)
plot(t,y)
function dy=fun(t,y)
dy=(y^2+5)*(t+6);
结果:
Warning: Failure at t=9.940611e-002. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.531614e-016) at time t.
> In ode23t at 726
In try28 at 3
t =
0
0.0100
0.0200
0.0300
0.0400
0.0500
0.0600
0.0700
0.0800
0.0900
y =
0.5000
0.8275
1.1902
1.6108
2.1237
2.7926
3.7382
5.2505
8.2098
17.2406
请问要怎样才能避免Warning的出现?
多谢!
回复 楼主 满城飞絮 的帖子
帮你顶一下同问。 。。 。 。 。
回复 楼主 满城飞絮 的帖子
变步长试试 变了几次试过还是这样哈,我都觉得是步长的问题,但不知道要用什么样的步长才不会出现Warning! 试试=ode23t(@fun,,0.5)doc ode23t
回复 5楼 ch_j1985 的帖子
用了ode23t修改了步长和总时间,
还是出现Warning: Failure at t=2.813557e-001.Unable to meet integration tolerances without reducing the step size below the smallest value allowed (9.995763e-016) at time t.
继续请教。。。。
回复 6楼 wxl789 的帖子
能否把常微分方程贴出来? dy/dx=(y^2+5)*(x+6).x范围是0到5,y0=0.5
回复 7楼 ch_j1985 的帖子
我那个方程是自己编写程序构造的,蛮复杂。这个警告提示和具体的方程有关吗?
页:
[1]