您可以使用范围:
k_list = range(-4, 4)
但这仅适用于整数,这里的问题是指定您的步骤。显然,-4 和 4 之间有无限小数,因此您需要指定要使用的小数位数。
您可以使用numpy.arange
为了从范围中创建列表并设置递增值
例如
k_list = numpy.arange(-4, 4, 0.5)
将增加 0.5
>>> numpy.arange(-4, 4, 0.5)
>>> [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4]
如果您想增加较小的数量并因此获得更大的值范围,则将 0.5 变小。
如前所述,您必须指定增量,因为该范围内有无限小数。
指定列表后,您可以使用函数遍历列表以查找根。
for k in k_list:
some_function(k)
return root
编辑:
为此,您当然需要一个找到 k 根的函数,但是如果我正确理解了您的问题,这应该只是您的线性方程,使用一个简单的例子:(root = 2k
写这个的数学方法是当然y=2x
。
为简单起见,我们只说您的功能是y=2x
您的脚本将成为
k_list = numpy.arange(-4, 4, 0.5)
for k in k_list:
root = 2*k
return root
然后你只需指定你自己的值 0.5 来决定你的k
值是多少小数
当然,除非您正在研究一种二次形式。在这种情况下,我们可能会有类似的东西
y = x^2 - 2x +2
这使您的问题更加混乱。您显然可以通过设置找到 x 的根,y=0
但是,现在您有一个变量,我想这就是您指定的 k 的意思,留下一个总和而不是公式。
在这种情况下,我会让y=k
然后指定您的k
值并解决以找到您的根。
例如:
y = 32x^2 - 7.2x + 12
let y = k
k = 32x^2 - 7.2x +12
let k = -4 (we'd iterate through your range in reality)
4 = 32x^2 - 7.2x + 12
0 = 32x^2 - 7.2x + 8
and solve for x (aka. root)
我希望有一种numpy
或scipy
方法可以解决具有相同变量的多个实例的公式。不过,我不是这两个库的专家,所以我无法在这个方向上为您提供建议。
另见:
http: //docs.scipy.org/doc/numpy/reference/generated/numpy.roots.html
http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyval.html# numpy.polyval