用定义的x值查找具有最高值的函数

2024-05-13 22:58:01 发布

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

我想找到一个定义了x的最大值的函数

我定义了多个数学函数。我可以把他们每个人都画出来。现在我需要一个python函数来告诉我哪个函数在给定的x(例如x=1)下具有最高的值

parable=x**2
linear=3*x
sine=np.sin(x)

x=1的结果应为“线性”,x=4的结果应为“寓言”


Tags: 函数定义np线性数学sinlinearsine
3条回答

可能有几个函数返回相同的(最高)值。在这种情况下,我将提出以下解决方案:

import numpy as np
funcs = {"linear" :lambda x: 3*x, "parable": lambda x: x**2, "sine": lambda x: np.sin(x)}
x = 1
res = {key:val(x) for key, val in funcs.items()}
maximum = max(res.values())
highest = [key for key, val in res.items() if val==maximum]

这将保存列表highest中的所有最大函数。你可以把它打印出来

print(", ".join(highest) + " is/are the function(s) with the highest value: %d" %(maximum))

例如,使用x = 0打印:

linear, parable, sine is/are the function(s) with the highest value: 0

您可以使用字典来命名变量并找到最大值

x = 1
d = {'parable' : parable(x), 'linear' : linear(x), 'sine' : sine(x)}
print(max(d, key=d.get))

将函数放入字典并使用max()函数

funs = {"parable": lambda x: x**2, "linear": lambda x: 3*x, "sine": lambda x: np.sin(x)}
def highest_fun(x):
    return max(funs, key = lambda f: funs[f](x))
print(highest_fun(1))
print(highest_fun(4))

相关问题 更多 >