小編給大家分享一下python實現(xiàn)函數(shù)求導的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,臨沂企業(yè)網(wǎng)站建設,臨沂品牌網(wǎng)站建設,網(wǎng)站定制,臨沂網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,臨沂網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
python實現(xiàn)函數(shù)求導的方法是:1、利用sympy庫中的symbols方法傳入x和y變量;2、利用sympy庫中的diff函數(shù)傳入需要求導的函數(shù)即可返回求導之后的結果。
python利用sympy庫對某個函數(shù)求導,numpy庫使用該求導結果計算的程序
在python數(shù)據(jù)處理過程中,我們經(jīng)常會遇見這樣一種情況。需要對一個函數(shù)表達式求偏導,并將具體數(shù)值代入導數(shù)式。
而python中通常可用于函數(shù)求導的函數(shù)是sympy庫中的diff()函數(shù)。
但他通常所求得的導數(shù)只是一個符號表達式。不能直接帶入數(shù)據(jù)使用。
如下例:
import sympy as sp import numpy as np x,y = sp.symbols('x y') z = sp.sin(2*sp.pi*x+2*y/5) zx = sp.diff(z,x) zy = sp.diff(z,y) print(zx) print(zy)
其輸出為:
2*pi*cos(2*pi*x + 2*y/5) 2*cos(2*pi*x + 2*y/5)/5
那么該如何解決這個問題呢?
對x,y使用evalf()函數(shù)分別賦值后,用float進行類型轉換后,才能利用numpy進行數(shù)值計算。
如下例:
import sympy as sp import numpy as np x,y = sp.symbols('x y') z = sp.sin(2*sp.pi*x+2*y/5) zx = sp.diff(z,x) zy = sp.diff(z,y) x1 = 10 y1 = 5 z_x1 = float(zx.evalf(subs={x:x1,y:y1})) z_y1 = float(zy.evalf(subs={x:x1,y:y1})) print(z_x1) print(z_y1)
其輸出結果:
-2.61472768902227 -0.16645873461885696
那如果我的x或y不是單一的值呢?而是一個數(shù)組。
我們可以利用一個循環(huán)來完成。
如下例:
import sympy as sp import numpy as np x,y = sp.symbols('x y') z = sp.sin(2*sp.pi*x+2*y/5) zx = sp.diff(z,x) zy = sp.diff(z,y) x_array = np.linspace(-5, 5, 10) y_array = np.linspace(-5, 5, 10) temp_x = []#先定義一個用于存儲x偏導的空列表 temp_y = []#先定義一個用于存儲y偏導的空列表 for i in range(10): z_x = float(zx.evalf(subs={x:x_array[i],y:y_array[i]})) temp_x.append(z_x)#將計算得到的偏導值一一添加到列表中 z_y = float(zy.evalf(subs={x:x_array[i],y:y_array[i]})) temp_y.append(z_y) zx_array = np.array(temp_x)#將列表轉換為數(shù)組 zy_array = np.array(temp_y) print(zx_array) print(zy_array)
輸出結果為:
[-2.61472769 4.11163864 6.02946289 0.89585862 -5.2854481 -5.2854481 0.89585862 6.02946289 4.11163864 -2.61472769] [-0.16645873 0.26175505 0.38384753 0.05703213 -0.33648208 -0.33648208 0.05703213 0.38384753 0.26175505 -0.16645873]
由此便實現(xiàn)了由sympy得到求導結果,到numpy庫進行數(shù)值計算。
看完了這篇文章,相信你對python實現(xiàn)函數(shù)求導的方法有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享題目:python實現(xiàn)函數(shù)求導的方法
瀏覽路徑:http://jinyejixie.com/article34/ghhope.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、靜態(tài)網(wǎng)站、網(wǎng)站改版、網(wǎng)站導航、商城網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)