16236

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

Курсовая

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

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

Русский

2013-06-20

449.83 KB

3 чел.

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

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


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


Вывод

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

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

 

.


 

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

8230. Характеристика современного урока 16.57 KB
  Характеристика современного урока. Современный урок это неотъемлемая часть всей жизнедеятельности школьников, так как именно на уроке ученик больше всего познает, на уроке происходит его воспитание, развитие, раскрывается его ...
8231. Межпредметные связи в обучении, значение, виды, пути осуществления на уроках(на примере уроков географии) 15.65 KB
  Межпредметные связи в обучении, значение, виды, пути осуществления на уроках(на примере уроков географии) Межпредметные связи согласованное изучение разных учебных предметов. Они позволяют отразить в школьном обучении процесс интеграции раз...
8232. Самостоятельная учебно-познавательная деятельность учащихся: значение, виды самостоятельных работ, условия эффективности 18.64 KB
  Самостоятельная учебно-познавательная деятельность учащихся: значение, виды самостоятельных работ, условия эффективности. К самостоятельной учебно-познавательной деятельности относиться: кружки, практикумы, конференции, консультации, фак...
8233. Сущность понятия учебные достижения. Содержания, формы, виды, методы проверки знаний и умений учащихся 16.24 KB
  Сущность понятия учебные достижения. Содержания, формы, виды, методы проверки знаний и умений учащихся. Установлены следующие педагогические требования к организации контроля за учебной деятельностью учащихся: Индивидуальный характер контроля, осуще...
8234. Характеристика современного процесса воспитания. Его сущность, двусторонний характер, противоречия, закономерности 16.5 KB
  Характеристика современного процесса воспитания. Его сущность, двусторонний характер, противоречия, закономерности. Воспитание - функция общества, явление, возникшее в древние времена. Воспитание - целенаправленный процесс развития человек...
8235. Основные подходы к разработке содержания воспитания в современной педагогике 15.39 KB
  Основные подходы к разработке содержания воспитания в современной педагогике. Метод воспитания - это путь достижения заданной цели воспитания. Это система приёмов и средств, используемых для достижения поставленной цели. Приём воспитания...
8236. Характеристика методов воспитания учащихся. Критерии выбора эффективного использования методов воспитания в педагогическом процессе 19.55 KB
  Характеристика методов воспитания учащихся (по одной из классификаций). Критерии выбора эффективного использования методов воспитания в педагогическом процессе. Метод воспитания - это путь достижения заданной цели воспитания. Это система приёмо...
8237. Основные направления и формы воспитательной работы 18.84 KB
  Основные направления и формы воспитательной работы Основными направлениями, по которым проводится воспитательная работа являются: нравственное, правовое, трудовое, эстетическое и физическое воспитание. Воспитательная работа может проводиться и...
8238. Коллектив как объект и субъект воспитания. Признаки, стадии, средства формирования коллектива учащихся 16.51 KB
  Коллектив как объект и субъект воспитания. Признаки, стадии, средства формирования коллектива учащихся. Коллектив - некая социальная общность людей. По Макаренко признаки коллектива: 1) общность создания ради значимой цели. 2) цель отражается в...