fbed99da

Поиск корней уравнений с интерполяцией — InterpolateRoot



Поиск корней уравнений с интерполяцией — InterpolateRoot

Подпакет InterpolateRoot дает средства для ускоренного и более точного поиска корней уравнений по сравнению с соответствующими функциями ядра. Достигается это за счет применения интерполяции функции, корни которой ищутся. Под-пакет задает функцию InterpolateRoot [f, {х, a, b} ], которая находит корень функции f в интервале х от а до b. Вместо функции f можно задавать уравнение eqn. Возможны опции AccuracyGoal->Automatic, Maxlterations->15, WorkingPrecision->$MachinePrecision и ShowProgress->False (указаны принятые по умолчанию значения).

Примеры применения данной функции (n — число итераций):

<<NumericalMath` InterpolateRoot`

n = 0; FindRoot[n++; Exp[x] == 2, {x, 0, 1},

WorkingPrecision -> 100, AccuracyGoal -> 95]

{x->

0.693147180559945309417232121458176568075500134360255 2541206800094933936219696947156058633269964186876}

n

17

n = 0; f[x_] := (n++; Exp[x]-2) /; NumberQ[x]

InterpolateRoot[f[x], {x, 0, 1), WorkingPrecision -> 100,

AccuracyGoal -> 95]; n 10

InterpolateRoot[Exp[x] ==2, {x, 0, 1},ShowProgress -> True,

WorkingPrecision -> 40]

{0, 0.58197670686932642439}

{21, 0, -0.12246396352039524100}

{1, 0.7019353037882764014443370764853594873432}

{21, 20, 0.0130121629575404389120930392554}

{3,0.6932065772065263165289985793736618546663}

{21, 20, 0.000062480788747713548804773113708}

{6, 0.6931471932603933841618726058237307884661}

{21, 20, 1.26443483693584888038460396742xHT8}

{12, 0.693147180559945119457822446

95590259222308309027205042483074}

{40, 20, -1.89953767048152086910014102216x 10-16}

{24, 0.6931471805599453094172321214

5786257157118117337249076750141}



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