2017-02-11 3 views
2

に関数polyfitの逆関数を取得し、私は次のようにX/Yポイントの数に二次多項式に適合していますnumpyの

poly = np.polyfit(x, y, 2) 
私が得るために、Pythonでこの機能を反転するにはどうすればよい

を2つのx値は特定のy値に対応するか?

+0

あなたがこれを見ましたhttp://stackoverflow.com/questions/32847605/reverse-output-of- polyfit-numpy? – Chuck

+0

http://stackoverflow.com/questions/23749610/inverse-function-of-numpy-polyvalもご覧ください –

答えて

4

poly と答えをInverse function of numpy.polyval()でどのように組み合わせるかを示す例です。まず

いくつかのデータ:

In [44]: x 
Out[44]: array([0, 1, 2, 3, 4, 5, 6, 7]) 

In [45]: y 
Out[45]: array([ 9, 4, 0, -1, -1, 4, 8, 16]) 

は、データへの多項式をフィット:多項式はそれを行うにはy0

In [47]: y0 = 4 

値を持つ

In [46]: poly = np.polyfit(x, y, 2) 

検索、作成poly1dオブジェクト:

In [48]: p = np.poly1d(poly) 

そしてp - y0のルーツを見つける:

In [49]: (p - y0).roots 
Out[49]: array([ 5.21787721, 0.90644711]) 

チェック:

In [54]: x0 = (p - y0).roots 

In [55]: p(x0) 
Out[55]: array([ 4., 4.]) 
3

np.polyfitは、最良適合多項式の係数を返します。したがって、あなたのpolyc2, c1, c0含まれていて、あなたは

.  2 
. c x + c x + c = y 
. 2  1  0 

ソリューションは、例えばhereのための多くの場所で見つけることができます解決しなければなりません。