Компьютерная алгебра в программе Mathematica 4

         

Реализация интервальных методов —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 методом Ньютона (касательной).
Во всех функциях можно опциями задать максимальное число рекурсий (Max-Recursion) и погрешность (WorkingPrecision). Примеры применения этих функций даны ниже:

<<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]









Содержание раздела