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

Вывод

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

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


 

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

24672. Калькуляція та її рівні 27 KB
  Статичний бюджет це бюджетні обсяги бюджетні ціни бюджетні витрати. Гнучкий бюджет це фактичні обсяги бюджетні ціни бюджетні витрати.
24673. Використання програмового забезпечення на підприємства «Титан-Ойл» 4.75 MB
  Щодо самого процесу практики, він ставить на меті освоєння програм, котрі необхідні для подальшого вивчення фахових предметів, наприклад, пакет програм Microsoft Office, котрий є основою для створення текстових документів та електронних таблиць.
24674. Витрати на оплату праці 31.5 KB
  Пропорційно нормам вказуються в планах або нормативах калькуляції спочатку на кожний вид продукції відносяться витрати в межах норм плану а потім додаються відхилення. Ці витрати включаються в повну собівартість.До витрат повязаних з адміністративною діяльністю підприємства відносяться витрати: на службові відрядження і утримання апарату управління підприємства та іншого загальногосподарського персоналу; на утримання основних засобів інших необоротних активів загальногосподарського використання в тому числі операційна оренда...
24675. Собівартість продукції 32 KB
  Основні етапи розподілу непрямих витрат на обєкти: Вибір обєкта калькулювання на який розподіляється непрямі витрати окремий продукт група продуктівцентр відповідальності Вибір бази розподілу Зарплата основних працівників преміїматер. витратимашиногодини Розрахунок ставки коефіцієнт розподілуяка обчислюється як частина від ділення загальних накладних витрат на величину базу розподілу розрахунок накладних витрат що підлягають віднесеню на обєкт облікута обчислюється множенням ставки розподілу на величину бази розподілуяка...
24676. Особливості калькулювання собівартості продукції за повними витратами 32 KB
  Система обліку за повними витратами включають збір інфо про витратикалькулювання повної собівартості продукції та видачу інформації про витрати менеджерами певного рівня. До складу повної собівартості продукції входять прямі і непрямі виробничі і невиробничі витрати. Витратиякі безпосередньо включені до собівартості продукції складаються з матеріальних і доданих витрат.
24677. Управління витратами 27 KB
  Згідно з наведеним раніше визначенням виробничого обліку можна вирізнити три напрями класифікації витрат в основу якої покладено принцип: різні витрати для різних цілей. Витрати для прийняття управлінських рішень поділяються на: релевантні та нерелевантні; постійні та змінні; маржинальні та середні; дійсні та альтернативні. Очікувані релевантні витрати це витрати що можуть бути змінені внаслідок прийняття управлінських рішень тобто майбутні витрати.
24678. Раціональне і економічне використання ресурсів у виробництві 28 KB
  На підприємствах для кожного цеху виходячи з умов вирва застосовують конкретний метод обліку використання на вирво матеріалів. Для контролю використання сировини матеріалів на вирві застосовують метод: Партіонного розкрою передбачає виявлення відхилень від норм за кожною партією матеріалівякі підлягають розкрою застосовуються для високоякісних листових сталей кольорових металів шкіряних хутра. На кожну партію матеріалу застосовується облікова карткав якій зазначають скільки і яких заготівок має бути отримано в результаті розкрою...
24679. Напівфабрикати 27 KB
  Точка беззбитковості являє собою такий обсяг діяльності підприємства коли доходи дорівнюють витратам. Таким чином визначити критичний обсяг діяльності можна за допомогою формул отриманих шляхом трансформування формули :Як бачимо з наведених вище формул досягнення точки беззбитковості залежить від двох ключових чинників: 1обсягу постійних витрат тобто величини витрат які не залежать від обсягів діяльності але мають бути покриті результатами поточної діяльності; 2коефіцієнта маржинального доходу тобто відносної ефективності поточної...
24680. Раціональне і економічне використання ресурсів 26.5 KB
  На підприємствах для кожного цеху виходячи з умов вирва застосовують конкретний метод обліку використання на вирво матеріалів. Для контролю використання сировини матеріалів на вирві застосовують метод: Інвентарний метод у разі неможливості або недоцільності використання партіонного методу застосовують інвентарний метод обліку відхилень від норм . цінностей та необхідністю деталізації в обліку. Він потребує належної організації обліку фактичного витрачення за операціями і проведення перевірок невикористаної сировини та матеріалів.