Реализация интервальных методов —IntervalRoots
Реализация интервальных методов —IntervalRoots
Иногда важно не найти приближенное значение корня, а уточнить интервал, в котором он находится. В подпакете IntervalRoots для этого используется ряд известных методов, реализованных следующими функциями:
- IntervalBisection [f ,x, int, eps] — находит корень функции f(x) путем уточнения исходного интервала int с заданной погрешностью eps методом половинного деления;
- IntervalSecant [f ,x, int, eps] — находит корень функции f(x) путем уточнения исходного интервала int с заданной погрешностью eps методом секущей;
- IntervalNewton [ f, x, int, eps ] — находит корень функции/(x) путем уточнения исходного интервала int с заданной погрешностью eps методом Ньютона (касательной).
<<NumericalMath`IntervalRoots` IntervalBisection[Sin[x], x, Interval[{2., 8.}], .1] Interval[{3.125, 3.218750000000001}, {6.218750000000003, 6.312500000000006}] IntervalBisection[Sin[x], x, Interval[{2., 8.}], .01] Interval[{3.125, 3.17188}, {6.26563, 6.3125}] IntervalBisection[Sin[x], x, Interval[{2., 8.}], .01, MaxRecursion -> 10] Interval[{3.13672, 3.14258}, {6.27734, 6.2832}] IntervalSecant[Sin[x], x, Interval[{2., 8.}], .01] Interval[{3.14159, 3.1416}, {6.28316, 6.28321}] IntervalSecant[Sin[x], x, Interval[{2., 8.}], .01] Interval[{3.14159, 3.1416}, {6.28316, 6.28321}] IntervalBisection[Sin[x], x, Interval[{2, 8}], .1, WorkingPrecision -> Infinity]