Matlab优化工具箱简介课件

上传人:阳*** 文档编号:107320946 上传时间:2022-06-14 格式:PPT 页数:61 大小:208KB
收藏 版权申诉 举报 下载
Matlab优化工具箱简介课件_第1页
第1页 / 共61页
Matlab优化工具箱简介课件_第2页
第2页 / 共61页
Matlab优化工具箱简介课件_第3页
第3页 / 共61页
资源描述:

《Matlab优化工具箱简介课件》由会员分享,可在线阅读,更多相关《Matlab优化工具箱简介课件(61页珍藏版)》请在装配图网上搜索。

1、Matlab优化工具箱简介课件第五讲第五讲 Matlab优化工具箱简介优化工具箱简介 -optimization toobox1. 线性优化线性优化2. 非线性优化非线性优化3. 极小化极大极小化极大(Minmax)问题问题4. 曲线拟合与插值曲线拟合与插值Matlab优化工具箱简介课件线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB7.0解决的线性规划问题的标准形式为 min sub. to: 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵.其它形式的线性规划问题都可经过适当变换化为此标准形式. 在MATLAB5.x以上版中,线性规划问题Linear Progra

2、mming已用函数linprog取代了MATLAB5.x版中的lp函数.当然,由于版本的向下兼容性,一般说来,低版本中的函数在7.0版中仍可使用.nRxxfbxAbeqxAequbxlb5.1 线性优化Matlab优化工具箱简介课件函数 linprog格式 x = linprog(f,A,b) %求min f *x sub.to 线性规划的最优解.x = linprog(f,A,b,Aeq,beq) %等式约束,若没有不等式约束,则A= ,b= .x = linprog(f,A,b,Aeq,beq,lb,ub) . %指定x的范围,若没有等式约束 ,则Aeq= ,beq= .x = linpr

3、og(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0.x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数.bxAMatlab优化工具箱简介课件x,fval = linprog() % 返回目标函数最优值,即fval= f *x.x,lambda,exitflag = linprog() % lambda为解x的Lagrange乘子.x, lambda,fval,exitflag = linprog() % exitflag为终止迭代的错误条件.x,fval, lambda,exitflag,output =

4、 linprog() % output为关于优化的一些信息.说明: 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大次数,exitflagf = -5; -4; -6; % 写成行向量亦可!A = 1 -1 1;3 2 4;3 2 0;b = 20; 42; 30;lb = zeros(3,1);x,fval,exitflag,output,lambda = linprog(f,A,b,lb)结果为:x = %最优解 0.0000 15.0000 3.0000fval = %最优值 -78.0000exitflag = %收敛 1Matlab优化工具箱简

5、介课件output = iterations: 6 %迭代次数 cgiterations: 0 algorithm: lipsol %所使用规则lambda = ineqlin: 3x1 double eqlin: 0 x1 double upper: 3x1 double lower: 3x1 double lambda.ineqlinans = 0.0000 1.5000 0.5000 lambda.lowerans = 1.0000 0.0000 0.0000表明:不等约束条件2和3以及第1个下界是有效的.Matlab优化工具箱简介课件请写出下面线性规划的请写出下面线性规划的Matlab

6、程序程序.Matlab优化工具箱简介课件c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6; A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08; b=850;700;100;900; Aeq=; beq=; vlb=0;0;0;0;0;0; vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)Matlab优化工具箱简介课件MATLABMATLAB求解优化问题的主要函数求解优化问题的主要函数Matlab优化工具箱简介课件优化

7、函数的输入变量优化函数的输入变量 Matlab优化工具箱简介课件优化函数的输出变量优化函数的输出变量 Matlab优化工具箱简介课件5.2非线性优化5.2.1 有约束的一元函数的最小值有约束的一元函数的最小值单变量函数求最小值的标准形式为 sub.to 函数 fminbnd格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄.x = fminbnd(fun,x1,x2,options) x,fval = fminbnd() x,fval,exitflag = fminbnd()x,fv

8、al,exitflag,output = fminbnd()x( fminx21xxxMatlab优化工具箱简介课件例5-2 计算下面函数在区间(0,1)内的最小值. x3exlogxxcosx)x( f解: x,fval,exitflag,output=fminbnd(x3+cos(x)+x*log(x)/exp(x),0,1)x = 0.5223fval = 0.3974exitflag = 1output = iterations: 9 funcCount: 9 algorithm: golden section search, parabolic interpolationMatlab

9、优化工具箱简介课件1) 3x()x( f3例5-3 在0,5上求下面函数的最小值解:先自定义函数:在MATLAB编辑器中建立M文件为:function f = myfun(x)f = (x-3).2 - 1;保存为myfun.m,然后在命令窗口键入命令: x=fminbnd(myfun,0,5)则结果显示为:x = 3Matlab优化工具箱简介课件5.2.2 无约束多元函数最小值无约束多元函数最小值多元函数最小值的标准形式为其中:x为向量.命令 利用函数fminsearch求无约束多元函数最小值.函数 fminsearch格式 x = fminsearch(fun,x0) %x0为初始点,fu

10、n为目标函数的表达式字符串或MATLAB自定义函数的函数柄.x = fminsearch(fun,x0,options) % options查optimset.x,fval = fminsearch() %最优点的函数值.x,fval,exitflag = fminsearch() % exitflag与单变量情形一致.x,fval,exitflag,output = fminsearch() %output与单变量情形一致.)x( fminxx,x,xxn21Matlab优化工具箱简介课件222132131xxx10 xx4x2y例5-4 求 的最小值点.解:X=fminsearch(2*x

11、(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2, 0,0)结果为 X = 1.0016 0.8335或在MATLAB编辑器中建立函数文件.function f=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 = 1.0016 0.8335Matlab优化工具箱简介课件5.2.3 有约束的多元函数最小值有约束的多元函数最小值非线性有约束的多元函数的标准形式为:sub

12、.to 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数.在MATLAB5.x中,它的求解由函数constr实现.)x( fminx0)x(C0)x(CeqbxAbeqxAequbxlbMatlab优化工具箱简介课件函数 fmincon格式 x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,be

13、q,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fmincon()x,fval,exitflag = fmincon()x,fval,exitflag,output = fmincon()x,fval,exitflag,output,lambda = fmincon()x,fval,exitflag,output,lambda,grad = fmincon()x,fval,exitflag,output,lambda,grad,hessian = fmincon()Matlab优化工具箱

14、简介课件参数说明:fun为目标函数,它可用前面的方法定义;nonlcon的作用是通过接受的向量x来计算非线性不等约束和等式约束分别在x处的估计C和Ceq,通过指定函数柄来使用,如:x = fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon),先建立非线性约束函数,并保存为mycon.m:function C,Ceq = mycon(x)C = % 计算x处的非线性不等约束的函数值.Ceq = % 计算x处的非线性等式约束的函数值.lambda是Lagrange乘子,它体现哪一个约束有效.output输出优化信息;grad表示目标函数在x处的梯度;hessian表示

15、目标函数在x处的Hessian值.Matlab优化工具箱简介课件例5-5 求下面问题在初始点(0,1)处的最优解21212221x5x2xxxx0 x) 1x(22106x3x221min sub.to 解:约束条件的标准形式为:sub.to 先在MATLAB编辑器中建立非线性约束函数文件: function c, ceq=mycon (x) c=(x(1)-1)2-x(2); ceq= ; %无等式约束.0 x) 1x(2216x3x221Matlab优化工具箱简介课件然后,在命令窗口键入如下命令或建立M文件:fun=x(1)2+x(2)2-x(1)*x(2)-2*x(1)-5*x(2);

16、%目标函数.x0=0 1;A=-2 3; % 线性不等式约束.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优化工具箱简介课件则结果为x = 3 4fval = -13exitflag = 1 % 解收敛. output = iterations: 2 funcCount: 9 stepsize: 1 algorithm: medium-scale: SQP, Quasi

17、-Newton, line-search firstorderopt: cgiterations: lambda = lower: 2x1 double % x下界有效情况,通过lambda.lower可查看. upper: 2x1 double % x上界有效情况,为0表示约束无效. Matlab优化工具箱简介课件 eqlin: 0 x1 double %线性等式约束有效情况,不为0表示约束有效. eqnonlin: 0 x1 double %非线性等式约束有效情况. ineqlin: 2.5081e-008 %线性不等式约束有效情况. neqnonlin: 6.1938e-008 %非线性

18、不等式约束有效情况. grad = %目标函数在最小值点的梯度. 1.0e-006 * -0.1776 hessian = %目标函数在最小值点的Hessian值. 1.0000 -0.0000 -0.0000 1.0000Matlab优化工具箱简介课件5.2.4 二次规划问题二次规划问题二次规划问题(quadratic programming)的标准形式为: sub.to 其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量其它形式的二次规划问题都可转化为标准形式. MATLAB5.x版中的qp函数已被6.0版中的函数quadprog取代。xfxHx21minbxAbeqxAeq

19、buxblMatlab优化工具箱简介课件函数 quadprog格式 x = quadprog(H,f,A,b) %其中H,f,A,b为标准形中的参数,x为目标函数的最小值.x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq满足等约束条件.x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub分别为解x的下界与上界.x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %x0为设置的初值x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数.

20、x,fval = quadprog() %fval为目标函数最优值.x,fval,exitflag = quadprog() % exitflag与线性规划中参数意义相同.x,fval,exitflag,output = quadprog() % output与线性规划中参数意义相同.x,fval,exitflag,output,lambda = quadprog() % lambda与线性规划中参数意义相同 . Matlab优化工具箱简介课件3xx) 0, 0(xx0110)xx(213xx)xx( fmin2121212121例5-6 求二次规划的最优解 max f (x1, x2)=x1

21、x2+3 sub. to x1+x2-2=0解:化成标准形式: sub.to x1+x2=2Matlab优化工具箱简介课件在Matlab中实现如下:H=0,-1;-1,0;f=0;0;Aeq=1 1;b=2;x,fval,exitflag,output,lambda = quadprog(H,f, , ,Aeq,b)结果为:x = 1.0000 1.0000Matlab优化工具箱简介课件fval =-1.0000exitflag =4output = iterations: 1 algorithm: large-scale: projective preconditioned conjugat

22、e gradients f irstorderopt: 0 cgiterations: 1 message: Optimization terminated: local minimum found; the solution is singular. lambda = eqlin: 1.0000 ineqlin: lower: upper: Matlab优化工具箱简介课件5.3 极小化极大(Minmax)问题)x(FmaxminiFxi0)x(C0)x(CeqbxAbeqxAequbxlbsub.to 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)和F(x)

23、是返回向量的函数,F(x)、C(x)、 Ceq(x) 可以是非线性函数.Matlab优化工具箱简介课件函数 fminimax格式 x = fminimax(fun,x0)x = fminimax(fun,x0,A,b)x = fminimax(fun,x0,A,b,Aeq,beq)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval,maxfval = fmin

24、imax()x,fval,maxfval,exitflag = fminimax()x,fval,maxfval,exitflag,output = fminimax()x,fval,maxfval,exitflag,output,lambda = fminimax()Matlab优化工具箱简介课件例5-7 求下列函数最大值的最小化问题其中:)x(f , )x(f , )x(f , )x(f , )x(f54321304x40 x48xx2)x(f212221122222x3x)x(f18x3x)x(f213214xx)x(f8xx)x(f215Matlab优化工具箱简介课件解:先建立目标函数

25、文件,并保存为myfun.m:function f = 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)结果为:x = 4.0000 4.0000fval = 0.0000 -64.0000 -2.0000 -8.0000 -0.0000Matlab优化工

26、具箱简介课件5.4 曲线拟合与插值 在大量的应用领域中,人们经常面临用在大量的应用领域中,人们经常面临用一个解一个解析函数描述数据析函数描述数据( (通常是测量值通常是测量值) )的任务的任务. .对这个问题对这个问题有两种方法有两种方法. . 插值插值: 在插值法里,数据假定是正确的,要求在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况以某种方法描述数据点之间所发生的情况. . 曲线拟合曲线拟合:曲线拟合或回归是人们设法找出某条:曲线拟合或回归是人们设法找出某条光滑曲线,它光滑曲线,它最佳地拟合数据最佳地拟合数据,但不必要经过任何,但不必要经过任何数据点数据点. .Ma

27、tlab优化工具箱简介课件标有标有oo的是数据点;连接数据点的实线描绘了的是数据点;连接数据点的实线描绘了线性内插线性内插,虚线是数据的虚线是数据的最佳拟合最佳拟合. .00.10.20.30.40.50.60.70.80.91-2024681012 x y=f(x) Second Order Curve Fitting Matlab优化工具箱简介课件 曲线拟合的两个基本问题:曲线拟合的两个基本问题: 1.1.最佳拟合意味着什么?最佳拟合意味着什么? 2.2.应该用什么样的曲线?应该用什么样的曲线? 可用许多不同的方法定义最佳拟合,并存在可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线无穷

28、数目的曲线. . 当最佳拟合被解释为在数据点的最小误差平当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的拟合是相当简捷的. .数学上,称为数学上,称为多项式的最小二多项式的最小二乘曲线拟合乘曲线拟合. .1 Matlab 曲线拟合Matlab优化工具箱简介课件 虚线和标志的数据点之间的垂直距离是在该点的误差虚线和标志的数据点之间的垂直距离是在该点的误差. .对对各数据点距离求平方,并把平方距离全加起来,就是误差平方各数据点距离求平方,并把平方距离全加起来,就是误差平方和和. .这条虚线是使这条虚线是使误差

29、平方和尽可能小的曲线误差平方和尽可能小的曲线,即是,即是最佳拟合最佳拟合. .最小二乘这个术语仅仅是使误差平方和最小的省略说法最小二乘这个术语仅仅是使误差平方和最小的省略说法. . 00.10.20.30.40.50.60.70.80.91-2024681012 x y=f(x) Second Order Curve Fitting Matlab优化工具箱简介课件Matlab 曲线拟合和插值命令曲 线 拟 合 和 插 值 函 数polyfit(x, y, n) 对描述n阶多项式y=f(x)的数据 进行最小二乘曲线拟合interp1(x, y, xo) 1维线性插值interp1(x, y, x

30、o, 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维最近邻插值Matlab优化工具箱简介课件x=0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1;y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; n=2; p=polyfit(x, y, n)ezplo

31、t( -9.8108*x*x+20.1293*x-0.0317 ) %二次多项式系数 %既是p的输出,该命令为画出拟合曲线.xi=linspace(0, 1, 100); % x-axis data for plotting z=polyval(p, xi) %求出多项式在xi点处的取值. plot(x, y, o , x, y, xi, z, : ) xlabel( x ), ylabel( y=f(x) ), title( Second Order Curve Fitting )Matlab优化工具箱简介课件00.10.20.30.40.50.60.70.80.91-2024681012

32、x y=f(x) Second Order Curve Fitting Matlab优化工具箱简介课件 多项式阶次的选择是任意的多项式阶次的选择是任意的. .两点决定一直线两点决定一直线或一阶多项式或一阶多项式. .三点决定一个平方或三点决定一个平方或2 2阶多项式阶多项式. .按按此进行,此进行,n+1n+1数据点唯一地确定数据点唯一地确定n n阶多项式阶多项式. .于是,于是,在上面的情况下,在上面的情况下,有有1111个数据点,我们可选一个高个数据点,我们可选一个高达达1010阶的多项式阶的多项式. .然而,高阶多项式给出很差的数然而,高阶多项式给出很差的数值特性,人们不应选择比所需的阶

33、次高的多项式值特性,人们不应选择比所需的阶次高的多项式. .此外,随着多项式阶次的提高,近似变得不够光滑,此外,随着多项式阶次的提高,近似变得不够光滑,因为较高阶次多项式在变零前,可多次求导因为较高阶次多项式在变零前,可多次求导. . Matlab优化工具箱简介课件00.20.40.60.81-20246810121416xy=f(x)2nd and 10th Order curve Fitting 原始数据标以原始数据标以oo,2 2阶曲线拟合是虚线阶曲线拟合是虚线,1010阶拟合是实线阶拟合是实线. .注意,在注意,在1010阶拟合中,在左边和右边的极值处,数据点之间出阶拟合中,在左边和右

34、边的极值处,数据点之间出现大的纹波现大的纹波. .当企图进行高阶曲线拟合时,这种纹波现象经常当企图进行高阶曲线拟合时,这种纹波现象经常发生发生. .显然,显然, 越多就越好越多就越好 的观念在这里不适用的观念在这里不适用. .Matlab优化工具箱简介课件2 插值命令 插值定义为对数据点之间函数的估值方法插值定义为对数据点之间函数的估值方法,这,这些数据点是由某些集合给定些数据点是由某些集合给定. .当人们不能很快地求出当人们不能很快地求出所需中间点的函数值时,插值是一个有价值的工具所需中间点的函数值时,插值是一个有价值的工具. .例如,当数据点是某些实验测量的结果或是过长的例如,当数据点是某

35、些实验测量的结果或是过长的计算过程时,就有这种情况计算过程时,就有这种情况. . 最简单插值的例子是最简单插值的例子是MATLABMATLAB的作图的作图. .按缺省,按缺省,MATLABMATLAB用直线连接所用的数据点以作图用直线连接所用的数据点以作图. .这个这个线性插线性插值猜测中间值落在数据点之间的直线上值猜测中间值落在数据点之间的直线上. .当然,当数当然,当数据点个数的增加和它们之间距离的减小时,线性插据点个数的增加和它们之间距离的减小时,线性插值就更精确值就更精确. .例如例如: : Matlab优化工具箱简介课件 x1=linspace(0, 2*pi, 60); x2=li

36、nspace(0, 2*pi, 6); plot(x1, sin(x1), x2, sin(x2), - )xlabel( x ), ylabel( sin(x) ), title( Linear Interpolation )01234567-1-0.500.51xsin(x)Linear Interpolation一个在数据点之间用一个在数据点之间用6060个点,它比另一个只用个点,它比另一个只用6 6个点更光滑和更精确个点更光滑和更精确. .Matlab优化工具箱简介课件 如曲线拟合一样,插值要作决策如曲线拟合一样,插值要作决策. .根据所作的假设,根据所作的假设,有多种插值有多种插值.

37、 .而且,可以在一维以上空间中进行插值而且,可以在一维以上空间中进行插值. .即如果有反映两个变量函数的插值,即如果有反映两个变量函数的插值,z=f(x, y)z=f(x, y),那么,那么就可在就可在x x之间和在之间和在y y之间,找出之间,找出z z的中间值进行插的中间值进行插值值.MATLAB.MATLAB在一维函数在一维函数interp1interp1和在二维函数和在二维函数interp2interp2中,中,提供了许多的插值选择提供了许多的插值选择. . 为了说明一维插值,考虑下列问题,为了说明一维插值,考虑下列问题,1212小时内,小时内,一小时测量一次室外温度一小时测量一次室外

38、温度. .数据存储在两个数据存储在两个MATLABMATLAB变量变量中中. .Matlab优化工具箱简介课件 hours=1:12; % index for hour data was recorded temps=5 8 9 15 25 29 31 30 22 25 27 24; % recorded temperatures plot(hours, temps, hours, temps, + ) % view temperatures title( Temperature )xlabel( Hour ), ylabel( Degrees Celsius )024681012510152

39、0253035HourDegrees CelsiusTemperatureMatlab优化工具箱简介课件 正如上图看到的,正如上图看到的,MATLABMATLAB画出了画出了数据点线性插值的直数据点线性插值的直线线. .为了计算在任意给定时间的温度,人们可试着对可视的为了计算在任意给定时间的温度,人们可试着对可视的图作解释图作解释. .另外一种方法,可用函数另外一种方法,可用函数interp1.interp1. t=interp1(hours, temps, 9.3) % estimate temperature at hour=9.3t =22.9000 t=interp1(hours, t

40、emps, 4.7) % estimate temperature at hour=4.7t =22 t=interp1(hours, temps, 3.2 6.5 7.1 11.7) % find temp at many points!t = 10.2000 30.0000 30.9000 24.9000Matlab优化工具箱简介课件 interp1 interp1的缺省用法是由的缺省用法是由interp1(x, y, xo)interp1(x, y, xo)来来描述,这里描述,这里x x是独立变量是独立变量( (横坐标横坐标) ),y y是应变量是应变量( (纵坐纵坐标标) ),xoxo

41、是进行插值的一个数值数组是进行插值的一个数值数组. .另外,该缺省的另外,该缺省的使用假定为线性插值使用假定为线性插值. . 若不采用直线连接数据点,我们可采用某些若不采用直线连接数据点,我们可采用某些更光更光滑的曲线来拟合数据点滑的曲线来拟合数据点. .最常用的方法是用一个最常用的方法是用一个3 3阶多阶多项式,即项式,即3 3次多项式,来对相继数据点之间的各段建模,次多项式,来对相继数据点之间的各段建模,每个每个3 3次多项式的头两个导数与该数据点相一致次多项式的头两个导数与该数据点相一致. .这种这种类型的插值被称为类型的插值被称为3 3次样条或简称为样条次样条或简称为样条. .函数函数

42、interp1interp1也能执行也能执行3 3次样条插值次样条插值. .Matlab优化工具箱简介课件 t=interp1(hours, temps, 9.3, spline ) % estimate temperature at hour=9.3t = 21.8577 t=interp1(hours, temps, 4.7, spline ) % estimate temperature at hour=4.7t = 22.3143 t=interp1(hours, temps, 3.2 6.5 7.1 11.7, spline ) t = 9.6734 30.0427 31.1755

43、25.3820Matlab优化工具箱简介课件interp1interp1二个强约束二个强约束: :(1 1)人们不能要求有独立变量范围以外的结果,)人们不能要求有独立变量范围以外的结果,例如,例如,interp1(hours, temps, 13.5)interp1(hours, temps, 13.5)导致一个导致一个错误,因为错误,因为hourshours在在1 1到到1212之间变化之间变化. .(2 2)独立变量必须是单调的)独立变量必须是单调的. .即独立变量在值即独立变量在值上必须总是增加的或总是减小的上必须总是增加的或总是减小的. . 二维插值是基于与一维插值同样的基本思二维插值

44、是基于与一维插值同样的基本思想想. .然而,正如名字所隐含的,二维插值是对两然而,正如名字所隐含的,二维插值是对两变量的函数变量的函数z=f(x, y) z=f(x, y) 进行插值进行插值. . Matlab优化工具箱简介课件3. 非线性数据(曲线)拟合非线性数据(曲线)拟合非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x.今进行曲线拟合,求x使得下式成立:函数 lsqcurvefit格式 x = lsqcurvefit(fun,x0,xdata,ydata)x = lsqcurvefit(fun

45、,x0,xdata,ydata,lb,ub,options)x,resnorm = lsqcurvefit()x,resnorm,residual,exitflag,output,lambda = lsqcurvefit()x,resnorm,residual,exitflag,output,lambda,jacobian =lsqcurvefit()i2ii22x)ydata)xdata, x(F(21ydata)xdata, x(F21minMatlab优化工具箱简介课件resnorm=sum (fun(x,xdata)-ydata).2),即在x处残差的平方和;residual=fun(

46、x,xdata)-ydata,即在x处的残差;exitflag为终止迭代的条件;output为输出的优化信息;lambda为解x处的Lagrange乘子;jacobian为解x处拟合函数fun的jacobian矩阵.Matlab优化工具箱简介课件例5-8 求解如下最小二乘非线性拟合问题已知输入向量xdata和输出向量ydata,且长度都是n,拟合函数为即目标函数为其中:初始解向量为x0=0.3, 0.4, 0.1。32) i (xdata) 3 (x)i (xdatasin() 2(x) i (xdata) 1 (x) i (ydatan1i2iix)ydata)xdata, x(F(21mi

47、n32xdata) 3 (x)xdatasin() 2(xxdata) 1 (x)xdata, x(FMatlab优化工具箱简介课件解:先建立拟合函数文件,并保存为myfun.mfunction F = myfun(x,xdata)F = x(1)*xdata.2 + x(2)*sin(xdata) + x(3)*xdata.3;然后给出数据xdata和ydataxdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4;ydata = 16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3;x0 = 10

48、, 10, 10; %初始估计值x,resnorm = lsqcurvefit(myfun,x0,xdata,ydata)结果为:Optimization terminated successfully:Relative function value changing by less than OPTIONS.TolFunx = 0.2269 0.3385 0.3021resnorm = 6.2950Matlab优化工具箱简介课件4 非线性最小二乘非线性最小二乘非线性最小二乘(非线性数据拟合)的标准形式为:其中:L为常数 设则目标函数可表达为其中:x为向量,F(x)为函数向量. L)x(f)x

49、(f)x(f)x( fmin2m2221x)x(f)x(f)x(f)x(Fm21i2i22x)x(f21)x(F21minMatlab优化工具箱简介课件函数 lsqnonlin格式 x = lsqnonlin(fun,x0) %x0为初始解向量;fun为 ,i=1,2,m,fun返回向量值F,而不是平方和值,平方和隐含在算法中,fun的定义与前面相同.x = lsqnonlin(fun,x0,lb,ub,options) %options为指定优化参数,若x没有界,则lb= ,ub= .x,resnorm = lsqnonlin() % resnorm=sum(fun(x).2),即解x处目标

50、函数值.x,resnorm,residual = lsqnonlin() % residual=fun(x),即解x处fun的值.)x(fiMatlab优化工具箱简介课件例5-9 求下面非线性最小二乘问题初始解向量为x0=0.3, 0.4。解:先建立函数文件,并保存为myfun.m,由于lsqnonlin中的fun为向量形式而不是平方和形式,因此,myfun函数应由建立: k=1,2,10function F = myfun(x)k = 1:10;F = 2 + 2*k-exp(k*x(1)-exp(k*x(2);然后调用优化程序:x0 = 0.3 0.4;x,resnorm = lsqnon

51、lin(myfun,x0) x = 0.2578 0.2578resnorm = %求目标函数值 124.3622101k2xkxk)eek22(21Matlab优化工具箱简介课件实际问题求解(任务分配问题任务分配问题)某车间有甲、乙两台机床,可用于加工三)某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为种工件。假定这两台车床的可用台时数分别为800和和900,三,三种工件的数量分别为种工件的数量分别为400、600和和500,且已知用三种不同车,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。床加工单位数量不同工件所需的台时数和加工费用如下表

52、。问怎样分配车床的加工任务,才能既满足加工工件的要求,问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?又使加工费用最低?Matlab优化工具箱简介课件6543218121110913minxxxxxxz6,2, 1,09003.12.15.08001.14.0500600400 x .654321635241ixxxxxxxxxxxxtsi解解 设在甲车床上加工工件设在甲车床上加工工件1、2、3的数量分别为的数量分别为x1、x2、x3,在乙车床上加工工件,在乙车床上加工工件1、2、3的数量分别为的数量分别为x4、x5、x6。可建立以下线性规划模型:可建立以下线性规划模型: Matlab优化工具箱简介课件f = 13 9 10 11 12 8;A = 0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3;b = 800; 900;Aeq=1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1;beq=400 600 500;vlb = zeros(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq,vlb,vub)程序详解:程序详解:见见example5.mMatlab优化工具箱简介课件The end

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!