matlab 非線性優化

2021-07-04 16:49:53 字數 1554 閱讀 7102

求解非線性問題:

min z = f(x)

s.t.    c(x)≤0,

ceqx=0,

ax≤b,

aeqx=beq,

lb≤x≤ub.

[x, fval, exitflag, output, lambda, grad, hessian] = fmincon(fun, x0, a, b, aeq, beq, lb, ub, nonlcon, options, p1, p2, …)

其中,x, b, beq, lb,和ub為線性不等式約束的上、下界向量, a 和 aeq 為線性不等式約束和等式約束的係數矩陣矩陣,fun為目標函式,nonlcon為非線性約束函式。

函式f的定義:

function[c,ceq] = mycon(x)

c= … % 計算x處的非線性不等式。

ceq= … % 計算x處的非線性等式。

非線性約束條件的定義:

function[c,ceq,gc,gceq] = mycon(x)

c = … % 解x處的非線性不等式。

ceq = … % 解x處的非線性等式。

if nargout > 2 % 被呼叫的nonlcon函式,要求有4個輸出變數。

gc = … % 不等式的梯度。

gceq = … % 等式的梯度。

min  f = -x1 - 2x2 + 0.5x1

2 + 0.5x2

2

s.t.    2x1 + 3x2 ≤ 6,

x1 + 4x2 ≤ 5,

2x1 + 3x2

2 ≤ 6,

0 ≤ x1,x2.

function

example

()a = [2 3;

14];

b = [6; 5];

vlb = [0; 0];

x0 = [0; 0];

[x,fval,exitflag,output,lambda,grad,hessian] = fmincon('myfun',x0,a,b,,,vlb,,'nonlia');

endfunction

f = myfun

(x)f = -x

(1) - 2 * x

(2) + 0.5 * (x(1).^2 + x

(2).^2);

endfunction [c, ceq] = nonlia

(x)c = 2 * x

(1) + 3 * x

(2).^2 - 6;

ceq = ;

end

非線性優化

問題的一般表達 x 是 n 維實向量 x x x t in r n,s是 r n 的子集,f 0 x f m x 是x相關的實值函式。我們所要解決的主要是以下最小問題的變體 min f 0 x s.t.f j x 0,j 1.m,x in s,其中 可以是 geq,leq or f 0 是問題的目標...

非線性優化

目的 因為雜訊!為了減少雜訊帶來的影響。現實世界點p,在相機座標系下座標p x,y,z 落在投影平面上的座標為 u,v 一般把 u,v 寫成齊次座標 所謂齊次座標,是為了方便進行矩陣的運算,在向量上面加乙個維度,一般把增加的維度預設成1 焦距fx,fy,相機座標系和成像平面的平移cx,cy都作為內參...

Matlab線性 非線性規劃優化演算法(5)

值得單獨一說的是fminunc,fminseach,fminbnd的區別 fminunc只能用於求解連續函式,對於變數沒有限制 fminbnd只能用於求解單變數函式,fminsearch只能用於求解多變數函式,clc clear all fun x abs 1 x x0 1 x1 3 x2 3 我們...