你可以使用范围:
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
这会使您的问题更加混乱。您显然可以通过设置 y=0 找到 x 的根,但是,现在您有一个变量,我想这就是您指定的 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