2016-05-22 109 views
0

我試圖找到一種方法來最大化函數與Matlab中的參數。 該功能類似於以下內容:f = - t2*x(0)*(a(0) - 1) - t2*x(0)*(t1*a(0) + 1)*(a(1) - 1)。我需要找到a(0)a(1)這將最大化ft1t2也是非負性未知參數,也是x(0) > 0a(0)a(1)可能取決於t1t2Matlab最大化功能與參數

所以一般我想用Matlab來做以下工作: 找一些參數maximize(f)其中:一些約束已存在,f的一些參數保持未知。

我試過fminsearch,但在這種情況下,需要指定所有參數,包括t1t2

我不知道這樣的函數是否存在於Matlab中,或者可以通過其他方式完成?

回答

0

您可以試試CVX。它是一個開源的基於MATLAB的建模包,用於凸優化。它很慢,但它可以幫助你作爲第一種方法

cvx_begin 
     variable a0 
     variable a1 
     minimize(- t2*x0*(a0 - 1) - t2*x0*(t1*a0 + 1)*(a1 - 1) ) 
     subject to 
      t1 > 0 
      t2 > 0 
      x0 > 0 
    cvx_end 
+0

謝謝你的迴應。實際上,這種方法需要定義t1,t2,x0(如Matlab中的fminsearch)。關於最小化功能還有幾個規則:不可能與例子中的一個一起工作(a0 * a1被禁止)。 – Lilo