#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')
Вот строка из документов, которая представляет интерес:
- N массивов для указания координат значений вдоль каждого измерения F. Длина массива должна соответствовать размеру соответствующего измерения