Иллюстрированный самоучитель по Mathematica 3/4

Реализация интервальных методов (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]
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.