官术网_书友最值得收藏!

22. Bisection root-finding

Root-finding algorithms find values (y) for which an equation y = F(x) equals zero. For example, the equation y = x2 – 4 has roots at x = 2 and x = -2 because at those values y = 0.

To find roots using binary subdivision, the program starts with an interval, x0 ≤ x ≤ x1, which we suspect contains a root. For the method to work, F(x0) and F(x1) must have different signs. In other words, one must be greater than zero and one must be less than zero.

To look for the root, the method picks the middle X value, xnew = (x0 + x1) / 2, and then calculates F(xnew). If the result is greater than zero, then you know that the root lies between xnew and whichever of x0 and x1 gives a value less than zero.

Similarly, if the result is less than zero, you know that the root lies between xnew and whichever of x0 and x1, whichever gives a value greater than zero.

Now, you update x0 and x1 to bound the new interval. You then repeat the process until F(x0) and F(x1) are within some maximum allowed error value.

Write a program that uses binary subdivision to find roots for equations. Make the equation a delegate parameter to the main method so you can easily pass the method different equations. Use the program to find the roots for the following equations:

For extra credit, make the program draw the equations and their roots.

主站蜘蛛池模板: 吉水县| 中卫市| 左贡县| 修文县| 广平县| 成安县| 越西县| 晴隆县| 红安县| 鹤峰县| 固镇县| 沽源县| 嘉义县| 江北区| 大冶市| 肥城市| 新沂市| 瓦房店市| 岢岚县| 千阳县| 临朐县| 信丰县| 城固县| 肇东市| 美姑县| 图们市| 曲松县| 五原县| 象州县| 葫芦岛市| 德保县| 怀来县| 阳高县| 阳东县| 从江县| 错那县| 芦山县| 阿瓦提县| 寿阳县| 克什克腾旗| 江永县|