Какой dx мне выбрать для аргумента np.gradient?

#numpy #gradient

#numpy #градиент

Вопрос:

Я не буду вдаваться в подробности, но у меня есть график E vs T (T — независимая величина) Я хочу производную от E по T. Я не уверен, какой интервал dx я должен выбрать?

Подробные сведения:

T = 10 **(np.arange(-1,1.5,0.05)) (т.е. интервал не равен) E является функцией T.

Вопросы:

Какой интервал я использую?

Мои мысли:

Я думаю, что я беру интервал T, т.е. np.gradient (энергия, dx = T)??

Ответ №1:

Для неравномерного интервала передайте массив позиционных значений (не различий), которые gradient будут использоваться для вычисления dx для каждой точки. То есть передать массив абсолютных позиций, а не различий. Итак, в вашем случае просто передайте T .

Вот пример в качестве теста, где синим цветом обозначена кривая, а красным — вычисленные градиенты.

введите описание изображения здесь

 import numpy as np
import matplotlib.pyplot as plt

T = 10**(np.arange(-1,1.5,0.05))

E = T**2
gradients = np.gradient(E, T)

plt.plot(T, E, '-o') # plot the curve
for i, g in enumerate(gradients): # plot the gradients at each point
    plt.plot([T[i], T[i] 1], [E[i], E[i] g], 'r')
  

Вот строка из документов, которая представляет интерес:

  1. N массивов для указания координат значений вдоль каждого измерения F. Длина массива должна соответствовать размеру соответствующего измерения