Визуализация численный методов. Решение обыкновенных дифференциальных уравнений.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 28 28 страниц
  • 2 + 2 источника
  • Добавлена 01.09.2012
1 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
Введение
Постановка задачи
Численные методы решения задачи Коши
Методы Рунге - Кутта
Метод Рунге - Кутта 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-го порядка точности. Каждый из этих методов имеет свои особенности и применяется в зависимости от требуемой точности решения.