2014-05-20 7 views
5

मैं सोच रहा था कि np.polyval() का एक सुविधाजनक व्यस्त कार्य है, जहां मैं y मान देता हूं और यह एक्स के लिए हल करता है?numpy.polyval के उलटा फ़ंक्शन()

मैं जानता हूँ कि एक तरह से मैं यह कर सकता है:

import numpy as np 

# Set up the question 
p = np.array([1, 1, -10]) 
y = 100 

# Solve 
p_temp = p 
p_temp[-1] -= y 
x = np.roots(p_temp) 

हालांकि मेरा अनुमान है सबसे अधिक है इस कोड को कम पठनीयता है पर सहमत होंगे। कोई सुझाव?

उत्तर

9

इस तरह कुछ कैसे?

In [19]: p = np.poly1d([1, 1, -10]) # Use a poly1d to represent the polynomial. 

In [20]: y = 100 

In [21]: (p - y).roots 
Out[21]: array([-11., 10.]) 

poly1d वस्तु, अंकगणितीय आपरेशनों को लागू करता है एक नया poly1d वस्तु वापस जाने के लिए इतना p - y एक नया poly1d है:

In [22]: p - y 
Out[22]: poly1d([ 1, 1, -110]) 

एक poly1d रिटर्न के roots विशेषता आप उम्मीद करेंगे क्या।

संबंधित मुद्दे