目录
一、标准形式
二、matlab中的命令
1、形式
2、实例
编写两个函数,一个函数为目标函数,一个函数中包含非线性约束条件。目标函数中 .^表示每一个元素都进行乘幂运算。非线性约束条件中把不等式约束和等式约束写到两个列向量中。主程序引用时记得两个函数要用''英文的单引号引起来,并且中间包含的线性等式约束直接写入即可,空的话用[]表示。
补充:
.* : 是对应元素的相乘或者相除;点乘要求参与运算的两个两必须是维数相同;
* : 是矩阵相乘或者相除;要求前一个矩阵的列的维数等于后一个矩阵的行的维数。
.^:是对每个元素都进行乘幂运算。比如A是一个矩阵,A^2=A*A,
^: 如:A.^2=B,B为A中所有元素都平方后的矩阵,即对A中的某个aij,B中对应位置的是aij^2
三、二次规划
1、标准形式
注意:目标函数中二次项的系数为1/2,所以在写f的时候需要*2
2、matlab的命令
3、实例
H矩阵中对角线为“2*原二次项系数”,其余为正常的一次项系数且对称
H=[a11 a12;
a21 a22;]
对角线上的元素为平方向系数,而其余aij和aji位置的元素为xixj系数的一半
h就是把含有平方的项的系数写在对角线,x1x2的系数除以2后写在对角线两侧。因为提了个1/2,所以h里面的数要乘2
x1x2项系数是-4,所以a12+a21=-8,且矩阵为实对称矩阵,所以a12=a21=-4
所以h=[4,-4;-4 ,8]
应用:可能会有供应和选址问题
额外补充: