📄 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 + -