日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python求导函数的值_python怎么实现函数求导

發布時間:2023/12/4 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python求导函数的值_python怎么实现函数求导 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python實現函數求導的方法是:1、利用sympy庫中的symbols方法傳入x和y變量;2、利用sympy庫中的diff函數傳入需要求導的函數即可返回求導之后的結果。

python利用sympy庫對某個函數求導,numpy庫使用該求導結果計算的程序

在python數據處理過程中,我們經常會遇見這樣一種情況。需要對一個函數表達式求偏導,并將具體數值代入導數式。

而python中通常可用于函數求導的函數是sympy庫中的diff()函數。

但他通常所求得的導數只是一個符號表達式。不能直接帶入數據使用。

如下例: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()函數分別賦值后,用float進行類型轉換后,才能利用numpy進行數值計算。

如下例: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不是單一的值呢?而是一個數組。

我們可以利用一個循環來完成。

如下例: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)#將列表轉換為數組

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]

由此便實現了由sympy得到求導結果,到numpy庫進行數值計算。

本人還是python初學者,有什么錯誤懇請各位大佬及時指正~

學習路上共同進步~推薦課程:Python3 Selenium3 自動化測試開發實戰

總結

以上是生活随笔為你收集整理的python求导函数的值_python怎么实现函数求导的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。