Про заболевания ЖКТ

Студенты ФИРТ

Группа ПО

Преподаватель

Гадилова Ф.Г.

ВВЕДЕНИЕ……………………………………………………………………………..…3

ГЛАВА 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

      СУТЬ МЕТОДА РУНГЕ-КУТТА…………………………………………5

1.2. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ…………………………10

ГЛАВА 2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1. ПОСТАНОВКА ЗАДАЧИ И РАЗРАБОТКА АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ…………………………………………………………………..……….11

2.2. ВЫБОР СОСТАВА ТЕХНИЧЕСКИХ И ПРОГРАММНЫХ СРЕДСТВ…………………………………………………………………...……...16

2.4. ТЕСТИРОВАНИЕ ПРОГРАММЫ……………………………………...…18

ЗАКЛЮЧЕНИЕ………………………………………………………………...…………19

ЛИТЕРАТУРА………………………………………………………………….…………20

ПРИЛОЖЕНИЯ:

ПРИЛОЖЕНИЕ№1 (ЛИСТИНГ ПРОГРАММЫ)

Введение

Целью курсовой работы является: написать программу для нахождения приближенного решения обыкновенного дифференциального уравнения y’=f(x,y),y(a)=y0 методом Рунге-Кутта пятого порядка на отрезке с заданным постоянным шагомh.

Для достижения данной цели необходимо выполнить следующие задачи:

    Рассмотреть суть метода Рунге-Кутта.

    Назначение и область применения.

    Протестировать программу.

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

Для решения задачи будет использоваться язык программирования TurboPascal7.0, так как этот язык позволяет работать с математическими формулами, проводить различного рода математические операции и действия.TurboPascalфирмыBorlandявляется расширением стандарта языка и содержит интегрированную среду, данного ускоряющую и облегчающую процесс разработки программ. В языке программированияTurboPascal7.0 используется типизированный адресный оператор, открытые массивы и строки, что предоставляет пользователю дополнительные возможности при решении математических задач. В математических задачах часто требуется реализовать численные методы, экспериментально исследовать условие и скорость сходимости методов. В условии задачи, как правило, дается основная идея каждого метода (Эйлера, Рунге-Кутта и т.д.).

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

Глава 1.

1.1.Суть метода Рунге-Кутта

Метод Рунге-Кутта включает в себя несколько других таких как: метод Эйлера и метод Эйлера – Коши.

Методы Рунге-Кутта обладают следующими свойствами:

1. Эти методы являются одноступенчатыми: чтобы найти у m+1 нужна

информация о предыдущей точке xmym

2 Они согласуются с рядом Тейлора вплоть до членов порядка h p где степень р различна для различных методов и называется порядковым номером или порядком метода

3Они не требуют вычисления производных от f (xy) а требуют вычисления самой функции

Рассмотрим сначала геометрическое построение и выведем некоторые формулы на основе геометрических аналогийПосле этого мы подтвердим полученные результаты аналитически(Аналитический метод, применяется которого дает решение дифференциального уравнения в виде аналитического выражения; Графический метод, дающий приближенное решение в виде графика; Численный метод, когда искомая функция получается в виде таблицы.)

Предположим нам известна точка xmym на искомой кривой Тогда мы можем провести прямую линию с тангенсом угла наклона у m =f(x m y m) которая пройдет через точку x m y m  Это построение показано на рис1 где кривая представляет собой точное но конечно неизвестное решение уравнения а прямая линия L1 построена так как это только что описано

Уравнение прямой L 1 выглядит так: y=y m +y m (x-x m) так как y=f(x m y m) и кроме тогоx m+1 =x m +h тогда уравнение примет вид

y m+1 =y m +h*f(x m y m) 1.1.

Ошибка при x=x m+1 показана в виде отрезка еОчевиднонайденное таким образом приближенное значение согласуется с разложением в ряд Тейлора вплоть до членов порядка hтак что ошибка ограничения равна e t =Кh 2

Заметимчто хотя точка на рис.1 была показана на кривойв действительности y m является приближенным значением и не лежит точно на кривой

Формула 11 описывает метод Эйлера один из самых старых и широко известных методов численного интегрирования дифференциальных уравнений Отметим что метод Эйлера является одним из методов Рунге-Кутта первого порядка

Рассмотрим исправленный метод Эйлера и модификационный метод Эйлера. В исправленном методе Эйлера мы находим средний тангенс угла наклона касательной для двух точек: x m y m и x m +hy m +hy m Последняя точка есть та самаякоторая в методе Эйлера обозначалась x m+1 y m+1 Геометрический процесс нахождения точки x m+1 y m+1 можно проследить по рис2. С помощью метода Эйлера находится точка x m +hy m +hy m лежащая на прямой L 1 В этой точке снова вычисляется тангенсдает прямуюLНаконецчерез точку x m y m мы проводим прямую LпараллельнуюLТочкав которой прямая L пересечется с ординатойвосстановленной из x=x m+1 =x m +hи будет искомой точкой x m+1 y m+1 

И две схемы Рунге-Кутты, имеющие четвертый порядок аппроксимации:

Пример . Решить методом Рунге-Кутты четвертого порядка уравнение dy /dx = –y , y (0) = 1.

В соответствии с приведенными выше соотношениями определяем коэффициенты:

Построим последовательность значений искомой функции:

Результаты получаемого численного решения для значения аргумента x = 10 при различных шагах интегрирования приведены в табл. 15.2. Три верные значащие цифры получены для шага h = 0.25.

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

На сегодняшний день для грубого расчета вычисления производятся методом Эйлера, для точного расчета - методом Рунге-Кутты

16. Лекция 16.
Методы прогноза и коррекции
(итерационные методы)

Изученные нами ранее методы обладали одной важной особенностью - каждому методу соответствует обычно определенный класс точности, который мы обозначали как O i . Например, метод Эйлера обладал первым классом точности O 1 . Это означало, что с уменьшением шага в 10 раз (на порядок) точность результата повышается тоже в 10 раз (на один порядок). Метод Рунге-Кутты обладает 4 порядком точности - O 4 , при уменьшении шага в 10 раз, результат улучшается в 10 000 раз. Поскольку этот метод по сравнению с методом Эйлера использует всего в 4 раза больше вычислений, то использование его более выгодно. На сегодняшний день известны методы до 8 порядка точности (например, метод Prince Dortmund), хотя одновременно стоит иметь в виду, что написание алгоритмов для них - задача достаточно трудная. Достоинством всех этих алгоритмов является то, что объем вычислений для них заранее известен.

Если требуется достичь ЛЮБОЙ точности на шаге, то следует использовать методы прогноза и коррекции. Этот подход состоит в том, что расчет траектории, задаваемой уравнением, на каждом шаге происходит многократно. А именно, сначала происходит расчет приближенного значения функции на конце шага какой-либо простой формулой (например, методом Эйлера), далее в этой точке вычисляется производная, и расчет происходит снова из начальной точки на шаге, но с уточненным значением производной. Последняя операция - уточнения производной и значения функции на конце шага - происходит МНОГОКРАТНО НА КАЖДОМ ШАГЕ , то есть до тех пор, пока вычисленные значения (функции и производной в конце шага) не перестанут меняться или будут меняться уже незначительно, меньше чем задаваемая заранее величина ε . Только тогда можно сказать, что точность ε достигнута.

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

Рассмотрим для примера два метода из этого класса. Как и ранее задача состоит в нахождении функции y (t ) из дифференциального уравнения dy /dt = f (y , x , t ) или множества функций из системы таких уравнений.

Пусть требуется найти решение дифференциального уравнения

y ’ = f (t , y ),

удовлетворяющее начальному условию

y’ (t 0) = y 0 .

Принцип, на котором основан метод Рунге – Кутта, можно пояснить, как и принцип, на котором основан метод Эйлера, с помощью разложения функции в ряд Тейлора

Чтобы удержать в ряде Тейлора член n -го порядка, необходимо вычислить n -ю производную зависимой переменной. При использовании модифицированного метода Эйлера для получения второй производной в конечно-разност-ной форме достаточно было знать наклон кривой на концах рассматриваемого интервала. Чтобы вычислить третью производную в конечно-разностном виде, необходимо иметь значения второй производной, по меньшей мере, в двух точках. Для этого необходимо дополнительно определить наклон кривой в некоторой промежуточной точке интервала h , т. е. между tn и n 1 t + . Очевидно, чем выше порядок вычисляяемой производной, тем больше дополнительных точек потребуется вычислить внутри интервала. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге – Кутта, в сущности, объединяет целое семейство методов решения дифференциальных уравнений.

Наиболее распространенным из них является метод четвёртого порядка точности , при котором удерживаются все члены ряда Тейлора, включая h 4 . Расчеты при использовании этого классического метода производятся по формулам:

Метод Эйлера и его модификация по сути дела являются методами Рунге – Кутта первого и второго порядка соответственно. Более высокая точность метода Рунге – Кутта позволяет увеличить шаг интегрирования h . Допустимая погрешность на шаге определяет его максимальную величину. В прикладных пакетах программ выбор шага часто осуществляется автоматически. Для этого проводят вычисления сначала с шагом h , а затем – с шагом h /2.

За оценку погрешности вычислений с шагом h /2 можно принять приближенную формулу

где - вычисленное значение с шагом h /2; y n – вычисленное значение с шагом h . Пример: y ’ = xy .

При реализации методов Рунге – Кутта на ЭВМ для каждой точки проводят двойной счет. Если полученные при этом значения удовлетворяют выражению (5.4), то для точки t n+1 шаг удваивают, в противном случае уменьшают вдвое. Однако необходимо помнить, что выражение (5.4) приближенное и при неблагоприятных условиях можно получить совершенно ошибочные результаты, хотя в большинстве случаев дело обстоит благополучно.

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

Рассмотрим задачу Коши для дифференциального уравнения

y" (t ) = f (t, y (t ))

с начальным условием y (t 0) = y 0.

Как и в методе Эйлера, выберем шаг h = и построим сетку с системой узлов t i = t 0 + ih, i = 0, 1, …, n.

Обозначим через y i приближенное значение искомого решения в точке t i .

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

y i+ 1 = y i + h (k + 2k + 2k + k ),

k = f (t i , y i ),

k = f (t i + , y i + k ), (6.17)

k = f (t i + , y i + k ),

k = f (t i +h, y i + hk ),

i = 0, 1, …, n.

Оценка погрешности. Оценка погрешности метода Рунге - Кутта затруднительна. Грубую оценку погрешности дает правило Рунге (см. раздел 6.2). Так как метод Рунге - Кутта имеет четвертый порядок точности, т. е. p = 4, то оценка погрешности (6.6) примет вид

R |y- y |. (6.18)

Используя правило Рунге, можно построить процедуру приближенного вычисления решения задачи Коши методом Рунге - Кутта четвертого порядка точности с заданной точностью . Нужно, начав вычисления с некоторого значения шага h , последовательно уменьшать это значение в два раза, каждый раз вычисляя приближенное значение y , i = 0, 1, …, n. Вычисления прекращаются тогда, когда будет выполнено условие:

R |y- y | < . (6.19)

Приближенным решением будут значения y , i = 0, 1, …, n.

Пример 6.4.

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

y" (t ) = 2ty , y (0) = 1. (6.20)

Возьмем шаг h = 0.1. Тогда n = = 10.

В соответствии с (6.17) расчетные формулы примут вид:

y i+ 1 = y i + h (k + 2k + 2k + k ),

k = 2t i y i ,

k = 2(t i +)(y i + k ), (6.21)

k = 2(t i +)(y i + k ),

k = 2(t i +h )(y i + hk ),

i = 0, 1, …, 10.

Задача (6.20) имеет точное решение: y (t ) = e , поэтому погрешность определяется как абсолютная величина разности между точными и приближенными значениями i = | y (t i ) - y i |.

Найденные по формулам (6.21) приближенные значения решения y i и их погрешности i представлены в таблице 6.5:

Таблица 6.5

t i

y i

t i

y i

Задачи к зачету по курсу “Вычислительные методы”

Указание. Каждый студент вначале должен определить параметр своего контрольного задания, s = log 10 (1 +), где k - номер студента в списке группы, k = 1, 2, … Решение задач должно быть оформлено аккуратно и содержать все промежуточные расчеты. В качестве образца можно взять примеры, рассмотренные в соответствующих разделах методических указаний.

1. Методом деления отрезка пополам найти корень уравнения

4(1 - x 2) - e x = s с точностью = 10 -3 .

2. Методом Зейделя решить систему уравнений с точностью =10-3.

6.2+s 2.2+s 1.2+s 16.55+s

A = 2.2+s 5.5+s -1.5+s , b = 10.55+s .

1.2+s -1.5+s 7.2 +s 16.80+s

3. Найти приближение функции f (x ) = e sx на отрезке многочленом Тейлора с точностью = 10 -3 . Вычислить e s .

4. Вычислить приближенно по формуле средних прямоугольников интеграл при n = 4 и оценить погрешность результата.

5. Методом Эйлера найти численное решение задачи Коши

y " = 2sy ; y (0) = 1, на отрезке с шагом h = 0.2.

Сравнить с точным решением.

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

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

Ключевые слова: дифференциальное уравнение, метод Рунге-Кутты, метод Эйлера, порядок метода Рунге-Кутты, задача Коши, ряд Тейлора, отрезок, коэффициенты, шаг интегрирования, интегральная кривая.

Работа содержит 36 листов, включая 8 графиков, 4 иллюстрации и 12 таблиц.

Введение

1. Теоретическая часть

1.1 Постановка задачи

1.2 Метод Эйлера

1.3 Общая формулировка методов Рунге-Кутты

1.4 Обсуждение методов порядка 4

1.5 «Оптимальные» формулы

1.6 Условия порядков для методов Рунге-Кутты

1.7 Оценка погрешности и сходимость методов Рунге-Кутты

1.7.1 Строгие оценки погрешности

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

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

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

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

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

Заключение

Список использованных источников

Приложение А. Графики функций

Приложение Б. Пример таблицы значений функции y(x)

Приложение В. Листинг программы «Ilya RK-4 версия 1.43»

Введение

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

С увеличением числа этапов для больших задач, решаемых этими методами, возникли бы трудности с памятью ЭВМ, кроме того (и это важнее), для больших задач, как правило, всегда велики константы Липшица. В общем случае это делает методы Рунге-Кутты высокого порядка не пригодными для таких задач. Во всяком случае, другие методы обычно эффективнее и им следует отдавать предпочтение. Однако методы Рунге-Кутты четвертого порядка являются достаточно легко реализуемыми на ЭВМ, а наличие автоматического выбора шага дает возможность производить вычисления с хорошей точностью. Поэтому их целесообразно применять для довольно широкого множества задач.

Методы Рунге-Кутты имеют несколько весомых достоинств, определивших их популярность среди значительного числа исследователей. Эти методы легко программируются, обладают достаточными для широкого круга задач свойствами точности и устойчивости. Эти методы, как и все одношаговые методы, являются самостартующими и позволяют на любом этапе вычислений легко изменять шаг интегрирования.

В работе основное внимание сконцентрировано на вопросах точности и эффективности решения задач того типа, для которых методы Рунге-Кутты приемлемы.

Программная реализация методов Рунге-Кутты четвертого порядка с автоматическим выбором шага представлена в виде программы, написанной на языке высокого уровня Borland C ++ 3.1 . Программу можно запускать в среде MS - DOS или Windows ® 95/98/ Me /2 k / XP . В качестве выхода программа пишет таблицу значений в файл на диск и рисует график на экране ЭВМ.

Для проверки результатов работы созданной программы одни и те же дифференциальные уравнения решались в математическом пакете Waterloo Maple 9.01 и при помощи созданного приложения (версия 1.43), проводился анализ таблиц значений и графиков решений.

1. Теоретическая часть

1.1 Постановка задачи

Дано дифференциальное уравнение и начальное условие, то есть поставлена задача Коши:

(2.1.1)

Требуется отыскать интегральную кривую, удовлетворяющую поставленной задаче Коши с помощью метода Рунге-Кутты четвертого порядка с автоматическим выбором шага на отрезке

. Задачу можно решить аналитически, найдя решение дифференциального уравнения и подставив в него начальное условие, тем самым, отыскав требуемую интегральную кривую. Но для нас интерес представляет решение данной задачи с применением численного метода, а конкретнее – метода Рунге-Кутты 4-го порядка с автоматическим выбором шага, то есть численное решение. Автоматический выбор шага – необходимое условие адекватного поведения программы при резко изменяющихся функциях, задающих интегральную кривую, позволяющее отразить все моменты в поведении интегральной кривой и добиться высокой точности.

1.2 Метод Эйлера

Метод Эйлера для решения начальной задачи (2.1.1) был описан Эйлером в 1768 году. Этот метод весьма прост. Его глобальная погрешность имеет вид

, где – постоянная, зависящая от задачи, и – максимальная длина шага. Если желательно, скажем, получить 6 точных десятичных знаков, то требуется, следовательно, порядка миллиона шагов, что не слишком удовлетворительно. С другой стороны, еще со времен Ньютона известно, что можно найти гораздо более точные методы, если не зависит от , то есть если мы имеем задачу (2.1.1), решаемую квадратурой . (2.2.1)

В качестве примера можно рассмотреть первую квадратурную формулу Гаусса, также называемую «правилом средней точки»:

(2.2.2) и – граничные точки подинтервалов, на которые разбит интервал интегрирования. Известно, что оценка глобальной погрешности этой формулы имеет вид . Таким образом, если желаемая точность составляет 6 десятичных знаков, ее обычно можно получить приблизительно за 1000 шагов, то есть этот метод в тысячу раз быстрее. Поэтому Рунге поставил следующий вопрос: нельзя ли распространить этот метод на исходную задачу Коши? Первый шаг длины должен иметь вид . (2.2.3)

Но какое значение взять для

? За неимение лучшего естественно использовать один малый шаг метода Эйлера длины . Тогда из предыдущей формулы получим: (2.2.4)

Решающим обстоятельством здесь является умножение

в третьем выражении на , в результате чего влияние погрешности становится менее существенным. Точнее, вычислим для разложение Тейлора по степеням : (2.2.5)

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



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ: