Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 27.11.2024

СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ

УРАЛЬСКИЙ ТЕХНИЧЕСКИЙ ИНСТИТУТ СВЯЗИ И

ИНФОРМАТИКИ

ФАКУЛЬТЕТ ТЕЛЕКОММУНИКАЦИЙ

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

по информатике

на тему:

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

Руководитель:                                                                          Выполнил:

Минина Е.Е Группа № МЕ-11

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

Содержание

[1] Техническое задание

[2] Введение

[3] 1. Постановка задачи

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

[4.1] 2.1 Метод Рунге-Кутта

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

[5] 3.Решение задачи в MathCad

[6] 4. Блок – схемы используемых методов

[6.1] 4.1 Метод Рунге-Кутта

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

[6.3] 4.3 Общая блок-схема

[7] 5. Формы

[8] 6. Листинг программы

[9] 7.Заключение

[10] 8. Литература

 Техническое задание

Решить дифференциальное уравнение

                             

c начальным условием y0 = 1 и общим решением

на отрезке х0 = 0  до хk = 1  с шагом h = 0.1 методом  Рунге - Кутта и Эйлера модифицированным. 


Введение

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

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

Курсовой проект является важнейшей составляющей курса и первой объемной самостоятельной инженерно-расчетной работой студента.

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

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


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

В курсовой работе необходимо двумя методами (Рунге-Кутт, Эйлер модифицированный) решить задачу Коши для дифференциального уравнения 1-го порядка  на отрезке [0,1] с шагом h=0.1 и начальным условием Y(X0)=Y0(1), Y0=1,

Ответ должен быть получен в виде таблицы результатов:

X

Y(1)

Y(2)

Y(T)

X0

Y0(1)

Y0(2)

Y(X0)

X1

Y1(1)

Y1(2)

Y(X1)

Xk

Yk(1)

Yk(2)

Y(Xk)

Где: Y(1) , Y(2) - решения, полученные различными численными методами,

Y(T) – точное решение дифференциального уравнения.

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

Данные таблицы визуализировать на форме в виде графиков.

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

Входные данные: x0, xk, y0, h.

Выходные данные: массив значений y в каждой точке узла.

                                     

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

Решить дифференциальное уравнение – это значит найти все значения yi  на заданном отрезке.

Рассмотрим дифференциальное уравнение 1-го порядка в общем виде

Решением этого уравнения является интегральная кривая y = y(x), удовлетворяющая начальному условию y(x0 ) = y0 .

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

 y = y(x) и показанных на рис.1 штриховыми линиями и одной сплошной кривой, проходящей через точку H(x0 , y0 ) и являющейся решением уравнения при начальном условии y(x0 ) = y0 .

Необходимо отметить, что для существования хотя бы одного решения функция f(x,y) должна быть непрерывна в некоторой области около точки H(x0 , y0 ).

                               

Рис. 1

Пусть интегральная кривая проходит через точку М(x1 , y1 ). Угловой коэффициент касательной в точке М равен

                                               

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

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

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

     

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

y(x0) = y0.

Выберем шаг h и введём обозначения:

 xi = x0 + i.h   и   yi = y(xi) ,   где    i = 0, 1, 2, …,

xi – узлы сетки,

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

Решение дифференциального уравнения производится аналогично описанным ниже методом Эйлера модифицированного. Отличие состоит в делении шага на 4 части.

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

yi+1=yi+

где

=,         i=0,1,2,…

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

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


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

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

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

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

y(x0) = y0.

Выберем шаг h и введём обозначения:

 xi = x0 + i.h   и   yi = y(xi) ,   где    i = 0, 1, 2, …,

xi – узлы сетки,

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

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

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

Рисунок 4. Метод Эйлера модифицированный.

Проведем решение в несколько этапов.

1. Обозначим точки: A(xi, yi), C(xi+h/2, yi+h/2*f(xi,yi)) и B(xi+1, yi+1).

2. Через точку  А проведем прямую под углом α, где

3. На этой прямой найдем точку C(xi+h/2, yi+h/2*f(xi,yi)).

4. Через точку  С проведем прямую под углом α1, где

5. Через точку А проведем прямую, параллельную последней прямой.

6. Найдем точку В(xi+1, yi+1). Будем считать  В(xi+1, yi+1) решением дифференциального уравнения при x=xi+1.

7. После проведения вычислений, аналогичных вычислениям, описанным в методе Эйлера, получим формулу для определения значения yi+1:

.

Модифицированный метод Эйлера дает меньшую погрешность. На рисунке 4 это хорошо видно. Так величина ε1 характеризует погрешность метода Эйлера, а ε – погрешность метода Эйлера модифицированного.

3.Решение задачи в MathCad

4. Блок – схемы используемых методов

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

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

4.3 Общая блок-схема


5. Формы


6. Листинг программы

Dim x(50) As Single

Dim y(50) As Single

Dim y1(50) As Single

Dim y2(50) As Single

Private y0 As Single

Private x0 As Single

Private xk As Single

Function f(vX As Single, vY As Single) As Single

f = 2 * vX ^ 2 + 2 * vY

End Function

Private Sub Command1_Click()

x0 = Val(Text1.Text)

xk = Val(Text2.Text)

y0 = Val(Text4.Text)

h = Val(Text3.Text)

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

C = 1.5 * Exp(2 * x0) - x0 ^ 2 - x0 - y0

MSFlexGrid1.Rows = N + 2

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

MSFlexGrid1.TextMatrix(0, 1) = "Yem"

MSFlexGrid1.TextMatrix(0, 2) = "Yrk"

MSFlexGrid1.TextMatrix(0, 3) = "Yt"

Max = 8.5

Min = 1

y(0) = y0

y1(0) = y0

y2(0) = y0

For i = 0 To N

x(i) = x0 + i * h

y(i + 1) = Round(y(i) + f(x(i) + h / 2, y(i) + h / 2 * f(x(i), y(i))) * h, 4)

K1 = h * f(x(i), y1(i))

K2 = h * f(x(i) + h / 2, y1(i) + K1 / 2)

K3 = h * f(x(i) + h / 2, y1(i) + K2 / 2)

K4 = h * f(x(i) + h, y1(i) + K3)

K = (K1 + 2 * K2 + 2 * K3 + K4) / 6

y1(i + 1) = y1(i) + K

y2(i) = Round(1.5 * Exp(2 * x(i)) - x(i) ^ 2 - x(i) - C, 4)

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

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

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

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

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

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

Next i

Picture1.Cls

kx = (Picture1.Width - 1400) / (xk - x0)

ky = (Picture1.Height - 1400) / (Max - Min)

Label4.Caption = Str(Min)

Label5.Caption = Str(Max)

Label6.Caption = Str(x0)

Label7.Caption = Str(xk)

For i = 0 To N - 1

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

z2 = Round(5400 - (y(i) - Min) * ky)

z3 = Round(5400 - (y1(i) - Min) * ky)

z4 = Round(5400 - (y2(i) - Min) * ky)

z5 = Round(720 + (x(i + 1) - x0) * kx)

z6 = Round(5400 - (y(i + 1) - Min) * ky)

z7 = Round(5400 - (y1(i + 1) - Min) * ky)

z8 = Round(5400 - (y2(i + 1) - Min) * ky)

Picture1.Line (z1, z2)-(z5, z6), vbGreen

Picture1.Line (z1, z3)-(z5, z7), vbRed

Picture1.Line (z1, z4)-(z5, z8)

Next i

End Sub

Private Sub Command2_Click()

End

End Sub


7.Заключение

Выполняя курсовую работу, я решил данное мне дифференциальное уравнение  и с помощью численных методов (Рунге-Кутта и Эйлера модифицированного) и общего решения построил графики их решения в программе Microsoft Visual Basic 6.0. Как и следовало ожидать графики, построенные с помощью метода Эйлера модифицированного и Рунге-Кутта, полностью совпали с графиком точного решения.  Точность методов достаточно высока, следовательно, их можно применять в ситуации, когда нет возможности вычислить интеграл, и получить ответ с незначительной погрешностью.


8. Литература

  1.  А.Ф.Грачев, В.В.Историна «Курсовой проект, курсовая и реферативная работа», методические указания.

  1.  В.А.Добряк, В.Д.Нехорошев «Ваша первая программа на Microsoft V. Basic».

  1.  Г.М.Финтенгольц  «Курс дифференциального и интегрального исчисления».

4.Н.В.Макарова учебник «Информатика».


End

Yi+1= yi + k

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

x

       K4=h*F(x+h,yi+k3)

   K3=h*F(x+h/2,yi+k2/2)

          K2=h*F(x+h/2,yi+k1/2)

                      i=0,…,N-1

Эйлер мод

EMBED Equation.3  

EMBED Equation.3  

EMBED Equation.3  

EMBED Equation.3  

EMBED Equation.3  

конец

y

             EMBED Equation.3  

y=y(x)

О

А

С

В

h/2

h

xi

xi+1

ε1

ε

α

α1

конец

 М.Э.

 М.Р.К.

  F(x,y)

X0, y0, xk, h

  начало

EMBED Equation.3  

Рунге




1. splio 15 d Ptvirtinu kd ~teikims drbs ldquo;Prezidento instituto JV ir Lietuvoje lyginimsrdquo; yr- tlikts svrnkiki ir n~r pteikts kitm kursui ime r nkstesniuose semestruo
2. Система водоснабжения
3. Семья и брак. Сущность, структура, функции, проблемы современной семьи
4. за края легкой тюлевой занавески и начал щекотать мне ресницы
5. Аудит фондов и себестоимости
6. ПСИХОЛОГА СЛУЖБЫ ПРАКТИЧЕСКОЙ ПСИХОЛОГИИ ОБРАЗОВАНИЯ РОССИИ
7. День рождения инфанты Это был день рождения Инфанты
8. и b1 состоят из одного элемента то N3 можно записать следующим образом- N3-; N4- слабая форма ассоциативнос
9. Справочник радиолюбителя
10. Оподаткування субєктів малого бізнесу єдиний податок
11. реферат дисертації на здобуття наукового ступеня кандидата історичних наук Л
12. варианта- их сохранение при частичной трансформации в частности освобождение предприятий от услуг не связ.html
13. жарко закрыть рот
14. Законодавство та нормативно правове забезпечення ветеринарної медицини Історія становлення та розв.
15. Реферат- Уровень жизни
16. СевероКазахстанский государственный университет им
17. Контрольная работа- Психология успеха
18. Реферат- Патологія печінки
19. 13 Когда вы играете с Фишером вопрос не в том выиграете вы или нет; вопрос в том выживете вы или н
20. Шпаргалка- Міжнародне приватне право