【问题标题】:Minimization values for a function函数的最小值
【发布时间】:2013-08-06 03:35:25
【问题描述】:

我有函数 - 非线性(我想)和一组变量

S=[(x1,y1),(x2,y2)...]

目标是找到xy 的值,使得

sum of( max(|x-xi|,|y-yi|) for each (xi,yi) element of S is minimized and | | represents absolute value.

我在 python 中遇到了一个函数 optimize(),但我真的不知道这是否适用于这种情况。有什么算法我可以自己编写代码来找到解决方案,即 x 和 y。

eg : S=[(1,4),(2,3),(0,1),(1,1)]

for x=1.5 and y=2.5(and some other values as well) the function gives the minimum value : 5
max(|1.5-1|,|2.5-4|)=1.5
max(|1.5-2|,|2.5-3|)=0.5
max(|1.5-0|,|2.5-1|)=1.5
max(|1.5-1|,|2.5-1|)=1.5
sum:5.0

【问题讨论】:

  • 请明确S是字典还是列表。
  • 这听起来像是一个简单的回归问题,尽管您正在最小化直接残差而不是平方残差。我会使用基本的代数/微积分来最小化目标函数,而不是把一些东西拼凑在一起来蛮力它。
  • @Xaranke 正如他所说和展示的那样,它是元组的set
  • @roippi 据我所知,大括号用于字典。
  • @Xaranke 扩展您的理解。

标签: c++ python c


【解决方案1】:

如果'{'可以用'['代替,那就更容易理解了。意思是一个列表存储元组。你的目的是求(|x-xi|,|y-yi|)中的最小值) 并求和最小值?如果我没有误解您的目的,我们可以这样做: 假设 x=5 y=5 总和=0 对于 s 中的元素: sum = sum+(abs(5-elem[0])>abs(5-elem[1]) and abs(5-elem[1]) and abs(5-elem[0]))

这就是你想要的?

【讨论】:

  • 也许你得改回来。我想用python来实现像C这样的二元运算符。你最好google一下。
猜你喜欢
  • 2011-04-29
  • 1970-01-01
  • 2016-01-27
  • 2015-10-29
  • 1970-01-01
  • 2013-09-28
  • 2021-09-05
  • 1970-01-01
相关资源
最近更新 更多