?? yuchou2.m
字號:
%目標函數為:min f(x)=2x1^2-4x1*x2+4x2^2-6x1-3x2
%約束條件:x1+x2<=3
% 4x1+x2<=9
% x1,x2>=0
%選擇可行方向法
%將約束條件改為:-x1-x2>=-3
% -4x1-x2>=-9
% x1,x2>=0
%第一步設迭代初始值為X=[0,0]';約束條件為e1=0.01;e2=0.001;k=0;
%第二步確定起作用約束指標集J(X(k))={j/gj(X(k))=0,1<=j<=2}
%1.若J(X(k))為空集,且f(x)的梯度的平方和<=e1,停止迭代,得點X(k)
%2.若J(X(k))為空集,但是f(x)的梯度的平方和>e1,則取搜索方向p(k)=-的梯度f(x),然后轉向第五步
%3.若J(X(k))不為空集,則轉下一步
%求解線性規劃,得到最優解(p(k),eta(k));p(k)為X(k)處的可行下降方向,eta(k)是引進的
% min eta
%f(x(k))的梯度的轉置*p<=eta
%-gj(x(k))的梯度的轉置*p<=eta
%-1<dj<1 對p的各分量增加一個約束:其各分量dj的絕對值不超過1
%檢驗是否滿足eta的模值小于e2
%在搜索方向上,確定最優步長,解下一一維極值問題
%令x(k+1)=x(k)+lda(k)*p(k)并置k=k+1,返回第二步
%設置初始條件,并設置運行誤差
X=[0,0]';e1=0.01;e2=0.001;k=0;%第一步設迭代初始值為X=[0,0]';約束條件為e1=0.01;e2=0.001;k=0;
f1=[4,-4;-4,8]*X+[-6;-3]
%確定起作用的約束指標集
G=[-1,-1;-4,-1]*X+[3;9];
if norm(G)==0&norm(f1)<e1
X;
return
elseif norm(G)~=0
p=-(f1)
else
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -