2015-12-20 24 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的梯度不正確(但請參閱上一點)。