【发布时间】:2019-07-11 16:03:54
【问题描述】:
我有一个 function.m,这样 function(x,y) 是一个连续函数,因为它是明确定义的。对于从0.04:0.02:0.2 范围内的每个y,我想找到x 使得function(x,y) 给出值0.5。不幸的是,function(x,y) 没有为任何x 定义。例如,当y=0.04,当function(x,y)=0.4 当x=2,当function(x,y)=0.55 当x=3。当x<2 时,它也会给出function(x,y)=-inf。另一方面,当y=0.05,function(x,y)=0.4,当x=5,function(x,y)=0.81,当x=9和function(x,y)=-inf,当x<5。我想在matlab中使用fmincon来解决这个问题,所以我写了一个循环让我找到x
y=0.04:0.02:0.2;
对于 i=1:length(y)
结果=fmincon(@(x)abs(函数(x,y(i))-0.5),2,[],[],[],[],[],[]);
结束
但是,在做优化的时候,会发生,比如y=0.04,x的值选择小于2,给-inf值,不能再进一步。我想知道是否可以设置matlab只能找到有限值,或者当它尝试给出objective -inf的点时,它可以自动找到另一个x值并继续该过程。
我知道我可以找到特定的范围,它首先为每个 y 赋予价值 0.5,但这非常耗时,我不想这样做。
【问题讨论】:
标签: matlab optimization mathematical-optimization