2017-03-07 6 views
0

私は(少なくとも擬似コードで)かなり簡単なコードを書くいくつかの助けが必要:いくつかの係数が固定されているpython多項式のフィッティング、順序はパラメータでなければならない、変数のリストを作成する必要がありますか?

私は、nはパラメータであり、changableあるべき秩序n、の多項式を用いてフィッティングデータが欲しいです。私は常に最初の3つの係数をゼロに固定しておきたいと考えています。だから私は

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

現在のところ、最初の3つの係数を0に固定しないでください。単にデフォルト値を指定するだけです。

任意の引数リストは、あなたが探しているもののように見える:

​​

引数の数が(例えばn用)固定長でなければならない場合は、LEN(引数)をチェックし、エラーを発生させることができます必要であれば。 poly(x,a,b,c)を呼び出すと、今あなたは、Pythonのドキュメントでより多くの情報を見つけることができ、係数[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:list(' tuple 'ではなく)のみを 'list'に連結することができます。 – kazemakase

+0

あなたは正しいです、私はちょうどそれを訂正しました –

+0

私は参照してください、多項式のために私たちは順序22を言うので、私は引数を指定することなく多項式関数を作成したいと思います、すべての変数を書くのは面倒です。 –

関連する問題