Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. Под ред. А.А.Абрамова (1986) (1095855), страница 11
Текст из файла (страница 11)
43 Методы Рунге — Кутта выше четвертого порядка могут быть построены, но только эа счет еще больших затрат на вычисление значений функцяи 7. Методы Рунге — Кутга порядка р требуют р вычислений значений / при 2 ~ р ~ 4, р+ 1 вычислений при 5 < ~ р < 7 и р+ 2 вычислений при р > 8. Подробное обсуждение методов Рунге — Кутга имеется, например, в книгах 138, 921. Все хорошие программы, реализующие методы Рунге — Кутга, используют некоторый механизм автоматического изменения шага интегрирования Ь.
Интуитивно ясно, что если решение изменяется плавно, то можно вести интегрирование с относительно большим шагом. В областях же, где решение изменяется резко, необхадгмо считать с маленьким шагом. Проблема заключается в том, как определить величину шага, с которым следует начать следующий шаг интегрирования. Обычный подход состоит в оценке локальной ошибки дискретизации и, в зависимости ат ее величины, уменьшении или увеличении текущего значения шага. Существует несколько способов оценки локальной ошибки. Два простых способа состоят либо в прохождении последнего шага интегрирования с половинным шагом и сравнении двух полученных результатов, либо в использовании двух методов Рунге — Кутта, имеющих разный порядок.
Оба эти способа требуют дополнительного вычисления значений 7'. В насгояшее время, . по-видимому, самым эффективным является использование формул Рунге — Кутта — Фельберга. Эти формулы позволяют, например, применять метод Рунге — Кутга шгюго порядка для оценки ошибки метода Рунге — Кутта четвертого порядка таким образом, что требуется всего только шесть вьгчисленнй значений 7; в противоположность десяти при использовании обычных формул Рунге— Кутга.
УНРАЖНЕННН 22 2.2.!. Перепишите уравнения (2.1.3) модели хищник — жертва в виде (2.2.1), т.е. выпишяте функции ~, и ~,. Проделайте то же самое для уравнений траектории (2.1.15), (2.1.17) и (2.1.18). 2-2.2. Примените метод Эйлера к задаче Коши у'= -у, 0 ~ х < 1, у (0) = 1 с л'= 0,25.
С)маните ваши результаты с точным решением у(х) =с . Повторите вычисления при меньших Л. 2.2.3. Проверьте результаты расчетов, приведенные в табл. 2.1 и 2.2. 2.24 Примените метод Хыана к задаче из упражнения 2.2.2. Сравните полученные результаты с результатами по методу Эйлера.
2-2.5. Выпишите функцию у из (2.2.21) для метода Рунге — Кутта четвертого порядка (2.2.20) . 2.2.6. Метод уя+г =ух+А|(ха+ (Ь/2), уй+ (Ь/2)~(ха,у~,)) называются правилам средней точки. Покажите, что этот метод имеет второй порядок точности. 2.2.7. Запишите метод Рунге — Кузта четвертого порядка (2.2.20) для системы (2.2.30) в векторной форме. 2.2.8. Примените' метод Эйлера н метод Хьюиа к задаче у'(х) =х*+ 1у(х) Г, у (0) = 1, х > О,и вычислите у, при и = 0,1. 2-2.9. Для метода Рунге — Кутга четвертого порядка (2.2.20) сделайте рисунок, соответствующий рис.
2.5. 2.2.10. Повторите представленные на рис. 2.8 вычисления, используя метод Эйлера с величинами шага 0,5 и 0,25. Насколько малым следует выбрать шаг, чтобы график решения на рисунке выглядел замкнутым? 2.2.11. Проверьте устойчивость решения уравнений 2.2.34 модели хищник — жертва по отношению к изменению начальных условий. Для этого измените начальные условия х = 80, у„= 30 на единицу в квкдом направлении (четыре различных случая) и повторите вычисления, используя метод Рунге — Кутга второго порядка.
2.3. Полииомиальная интерполяция Описанные в разделе 2.2 методы были одношаговыми, т.е. методами, которые аппраксимируют значение у в хь+г, используя только информацию в предыдущей точке ха. В разделе 2.4 будут изложены методы, которые используют информацию о нескольких предыдущих точках. Но для 44 развития этих методов нам сначала необходимо рассмотреть полиномиальную интерполяцию, которая и является темой настоящего раздела.
Пусть нам заданы набор точек (узлов) х0, х,,..., х„и соответствующий набор чисел у0, у~, ° ° у ° Задача интерполяции заключается в построении такой функции К, которая удовлетворяет соотношениям Ихг) = Ун 1 = О, 1,..., и. (2.3.1) Существует много типов аппроксимирующих функций, но в этом разделе интерес для нас будут представлять полиномы. Непосредственно не вполнв очевидно, что полиномами можно интерполировать данные в заданных узлах.
Если, например, данные заданы в трех различных узлах, то никакой полипом первой степени (линейная функция) не сможет интерполировать эти данные, если только они не лежат на одной прямой. В то же время существует полипом второй степени и множество полиномов третьей степени, которые будут интерполировать эти данные. Основной результат для задачи полиномиальной интерполяции дает следующая Т е о р е м а 2.3.1 (существование и единственность интерполяционного полинома) . Если узлы х„„х„...,х„различны, то для любых ус,у,, ..., у„существует единственный полипом р(х) степени не выше п такой, что р(х;) =у;, ю'=0,1,...,и. (2.3.2) До к аз а тел ь с тв о. Существование может быть доказано построением полиномов Лагранжа, определяемых формулами (х — х ) (х — х, )...
(х — х;, )(х — х;+,)... (х — х„) Их) (х; — х„)(х; — х,)... (х; — х;, )(х; — х,+,)... (х1 — х„) — й ( " "' ). ьФ! (2,3.3) У=О,1,..., Легко убедиться, что этн полиномы, каждый из которых имеет степень и, удовлетворяют соотношениям ~1, если 1=1, Цх,) = (2.3.4) 1 О, если 1Ф!'. Следовательно, полипом 1; (х)у; равен нулю во всех узлаххг (1 = О, 1,... ..., и), за исключением узла х;, где 11 (х;) у, = у;.
Полагая теперь П р(х)= Х 1(х)у, (г.з.з) ра получаем полином степени не выше и, который интерполирует исходные данные. Для доказательства единственности предположим противное, т.е. предположим существование другого ннтерполяционного полинома ц(х) степени не выше и. Полагая т(х) = р(х) — ц(х), получаем полипом степени не выше п, который обращается в нуль в и+ 1 различных точках х„,х„... ,х„.
По основной теореме алгебры такой полипом должен быть тож- дественно равен нулю и, следовательно, р(х) ь— э гт(х). Таким образом, единственность доказана. Как пример полиномиальной интерполяции давайте построим полипом не выше второй степени, такой, что р( — 1) =4, р(0) = 1 и р(1) = О. Соответствующий интерполяционный полипом (2.3.5) имеет вид (х — 0)(х — 1) (х — ( — 1))(х — 1) (х — ( — 1))(х — О) р(х) = 4+ 1+ 0= ( — 1 — О) ( — 1 — 1) (Π— ( — 1)) (Π— 1) (1 — ( — 1))(1 — О) = 2хз — 2х + 1 — х~ + 0 = хз — 2х + 1.
Легко проверить, что р(х) действительно интерполирует эти данные. Естественно возникает вопрос о точности полнномиальной интерполяции. Но сначала мы должны сформулировать, что мы здесь будем понимать под точностью, В самом деле, если имеем данные только в и+ 1 точках и интерполяцнонный полипом точно согласуется с данными в этих точках, то чего еще можно желать? Обычно необходимость интерполяции возникает в ситуации, когда некоторая функция т определена навсеминтересуюшемнасинтервале, но ее значения известны только на дискретном множестве точек. В этом случае интересно рассмотреть отличие р(х) от г (х) при значениях х, лежащих между узлами.
Следующая теорема дает выражение ошибки через старшие производные функции 1. Т е о р е м а 2.3.2 (ошибка полнномиальной интерполяции). Пусть функция г (х) .имеет и + 1 непрерывную производную на некотором интервале, соЬержагием [хо, х„~, где хо < х, < ... < х„— различные углы. Тогда ес йг р(х) — единственный полином степени не выше и, удовлетворяющий соотношениям р(х;) = Дхг), г =0,1,...,и, то для любого х из указанного интервала (х — хо)(х — х,)...
(х — х„) (п + 1)! (2.3.6) где т — некоторая точка из интервала, содержащего хо, х„и х. Мы приведем доказательство этой теоремы в дополнительных замечаниях к этому разделу. Здесь обсудим только некоторые ее следствия. Прежде всего, отметим, что если даже гг не очень велико (например, 4 или 5), то, вероятно, все равно окажется сложно, если вообще возможно, вычислить производную порядка и+ 1 от функции Г. Даже если п = 1 (линейная интерполяция) и нужна только вторая производная от Г, ее тоже ': может оказаться невозможно определить, если сама функция т' не задана, а известны только ее значения в дискретных точках; самое большее, что мы можем сделать, это получить некоторую оценку второй производной на основе наших предположений о свойствах функций 1.
Формула (2;3.6) только в очень редких случаях может быть использована для получения точной оценки погрешности. Тем не менее она часто оказывается полезной для понимания внутренней природы возникающих ошибок. Давайте рассмотрим пример, где предположим, что узлы х; расположены равномерно с шагом Ь. Тогда, как легко видеть, для любого х из отрезка [хо, х„] ! (х — хо ) (х — х, )... (х — х„) ] < (и + 1)1 Ь "+ 1, и из (2.3.6) имеем ]/'(х) — р(х) ~ ~МЬ "+', (2.3.7) Тогда функция я, определенная равенствами — 54х~ +21 х+1, 0 < х < 1/3, (23.8) 8(х) = -6х+4, 1/3 < х ~ 2/3, — 54х~ +93х — 38, 2/3 < х < 1, является кусочно-квадратичной на [О, 1] и совпадающей с У в заданных узлах; функция х непрерывна на всем отрезке и квадратична на каждой из частей [О, 1/3], [1/3, 2/3] и [2/3, 1]. График этой функции приведен на рнс.