49688

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

Курсовая

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

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

Русский

2014-01-07

1.19 MB

4 чел.

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

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

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

Курсовая по информатике

             

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

      Студент: Паршуков Артем Алексеевич

Группа:  МЕ-51

      Преподаватель: Минина Елена Евгеньевна

 

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

Оглавление

[1] Оглавление

[1.1] Постановка задачи:

[1.2] Математическая модель:

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

[2.1] Метод Эйлера модифицированного

[2.2] Блок-схема описания функции:

[2.3] Исходная форма:

[2.4] Итоговая форма:

[3] Листинг программы на языке Visual Basic

[4] Вывод


Введение

В данной курсовой работе у меня состоит задача в том, чтобы решить дифференциальное уравнение  с помощью двух методов:1)Эйлер 2) Эйлер Модифицированный

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


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

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

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

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

Дано:

 

X0=0

Xk=0.8

h=0.05

Y0=4

Найти:

Y - массив значений искомого решения в узлах сетки.


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

Метод Эйлера:

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

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


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

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

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

-узлы сетки,

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

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

Тогда                                 (2).

Из прямоугольного треугольника АВС:                                        (3).

Приравняем правые части (1) и(3). Получим .

Отсюда

Подставим в это выражение формулу (2), а затем преобразуем его. В результате получаем формулу расчёта очередной точки интегральной функции:  (4).

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

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

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

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

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

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

-узлы сетки,

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

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

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

 

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

1.   Обозначим точки: А(хi; уi), C(xi+h/2, yi+h/2*f(xi; yi)) и В(хi+1; yi+1).

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

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

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

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

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

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

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


Блок-схемы

Блок-схема описания функции:


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

Исходная форма:

Итоговая форма:

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

Dim x(25) As Single, y1(25) As Single, y2(25) As Single, y3(25) As Single

Private x0 As Single

Private xk As Single

Function f(x, y As Single) As Single

   f = 2 * y * x / (x + 1)

End Function

Private Sub Command1_Click()

Dim k, k1, k2, k3, k4, y0, r As Single

Dim i

   x0 = Val(text1.Text)

   xk = Val(Text2.Text)

   h = Val(Text3.Text)

   y0 = Val(Text4.Text)

   e = 2.7

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

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

   MSFlexGrid1.Rows = n + 2

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

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

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

   MSFlexGrid1.TextMatrix(0, 3) = "Y(О)"

   Max = 0

   Min = y0

   y2(i) = y0

   y3(i) = y0

For i = 0 To n

   x(i) = x0 + i * h

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

   y1(i) = (e ^ (2 * x(i))) * c / (x(i) + 1) ^ 2

   MSFlexGrid1.TextMatrix(i + 1, 3) = Str(Round(y1(i), 4))

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

   MSFlexGrid1.TextMatrix(i + 1, 2) = Str(Round(y2(i), 4))

   y3(i + 1) = y3(i) + h * f(x(i), y3(i))

   MSFlexGrid1.TextMatrix(i + 1, 1) = Str(Round(y3(i), 4))

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

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

Next i

   Label5.Caption = Str(Round(Max, 4))

   Label6.Caption = Str(Round(Min, 4))

   Label7.Caption = Str(x0)

   Label8.Caption = Str(xk)

   Picture1.Cls

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

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

For i = 1 To n - 1

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

   z2 = Round(5045 - (y1(i) - Min) * ky)

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

   z4 = Round(5045 - (y1(i + 1) - Min) * ky)

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

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

   z2 = Round(5045 - (y3(i) - Min) * ky)

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

   z4 = Round(5045 - (y3(i + 1) - Min) * ky)

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

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

   z2 = Round(5045 - (y2(i) - Min) * ky)

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

   z4 = Round(5045 - (y2(i + 1) - Min) * ky)

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

Next i

End Sub

Вывод 

В данной курсовой работе было рассмотрено два метода решения дифференциального уравнения: Эйлер и Эйлер модифицированный. Значения этих двух методов и общего решения сводится в таблицу, на основании которой строится график.

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


Начало

X0,Xk,Y0,h

n=(Xk-X0)/h

X(i)=Xo+i*h

C=y^2+(1-x)^2

Y3(i)

i=0..n

X(i)

Y1(i)

y1(i)=(e ^ (2 * x(i))) * c / (x(i) + 1) ^ 2

Y1(i)>MAX

MAX=Y1(i)

MIN=Y1(i)

Y1(i)<MIN

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

Y2(i)

2

y3(i + 1) = y3(i) + h * f(x(i), y3(i))

Y2(i)

Label7

Label8

2

Label6

Z4=(y1(i+1)-MIN)*KY

Z3= (X(i+1)-X0)*KX

Z2=(y1(i)-MIN)*KY

Z1= (X(i)-X0)*KX

i=0..n-1   

KY=(Height-1050)/(MAX-MIN)

KX=(Width-1000)/(Xk-X0)

Line(Z1,Z2)-(Z3,Z4)

Z2=(y2(i)-MIN)*KY

Z1= (X(i)-X0)*KX

2

2

Z4=(y2(i+1)-MIN)*KY

Z3=(X(i+1)-X0)*KX

Line(Z1,Z2)-(Z3,Z4)

Line(Z1,Z2)-(Z3,Z4)

Z4=(y3(i+1)-MIN)*KY

Z3= (X(i+1)-X0)*KX

Z2=(y3(i)-MIN)*KY

Z1= (X(i)-X0)*KX

Конец

f=2xy/(x+1)

F(x,y)

Конец

1

3

1

3

1

3

1

3

Text3

Label4

Text4

Label2

Text2

Label3

Label1

Text1

MSFlexGrid1

EMBED Equation.DSMT4  

EMBED Equation.DSMT4  

Label5

Command1

Picture1

Min=y0, Max=0,

Y2=y0, y3=y0

EMBED Equation.DSMT4  

EMBED Equation.DSMT4  

EMBED Equation.DSMT4  


 

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

66629. Норматино-правове регулювання захисту інформації та ISO 27 серії 19.51 KB
  Метою захисту інформації має бути збереження цінності інформаційних ресурсів для їх власника. Ці технології мають ураховувати особливості інформації які й роблять її цінною а також давати змогу користувачам різних категорій працювати з інформаційними ресурсами...
66630. ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ И ПЕРЕМЕЖЕНИЕ. ПРИНЦИПЫ ПОМЕХОУСТОЙЧИВОГО КОДИРОВАНИЯ 632.57 KB
  Помехоустойчивое кодирование сообщений или кодирование с прямым исправлением ошибок применяется в системах связи, в которых отсутствует или недоступен обратный канал для передачи запросов на повторную передачу...
66631. Жизнь и научная деятельность Ильи Андреевича Соколова 147.83 KB
  В то время этот лозунг действовал не только безотказно, но он завораживал всех, включая и ученый мир, своей, казалось бы, легкостью, целесообразностью его выполнения и что именно реализация освоения создаст "счастливую жизнь", в которой так нуждались народы СССР.
66632. Биография М.В.Ломоносова. Вклад Ломоносова в почвоведение 48.3 KB
  Внутренние противоречия в социально-экономическом развитии России неизбежно отражались на состоянии русской науки и культуры XVIII столетия. Ломоносов отдавший всю свою жизнь развитию науки и культуры России. Ломоносов показавший своей многогранной деятельностью какие творческие возможности народа скованы крепостничеством.
66633. Предмет исследования искусственного интеллекта 589 KB
  Обучение нейронной сети в первую очередь заключается в изменении силы синаптических связей между нейронами. Искусственный нейрон узел искусственной нейронной сети являющийся упрощённой моделью естественного нейрона. Нейрон представляет собой своеобразную единицу обработки информации...
66634. Научный вклад Павла Андреевича Костычева в почвоведение 922 KB
  Началом подготовки крестьянской реформы стало учреждение по указу Александра II в январе 1857 секретного комитета для обсуждения мер по устройству быта помещичьих крестьян главной задачей которого была отмена крепостного права с обязательным наделением крестьян землей.
66635. Народознавство: суть, принципи, функції та засоби 99.5 KB
  Таким чином до сфери народознавства входили б і такі науки як історія політична й історія розвитку державних інститутів історія наук і історія промислу все звичайно в сфері щонайобмеженішій наскільки це стосується певного конкретного народу. Народознавство у вузькому значенні етнографія наука про культуру побут народу його походження розселення національні традиції та обряди.
66636. Развитие психоанализа в работах А.Адлера и К.К. Г. Юнга 142.5 KB
  Психоанализ возник на рубеже ХIХ–ХХ столетий. Термин «психоанализ» впервые был использован австрийским невропатологом Зигмундом Фрейдом в статье «Наследственность и этиология неврозов», опубликованной на французском языке 30 марта 1896 года.
66637. Ассоциативная психология: история, идеи факты 96 KB
  Заметим, что понятие ассоциации возникло довольно давно и историю его возникновения мы можем проследить, начиная с работ Аристотеля и Платона. В ходе развития науки различные философские системы вкладывали в понятие ассоциации различный смысл.