{"id":1947,"date":"2025-10-26T08:27:00","date_gmt":"2025-10-26T08:27:00","guid":{"rendered":"https:\/\/www.mathros.net.ua\/en\/?p=1947"},"modified":"2025-11-06T11:23:26","modified_gmt":"2025-11-06T11:23:26","slug":"bisection-method","status":"publish","type":"post","link":"https:\/\/www.mathros.net.ua\/en\/bisection-method.html","title":{"rendered":"Bisection Method: A Simple Approach Without Unnecessary Complications"},"content":{"rendered":"<p>The bisection method is a reliable way to find the root of an equation when an analytical solution is either impossible or too cumbersome. It\u2019s valued for its simplicity and predictability. If a function is continuous on a given interval and changes its sign, it\u2019s logical to narrow the search to a smaller region where the root lies. That\u2019s exactly what this method does. Step by step, it reduces the interval of uncertainty, and you control the accuracy\u2014stopping once the result is precise enough for your needs.<\/p>\n<h2>Bisection Method: The Idea and Geometric Meaning<\/h2>\n<p>Let\u2019s start with the basics. Suppose we have a continuous function on an interval <em>[a,b]<\/em>, where the function\u2019s values at the endpoints have opposite signs. This clearly indicates that somewhere between <em>a<\/em> and <em>b<\/em> the graph crosses the <em>x<\/em>-axis. The process is straightforward: we divide the interval in half and determine on which side of the midpoint the function changes its sign. Then we keep only that half where the sign change occurs. With every division, the interval\u2019s length is reduced by half, and the approximation error becomes smaller and smaller.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-10026107 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method10.jpg\" alt=\"Geometric interpretation of the bisection method\" width=\"600\" height=\"350\" \/><\/p>\n<p>Why is this approach so effective? Its reliability is confirmed by the <a title=\"Intermediate value theorem\" href=\"https:\/\/en.wikipedia.org\/wiki\/Intermediate_value_theorem\" target=\"_blank\" rel=\"nofollow noopener\">Intermediate Value Theorem (Bolzano\u2019s Theorem)<\/a>: if the function values at the ends of an interval have opposite signs, then there must be a point within that interval where the function equals zero. The method doesn\u2019t require calculating derivatives or adjusting complex parameters. It remains stable even in difficult cases where other methods might produce inaccurate results. Yes, its convergence rate is linear\u2014but each step is easy to predict, and the root-containing interval keeps shrinking. It\u2019s like a binary search in the world of equations\u2014minimum effort, maximum reliability.<\/p>\n<h2>Step by Step: From Dividing the Interval to Approximating the Root<\/h2>\n<p>Let\u2019s move on to the algorithm. Suppose we start with an interval <em>[a,b]<\/em> that satisfies the condition <em>f(a)\u22c5f(b)&lt;0<\/em>. We calculate the midpoint:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-10026090 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method2.jpg\" alt=\"Bisection method formula\" width=\"55\" height=\"28\" \/><\/p>\n<p>Next, we check the value of <em>f(c)<\/em>. If <em>f(c)=0<\/em>, the root has been found exactly. If not, we keep only the half of the interval where the sign change occurs\u2014either <em>[a,c]<\/em> or <em>[c,b]<\/em>. Then we repeat the process. Isn\u2019t it convenient that each new step automatically halves the working interval?<\/p>\n<p>How do we know when to stop? There are a few practical criteria. One option is to control the interval length: after <em>k<\/em> steps, it will not exceed <em>(b-a)\/2<sup>k<\/sup><\/em>. Therefore, as soon as the following condition is met:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-10026091 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method3.jpg\" alt=\"Stopping condition of the bisection method\" width=\"53\" height=\"28\" \/><\/p>\n<p>where <em>\u03b5<\/em> is the given error tolerance, the desired accuracy for the argument has been achieved. Another approach is to monitor <em>|f(c)|<\/em>\u00a0and stop when its value is close to zero. Both approaches work well, so the choice depends on the requirements of your specific problem.<\/p>\n<blockquote><p><strong>An important detail:<\/strong> at every stage, the endpoints of the current interval have opposite signs, ensuring that the root always remains within the interval and never &#8220;disappears&#8221; from the search. If there\u2019s only one root in the interval, convergence to it is guaranteed. If there are several roots, the method will lead to the one contained within the working interval.<\/p><\/blockquote>\n<h2>Bisection Method: Practical Application<\/h2>\n<p>Now that we understand the basics, let\u2019s see how the Bisection Method works in a real example. Theory gives us understanding, but practice shows how effective this approach truly is. Let\u2019s go through the entire process\u2014from setting up the problem to obtaining the final result.<\/p>\n<h6>Example 1: Find the solution to the nonlinear equation f(x)=x<sup>3<\/sup>+x-5=0 on the interval [-2,2] with an accuracy of \u03b5=0.01<\/h6>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026102 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method8.jpg\" alt=\"Geometric interpretation of the bisection method- iterations 1-3\" width=\"600\" height=\"350\" \/><\/p>\n<p>First, we check the signs at the endpoints:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026094 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method4.jpg\" alt=\"Bisection method example\" width=\"288\" height=\"16\" \/><\/p>\n<p>Since <em>f(a)\u22c5f(b)&lt;0<\/em>, at least one root exists within the interval. Next, we keep narrowing it down until we reach the desired accuracy.<\/p>\n<table class=\"simple-table\">\n<thead>\n<tr>\n<th>Iteration No.<\/th>\n<th><em>a<\/em><\/th>\n<th><em>b<\/em><\/th>\n<th><em>c=(a+b)\/2<\/em><\/th>\n<th><em>f(c)<\/em><\/th>\n<th>Selected Interval<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>-2<\/td>\n<td>2<\/td>\n<td>0<\/td>\n<td>-5<\/td>\n<td>[0,2]<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>0<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>-3<\/td>\n<td>[1,2]<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>1.5<\/td>\n<td>-0.125<\/td>\n<td>[1.5,2]<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>1.5<\/td>\n<td>2<\/td>\n<td>1.75<\/td>\n<td>2.1094<\/td>\n<td>[1.5,1.75]<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>1.5<\/td>\n<td>1.75<\/td>\n<td>1.625<\/td>\n<td>0.916<\/td>\n<td>[1.5,1.625]<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>1.5<\/td>\n<td>1.625<\/td>\n<td>1.5625<\/td>\n<td>0.3772<\/td>\n<td>[1.5,1.5625]<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>1.5<\/td>\n<td>1.5625<\/td>\n<td>1.5313<\/td>\n<td>0.1216<\/td>\n<td>[1.5,1.5313]<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>1.5<\/td>\n<td>1.5313<\/td>\n<td>1.5156<\/td>\n<td>-0.0028<\/td>\n<td>[1.5156,1.5313]<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>1.5156<\/td>\n<td>1.5313<\/td>\n<td>1.5234<\/td>\n<td>0.0595<\/td>\n<td>[1.5156,1.5234]<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>With each division, the interval\u2019s length halves, and the approximation becomes more accurate.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026104 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method9.jpg\" alt=\"Geometric interpretation of the bisection method- iterations 4-9\" width=\"600\" height=\"350\" \/><\/p>\n<p>After the ninth iteration, we have:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026097 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method5.jpg\" alt=\"Bisection method example\" width=\"256\" height=\"28\" \/><\/p>\n<p>The accuracy condition is satisfied, so we record the result:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026098 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method6.jpg\" alt=\"Bisection method example\" width=\"162\" height=\"27\" \/><\/p>\n<p>To verify the minimum required number of divisions, we use the estimate:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026100 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method7.jpg\" alt=\"Bisection method example\" width=\"206\" height=\"28\" \/><\/p>\n<p>This result perfectly matches our calculations.<\/p>\n<h2>Going Deeper: Three Next Steps \u2014 More Possibilities<\/h2>\n<p>You\u2019ve already experienced the logic of the method in practice. Now let\u2019s expand our toolkit and look at methods that naturally continue this topic and help you confidently work with nonlinear equations.<\/p>\n<ol>\n<li><a title=\"Newton\u2019s method\" href=\"https:\/\/www.mathros.net.ua\/en\/newtons-method.html\">Newton\u2019s Method: Controlling the Speed of Convergence<\/a> \u2014 Uses the tangent at the current point to rapidly reduce the error when a good initial estimate is available.<\/li>\n<li><a title=\"Secant method\" href=\"https:\/\/www.mathros.net.ua\/en\/secant-method.html\">Secant Method: Geometry of the Line Segment in Action<\/a> \u2014 Instead of using a tangent, it constructs a secant between two points on the graph, providing a reliable approximation without requiring derivatives.<\/li>\n<li><a title=\"Combined method of secants and tangents\" href=\"https:\/\/www.mathros.net.ua\/en\/\">Combined Method of Secants and Tangents: A Balance of Efficiency and Stability<\/a> \u2014 Combines the simplicity of secant updates with the fast refinement of the tangent method, ensuring steady and often faster convergence in more complex cases.<\/li>\n<\/ol>\n<h2>Final Step: Turning the Flowchart into a Program<\/h2>\n<p>If you enjoy programming, try transforming the flowchart below into working code. Choose the programming language you\u2019re most comfortable with. Transfer the logic from the diagram into your program and test it on your own examples. Isn\u2019t it fascinating to see how an idea from a textbook comes to life on the screen\u2014providing an accurate approximation thanks to your careful implementation?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10026110 size-full\" src=\"https:\/\/www.mathros.net.ua\/en\/wp-content\/uploads\/2025\/10\/bisection-method11.jpg\" alt=\"Bisection method flowchart\" width=\"600\" height=\"418\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The bisection method is a reliable way to find the root of an equation when an analytical solution is either<\/p>\n","protected":false},"author":1,"featured_media":1948,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"template-centered.php","format":"standard","meta":{"footnotes":""},"categories":[390],"tags":[402,129,399,134,398],"class_list":["post-1947","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-numerical-methods-for-solving-single-variable-equations","tag-bisection-method","tag-iterative-methods","tag-nonlinear-equations","tag-numerical-methods","tag-root-finding"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/posts\/1947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/comments?post=1947"}],"version-history":[{"count":1,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/posts\/1947\/revisions"}],"predecessor-version":[{"id":1949,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/posts\/1947\/revisions\/1949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/media\/1948"}],"wp:attachment":[{"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/media?parent=1947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/categories?post=1947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathros.net.ua\/en\/wp-json\/wp\/v2\/tags?post=1947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}