85792 (612576), страница 3

Файл №612576 85792 (Метод Рунге-Кутты четвертого порядка с автоматическим выбором шага интегрирования решения задачи Коши) 3 страница85792 (612576) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Для векторных функций эти формулы справедливы покомпонентно (возможно, с различным ). В силу условий порядка первые члены разложения (2.6.5) по степеням обращаются в нуль. Таким образом, справедлива следующая теорема.

Теорема.

Если метод Рунге-Кутты (2.3.1) имеет порядок и если все частные производные до порядка включительно существуют и непрерывны, то локальная погрешность метода (2.3.1) допускает следующую строгую оценку:

, (2.7.7)

или

. (2.7.8)

Продемонстрируем этот результат, применяя к скалярному дифференциальному уравнению первый метод Рунге-Кутты (2.2.4), который имеет порядок . Дифференцируя (2.1.1), получим

. (2.7.9)

Вторая производная величины имеет вид

Если условия теоремы выполнены, то легко видеть, что выражения (2.7.9) и (2.7.10) ограничены постоянной, которая не зависит от , что и дает оценку (2.7.8).

1.7.2 Главный член погрешности

Для методов высших порядков строгие оценки погрешностей, подобные (2.7.7), становятся очень непрактичными. Поэтому гораздо более реалистично рассматривать первый ненулевой член в тейлоровским разложении погрешности.

Теорема.

Если метод Рунге-Кутты имеет порядок и если непрерывно дифференцируема раз, то для главного члена погрешности имеем:

. (2.7.11)

(2.7.12)

1.7.3 Оценка глобальной погрешности

Глобальной (накопленной) погрешностью3 называется погрешность численного решения после выполнения нескольких шагов. Пусть мы имеем некоторый одношаговый метод, с помощью которого при заданных начальных данных и длине шага мы определяем численное решение , аппроксимирующее . Воспользуемся обозначениями Хенричи для этого процесса:

, (2.7.13)

и назовем функцией приращения для данного метода.

Оценивание глобальной погрешности методами a) и b)

Тогда численное решение в точке получается с помощью пошаговой процедуры

, (2.7.14)

и наша задача состоит в оценке глобальной погрешности

(2.7.15)

Эта оценка находится простым способом: локальные погрешности переносятся в конечную точку и затем складываются. Этот «перенос погрешностей» можно выполнить двумя разными способами:

a) перенося погрешность вдоль кривых точных решений; этот способ может дать хорошие результаты, если известны хорошие оценки распространения погрешности для точных решений.

b) перенося погрешность -го шага посредством выполнения шагов численного метода; этот способ использовали в своих доказательствах Коши (1824) и Рунге (1905), он легко обобщается на многошаговые методы.

В обоих случаях оценим сначала локальные погрешности:

. (2.7.16)

Займемся теперь оценкой перенесенных погрешностей .

a) Теорема.

Обозначим окрестность точки , где – точное решение уравнения

.

Пусть в справедливы оценки локальных погрешностей (2.7.16) и выполнено одно из условий:

или . (2.7.17)

Тогда имеет место следующая оценка глобальной погрешности (2.7.15):

, (2.7.18)

где ,

и достаточно мало для того, чтобы численное решение оставалось в .

Доказательство.

При оценка (2.7.18) переходит в .

. (2.7.19)

Подставляя в неравенство

выражение (2.7.18) с учетом (2.7.16) и принимая во внимание, что , приходим к такому неравенству:

.

Выражение в квадратных скобках мажорируется следующими интегралами:

, (2.7.20)

. (2.7.21)

Отсюда вытекает справедливость оценки (2.7.18).

b) При втором способе переноса погрешностей рассмотрим кроме (2.7.14) еще одно численное решение, значения которого в соседних узлах связаны равенством

.

Оценим норму разности через . Для формулы метода Рунге-Кутты запишем в следующих обозначениях:

Вычитая из этих формул соответствующие формулы (2.3.1), получим для норм разностей такие оценки:

Оценивание римановых сумм методом a) и b)

Пусть – постоянная Липшица для функции и пусть . Тогда функция приращения для метода (2.3.1) удовлетворяет неравенству

, (2.7.22)

где

. (2.7.23)

Из (2.7.22) получаем искомую оценку:

, (2.7.24)

и с её помощью оценку перенесенных погрешностей вместо оценки (2.7.19).

Предположим, что для начальных значений, лежащих на точном решении, локальная погрешность удовлетворяет оценке

(2.7.25)

и что в окрестности решения функция приращения удовлетворяет неравенству

. (2.7.26)

Тогда для глобальной погрешности (2.7.15) справедлива следующая оценка:

, (2.7.27)

где .

1.8 Оптимальный выбор шага

Предположим, что при интегрировании от точки до точки с шагом погрешность приближенно равна . Так как это соответствует росту погрешности со скоростью, приблизительно равной , то , где – функция, определяющая шаг. Положим и получим оценку интеграла, который приближенно равен полной погрешности:

С другой стороны, затраты будут пропорциональны числу шагов, которое приближенно равно

Методами вариационного исчисления можно показать, что если мы хотим минимизировать затраты при некотором фиксированном значении погрешности , то следует сохранять постоянной величину . Это означает, что окончательная погрешность должна быть одинаковой на каждом шаге.

В современных программах4, реализующих методы Рунге-Кутты, обязательно используется некоторый алгоритм автоматического изменения шага интегрирования. Интуитивно ясно, что на участках плавного изменения решения счет можно вести с достаточно крупным шагом. В то же время, на тех участках, где происходят резкие изменения поведения решения, необходимо выбирать мелкий шаг интегрирования. Обычно начальное значение шага задет пользователь или оно определено в программе. Далее шаг интегрирования изменяется в соответствии с величиной, получаемой в ходе вычисления оценки локальной погрешности.

Существует достаточно много способов оценки локальной погрешности, среди которых так называемое правило Рунге. Однако в моей программе я использовал самый простой и в то же время эффективный способ оценки локальной погрешности, который описан в разделе 3.1. «Описание программы Ilya RK-4 версия 1.43». Этот метод базируется на удвоении или делении пополам длины шага в зависимости от отношения локальной погрешности и максимально локальной допустимой погрешности .


2. Практическая часть

2.1 Описание программы «Ilya RK-4 версия 1.43»


Программа для нахождения интегральной кривой, удовлетворяющей поставленной задаче Коши написана на языке высокого уровня Borland C++ 3.1. Программа состоит из четырех функций. При помощи директив препроцессора #define определены максимальный шаг и величина локальной максимальной погрешности, а также номер версии программы. Рассмотрим подробнее работу программы в комплексе.

Функция title() предназначена для печати на экране названия программы.

Функция do_step() совершает один шаг Рунге-Кутты и возвращает полученное значение. В качестве входных параметров в нее передается текущее положение, значение искомой функции, вычисленное на предыдущем шаге и величина шага, с которым требуется произвести шаг.

Функция f() задает правую часть дифференциального уравнения, левая часть дифференциального уравнения равна . В качестве аргументов функции передается и .

Функция main() – основная функция программы. У пользователя запрашивается точка, начиная с которой необходимо отобразить решение задачи Коши, точка, правая граница интегрирования и значение в левой точке, через которое обязана проходить искомая интегральная кривая. После этого программа начинает вычислительный процесс, выводя полученные значения на экран в виде списка и в текстовый файл rk4.txt на диск. После того, как будет достигнута правая граница интегрирования, процесс остановится и пользователю будет предложено нажать на любую клавишу для того, чтобы построить график. Для построения графика программа переключается в графический режим. График масштабируется с учетом того, чтобы он всегда был виден на экране вне зависимости от того, как высоко или низко от оси абсцисс он лежит. Кроме того, программа постарается сделать его максимально наглядным. Для этого будут проведены пунктирные линии, соответствующие минимальному и максимальному значению интегральной кривой, левому и правому концам интегрирования, а также значению интегральной кривой в указанной точке . Для того, чтобы пользователь мог легко ориентироваться на графике, рядом с пунктирными линиями пишутся координатные значения с точностью до двух десятичных знаков. Как показали многочисленные тесты, проведенные на компьютере на базе процессора Intel Pentium 4B с тактовой частотой 2.4 ГГц, построение графика происходит значительно быстрее, чем первичный расчет с выводом на экран и записью в файл. В этом легко убедиться5, если задать довольно большой отрезок интегрирования, например [-100,100].

Программа применяет следующий метод Рунге-Кутты четвертого порядка.


Для получения более точных результатов и возможно даже увеличения скорости работы в определенных ситуациях программа использует автоматическое управление длиной шага. Производятся одна итерация с шагом , а затем две итерации подряд с шагом , начиная с позиции x_cur. Разность между первым и последним упомянутым здесь результатами, взятая по модулю, считается локальной погрешностью. Если она больше, чем наперед заданная величина , то шаг делится пополам и тело цикла повторяется.

Для того, чтобы программа могла «разгоняться» после уменьшения шага, предусмотрено условие увеличения длины шага. Оно состоит в том, что если погрешность между вторым из двух значений, вычисленных с шагом и значением, вычисленным с шагом , не превосходит , то шаг увеличивается вдвое и тело цикла повторяется. Отметим, что величина шага не может превосходить значения MAXSTEP, которое определяется директивой препроцессора #define. Если ни одно из двух описанных выше условий не выполняется, это означает, что шаг оптимален и программа производит вычисление значения функции с записью его в файл и отображением на экране.

Характеристики

Тип файла
Документ
Размер
25,4 Mb
Тип материала
Предмет
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6862
Авторов
на СтудИзбе
272
Средний доход
с одного платного файла
Обучение Подробнее