2014-12-16 1 views
0

특정 확장 시리즈를 만들고 싶습니다. 어떻게 할 수 있는지 잘 모르겠습니다. 내 목표는 각 주문에 대한 기능의 큰 숫자 쓰기 피하기 위해 내 일련의 순서를 지정 할 수있다 : I 시도기능별 확장 시리즈

enter image description here

을 그 :

import numpy as np 

order = 3 

def expan(order) : 
    n = 0 
    expan = 0 
    add = (Kappa + n/2. + (-1)**n)*np.cos(n*theta/2.) - n/2.*np.cos((n-4)*theta/2.) 
    for i in order: 
     expan += add   
     power += 1 
return expan 
+0

왜 -2 ...? 설명 주셔서 감사합니다! – user3601754

+0

아마 모조 게 모자를 얻으려는 사람들 ... – matsjoyce

답변

2

당신 numpy로 일을 벡터화하고 다음과 같이하면됩니다 :

def expand(order, kappa, theta): 
    n = np.arange(order) 
    return np.sum((kappa + n/2 + (-1)**n)*np.cos(n*theta/2) - 
        n/2*np.cos((n-4)*theta/2)) 
+0

하지만 내 목표 인 minizimation을 원한다면 작동하지 않습니다 .../ – user3601754

+0

"최소화를하는 것"을 더 자세히 설명해야합니다. 의미, 그리고 어떻게 도움이되지 않는가? 새로운 질문이 아마도 갈 길입니다. – Jaime