2017-09-02 54 views
0

計算衍生考慮這個python腳本通過SciPy的

import numpy as np 
import matplotlib.pyplot as plt 

x = np.linspace(0,1,100) 

def y(x,z): 
    return x**2 + z**-1 - 1 

for z in np.arange(1,50,1): 
    plt.plot(x, y(x,z)) 

在固定的X,我怎麼能畫

plt.plot(z, y(x,z)) 
plt.plot(z, y(x,z).derivative) #dy/dz 
+0

'y(z)'或'y(x,z)'? – eyllanesc

+0

@eyllanesc是,'y(x,z)'。 – Googlebot

+0

你需要什麼類型的衍生物,因爲根據標記它是一個雙變量函數? – eyllanesc

回答

1

必須使用derivative功能:

import numpy as np 
import matplotlib.pyplot as plt 

from scipy.misc import derivative 

x = np.linspace(0,1,100) 

def y(z, x): 
    return x**2 + z**(-1) - 1 

z = np.arange(1.0, 50.0) 

dydz = [derivative(y, zi, args=(x,)) for zi in z] 
plt.plot(z, dydz) 
plt.show() 

截圖:

enter image description here

+0

你正在計算'dy/dx'而不是'dy/dz',但我已經得到了你的方法。 – Googlebot

+0

你確定?,我正在計算正確的導數。 – eyllanesc

+0

你正在繪製'x,y'和它的導數在一個固定的'z'(對於每個z)。它應該是'z,y'和它的導數在一個固定的'x'(對於每個x)。 – Googlebot