在一个间隔内查找任何函数的最小值和最大值

时间:2014-02-26 04:46:56

标签: python function max intervals min

我知道有一些类似的问题,但他们都希望/或者使用numpy来回答问题。

我想找到一个字符串的最大值和最小值,例如(“Sin(x ** 2)”)在区间内:x [0,10]。

我老师给了我这个暗示; 特别地,我们尝试从1到10的1001个不同的值,并使用eval和值来实现评估函数 x {(i / 100,i [0,1000]}。 这可以通过使用for循环实现,其中i在范围(0,1001)中并使用增量x = i / 100.0。

注意:我不能使用numpy。

1 个答案:

答案 0 :(得分:0)

import math
def compute_min_and_max(expression):
    min_value, max_value = float("inf"), float("-inf")
    for x in range(1001):
        res = eval(expression, None, {"sin": math.sin, "x": x/100.0})
        if min_value > res: min_value = res
        if max_value < res: max_value = res
    return(min_value, max_value)

print(compute_min_and_max("sin(x ** 2)"))

<强>输出

(-0.9999939135141118, 0.9999999062300194)