我有五个值,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)。
对此最好的算法/方法是什么?如果我必须自己写,我不管,我只想知道去哪里看。
编辑:这些是非线性函数。除此之外,它们不能被刻画出来。它们中的一些最终可能是从数据表中插入的。
发布于 2009-08-21 06:15:45
这个问题没有通用的答案。任何方程的解都不存在求解器。正如Lance Roberts已经说过的,你必须更多地了解函数。仅举几个例子
在你解决这个问题之前,你真的需要更多地了解你正在学习的函数。
发布于 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或内点方法。
更多的细节,我可以帮助建议一个好的方法。
我
发布于 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个根查找。
https://stackoverflow.com/questions/1310230
复制相似问题