易強 呂希元

【摘要】本文主要介紹利用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=■的極值
解:輸入命令:
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=
■
于是知在x1=0處二階導數的值為z1=-2,小于0,函數有極大值;在x2=-2處二階導數的值為z2=■ ,大于0,函數有極小值,如果需要,可順便求出極值點的函數值:
輸入命令:y1=limit(y,x,0)
得結果:y1=4
輸入命令:y2=limit(y,x,-2)
得結果:y2=■.
三、求二元函數的極值
利用MATLAB 計算二元函數的極值,主要有以下幾步:
步驟1. 定義多元函數z=f(x,y).
步驟2. 求解偏導數方程組fx(x,y)=0,fy(x,y)=0,得到駐點。
步驟3. 對于每一個駐點(x0,y0),求出二階偏導數A=■,B=■,C=■.
步驟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^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
再用 solve 命令求解偏導數方程組,求得各駐點的坐標;
輸入命令:
clear;
[x,y]=solve(‘4*x^3-8*y=0,‘-8*x+4*y=0,x,y)
結果有三個駐點,記為P(0,0),Q(2,4),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=12*x^2
B=-8
C=4
由判別法可知Q(2,4)和R(-2,-4)都是函數的極小值點,而點P(0,0)不是極值點,實際上Q(2,4)和R(-2,-4)是函數的最小值點。
參考文獻:
[1]陳修素. 微積分(下冊)[M] .北京:高等教育出版社,2011.
[2]劉顯全.復變函數教學法探討[J]. 大學數學,2012(28);155-158.
[3]孫名符,劉崗《數學學習評價》科學出版社.2008.10.
[4]王永祥.應用經濟數學[M].上海:上海交通大學出版社,2004.