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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Министерство информационных технологий и связи РФ

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

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

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

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

Решение обыкновенных дифференциальных уравнений.

Выполнил: студент гр. ТЕ-81

Важенин И.Ю.

Проверил: Минина Е.Е.

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

2009г.


Содержание

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

[2]
2. Описание численных методов (применительно к конкретной задаче)

[3] 3. Блок-схемы программ и основных подпрограмм.

[4] 4. Листинг программы на языке VisualBasic.

[5] 5. Формы проекта

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


Введение.

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

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

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

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

Чтобы достичь поставленной цели были выдвинуты следующие задачи:

1. Изучить численные методы решения дифференциальных уравнений;

2. Самостоятельно вычислить первую точку интегральной кривой заданными методами;

3. Написать программу для построения интегральной кривой на языке программирования VusuaiBasic;

4. Проверить решение в среде MathCad.

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

Решить методами Эйлера и Эйлера модифицированного задачу Коши для дифференциального уравнения 1-го порядка на отрезке [X0; Xk] с шагом h и начальным условием: Y(X0) = Y0.

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

X

Y(1)

Y(2)

YT

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) – решения, полученные различными численными методами, YT – точное решение дифференциального уравнения.

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

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

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

  

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

X0

Xk

h

Y0

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

(y^2-2*x*y)dx+x^2=0

1

2

0,1

0.2

y=x^2/(c+x)


2. Описание численных методов (применительно к конкретной задаче)

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

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

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

y’= f(x,y)

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

y(x0)=y0

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

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

xi  узлы сетки,

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

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

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


Расчет первой точки методом Эйлера модифицированного.

  1.  строим оси координат;
  2.  отмечаем начальную точку интегральной кривой А(x0;y0);
  3.  ищем угол наклона касательной к графику в точке А(1;0.2);

y’(x0) = f(x0;y0)

α0 = arctg(f(x0;y0))

α0 = arctg((0.2/1)*( 2-0.2/1)) = arctg(0.36)

  1.  строим касательную L0 к графику функции в точке А под углом α0 ;
  2.  находим x1 по формуле x1=x0+i*h

x1=1+1*0.1=1.1

  1.  отмечаем середину отрезка x1/2=x0+h/2 и проводим прямую из этой точки до прямой L0, отмечаем точку B(xb;yb);
  2.  ищем координаты точки В:

xb = x0+h/2

xb = 1+0.05=1.05

yb =  y0+h/2*f(x0;y0)

yb = 2+0.05*((0.2/1)*(2-0.2/1))

yb = 2.018

значит точка В имеет координаты (1.05;2.018);

  1.  ищем угол наклона касательной к графику в точке В:

αb = arctg(f(xb;yb))

αb= arctg((2.018/1.1)*(2-2.018/1.1)=arctg(0.304);

  1.  строим касательную L1 в точке В под углом αb;
  2.  проводим прямую x1=x0+h (=1+0.1=1.1)до пересечения с прямой L1, отмечаем точку С(x1;y1);
  3.  ищем y точки С:

y1=yb+h/2*f (xb;yb)

y1= 2.018+0.05*0.304

y1=2.17

значит точка С имеет координаты (1.1; 2.17)

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

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

y’= f(x,y)

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

y(x0)=y0

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

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

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

yi+1 = yi +∆ yi

где

∆ yi= 1/6* ( k1+2k2+2k3+k4 ), i=0,1,2…

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

k1= h * f ( x1, y1 )

k2= h * f ( x1+h/2, y1+ k1/2 )

k3= h * f ( x1+h/2, y1+ k2/2 )

k4= h * f ( x1+h, y1+k3 )

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

Метод Рунге-Кутта 4 порядка
Расчет первой точки методом Рунге-Кутта 4 порядка.

k1 =  h*f(x0;y0)

k1 = 0.1*(0.2*(2-0.2)) = 0.036

k2 = h*f(x0+h/2; y0+k1/2)

k2 = 0.1*((0.218/1.05)*(2-0.218/1.05)) = 0.037

k3 = h*f(x0+h/2;y0+k2/2)

k3 = 0.1*((0.2185/1.05)(2-0.2185)) = 0.0373

k4 = h*f(x0+h/2;y0+k3)

k4 = 0.1*((0.2373/1.1)(2-0.2373/1.1))=0.038

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

y = k = (0.036+2*0.037+2*0.0373+0.038)/6 = 0.036

y1=∆y +y0

y1 = 0.036 + 0.2 = 0.236

3. Блок-схемы программ и основных подпрограмм.

Для решения задачи и составления программы составим основные блок-схемы, которые приведены ниже.

1.Подпрограмма метода Эйлера модифицированного

 

 


2. Подпрограмма метода Рунге-Кутта 4 порядка

3. Подпрограмма общего решения функции

4. Алгоритм функции


5. Алгоритм программы



4. Листинг программы на языке VisualBasic.

Dim x(), em(), rk(), o() As Single

Private i, n As Integer

Private x0, xk, y0, h, miny, maxy, minx, maxx As Single

Function f(a, b) As Single

f = -((b * b) - 2 * a * b) / (a * a)

End Function

Private Sub EilerM()

ReDim x(n)

ReDim em(n)

x(0) = x0

em(0) = y0

For i = 0 To n - 1

x(i) = Round(x0 + i * h, 3)

em(i + 1) = Round(em(i) + h * f(x(i) + h / 2, em(i) + h / 2 * f(x(i), em(i))), 3)

Next i

End Sub

Private Sub RungeKutt()

ReDim x(n)

ReDim rk(n)

x(0) = x0

rk(0) = y0

For i = 0 To n - 1

x(i) = Round(x0 + i * h, 3)

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

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

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

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

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

rk(i + 1) = Round(rk(i) + k, 3)

Next i

End Sub

Private Sub Obchee()

ReDim x(n)

ReDim o(n)

c = Round(((x0 * x0 / y0) - x0), 3)

For i = 0 To n

x(i) = Round(x0 + (i * h), 3)

o(i) = Round((x(i) * x(i)) / (c + x(i)), 3)

Next i

End Sub

Private Sub Command1_Click()

x0 = Val(Text1.Text)

xk = Val(Text2.Text)

y0 = Val(Text3.Text)

h = Val(Text4.Text)

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

c = Round(((x0 * x0 / y0) - x0), 3)

MSFlexGrid1.Cols = 4

MSFlexGrid1.Rows = n + 2

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

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

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

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

EilerM

RungeKutt

Obchee

For i = 0 To n

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

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

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

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

Next i

miny = o(0)

maxy = o(n)

For i = 1 To n

If em(i) > maxy Then maxy = em(i)

If em(i) < miny Then miny = em(i)

If rk(i) > maxy Then maxy = rk(i)

If rk(i) < miny Then miny = rk(i)

If o(i) > maxy Then maxy = o(i)

If o(i) < miny Then miny = o(i)

Next i

Label9.Caption = Str(maxy)

Label10.Caption = Str(maxx)

Label11.Caption = Str(miny)

Label12.Caption = Str(minx)

Picture1.Cls

kx = (3600 - 240) / (xk - x0)

ky = (5640 - 360) / (maxy - miny)

For i = 0 To n - 1

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

z2 = Round(5640 - (em(i) - miny) * ky)

z3 = Round(240 + (x(i + 1) - x0) * kx)

z4 = Round(5640 - (em(i + 1) - miny) * ky)

Picture1.Line (z1, z2)-(z3, z4), RGB(0, 0, 9999)

Next i

For i = 0 To n - 1

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

z2 = Round(5640 - (rk(i) - miny) * ky)

z3 = Round(240 + (x(i + 1) - x0) * kx)

z4 = Round(5640 - (rk(i + 1) - miny) * ky)

Picture1.Line (z1, z2)-(z3, z4), RGB(0, 9999, 0)

Next i

For i = 0 To n - 1

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

z2 = Round(5640 - (o(i) - miny) * ky)

z3 = Round(240 + (x(i + 1) - x0) * kx)

z4 = Round(5640 - (o(i + 1) - miny) * ky)

Picture1.Line (z1, z2)-(z3, z4), RGB(9999, 0, 0)

Next i

End Sub

Private Sub Command2_Click()

End

End Sub

5. Формы проекта

Форма разработки проекта.

 


Форма с результатами работы проекта.


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


 


Заключение.

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

С помощью данной работы были закреплены навыки работы в различных приложениях WINDOWS, а именно Microsoft Word, Mathcad и  VisualBasic.

Курсовая работа на тему «Визуализация численных методов» показалась мне интересной и была выполнена по указаниям преподавателя.


End

i=0,..,n-1

End

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

z2 = Round(5640 - (o(i) - miny) * ky)

z3 = Round(240 + (x(i + 1) - x0) * kx)

z4 = Round(5640 - (o(i + 1) - miny) * ky)

Picture1.Line (z1, z2)-(z3, z4), RGB(9999, 0, 0)

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

z2 = Round(5640 - (rk(i) - miny) * ky)

z3 = Round(240 + (x(i + 1) - x0) * kx)

z4 = Round(5640 - (rk(i + 1) - miny) * ky)

Picture1.Line (z1, z2)-(z3, z4), RGB(0, 9999, 0)

em(i)<miny

Miny=em(i)

Maxy = rk(i)

rk(i)>maxy

End

x(i) = (x0 + (i * h)

o(i) = ((x(i) * x(i)) / (c + x(i))

i = 1, …, n

(n), o(n)

Obchee

да

нет

да

x(i) = x0 + i * h

k1 = h * f(x, rk )

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

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

k4 = h * f(x + h, rk  + k3)

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

rk (i + 1) = rk (i) + k

i = 1, …, n-1

h=(xk-x0)/n

RungeKutt (x0,xk,y0,n,rk)

End

x = x0 + i * h

em(i + 1) = em(i) + h * f(x + h / 2, em(i) + h / 2 * f(x, em(i))

i = 1, …, n-1

h=(xk-x0)/n

EilerM(x0,xk,y0,n,em)

rk(i)<miny

em(i)>maxy

miny=rk(i)

C=(x^2/y)-x

n=(xk-x0)/h

Start

EilerM

RungeKutt

Obchee

x=x0+i*h

i=0,..,n-1

x0,xk,y0,h

Maxy=em(i)

Label 1

Label 2

Label 3

Label 4

Label 5

Label 6

Text1

Text2

Text3

Text4

Command1

Command2

Picture1

Label7

нет

End

f=b/a*(2-b/a)

f (a,b)

MSFlexGride

o(i)>maxy

maxy=o(i)

o(i)<miny

miny=o(i)

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

z2 = Round(5640 - (em(i) - miny) * ky)

z3 = Round(240 + (x(i + 1) - x0) * kx)

z4 = Round(5640 - (em(i + 1) - miny) * ky)

Picture1.Line (z1, z2)-(z3, z4), RGB(0, 0, 9999)

i=0,..,n-1

да

нет

да

нет

да

нет

да

нет

y

x

y=y(x)

О

А

С

В

h/2

h

xi

xi+1

ε1

ε

α

α1




1. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата політичних наук Одеса ~.html
2. код Статус По спорам с поставщиками деньгам Сумка черная 590р.
3. планзвіт по лісовому гву 2
4. Задание 1 По данным бухгалтерского баланса проанализировать и оценить динамику состава и структуры активов
5. СОБСТВЕННОСТЬ исторически определенный обществ
6. Преступления против основ конституционного строя и безопасности государства всего десять составов
7. тематический план ТЕМА 4 ОТЕЧЕСТВЕННАЯ ЖУРНАЛИСТИКА В XX СТОЛЕТИИ Содержание Русская журна
8. комунікаційних технологій Навчальна дисципліна- Мережні операційні системи Лабораторія- Інформа
9. Тематика курсовых работ по дисциплине Трудовое право Трудовые права в системе основных прав чело.html
10. Курсовая работа- Замкнутые сети с многорежимными стратегиями обслуживания
11. ІРадіопротектори
12. Флоренция Рим Террачина отдых на Тирренском море 7 ночей-8 дней Тиволи Ассизи СанМарино Венеция Вен
13. Минимизация абстрактных автоматов
14. 1915 Творческий путь Это ~ композитор молодого поколения.
15. лекция медицинских рефератов историй болезни литературы обучающих программ тестов
16. Управление персоналом.html
17. тема экономических отношений 2.
18. Пояснительная записка НУРЭ 468832
19. Структура и классификация информационных технологий
20. Анализ международного контракта купли-продажи