趙禹琦
(湛江科技學(xué)院 智能制造學(xué)院,廣東 湛江 524094)
在多元函數(shù)微分學(xué)的研究中,通過分析多元函數(shù)的偏導(dǎo)數(shù)能夠詳細(xì)分析函數(shù)的性質(zhì)規(guī)律。而在多元函數(shù)中有一類不能夠用顯式關(guān)系表達(dá)的函數(shù)稱為隱函數(shù),在解決實(shí)際問題構(gòu)建模型的目標(biāo)函數(shù)中這類隱函數(shù)占有重要部分。因此研究隱函數(shù)性質(zhì)是分析多元函數(shù)微分學(xué)以及解決實(shí)際函數(shù)問題的重要部分。對多元隱函數(shù)求偏導(dǎo)數(shù)是研究該函數(shù)的基礎(chǔ),在多元隱函數(shù)領(lǐng)域,應(yīng)用相應(yīng)的函數(shù)存在定理所給出的公式可以求出其偏導(dǎo)數(shù),但是在復(fù)雜多樣的實(shí)際問題中,對偏導(dǎo)數(shù)的求解往往是中間過渡環(huán)節(jié),這就需要高效快速的來求多元隱函數(shù)的偏導(dǎo)數(shù)。在大數(shù)據(jù)時(shí)代通過計(jì)算機(jī)軟件解決實(shí)際問題最是實(shí)用的方法,在眾多軟件中Python具有程序語言簡潔,靈活性強(qiáng),庫的種類多等特點(diǎn)被廣泛應(yīng)用在數(shù)學(xué)問題求解中。依據(jù)隱函數(shù)存在定理,應(yīng)用Python軟件設(shè)計(jì)相應(yīng)的程序,能夠?qū)Χ嘣[函數(shù)的偏導(dǎo)數(shù)進(jìn)行求解,以便深入分析函數(shù)相關(guān)性質(zhì)。
Python軟件所使用的編程語言簡單易懂,從開發(fā)初代到現(xiàn)在發(fā)展迅速,廣泛的被應(yīng)用在工業(yè)和教育科學(xué)等領(lǐng)域,Python軟件所使用的編程語言屬于解釋型,在Python軟件中命令是在“解釋器”中執(zhí)行的。其運(yùn)行過程是Python解釋器在接收一條命令后,對命令進(jìn)行評估,依據(jù)評估返回這條命令的結(jié)果,Python解釋器在調(diào)試過程中具有良好的交互性[1]。Python軟件的語法簡明,其編程語言具有面向?qū)ο蟮奶卣?,具有模塊化的組織原則。在Python軟件中,模塊指的是在源代碼中所定義的密切相關(guān)的函數(shù)和類的集合。例如Python中標(biāo)準(zhǔn)庫的math模塊,這個(gè)模塊定義了函數(shù)和一些數(shù)學(xué)常量。Python軟件用抽象基類的機(jī)制來支持抽象數(shù)據(jù)類型[2]。在Python軟件中有許多內(nèi)置函數(shù),其中最基本的是輸入輸出功能函數(shù),如果需要生成標(biāo)準(zhǔn)輸出到控制臺(tái)則需要用到print函數(shù),它能夠打印任意序列的參數(shù),如果需要打印多個(gè)參數(shù),它們之間要以空格來分隔,并在末尾加一個(gè)換行符。例如:print(‘mk’,8)輸出的結(jié)果是字符串mk 8,這兩個(gè)字符串中間有空格分隔。需要注意的是print函數(shù)可以打印的參數(shù)不僅是字符串,如果沒有任何參數(shù),命令print()輸出的就是個(gè)簡單的換行符。對于print函數(shù)可以使用關(guān)鍵字參數(shù)定義,例如可以通過關(guān)鍵字參數(shù)sep來定義分隔符對字符串進(jìn)行分隔,關(guān)鍵字參數(shù)end可以用來指定一個(gè)可選擇的字符串作為結(jié)尾,關(guān)鍵字參數(shù)file既可以用來指示一個(gè)文件輸出流,又可以找到一個(gè)文件直接輸出。常用的內(nèi)置函數(shù)還有input函數(shù),它是用來接收來自用戶輸入的信息。在給出一個(gè)可選擇參數(shù)后,input函數(shù)會(huì)顯示提示信息,之后等待用戶輸入字符,直到用戶按下返回鍵。input函數(shù)具有的返回值是用戶在按返回鍵之前的那些由用戶輸入的字符串。在讀取用戶輸入的數(shù)值時(shí),程序員會(huì)使用input函數(shù)來獲得字符串,在應(yīng)用int或者float語法構(gòu)建用戶的這些以字符串表示的數(shù)值[3]。
除了一些內(nèi)置的定義之外,Python軟件還包括了多種數(shù)值,函數(shù)和被組織在附加庫中的類,類也稱為模塊,可以在一個(gè)程序內(nèi)導(dǎo)入,例如在math模塊中,雖然它的內(nèi)置命名空間包含一些數(shù)學(xué)計(jì)算函數(shù)(abs,max,min等),但常用的是歸為math模塊(sin,cos等),在這個(gè)模塊中定義了一些數(shù)學(xué)常數(shù)例如pi和e。
在Python軟件中,將定義從模塊中載入當(dāng)前命名空間需要應(yīng)用import來聲明。import語句的語法形式可以表示為:from math import pi。通過這個(gè)命令可以在當(dāng)前的命名空間載入math模塊所定義的pi,允許直接使用pi這個(gè)標(biāo)識(shí)符。若有很多的定義來自導(dǎo)入的同一個(gè)模塊,可以使用*。即from math import*。還有一種方式是導(dǎo)入模塊本身,它可以用于在相同模塊中訪問多個(gè)定義,語法形式為:import math,引入之后,模塊中的定義在訪問時(shí)需要用一個(gè)完全限定的名稱,例如math.pi。Python中還有種類豐富的科學(xué)計(jì)算庫[4],例如sympy庫,這個(gè)庫中的diff函數(shù)可以用來對目標(biāo)函數(shù)求導(dǎo),方便快捷的解決實(shí)際問題需要。對于處理復(fù)雜的多元函數(shù),尤其求由方程組確定的多元隱函數(shù)的偏導(dǎo)數(shù),利用Python軟件的特點(diǎn),合理設(shè)計(jì)代碼,能夠準(zhǔn)確快捷地得到所需要的偏導(dǎo)數(shù),從而為解決實(shí)際問題提供紐帶。
在單個(gè)的隱函數(shù)求偏導(dǎo)數(shù)的基礎(chǔ)上,一些實(shí)際問題中還會(huì)涉及到對由多元方程組確定的隱函數(shù)求偏導(dǎo)數(shù),例如下面方程組:
確定的隱函數(shù)求偏導(dǎo)數(shù),這類方程組確定的是兩個(gè)二元隱函數(shù),又稱為向量值隱函數(shù),對其求偏導(dǎo)數(shù)可以用到相應(yīng)的隱函數(shù)存在定理[6]:設(shè)函數(shù)在點(diǎn)的某個(gè)領(lǐng)域內(nèi)的偏導(dǎo)數(shù)連續(xù),同時(shí)滿足,由相應(yīng)的偏導(dǎo)數(shù)組成的雅克比行列式:
利用相應(yīng)的隱函數(shù)存在定理可以對多元隱函數(shù)求偏導(dǎo)數(shù),而復(fù)雜的實(shí)際問題通常涉及到多個(gè)目標(biāo)函數(shù),合理利用Python軟件設(shè)計(jì)代碼,能夠?qū)崿F(xiàn)對多元隱函數(shù)方程組確定的隱函數(shù)求偏導(dǎo)數(shù),從而提升計(jì)算效率。
在研究具體的實(shí)際問題中,往往會(huì)將問題抽象成目標(biāo)函數(shù),通過對目標(biāo)函數(shù)的性質(zhì)分析來獲得解決問題所需要的關(guān)鍵條件。大部分實(shí)際問題都涉及到多個(gè)復(fù)雜因素,即所得的目標(biāo)函數(shù)是多元的隱函數(shù),通過求多元隱函數(shù)的偏導(dǎo)數(shù)來分析函數(shù)性質(zhì)有助于問題的解決。復(fù)雜條件的實(shí)際問題常涉及到方程組,基于Python軟件的科學(xué)計(jì)算庫和簡明的語法規(guī)則,以二元隱函數(shù)方程組為例,用Python軟件來實(shí)現(xiàn)偏導(dǎo)數(shù)的求解更加便捷快速。
求解二元隱函數(shù)方程組確定的二元函數(shù)的偏導(dǎo)數(shù),利用向量值隱函數(shù)存在定理和Python軟件的優(yōu)勢特點(diǎn)可以實(shí)現(xiàn),具體舉例如下:
解:設(shè)
先由方程組求出相應(yīng)的偏導(dǎo)數(shù):
依據(jù)向量值隱函數(shù)存在定理,雅克比行列式:
由定理得出各偏導(dǎo)數(shù)為:
在Python軟件中求二元方程組確定的隱函數(shù)的偏導(dǎo)數(shù)程序設(shè)計(jì):
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] on win32
Type “copyright”, “credits” or “l(fā)icense()” for more information.
>>> from sympy import*
>>> x,y=symbols(‘x,y’);u,v=symbols(‘u,v’)
>>> a1=diff(x*u-y*v,x);a2=diff(x*u-y*v,y)
>>> a3=diff(x*u-y*v,u);a4=diff(x*u-y*v,v)
>>> b1=diff(y*u+x*v-1,x);b2=diff(y*u+x*v-1,y)
>>> b3=diff(y*u+x*v-1,u);b4=diff(y*u+x*v-1,v)
>>> j=a3*b4-a4*b3
>>> m1=a1*b4-a4*b1
>>> n1=-(m1/j)
>>> print(‘u對x的偏導(dǎo)數(shù)為:’,n1)
u對x的偏導(dǎo)數(shù)為: -(u*x + v*y)/(x**2 + y**2)
>>> m2=a2*b4-a4*b2
>>> n2=-(m2/j)
>>> print(‘u對y的偏導(dǎo)數(shù)為:’,n2)
u對y的偏導(dǎo)數(shù)為: -(u*y - v*x)/(x**2 + y**2)
>>> m3=a3*b1-a1*b3
>>> n3=-(m3/j)
>>> print(‘v對x的偏導(dǎo)數(shù)為:’,n3)
v對x的偏導(dǎo)數(shù)為: -(-u*y + v*x)/(x**2 + y**2)
>>> m4=a3*b2-a2*b3
>>> n4=-(m4/j)
>>> print(‘v對y的偏導(dǎo)數(shù)為:’,n4)
v對y的偏導(dǎo)數(shù)為: -(u*x + v*y)/(x**2 + y**2)
經(jīng)過驗(yàn)證程序所得結(jié)果與實(shí)際應(yīng)用向量值隱函數(shù)存在定理公式計(jì)算得到的結(jié)果一致,因此程序可以有效運(yùn)行。可見通過Python軟件進(jìn)行多元隱函數(shù)偏導(dǎo)數(shù)的求解可以快速準(zhǔn)確地得到結(jié)果,為解決具體問題提供有利幫助。
分析多元隱函數(shù)的性質(zhì)有助于有效分析復(fù)雜多因素實(shí)際問題所確定的目標(biāo)函數(shù)。在涉及到多個(gè)目標(biāo)函數(shù)時(shí)常用到方程組,這就需要快速求解多元隱函數(shù)方程組的偏導(dǎo)數(shù),以便對實(shí)際問題進(jìn)行深入分析,基于Python軟件操作簡潔,代碼具有簡明語法規(guī)則,在科學(xué)運(yùn)算過程中效率高等特點(diǎn),選用Python軟件設(shè)計(jì)代碼實(shí)現(xiàn)多元隱函數(shù)方程組確定的隱函數(shù)求偏導(dǎo)數(shù)可以節(jié)省人工計(jì)算時(shí)間,提高計(jì)算準(zhǔn)確度,有助于對實(shí)際問題的目標(biāo)函數(shù)進(jìn)行準(zhǔn)確分析,從而提高問題解決的效率。