摘要:針對中學數學中的常見函數最值問題,文中探討了應用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.
作者簡介:潘晶晶,女,理學學士,中小學二級教師,主要研究方向:中學數學教育教學方法