鱼C论坛

 找回密码
 立即注册
查看: 884|回复: 5

[已解决]python极值类问题

[复制链接]
发表于 2020-6-16 05:24:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下:
import numpy as np
x = np.arange(0,10,0.001)
y = abs(x-0)+abs(x-1)+abs(x-2)+abs(x-2.5)+abs(x-10)
z = min(y)
print(z)

这个代码在给定的x范围内求出了y的极小值,请问大佬们这个时候该如何输出相对应的x呢?谢谢!!
最佳答案
2020-6-16 07:16:06
本帖最后由 Twilight6 于 2020-6-16 07:17 编辑




你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x

或者这样:
  1. import numpy as np
  2. x = np.arange(0,10,0.001)
  3. y = abs(x-0)+abs(x-1)+abs(x-2)+abs(x-2.5)+abs(x-10)

  4. z = min(y)
  5. print('函数 y 的最小值为:',z)

  6. print('计算后的 y 中有%d个最小值'%list(y).count(min(y)) )

  7. print('查找这个 y 所在的位置:',list(y).index(z))     # 因为只有一个 那么就直接查找就好

  8. print('当 y 最小时 x 取值为:',0.001*list(y).index(z))   # 因为你步长都是 0.001  那么查找出位置乘以 0.001 即可算出 x 的值
复制代码



没怎么用 Python 算过函数,所以想不到其他便捷的方法





小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-16 07:16:06 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-16 07:17 编辑




你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x

或者这样:
  1. import numpy as np
  2. x = np.arange(0,10,0.001)
  3. y = abs(x-0)+abs(x-1)+abs(x-2)+abs(x-2.5)+abs(x-10)

  4. z = min(y)
  5. print('函数 y 的最小值为:',z)

  6. print('计算后的 y 中有%d个最小值'%list(y).count(min(y)) )

  7. print('查找这个 y 所在的位置:',list(y).index(z))     # 因为只有一个 那么就直接查找就好

  8. print('当 y 最小时 x 取值为:',0.001*list(y).index(z))   # 因为你步长都是 0.001  那么查找出位置乘以 0.001 即可算出 x 的值
复制代码



没怎么用 Python 算过函数,所以想不到其他便捷的方法





小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-16 08:46:41 | 显示全部楼层
Twilight6 发表于 2020-6-16 07:16
你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x

或者 ...

abs是啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 08:48:37 | 显示全部楼层

Python 内置函数 算绝对值滴
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 08:53:24 | 显示全部楼层
Twilight6 发表于 2020-6-16 08:48
Python 内置函数 算绝对值滴

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 19:19:55 | 显示全部楼层
Twilight6 发表于 2020-6-16 07:16
你可以通过 y 函数写出 关于 x 的函数,然后将 z = min(y) 等于 y 的值 代入 x 函数中计算 x

或者 ...

谢谢兄弟,已经完美解决
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 00:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表