Page 146 - 6734
P. 146

fv=vectorize(f) # векторизована функція (приймає та
           повертає вектори)
           print fv([1,2,3]) # повертає масив ndarray

           [3 4 5]
                           scipy – похідна і первісна функції

               В  прикладі  дано  функцію             .  Шляхом  чисельного
           диференціювання  [11]  знаходиться  її  похідна                 .
           Шляхом  кумулятивного  інтегрування  знаходиться  первісна
                                         (дивись    документацію    функції
           scipy.integrate.cumtrapz).
               Похідна  і  первісна  можуть  бути  використані  для  пошуку
           екстремумів  функції  та  для  розв’язування  рівнянь.  Для  пошуку
           екстремуму  y  потрібно  розв’язати  рівняння           .  А  для
           пошуку кореня потрібно шукати екстремум первісної Y.
           import numpy as np
           import matplotlib.pyplot as plt
           from scipy.integrate import cumtrapz

           X=np.linspace(-5,3)
           Y=X**2+4*X # функція
           plt.plot(X,Y,'k-')

           Y1=np.diff(Y)/np.diff(X) # похідна
           plt.plot(X[:-1],Y1,'k--')
           Y1=np.gradient(Y,X[1]-X[0]) # або
           plt.plot(X,Y1,'k--')

           Y_int=cumtrapz(Y, X, initial=0) # первісна
           plt.plot(X,Y_int,'k:')
           plt.xlabel('$x$');plt.ylabel('$y, \dot{y},
           Y$');plt.grid();plt.show()


                                         145
   141   142   143   144   145   146   147   148   149   150   151