30074

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

Книга

Информатика, кибернетика и программирование

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

Русский

2016-09-14

1.2 MB

3 чел.

Федеральное агентство связи

ГОУ ВПО «Сибирский государственный университет

Телекоммуникаций и информатики»

Уральский технический институт связи и информатики (филиал)

Курсовая работа по информатике

на тему

«Визуализация численных методов»

Выполнил студент гр. СЕ-81 Бахвалов Н.А.

Проверил: Тюпина О.М.

Екатеринбург 2009

Содержание

Введение

1. Постановка задачи и математическая модель

2. Описание используемых методов

           2.1. Метод Эйлера

2.2.  Метод Ренге-Кутта

3. Блок-схемы основных процедур

           3.1. Блок-схема основной процедуры

           3.2. Блок-схема  функции

4. Виды формы проекта

4.1.Исходный вид для ввода данных

           4.2.Итоговый вид с предоставленным решением и графиком

5. Листинг программы на языке Visual Basic

6. Решение задачи в MathCAD

Вывод


Введение

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

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

   Целью данной курсовой работы по теме «Визуализация численных методов» является решение дифференциального уравнения 1-го порядка x*y*dy+(x+1)=0 на отрезке [1.2;2] методом Эйлера и методом Рунге-Кутта четвёртого порядка точности. Выполнив все расчёты выяснить, какой из методов более точный, сравнив выведенные значения с общим решением.

  Курсовая работа должно состоять из: программы, написанной в Visual Basic, которая решает дифференциальное уравнение и выводит решения уравнения, полученные методом Эйлера и методом Рунге-Кутта четвёртого порядка точности. И визуализирует их на графике в виде линий (кривой, прямой); пояснительной записки, которая описывает методы решения и программу.


1. Постановка задачи и математическая модель

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

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

Математическая модель

Дано:

дифференциальное уравнение: x*y*dy+(x+1)=0

общее решение: y=c*(x+1)*exp(-x)

x0 =1.2

xk =2

h =0.1

y0 =1

Найти:

Y - массив значений искомого решения в узлах сетки.


2. Описание используемых методов

2.1. Метод Эйлера.

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

Пусть дано дифференциальное уравнение первого порядка
у’ = f(х,у)

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

Выберем шаг h и введём обозначения:
хi=х0+*hi и yi=y(xi),

где i=0,1,2,…
xi— узлы сетки,
yi значение интегральной функции в узлах -

Иллюстрации к решению приведены на рисунке.

Проведем прямую АВ через точку (х,у) под углом а. При этом = tga=f(х,у)

В соответствии с геометрическим смыслом задачи, прямая АВ является касательной к интегральной функции. Произведем замену точки интегральной функции точкой, лежащей на касательной АВ.
Тогда
y(i+1)=yiy

Из прямоугольного треугольника АВС tgа = Δy/h

Приравняем правые части. Получим    Δy/h=f(x,y)

Отсюда  Δ у = h*f(x,y)

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

y(i+1)=yi+h*f(xi,yi)

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

Блок-схема процедуры решения дифференциального уравнения методом Эйлера приведена на рисунке.

F(х, у) — заданная функция — должна быть описана отдельно.

Входные параметры:

ХО, ХК — начальное и конечное значения независимой переменной;

YО — значение у0 из начального условия у(хо)=у0

N— количество отрезков разбиения;

Выходные параметры:

Y - массив значений искомого

Блок-схема процедуры решения дифференциального уравнения методом Эйлера

Метод Эйлера – один из простейших методов решения обыкновенных дифференциальных уравнений. Но существенным недостатком является большая погрешность вычислений. На рисунке  погрешность вычислений для i-го шага обозначена ε. С каждым шагом погрешность вычислений увеличивается.

2.2. Метод Рунге-Кутта 4-го порядка.

Для большего уменьшения погрешности используется метод Рунге-Кутта четвёртого порядка точности (метод Рунге-Кутта).

Пусть дано дифференциальное уравнение первого порядка

с начальным условием .

Выберем шаг =0,1 и введём обозначения:

и , где  =0,1,2…,

                               -узлы сетки,

                               -значение интегральной функции в узлах.

 

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

, где

,

А числа    на каждом шаге вычисляются по формулам:

 

   Это явный четырёхэтапный метод четвёртого порядка точности.

   Метод Рунге-Кутта даёт погрешность меньше, чем методы Эйлера и Эйлера модифицированного.

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


3. Блок-схемы основных процедур

3.1. Блок-схема основной процедуры.

3.2. Блок-схема  функции.


4. Виды формы проекта

    4.1. Исходный вид для ввода данных.

     4.2. Итоговый вид с предоставленным решением и графиком.


5. Листинг программы на языке Visual Basic

Dim x(50) As Single, y(50) As Single, m(50) As Single, s(50) As Single

Private x0 As Single

Private xk As Single

Dim n As Integer

Dim k1, k2, k3, k4, y0, h As Single

Function f(t, p As Single) As Single

f = t * p / (t + 1)

End Function

Private Sub Command1_Click()

MSFlexGrid1.Visible = True

Picture1.Visible = True

x0 = Val(Text1.Text)

xk = Val(Text2.Text)

h = Val(Text3.Text)

y0 = Val(Text4.Text)

n = Round((xk - x0) / h)

c = y0 / ((x0 + 1) * Exp(-x0))

MSFlexGrid1.Rows = n + 2

MSFlexGrid1.Cols = 4

MSFlexGrid1.TextMatrix(0, 0) = "X"

MSFlexGrid1.TextMatrix(0, 1) = "Y-(T)"

MSFlexGrid1.TextMatrix(0, 2) = "Y-(R-K)"

MSFlexGrid1.TextMatrix(0, 3) = "Y-(E)"

Max = 0

Min = x0

y(i) = y0

s(i) = y0

For i = 0 To n

x(i) = x0 + i * h

MSFlexGrid1.TextMatrix(i + 1, 0) = x(i)

m(i) = x(i) * y(i) / (x(i) + 1)

m(i) = Round(m(i), 7)

MSFlexGrid1.TextMatrix(i + 1, 1) = Str(m(i))

k1 = h * f(x(i), y(i))

k2 = h * f(x(i) + h / 2, y(i) + k1 / 2)

k3 = h * f(x(i) + h / 2, y(i) + k2 / 2)

k4 = h * f(x(i) + h, y(i) + k3)

y(i + 1) = y(i) + (k1 + 2 * k2 + 2 * k3 + k4) / 6

y(i) = Round(y(i), 4)

MSFlexGrid1.TextMatrix(i + 1, 2) = Str(y(i))

s(i + 1) = s(i) + h * f(x(i), s(i))

s(i) = Round(s(i), 7)

MSFlexGrid1.TextMatrix(i + 1, 3) = Str(s(i))

If m(i) > Max Then Max = m(i)

If m(i) < Min Then Min = m(i)

Next i

Picture1.Cls

kx1 = (Picture1.Width - 1200) / (xk - x0)

ky1 = (Picture1.Height - 1000) / (Max - Min)

kx2 = (Picture1.Width - 1200) / (xk - x0)

ky2 = (Picture1.Height - 1000) / (Max - Min)

kx3 = (Picture1.Width - 1200) / (xk - x0)

ky3 = (Picture1.Height - 1000) / (Max - Min)

Label5.Caption = Str(Max)

Label6.Caption = Str(Min)

Label7.Caption = Str(x0)

Label8.Caption = Str(xk)

For i = 1 To n - 1

z1 = Round(720 + (x(i) - x0) * kx1)

z2 = Round(7400 - (m(i) - Min) * ky1)

z3 = Round(720 + (x(i + 1) - x0) * kx1)

z4 = Round(7400 - (m(i + 1) - Min) * ky1)

Picture1.Line (z1, z2)-(z3, z4), vbGreen

z1 = Round(720 + (x(i) - x0) * kx2)

z2 = Round(13100 - (y(i) - Min) * ky2)

z3 = Round(720 + (x(i + 1) - x0) * kx2)

z4 = Round(13100 - (y(i + 1) - Min) * ky2)

Picture1.Line (z1, z2)-(z3, z4), vbRed

z1 = Round(720 + (x(i) - x0) * kx3)

z2 = Round(13100 - (s(i) - Min) * ky3)

z3 = Round(720 + (x(i + 1) - x0) * kx3)

z4 = Round(13100 - (s(i + 1) - Min) * ky3)

Picture1.Line (z1, z2)-(z3, z4), vbYellow

Next i

End Sub

Private Sub Command2_Click()

End

End Sub

6. Решение задачи в MathCAD

Вывод

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

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


 

А также другие работы, которые могут Вас заинтересовать

52250. Обобщающий урок по теме «Атмосфера» 37 KB
  Мельчайшие капельки воды образовавшиеся в приземном слое атмосферы из насыщенного водяным паром воздуха при его охлаждении туман Вся вода выпавшая из атмосферы на земную поверхность осадки. Разность между наибольшим и наименьшим значениями температуры воздуха в течение суток месяца или года амплитуда. Движение воздуха в горизонтальном направлении из областей высокого давления к областям низкого давления ветер. Атмосферный вихрь с низким давлением в центре и движением воздуха от краев к центру циклон.
52251. Урок-узагальнення знань з теми «Атмосфера» 62.5 KB
  Обладнання: мультимедійна презентація Вид хмар плакат Космічний простір Ракети демонстраційні картки до конкурсів атласи мультимедійний проектор таблиці: Чисте повітря запорука здоровя. Запитання команді Восток Повітряна оболонка нашої планети. у Температура повітря залежить від Кута падіння сонячних променів Прилад для вимірювання напряму і сили вітру. Флюгер Наука що вивчає зміни показників стану повітря.
52253. НАВЧАННЯ АУДІЮВАННЮ З АНГЛІЙСЬКОЇ МОВИ 184.5 KB
  Труднощі сприйняття іноземної мови на слух – одна з основних проблем, з якою стикаються учні на початкових етапах навчання. Згодом ця проблема вирішується завдяки постійній практиці.
52255. Композиція музичного твору. Форми в музиці. Сонатна форма 65.5 KB
  Товаром на уроціаукціоні є знання учнів які пропонуються у вигляді лотів. Підготовкою запитань лотів може займатися як сам вчитель так і купці учні. Купці можуть готувати по дватри лоти завдання під керівництвом і контролем учителя. Скарбник після кожного лоту виконаного завдання визначає середній бал кожного акціонерного товариства й записує результати у зведену таблицю.
52256. Аукціон фізичних знань 140.5 KB
  Команда яка швидше записала букви в кінці зірки і прочитала слово отримує 5 балів. Інша команда якщо вона правильно впоралась з завданням отримує 4 бали. Команда прослухавши повідомлення і розглянувши портрет відгадує ім'я вченого. За кожен правильно вгаданий портрет команда отримує по 3 бали.
52257. Організація закупівлі товарів на аукціонах 249.5 KB
  Інструкційно методична карта практичного заняття № 4 Тема: Організація підготовки і проведення аукціону. Навчальні цілі заняття: ознайомити студентів з планом проведення заняття ; І виявлення знань студентів по темі використовуючи різні форми і методи контролю; ІІ привити практичні навички оформлення акційних документів; ІІ навчити самостійно робити висновки вносити пропозиції щодо організації підготовки та проведення аукціону; ІІІ формувати особу спеціаліста з сучасним економічним мисленням здатну...