2019年3月22日 星期五

Bisection Method in C and C++ (二分法)

Bisection Method in C and C++

源自於
https://www.thecrazyprogrammer.com/2017/04/bisection-method.html


In this tutorial you will get program for bisection method in C and C++.
To find a root very accurately Bisection Method is used in Mathematics. Bisection method algorithm is very easy to program and it always converges which means it always finds root.
Bisection Method repeatedly bisects an interval and then selects a subinterval in which root lies. It is a very simple and robust method but slower than other methods.
It is also called Interval halving, binary search method and dichotomy method.
Bisection Method calculates the root by first calculating the mid point of the given interval end points.

Bisection Method in C and C++

Bisection Method Procedure

The input for the method is a continuous function f, an interval [a, b], and the function values f(a) and f(b). The function values are of opposite sign (there is at least one zero crossing within the interval). Each iteration performs these steps:
1. Calculate the midpoint c = (a + b)/2
2. Calculate the function value at the midpoint, function(c).
3. If convergence is satisfactory (that is, a – c is sufficiently small, or f(c) is sufficiently small), return c and stop iterating.
4. Examine the sign of f(c) and replace either (a, f(a)) or (b, f(b)) with (c, f(c)) so that there is a zero crossing within the new interval.

Pros and Cons

Advantage of the bisection method is that it is guaranteed to be converged and very easy to implement.
Disadvantage of bisection method is that it cannot detect multiple roots and is slower compared to other methods of calculating the roots.

Program for Bisection Method in C

Output
a = -10.000000
b = 20.000000
Root = 5.000000
Root = -2.500000
Root = 1.250000
Root = -0.625000
Root = -1.562500
Root = -1.093750
Root = -0.859375
Root = -0.976563
Root = -1.035156
Root = -1.005859
Root = -0.991211
Root = -0.998535
Accurate Root calculated is = -0.998535

Program for Bisection Method in C++

This article is submitted by Rahul Maheshwari.


沒有留言:

張貼留言

Node-Red 抓取 opendata 的資料集產生AQI 空氣品質指

Node-Red 抓取 opendata 的資料集產生AQI 空氣品質指標 實現透過 Node-RED 抓取環境部 OpenData(空氣品質 AQI)資料,最核心的流程為: 注入觸發(Inject) → HTTP 請求(http request) → 解析 JSON 資料(Fu...