有人能解释一下在Scilab中是如何工作的吗?给我一个简短的例子。我要做的是最大化这个函数并找到最优的值。
> function [f, g, ind]=cost(x, ind)
f= -x.^2
g=2*x
endfunction
// Simplest call
x0 = [1; -1; 1];
[fopt, xopt] = optim(cost, x0)
当我试图实现这个函数时,我会收到错误。
由scilab参数函数返回的变量不正确。
我想我犯了一些非常基本的错误,但我不知道在哪里。
发布于 2015-12-21 21:50:08
-x.^2
不返回标量,而是返回向量(x
是向量,x.^2
是元素操作)。你可能想说些像x'*x
这样的话。优化问题的目标函数应该始终是标量函数(否则最终会出现一个多目标或多准则问题,这是一个完全不同类型的问题)。-x'*x
可能不是个好主意f=-x'*x
,梯度是不正确的(但请参阅前面的点)。https://stackoverflow.com/questions/34383685
复制相似问题