用MATLAB 求极值 灵活的运用MATLAB 的计算功能,可以很容易地求得函数的极值
1 求223441xxyxx的极值 解 首先建立函数关系: syms s 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= 2/9 于是知在 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 的作图功能,我们很容易做到这一点
2 画出上例中函数的图形 解 syms x ↙ y=(3*x^2+4*x+4)/( x^2+x+1); ↙得到如下图形 ezplot(y) ↙ 如何用MATLAB 求函数的极值点和最大值 比如说y =x ^3+x ^2+1,怎样用matlab 来算它的极值和最大值
求极值: sy ms x y >> y =x ^3+x ^2+1 >> diff(y ) %求导 ans = 3*x ^2 + 2*x >> solve(ans) %求导函数为零的点 ans = -2/3 0 极值有两点
求最大值,既求-y 的最小值: >> f=@(x )(-x ^3-x ^2-1) f =