![](https://csdnimg.cn/release/download_crawler_static/86224801/bg1.jpg)
一般凸二次规划的有效集算法 Matlab 程序
2009-05-29 10:44
clear all
clc
% 090526
%一般凸二次规划有效集算法
% find 函数——集合中非零元素的位置
% intersect 函数——求两个集合的交集
% setdiff 函数——求两集合的差
% union 函数——求两集合的并集
% 以下面的例题为例
% min x1^2+x2^2-2*x1-4*x2
% s.t. x1 >=0
% x2 >=0
% -x1-x2+1>=0
syms x1 x2
%=============求解任意函数时需要改变的参数=============
f=x1^2+x2^2-2*x1-4*x2; % CHANGE 1
g=jacobian(f,[x1;x2]);
G=jacobian([g(1);g(2)],[x1,x2]);
%Initial Value x_1 初始值
x_1=[0;0]; % CHANGE 2—x_1=[1;0]
x_1=[0.5;0.5]
%Coefficient Matrix Named A 约束系数矩阵
AM=[1,0,-1;0,1,-1] % CHANGE 3
%约束条件个数
an=size(AM,2);
%Constant 约束中的常系数
b=[0 0 -1]; % CHANGE 4
%Initial Available Aggregate 初始有效集
%定义有效集为大于零的数
I=[1 2 0]; % CHANGE 5—I=[0 2 3] I=[0
0 3]
%======================================================
%用 find 函数找到 I 中的有效集
I1=find(I);
%Define Matrix A & O 定义 A O 矩阵
%The Number Of Available Aggregate 有效集个数
n=size(I1,2);
% 其中 I1(i)为有效集值
% AM(:,I1(i))为有效集对应的约束矩阵 A 的分量
A=[];
评论0