Sunday, 15 January 2012

python - Sympy Lambdify get 3d plot for 2d equation in mayavi -


  str_exp = "x + y" expr = sympify ((str_expr)) एक्स, वाई, जेड = एनपी ओग्रिड [x_start: x_end: no_x_points, y_start: y_end: no_y_points, z_start: z_end: no_z_points] f = lambdify ((x, y, z), expr) foo = f (एक्स, वाई, जेड)  

भले ही expr x और y का एक फ़ंक्शन है, मुझे उम्मीद है कि foo 3d का निर्माण करने के लिए डेटा के रूप में z भी विविध किया जा रहा है जब मैं मायावी का उपयोग करके foo साजिश करने की कोशिश करता हूं, तो एक विमान की बजाए एक पंक्ति का प्लॉट किया जा रहा है।

मुझे यकीन है कि यह सिम्पी के lamdify के रूप में foo है (100,100,1) का आयाम है। जब expr है x + y

मैं लगता है कि समस्या यह होगी कि expr में केवल 2 चर होंगे और इसलिए आपको आवश्यकतानुसार 3 डी सरणी नहीं मिलेगी। इसलिए, सिम्पी की सिम्फ़िफाइ फ़ंक्शन अभिव्यक्ति (या स्ट्रिंग दी गई) को सरल नहीं करता है। तो, आप "(z + 1) ** 2 - z * z - 2 * z - 1" (या कुछ सरल अभिव्यक्ति जैसे कि z शब्द को रद्द नहीं कर सकते हैं) को जोड़ सकते हैं < Code> str_exp यदि आपके पास इसमें 'z' शब्द नहीं है।

इस प्रकार sympify इस तरह से आप z के साथ अभिव्यक्ति वापस करेगा।

  & gt; str_expr = "x + y + (z + 1) ** 2 - z * z - 2 * z - 1" & gt; & gt; sympify ((str_expr)) x + y - z ** 2 - 2 * z + (z + 1) ** 2 - 1  

No comments:

Post a Comment