2016-12-04 2 views
1

파이썬에서 함수의 제곱근 평균을 계산하고 싶습니다. 내 함수는 y = f (x)와 같은 간단한 형태이다. x와 y는 배열입니다.파이썬에서 함수의 제곱근 평균 제곱

시도했는데 Numpy and Scipy Docs을 시도했지만 찾을 수 없습니다.

+0

정확한 기능은 무엇입니까? y의 제곱근 값? – Praveen

+0

예제 배열과 예상 솔루션을 추가 할 수 있다면 도움이 될 것입니다. – Praveen

답변

3

난 당신이 다음 의사에 의해 주어진 식을 계산한다고 가정하겠습니다 : y의 요소의 제곱 값의 평균의

ms = 0 
for i = 1 ... N 
    ms = ms + y[i]^2 
ms = ms/N 
rms = sqrt(ms) 

즉 제곱근. 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 

는 당신이 의미하는 경우 귀하의 질문에 명확하게 수행 다른 것을 물어보십시오.

+0

대단히 고마워요. 나는 아직도 뭔가 궁금해. Wikipedia의 정의 부분에 따르면 RMS는 실제로 제한 사항입니다. 나는 그것이 계속 진행된다는 것을 의미합니다. 그러나 당신의 대답은 오직 1 학점으로 간주되었습니다. 계산 중에 어떻게 든 나머지는 게을리하지 않을까? 답변이 작동합니다. 그러나 나는 전체 주제를 명확히하기 위해 이것을 묻습니다. –

+0

@ 보통 사인파의 RMS 값을 계산하려는 경우 (즉, f (x)가 사인 함수) 또는 일부 경우에는 _integration_을 수행해야합니다. 이것은 여기에 요약으로 근사치입니다. 귀하의 합계에 대해 극히 적은 간격을 두어야하기 때문에 한계가 있습니다. 즉, 'x'에서 더 세밀한 해상도를 사용하면 RMS 값을보다 정확하게 예측할 수 있습니다. – Praveen

+0

경고 : numpy에서 숫자가 파이썬의 dtype과 비교하여 너무 크면 power 함수가 음수 값을 반환 할 수 있습니다. 이를 방지하기 위해 값을 변환하는 것이 유용한 경우가 있습니다. 예 : >> np.sqrt (np.mean (y.astype (np.dtype (np.int64)) ** 2)). 코드에서별로 좋지는 않지만 작업을 수행합니다! – PatriceG