第10章-Matlab软件简介 - 复制 (5)_第1页
第10章-Matlab软件简介 - 复制 (5)_第2页
第10章-Matlab软件简介 - 复制 (5)_第3页
第10章-Matlab软件简介 - 复制 (5)_第4页
第10章-Matlab软件简介 - 复制 (5)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、16:42:17MCM1MATLABMATLAB软件简介软件简介 10.1 10.1 基本操作基本操作 10.2 10.2 向量、矩阵及其运算向量、矩阵及其运算 10.3 MATLAB10.3 MATLAB程序设计程序设计 10.4 MATLAB10.4 MATLAB图形处理图形处理 10.5 10.5 优化工具箱优化工具箱16:42:17MCM2 开发开发MATLABMATLAB软件的初衷只是为了方便矩阵运算,随着软件的初衷只是为了方便矩阵运算,随着其作为商业软件的推广,它不断吸收各学科各领域权威人其作为商业软件的推广,它不断吸收各学科各领域权威人士编写的实用程序,形成了一系列规模庞大、覆盖

2、面极广士编写的实用程序,形成了一系列规模庞大、覆盖面极广的工具箱(的工具箱(ToolboxToolbox),), 如优化、图形处理、信号处理、如优化、图形处理、信号处理、神经网络、小波分析、概率统计、偏微分方程、系统识别、神经网络、小波分析、概率统计、偏微分方程、系统识别、鲁棒控制、模糊逻辑等工具箱,极大地方便了我们进行科鲁棒控制、模糊逻辑等工具箱,极大地方便了我们进行科学研究和工程应用。由于数学建模中很多问题都可以转化学研究和工程应用。由于数学建模中很多问题都可以转化为优化问题,本节我们简单地介绍一下优化工具箱为优化问题,本节我们简单地介绍一下优化工具箱(Optimization Toolb

3、oxOptimization Toolbox)中的部分函数,为大家今后熟)中的部分函数,为大家今后熟练使用练使用MATLABMATLAB各工具箱函数奠定基础。各工具箱函数奠定基础。 10.5 10.5 优化工具箱优化工具箱16:42:17MCM3 函数函数fminbndfminbnd是用来寻找单变量函数在固定区间内的最是用来寻找单变量函数在固定区间内的最小值点及最小值,标准数学模型为:小值点及最小值,标准数学模型为: s.t.x1xx2s.t.x1x x,fval x,fval=fminbnd(sin,0,2=fminbnd(sin,0,2* *pi) pi) 符号符号“”表明目标函数表明目标

4、函数为为 MATLABMATLAB自定义的正弦函数自定义的正弦函数sin.msin.m。x =x = 4.71244.7124最小值点赋值给最小值点赋值给x x。fvalfval = = -1.0000 -1.0000 最小值赋值给最小值赋值给fvalfval。 如果目标函数并不是如果目标函数并不是MATLABMATLAB自定义的函数,我们需要自定义的函数,我们需要首先定义一个函数首先定义一个函数M M文件,以该文件的名称来代替上述命令文件,以该文件的名称来代替上述命令行中的行中的“sin”sin”部分。部分。 16:42:17MCM5 如我们希望求出在如我们希望求出在 (-3-3,2 2)内

5、的最)内的最小值及最小值点,我们首先编写目标函数的函数小值及最小值点,我们首先编写目标函数的函数M M文件文件opt1.mopt1.m:2ln(x +1)f(x)=x function f=myfun(x function f=myfun(x) ) 编写函数编写函数M M文件时,此行的文件时,此行的”myfunmyfun” 并不一定与文件名相同。并不一定与文件名相同。 f=(log(x2+1)/x;f=(log(x2+1)/x;然后调用然后调用fminbndfminbnd函数:函数: x,fval x,fval=fminbnd(opt1,-3,2) =fminbnd(opt1,-3,2) 注意

6、此处使用注意此处使用“opt1”opt1” 而不是而不是“myfunmyfun”。 x =x = -1.9803 -1.9803 fval fval = = -0.8047 -0.804716:42:17MCM6 如果目标函数的表达式较为简单,我们也可以使用表如果目标函数的表达式较为简单,我们也可以使用表达式的字符串而不必编写目标函数。如上例我们也可以使达式的字符串而不必编写目标函数。如上例我们也可以使用用x,fvalx,fval=fminbnd(log(x2+1)/x,-3,2)=fminbnd(log(x2+1)/x,-3,2)实现。实现。 fminsearch fminsearch和和f

7、minuncfminunc都是用来求无约束多元函数的最都是用来求无约束多元函数的最小值的函数,标准数学模型为:小值的函数,标准数学模型为: 。两函数的。两函数的调用格式相同,常用格式为:调用格式相同,常用格式为:x,fvalx,fval = fminsearch(fun,x0) % = fminsearch(fun,x0) %从初值从初值x0 x0开始搜索函数开始搜索函数funfun 的最小值点和对应的最小值,并返回最小的最小值点和对应的最小值,并返回最小 值点值点x x和对应的最小值和对应的最小值fvalfval;x0 x0需事先给需事先给 定,格式同自变量定,格式同自变量x x;funfu

8、n同前。同前。x,fvalx,fval = fminunc(fun,x0) % = fminunc(fun,x0) %同同fminsearchfminsearch。xminf(x)xnR16:42:17MCM7 当 目 标 函 数 的 阶 数 大 于当 目 标 函 数 的 阶 数 大 于 2 2 时 , 使 用时 , 使 用 f m i n u n cf m i n u n c 比比fminsearchfminsearch更有效,但当目标函数高度不连续时,使用更有效,但当目标函数高度不连续时,使用fminsearchfminsearch效果较好。如我们希望求出效果较好。如我们希望求出的最小值,

9、首先编写目标函数的函数的最小值,首先编写目标函数的函数M M文件文件opt2.mopt2.m:1x2212122(x)(4x2x3x x2x3)fefunction f=myfun(xfunction f=myfun(x) ) 注意此处只有一个形式参数注意此处只有一个形式参数x x,形参可,形参可 以是向量或矩阵。以是向量或矩阵。f=(exp(x(1)f=(exp(x(1)* *(4(4* *x(1)2+2x(1)2+2* *x(2)2+3x(2)2+3* *x(1)x(1)* *x(2)+2x(2)+2* *x(2)+3);x(2)+3);然后调用然后调用fminsearchfminsear

10、ch或或finuncfinunc函数:函数:16:42:17MCM8 x,fval x,fval=fminunc(opt2,0,0) %=fminunc(opt2,0,0) %从初值从初值0,00,0开始搜索开始搜索 最小值点。最小值点。x =x = -0.2941 -0.2791 -0.2941 -0.2791fvalfval = = 2.3771 2.3771 x,fval x,fval=fminsearch(opt2,0,0) %=fminsearch(opt2,0,0) %从初值从初值0,00,0开始搜开始搜 索最小值点。索最小值点。x =x = -0.2936 -0.2798 -0.

11、2936 -0.2798fvalfval = = 2.3771 2.377116:42:17MCM9 可以看到虽然两函数均从可以看到虽然两函数均从0,00,0开始搜索,得到的最小开始搜索,得到的最小值点却不同,这是由于两函数各自的搜索方向不同造成的,值点却不同,这是由于两函数各自的搜索方向不同造成的,这也说明这两个函数可能只能得到初值点附近的局部最小这也说明这两个函数可能只能得到初值点附近的局部最小值(点),而不一定得到全局最小值(点)。事实上,前值(点),而不一定得到全局最小值(点)。事实上,前述的述的fminbndfminbnd及后面我们要介绍的及后面我们要介绍的fminconfminco

12、n均可能只得到局均可能只得到局部最小值(点)。部最小值(点)。 线性规划问题是指目标函数和约束条件均为线性函数线性规划问题是指目标函数和约束条件均为线性函数的问题,的问题,MATLABMATLAB解决的线性规划问题的标准形式为:解决的线性规划问题的标准形式为:min f x A xbAeq xbeqlbxubs.ts.t. .16:42:17MCM10 其中其中f f、x x、b b、beqbeq、lblb、ubub为列向量,为列向量,A A、AeqAeq为矩阵,为矩阵, A.xbA.xb为线性不等式约束条件,为线性不等式约束条件, Aeq.x=beqAeq.x=beq为线性等式约为线性等式约

13、束条件,束条件,1b x ub1b x ub为变量为变量x x的取值范围。其它形式的线的取值范围。其它形式的线性规划问题经过适当的变换均可以化为此标准形式。性规划问题经过适当的变换均可以化为此标准形式。MATLABMATLAB提供解决此标准形式的线性规划的函数为提供解决此标准形式的线性规划的函数为linproglinprog,其最常用的调用格式为:其最常用的调用格式为:x,fval = linprog(f,A,b,Aeq,beq,lb,ubx,fval = linprog(f,A,b,Aeq,beq,lb,ub) ) % %返回最小值点返回最小值点x x和对应的最小值和对应的最小值fvalfv

14、al;f f、A A、b b、AeqAeq、beqbeq、lblb、 ubub即标准形式中对应的向量或矩阵;若无某些约束条件,调用即标准形式中对应的向量或矩阵;若无某些约束条件,调用 时对应位置的参数均用时对应位置的参数均用 代替,例如无代替,例如无A.xbA.xb ,则调用时的,则调用时的 第第2 2、3 3个参数均用个参数均用 代替。代替。16:42:17MCM11如求解线性规划问题:如求解线性规划问题: max max s.t s.t. . 12342 x3x6 x5x123423412341234xx2x4x0 xxx0 xxxx10 x , 0 x , 0 x , 0 x首先输入目标

15、函数及各约束条件中所涉向量或矩阵:首先输入目标函数及各约束条件中所涉向量或矩阵: f=2;3;6;-5; %f f=2;3;6;-5; %f为转化为标准形式后的目标函数对应系数为转化为标准形式后的目标函数对应系数 列向量。列向量。 A=1 -1 -2 -4;0 -1 -1 A=1 -1 -2 -4;0 -1 -1 1;b=0;0; % 1;b=0;0; %标准形式后的不等式标准形式后的不等式 约束的矩阵及向量。约束的矩阵及向量。 Aeq Aeq=1 1 1 1;beq=1; %=1 1 1 1;beq=1; %标准形式后的等式约束的矩阵及向量。标准形式后的等式约束的矩阵及向量。 lb=0; 0

16、; 0; 0; % lb=0; 0; 0; 0; %标准形式后的标准形式后的x x的下界。的下界。16:42:17MCM12然后调用然后调用linproglinprog函数:函数: x,fval=linprog(f,A,b,Aeq,beq,lb x,fval=linprog(f,A,b,Aeq,beq,lb,) %,) %无上界。无上界。x =x = 0.0000 0.0000 0.5000 0.5000 0.0000 0.0000 0.5000 0.5000% %最值点。最值点。fvalfval = = -1.0000 -1.0000 % %原目标函数最大值为原目标函数最大值为1 1。16:

17、42:17MCM13 二次规划问题是指目标函数为二次函数而约束条件为二次规划问题是指目标函数为二次函数而约束条件为线性函数的规划问题,线性函数的规划问题,MATLABMATLAB解决的线性规划问题的标准解决的线性规划问题的标准形式为:形式为: min min s.t s.t. . 12x H xfxAxbA eqxbeqlbxu b 其中其中f f、x x、b b、beqbeq、lblb、ubub为列向量,为列向量,A A、AeqAeq为矩阵,为矩阵,H H 为 对 称 矩 阵 ,为 对 称 矩 阵 , A . x bA . x b 为 线 性 不 等 式 约 束 条 件 ,为 线 性 不 等

18、 式 约 束 条 件 , Aeq.x=beqAeq.x=beq为线性等式约束条件,为线性等式约束条件, 1b x ub1b x ub为变量为变量x x的的取值范围。取值范围。 16:42:17MCM14 其它形式的二次规划问题经过适当的变换均可以化为其它形式的二次规划问题经过适当的变换均可以化为此标准形式。此标准形式。MATLABMATLAB提供解决此标准形式的二次规划的函提供解决此标准形式的二次规划的函数为数为quadprogquadprog,其最常用的调用格式为:,其最常用的调用格式为:x,fval = quadprog(H,f,A,b,Aeq,beq,lb,ubx,fval = quad

19、prog(H,f,A,b,Aeq,beq,lb,ub) ) % %返回最小值点返回最小值点x x和对应的最小值和对应的最小值fvalfval;H H、f f、A A、b b、AeqAeq、beqbeq、 lblb、ubub即标准形式中对应的向量或矩阵;若无某些约束条件,即标准形式中对应的向量或矩阵;若无某些约束条件, 调用时对应位置的参数均用调用时对应位置的参数均用 代替,例如无代替,例如无A.xbA.xb ,则调用,则调用 时的第时的第3 3、4 4个参数均用个参数均用 代替。代替。 如求解二次规划问题:如求解二次规划问题: min min s.t s.t. . 221212121xxx x

20、2 x6 x212121212222230,0 xxxxxxxx16:42:17MCM15 首先计算出目标函数中的矩阵首先计算出目标函数中的矩阵 和向量和向量 ,然后输入规划所涉向量或矩阵:然后输入规划所涉向量或矩阵:1-1H=-12-2f=-6 H=1 -1;-1 2;f=-2;-6; % H=1 -1;-1 2;f=-2;-6; %目标函数系数。目标函数系数。 A = 1 1; -1 2; 2 1;b = 2; 2; 3;lb = 0;0; A = 1 1; -1 2; 2 1;b = 2; 2; 3;lb = 0;0; % %不等式约束及下界。不等式约束及下界。然后调用然后调用quadp

21、rogquadprog函数:函数: x,fval=quadprog(H,f,A,b,lb x,fval=quadprog(H,f,A,b,lb,) ,) % %无等式约束条件。无等式约束条件。 x =x = 0.6667 0.6667 1.3333 1.3333 fval fval = = -8.2222 -8.222216:42:17MCM16 MATLAB MATLAB还提供了求解有非线性约束多元函数的最小值还提供了求解有非线性约束多元函数的最小值的函数的函数fminconfmincon,标准数学模型为:,标准数学模型为: s.ts.t. . )x( fminx( )0( )0C xCeq

22、 xA xbAeq xbeqlbxub16:42:17MCM17 其中:其中:x x、b b、beqbeq、lblb、ubub是列向量,是列向量,A A、AeqAeq为矩阵,为矩阵,C(xC(x) )、Ceq(xCeq(x) )是返回向量的函数,是返回向量的函数,f(xf(x) )为目标函数,为目标函数,C(xC(x) )、Ceq(xCeq(x) )一般为非线性函数。一般为非线性函数。C(x)0C(x)0一般为非线性不等式约一般为非线性不等式约束条件,束条件, Ceq(xCeq(x)=0)=0一般为非线性等式约束条件,一般为非线性等式约束条件,A.xbA.xb为为线性不等式约束条件,线性不等式

23、约束条件,Aeq.x=beqAeq.x=beq为线性等式约束条件,为线性等式约束条件,1b1b xubxub为变量为变量x x的取值范围。最常用的调用格式为:的取值范围。最常用的调用格式为:x,fvalx,fval = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) % %从初值从初值x0 x0开始搜索函数开始搜索函数funfun的最小值点和对应的最小值,并返的最小值点和对应的最小值,并返 回最小值点回最小值点x x和对应的最小值和对应的最小值fvalfval;x0 x0

24、需事先给定,格式同自需事先给定,格式同自 变量变量x x; A A、b b、AeqAeq、beqbeq、lblb、ubub即标准形式中对应的向量或即标准形式中对应的向量或 矩阵;矩阵;funfun为目标函数的文件名句柄或目标函数的表达式字符为目标函数的文件名句柄或目标函数的表达式字符 串。串。nonlconnonlcon为存放非线性约束条件中为存放非线性约束条件中C(xC(x) )和和Ceq(xCeq(x) )的文件名的文件名 句柄,该文件有固定的格式;若无某些约束条件,调用时对应句柄,该文件有固定的格式;若无某些约束条件,调用时对应 位置的参数均用位置的参数均用 代替,例如无代替,例如无A.

25、xb ,则调用时的第,则调用时的第3 3、4 4 个参数均用个参数均用 代替。代替。16:42:17MCM18如我们求解模型:如我们求解模型: s.ts.t. . 2123xmin x (x2)x2213123123x +x5x x x1001x ,x ,x10首先编写目标函数的函数首先编写目标函数的函数M M文件文件opt3.mopt3.m:function f=myfun(xfunction f=myfun(x) ) f=(x(1)2 f=(x(1)2* *(x(2)+2)(x(2)+2)* *x(3);x(3);再编写非线性约束的函数再编写非线性约束的函数M M文件文件mynonlcon

26、.mmynonlcon.m16:42:17MCM19function c,ceq=myfun(xfunction c,ceq=myfun(x) %) %固定格式:返回两个向量固定格式:返回两个向量c c、ceqceq, 分别存放非线性约束中的不等式约束函数及等式约束函数。分别存放非线性约束中的不等式约束函数及等式约束函数。c(1)=5-(x(1)2-(x(3)2; %c(1)=5-(x(1)2-(x(3)2; %两个非线性不等式约束;均要化为两个非线性不等式约束;均要化为 标准形式。标准形式。c(2)=x(1)c(2)=x(1)* *x(2)x(2)* *x(3)-100;x(3)-100;c

27、eqceq=; %=; %无非线性等式约束。无非线性等式约束。然后输入所涉矩阵或向量:然后输入所涉矩阵或向量: x0=2;2;2; % x0=2;2;2; %初值。初值。 lb=1;1;1;ub=10;10;10; % lb=1;1;1;ub=10;10;10; %上下界。上下界。调用调用quadprogquadprog函数:函数: x,fval x,fval=fmincon(opt3,x0,lb,ub,mynonlcon) =fmincon(opt3,x0,lb,ub,mynonlcon) x = %x = %无线性约束条件。无线性约束条件。1.00001.0000 1.0000 1.000

28、0 2.0000 % 2.0000 %最小值点。最小值点。fvalfval = = 6.0000 % 6.0000 %对应初值对应初值2;2;22;2;2附近的最小值,不一定为全局最小值。附近的最小值,不一定为全局最小值。16:42:17MCM20 MATLAB MATLAB优化工具箱中还有解决多目标达到问题的优化工具箱中还有解决多目标达到问题的fgoalattainfgoalattain,解决最大最小化问题的,解决最大最小化问题的fminimaxfminimax,以及解决,以及解决半无限问题的半无限问题的fseminffseminf等优化函数。此外还有许多求解方程等优化函数。此外还有许多求解

29、方程和最小二乘问题的函数,如下表所示。和最小二乘问题的函数,如下表所示。函数函数功能功能函数函数功能功能 线性方程组求解线性方程组求解lsqlinlsqlin有约束线性最小二乘有约束线性最小二乘fsolvefsolve非线性方程组求解非线性方程组求解lsqcurvefitlsqcurvefit非线性曲线拟合非线性曲线拟合fzerofzero非线性方程求解非线性方程求解lsqnonlinlsqnonlin非线性最小二乘非线性最小二乘 线性最小二乘线性最小二乘lsqnonneglsqnonneg非负线性最小二乘非负线性最小二乘 表表10.910.916:42:18MCM21 以上只是对优化工具箱的

30、简单介绍,各函数的详细用以上只是对优化工具箱的简单介绍,各函数的详细用法请参照在线帮助系统。熟练使用各函数还需对各种优化法请参照在线帮助系统。熟练使用各函数还需对各种优化参数参数optionsoptions深入了解,并掌握进行参数设置的深入了解,并掌握进行参数设置的optimgetoptimget、optimsetoptimset函数。函数。16:42:18MCM22习习 题题 10101 1将将roundround等舍入函数分别作用于实数等舍入函数分别作用于实数-1.9-1.9、-1.1-1.1、 1.11.1、1.91.9,讨论各舍入函数的区别。,讨论各舍入函数的区别。2 2求求 的实部、

31、虚部、共轭的实部、虚部、共轭 及模。及模。223(32)sin(ln(56 )ei3 3利用冒号表达式或利用冒号表达式或linspacelinspace函数生成两个维数相同的行函数生成两个维数相同的行 向量向量(1(1,3 3,5)5)和和(7(7,8 8,9)9),求两个向量的最大值,最,求两个向量的最大值,最 小值,平均值,中位数,排序,总和值,连乘值,累积小值,平均值,中位数,排序,总和值,连乘值,累积 总和值,累积连乘值;在两个行向量间实施加减乘除及总和值,累积连乘值;在两个行向量间实施加减乘除及 幂等运算;并求两向量的点积和叉积;在向量幂等运算;并求两向量的点积和叉积;在向量(1(1,3 3,5)5) 与标量与标量2 2之间实施加减乘除及幂等运算。之间实施加减乘除及幂等运算。16:42:18MCM234 4分别利用函数分别利用函数eyeeye、zeroszeros、onesones生成生成3 33 3,2 23 3,4 43 3 的单位阵、全的单位阵、全0 0阵和全阵和全1 1阵。阵。5

温馨提示

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

评论

0/150

提交评论