Python优化和奇怪的输出响应

2024-09-25 00:27:50 发布

您现在位置:Python中文网/ 问答频道 /正文

关于我在Python2.7中的代码,我有两个小问题,我想看看您对这些问题的看法:

次要问题:因此,我一直在测试一个python2.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"

下面是输出代码的图表: Code Graph


Tags: lambda代码fromimport程序脚本fortime