Я хочу вычислить квадрат среднего квадрата функции в Python. Моя функция находится в простой форме, такой как y = f (x). x и y - массивы.Корневой квадрат функции в python
Я попробовал Numpy and Scipy Docs и что-то не мог найти.
Я хочу вычислить квадрат среднего квадрата функции в Python. Моя функция находится в простой форме, такой как y = f (x). x и y - массивы.Корневой квадрат функции в python
Я попробовал Numpy and Scipy Docs и что-то не мог найти.
я буду считать, что вы хотите, чтобы вычислить выражение, приведенное в следующем псевдокоде:
ms = 0
for i = 1 ... N
ms = ms + y[i]^2
ms = ms/N
rms = sqrt(ms)
то есть квадратный корень из среднего значения квадратов значений элементов y
.
В NumPy, вы можете просто квадрат y
, возьмите его mean, а затем его square root следующим образом:
rms = np.sqrt(np.mean(y**2))
Так, например:
>>> y = np.array([0, 0, 1, 1, 0, 1, 0, 1, 1, 1]) # Six 1's
>>> y.size
10
>>> np.mean(y**2)
0.59999999999999998
>>> np.sqrt(np.mean(y**2))
0.7745966692414834
Do уточнить ваш вопрос, если вы имеете в виду спросите что-нибудь еще.
Большое спасибо. Я все еще что-то удивляюсь. Часть определения в википедии говорит, что RMS на самом деле является пределом. Я имею в виду, что это продолжается и продолжается. Но в вашем ответе была рассмотрена только первая степень. Я думаю, что мы пренебрегаем остальными как-то во время расчета? Ваш ответ работает. Но я прошу это прояснить весь предмет. –
@ordinary Если вы пытаетесь вычислить значение RMS синусоидальной волны (т. Е. F (x) - синусоидальная функция) или некоторые такие, то вам нужно выполнить _integration_. Это приближается как суммирование здесь. Предел приходит, потому что вам нужно принимать бесконечно малые интервалы для вашей суммы. Другими словами, вы можете получить более точную оценку значения RMS, если вы используете более тонкое разрешение в 'x'. – Praveen
Предупреждение: в numpy, если число слишком велико по сравнению с их типом (dtype в python), функция мощности может возвращать отрицательные значения. Чтобы этого избежать, иногда полезно использовать значения. Пример: >> np.sqrt (np.mean (y.astype (np.dtype (np.int64)) ** 2)). Не очень приятно в коде, но он будет работать! – PatriceG
Какова функция, которую вы пытаетесь вычислить? Среднеквадратичное значение y? – Praveen
Это также помогло бы, если бы вы могли добавить примерный массив и ожидаемое решение ... – Praveen