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

  • The Modern C# Challenge
  • Rod Stephens
  • 259字
  • 2021-08-13 15:23:59

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.

主站蜘蛛池模板: 福海县| 胶州市| 慈利县| 剑川县| 额敏县| 阳泉市| 岳普湖县| 象州县| 阿合奇县| 玛沁县| 都安| 乌拉特前旗| 湾仔区| 潞西市| 竹溪县| 涞水县| 洪江市| 固安县| 佛山市| 保靖县| 舒城县| 修武县| 雷山县| 棋牌| 舟山市| 商丘市| 连云港市| 枣强县| 广宗县| 固原市| 卢氏县| 监利县| 石林| 克东县| 视频| 甘泉县| 郯城县| 文山县| 北川| 克东县| 十堰市|