Matlab在中学数学函数最值教学的应用
2021-09-10潘晶晶
摘要:针对中学数学中的常见函数最值问题,文中探讨了应用Matlab工具求解函数的最值的教学方法。文中的研究内容在教学内容和教学手段上都有一定的参考价值。
关键词:函数最值;一次函数;二次函数;三角函数;Matlab
1 引言
最值问题是在生产、科学研究和日常生活中常会遇到的一类特殊的数学问题,函数的最值在中学数学中占有相当重要的地位。求解中学数学函数最值问题的一般方法有:观察法、二次函数法、判别式法、平均不等式法、非负数概念法、反函数法、三角法、数形结合法、导数法。本文将Matlab工具(也可以使用开源的Python软件)引入到中学数学最值问题求解的教学与实验中,对教师和学生的教学和学习都有很大帮助。
2 Matlab在中学数学函数最值中的应用
应用Matlab能够绘制函数的图象,从图象中能够很直观地看到函数的走势,能够让学生感性地认识函数的最值点、单调性、凹凸性等函数性质。
2.1 一次函数的最值求解
求解一次函数的最值问题,需要根据一次函数所给出的的解析式,得出相对应一次函数图像的基本性质(研究四种性质:定义域、值域、单调性、奇偶性),并根据参数k,b对一次函数图象的影响,可以得到一次函数在区间上的最值点。
一次函数y=kx+b的最值在区间[m, n]的两端点处取得,编写一次函数图象求解最值m文件为:
function [fmax, fmin, xmax, xmin]=flinear(k, b, m ,n, t)
x=m:t:n;
y=k.*x+b;
fmax=max(y);
fmin=min(y);
xmax=x(find(y==fmax));
xmin=x(find(y==fmin));
figure;
hold on;
plot(x,y);
plot(xmax,fmax,’ro’);
plot(xmin,fmin,’ro’);
text(xmax-20*t,fmax-20*t,[‘最大值’,num2str(fmax),’(‘,num2str(xmax),’,’,num2str(fmax),’)’]);
text(xmin+20*t,fmin+20*t,[‘最小值’,num2str(fmin),’(‘,num2str(xmin),’,’,num2str(fmin),’)’]);
hold off
求函数y=2x-5在区间[-4,10]的最值,则在命令窗口口输入:
>> [fmax, fmin, xmax, xmin]=flinear(2,-5,-4,10,0.1)
得到函数最值为fmax =15,fmin =-13,xmax =10,xmin =-4。
2.2 二次函数的最值求解
对于二次函数的最值问题,其定义域、值域、单调性、奇偶性、图像的对称性、图像与轴的交点情况等是需要考虑。求解二次函数y=ax2+bx+c (a≠0)在区间[m, n]的最值,可以编写二次函数求解最值m文件为:
function [fmax, fmin, xmax, xmin]=fquadratic(a, b, c, m ,n, t)
x=m:t:n;
y=a*x.*x+b.*x+c;
fmax=max(y);
fmin=min(y);
xmax=x(find(y==fmax));
xmin=x(find(y==fmin));
figure;
hold on;
plot(x,y);
plot(xmax,fmax,’ro’);
plot(xmin,fmin,’ro’);
text(xmax-20*t,fmax-20*t,[‘最大值’,num2str(fmax),’(‘,num2str(xmax),’,’,num2str(fmax),’)’]);
text(xmin+20*t,fmin+20*t,[‘最小值’,num2str(fmin),’(‘,num2str(xmin),’,’,num2str(fmin),’)’]);
hold off
求解函数y=-2x2+5x+6在区间[-10, 10]的最值,则在命令窗口输入:
>>[fmax, fmin, xmax, xmin]=fquadratic(-2, 5 , 6, -10, 10, 0.1)
得到求解结果为fmax =9.1200,fmin =-244,xmax =1.3000,xmin =-10。
2.3 三角函数的最值求解
利用Matlab绘制三角函数的图象,有助于学生直观地理解三角函数值的变化规律,便于根据规律找出三角函数的最值。如:应用Matlab求函数的最大值和最小值。
三角函数的定义域R,由于三角函数为周期函数,那么只要在一定合适的区间内求函数的最值,该值就对应为整个定义域的最值。设区间x=[-2π, 2π],其中pi为圆周率π,步长为0.1π。在Matlab的命令窗口输入:
>>x=-2*pi:0.1:2*pi
>>y=(sin(x)-2).*(cos(x)-2)
>>fmax= max(y)
>> fmin=min(y)
得到求解结果为最大值fmax = 7.3282,最小值fmin =1.6717。
2.4 函数导数的符号求解
用导数法求解函数的最值时需要对函数进行求导运算,有些函数的导数比较复杂,如果需要快速地检验求导结果是否正确,可以应用Matlab符号函数微分运算进行求导。
Matlab的函数diff() 能够求函数的导数,它的调用格式为:
difvn=diff(f,‘v’, n)。其中,f为函数,v為自变量,n为导数的阶数。
如:求函数的一阶导数和二阶导数。
在Matlab的命令窗口输入:
>>sym x;
>> y=x*exp(x^2);
>> dif1=diff(y,1);
>> dif2=diff(y,2);
得到dif1=exp(x^2)+2*x^2*exp(x^2),dif2 =6*x*exp(x^2)+4*x^3*exp(x^2),那么函数的一阶导数为,二阶导数为。
参考文献:
[1]吴守江. 最值问题[J]. 中学数学教学参考. 2019(1-2):138-141.
作者简介:潘晶晶,女,理学学士,中小学二级教师,主要研究方向:中学数学教育教学方法