相关系数MATLAB提供了corrcoef函数-课件_第1页
相关系数MATLAB提供了corrcoef函数-课件_第2页
相关系数MATLAB提供了corrcoef函数-课件_第3页
相关系数MATLAB提供了corrcoef函数-课件_第4页
相关系数MATLAB提供了corrcoef函数-课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

标准方差与相关系数1.求标准方差在MATLAB中,提供了计算数据序列的标准方差的函数std。对于向量X,std(X)返回一个标准方差。对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列或各行的标准方差。std函数的一般调用格式为:Y=std(A,flag,dim)其中dim取1或2。当dim=1时,求各列元素的标准方差;当dim=2时,则求各行元素的标准方差。flag取0或1,当flag=0时,按σ1所列公式计算标准方差,当flag=1时,按σ2所列公式计算标准方差。缺省flag=0,dim=1。例6-7对二维矩阵x,从不同维方向求出其标准方差。标准方差与相关系数12.相关系数MATLAB提供了corrcoef函数,可以求出数据的相关系数矩阵。corrcoef函数的调用格式为:corrcoef(X):返回从矩阵X形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵X一样。它把矩阵X的每列作为一个变量,然后求它们的相关系数。corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef([X,Y])的作用一样。2.相关系数2例生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)例生成满足正态分布的10000×5随机矩阵,然后求各列元素3排序MATLAB中对向量X是排序函数是sort(X),函数返回一个对X中的元素按升序排列的新向量。sort函数也可以对矩阵A的各列或各行重新排序,其调用格式为:[Y,I]=sort(A,dim)其中dim指明对A的列还是行进行排序。若dim=1,则按列排;若dim=2,则按行排。Y是排序后的矩阵,而I记录Y中的元素在A中位置。排序4

线性优化x=lp(C,A,b,vlb,vub)

线性优化x=lp(C,A,b,vlb,vub)5相关系数MATLAB提供了corrcoef函数-课件6[例]最小值线性优化f(x)=-5x1-4x2-6x3x1-x2+x3≦203x1+2x2+4x3≦423x1+2x2≦30(0≦x1,0≦x2,0≦x3)%First,enterthecoefficients:f=[-5;-4;-6];A=[1-11324320];b=[20;42;30];lb=[0,0,0];%x的最小值[0,0,0]ub=[inf,inf,inf];%Next,callalinearprogrammingroutine:x=lp(f,A,b,lb,ub)%Enteringxx=0.000015.00003.0000[例]最小值线性优化%First,enterthec7[例]线性优化Min-400x1-1000x2-300x3+200x4-2x2+x3+x4=02x1+3x2<=163x1+4x2<=24x1,x2,x3,x4>=0;x3<=5c=[-400,-1000,-300,200];%目标函数系数A=[0-211;2300;3400];%约束条件系数b=[0;16;24];xLB=[0,0,0,0];%x取值范围的最小值xUB=[inf,inf,5,inf];%x取值范围的最大值x0=[0,0,0,0];%x取迭代初始值nEq=1;%约束条件中只有一个=号,其余为<=x=lp(c,A,b,xLB,xUB,x0,nEq)disp(['最优值为:',num2str(c*x)])[例]线性优化c=[-400,-1000,-300,2008

非线性优化x=constr('f',x0)

fminbnd

非线性优化x=constr('f',x0)fminbn9计算下面函数在区间(0,1)内的最小值。[x,fval,exitflag,output]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)计算下面函数在区间(0,1)内的最小值。[x,fval,ex10在[0,5]上求下函数的最小值解:先自定义函数:在MATLAB编辑器中建立M文件为:functionf=myfun(x)f=(x-3).^2-1;保存为myfun.m,然后在命令窗口键入命令:x=fminbnd(@myfun,0,5)在[0,5]上求下函数的最小值解:先自定义函数:在MATLA11[例]最小值非线性优化Minf(x)=-x1x2x3,-x1-2x2-2x3≤0,x1+2x2+2x3≤72,初值:x=[10;10;10]x=[10;10;10]%第一步:编写M文件myfun.mfunction[f,g]=myfun(x)f=-x(1)*x(2)*x(3);g(1)=-x(1)-2*x(2)-2*x(3);g(2)=x(1)+2*x(2)+2*x(3)-72;%第二步:求解%在MATLAB工作窗中键入x0=[10,10,10];x=constr('myfun',x0)%即可[例]最小值非线性优化x=[10;10;10]12[第一步:编写M文件fxxgh.mfunction[F,G]=fxxgh(x)F=-x(1)*x(2);G(1)=(x(1)+x(2))*x(3)-120;第二步:求解在MATLAB工作窗中键入x=[1,1,1];%x取迭代初始值options(13)=0;%约束条件中有0个=号,其余为<=XL=[0,0,2];%x取值范围的最小值XU=[inf;inf;inf];%x取值范围的最大值[x,options]=constr('fxxgh',x,options,XL,XU);options(8)%输出最小值x例]非线性优化Minf(x)=-x1x2(x1+x2)x3<=0;x1,x2>=0;x3>=2;[第一步:编写M文件fxxgh.m例]非线性优化13无约束多元函数最小值

多元函数最小值的标准形式为其中:x为向量,如使用fmins求其最小值

无约束多元函数最小值多元函数最小值的标准形式为其中:x为向量14求的最小值点X=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2',[0,0])或在MATLAB编辑器中建立函数文件functionf=myfun(x)f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2;保存为myfun.m,在命令窗口键入X=fminsearch('myfun',[0,0])或>>X=fminsearch(@myfun,[0,0])求的最小值点X=fminsearch('2*x(1)^3+415利用函数fminunc求多变量无约束函数最小值当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好

求的最小值

fun='3*x(1)^2+2*x(1)*x(2)+x(2)^2';x0=[11];[x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0)或用下面方法:fun=inline('3*x(1)^2+2*x(1)*x(2)+x(2)^2')x0=[11]x=fminunc(fun,x0)利用函数fminunc求多变量无约束函数最小值求的最小值16有约束的多元函数最小值非线性有约束的多元函数的标准形式为:sub.to其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数

fmincon

有约束的多元函数最小值非线性有约束的多元函数的标准形式为:17解:约束条件的标准形式为求下面问题在初始点(0,1)处的最优解min

s.tmin

s.t求下面问题在初始点(0,1)处的最优解mins.tmin18先在MATLAB编辑器中建立非线性约束函数文件:function[c,ceq]=mycon(x)c=(x(1)-1)^2-x(2);ceq=[];%无等式约束然后,在命令窗口键入如下命令或建立M文件:fun='x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2)';%目标函数x0=[01];A=[-23];%线性不等式约束b=6;Aeq=[];%无线性等式约束beq=[];lb=[];%x没有下、上界ub=[];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)先在MATLAB编辑器中建立非线性约束函数文件:19二次规划问题二次规划问题(quadraticprogramming)的标准形式为:sub.to

其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量

quadprog

二次规划问题二次规划问题(quadraticprogra20求解下面二次规划问题sub.to解:则,,

求解下面二次规划问题sub.to解:则,,21在MATLAB中实现如下:H=[1-1;-12];f=[-2;-6];A=[11;-12;21];b=[2;2;3];lb=zeros(2,1);[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,[],[],lb)在MATLAB中实现如下:22“半无限”有约束的多元函数最优解x、b、beq、lb、ub都是向量;A、Aeq是矩阵;C(x)、Ceq(x)、是返回向量的函数,f(x)为目标函数;f(x)、C(x)、Ceq(x)是非线性函数;为半无限约束,通常是长度为2的向量fseminf

“半无限”有约束的多元函数最优解x、b、beq、lb、ub23相关系数MATLAB提供了corrcoef函数-课件24先建立非线性约束和半无限约束函数文件,并保存为mycon.m:function[C,Ceq,K1,K2,S]=mycon(X,S)%初始化样本间距:ifisnan(S(1,1)),S=[0.20;0.20];end%产生样本集:w1=1:S(1,1):100;w2=1:S(2,1):100;%计算半无限约束:K1=sin(w1*X(1)).*cos(w1*X(2))-1/1000*(w1-50).^2-sin(w1*X(3))-X(3)-1;K2=sin(w2*X(2)).*cos(w2*X(1))-1/1000*(w2-50).^2-sin(w2*X(3))-X(3)-1;%无非线性约束:C=[];Ceq=[];%绘制半无限约束图形plot(w1,K1,'-',w2,K2,':'),title('Semi-infiniteconstraints')然后在MATLAB命令窗口或编辑器中建立M文件:fun='sum((x-0.5).^2)';x0=[0.5;0.2;0.3];%Startingguess[x,fval]=fseminf(fun,x0,2,@mycon)先建立非线性约束和半无限约束函数文件,并保存为mycon.m25相关系数MATLAB提供了corrcoef函数-课件26

求下列函数最大值的最小化问题其中:求下列函数最大值的最小化问题其中:27先建立目标函数文件,并保存为myfun.m:functionf=myfun(x)f(1)=2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;f(2)=-x(1)^2-3*x(2)^2;f(3)=x(1)+3*x(2)-18;f(4)=-x(1)-x(2);f(5)=x(1)+x(2)-8;然后,在命令窗口键入命令:x0=[0.1;0.1];%初始值[x,fval]=fminimax(@myfun,x0)先建立目标函数文件,并保存为myfun.m:function28求上述问题的绝对值的最大值最小化问题。目标函数为:解:先建立目标函数文件(与上例相同)然后,在命令窗口或编辑器中建立M文件:x0=[0.1;0.1];%初始点options=optimset('MinAbsMax',5);%指定绝对值的最小化[x,fval]=fminimax(@myfun,x0,[],[],[],[],[],[],[],options)求上述问题的绝对值的最大值最小化问题。解:先建立目标函数文件29多目标规划问题fgoalattain

多目标规划问题fgoalattain30在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。曲线拟合或回归是人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。图1说明了这两种方法。连接数据点的实线描绘了线性内插,虚线是数据的最佳拟合。曲线拟合在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常31x=[0.1.2.3.4.5.6.7.8.91];y=[-.4471.9783.286.167.087.347.669.569.489.3011.2];n=2;%polynomialorderp=polyfit(x,y,n)polyfit的输出是一个多项式系数的行向量。其解是y=-9.8108x2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。ezplot('-9.8108*x*x+20.1293*x-0.0317')xi=linspace(0,1,100);%x-axisdataforplottingz=polyval(p,xi);为了计算在xi数据点的多项式值,调用MATLAB的函数polyval。plot(x,y,'o',x,y,xi,z,':')画出了原始数据x和y,用'o'标出该数据点,在数据点之间,再用直线重画原始数据,并用点':'线,画出多项式数据xi和z。xlabel('x'),ylabel('y=f(x)'),title('SecondOrderCurveFitting')x=[0.1.2.3.4.5.632曲线拟合和插值函数polyfit(x,y,n)对描述n阶多项式y=f(x)的数据进行最小二乘曲线拟合interp1(x,y,xo)1维线性插值interp1(x,y,xo,'spline')1维3次样条插值interp1(x,y,xo,'cubic')1维3次插值interp2(x,y,Z,xi,yi)2维线性插值interp2(x,y,Z,xi,yi,'cubic')2维3次插值interp2(x,y,Z,xi,yi,'nearest')2维最近邻插值曲线拟合和插值函数polyfit(x,y,33x1=linspace(0,2*pi,60); x2=linspace(0,2*pi,6); plot(x1,sin(x1),x2,sin(x2),'-') xlabel('x'),ylabel('sin(x)')title('LinearInterpolation')x1=linspace(0,234若不采用直线连接数据点,我们可采用某些更光滑的曲线来拟合数据点。最常用的方法是用一个3阶多项式,即3次多项式,来对相继数据点之间的各段建模,每个3次多项式的头两个导数与该数据点相一致。这种类型的插值被称为3次样条或简称为样条。函数interp1也能执行3次样条插值。若不采用直线连接数据点,我们可采用某些更光滑的曲线来拟合数据35hours=1:12;%indexforhourdatawasrecordedtemps=[589152529313022252724];%recordedtemperaturesplot(hours,temps,hours,temps,'+')%viewtemperaturestitle('Temperature')xlabel('Hour'),ylabel('DegreesCelsius')为了说明一维插值,考虑下列问题,12小时内,一小时测量一次室外温度。数据存储在两个MATLAB变量中。t=interp1(hours,temps,9.3,'spline')%estimatetemperatureathour=9.3t=interp1(hours,temps,4.7,'spline')%estimatetemperatureathour=4.7t=interp1(hours,temps,[3.26.57.111.7],'spline')hours=1:12;%indexforh36意,样条插值得到的结果,与上面所示的线性插值的结果不同。因为插值是一个估计或猜测的过程,其意义在于,应用不同的估计规则导致不同的结果。意,样条插值得到的结果,与上面所示的线性插值的结果不同。因为37样条插值是对数据进行平滑,也就是,给定一组数据,使用样条插值在更细的间隔求值。例如,hours=1:12;%indexforhourdatawasrecordedh=1:0.1:12;%estimatetemperatureevery1/10hourtemps=[589152529313022252724];t=interp1(hours,temps,h);plot(hours,temps,'-',hours,temps,'+',h,t)%plotcomparativeresultstitle('SpringfieldTemperature')xlabel('Hour'),ylabel('DegreesCelsius')样条插值是对数据进行平滑,也就是,给定一组数据,使用样条插值382二维数据插值在MATLAB中,提供了解决二维插值问题的函数interp2,其调用格式为:Z1=interp2(X,Y,Z,X1,Y1,'method')其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。method的取值与一维插值函数相同。X,Y,Z也可以是矩阵形式。同样,X1,Y1的取值范围不能超出X,Y的给定范围,否则,会给出“NaN”错误。2二维数据插值39例某实验对一根长10米的钢轨进行热源的温度传播测试。用x表示测量点0:2.5:10(米),用h表示测量时间0:30:60(秒),用T表示测试所得各点的温度(℃)。试用线性插值求出在一分钟内每隔20秒、钢轨每隔1米处的温度TI。命令如下:x=0:2.5:10;h=[0:30:60]';T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];xi=[0:10];hi=[0:20:60]';TI=interp2(x,h,T,xi,hi)相关系数MATLAB提供了corrcoef函数-课件40标准方差与相关系数1.求标准方差在MATLAB中,提供了计算数据序列的标准方差的函数std。对于向量X,std(X)返回一个标准方差。对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列或各行的标准方差。std函数的一般调用格式为:Y=std(A,flag,dim)其中dim取1或2。当dim=1时,求各列元素的标准方差;当dim=2时,则求各行元素的标准方差。flag取0或1,当flag=0时,按σ1所列公式计算标准方差,当flag=1时,按σ2所列公式计算标准方差。缺省flag=0,dim=1。例6-7对二维矩阵x,从不同维方向求出其标准方差。标准方差与相关系数412.相关系数MATLAB提供了corrcoef函数,可以求出数据的相关系数矩阵。corrcoef函数的调用格式为:corrcoef(X):返回从矩阵X形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵X一样。它把矩阵X的每列作为一个变量,然后求它们的相关系数。corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef([X,Y])的作用一样。2.相关系数42例生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)例生成满足正态分布的10000×5随机矩阵,然后求各列元素43排序MATLAB中对向量X是排序函数是sort(X),函数返回一个对X中的元素按升序排列的新向量。sort函数也可以对矩阵A的各列或各行重新排序,其调用格式为:[Y,I]=sort(A,dim)其中dim指明对A的列还是行进行排序。若dim=1,则按列排;若dim=2,则按行排。Y是排序后的矩阵,而I记录Y中的元素在A中位置。排序44

线性优化x=lp(C,A,b,vlb,vub)

线性优化x=lp(C,A,b,vlb,vub)45相关系数MATLAB提供了corrcoef函数-课件46[例]最小值线性优化f(x)=-5x1-4x2-6x3x1-x2+x3≦203x1+2x2+4x3≦423x1+2x2≦30(0≦x1,0≦x2,0≦x3)%First,enterthecoefficients:f=[-5;-4;-6];A=[1-11324320];b=[20;42;30];lb=[0,0,0];%x的最小值[0,0,0]ub=[inf,inf,inf];%Next,callalinearprogrammingroutine:x=lp(f,A,b,lb,ub)%Enteringxx=0.000015.00003.0000[例]最小值线性优化%First,enterthec47[例]线性优化Min-400x1-1000x2-300x3+200x4-2x2+x3+x4=02x1+3x2<=163x1+4x2<=24x1,x2,x3,x4>=0;x3<=5c=[-400,-1000,-300,200];%目标函数系数A=[0-211;2300;3400];%约束条件系数b=[0;16;24];xLB=[0,0,0,0];%x取值范围的最小值xUB=[inf,inf,5,inf];%x取值范围的最大值x0=[0,0,0,0];%x取迭代初始值nEq=1;%约束条件中只有一个=号,其余为<=x=lp(c,A,b,xLB,xUB,x0,nEq)disp(['最优值为:',num2str(c*x)])[例]线性优化c=[-400,-1000,-300,20048

非线性优化x=constr('f',x0)

fminbnd

非线性优化x=constr('f',x0)fminbn49计算下面函数在区间(0,1)内的最小值。[x,fval,exitflag,output]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)计算下面函数在区间(0,1)内的最小值。[x,fval,ex50在[0,5]上求下函数的最小值解:先自定义函数:在MATLAB编辑器中建立M文件为:functionf=myfun(x)f=(x-3).^2-1;保存为myfun.m,然后在命令窗口键入命令:x=fminbnd(@myfun,0,5)在[0,5]上求下函数的最小值解:先自定义函数:在MATLA51[例]最小值非线性优化Minf(x)=-x1x2x3,-x1-2x2-2x3≤0,x1+2x2+2x3≤72,初值:x=[10;10;10]x=[10;10;10]%第一步:编写M文件myfun.mfunction[f,g]=myfun(x)f=-x(1)*x(2)*x(3);g(1)=-x(1)-2*x(2)-2*x(3);g(2)=x(1)+2*x(2)+2*x(3)-72;%第二步:求解%在MATLAB工作窗中键入x0=[10,10,10];x=constr('myfun',x0)%即可[例]最小值非线性优化x=[10;10;10]52[第一步:编写M文件fxxgh.mfunction[F,G]=fxxgh(x)F=-x(1)*x(2);G(1)=(x(1)+x(2))*x(3)-120;第二步:求解在MATLAB工作窗中键入x=[1,1,1];%x取迭代初始值options(13)=0;%约束条件中有0个=号,其余为<=XL=[0,0,2];%x取值范围的最小值XU=[inf;inf;inf];%x取值范围的最大值[x,options]=constr('fxxgh',x,options,XL,XU);options(8)%输出最小值x例]非线性优化Minf(x)=-x1x2(x1+x2)x3<=0;x1,x2>=0;x3>=2;[第一步:编写M文件fxxgh.m例]非线性优化53无约束多元函数最小值

多元函数最小值的标准形式为其中:x为向量,如使用fmins求其最小值

无约束多元函数最小值多元函数最小值的标准形式为其中:x为向量54求的最小值点X=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2',[0,0])或在MATLAB编辑器中建立函数文件functionf=myfun(x)f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2;保存为myfun.m,在命令窗口键入X=fminsearch('myfun',[0,0])或>>X=fminsearch(@myfun,[0,0])求的最小值点X=fminsearch('2*x(1)^3+455利用函数fminunc求多变量无约束函数最小值当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好

求的最小值

fun='3*x(1)^2+2*x(1)*x(2)+x(2)^2';x0=[11];[x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0)或用下面方法:fun=inline('3*x(1)^2+2*x(1)*x(2)+x(2)^2')x0=[11]x=fminunc(fun,x0)利用函数fminunc求多变量无约束函数最小值求的最小值56有约束的多元函数最小值非线性有约束的多元函数的标准形式为:sub.to其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数

fmincon

有约束的多元函数最小值非线性有约束的多元函数的标准形式为:57解:约束条件的标准形式为求下面问题在初始点(0,1)处的最优解min

s.tmin

s.t求下面问题在初始点(0,1)处的最优解mins.tmin58先在MATLAB编辑器中建立非线性约束函数文件:function[c,ceq]=mycon(x)c=(x(1)-1)^2-x(2);ceq=[];%无等式约束然后,在命令窗口键入如下命令或建立M文件:fun='x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2)';%目标函数x0=[01];A=[-23];%线性不等式约束b=6;Aeq=[];%无线性等式约束beq=[];lb=[];%x没有下、上界ub=[];[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)先在MATLAB编辑器中建立非线性约束函数文件:59二次规划问题二次规划问题(quadraticprogramming)的标准形式为:sub.to

其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量

quadprog

二次规划问题二次规划问题(quadraticprogra60求解下面二次规划问题sub.to解:则,,

求解下面二次规划问题sub.to解:则,,61在MATLAB中实现如下:H=[1-1;-12];f=[-2;-6];A=[11;-12;21];b=[2;2;3];lb=zeros(2,1);[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,[],[],lb)在MATLAB中实现如下:62“半无限”有约束的多元函数最优解x、b、beq、lb、ub都是向量;A、Aeq是矩阵;C(x)、Ceq(x)、是返回向量的函数,f(x)为目标函数;f(x)、C(x)、Ceq(x)是非线性函数;为半无限约束,通常是长度为2的向量fseminf

“半无限”有约束的多元函数最优解x、b、beq、lb、ub63相关系数MATLAB提供了corrcoef函数-课件64先建立非线性约束和半无限约束函数文件,并保存为mycon.m:function[C,Ceq,K1,K2,S]=mycon(X,S)%初始化样本间距:ifisnan(S(1,1)),S=[0.20;0.20];end%产生样本集:w1=1:S(1,1):100;w2=1:S(2,1):100;%计算半无限约束:K1=sin(w1*X(1)).*cos(w1*X(2))-1/1000*(w1-50).^2-sin(w1*X(3))-X(3)-1;K2=sin(w2*X(2)).*cos(w2*X(1))-1/1000*(w2-50).^2-sin(w2*X(3))-X(3)-1;%无非线性约束:C=[];Ceq=[];%绘制半无限约束图形plot(w1,K1,'-',w2,K2,':'),title('Semi-infiniteconstraints')然后在MATLAB命令窗口或编辑器中建立M文件:fun='sum((x-0.5).^2)';x0=[0.5;0.2;0.3];%Startingguess[x,fval]=fseminf(fun,x0,2,@mycon)先建立非线性约束和半无限约束函数文件,并保存为mycon.m65相关系数MATLAB提供了corrcoef函数-课件66

求下列函数最大值的最小化问题其中:求下列函数最大值的最小化问题其中:67先建立目标函数文件,并保存为myfun.m:functionf=myfun(x)f(1)=2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;f(2)=-x(1)^2-3*x(2)^2;f(3)=x(1)+3*x(2)-18;f(4)=-x(1)-x(2);f(5)=x(1)+x(2)-8;然后,在命令窗口键入命令:x0=[0.1;0.1];%初始值[x,fval]=fminimax(@myfun,x0)先建立目标函数文件,并保存为myfun.m:function68求上述问题的绝对值的最大值最小化问题。目标函数为:解:先建立目标函数文件(与上例相同)然后,在命令窗口或编辑器中建立M文件:x0=[0.1;0.1];%初始点options=optimset('MinAbsMax',5);%指定绝对值的最小化[x,fval]=fminimax(@myfun,x0,[],[],[],[],[],[],[],options)求上述问题的绝对值的最大值最小化问题。解:先建立目标函数文件69多目标规划问题fgoalattain

多目标规划问题fgoalattain70在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。曲线拟合或回归是人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。图1说明了这两种方法。连接数据点的实线描绘了线性内插,虚线是数据的最佳拟合。曲线拟合在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常71x=[0.1.2.3.4.5.6.7.8.91];y=[-.4471.9783.286.167.087.347.669.569.489.3011.2];n=2;%polynomialorderp=polyfit(x,y,n)polyfit的输出是一个多项式系数的行向量。其解是y=-9.8108x2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。ezplot('-9.8108*x*x+20.1293*x-0.0317')xi=linspace(0,1,100);%x-axisdataforplottingz=polyval(p,xi);为了计算在xi数据点的多项式值,调用MATLAB的函数polyval。plot(x,y,'o',x,y,xi,z,':')画出了原始数据x和y,用'o'标出该数据点,在数据点之间,再用直线重画原始数据,并用点':'线,画出多项式数据xi和z。xlabel('x'),ylabel('y=f(x)'),title('SecondOrderCurveFitting')x=[0.1.2.3.4.5.672曲线拟合和插值函数polyfit(x,y,n)对描述n阶多项式y=f(x)的数据进行最小二乘曲线拟合interp1(x,y,xo)1维线性插值interp1(x,y,xo,'spline')1维3次样条插值interp1(x,y,xo,'cubic')1维3次插值interp2(x,y,Z,xi,yi)2维线性插值interp2(x,y,Z,xi,yi,'cubic')2维3次插值interp2(x,y,Z,xi,yi,'nearest')2维最近邻插值曲线拟合和插值函数polyfit(x,y,73x1=linspace(0,2*pi,60); x2=linspace(0,2*pi,6); plot(x1,sin(x1),x2,sin(x2),'-') xlabel('x'),ylabel('sin(x)')title('LinearInterpo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论