我希望尽量减少函数的最大值f(a,b,c)
接管范围l <= c <= u
对于某些下限和上限l
以及u
通过改变参数a
和b
。我想我需要两次迭代,但除此之外我不知道如何开始。
我将不胜感激:答案,帮助更清楚地表达这一点或有关我可以在哪里寻找答案的信息。我试图在别处寻找答案,但我很难知道要搜索什么。
编辑:举个例子,假设f(a,b,c)
是abs(g(a,c)-b)
. 我试图改变,a
以便p(a) = max(g(a,c)) - min(g(a,c))
最小化c
,然后可以轻松地让我计算b
应该是什么,但我遇到的问题是这g
不一定是一个易于使用的功能。
您可以使用fminsearch并为越界解决方案添加一个大的负值:
% Your input
f = @(a,b,c) (a-2).^2+(b.^2-9)^2+sin(2*pi*c).^2;
u = 0.7;
l = -0.01;
% function to optimize
f2 = @(a) abs(f(a(1),a(2),a(3))+1e15*(a(3)>u|a(3)<l));
% Find a minima
fminsearch(f2,[1.6 1 0.2])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句