Реализация интервальных методов (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]