16236

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

Курсовая

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

Курсовая работа Визуализация численных методов Cсодержание Содержание Введение 1. Постановка задачи и математическая модель 2. Описание используемых методов 3. Блоксхемы основных процедур 4. Виды формы проекта 5.Листинг программы на языке Visual Basic 6.Ре

Русский

2013-06-20

449.83 KB

4 чел.

Курсовая работа

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


Cсодержание

Содержание

Введение

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

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

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

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

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

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

Вывод


Введение

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

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

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


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

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

  

Дифференциальное уравнение

X0

Xk

h

Y0

Общее решение

y`+2*x*y=x*exp(-x2)

0

1

0,1

1

y=exp(-x2)*(C+x2/2)


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

Метод Эйлера модифицированный

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

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

.

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

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

        -узлы сетки,

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

При использовании модифицированного метода Эйлера шаг делится на два отрезка.

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

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

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

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

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

      -узлы сетки,

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

     

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

, где

     ,

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

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

 


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

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


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

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

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


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


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

Dim X() As Single

Dim Y() As Single

Dim g() As Single

Dim t() As Single

Private n, i As Integer

Private xk, x0, kx, ky As Single

Private k, k1, k2, k3, k4 As Single

Private h, max, min, y0 As Single

Private Function f(a, b As Single) As Single

f = a * Exp(-a ^ 2) - 2 * a * b

End Function

Private Sub EilerMod()

ReDim Y(n)

Y(0) = y0

For i = 0 To n - 1

Y(i + 1) = Y(i) + h * f(X(i) + h / 2, Y(i) + h / 2 * f(X(i), Y(i)))

Next i

End Sub

Private Sub RungeKutt()

ReDim g(n)

g(0) = y0

For i = 0 To n - 1

k1 = h * f(X(i), g(i))

k2 = h * f(X(i) + h / 2, g(i) + k1 / 2)

k3 = h * f(X(i) + h / 2, g(i) + k2 / 2)

k4 = h * f(X(i) + h, g(i) + k3)

k = (k1 + 2 * k2 + 2 * k3 + k4) / 6

g(i + 1) = g(i) + k

Next i

End Sub

Private Sub Obchee()

ReDim t(n)

For i = 0 To n

t(0) = y0

c = 1

t(i) = Exp(-X(i) ^ 2) * (c + (X(i) ^ 2) / 2)

Next i

End Sub

Private Sub Command1_Click()

x0 = Val(Text1.Text)

xk = Val(Text2.Text)

h = Val(Text3.Text)

y0 = Val(Text4.Text)

n = (xk - x0) / h

MSFlexGrid1.Rows = n + 4

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

MSFlexGrid1.TextMatrix(0, 1) = "Эйлер Модиф."

MSFlexGrid1.TextMatrix(0, 2) = "Рунге-Кутт"

MSFlexGrid1.TextMatrix(0, 3) = "Общее решение"

MSFlexGrid1.TextMatrix(1, 0) = Str(x0)

MSFlexGrid1.TextMatrix(0, 1) = Str(y0)

ReDim X(n)

For i = 0 To n

X(i) = x0 + h * i

Next i

EilerMod

RungeKutt

Obchee

For i = 0 To n

MSFlexGrid1.TextMatrix(i + 1, 0) = Str(X(i))

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

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

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

Next i

max = y0

min = y0

For i = 0 To n

If Y(i) > max Then max = Y(i)

If Y(i) < min Then min = Y(i)

If g(i) > max Then max = g(i)

If g(i) < min Then min = g(i)

If t(i) > max Then max = t(i)

If t(i) < min Then min = t(i)

Next i

Label7.Caption = Str(max)

Label8.Caption = Str(min)

Label9.Caption = Str(x0)

Label10.Caption = Str(xk)

kx = (6600 - 360) / (xk - x0)

ky = (5280 - 480) / (max - min)

Picture1.Cls

For i = 1 To n - 1

X1 = 840 + Round(kx * (X(i - 1) - x0))

X2 = 840 + Round(kx * (X(i) - x0))

Y1 = 5280 - Round(ky * (Y(i - 1) - min))

Y2 = 5280 - Round(ky * (Y(i) - min))

Picture1.Line (X1, Y1)-(X2, Y2), RGB(9999, 0, 0)

X1 = 840 + Round(kx * (X(i - 1) - x0))

X2 = 840 + Round(kx * (X(i) - x0))

Y1 = 5280 - Round(ky * (g(i - 1) - min))

Y2 = 5280 - Round(ky * (g(i) - min))

Picture1.Line (X1, Y1)-(X2, Y2), RGB(0, 9999, 0)

X1 = 840 + Round(kx * (X(i - 1) - x0))

X2 = 840 + Round(kx * (X(i) - x0))

Y1 = 5280 - Round(ky * (t(i - 1) - min))

Y2 = 5280 - Round(ky * (t(i) - min))

Picture1.Line (X1, Y1)-(X2, Y2), RGB(0, 0, 9999)

Next i

End Sub

Private Sub Command2_Click()

End

End Sub


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


Вывод

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

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

 

.


 

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

81604. Основные и второстепенные способы номинации современных русских жаргонов НМО 533 KB
  Кроме того, на протяжении нескольких лет автор работы является непосредственным носителем жаргона одного из неформальных молодёжных объединений. Многие из тех, кто составляет его близкое окружение, также являются так называемыми «неформалами» разных направлений.
81605. Эволюция образа латиноамериканцев в поп-культуре США (на материале развлекательных телепрограмм) 2.05 MB
  Цель данной работы – проследить эволюцию образа латиноамериканцев на телевидении США за последние десять лет на материале наиболее популярных развлекательных телепередач и выяснить, как проявляется влияние латиноамериканской культуры на массовую американскую поп-культуру в телевизионных развлекательных СМИ.
81606. Разработать адаптированную технологию работы с медиаданными, видео- и служебными форматами при видеомонтажных работах в рамках произвоственной видеостудии кафедры ИКТ – Viditory 6.16 MB
  На каждом этапе развития технологий в области цифрового видеопроизводства растет спектр видеопродукт и растет спрос на них. Различные кинокомпании вещательные компании и отдельные видеостудии занимают одну из центральных ролей в инфраструктуре цифрового видео.
81607. Разработка системы базового финансового учёта для организации 556.19 KB
  Целью данной работы является разработка системы, позволяющая организовать и автоматизировать финансовые взаимоотношения между сотрудником и работодателем внутри организации. Задачи, которые были решены в этой работе: анализ существующих на рынке решений; азработка прототипа; проектирование и разработка системы;
81608. Бухгалтерский учёт, анализ и аудит: Методические указания 413.5 KB
  Выпускная квалификационная работа призвана показать глубину усвоения выпускником теоретических и практических знаний по специальности, умение грамотно и аргументировано излагать свои мысли и формулировать конкретные предложения по улучшению ведения учетно-аналитической работы в организациях.
81609. Перевод с английского юмористических рассказов В. Аллена 580.5 KB
  Ориентиром и примером стояли перед глазами давно любимые пьесы Ионеско, но в то же время было понятно, что найти ненайденный ещё в наш активный, даже перенасыщенный переводческий век необработанный алмаз почти невозможно.
81610. Финансы и кредит: Методические рекомендации 486.5 KB
  В формулировку темы ВКР необходимо включить конкретное название объекта на примере которого проводится исследование. Конкретизировать тему можно следующим образом: Анализ основных финансовых показателей деятельности предприятия на примере.
81611. Наивный реализм в повседневной жизни и его роль в изучении социальных конфликтов и непонимания 42.7 KB
  Изучение и выявление возможных причин производственных несчастных случаев профессиональных заболеваний аварий взрывов пожаров и разработка мероприятий и требований направленных на устранение этих причин позволяют создать безопасные и благоприятные условия для труда человека.
81612. Форми мислення та його різновиди 33.35 KB
  У процесі відчуття і сприйняття людина пізнає навколишній світ у результаті безпосереднього, чуттєвого його відображення. Проте внутрішні закономірності, сутність речей не можуть відбитися в нашій свідомості безпосередньо. Жодна закономірність не може бути сприйнята безпосередньо органами почуттів.