文档库 最新最全的文档下载
当前位置:文档库 › MATLAB在极值问题研究中的应用

MATLAB在极值问题研究中的应用

MATLAB在极值问题研究中的应用
MATLAB在极值问题研究中的应用

1.引言

1.1 问题的提出

函数的极值问题不但是培养学生发展的重点问题,也是实际生活中应用较为广泛的问题。在历届的高考试题中,求解函数极值都是考试的重点,并且所占分值比重较大。而在我们实际生活中,经常会遇到以下一些问题。例如,怎样才运输才能使运费最省;怎样使用一定面积的包装纸使得得到的包装盒容积最大等等。为了使利益最大化,我们必须要让生产的费用最小,从而得到最大的利润。这样的实际生活问题就用到了更为复杂的求解极值问题的方法。那对于求解极值的方法,除了利用数学知识,还可以利用MATLAB软件。MATLAB软件是由美国公司开发的,集数值计算、图形可视化和符号处理于一身的软件,利用MATLAB强大的绘图功能,可以将复杂的极值问题快速解决。

1.2研究目的

本文将通过一元函数及多元函数在不同情况下求解极值的方法,延伸到实际生活中去。企业经营者经常采用求解极值的办法使商品获得的利润最大,并尽可能的降低成本。而对于工厂来说,合理的计算利用极值问题,不但可以使利益最大化,更重要的是保护了我们赖以生存的家园,这对于整个人类来说是是意义非凡的。而解决极值问题的方法一直是我们积极探索的内容,本文将利用MATLAB程序降低计算极值问题的难度。

1.3研究意义

函数的极值问题在生活中应用非常广泛。在生产商生产销售货物时可以用到;在建造楼房考虑光照面积是可以用到;在治理环境问题是也可以用到,在航天、航海、价格策划等众多领域中都可以用到,并且起着不可替代的作用。许多问题最终都可以归结为函数的极值问题,而我们除了用原始的数学方法,还可用MATLAB程序软件来快速的解决这些问题,这也是我们研究MATLAB在极值问题中的应用的意义。

2.函数极值的定义

2.1一元函数极值的定义

设函数在附近有定义,如果对附近的所有的点都有,则是的极大值。如果附近所有的点都有,则时的极小值,极大值与极小值统称为极值。

2.2多元函数极值的定义

若多元函数于的邻域内有定义,并且当时,,则说函数在处取得极大值(或极小值),点称为

函数的极值点。

3.MATLAB在一元函数极值中的应用

3.1一元函数利用数学知识求解极值的方法

在高中的时候我们简单学习了一元函数求极值的办法。首先对一元函数进行求导,令导函数等于零。导函数等于零时,得到的值称为驻点。原函数在驻点对应的值为极值(驻点个数不唯一)。而得到的导函数在定义域内大于零的部分称为增函数,小于零的部分称为减函数。函数先增后减在拐点产生的值称为极大值,函数先减后增在拐点产生的值称为极小值。极大值和极小值统称为极值。

例1.求函数的极值。

解:先对原函数求导,得到:

若,则。所以为原函数的极值点,且是唯一的极值点。

将代入原函数中,得。即是原函数的极值,极值点为。

例2.求函数的极值。

解:先对原函数求导,得到:

若=0,则。所以是原函数的极值点。

在区间(-∞,-)∪(1,+∞)上单调递增,在区间(-,1)上单调递减。所以为原函数的极大值点,为原函数的极小值点。

将代入原函数,,所以原函数的极大值为;

将代入原函数,所以原函数的极小值为4。

在解决一元函数极值问题的时候可以采用以上的数学方法,但过程较为复杂,所以我们也可以利用MATLAB强大的绘图功能来解决一元函数的极值问题。

3.2利用MATLAB程序求解一元函数极值的方法

MATLAB中可以利用特殊函数diff快速地求出原函数的导函数,diff函数对一元函数的调用格式为:

diff(函数),求的一阶导数。

再利用solve函数求得函数驻点,在驻点范围内得到函数图像。根据函数的拐点观察函数极值。

例3.求函数的极值。

解:先利用diff函数求出导函数,再利用solve函数求得驻点。根据ezplot函数作图,从图中观察得到原函数的极值。

详见附录程序1

程序得到的图见图(1)

图(1)

根据MATLAB运行出来的图形可以看出,函数的极值点为,极小值为。

例4.求函数的极值。

解:先利用diff函数求出导函数,再利用solve函数求得驻点。根据ezplot函数作图,从图中观察得到原函数的极值。

详见附录程序2

程序得到的图见图(2)

图(2)

由MATLAB程序运行出来的图可以看出,函数的极小值点为,极小值为;极大值点为,极大值为。

4.MATLAB在多元函数极值中的应用

4.1多元元函数利用数学知识求解极值的方法。

多元函数求极值相对一元函数求极值要复杂很多。而其数学意义难以理解,所以称为高数中颇为重要的一部分。我们首先利用数学知识来对多元函数进行求解极值。

根据一元函数求极值的方法,我们首先求原函数的一阶偏导,导函数为零时求得驻点。再对导函数求二阶偏导,得到

例1.求多元函数的极值。

解先对原函数求一阶偏导,得到

令一阶偏导函数等于零,求得驻点为(1,0),(-3,0),(1,4),(-3,4).

再求原函数的二阶偏导,得到

所以,当时,,且,因此,点(1,0)是极值点,且在(1,0)处取得极小值,。

当时,,且,因此(-3,0)不是极值点。

当时,,且,因此(1,4)不是极值点。

当时,,且,因此,点(-3,4)是极值点,且在(-3,4)处取得极大值,。

由上可知,原函数的在(-3,4)处取得极大值,极大值,在(1,0)处取得极小值,极小值。

例2.求函数的极值。

先对原函数求一阶偏导,得

令一阶偏导函数等于零,求得驻点。

再求原函数的二阶偏导,得

当时,,因此原函数在点处取得极小值。

4.2利用MATLAB程序求解多元函数极值的方法

首先利用jacobian函数求出原函数的一阶偏导和二阶偏导,再利用solve函数求得一阶函数驻点。根据Hessian矩阵的正定矩阵和负定矩阵公式,求得原函数的极大值和极小值。例3.利用MATLAB程序求的极值。

详见附录程序3

利用MATLAB程序运行得到结果

xx =

1

-4

1

-4

yy =

2

2

( 1.000000, 0.000000)是极小值点,对应的极小值为-13.000000

(-4.000000, 0.000000)不是极值点

( 1.000000, 2.000000)不是极值点

(-4.000000, 2.000000)是极大值点,对应的极大值为-13.000000

根据MATLAB运行的程序可知,极值点为(1,0),(-4,0),(1,2),(-4,2),且(1,0)是极小值点,极小值为-13;(-4,0),(1,2)不是极值点;(-4,2)是极大值点,对应的极大值为-13.

例4.求函数的极值。

详见附录程序4

利用MATLAB程序运行得到结果

xx =

601^(1/2)/12 - 5/12

- 601^(1/2)/12 - 5/12

601^(1/2)/12 - 5/12

- 601^(1/2)/12 - 5/12

yy =

4

4

( 1.626275, 0.000000)不是极值点

(-2.459608, 0.000000)是极大值点,对应的极大值为-11.908213

( 1.626275, 4.000000)是极小值点,对应的极小值为-11.908213

(-2.459608, 4.000000)不是极值点

根据MATLAB运行程序可以得到,方程极值点为(1.63,0),(1.63,4),(-2.46,0),(-2.46,4),且(-2.46,0)为极大值点,极大值为-11.91;(1.63,4)为极小值点,极小值为-11.91;

(1.63,0),(-2.46,4)不是极值点。

4.3约束函数求解多元极值的方法

在考虑函数的极值或最值问题时,经常需要对函数的自变量附加一定的条件,这就是所谓的极值问题。

以三元函数为例,条件极值问题的提法是:求目标函数

在约束条件

下的极值。

条件极值的必要条件若点为函数满足约束条件的极值点,则必存在m个常数使得在点成立

于是可以将Lagrange函数

那么条件极值点就在方程组

的所有解所对应的点中。

判断如上所得的点是否极值点需要一些特殊方法。但在实际问题中往往遇到的是求最值问题,这时可以根据问题本身的性质判断最值的存在性。这样,只要把如上所得点的函数值加以比较,最大的(最小的)就是所考虑问题的最大值(最小值)。

4.3.1利用数学方法求解约束函数求解极值的问题。

例1.求平面

与椭球面

相交成的椭圆的面积。

解椭圆的面积为,其中分别为椭圆的两个半轴。因为椭圆的中心在原点,所以分别是椭圆上的点到原点最大距离和最小距离。

于是

在约束条件

下的最大值和最小值。

作Lagrange函数

得到相应的方程组

将方程乘,方程乘,方程乘后相加,得到

因此或。

分两种情况讨论:

(1)当时,将以上方程组的前三个式子相加得到

但此时(否则从得到,这不是椭圆上的点),因此。

带入方程组

就得的两组解

在这两个点的值都是1。

(2)当时,从方程组的前三个式子得到

,,

代入得,它对应的的两组解为

在这两个点的值都是。

由于椭圆的长轴与短轴一定存在,因此在椭圆

上的最大值与最小值一定存在,于是立即得到该椭圆的半长轴为1,短轴为,面积为。

4.3.2利用MATLAB软件求解约束函数极值问题。

例1.求解二次规划

s.t.

利用MATLAB编程

详见附录程序5

利用MATLAB程序运行得到结果

x =

1.9500

1.0500

value =

-11.0250

可以求得

例2.求下列非线性规划

s.t.

利用MATLAB编程

定义增广目标函数,编写M函数test1.m如下:

详见程序6

得到结果

x =

1.0786

0.9599

y =

10.0848

可以求得

5.MATLAB求极值问题在实际问题中的应用

函数的极值在实际生活中应用非常广泛,企业的最大利润和最小成本问题就是比较常见的极值问题,例如商场卖衣服,价格定高了销量就会相应减少,若价格太低了商场又无法保证正常的运营,这时就会利用极值问题来解决这类问题。而且,生产商也要考虑在材料最节省的前提下,尽可能多的制造出更多的商品。这也就是我们常说的材料节省问题。这里,我们仍然运用极值问题来解决这类问题。随着工业化进程的推进,如何在满足环保的要求下,化工厂每天处理多少污水才能使处理污水达到的总费用最低,还有随着社会的进步和经济的快速发展,人们面对丰富的食物,却忽视了合理的膳食结构和营养搭配。而营养搭配问题就成为了许多动植物养殖者比较关注的问题。例如,如何给自己的动植物配置合理的饲料或肥料才能使它们生长的快,从而使利益最大化等等这些问题,都用到了极值问题。但在求解极值问题的时候,数学方法往往需要花费大量的时间和精力去计算,这时,我们就用到了文章中所提到的MATLAB软件来解决这类复杂的问题。

5.1最大利润和最小成本问题

随着社会的发展,销售、购买已经是人们生活中必不可少的部分。而销售部门最注重的是如

何使营业额达到最大,从而产生最大的利益。但若是单纯的提高商品的售价,会让部分的顾客望而却步,使得商品的销售量降低;而若是降低价格,销售部门又无法从中获取利益使得销售链持续运转。这时,我们就用到了文中提到的极值问题来使利益最大化,我们所采用的方法也是大幅度降低计算量的MATLAB程序。

例1.已知某商场外套的进价为每件50元,售价是每件80元,每个月可卖出400件。市场调查研究后反映如下:如果调整价格,每涨价一元,每个月要少卖10件。那么每件外套应该定价多少元时,商场才能获得最大的利润?

根据题意知,

因此,当时,取得最大值,

这样的问题我们也可以利用MATLAB软件进行求解。

详见附录程序7

程序得到的图见图(3)

图(3)

根据MATLAB程序运行出来的图形,我们可以通过观察得到,方程的极值点为,极大值为。

5.2材料最省问题

在实际生活中,我们经常会利用原材料去生产某些商品。例如,我们生活中所用的各种形状的塑料盒,我们身上所穿的色彩鲜艳款式多样的衣服,我们住的各种样式的房子等等,这些都需要最基本的原材料。可是我们所要考虑的问题是,我们应该怎样做才能减少原材料的使用,而使商品以最方便美观的形式呈现在我们面前。这一模块,我们采用MATLAB软件,目的是使原材料的利用率最大化,从而减少材料的使用。

例2.每一年的圣诞节都是年轻人最开心的时刻,在这一天都会给心爱的人买一个盒巧克力。此时也是生产商找寻商机的时刻。生产商把边长为5分米的正方形纸盒剪去四个正方形的角以制成一个方形无盖纸盒,问如何剪使纸盒的容积最大?

设剪去的正方形的边长为分米,则纸盒的容积为,

建立函数模型:

详见附录程序8

利用MATLAB程序运行得到结果

xmax =

0.8333

gt; gt; fmax=-fval

fmax =

9.2593

根据MATLAB程序的运行结果可以得知,当正方形的边长剪去0.83分米的时候,纸盒的容积最大为9.2593平方分米。

5.3河水治理问题

随着社会的发展和科学的进步,我们一直在追求更方便更快捷的生活方式。可是,当我们的生活更便捷的同时,我们赖以生存的水资源却在日益减少。每年化工原料污染的水资源量都在增加。化工厂的原料、产品和副产品大都是难生物降解有机物,一般的污水处理工艺很难进行处理,若是化工厂的废水未达标排放或是偷排入自然界,会危害水体和土壤环境,同时对人类健康会有更为严重的危害。化工厂生产的化学品若是挥发性比较强的物质,如强酸类或是易挥发有机物,则会污染周边大气环境,若是这些含有有毒有害物质的气体被人体呼入,对人类的健康损害更为严重。此时,河水治理问题已是刻不容缓。但在处理废水的同时,我们仍然要考虑如何快速有效的治理废水,这也就用到了我们的最值原理。

例3.某河流流经第一个化工厂的河水流量是每天500万立方米;支流每天的流量是200万立方米;第一个化工厂每天排出2万立方米的工业污水;第二个化工厂每天排出1.4万立方米的工业污水;第一个化工厂处理每立方米的费用是0.1元,第二个化工厂处理每立方米的污水费用是0.08元;从第一个化工厂派出的污水流到第二个化工厂之前有20%得到自然净化。

设第一个化工厂每天处理工业污水万立方米,第二个化工厂每天处理污水万立方米,两工厂处理污水的总费用用为z万元。

详见附录程序9

利用MATLAB程序运行得到结果

x =

0.2500

1.4000

fval =

1.3700

根据MATLAB运行出的结果可知,第一个化工厂每天处理废水0.25万立方米,第二个化工厂每天处理废水1.4万立方米,两工厂每天处理废水的总费用为1.37万元。

6.结论

通过对函数极值问题的学习,我们知道了函数极值问题在生活中的各个方面都得到很大的应

用,而利用MATLAB程序可以避免大量计算时出现的错误,从而快速得出结果。在利用MATLAB程序时,主要运用了一下几个方面:

(1)diff函数的调用;

(2)solve函数的输出;

(3)编写M文件;

(4)jacobian函数的编程;

(5)Hessian函数的运用。

致谢

四年的大学生涯转眼就要就要画上一个句号了,但这不仅仅意味着一段旅程的结束,也是下一段旅程的起始。四年的生活转瞬即逝,很感激自己在这四年的过程中得到了身边朋友,师长以及亲人的鼓励和帮助,我也真的学到了很多东西。在论文即将结束的时候,我的内心久久不能平静,想到了很多,也许是毕业的不舍,但更多的感谢在本次论文撰写的过程中一直鼓励帮助我的各位老师和同学,在这里,最想感谢的就是我的指导教师高海音老师,最开

始接到论文题目的时候脑袋里几乎称得上一片空白,是高老师在我最没有头绪的时候一直不辞辛劳的帮我查阅资料,而且一直认真地帮助我修改论文,提出了很多宝贵的意见和建议,让我的论文能够保质保量的完成。在我大学四年的学习生活中,遇到过很多的挫折和困难,感激我的系主任和各位老师,一直在我身边鼓励我前行,从不放弃。同时,我还要感谢我身边的朋友们,我们在一起的时间是最长的,生活中帮助了我太多太多,我们一起成长,一起欢笑,那些记忆都是我日后最美好的东西。最后,我还要感谢我的父母,感谢他们这么多年来从未轻易放弃我,是他们的爱伴随着我成长,在此,我想对所有一直陪伴我的人说:“谢谢你们!”

参考文献

[1] 司守奎,孙玺菁. 数学建模算法与应用. 国防工业出版社,2014,6:22~26

[2] 刘峰,葛照强. 数学建模. 南京大学出版社,2005:141~145

[3] 张秀兰,林峰. 数学建模与实验. 北京工业出版社,2013:34~37

[4] 赵静,但琦,严尚安,杨秀文. 数学建模与数学实验. 高等教育出版社,2008:37~42

[5] 陈纪修,於崇华,金路. 数学分析. 高等教育出版社,2000:206~211

[6]Si Shoukui,Sun Xijing. Mathematical modeling algorithm and its application. National Defence Industry Press ,2014,6:22~26

[7]Liufeng,Ge Zhaoqiang. Mathematical modeling. Nanjing University Press,2005:141~145

[8]Zhang Xiulan,Linfeng. Mathematical modeling and experiment. Beijing Industry Press,2013:34~37

[9]Zhaojing,Danqi,Yan Shangan,Yang Xiuwen. Mathematical modeling and mathemati. Higher Education Press,2008:37~42

[10]Chen Jixiu,Yu Chonghua,Jinlu. mathematical analysis. Higher Education Press,2000:206~211

实验五 用matlab求二元函数的极值

实验五 用matlab 求二元函数的极值 1.计算二元函数的极值 对于二元函数的极值问题,根据二元函数极值的必要和充分条件,可分为以下几个步骤: 步骤1.定义二元函数),(y x f z =. 步骤2.求解方程组0),(,0),(==y x f y x f y x ,得到驻点. 步骤3.对于每一个驻点),(00y x ,求出二阶偏导数 22222,,.z z z A B C x x y y ???===???? 步骤4. 对于每一个驻点),(00y x ,计算判别式2B AC -,如果02>-B AC ,则该驻点是 极值点,当0>A 为极小值, 0>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans =4*x^3-8*y ans =-8*x+4*y

MATLAB在自动控制原理中的应用

本论文主要研究如何根据用户要求的性能指标进行自动控制系统的串联校正设计,而此设计又具有很重要的现实意义。对于给定的线性定常系统,我们通常通过加入串联超前、滞后或超前滞后综合校正装置,以达到提高系统的精度和稳定性的目的。本文将给出基于频率特性法串联校正的具体设计方法,同时对该课题中的控制系统模型进行仿真。本设计可实现如下功能:对一个线性定常系统,根据需求的性能指标,通过本设计可给出系统的串联校正网络,从绘制出的各种响应曲线可以直观地将校正前后的系统进行比较,而仿真实例结果也进一步表明了此设计方法有效性和实用性。 关键词:串联校正;根轨迹;频率特性法;MATLAB 1.1研究目的 在实际工程控制中,往往需要设计一个系统并选择适当的参数以满足性能 指标的要求,或对原有系统增加某些必要的元件或环节,使系统能够全面满足 性能指标要求,此类问题就称为系统校正与综合,或称为系统设计。 当被控对象给定后,按照被控对象的工作条件,被控信号应具有的最大速 度和加速度要求等,可以初步选定执行元件的形式、特性和参数。然后,根据 测量精度、抗扰能力、被测信号的物理性质、测量过程中的惯性及非线性度等 因素,选择合适的测量变送元件。在此基础上,设计增益可调的前置放大器与 功率放大器。这些初步选定的元件以及被控对象适当组合起来,使之满足表征 控制精度、阻尼程度和响应速度的性能指标要求。如果通过调整放大器增益后 仍然不能全面满足设计要求的性能指标,就需要在系统中增加一些参数及特性 可按需要改变的校正装置,使系统能够全面满足设计要求,这就是控制系统设 计中的校正问题。系统设计过程是一个反复试探的过程,需要很多经验的积累。MATLAB为系统设计提供了有效手段。 1.2相关研究现状 系统仿真作为一种特殊的实验技术,在20世纪30-90年代的半个多世纪中经历了飞速发展,到今天已经发展成为一种真正的、系统的实验科学。自动控制系统仿真是系统仿真的一个重要分支,它是一门设计自动控制理论、计算机数学、计算机技术、系统辩识以及系统科学的综合性新型学科。它为控制系统的分析、计算、研究、综合设计以及自动控制系统的计算机辅助教学等提供了快速、经济、

用MATLAB求极值

用MATLAB求极值 灵活的运用MATLAB的计算功能,可以很容易地求得函数的极值。 例3.6.1 求 2 2 344 1 x x y x x ++ = ++ 的极值 解首先建立函数关系: s yms s y=(3*x^2+4*x+4)/( x^2+x+1); ↙然后求函数的驻点: dy=diff(y); ↙ xz=solve(dy) ↙ xz= [0] [-2] 知道函数有两个驻点x 1=0和x 2 =-2,考察函数在驻点处二阶导数的正负情况: d2y=diff(y,2); ↙ z1=limit(d2y,x,0) ↙z1= -2 z2=limit(d2y,x,-2) ↙z2= 2/9 于是知在x 1=0处二阶导数的值为z 1 =-2,小于0,函数有极大值;在x 2 =-2处二阶导数的值 为z 2 =2/9,大于0,函数有极小值。如果需要,可顺便求出极值点处的函数值: y 1 =limit(y,x,0) ↙ y 1 = 4 y 2 =limit(y,x,-2) ↙ y 2 = 8/3 事实上,如果知道了一个函数的图形,则它的极值情况和许多其它特性是一目了然的。而借助MA TLAB的作图功能,我们很容易做到这一点。 例3.6.2画出上例中函数的图形 解syms x ↙ y=(3*x^2+4*x+4)/( x^2+x+1); ↙得到如下图形 ezplot(y) ↙

如何用MATLAB求函数的极值点和最大值 比如说y=x^3+x^2+1,怎样用matlab来算它的极值和最大值? 求极值: syms x y >> y=x^3+x^2+1 >> diff(y) %求导 ans = 3*x^2 + 2*x >> solve(ans)%求导函数为零的点 ans = -2/3 极值有两点。 求最大值,既求-y的最小值: >> f=@(x)(-x^3-x^2-1)

matlab在机械控制中的应用

Matlab在机械工程控制中的应用 姓名:xxx 学号:2010232 专业:机械制造及其自动化

Matlab在机械工程控制中的应用 摘要:MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 一、机械工程控制简介 机械控制工程是研究控制论在机械工程中应用的科学。它是一门跨控制论和机械工程的边缘学科。随着工业生产和科学技术的不断向前发展,机械工程控制论这门新兴学科越来越为人们所重视。他不仅满足今天自动化技术高度发展的需要,同时也与信息科学和系统科学紧密相关,更重要的是它提供了辩证的系统分析方法,即不但从局部,而且从整体上认识和分析机械系统,改进和完善机械系统,以满足科技的发展和工业生产的实际需要。 1.1机械工程控制论的研究对象与任务 机械工程控制论的研究对象是机械工程技术中广义系统的动力学问题。具体地讲,机械控制路是研究系统及其输入、输出三者之间的动态关系,也就是研究机械工程广义系统在一定的外界条件下,从系统的一定初始条件出发,所经历有内部的固有属性所决定的整个动态历程。就系统及其输入、输出三者之间动态关系而言,机械工程控制论的任务主要研究一下几方面的为题: (1)当系统已定,输入已知时,求出系统的输出(响应),并通过输出来研究系统本身的有关为题,称系统分析。 (2)当系统已定,系统的输出也已给定是,要确定系统的输出尽可能符合给定的最佳要求,称系统的最优控制。 (3)当输入已知输出也一给定时,要确定系统,使其可能符合给定的最佳要求,称最优设计。 (4)当输入和输出均已知时,求系统的结构参数,即建立系统的数学模型,称系统的便是或系统识别。 (5)当系统已定输出已知时,要识别输出输出输入的有关信息,成滤波与预测。

实验3 Matlab 符号运算及求函数极值

实验3 Matlab 符号运算及求函数极值一、实验目的和要求 掌握用Matlab软件进行符号运算以及求函数的极值。 二、实验环境 Windows系列操作系统,Matlab软件。 三、实验内容 1.用MATLAB进行符号运算; 2.编程求函数的极值。 四、实验步骤 3.开启软件平台——Matlab,开启Matlab编辑窗口; 4.根据求解步骤编写M文件; 5.保存文件并运行; 6.观察运行结果(数值或图形); 7.根据观察到的结果和体会写出实验报告。 五、示例 1.计算一元函数的极值 例1求 2 2 344 1 x x y x x ++ = ++ 的极值 解首先建立函数关系: s yms x y=(3*x^2+4*x+4)/( x^2+x+1); 然后求函数的驻点: dy=diff(y); xz=solve(dy) xz= [0] [-2] 知道函数有两个驻点x 1=0和x 2 =-2, 接下来我们通过考察函数的图形,则它的极值情况和许多其它特性是一目了然的。而借助MATLAB的作图功能,我们很容易做到这一点。 例2 画出上例中函数的图形

解 syms x y=(3*x^2+4*x+4)/( x^2+x+1); 得到如下图形 ezplot(y) 2.计算二元函数的极值 MATLAB 中主要用diff 求函数的偏导数,用jacobian 求Jacobian 矩阵。 例1 求函数42823z x xy y =-+-的极值点和极值. 首先用diff 命令求z 关于x,y 的偏导数 >>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans =4*x^3-8*y ans =-8*x+4*y 即348,84z z x y x y x y ??=-=-+??再求解方程,求得各驻点的坐标。一般方程组的符号解用solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解方程的MA TLAB 代码为:

matlab自定义函数与极值求法

实验5 matlab 自定义函数与导数应用 实验目的 1.学习matlab 自定义函数. 2.加深理解罗必塔法则、极值、最值、单调性. 实验内容 1.学习matlab 自定义函数及求函数最小值命令. 函数关系是指变量之间的对应法则,这种对应法则需要我们告诉计算机,这样,当我们输入自变量时,计算机才会给出函数值,matlab 软件包含了大量的函数,比如常用的正弦、余弦函数等.matlab 允许用户自定义函数,即允许用户将自己的新函数加到已存在的matlab 函数库中,显然这为matlab 提供了扩展的功能,无庸置疑,这也正是matlab 的精髓所在.因为matlab 的强大功能就源于这种为解决用户特殊问题的需要而创建新函数的能力.matlab 自定义函数是一个指令集合,第一行必须以单词function 作为引导词,存为具有扩展名“.m ”的文件,故称之为函数M -文件. 函数M -文件的定义格式为: function 输出参数=函数名(输入参数) 函数体 …… 函数体 一旦函数被定义,就必须将其存为M -文件,以便今后可随时调用.比如我们希望建立函数12)(2++=x x x f ,在matlab 工作区中输入命令: syms x ;y=x^2+2*x+1; 不能建立函数关系,只建立了一个变量名为y 的符号表达式,当我们调用y 时,将返回这一表达式. y ? y=x^2+2*x+1 当给出x 的值时,matlab 不能给出相应的函数值来. x=3;y ? y=x^2+2*x+1 如果我们先给x 赋值. x=3;y=x^2+2*x+1 得结果:y=16 若希望得出2|=x y 的值,输入: x=2;y ? 得结果:y=16,不是2=x 时的值.读者从这里已经领悟到在matlab 工作区中输入命令:y=x^2+2*x+1不能建立函数关系,如何建立函数关系呢?我们可以点选菜单Fill\New\M-fill 打开matlab 文本编辑器,输入: function y=f1(x) y=x^2+2*x+1; 存为f1.m .调用该函数时,输入: syms x ;y=f1(x)?

Matlab在自动控制中的应用教学内容

M a t l a b在自动控制中 的应用

MATLAB在控制理论中的应用 摘要:为解决控制理论计算复杂问题,引入了MATLAB。以经典控制理论和现代控制理论中遇到的一些问题为具体实例,通过对比的手法,说明了MATLAB在控制理论应用中能节省大量的计算工作量,提高解题效率。 引言:现代控制理论是自动化专业一门重要的专业基础课程,内容抽象,且计算量大,难以理解,不易掌握。采用MATLAB软件计算现代控制理论中的问题可以很好的解决这些问题。自动控制理论分为经典控制理论和现代控制理论,在控制理论学习中,经常要进行大量的计算。这些工作如果用传统方法完成,将显得效率不高,额误差较大。因此。引用一种借助于计算机的高级语言来代替传统方法就显得十分必要。MATLAB集科学计算,可视化,程序设计于一体,对问题的描述与求解较为方便,在控制理论的学习中是一种备受欢迎的软件。 MATLAB简介:MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 1、MATLAB在系统的传递函数和状态空间模型之间的相互转换的应用:例1:求以下状态空间模型所表示系统的传递函数: 解:执行以下的M-文件:

matlab实验六 多元函数的极值

实验六多元函数的极值 【实验目的】 1.了解多元函数偏导数的求法。 2.了解多元函数极值的求法。 3.了解多元函数条件极值的求法。 4.学习、掌握MATLAB软件有关的命令。 【实验内容】 求函数42 =-+-的极值点和极值。 823 z x xy y 【实验准备】 1.计算多元函数的极值 2.计算二元函数在区域D内的最大值和最小值 3.求函数偏导数的MATLAB命令 MATLAB中主要用diff求函数的偏导数,用jacobian求Jacobian 矩阵。 diff(f,x,n)求函数f关于自变量x的n阶导数。 jacobian(f,x)求向量函数f关于自变量x(x也为向量)的jacobian 矩阵。 【实验重点】 1、多元函数的偏导数计算 2、多元函数极值的计算 【实验难点】 1、多元函数极值的计算

【实验方法与步骤】 练习1 求函数42823z x xy y =-+-的极值点和极值。首先用diff 命令求z 关于x,y 的偏导数 >>clear;syms x y; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans=4*x^3-8*y ans=-8*x+4*y 即348,84z z x y x y x y ??=-=-+??再求解正规方程,得各驻点的坐标。一般方程组的符号解用solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解正规方程的MATLAB 代码为 >>clear; >>[x,y]=solve('4*x^3-8*y=0','-8*x+4*y=0','x','y') 结果有三个驻点,分别是P(-2,-4),Q(0,0),R(2,4)。下面再求判别式中的二阶偏导数: >>clear;syms x y; >>z=x^4-8*x*y+2*y^2-3; >>A=diff(z,x,2) >>B=diff(diff((z,x),y)) >>C=diff(z,y,2)

Matlab优化(求极值)

第七讲 Matlab 优化(求极值) 理论介绍:算法介绍、软件求解. 一.线性规划问题 1.线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小值的问题,Matlab 中规定线性规划的标准形式为 min s.t.T x c x Ax b Aeq x beq lb x ub ≤?? ?=??≤≤? 其中c 和x 为n 维列向量,A 、Aeq 为适当维数的矩阵,b 、beq 为适当维数的列向量。注意:线性规划问题化为Matlab 规定中的标准形式。 求解线性规划问题的Matlab 函数形式为linprog(c,A,b),它返回向量x 的值,它的具体调用形式为: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,x0,OPTIONS) 这里fval 返回目标函数的值,LB 、UB 分别是变量x 的下界和上界,x0是x 的初始值,OPTIONS 是控制参数。 例1 求解线性规划问题 1231231 23123123max 23572510s.t.312,,0 z x x x x x x x x x x x x x x x =+-++=??-+≥??++≤??≥? 程序:c=[2;3;5]; >> A=[-2,5,-1;1,3,1];b=[-10;12]; >> Aeq=[1,1,1];beq=[7]; >> LB=[0;0;0];(zeros(3,1)) >> [x,fval]=linprog(c,A,b,Aeq,beq,LB,[]) 练习与思考:求解线性规划问题

12312312123 min 23+428 s.t.3+26,,0z x x x x x x x x x x x =+++≥?? ≥??≥? 注意:若没有不等式:b AX ≤存在,则令A=[ ],b=[ ]. 若没有等式约束, 则令Aeq=[ ], beq=[ ]. 2.可以转化为线性规划的问题 规划问题12min||+||++||s.t.,n x x x Ax b ≤L 其中1=[],T n x x x L ,A b 为相应维数的矩阵和向量。注意到对任意的i x 存在,>0i i u v 满足=-,||=+i i i i i i x u v x u v ,事实上只要取 +||||-= ,=22 i i i i i i x x x x u v 就可以满足上面的条件。 这样,记11=[],=[],T T n n u u u v v v L L 从而可以把问题变成 =1min (+) (-)s.t.,0 n i i i u v A u v b u v ≤?? ≥?∑ 例2 求解规划问题min{max||}i i i x y ε,其中=-.i i i x y ε 对于这个问题,如果取0=lim||i i y x ε,这样,上面的问题就变换成 01100min s.t.-,,-n n x x y x x y x ≤≤L 这是我们通常的线性规划问题。 练习与思考:规划问题 1234123412341234min ||2||+3||+4||--+=0s.t.-+-3=11--2+3=-2 z x x x x x x x x x x x x x x x x =+? ?? ???? 二.非线性一元函数的最小值 对于求一元函数的最小值问题,Matlab 提供了一个命令函数fminbnd ,

MATLAB在控制系统中应用

MATLAB在控制系统中应用 部门: xxx 时间: xxx 制作人:xxx 整理范文,仅供参考,可下载自行修改

MATLAB在控制系统中的应用 [摘要]:MATLAB具有编程简单直观,开放性强等优点,能有效提高 控制系统的工作效率,是控制系统中一种很好的工具。MATLAB 除了 传统的交互式编程之外,还提供丰富可靠的矩阵运算、图形绘制、 数据处理、方便的Windows 编程等便利工具,出现了各种以MATLAB 为基础的实用工具箱, 广泛地应用于自动控制、图像信号处理、生 物医学工程、语音处理、雷达工程、信号分析、振动理论、时序分 析与建模、化学统计学、优化设计等领域。并显现出一般高级语言 难以比拟的优势。 关键词:MATLAB 应用软件;控制系统设计;离散系统设计;仿 真;应用 一、控制系统的主要内容 <1)线性控制系统的数学模型 目前大部分控制系统分析设计的算法都需要假设系统的模型已知,而获得数学模型有两种方法:其一是从已知的物理规律出发,用数学推导的方法建立起系统的数学模型,另外一种方法是由实验数据拟合系统的数学模型。一般线性系统控制理论科学和研究中,经常将控制系统分为连续系统和离散系统,描述线性连续系统常用的描述方式是传递函数和状态方程,相应地离散系统可以用离散传递函数和离散状态方程表示。除了这两种描述方法以外,还常用零极点形式来表示连续线性系统模型。b5E2RGbCAP <2)线性系统的传递函数模型

连续动态系统一般是由微分方程来描述的,而线性系统又是以线性常微分方程来描述的。当系统用传递函数表示如下所示时:p1EanqFDPw 在MATLAB 中可以分别表示完分子和分母多项式后,再利用控制系统工具箱的tf<)函数就可以用一个变量表示传递函数G :DXDiTa9E3d >>];,,...,,[121+=m m b b b b num ]; ,,,...,,[132,1+=n n a a a a a den );,(den num tf G = <3)线性系统的状态方程模型 当系统是用状态方程描述时,MATLAB 要用到另一种表示函数的方法,例如系统用状态方程的表示如下所示: )()()(t Bu t Ax t x += )()()(t D t Cx t y += 此系统的状态方程模型可以用下面的语句直接建立起来:),,,(D C B A ss G = <4)线性系统的零极点模型 零极点模型实际上是传递函数的另一种表现形式,对原系统传递函数的分子和分母分别进行分解因式处理,则可得到系统的零极点模型为RTCrpUDGiT ))...()(() )...()(()(2121n m p s p s p s z s z s z s K s G ------= 在MATLAB 下表示零极点模型的方法很简单,先用向量的形式输入系统的零点和极点,然后调用zpk<)函数就可以输入这个零极点模型了。5PCzVD7HxA ]; ;...;;[21m z z z z =>> ]; ;...;;[21n p p p p = 1 231211 121......)(+--+-+++++++++=n n n n n m m m m a s a s a s a s a b s b s b s b s G

Matlab求函数最值

MATLAB 求函數極小(大)值

函數的極值 n函數的極值(極大值或極小值)可從兩個角度來談,一為絕對的極值(absolute or global extreme value),另一為相對的極值(relative or local extreme value) n絕對的極值:在所有定義域內中的極大值或極小值 n相對的極值:在定義域內某一區間中的極大值或極小值

n 單一變數函數 n 多變數函數 n y = f (x 1, x 2, …, x n )為一函數。若f 在x*上有極值,則 函數極值的發生處 0x y = f (x ) 0x y = f (x )極小值 極大值***12()0,()0,,()0n f f f x x x x x x ???===???L

求單變數函數之極小值n 在特定區間尋找單一變數之函數f(x) 之極小值 n 方法一:在區間內取點,計算這些點的函數值,然後利用min 指令找出其極小值 Ex. 求之極小值,其中>> x=linspace(0,8,100);>> y=cos(x).*exp(-2*x);>> [ymin index]=min(y)>> xmin=x(index) ()* min (),=££l u x f x f x x x x 08 ££x 2()cos()-=x f x x e ymin =-0.0076index =26xmin =2.0202f(x) 稱為目標函數(objective function)

求單變數函數之極小值n 方法二:利用MATLAB 內建函數fminbnd Ex.求之極小值,其中*step 1. edit fun.m function F=fun(x) F=cos(x)*exp(-2*x); *step 2. 求解(回到Matlab Command Window )>> [x, fval]=fminbnd(@fun, 0, 8)[x, fval] = fminbnd(@fun, x1, x2) x: 使函數值最小之x 值fval: 函數之極小值fun: 定義目標函數的function m-file 檔名x1: 區間下限, x2: 區間上限 2()cos()-=x f x x e 08 ££x x =2.0344fval =-0.0076

matlab在机械控制中的应用

matlab在机械控制中的应用 姓名:xxx 学号:2010232 专业:机械制造及其自动化 Matlab在机械工程操纵中的应用 摘要:MATLAB是由美国mathworks公司公布的要紧面对科学运算、可视化以及交互式程序设计的高科技运算环境。它将数值分析、矩阵运算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值运算的众多科学领域提供了一种全面的解决方案,并在专门大程度上摆

脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学运算软件的先进水平。 一、机械工程操纵简介 机械操纵工程是研究操纵论在机械工程中应用的科学。它是一门跨操纵论和机械工程的边缘学科。随着工业生产和科学技术的持续向前进展,机械工程操纵论这门新兴学科越来越为人们所重视。他不仅满足今天自动化技术高度进展的需要,同时也与信息科学和系统科学紧密有关,更重要的是它提供了辩证的系统分析方法,即不但从局部,而且从整体上认识和分析机械系统,改进和完善机械系统,以满足科技的进展和工业生产的实际需要。 机械工程操纵论的研究对象与任务 机械工程操纵论的研究对象是机械工程技术中广义系统的动力学咨询题。具体地讲,机械操纵路是研究系统及其输入、输出三者之间的动态关系,也确实是研究机械工程广义系统在一定的外界条件下,从系统的一定初始条件动身,所经历有内部的固有属性所决定的整个动态历程。就系统及其输入、输出三者之间动态关系而言,机械工程操纵论的任务要紧研究一下几方面的为题: (1)当系统已定,输入已知时,求出系统的输出(响应),并通过输出来研究系统本身的有关为题,称系统分析。 (2)当系统已定,系统的输出也已给定是,要确定系统的输出尽可能符合给定的最佳要求,称系统的最优操纵。 (3)当输入已知输出也一给定时,要确定系统,使其可能符合给定的最佳要求,称最优设计。 (4)当输入和输出均已知时,求系统的结构参数,即建立系统的数学模型,称系统的便是或系统识不。 (5)当系统已定输出已知时,要识不输出输出输入的有关信息,成滤波与推测。 1.2操纵系统的工作原理与组成

Matlab在自动控制中的应用

MATLAB在控制理论中的应用 摘要:为解决控制理论计算复杂问题,引入了MATLAB。以经典控制理论和现代控制理论中遇到的一些问题为具体实例,通过对比的手法,说明了MATLAB 在控制理论应用中能节省大量的计算工作量,提高解题效率。 引言:现代控制理论是自动化专业一门重要的专业基础课程,内容抽象,且计算量大,难以理解,不易掌握。采用MATLAB软件计算现代控制理论中的问题可以很好的解决这些问题。自动控制理论分为经典控制理论和现代控制理论,在控制理论学习中,经常要进行大量的计算。这些工作如果用传统方法完成,将显得效率不高,额误差较大。因此。引用一种借助于计算机的高级语言来代替传统方法就显得十分必要。MATLAB集科学计算,可视化,程序设计于一体,对问题的描述与求解较为方便,在控制理论的学习中是一种备受欢迎的软件。 MATLAB简介:MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 1、MATLAB在系统的传递函数和状态空间模型之间的相互转换的应用:例1:求以下状态空间模型所表示系统的传递函数: 解:执行以下的M-文件:

基于MATLAB的可行方向法求极值问题讲解

基于MATLAB 可行方向法求极值的实现 姓名:xxx 学号:xxx (北京理工大学机械与车辆学院车辆工程,北京 100081) 摘要:在工程实际的优化设计中,随着设计变量数和约束条件数的增加,随机方向搜索法和复合形法等直接优化解法的求解效率会偏低。可行方向法,顾名思义,一种始终在可行域内寻找下降方向的搜索法,以其收敛速度快、效果好的优点已成为求解约束非线性问题的一种有代表性的直接解法,同时也是求解大型约束优化问题的主要方法之一。本文将简单介绍可行方向法的数学思想,采用线性规划法和约束最优步长法编写MATLAB 程序,最后通过算例完成对优化问题的求解。 关键字:可行方向法;MATLAB ;优化方法。 1. 可行方向法的基本数学思想 1.1可行方向法的搜索策略 可行方向法迭代的第一步都是从可行域的某一初始点(0)X 出发,沿负梯度 (0)()f X -?方向移至某一个或J 个起作用约束面的交集()k X 上。以后的搜索路线和迭代计算可根据约束函数和目标函数的不同性状,分别采用以下三种不同策略继续搜索。 1) 由点()k X 出发,沿可行方向作一维最优化搜索,若所得新点(1)k X +在可行域内,则再沿(1)()k f X +-?方向作一维最优化搜索;若所得的新点不在可行域内,则将它移至约束面上再反复重复上述步骤,若 (1)()k f X ε+?≤,则停止迭代,如图1.1所示。 2) 由点()k X 出发,沿可行方向作一维最优化搜索,若所得新点(1)k X +在可行域外,则沿可行方向以最大步长到达另一个约束面上一点,将该点作为迭代点(1)k X +进行反复搜索,直至满足给出的K-T 条件,如图1.2所示。

MATLAB在控制系统中的应用

文章编号:1006-5342(2002)06-0050-03 MATLAB 在控制系统中的应用 徐武雄 (咸宁师范高等专科学校 物理系,湖北 咸宁 437005) 摘 要:MATLAB 作为一种计算机辅助设计工具日益受到人们的重视,文章以几个典型的实例来说明MATLAB 在控制系统中的应用 关键词:MATLAB;控制系统;计算机辅助设计中图分类号:TP273 文献标识码:A 0 引言 控制理论自20世纪40年代作为一门独立的学科出现以来,在工业、农业和国防等领域的应用已经越来越广泛 由于最初的控制系统大多比较简单,利用纸笔等工具就可以计算和设计出来 随着控制理论的迅速发展,控制效果要求越来越高,控制算法越来越复杂,控制器的设计也越来越困难,这样光利用纸笔以及计算器等简单运算工具难以达到预期效果,计算机技术的迅猛发展使人们很自然想到利用计算机来辅助设计控制系统[1] 目前,国际上在控制领域最流行的软件当属MAT -LAB 借助MATLAB 可以使复杂的控制系统设计变得简单、直观和可靠,减少了劳动强度,提高了工作效率 本文以几个典型的问题来说明MATLAB 在控制领域中的应用 1 MATLAB 简述 MATLAB 是一种面向科学和工程计算的高级语言,现已成为国际公认的最优秀的科技界应用软件,在世界范围内广为流行和使用 MATLAB 在许多学科领域中成为计算机辅助设计与分析、算法研 究和应用开发的基本工具和首选平台[2] 该软件 的特点可以归纳为以下几点[3] : (1)简单易用 MATLAB 是一门编程语言,其语法规则与一般的结构化高级编程语言(如C 语言)大同小异,而且不需定义变量和数组,使用更方便 (2)代码短小高效 由于MATLAB 已经将具体的算法编成了具体的函数,用户只需熟悉算法的特点、使用场合、函数的调用格式和参数意义等,通过调用函数很快解决问题 (3)计算功能非常强大 具有强大的矩阵计算功能,利用一般的符号和函数就可以对矩阵进行加、减、乘、除的运算以及转置和求逆运算 此外, 该软件现有的六十多个工具箱可以解决数学和工 程领域的绝大多数问题 (4)强大的图形表达功能 不仅可以绘制一维、二维和三维图形,还可以绘制工程特性较强的特殊图形 (5)可扩展性 用户可以自己编写M 文件,组成自己的工具箱 2 MATLAB 在控制系统中的应用 借助MATLAB 及其控制系统工具箱和SI MULINK 的强大功能,可以迅速解决大量的数字计算、特殊图形绘制、动态系统建模、系统仿真和分析 下面以几个典型问题来说明其在控制系统中的应用 2 1根轨迹的绘制 用手工绘制根轨迹是一件很麻烦的事,所绘图形是一个大致形状,而且不是很美观 利用MAT -LAB 绘制就可以克服这些缺点 下面用MATLAB 绘制根轨迹[2]: 已知传递函数:G H (s)=K (s +8)/[s (s +2)(s 2 +8s +32)],绘制根轨迹并求下面两种情形下的K 值:(i)两条分支进入右半平面(ii)两条分支从复数极点出发在实轴相交 解决以上问题很简单,只需几条语句即可完成,源程序如下: den=conv([120],[1832]) %分母有四个极点G=tf([18],den) %定义分子并创建G(s)Gzp=zpk(G) %显示G(s)的零点、极点和增益rlocus(G) %计算根轨迹 axis([-155-1010]) %调整绘制区域 [kk,clroots]=rlocfind(G) %计算增益值和极点 MATLAB 绘制的根轨迹如图1所示 画出了根轨迹后,我们可以交互的使用rlocfind 命令来确定用户点击鼠标所选的根轨迹上任意点所对应的 收稿日期:2002-07-23 第22卷第6期 咸 宁 师 专 学 报 Vol.22,No.62002年12月 Journal of X ianning Teachers C ollege Dec.2002

遗传算法求函数极大值matlab实现

遗传算法求函数最大值(matlab实现) 一、题目: 2,,当x在0~31区间的最大值。寻找f(x)=x 二、源程序: %遗传算法求解函数最大值 %本程序用到了英国谢菲尔德大学(Sheffield)开发的工具箱GATBX,该工具箱比matlab自带的GATOOL使用更加灵活,但在编写程序方面稍微复杂一些 Close all; Clear all; figure(1); fplot('variable*variable',[0,31]); %画出函数曲线 %以下定义遗传算法参数 GTSM=40; %定义个体数目 ZDYCDS=20; %定义最大遗传代数 EJZWS=5; %定义变量的二进制位数 DG=0.9; %定义代沟 最优结果的初始值% trace=zeros(2, ZDYCDS);

FieldD=[5;-1;2;1;0;1;1]; %定义区域描述器的各个参数%以下为遗传算法基本操作部分,包括创建初始种群、复制、交叉和变异 Chrom=crtbp(GTSM, EJZWS); %创建初始种群,即生成给定规模的二进制种群和结构 gen=0; %定义代数计数器初始值variable=bs2rv(Chrom, FieldD); %对生成的初始种群进行十进制转换 2 f(x)=x计算目标函数值% ObjV=variable*variable; while gen

MATLAB多元函数导数求极值或最优值

实验六 多元函数的极值 【实验目的】 1. 多元函数偏导数的求法。 2. 多元函数自由极值的求法 3. 多元函数条件极值的求法、 4. 学习掌握MATLAB 软件有关的命令。 【实验内容】 求函数3282 4-+-=y xy x z 的极值点与极值 【实验准备】 1.计算多元函数的自由极值 对于多元函数的自由极值问题,根据多元函数极值的必要与充分条件,可分为以下几个步骤: 步骤1、定义多元函数),(y x f z = 步骤2、求解正规方程0),(,0),(==y x f y x f y x ,得到驻点 步骤3、对于每一个驻点),(00y x ,求出二阶偏导数,,,22222y z C y x z B x z A ??=???=??= 步骤4、 对于每一个驻点),(00y x ,计算判别式2B AC -,如果02>-B AC ,则该驻点就是极值点,当0>A 为极小值, 0

可以用help diff, help jacobian 查阅有关这些命令的详细信息 【实验方法与步骤】 练习1 求函数3282 4-+-=y xy x z 的极值点与极值、首先用diff 命令求z 关于x,y 的偏导数 >>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans =4*x^3-8*y ans =-8*x+4*y 即.48,843y x y z y x x z +-=??-=??再求解正规方程,求得各驻点的坐标。一般方程组的符号解用solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解正规方程的MA TLAB 代码为: >>clear; >>[x,y]=solve('4*x^3-8*y=0','-8*x+4*y=0','x','y') 结果有三个驻点,分别就是P(-2,-4),Q(0,0),R(2,4)、下面再求判别式中的二阶偏导数: >>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>A=diff(z,x,2) >>B=diff(diff(z,x),y) >>C=diff(z,y,2) 结果为 A=2*x^2 B =-8 C =4 由判别法可知)2,4(--P 与)2,4(Q 都就是函数的极小值点,而点Q(0,0)不就是极值点,实际上,)2,4(--P 与)2,4(Q 就是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍点。 >>clear; >>x=-5:0、2:5; y=-5:0、2:5; >>[X,Y]=meshgrid(x,y);

MATLAB多元函数极值

多元函数的极值 【实验目的】 1. 多元函数偏导数的求法。 2. 多元函数自由极值的求法 3. 多元函数条件极值的求法. 4. 学习掌握MATLAB 软件有关的命令。 【实验内容】 求函数3282 4 -+-=y xy x z 的极值点和极值 【实验准备】 1.计算多元函数的自由极值 对于多元函数的自由极值问题,根据多元函数极值的必要和充分条件,可分为以下几个步骤: 步骤1.定义多元函数),(y x f z = 步骤2.求解正规方程0),(,0),(==y x f y x f y x ,得到驻点 步骤3.对于每一个驻点),(00y x ,求出二阶偏导数,,,2222 2y z C y x z B x z A ??=???=??= 步骤4. 对于每一个驻点),(00y x ,计算判别式2 B A C -,如果02 >-B AC ,则该驻点是极值点,当0>A 为极小值, 0

MATLAB 中主要用diff 求函数的偏导数,用jacobian 求Jacobian 矩阵。 可以用help diff, help jacobian 查阅有关这些命令的详细信息 【实验方法与步骤】 练习1 求函数3282 4 -+-=y xy x z 的极值点和极值.首先用diff 命令求z 关于x,y 的偏导数 >>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>diff(z,x) >>diff(z,y) 结果为 ans =4*x^3-8*y ans =-8*x+4*y 即 .48,843y x y z y x x z +-=??-=??再求解正规方程,求得各驻点的坐标。一般方程组的符号解用solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解正规方程的MATLAB 代码为: >>clear; >>[x,y]=solve('4*x^3-8*y=0','-8*x+4*y=0','x','y') 结果有三个驻点,分别是P(-2,-4),Q(0,0),R(2,4).下面再求判别式中的二阶偏导数: >>clear; syms x y; >>z=x^4-8*x*y+2*y^2-3; >>A=diff(z,x,2) >>B=diff(diff(z,x),y) >>C=diff(z,y,2) 结果为 A=2*x^2 B =-8 C =4 由判别法可知)2,4(--P 和)2,4(Q 都是函数的极小值点,而点Q(0,0)不是极值点,实际上, )2,4(--P 和)2,4(Q 是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍 点。 >>clear; >>x=-5:0.2:5; y=-5:0.2:5; >>[X,Y]=meshgrid(x,y);

相关文档
相关文档 最新文档