2016-02-14 79 views
4

如果我有一个函数,如sin(1/x)我想绘制并显示接近0,我将如何平滑图中的结果?我试图展示的样本点的默认数量相对较小。平滑sympy剧情

下面的代码:

from sympy import symbols, plot, sin 

x = symbols('x') 
y = sin(1/x) 

plot(y, (x, 0, 0.5)) 

enter image description here

作为x接近0,线变得更锯齿状,少 “弯曲的”。有没有办法解决这个问题?

回答

8

可以设置点的数量采用手工方式:

plot(y, (x, 0.001, 0.5), adaptive=False, nb_of_points=300000) 

enter image description here

注:我有望获得ZeroDivisionError使用完全相同的问题代码(即具有X从0时到某物),但我没有得到一个错误(奇怪)。我尽管我使用adaptive=False, nb_of_points=300000得到错误,所以这就是为什么我将xmin设置为非零值(0.001)。

+2

我想自适应算法需要改进。它的重点是自动处理这种情况。 – asmeurer