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

тематики и информатики КУРСОВАЯ РАБОТА по информатике ВАРИАНТ 1- Визуализация численных ме

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

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

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

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

от 25%

Подписываем

договор

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

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

Министерство РФ по связи и информатизации

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

телекоммуникаций и информатики»

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

Кафедра физики, прикладной математики и информатики

КУРСОВАЯ РАБОТА

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

ВАРИАНТ №1:

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

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

Исполнитель:

студент гр. МЕ-71

Арапов И.А.

Руководитель:

Доцент Минина Е.Е

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

2008

Введение

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

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

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

Основные цели и задачи работы:

Целью моей работы является изучение основ системы программирования Microsoft  Visual  Basic и приобретение начальных навыков разработки программного обеспечения для операционных систем  Windows.

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

Решить методами Эйлера и Рунге-Кутта 4 порядка задачу Коши для дифференциального уравнения 1-го порядка 2*x*y*dx-(x+1)=0

на отрезке [1,2; 2] с шагом h=0.1 и начальным условием: Y(0) = 1. Общее решение: y=exp(2*x)*C/(x+1)^2

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

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

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

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

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

2.1 . Решение поставленной задачи методами Эйлера  и Рунге-Кутта 4 порядка

2.1. 1. Метод Эйлера

1. Строим оси координат;

2. Отмечаем A(1,2; 1) – первую точку интегральной кривой;

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

α= arctg(f(x0; y0))=arctg(f(1,2; 1))=arctg(-0.598)=333º

4. Строим касательную l0 в точке А под углом α0;

5. Находим х1 по формуле: xi = х0 + ih, где h – шаг интегрирования

x1 = 1,2+ 1 · 0,1 = 1,3

6. Проводим прямую x = x1 = 0,1  до пересечения с прямой l0, отмечаем точку B(x1; y1);

7. Ищем y точки B:

Из прямоугольного треугольника ABC ,

Δy = y1 y0,

Δx = x1 – x0 = h,

f(x0; y0) = (y1 – y0)/h =>

y1 = y0 + h · (f(x0; y0)) = 1 + 0,1 · f(1,2; 1) = 0,95

Следовательно, точка B имеет координаты (1,3;  0,95).

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

1. Строим оси координат;

2. Отмечаем А(1,2; 1) – первую точку интегральной кривой;

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

4. Строим касательную l0 в точке А под углом α0;

5. Находим х1 по формуле: xi = х0 + ih

x1 = 1,2 + 1 · 0,1 = 1,3;

  1.  Находим по формулам:

k1=0,1·f(1,2; 1)=0,1*(-0.55)=-0,055

k2=0,1· f(1,2+0,1/2; 1+(-0,055)/2)=-0,05403

k3=0,1· f(1,2+0,1/2; 1+(-0,054)/2)=-0,05406

k4=0,1· f(1,2+0,1; 1+(-0,05406))=-0,05346

y1=((-0,055)+2*(-0,05403)+2*(-0,05406)+(-0,05346))/6=-0,03619

 y2=1+(-0,03619)=0,964

Следовательно, следующая точка графика решения имеет координаты (1,3; 0,964)

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

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

Блок-схема методЭйлера.

Блок-схема методом Эйлера модифицированным.

 

Блок-схема графика.

Блок схема программы.

4. Формы программы.

Исходный вид формы программы.

Итоговый вид формы программы.

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

Dim x(50) As Single, y(50) As Single, k(50) As Single, z(50) As Single, p(50) As Single

Private y0 As Single

Private x0 As Single

Private xk As Single

Private C As Single

Function f(t As Single, q As Single) As Single

f = 2 * t * q / t + 1

End Function

Private Sub Command2_Click()

x0 = Val(Text1.Text)

xk = Val(Text2.Text)

y(0) = Val(Text4.Text)

h = Val(Text3.Text)

p(0) = y(0)

z(0) = y(0)

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

C = (y(0) * (x0 + 1) ^ 2) / Exp(2 * x0)

MSFlexGrid1.Rows = n + 2

MSFlexGrid1.Cols = 4

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

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

MSFlexGrid1.TextMatrix(0, 2) = "Yэ"

MSFlexGrid1.TextMatrix(0, 3) = "Yэм"

Max = y(0)

Min = y(0)

For i = 1 To n

x(i) = x0 + i * h

p(i) = Round(C * (x(i) * x(i) * x(i)) )

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

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

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(p(i))

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

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

Next i

Picture1.Cls

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

ky = (Picture1.Height - 1200) / (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(720 + (x(i + 1) - x0) * kx)

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

z5 = Round(5400 - (p(i) - Min) * ky)

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

z7 = Round(5400 - (z(i) - Min) * ky)

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

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

Picture1.Line (z1, z2)-(z3, z4), vbGreen

Picture1.Line (z1, z5)-(z3, z6), vbBlue

Next i

End Sub

Private Sub Command1_Click()

End

End Sub

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

Заключение

В данной курсовой работе я изучил численные методы решения задачи

По окончании работы я научился работать в  среде программирования Visual Basic 6.0. и MathCad.

Я, в своей курсовой работе решал уравнение двумя методами: методом Эйлера и методом Эйлера модифицированного.Я выяснил, что метод Эйлера модифицированный имеет меньшую погрешность, чем метод Эйлера.


Eiler

h=(xk-x0)/N

i=0,…,N-1

x(i)=x0+h*i

yi=yi-1+h*f(xi-1,yi-1)

end

Eiler mod

=(xk-x0)/N

i=0,…,N-1

x(i)=x0+h*i

Yi=y(i-2)+h*F(x(i-2)+h/2,y(i-2)+h/2*F(x(i-2), y(i-2))

end

end

F=2*t*q/t+1

F(t,q)

Graphic

x0, xk, y0, h

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

MSFlexGrid1.Rows=n+2

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

MSFlexGrid1.TextMatrix(0,1)=”YЭ

MSFlexGrid1.TextMatrix(0,2)=”YЭМ

MSFlexGrid1.TextMatrix(0,3)=”P”

x(0)=x0

y(0)=y0

c=y0*(x0+1)^2/exp(2*x0)

y1(i+1)=y1(i)+h*F(x(i),y1(i))

For i=0 to N

x(i)=x0+h*i

Z(0)=y0

y2(i+1)=y2(i)+h*F(x(i)+h/2,y2(i)++h*F(x(i),y2(i))/2

Y(i)=exp(2*x(i)) *C/(x(i)+1)^2

min=Y(0)

For i=0 to N

Y(i)<min

min=y(i)

max=Y(0)

For i=0 to N

Y(i)>max

max=Y(i)

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

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

нет

да

нетт

да

p(0)=y0

For i=0 to N-1

p1=720+(x(i)-x0)*kx

p2=5400-(y1(i)-min)*ky

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

p4=5400-(Y(i+1)-min)*ky

p5=5400+(p(i)-min)*ky

p6=5400-(p(i+1)-min)*ky

p7=5400-(z(i)-min)*ky

P8=5400-(z(i+1)-min)*ky

Picture1.Line(p1,p2)-(p5,p6),vbRed

Picture1.Line(p1,p3)-(p5,p7),vbGreen

Picture1.Line(p1,p4)-(p5,p8),vbBlue

end

Programma

x0, xk, y0, h

h=(xk-x0)/N

c=y(0)*(x0+1)^2/exp(2*x0)

i=0,…,N

x(i)=x0+h*i

y1(i+1)=y1(i)+h*F(x(i),y1(i))

y2(i+1)=y2(i)+h*F(x(i)+h/2,y2(i)++h*F(x(i),y2(i))/2

Y(i)=( exp(2*x(i)) *C/(x(i)+1)^2

x(i),y1(i),y2(i),Y(i)

end




1. Введение Немного предыстории 3 Развитие Октоиха на Востоке и Западе
2. Введение Свет представляет собой электромагнитные волны
3. Полномочия прокурора в сфере надзора за соблюдением прав и свобод человека и гражданина
4. Лабораторный практикум по дисциплине «АВТОМАТИКА
5. Лекция Состав операторов языка C их синтаксис и семантика унаследованы от языка С
6. Гражданско-правовая характеристика договора страхования
7. Реферат- Основные субклеточные структуры растительной клетки
8. Лабораторна робота 13 Тригери Виконав студент групи СПс31 Підгайний Олександр Терно
9. ГОРНОАЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Психологопедагогический факультет Кафедра психологии
10. 5 реферат дисертації на здобуття наукового ступеня кандидата психологічних наук
11. тема информационного обеспечения
12. Как соотносятся политика и политическая деятельность
13. Introduction Red this true story bout n mericn tourist in Britin
14. Тевтонский орден
15. Тема урока Тема урока Личностные универсальные учебные дейс
16.  Рынок заемного капитала и рынок инструментов собственности акции4 1
17. Економічна криза в Україні та шляхи її подоланн
18. Болеро равеля
19. рефератдисертації на здобуття наукового ступенядоктора технічних наук Харків2005 Дисертацією.
20. Контрольная работа- Сущность инновационного менеджмента