首页 > 解决方案 > x 值范围内给定方程的最大值

问题描述

如何找到以下等式的最大值:Fp=(1000 + 9*(x**2) - (183)*x)给定 x 在 (1-10) 范围内的值,使用 python。这是我已经尝试过的:

L= range(1, 11)
for x in L:
    Fp=(1000 + 9*(x**2) - (183)*x)
    Td=20 - 0.12*(x**2) + (4.2)*x
    print(Fp, Td)
    print(max(Fp))

标签: python

解决方案


假设您有一组自然数,因为您要检查的数字范围很小(只有 10 个数字),第一种方法是检查每个数字的方程值,将其保存在一个列表中,并找到该列表的最大值。看看下面的代码。

max_list = []
for x in range(1,11):
    Fp = (1000 + 9*(x**2) - (183)*x)
    max_list.append(Fp)

print( max(max_list) )

另一种更优雅的方法是分析方程。由于您的Fp方程是具有正二次幂系数的多项式方程,因此您可以假设该范围的最后一个元素将产生最大值或第一个元素。
所以你只需要检查这些值。

value_range = (1,10)
Fp_first = 1000 + 9*(value_range[0]**2) - (183)*value_range[0]
Fp_last = 1000 + 9*(value_range[1]**2) - (183)*value_range[1]
max_val = max(Fp_first , Fp_last)

推荐阅读