Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Реализация интервальных методов — IntervalRoots | Учебники

Главная > Mathematica 8 > Реализация интервальных методов — IntervalRoots


Реализация интервальных методов — 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]
 
Табличное численное интегрирование — Listlntegrate
Встроенная в ядро функция NIntegrate вычисляет определенные интегралы при известной подынтегральной функции. Однако нередко, например при экспериментах, такая функция задается таблицей или списком значений. В подпакете List-Integrate имеются функции для решения этой задачи — табличного интегрирования:

  • Listlntegrate [ {yl, y2,…, yn} ,h] — возвращает численное значение интеграла для функции, заданной списком ординат yi при заданном шаге h по х;
  • Listlntegrate [ {yl, y2,…, yn}, h, k] — возвращает численное значение интеграла для функции, заданной списком ординат yi при заданном шаге h по х, используя k точек каждого подинтервала;
  • Listlntegrate [ {{xl, yl}, {х2, у2 },…, {хп, уп}}, k] — возвращает численное значение интеграла для функции, заданной списком координат {х.., у.}. используя k точек для каждого подынтервала.

Примеры применения данной функции:
<<NumericalMath`Listlntegrate`
data = Tablet n^2, {n, 0, 7}]
{0, 1, 4, 9, 16, 25, 36, 49}
ListIntegrate[data, 1]
343/3
Listlntegrate[{{0,0},{1,1},{2,4},{5,25},{7,49}},2] 241/2
При проведении интегрирования для данных, заданных таблично, можно использовать интерполяцию:
арр = Listlnterpolation[data,{{0,7}}] Integrate[app[x],{x,0,7}]
343/3
Integrate[Interpolation[{{0,0},{1,1},{2,4}, {5,25}, {7,49}},
InterpolationOrder->l][x],{x,0,7}]
241/2
 
Численное вычисление пределов — NLimit
В подпакете N limit определена функция
Nlimit[expr,х->х0]
для численного вычисления пределов выражений ехрг (см. примеры ниже):
<<NumericalMath` NLimit`
NLimit[Zeta[s] — l/(s-l), s->l]
0.577216
N[EulerGamma]
0.577216
С помощью команды Options [NLimit] можно просмотреть опции, которые используются функцией NLimit по умолчанию. В этом подпакете задано также вычисление бесконечных сумм Эйлера EulerSum[f, { i, imin, Infinity} ]. Например:
EulerSum[(-l)^k/(2k + 1) , {k, 0, Infinity}]
0.785398
EulerSumt(-1)^k/(2k +1), {k, 0, Infinity},
WorkingPrecision->40, Terms->30, ExtraTerms->30]
0.78539816339744830961566084579130322540
%- N[Pi/4, 40]
-2.857249565x 10-29
Имеется также функция вычисления производной в численном виде:

  • ND [ f, х, хО] — вычисляет первую производную f(x) в точке х0;
  • ND[f, {x,n} ,х0] — вычисляет п-ю производную f(X) в точке х0. Пример вычисления производной:

ND[Exp[Sin[x]], х, 2]
-1.03312
Options[ND]
{WorkingPrecision-> 16, Scale-> 1, Terms-> 7, Method-> EulerSum]

В некоторых случаях вычисления могут быть ошибочными. Тогда следует использовать опции — особенно опцию выбора метода Method. Помимо метода по умолчанию (EulerSum) можно использовать NIntegrate (метод интегрирования по формуле Коши).

Статьи по теме

Комментарии запрещены.