2017-03-07 1 views
0

나는 (의사 코드에서 적어도) 매우 간단한 코드를 작성하는 몇 가지 도움이 필요합니다. 그 위에 나는 처음 세 계수를 항상 0으로 고정시키고 싶습니다. 그래서 파이썬 다항식의 일부 계수가 고정되어 있어야하며, 순서는 매개 변수 여야하며 변수 목록을 만들어야합니까? 내가 n은 매개 변수이며 변하기 쉬워해야 순서 <code>n</code>의 다항식을 사용하여 적합한 데이터를 원하는</p> <p>:

order = 5 
def poly(x,c0=0,c1=0,c2=0,c3,c4,c5): 
    return numpy.polynomial.polynomial.polyval(x, [c0,c1,c2,c3,c4,c5], tensor=False) 
popt, pcov = scipy.optimize.curve_fit(poly,x,y) 

같은 뭔가가 필요 그래서 문제 내가 sove 기압은 할 수 없습니다

내가 원을 계수의 n 수의 다항 함수를 만들려면 어떻게해야합니까? 기본적으로 길이가 n 인 변수 목록을 작성해야합니다.

보다 해결되면 c0c2에서 0으로 설정할 수 있습니다.

나는 분명히 할 수 있었으면 좋겠다. 제 질문을 수정하도록 도와주세요.

답변

1

현재 처음 세 개의 계수를 0으로 고정하지 마십시오. 기본값 만 지정하면됩니다.

임의의 인수 목록을 당신을 위해 무엇을 찾고있는 것 같다 :

def poly(x,*args): 
     return numpy.polynomial.polynomial.polyval(x, [0,0,0] + list(args), tensor=False) 

인수의 수는 고정 길이해야하는 경우 (예를 n을 위해), 당신은 렌 (인수를) 확인할 수와 오류를 발생 필요하다면. poly(x,a,b,c)를 호출

이제 계수 다항식 함수를 반환 [0,0,0,a,b,c]

당신은 파이썬의 문서에 대한 자세한 내용은 찾을 수 있습니다

: https://docs.python.org/3/tutorial/controlflow.html#more-on-defining-functions

당신은 작성해야합니다
+1

'(0, 0, 0) + args' 또는' [0,0,0] + list (args)'그렇지 않으면 얻을 수 있습니다.'TypeError : 목록에만 연결 ("튜플"이 아닌) 할 수 있습니다. – kazemakase

+0

당신이 맞아요, 난 방금 –

+0

그것을 수정했지만, 다항식의 경우 우리가 22 번 순서로 말하기 때문에,'a, b, c ...'인수를 지정하지 않아도 다항식 함수를 만들고 싶습니다. 모든 변수를 쓰는 것은 지루할 것입니다. –