2010-12-01 14 views
9

क्या कोई बायसेक्शन विधि है जिसे मैं ऑनलाइन पा सकता हूं, खासकर अजगर के लिए?बिसेक्शन विधि का उपयोग करके समीकरण हल करना

उदाहरण के लिए, इन समीकरणों को दिया गया है कि मैं उन्हें बायसेक्शन विधि का उपयोग करके कैसे हल कर सकता हूं?

x^3 = 9 
3 * x^3 + x^2 = x + 5 
cos^2x + 6 = x 
+0

में कार्यान्वित किया जाता मैं अपने संख्यात्मक तरीके पाठ्यक्रम इच्छा अजगर का इस्तेमाल किया था। :/यह वास्तव में खुद को लागू करने के लिए निर्देशक है; एल्गोरिदम के लिए विकिपीडिया के विवरण को पढ़ें। –

+0

कुछ ऐसा करने का सर्वोत्तम उपयोग जो पहले से ही इसे लिखने की कोशिश करने के बजाय कई लोगों द्वारा उपयोग में किया जा रहा है। [बाइनरी खोज कार्यान्वयन का 75% -90% गलत है।] (Https://en.wikipedia.org/wiki/Binary_search_algorithm#Implementation_issues) – endolith

उत्तर

12

scipy.optimize.bisect का उपयोग करना:

import scipy.optimize as optimize 
import numpy as np 

def func(x): 
    return np.cos(x)**2 + 6 - x 

# 0<=cos(x)**2<=1, so the root has to be between x=6 and x=7 
print(optimize.bisect(func, 6, 7)) 
# 6.77609231632 

optimize.bisect कॉल _zeros._bisect, जो सी

+0

ए और बी मान कैसे प्राप्त करें? और लूप की संख्या भी? उदाहरण के लिए – bbnn

+0

उदाहरण में http://math.fullerton.edu/mathews/n2003/BisectionMod.html यह इस समीकरण को हल करने की कोशिश कर रहा है (x^3 + 4x^2-10 = 0) और यह फ़ंक्शन बिज़क्शन [1, 2,30] संख्या 1 2 और 30 कैसे प्राप्त करें? क्या यह समीकरण से है? – bbnn

+0

@bn: 'bisect' का उपयोग करने के लिए, आपको' a' और 'b' की आपूर्ति करनी चाहिए जैसे कि 'func (a)' और 'func (b)' के विपरीत संकेत हैं, इस प्रकार यह गारंटी देते हैं कि '[a a' , बी] चूंकि 'func' निरंतर होना आवश्यक है। आप 'ए' और' बी' के मानों का अनुमान लगाने का प्रयास कर सकते हैं, थोड़ा सा विश्लेषण का उपयोग कर सकते हैं, या यदि आप इसे प्रोग्रामेटिक रूप से करना चाहते हैं, तो आप उम्मीदवार 'ए' और' बी 'उत्पन्न करने की कुछ विधि तैयार कर सकते हैं जब तक आप दो नहीं पाते इसके विपरीत संकेत हैं। हालांकि यह सरल 'bisect' विधि के दायरे से बाहर है। – unutbu

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