Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. Под ред. А.А.Абрамова (1986) (1095855), страница 14
Текст из файла (страница 14)
Метод Рунге — Кутта второго порядка (внешняя спираль) и метод второго порядка прогноза и коррекции Адамса (внутренняя спираль), в обоих случаях шаг И = 1; для сравнения сплошной линией изображено *'точное" решение задачи (2.2.34)— (2.2.35) Рис. 2.12. Методы второго порядка Адамса — Башфорта и прогноза и коррекции Адамса в сравнении с "точным" решением задачи (2,2.34) — (2.2.35) 55 Методы этого раздела представляют привлекательную альтерна ву одношаговым методам раздела 2.2.
Оказывается, что можно построить методы высокого порядка, которые требуют только одного вычисления значения У на шаге. И хотя эти методы не являются самостартуюшими, Э наиболее эффективные из имеющихся в настоящее время программ дп ВМ основаны на методах Адамса высокого порядка. (См. дополнительные замечания в конце этого раздела.) 100 Е ° Ф О о ев $ О 60 100 150 200 Расстояние. н Рис. 2.13. Ыет в од торого порядка прогноза и коррекции Адамса дпя задачи о траектории 12.4.17) — 12.4.18) .
Показаны траектории дця двух начальных углов х=цсозд, у= цз1п В, (2.4.17) 1 0 = — — срзцз — я зш В, В = — — сов В, Ю и начальными условиями х(0) = О, у(0) = О, о(0) = уо, В(О) = Во . (2.4.18) В заключение этого раздела вернемся к примерам задач из раздела 2.1. На рис. 2.9 показано приближенное решение уравнений задачи хищник — жертва (2.2.34) — (2.2.35), полученное по методу Рунге — Кутта второго порядка.
На рис. 2.11 мы к этому добавипи приближенное решение, полученное по методу прогноза и коррекции, который использует формулы Адамса — Башфорта (2.4.4) и Адамса — Моултона (2.4.7) и выписан явно в упражнении 2.4.5. Отметим, что ошибки этих двух методов второго порядка сравнимы по величине, хотя спираль одного прибпиженного решения раскручивается внутрь, а другого наружу, В обоих случаях счет проводился с шагом Й = 1. На рис.
2.12 решение по методу прогноза и коррекции второго порядка, показанное на рис. 2.11, сравнивается с методом Адамса — Башфорта второго порядка. Обратите внимание, какое сильное влияние оказывает шаг коррекции на метод Адамса — Башфорта; точность несколько улучшается, но, что более примечательно, спираль приближенного решения тепе ь развертывается внутрь, а не наружу. Расчеты по обоим методам по-прежнему проводились с шагом л = 1.
Об С братимся теперь к задаче о траектории, рассмотренной в раздел 2.1. е истема обыкновенных дифференциальных уравнений, описывающая полет снаряда, задается уравнениями (2.1.15), (2.1 17) и (2.1.18) с Т = 0 ит =0: При расчетах в (2.4 17) использовались следующие значения параметров: и = 15 кг, с = 0,2, р = 1,29 кг(м, т = 0,25 м' и я = 9,81 м(с'. Начальное значение скорости по в (2.4.18) бралось равным 50 м(с. Использовались два различных значения начального угла: до = 0,6 и 1,2 рад.
Траектории полета снаряда показаны на рис. 2.13. дополнительные замечания и ссылки 2.4 л! 1 = 2: а;, г=1 (2,4.1 9) Аналогично, требование точности формулы (2,4.14) для решения у(х) = с ведет к условию !н !л + 1 =а!!!!+а,(!л — 1) + ... + ащ+ Х Е!э (2.4. 20) !' = О Условия (2.4.19) и (2.4.20) называются уюовиями согласованности многошагового метода.
Эти условия являю!ся необходимыми и достаточными для того, чтобы метод имел первый порядок точности. Этот процесс можно продолжить и получить условия на коэффициенты а! и еи которые являются необходимыми и достаточными, чтобы метод. имел любой требуемый порядок точности. Дальнейшее обсуждение !иногошаговых методов имеется, например, в книгах 137,92]. Мы можем объединить одношаговые методы раздела 2.2 и многошаговые методы этого раздела в одну общую формулу: л! та+1 = 2 а! с(с+1 !+Ар(.цс+1 ° хя "" ха+1 — щ' та+1, у»,- у1д+1 — !!!) (24 21) !'= 1 Для одношаговых метоцов щ = 1.
Если при этом а = 1 и функция р не зависит от ха+1 и уь+!, то (2.4.21) превращается в одношаговый метод (2.2.21). С другой стороны, если функция ч имеет вид ~о = Х д1!'(ха+1 ь уа+!;), 1=0 то формула (2.4.21) преврашвется в линейный многошаговый метод (2.4.4) . Формула (2.4.21) фактически включает все используемые в настоящее время методы. На основе методов Адамса разработан целый ряд тонких и весьма сложных программ для ЭВМ. В этих программах методы Адамса реализованы таким образом, что имеется возможность менять не только величину шага, как это упоминалось при обсуждении методов Рунге — Кутта, но и порядок самого метода. В используемых в настоящее время программах порядок точности может достигать тринадцати.
Дальнейшее обсуждение теории и практики использования методов Адамса можно найти, например, в книгах (11, 37 — 38], Прекрасный обзор положения дел к середине 1970-х годов в области разработки и применения программ как для методов Рунге — Кутта, так и многошаговых методов дан в работе [103]. В этой статье подчеркивается тот важный момент, что различия в программной реализации методов на ЭВМ могут оказаться более существенными, чем различия внутренних свойств самих методов. Другой подход к построению многошаговых методов исходит иэ общей формулы линейного метода (2.4,14) и требует, чтобы она была точной, когда решение у дифференциального уравнения является полиномом степени а.
Отсюда будет следовать, что полученная формула определяет метод порядка а. Если, например, 9 = 1, то формула (2.4.14) должна быть точной, если решение является константой; тогда все )) обращаются в нуль (так как ((х, у (л) ) = у' (х) =- О) и мы приходим к условию УПРА ЖНЕННН 2. 4 2.5. Устойчивость, неустойчивость и жесткие уравнения Одним из центральных вопросов, пронизывающих все научное программирование, является проблема устойчивости.
Этот термин используется слишком часто и в зависимости от контекста может иметь различные значения. В этом разделе мы обсудим несколько аспектов проблемы устойчивости в том смысле, как она понимается при численном решении обыкновенных дифференциальных уравнений. Рассмотрим дифференциальное уравнение второго порядка у" — )Оу' — 11у = О (2.5.1) с начальными условиями у(О) = (, у'(О) = -1. (2.5.2) Решением задачи (2.5.1) — (2.5.2), как легко проверить, является функция 2.4Л.
Выпишите интерполяционный полипом второй степени по данным (х» )» г), (х» у, /» з), (х», 7»). Затем подставьте этот полипом в (2.4.3), проинтегрнруйте и получите формулу (2.4.5). Аналогичным образом, проинтегрировав полипом третьей степени, полученный в результате добавления к данным точки (х» 3, 7» 3), выведите формулу (2.4.6). 2.4.2.
Составьте программу дня ЭВМ, реализующую метод Адамса — Башфорта второго порядка (2.4.4) . Для вычисления недостающего стартового значения у, воспользуйтесь методом Рунге — Кутта второго порядка. Решите по вашей программе задачи из упражнений 2.2.2 и 2.2.4 и сравните ваши результаты с методами Эйлера и Хьюна.
2.4.3. Снова выполните упражнение 2.4.2, используя метод Адамса — Башфорта четвертого порядка (2.4.6) . 2.4.4. Проведите подробный вывод метода Адамса — Моултона (2.4.7). Проделайте то же самое для метода (2.4.8) . 2.4.5. Используйте как можно большую часть вашей программы из упражнения 2.4.2 для составления программы, реализующей метод прогноза и коррекции у»+ (р) .(Р) (Р) (г) =у»+ (lг(2)(37»- г» 1), )»+1 =)" (х»+1, у»+ ), у»+1 =у»+ (Ь/2)(7»~ +7»). Решите по этой программе ту же самую задачу уа = -у, у(0) =1„и сравните ваши резуль таты с методом из упражнения 2.4.2.
Составьте также программу для метода (2.4,10). 2.4.6. Вычислите локальную ошибку дискретизации для методов Адамса — Башфорта (2.4.5) н (2.4.6) и покажите, что эти методы имеют третий и четвертый порядок соответственно. (Считайте, что решение достаточное число раз дифференцируемо.) Проделайте то же самое для методов Адамса — Моултона (2.4.7) и (2.4.8) и убедитесь, что они имеют соответственно второй и четвертый порядки. 2.4.7. Для методов Адамса — Башфорта и Адамса — Моултона второго, третьего и четвертого порядков выпишите коэффициенты аГ и 81 в общей формуле линейного многошагового метода (2.4.14) . 2.4.8.
Рассмотрите метод у»+а.=у» 1+ (й/2) (Л,+г+ 27»+ Я» ~) решения задачи Коши у'(х) = 7'(х,у(х)), у(0) = а: а) определите порядок метода; б) подумайте, как применить этот метод к системе уравнений у1 = 7'(х„у)., у (О) = а, какие при этом могут встретиться трудности. 2.4.9. Повторите вычисления из рис. 2.12, используя метод Адамса — Башфорта второго порядка и метод прогноза и коррекции из упражнения 2.4,5. 2.4.10. Повторите вычисления из рис. 2,13. Определите значение угла в,, при котором дапьность полета снаряда составляет 150 м.
(2.5.3) Тогда, как легко убедиться непосредственной подстановкой, решением уравнения (2.5.1) с начальными условиями (2.5.3) будет функция у(х)- 1+ е е-х + е х 12 1 12 (2.5.4) Следовательно, при любом сколь угодно малом е > 0 второй член в (2.5.4) приводит к тому, что решение стремится к бесконечности при х -+ . Эти Л' Ю Рис. 2.14. Решения задачи при мало отличающихся начальных условиях Рис. 2.15. Решения задачи лри трех мало отличающихся начальных условиях два решения показаны на рис. 2.14. Мы говорим, что решение у(х) = е задачи (2.5.1) — (2.5.2) является неустойчивым.
Это означает, что сколь угодно малые изменения начальных условий могут вызвать сколь угодно большие изменения решения при х + ' . В численном анализе такие задачи обычно называют ллохо обусловленными. В этом случае крайне сложно получить указанное решение численно, поскольку ошибки округления и усечения оказывают такое же влияние, как и изменение начальных условий, и приводят к тому, что решение уходит в бесконечность (см.
упражнение 2.5.1) . Еще более резко неустойчивость может проявиться в нелинейных уравнениях. Например, задача у' = ху(у — 2), у(0) = 2 (2.5.5) имеет решение у(х): — 2, которое является неустойчивым. Действительно, прн начальном условии у(О) = уо решение задается формулой 2уо у(х) = уо + (2 — уо)е так что если уо ( 2, то у (х) - 0 при х, а если уа > 2, то решение растет и имеет особенность, когда ус + (2 — уе)е = О. Характерное поведение решений показано на рис. 2.15. Йва предыдущих примера служили иллюстрацией неустойчивости решений самих дифференциальных уравнений. Теперь обратимся к возможной неустойчивости численных методов.