python - 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))
解决方案
假设您有一组自然数,因为您要检查的数字范围很小(只有 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)
推荐阅读
- ruby-on-rails - Rails,包含一个或多个零件项目模型参考的产品模型
- sql - 在 Rails 上插入查询错误
- python - 如何检索 numpy.array 的维度
- java - android:无法构建项目错误:无法从中读取包名
- c# - IoT Edge SendEventBatchAsync
- pandas - 累积总和数据帧的条件计数 - 遍历列
- c# - 机器人模拟器登录
- php - 将数据和图像(所有内容)从 Wordpress 导出到另一个页面
- sql-server - SQL Server - 分配白天和黑夜
- postgresql - Windows 10 上的 PostgreSQL 10.5 无效的语言环境名称