CourseEducationResearch课程教育研究 2018 年第 40 期 利用 MATLAB 软件求解一元和二元函数的极值 易 强 吕希元 (重庆工商大学融智学院 重庆 400030) 【摘要】本文主要介绍利用 MATLAB 软件在电脑上来求解微积分里的一元和二元函数的极值的计算问题。 【关键词】MATLAB 极值 输入命令 【中图分类号】O172 【文献标识码】A 【文章编号】2095-3089(2018)40-0149-01 在微积分的教材中出现比较多的知识点,包括一元函数的性质和计算其极值、最值等问题,尤其更难的是对二元函数 f(x,y)极值的计算,难度相当大,传统的计算一般是人们在草稿纸上进行演算,费时费力,而且准确度不高,往往容易计算错误,由于上述的缺点,本文简单介绍用 MATLAB 来求解,利用它可以很方便,快捷的得到准确结果。 一、M 函数文件函数定义的一般格式 function[输入变量列表]=函数名(输入变量列表) 注释说明语句段 % 为 help look for 提供在线帮助信息函数体语句段 % 函数语句块特定规则: <1> 函数文件第一行必须以单词 function 作为引导词,定义一个函数,必须遵循如下形式: Function=() <2> 函数文件的文件名必须是. m. <3> 程序中的变量均为局部变量, 不保存在工作空间中,其变量只在函数运行期间有效,函数文件执行完后,将自动被清除。 二、求一元函数的极值利用 MATLAB 的计算功能, 可以很方便求一元函数极 值。 例 1 求 y= 3x2+4x+4 x2+x+1 的极值 解:输入命令: syms x % 将变量 x 符号化y=(3*x^2+4*x+4)/(x^2+x+1);% 建立函数关系dy=diff(y);% 求导数 xz=solve(dy)% 求函数的驻点:得结果 xz= [0] [-2] 由此知道函数有两个驻点 x1=0 和 x2=-2,考查函数在驻点处二阶导数的正负情况:再输入命令: d2y=diff(y,2); z1=limit(d2y,x,0) 得结果 z1= -2 输入命令: z2=limit(d2y,x,-2) 得结果 z2= 29 于是知在 x1=0 处二阶导数的值为 z1=-2,小于 0,函数 有极大值;在 x2=-2 处二阶导数的值为 z2= 2 9 ,大于 0,函数 有极小值,如果需要,可顺便求出极值点的函数值:输入命令:y1=limit(y,x,0) 得结果:y1=4 输入命令:y2=limit(y,x,-2) 得结果:y2= 8 3 . 三、求二元函数的极值 利用 MATLAB 计算二元函数的极值,主要有以下几步:步骤 1. 定义多元函数 z=f(x,y). 步骤 2. 求解偏导数方程组 fx(x,y)=0,fy(x,y)=0,得到驻 点。 步骤 3. 对于每一个驻点(x0,y0),求出二阶偏导数 A= 鄣2z 鄣x2 , B= 鄣2z 鄣x鄣y ,C= 鄣2z 鄣y2 . 步骤 4. 对于每一个驻点(x0,y0),计算判别式 AC-B2,如果 AC-B2>0,则该点是极值点,当 A>0 时为极小值,A<0 时为极大值;如果 AC-B2=0,判别法失效,需要进一步判断;如果 AC-B2<0,则该驻点不是极值点。例 2.求函数 z=x4-8xy+2y2-3 极值点和极值。首先 用 diff 命令求 z 关于 x ,y 的偏导数。输入命令: Clear ;syms . x y ;z=x^