2015-12-20 26 views
1

有人可以向我解释Scilab中的优化函数是如何工作的,并给我一个简短的例子。 我所试图做的是最大限度地发挥这种功能,并找到最佳值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参数函数返回是不正确。

我想我做了一些非常基本的错误,但不明白在哪里。

+0

我没有使用scilab,但“它不起作用”几乎看起来不像您的问题的好描述。 – BenC

回答

0
  • 我认为答案是-x.^2不返回一个标量而是一个向量(x是一个载体,x.^2是的元素单元的操作)。你可能想说一些像x'*x。一个优化问题的目标函数应该总是标量(否则我们最终会出现一个多目标或多标准问题,这是一个完全不同类型的问题)。
  • 最小化-x'*x可能不是一个好主意
  • f=-x'*x的梯度不正确(但请参阅上一点)。