Визуализация численных методов
Общая характеристика и особенности двух методов решения обычных дифференциальных уравнений – Эйлера первого порядка точности и Рунге-Кутта четвёртого порядка точности. Листинг программы для решения обычного дифференциального уравнения в Visual Basic.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.06.2010 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
19
Сибирский государственный университет телекоммуникации и информатики
Уральский технический институт связи и информатики
Факультет телекоммуникации, информатики и управления
Кафедра организации управления связи
По курсу: “Информатика”
По теме: “Визуализация численных методов”
Написал:
Плишкин М. Ю
группа МЕ-72
Преподаватель:
Кандидат технических наук , доцент
Е.Е.Минина
г. Екатеринбург. 2010 г.
Содержание
Введение
1. Постановка задачи
1.1 Метод Эйлера
1.2 Метод Рунге - Кутта
2. Блок-схемы
3. Виды, формы
3.1 Начальная форма
3.2 Конечная форма
4. Программа для решения дифференциального уравнения в Visual Basic
Заключение
Введение
Уравнения, связывающие независимую переменную, искомую функцию и её производные называют дифференциальным уравнением. Решение дифференциального уравнения называется функция, которая при подстановке в уравнение обращает его в тождество.
Если искомая (неизвестная) функция зависит от одной переменной, то дифференциальное уравнение называется обычным; в противном случае - уравнение в частных производных, содержащие несколько независимых переменных и производные по ним, которые называются частными. В данной работе будут рассматриваться методы решения обычных дифференциальных уравнений (ОДУ).
Чтобы решить ОДУ, необходимо знать значение зависимой переменной и (или) её производные при некоторых значениях независимой переменной. Если эти дополнительные условия задаются при одном значении независимой переменной, то такая задача называется задачей с начальными условиями, или задачей Коши.
Числовое решение задачи Коши широко применяется в различных областях науки и техники, и число разработанных для него методов достаточно велико. Эти методы могут быть разделены на следующие группы.
Одношаговые методы, в которых для нахождения следующей точки на кривой y=f(x) требуется информация лишь об одном предыдущем шаге. Одношаговыми являются метод Эйлера и методы Рунге - Кутта.
Методы прогноза и коррекции (многошаговые), в которых для отыскивания следующей точки кривой y=f(x) требуется информация более чем об одной из предыдущих точек. Чтобы получить достаточно точное численное значение, часто прибегают к итерации. К числу таких методов относятся методы Милны, Адамса - Башфорта и Хемминга.
Явные методы, в которых функция Ф в выражении (1) не зависит от yn+1.
Неявные методы, в которых функция Ф зависит от yn+1.
В данной курсовой работе будут рассматриваться два одношаговых метода: метод Эйлера первого порядка точности и Рунге - Кутта четвёртого порядка точности.
1. Постановка задачи
В данной курсовой работе необходимо решить ОДУ вида y` = 4y/x с заданными начальными значениями x0=1, xk=1.4, y0=2, h=0.05. Для проверки точности результатов дано общее решение данного уравнения y=x^4с. Требуется решить уравнение двумя методами: Эйлера модифицированного и Рунге - Кутта четвёртого порядка, сравнить результаты и сделать вывод какой метод эффективнее использовать, построить графики.
Численное решение задачи Коши сводится к табулированию искомой функции.
График решения дифференциального уравнения называется интегральной кривой.
Геометрический смысл задачи:
y`=f(x,y) - тангенс угла наклона касательной к графику решения в точке (x,y) к оси OX (угловой коэффициент (в общей формуле прямой,
y=k*x+b,
обозначается как “k”)(рис 1).
Рисунок 1. Геометрический смысл задачи Коши
Существующие решения:
Если правая часть f(x,y) непрерывная в некоторой области R, определяемой неравенствами |x - x0| < a; |y - y0| > b, то существует, по меньшей мере, одно решение y=y(x), определённое в окрестности |x - x0| < h, где h > 0.
При использовании численных методов выполняется замена отрезка [x0,X] - области непрерывного изменения аргумента x множеством wh, состоящего из конечного числа точек x0<x1<...<xn=X - сеткой.
При этом xi называют узлами решётки.
Задача Коши, определённая ранее на непрерывном отрезке [x0,X], заменяется её дискретным аналогом - системой уравнений, решая которую можно последовательно найти значения y1,y2,...,yn - приближённые значения функции в узлах сетки.
1.1 Метод Эйлера
Данный метод, как сказано выше, является одношаговым. Табулирование функции происходит поочередно в каждой точке. Для расчёта значения функции в очередном узле необходимо использовать значение функции в одном предыдущем узле.
Пусть дано дифференциальное уравнение первого порядка
y`=f(x,y)
с начальным условием
y(x0)=y0.
Выберем шаг h и введём обозначения:
xi=x0+i*h и yi=y(xi), где i=0,1,2,...,
xi- узлы сетки,
yi- значение интегральной функции в узлах.
Иллюстрации к решению приведены на рисунке 2.
Проведём прямую АВ через точку (xi,yi) под углом б. При этом
tgб=f(xi,yi) (1)
В соответствии с геометрическим смыслом задачи, прямая АВ является касательной к интегральной функции. Произведём замену точки интегральной функции точкой, лежащей на касательной АВ.
Тогда
y i+1=yi+Дy (2).
Из прямоугольного треугольника АВС
tgб= Дy/h (3).
Приравниваем правые части (1) и (3). Получим
Дy/h= f(xi,yi).
Отсюда
Дy= f(xi,yi)*h.
Подставим в это выражение формулу (2), а затем преобразуем его. В результате получаем формулу расчёта очередной точки интегральной функции:
y i+1=yi+ h*f (xi,yi) (4).
Из формулы (4) видно, что для расчёта каждой следующей точки интегральной функции необходимо знать значение только одной предыдущей точки. Таким образом, зная начальные условия, можно построить интегральную кривую на заданном промежутке.
Рисунок 2. Метод Эйлера
Метод Эйлера - один из простейших методов численного решения ОДУ. Но существенным его недостатком является большая погрешность вычислений. На рисунке 2 погрешность вычислений дляi-го шага обозначена е. С каждым шагом погрешность вычислений увеличивается.
1.2 Метод Рунге - Кутта
Пусть дано дифференциальное уравнение первого порядка y`=f(x,y) с начальным условием y(x0)=y0.
Выберем шаг h и введём обозначения:
xi=x0+i*h и yi=y(xi), где i=0,1,2,...,
xi- узлы сетки,
yi- значение интегральной функции в узлах.
Проведём решение в несколько этапов.
Обозначим точки: A(xi,yi), B(xi+1,yi+1), C, D, E.
Через точку А проведём прямую под углом б, где tg б = f(xi,yi).
На прямой (1) найдём точку С. Через точку С проведём прямую под углом б1, где
tg б1 = f(xi+h/4, yi+h/4*f(xi,yi).
Через точку А проведём прямую параллельную последней прямой.
Найдём точку D на прямой (2) и через неё проведём прямую под углом б2, где
tg б2 = f(xi+h/2, yi+h/2*f(xi,yi)).
Через точку А проведём прямую параллельную последней прямой.
По примеру, описанному выше, построим прямую, которая пересечётся с прямой x = xi+1. Эта точка и будет решением дифференциального уравнения при x = xi+1.
Согласно методу Рунге - Кутта четвёртого порядка, последовательные значения yi искомой функции y определяется по формуле:
y i+1=yi+Дy,
где
Дy=(k1+2*k2+2*k3+k4)/6, i=0,1,2,...
а числа k1(i),k2(i),k3(i),k4(i) на каждом шаге вычисляются по формулам:
k1=h*f(xi,yi)
k2 =h*f(xi+h/2,yi+k1/2)
k3=h*f(xi+h/2,yi+k2/2)
k4 =h*f(xi+h,yi+k3)
Это явный четырёхэтапный метод четвёртого порядка точности.
2. Блок-схемы
3. Виды, формы
3.1 Начальная форма
3.2 Конечная форма
4. Программа для решения дифференциального уравнения в Visual Basic
Dim y(9) As Single
Dim YE(9) As Single
Dim YR(9) As Single
Dim YT(9) As Single
Dim l(9) As Single
Private x0 As Single
Private Function fun(a As Single, b As Single) As Single
f = (b + 2) / (a + 1)
fun = f
End Function
Private Sub Command1_Click()
x0 = Val(Text1.Text)
xk = Val(Text2.Text)
y0 = Val(Text3.Text)
h = Val(Text4.Text)
N = (xk - x0) / h
MSFlexGrid1.Rows = N + 2
MSFlexGrid1.TextMatrix(0, 0) = "x"
MSFlexGrid1.TextMatrix(0, 1) = "YE"
MSFlexGrid1.TextMatrix(0, 2) = "YR"
MSFlexGrid1.TextMatrix(0, 3) = "YT"
Min = y0
Max = y0
l(0) = x0
y(0) = y0
YE(0) = y0
YR(0) = y0
YT(0) = y0
For i = 0 To N
l(i + 1) = x0 + i * h
k1 = h * fun(l(i), YR(i))
k2 = h * fun(l(i) + h / 2, YR(i) + k1 / 2)
k3 = h * fun(l(i) + h / 2, YR(i) + k2 / 2)
k4 = h * fun(l(i) + h, YR(i) + k3)
k = (k1 + 2 * k2 + 2 * k3 + k4) / 6
YR(i + 1) = YR(i) + k
YE(i + 1) = YE(i) + h * fun(l(i), YE(i))
YT(i) = (l(i + 1) + 1) * 2 - 2
MSFlexGrid1.TextMatrix(i + 1, 0) = l(i + 1)
MSFlexGrid1.TextMatrix(i + 1, 1) = YE(i)
MSFlexGrid1.TextMatrix(i + 1, 2) = YR(i)
MSFlexGrid1.TextMatrix(i + 1, 3) = YT(i)
If YE(i) > Max Then max1 = YE(i)
If YE(i) < Min Then min1 = YE(i)
If YR(i) > Max Then Max2 = YR(i)
If YR(i) < Min Then Min2 = YR(i)
If YT(i) > Max Then Max3 = YT(i)
If YT(i) < Min Then Min3 = YT(i)
Next i
For i = 0 To N - 1
px = (5415 / (xk - x0))
py = (6705 / (max1 - min1))
u1 = (l(i) - x0) * px + 600
u2 = 7440 - (YE(i) - min1) * py
u3 = (l(i + 1) - x0) * px + 600
u4 = 7440 - (YE(i + 1) - min1) * py
Picture1.Line (u1, u2)-(u3, u4)
u5 = (l(i) - x0) * px + 600
u6 = 7440 - (YR(i) - min1) * py
u7 = (l(i + 1) - x0) * px + 600
u8 = 7440 - (YR(i + 1) - min1) * py
Picture1.Line (u5, u6)-(u7, u8)
u9 = (l(i) - x0) * px + 600
u10 = 7440 - (YT(i) - min1) * py
u11 = (l(i + 1) - x0) * px + 600
u12 = 7440 - (YT(i + 1) - min1) * py
Picture1.Line (u9, u10)-(u11, u12)
Next i
End Sub
Заключение
В данной курсовой рассматривались два метода решения ОДУ с начальными условиями, то есть задачи Коши: метод Эйлера и метод Рунге - Кутта четвёртого порядка.
Данные полученные этими методами идентичны друг другу, но с точки зрения простоты использования метод Эйлера гораздо проще в описании, чем метод Рунге - Кутта четвертого порядка.
Если посмотреть на графики и значения в точках, то можно убедится в том что методы почти точно определяют значения в у, и графики почти совпадают, имея небольшой угол отклонения.
Подобные документы
Теоретическое обоснование расчетных формул. Задача Коши для дифференциального уравнения первого порядка. Метод Рунге-Кутта. Ломаная Эйлера. Построение схем различного порядка точности. Выбор шага. Апостериорная оценка погрешности. Правило Рунге.
курсовая работа [111,1 K], добавлен 13.11.2011Аналитическое и компьютерное исследования уравнения и модели Ван-дер-Поля. Сущность и особенности применения методов Эйлера и Рунге-Кутта 4 порядка. Сравнение точности метода Эйлера и Рунге-Кутта на одном графике, рисуя фазовые траектории из 1 точки.
курсовая работа [341,7 K], добавлен 06.10.2012Основные методы Рунге-Кутта: построение класса расчетных формул. Расчетная формула метода Эйлера. Получение различных методов Рунге-Кутта с погрешностью второго порядка малости при произвольном задавании параметров. Особенности повышения порядка точности.
реферат [78,4 K], добавлен 18.04.2015Численное решение уравнения методом Эйлера и Рунге-Кутта в Excel. Программа на языке Turbo Pascal. Блок-схема алгоритма. Метод Рунге-Кутта для дифференциального уравнения второго порядка. Модель типа "хищник-жертва" с учетом внутривидового взаимодействия.
курсовая работа [391,5 K], добавлен 01.03.2012Изучение методов Рунге-Кутты четвертого порядка с автоматическим выбором длины шага интегрирования для решения дифференциальных уравнений. Оценка погрешности и сходимость методов, оптимальный выбор шага. Листинг программы для ЭВМ, результаты, иллюстрации.
курсовая работа [2,9 M], добавлен 14.09.2010Дифференциальное уравнение первого порядка, разрешенное относительно производной. Применение рекуррентного соотношения. Техника применения метода Эйлера для численного решения уравнения первого порядка. Численные методы, пригодные для решения задачи Коши.
реферат [183,1 K], добавлен 24.08.2015Практическое решение дифференциальных уравнений в системе MathCAD методами Рунге—Кутты четвертого порядка для решения уравнения первого порядка, Булирша — Штера - системы обыкновенных дифференциальных уравнений первого порядка и Odesolve и их графики.
лабораторная работа [380,9 K], добавлен 23.07.2012Понятие, закономерности формирования и решения дифференциальных уравнений. Теорема о существовании и единственности решения задачи Коши. Существующие подходы и методы решения данной задачи, оценка погрешности полученных значений. Листинг программы.
курсовая работа [120,8 K], добавлен 27.01.2014Уравнения с разделяющимися переменными, методы решения. Практический пример нахождения частного и общего решения. Понятие о неполных дифференциальных уравнениях. Линейные уравнения первого порядка. Метод вариации постоянной, разделения переменных.
презентация [185,0 K], добавлен 17.09.2013Задачи Коши для дифференциальных уравнений. График решения дифференциального уравнения I порядка. Уравнения с разделяющимися переменными и приводящиеся к однородному. Однородные и неоднородные линейные уравнения первого порядка. Уравнение Бернулли.
лекция [520,6 K], добавлен 18.08.2012