Визуализация численный методов. Решение обыкновенных дифференциальных уравнений.
Заказать уникальную курсовую работу- 28 28 страниц
- 2 + 2 источника
- Добавлена 01.09.2012
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Введение
Постановка задачи
Численные методы решения задачи Коши
Методы Рунге - Кутта
Метод Рунге - Кутта 1-го порядка (метод Эйлера)
Метод Рунге - Кутта 2-го порядка (модифицированный метод Эйлера)
Метод Рунге - Кутта 4-го порядка
Алгоритм решения задачи
Алгоритмы подпрограмм
Подпрограмма метода Рунге-Кутта 4-ого порядка
Подпрограмма модифицированного метода Эйлера
Подпрограмма точного решения
Алгоритм функции
Алгоритм функции
Алгоритм программы
Интерфейс программы
Листинг программы
Тестирование программы
Решение задачи в MathCAD
Заключение
Список литературы
7. результат работы программы
Решение задачи в MathCAD
Решение методом Рунге-Кутта
Точное решение
Точное аналитическое решение и решение, полученное численно отличаются в точке x=1 на
Относительная ошибка составляет
Решение модифицированным методом Эйлера
Точное решение
Точное аналитическое решение и решение, полученное численно отличаются в точке x=1 на
Относительная ошибка состовляет
Заключение
В работе дифференциальное уравнение решено двумя методами: модифицированным методом Эйлера и методом Рунге-Кутта 4-ого порядка. Построены интегральные кривые в приложении на языке программирования Visual Basic и среде MathCAD. Исследуя полученные графики, можно увидеть, что метод Рунге-Кутта является более точным методом решения дифференциальных уравнений, так как он дает меньшую погрешность и почти совпадает с графиком точного решения, хотя модифицированный метод Эйлера тоже довольно точный и меньше вычислений.
Список литературы
Браун С. Visual Basic 6. учебный курс. – СПб.: Питер, 2006. – 574 с.
http://www.intuit.ru/department/calculate/intromathmodel/12/5.html
6
t1 = Round(600 + (x(i) - x0) * kx)
t2 = Round(3700 - (Y1(i) - miny) * ky)
t3 = Round(600 + (x(i + 1) - x0) * kx)
t4 = Round(3700 - (Y1(i + 1) - miny) * ky)
Picture1.Line (t1, t2)-(t3, t4), vbBluePicture1.Line (z1, z2)-(z3, z4)
i = 1, …, n-1
Picture1.Cls
kx = (Picture1.Width - 800) / (xk - x0)
ky = (Picture1.Height - 500) / (maxy - miny)
конец
t1 = Round(600 + (x(i) - x0) * kx)
t2 = Round(3700 - (YT(i) - miny) * ky)
t3 = Round(600 + (x(i + 1) - x0) * kx)
t4 = Round(3700 - (YT(i + 1) - miny) * ky)
Picture1.Line (t1, t2)-(t3, t4), vbGreen
i = 1, …, n-1
t1 = Round(600 + (x(i) - x0) * kx)
t2 = Round(3700 - (Y2(i) - miny) * ky)
t3 = Round(600 + (x(i + 1) - x0) * kx)
t4 = Round(3700 - (Y2(i + 1) - miny) * ky)
Picture1.Line (t1, t2)-(t3, t4), vbRedPicture1.Line (z1, z2)-(z3, z4)
i = 1, …, n-1
miny
minx
maxy
maxx
MSFlexGrid1.TextMatrix(i + 1, 0) = Str(x(i))
MSFlexGrid1.TextMatrix(i + 1, 1) = Str(Y1(i))
MSFlexGrid1.TextMatrix(i + 1, 2) = Str(Y2(i))
MSFlexGrid1.TextMatrix(i + 1, 3) = Str(YT(i))
i = 1, …, n
Runge_Kutt
EilerM
Tochnoe
n = Round((xk - x0) / h)
MSFlexGrid1.Cols = 4
MSFlexGrid1.Rows = n + 2
MSFlexGrid1.TextMatrix(0, 0) = "x"
MSFlexGrid1.TextMatrix(0, 1) = "Y1"
MSFlexGrid1.TextMatrix(0, 2) = "Y2"
MSFlexGrid1.TextMatrix(0, 3) = "YT"
y0, x0,xk,h
начало
конец
f = 2 * x * y * y - 2 * x * y
f(x,y)
конец
x(i) = Round(x0 + (i * h), 3)
YT(i) = Round(1 / (1 + c(x0, y0) * Exp(x(i) * x(i))), 3)
i = 1, …, n
ReDim x(n + 1)
ReDim YT(n + 1)
maxy = y0
miny = y0
maxx = x0
minx = x0
Тоchnoe
x(i) = Round(x0 + i * h, 3)
K1=h*F(x,Y1(i))
K2=h*F(x+h/2,Y1(i)+K1/2)
K3=h*F(x+h/2,Y1(i)+K2/2)
K4=h*F(x+h,Y1(i)+K3)
Y1(i+1)=Y1(i)+ (K1+2*K2+2*K3+K4)/6
конец
i = 1, …, n
ReDim x(n + 1)
ReDim Y1(n + 1)
Y1(0) = y0
Runge_Kutt
конец
c = (1 / y - 1) / Exp(x * x)
с(x,y)
конец
x(i) = Round(x0 + (i * h), 3)
Y2(i + 1) = Round(Y2(i) + h * f(x(i) + h / 2, Y2(i) + h / 2 * f(x(i), Y2(i))), 3)
i = 1, …, n
ReDim x(n + 1)
ReDim Y2(n + 1)
Y2(0) = y0
EilerM
maxy = Y1(n)
Y1(n) > YT(n)
maxy = Y1(n)
Y1(n) > YT(n)
maxy = Y1(n)
Y1(n) > YT(n)
minx = x(0)
maxx = x(n)
miny = YT(0)
maxy = YT(n)
да
да
да
нет
нет
нет
1.Браун С. Visual Basic 6. учебный курс. – СПб.: Питер, 2006. – 574 с.
2.http://www.intuit.ru/department/calculate/intromathmodel/12/5.html
Вопрос-ответ:
Зачем нужна визуализация численных методов?
Визуализация численных методов позволяет наглядно представить процесс решения задачи и понять его особенности. Это помогает улучшить понимание методов и выявить возможные ошибки или неточности в решении.
Что такое задача Коши для обыкновенного дифференциального уравнения?
Задача Коши для обыкновенного дифференциального уравнения состоит в нахождении функции, удовлетворяющей данному уравнению и начальному условию вида y(t0) = y0. Здесь t0 - начальное время, y0 - начальное значение функции.
Какие численные методы используются для решения задачи Коши?
Для решения задачи Коши широко применяются методы Рунге-Кутта различных порядков точности. Наиболее популярными из них являются метод Рунге-Кутта 1-го порядка (метод Эйлера), метод Рунге-Кутта 2-го порядка (модифицированный метод Эйлера) и метод Рунге-Кутта 4-го порядка.
Как работает метод Рунге-Кутта 4-го порядка?
Метод Рунге-Кутта 4-го порядка представляет собой итерационный процесс, в котором на каждом шаге рассчитывается несколько промежуточных значений функции. Затем, используя эти значения, вычисляется новое значение функции в заданной точке. Этот процесс повторяется до достижения нужной точности.
Какие подпрограммы нужны для реализации метода Рунге-Кутта 4-го порядка?
Для реализации метода Рунге-Кутта 4-го порядка необходимы подпрограммы, которые будут рассчитывать промежуточные значения функции, а также подпрограмма, которая будет рассчитывать точное решение задачи для сравнения с численным методом. Также может понадобиться подпрограмма, реализующая сам метод Рунге-Кутта 4-го порядка.
Что такое визуализация численных методов?
Визуализация численных методов - это процесс представления результатов численных методов в виде графиков, диаграмм или анимаций, чтобы облегчить понимание и интерпретацию этих результатов.
Как поставить задачу численного решения обыкновенного дифференциального уравнения?
Задача численного решения обыкновенного дифференциального уравнения состоит в нахождении численного приближения к его решению на заданном интервале. Для этого необходимо задать начальное условие (значение функции и ее производной в начальный момент времени) и выбрать численный метод, такой как метод Рунге-Кутта, который будет использоваться для вычисления значений функции на всем интервале.
Какие методы Рунге-Кутта существуют для решения задачи Коши?
Для решения задачи Коши существует несколько методов Рунге-Кутта различного порядка точности. Некоторые из них включают метод Эйлера (1-го порядка точности), модифицированный метод Эйлера (2-го порядка точности) и метод Рунге-Кутта 4-го порядка точности. Каждый из этих методов имеет свои особенности и применяется в зависимости от требуемой точности решения.