matlab安装哪些组件?
MATLAB 矩阵实验室 7.0.1
Simulink 仿真 6.1
Aerospace Blockset 太空模块 1.6.1
Bioinformatics Toolbox 生物信息工具箱 1.1.1
CDMA Reference Blockset 码分多址参数模块 1.1
Communications Blockset 通信模块 3.0.1
Communications Toolbox 通信工具箱 3.0.1
Control System Toolbox 控制系统工具箱 6.1
Curve Fitting Toolbox 曲线拟合工具箱 1.1.2
Data Acquisition Toolbox 数据获取工具箱 2.5.1
Database Toolbox 数据库工具箱 3.0.1
Data feed Toolbox 数据供给工具箱 1.6
Embedded TargetforInfineon C166 Microcontrollers Infineon C166微控制器嵌入目标
Embedded Target for Motorola HC12 摩托罗拉 HC12的嵌入目标
Embedded Target for Motorola MPC555 摩托罗拉 MPC555的嵌入目标
Embedded Target for OSEK VDX OSEK VDX 嵌入目标
Embedded TargetforTIC2000 DSP(tm) TIC2000 DSP(tm)嵌入目标
Embedded TargetforTIC6000 DSP(tm) TIC6000 DSP(tm)嵌入目标
ExcelLink 优化链接
Extended Symbolic Math 扩展符号数学
FilterDesign HDL Coder 滤波器设计 HDL 编码器
FilterDesign Toolbox 滤波器设计工具箱
FinancialDerivativesToolbox 金融衍生工具箱
FinancialTime SeriesToolbox 财经时序工具箱
FinancialToolbox 财经工具箱
Fixed Income Toolbox 固定输入工具箱
matlab 多目标优化的实际例子
遗传算法GA求解无约束最优化问题,采用遗传算法求函数的最小值:
f(x,y)=x^4-16x^2-5xy+y^4-16y^2-5y
函数如下:
f=inline('x(1)^4-16*x(1)^2-5*x(1)*x(2)+x(2)^4-16*x(2)^2-5*x(2)','x');
l=[-5 -5];
u=[5 5];
x0=[0 0];
Np=30;
Nb=[12 12];
Pc=0.5;
Pm=0.01;
eta=0.8;
kmax=200;
[xos,fos]=fminsearch(f,x0)
[xo_gen,fo_gen]=genetic(f,x0,l,u,Np,Nb,Pc,Pm,eta,kmax)
其中调用的遗传算法函数为如下几个
genetic函数
function [xo,fo]=genetic(f,x0,l,u,Np,Nb,Pc,Pm,eta,kmax)
N=length(x0);
if nargin<10,kmax=100;end
if nargin<9|eta>1|eta<=0,eta=1;end
if nargin<8,Pm=0.01;end
if nargin<7,Pc=0.5;end
if nargin<6,Nb=8*ones(1,N);end
if nargin<5,Np=10;end
NNb=sum(Nb);
xo=x0(:)';l=l(:)';u=u(:)';
fo=feval(f,xo);
X(1,:)=xo;
for n=2:Np,X(n,:)=1+rand(size(x0)).*(u-1);
P=gen_encode(X,Nb,l,u);
for k=1:kmax
X=gen_decode(P,Nb,l,u);
for n=1:Np,fX(n)=feval(f,X(n,:));end
[fxb,nb]=min(fX);
if fxb<fo,fo=fxb;xo=X(nb,:);end
fX1=max(fxb)-fX;
fXm=fX1(nb);
if fXm<eps,return;end
for n=1:Np
X(n,:)=X(n,:)+eta*(fXm-fX1(n))/fXm*(X(nb,:)-X(n,:));
end
P=gen_encode(X,Nb,l,u);
is=shuffle([1:Np]);
for n=1:2:Np-1
if rand<Pc
P(is(n:n+1),:)=crossover(P(is(n:n+1),:),Nb);
end
end
P=mutation(P,Nb,Pm);
end
gen_encode函数
function P=gen_encode(X,Nb,l,u)
Np=size(X,l);
N=length(Nb);
for n=1:Np
b2=0;
for m=1:N
b1=b2+1;
b2=b2+Nb(m);
Xnm=(2^Nb(m)-1)*(X(n,m)-l(m))/(u(m)-l(m));
P(n,b1:b2)=dec2bin(Xnm,Nb(m));
end
end
gen_decode函数
function X=gen_decode(P,Nb,l,u)
Np=size(P,l);
N=length(Nb);
for n=1:Np
b2=0;
for m=1:N
b1=b2+1;
b2=b1+Nb(m)-1;
X(n,m)=bin2dec(P(n,b1:b2))*(u(m)-l(m))/(2^Nb(m)-1)+l(m);
end
end
crossover函数
function chrms2=crossover(chrms2,Nb)
Nbb=length(Nb);
b2=0;
for m=1:Nbb
b1=b2+1;
bi=b1+mod(floor(rand*Nb(m)),Nb(m));
b2=b2+Nb(m);
tmp=chrms2(1,bi:b2);
chrms2(1,bi:b2)=chrms2(2,bi:b2);
chrms2(2,bi:b2)=tmp;
end
mutation函数
function P=mutation(P,Nb,Pm)
Nbb=length(Nb);
for n=1:size(P,1)
b2=0;
for m=1:Nbb
if rand <Pm
b1=b2+1;
bi=b1+mod(floor(rand*Nb(m)),Nb(m));
b2=b2+Nb(m);
P(n,bi)=~P(n,bi);
end
end
end
shuffle函数
function is=shuffle(is)
N=length(is);
for n=N:-1:2
in=ceil(rand*(n-1));
tmp=is(in);is(in)=is(n);is(n)=tmp;
end
运行结果为
xos =
3.0453 3.1031
fos =
-186.4878
xo_gen=
2.9805 3.3150
fo_gen=
-184.2604
此例子,自己修改一下就可以!
4.1理想点法
在(3)中,先求解 个单目标问题: ,设其最优值为 ,称 为值域中的一个理想点,因为一般很难达到。于是,在期望的某种度量之下,寻求距离 最近的 作为近似值。一种最直接的方法是最短距离理想点法,构造评价函数
,
然后极小化 ,即求解
,
并将它的最优解 作为(3)在这种意义下的“最优解”。
例1:利用理想点法求解
解:先分别对单目标求解:
①求解 最优解的MATLAB程序为
>> f=[3;-2]; A=[2,3;2,1]; b=[18;10]; lb=[0;0];
>> [x,fval]=linprog(f,A,b,[],[],lb)
结果输出为:x = 0.0000 6.0000
fval = -12.0000
即最优解为12.
②求解 最优解的MATLAB程序为
>> f=[-4;-3]; A=[2,3;2,1]; b=[18;10]; lb=[0;0];
>> [x,fval]=linprog(f,A,b,[],[],lb)
结果输出为:x =3.0000 4.0000
fval =-24.0000
即最优解为24.
于是得到理想点:(12,24).
然后求如下模型的最优解
MATLAB程序如下:
>> A=[2,3;2,1]; b=[18;10]; x0=[1;1]; lb=[0;0];
>> x=fmincon('((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)',x0,A,b,[],[],lb,[])
结果输出为:x = 0.5268 5.6488
则对应的目标值分别为 , .
优化什么的 联系我 有偿代做