约束函数,在MTALB中新建立一个m文件:
代码如下
%date:2009.03.17
function [c,ceq]=mycon8(x)
x1=x(1,1);
x2=x(2,1);
x3=x(3,1);%有几个未知量就列出几个
%不等式约束条件
c(1)=-x1;
c(2)=-x2;
c(3)=-x3;%有几个未知量就列出几个
%等式约束条件
ceq(1)=x1^2+x2^2+x3^2-12;%表示x1^2+x2^2+x3^2-12<0,记住一定是小于0,如果是大于0的话记得转为小于0,
ceq(2)=8*x1+14*x2+7*x3-58;
然后保存,会默认为mycon.m不要更改它的名字。
目标函数,在MTALB中新建立一个m文件:
%The programme is used to implement the example 3 in page 208 (机械优化设计) by SQP
%Develped by xxx at Shantou University;
%Date:2009.03.17
function f=myfun8(x)
x1=x(1,1);
x2=x(2,1);
x3=x(3,1);
f=1000-x1^2-2*x2^2-x3^2-x1*x2-x1*x3;%这个就是你的目标函数,
然后保存,会默认为mycon.m不要更改它的名字。
运行优化函数,在MTALB中新建立一个m文件
clc
clear
x0=[2,2,2]';%给定初始值,记住这个值一定要符合在约束函数里面
lb=[0;0;0];