请教一下各位一个问题
用odeint()求解常微分方程并将结果通过plot()可视化的时候,
在参数取某些值的情况下会出现这样一种异常结果:
同一段代码运行多次,每次运行结果都不一样——有时报错(报错如下),更多时候是得到一些奇怪的异常图像(如下图)
-----------------------------------------------------------分割线-------------------------------------------------------------
Traceback (most recent call last):
File "D:\Anaconda\lib\site-packages\IPython\core\formatters.py", line 341, in __call__
return printer(obj)
File "D:\Anaconda\lib\site-packages\IPython\core\pylabtools.py", line 151, in print_figure
fig.canvas.print_figure(bytes_io, **kw)
File "D:\Anaconda\lib\site-packages\matplotlib\backend_bases.py", line 2295, in print_figure
self.figure.draw(renderer)
File "D:\Anaconda\lib\site-packages\matplotlib\artist.py", line 73, in draw_wrapper
result = draw(artist, renderer, *args, **kwargs)
File "D:\Anaconda\lib\site-packages\matplotlib\artist.py", line 50, in draw_wrapper
return draw(artist, renderer)
File "D:\Anaconda\lib\site-packages\matplotlib\figure.py", line 2837, in draw
mimage._draw_list_compositing_images(
File "D:\Anaconda\lib\site-packages\matplotlib\image.py", line 132, in _draw_list_compositing_images
a.draw(renderer)
File "D:\Anaconda\lib\site-packages\matplotlib\artist.py", line 50, in draw_wrapper
return draw(artist, renderer)
File "D:\Anaconda\lib\site-packages\matplotlib\axes\_base.py", line 3091, in draw
mimage._draw_list_compositing_images(
File "D:\Anaconda\lib\site-packages\matplotlib\image.py", line 132, in _draw_list_compositing_images
a.draw(renderer)
File "D:\Anaconda\lib\site-packages\matplotlib\artist.py", line 50, in draw_wrapper
return draw(artist, renderer)
File "D:\Anaconda\lib\site-packages\matplotlib\axis.py", line 1158, in draw
ticks_to_draw = self._update_ticks()
File "D:\Anaconda\lib\site-packages\matplotlib\axis.py", line 1045, in _update_ticks
major_locs = self.get_majorticklocs()
File "D:\Anaconda\lib\site-packages\matplotlib\axis.py", line 1277, in get_majorticklocs
return self.major.locator()
File "D:\Anaconda\lib\site-packages\matplotlib\ticker.py", line 2115, in __call__
return self.tick_values(vmin, vmax)
File "D:\Anaconda\lib\site-packages\matplotlib\ticker.py", line 2123, in tick_values
locs = self._raw_ticks(vmin, vmax)
File "D:\Anaconda\lib\site-packages\matplotlib\ticker.py", line 2079, in _raw_ticks
istep = np.nonzero(steps >= raw_step)[0][0]
IndexError: index 0 is out of bounds for axis 0 with size 0
<Figure size 1500x1000 with 1 Axes>
-------------------------------------------------------------分割线-----------------------------------------------------------
------------------------------------------------------------分割线------------------------------------------------------------
而在参数取某些另外的值的时候(有的时候只是微调0.1或0.01),运行结果就正常了
(如下图)
请问出现这种情况的原因是什么呢?
是因为无解或是没解出来吗?还是什么原因?odeint()有什么局限性?
(源代码暂不方便直接放)