我在Python 2.7中有两个关于我的代码的小问题,我希望看到你对这些问题的意见:
较小的问题: 所以我一直在测试一个Python 2.7脚本,用于在给定椭圆周围的距离后输出度数标题。但是,我需要程序在15秒内完全运行。目前,该计划输出31.1410000324 seconds for completion
这并不可怕,因为我可以将样本量分成不到一半。
主要问题: 但是,这是另一个问题:在程序中的3个特定点,输出的结果不正确。有一次它输出18.47700786
,另外两个输出37.90802974
。为什么会发生这种情况?当我正常运行它们中的所有3个时,它们都输出正确的值,但是在全速时,它们似乎给出了奇怪的值,即使每次值都是一致的。我想知道你的想法。
这是脚本:
import numpy as np
from scipy.integrate import quad
from scipy.optimize import minimize
import time
a = 2; b = 1
Dx = lambda t: -a * np.sin(t)
Dy = lambda t: b * np.cos(t)
encoderdistance = 0.00001
def func(x): return np.sqrt(Dx(x)**2 + Dy(x)**2)
time1 = time.time()
for i in range(2423):
r_angle = (((180/np.pi) * np.arctan(((np.tan(minimize(lambda x:
abs(quad(func, 0, x)[0] - encoderdistance), 1).x))*b)/a)))
print r_angle[0]
encoderdistance += 0.001
time2 = time.time()
print time2-time1, "seconds for completion"