首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多维优化算法/寻根算法

多维优化算法/寻根算法
EN

Stack Overflow用户
提问于 2009-08-21 05:36:03
回答 8查看 3.9K关注 0票数 3

我有五个值,A,B,C,D和E。

给定约束A+B+C+D+E= 1,以及五个函数F(A),F(B),F(C),F(D),F(E),我需要求解A到E,使得F(A) = F(B) = F(C) = F(D) = F(E)。

对此最好的算法/方法是什么?如果我必须自己写,我不管,我只想知道去哪里看。

编辑:这些是非线性函数。除此之外,它们不能被刻画出来。它们中的一些最终可能是从数据表中插入的。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-08-21 06:15:45

这个问题没有通用的答案。任何方程的解都不存在求解器。正如Lance Roberts已经说过的,你必须更多地了解函数。仅举几个例子

  • 如果函数是二次可微的,并且你可以计算一阶导数,你可以尝试Newton-Raphson
  • Have的变体,看看实现约束的Lagrange Multiplier Method
  • 如果函数F是连续的(如果它是一个插值函数,它很可能是连续的),你也可以尝试二分法,这很像二进制搜索。

在你解决这个问题之前,你真的需要更多地了解你正在学习的函数。

票数 4
EN

Stack Overflow用户

发布于 2009-09-01 00:29:59

正如其他人已经发布的,我们确实需要一些关于函数的更多信息。然而,考虑到这一点,我们仍然可以尝试使用标准的非线性编程工具箱来解决以下松弛问题。

最小k

圣何塞

A+B+C+D+E=1

F1(A) -k=0

F2(B) -k=0

F3(C) -k =0

F4(D) -k=0

F5(E) -k =0

现在我们可以用任何我们想要的方式来解决这个问题,比如惩罚方法。

最小k+(Fi(X_i)- k)^2

A+B+C+D+E =1

或者直接的SQP或内点方法。

更多的细节,我可以帮助建议一个好的方法。

票数 2
EN

Stack Overflow用户

发布于 2009-09-12 04:39:59

函数都是随着它们的参数单调递增的。除此之外,它们不能被刻画出来。可行的方法是:

1)从A=B=C=D=E= 1/5开始

2)计算F1(A)到F5(E),并重新计算A到E,使得每个函数等于该和除以5(平均值)。

3)重新缩放新的A到E,使它们的和都为1,并通过F5重新计算F1。

4)重复,直到满意为止。

它的收敛速度惊人地快--只需要几次迭代。当然,对于步骤2,每次迭代都需要5个根查找。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1310230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档