趙禹琦
(湛江科技學院 智能制造學院,廣東 湛江 524094)
在多元函數微分學的研究中,通過分析多元函數的偏導數能夠詳細分析函數的性質規律。而在多元函數中有一類不能夠用顯式關系表達的函數稱為隱函數,在解決實際問題構建模型的目標函數中這類隱函數占有重要部分。因此研究隱函數性質是分析多元函數微分學以及解決實際函數問題的重要部分。對多元隱函數求偏導數是研究該函數的基礎,在多元隱函數領域,應用相應的函數存在定理所給出的公式可以求出其偏導數,但是在復雜多樣的實際問題中,對偏導數的求解往往是中間過渡環節,這就需要高效快速的來求多元隱函數的偏導數。在大數據時代通過計算機軟件解決實際問題最是實用的方法,在眾多軟件中Python具有程序語言簡潔,靈活性強,庫的種類多等特點被廣泛應用在數學問題求解中。依據隱函數存在定理,應用Python軟件設計相應的程序,能夠對多元隱函數的偏導數進行求解,以便深入分析函數相關性質。
Python軟件所使用的編程語言簡單易懂,從開發初代到現在發展迅速,廣泛的被應用在工業和教育科學等領域,Python軟件所使用的編程語言屬于解釋型,在Python軟件中命令是在“解釋器”中執行的。其運行過程是Python解釋器在接收一條命令后,對命令進行評估,依據評估返回這條命令的結果,Python解釋器在調試過程中具有良好的交互性[1]。Python軟件的語法簡明,其編程語言具有面向對象的特征,具有模塊化的組織原則。在Python軟件中,模塊指的是在源代碼中所定義的密切相關的函數和類的集合。例如Python中標準庫的math模塊,這個模塊定義了函數和一些數學常量。Python軟件用抽象基類的機制來支持抽象數據類型[2]。在Python軟件中有許多內置函數,其中最基本的是輸入輸出功能函數,如果需要生成標準輸出到控制臺則需要用到print函數,它能夠打印任意序列的參數,如果需要打印多個參數,它們之間要以空格來分隔,并在末尾加一個換行符。例如:print(‘mk’,8)輸出的結果是字符串mk 8,這兩個字符串中間有空格分隔。需要注意的是print函數可以打印的參數不僅是字符串,如果沒有任何參數,命令print()輸出的就是個簡單的換行符。對于print函數可以使用關鍵字參數定義,例如可以通過關鍵字參數sep來定義分隔符對字符串進行分隔,關鍵字參數end可以用來指定一個可選擇的字符串作為結尾,關鍵字參數file既可以用來指示一個文件輸出流,又可以找到一個文件直接輸出。常用的內置函數還有input函數,它是用來接收來自用戶輸入的信息。在給出一個可選擇參數后,input函數會顯示提示信息,之后等待用戶輸入字符,直到用戶按下返回鍵。input函數具有的返回值是用戶在按返回鍵之前的那些由用戶輸入的字符串。在讀取用戶輸入的數值時,程序員會使用input函數來獲得字符串,在應用int或者float語法構建用戶的這些以字符串表示的數值[3]。
除了一些內置的定義之外,Python軟件還包括了多種數值,函數和被組織在附加庫中的類,類也稱為模塊,可以在一個程序內導入,例如在math模塊中,雖然它的內置命名空間包含一些數學計算函數(abs,max,min等),但常用的是歸為math模塊(sin,cos等),在這個模塊中定義了一些數學常數例如pi和e。
在Python軟件中,將定義從模塊中載入當前命名空間需要應用import來聲明。import語句的語法形式可以表示為:from math import pi。通過這個命令可以在當前的命名空間載入math模塊所定義的pi,允許直接使用pi這個標識符。若有很多的定義來自導入的同一個模塊,可以使用*。即from math import*。還有一種方式是導入模塊本身,它可以用于在相同模塊中訪問多個定義,語法形式為:import math,引入之后,模塊中的定義在訪問時需要用一個完全限定的名稱,例如math.pi。Python中還有種類豐富的科學計算庫[4],例如sympy庫,這個庫中的diff函數可以用來對目標函數求導,方便快捷的解決實際問題需要。對于處理復雜的多元函數,尤其求由方程組確定的多元隱函數的偏導數,利用Python軟件的特點,合理設計代碼,能夠準確快捷地得到所需要的偏導數,從而為解決實際問題提供紐帶。


在單個的隱函數求偏導數的基礎上,一些實際問題中還會涉及到對由多元方程組確定的隱函數求偏導數,例如下面方程組:

確定的隱函數求偏導數,這類方程組確定的是兩個二元隱函數,又稱為向量值隱函數,對其求偏導數可以用到相應的隱函數存在定理[6]:設函數在點的某個領域內的偏導數連續,同時滿足,由相應的偏導數組成的雅克比行列式:


利用相應的隱函數存在定理可以對多元隱函數求偏導數,而復雜的實際問題通常涉及到多個目標函數,合理利用Python軟件設計代碼,能夠實現對多元隱函數方程組確定的隱函數求偏導數,從而提升計算效率。
在研究具體的實際問題中,往往會將問題抽象成目標函數,通過對目標函數的性質分析來獲得解決問題所需要的關鍵條件。大部分實際問題都涉及到多個復雜因素,即所得的目標函數是多元的隱函數,通過求多元隱函數的偏導數來分析函數性質有助于問題的解決。復雜條件的實際問題常涉及到方程組,基于Python軟件的科學計算庫和簡明的語法規則,以二元隱函數方程組為例,用Python軟件來實現偏導數的求解更加便捷快速。
求解二元隱函數方程組確定的二元函數的偏導數,利用向量值隱函數存在定理和Python軟件的優勢特點可以實現,具體舉例如下:

解:設

先由方程組求出相應的偏導數:

依據向量值隱函數存在定理,雅克比行列式:

由定理得出各偏導數為:

在Python軟件中求二元方程組確定的隱函數的偏導數程序設計:
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] on win32
Type “copyright”, “credits” or “license()” 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的偏導數為:’,n1)
u對x的偏導數為: -(u*x + v*y)/(x**2 + y**2)
>>> m2=a2*b4-a4*b2
>>> n2=-(m2/j)
>>> print(‘u對y的偏導數為:’,n2)
u對y的偏導數為: -(u*y - v*x)/(x**2 + y**2)
>>> m3=a3*b1-a1*b3
>>> n3=-(m3/j)
>>> print(‘v對x的偏導數為:’,n3)
v對x的偏導數為: -(-u*y + v*x)/(x**2 + y**2)
>>> m4=a3*b2-a2*b3
>>> n4=-(m4/j)
>>> print(‘v對y的偏導數為:’,n4)
v對y的偏導數為: -(u*x + v*y)/(x**2 + y**2)
經過驗證程序所得結果與實際應用向量值隱函數存在定理公式計算得到的結果一致,因此程序可以有效運行。可見通過Python軟件進行多元隱函數偏導數的求解可以快速準確地得到結果,為解決具體問題提供有利幫助。
分析多元隱函數的性質有助于有效分析復雜多因素實際問題所確定的目標函數。在涉及到多個目標函數時常用到方程組,這就需要快速求解多元隱函數方程組的偏導數,以便對實際問題進行深入分析,基于Python軟件操作簡潔,代碼具有簡明語法規則,在科學運算過程中效率高等特點,選用Python軟件設計代碼實現多元隱函數方程組確定的隱函數求偏導數可以節省人工計算時間,提高計算準確度,有助于對實際問題的目標函數進行準確分析,從而提高問題解決的效率。