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  


 

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

36910. МОДЕЛИРОВАНИЕ ЗВЕНЬЕВ АВТОМАТИЧЕКСКИХ СИСТЕМ 346.5 KB
  1 Безынерционное звено Рис. 2 Интегрирующее звено Рис. 3 Апериодическое звено 1 порядка Рис. 4 Колебательное звено Переходные ht и передаточные Wp характеристики звеньев имеют вид: Безынерционное звено Wp=k Интегрирующее звено Wp=k p Апериодическое звено Wp=k Tp1 Колебательное звено Wp=k1 T2p22k2Tp1...
36911. Файлы и папки 185 KB
  Скопируйте этот файл с заданием в свою сетевую папку на studdc1 Загрузить программу Проводник. Создайте на своем рабочем столе структуру папок: Для этого щелкните правой кнопкой мыши для вызова контекстного меню выберите команду Создать Папку. Откройте текстовый файл и наберите текст: Переместите файл МОЙ ТЕКСТ в папку SUB. В любой папке доступной на Вашем компьютере выберите три файла вразброс используя для выделения клавишу Ctrl и скопируйте их в папку SUB.
36912. Операционная система MS DOS, конфигурирование и настройка 58.5 KB
  ОС MSDOS основные системные команды. Системные команды MS DOS MSDOS сокр. MSDOS самая известная ОС из семейства DOS ранее устанавливаемая на большинство PCсовместимых компьютеров.
36913. Исследование характеристик ТТЛ элемента 49.5 KB
  Исследование характеристик ТТЛ элемента. Цель лабораторной работы: исследовать основные свойства стандартного ТТЛ элемента переходную характеристику входную характеристику и выходные характеристики. На рабочем столе собрать принципиальную электрическую схему логического элемента ТТЛ. На вход элемента подключить источник напряжения изменяющегося по треугольному закону.
36914. Выделение и перемещение фрагментов изображения, кадрирование изображений 158.5 KB
  dobe Photoshop Тема: Выделение и перемещение фрагментов изображения кадрирование изображений Цель: приобрести навыки работы с инструментами выделения фрагментов изображений научиться перемещать и копировать выделенные фрагменты. Краткие теоретические сведения В данном уроке используются следующие инструменты: Инструмент Zoom Масштаб позволяет получать изображение на экране в увеличенном или в уменьшенном виде. Инструмент Crop Рамка позволяет выделить прямоугольный фрагмент изображения и удалить ту его часть которая осталась за...
36915. КОМПЬЮТЕРНАЯ СИСТЕМА PROJECT EXPERT. ФОРМИРОВАНИЕ ФИНАНСОВОЙ МОДЕЛИ ПРОЕКТА 47.5 KB
  ФОРМИРОВАНИЕ ФИНАНСОВОЙ МОДЕЛИ ПРОЕКТА Цель: изучить систему команд Project Expert формирования финансовой модели инвестиционного проекта для предприятия. Построив с помощью Project Expert финансовую модель собственного предприятия или инвестиционного проекта можно получить такие возможности: разработать детальный финансовый план и определить потребность в денежных средствах на перспективу; определить схему финансирования предприятия оценить возможность и эффективность привлечения денежных средств из различных источников; разработать...
36916. Структура управления регионального международного аеропорта (РМА) 55 KB
  Непосредственно генеральному директору аэропорта подчиняются его замы и директора по направлениям а также самостоятельные структурные подразделения и службы. Типовая структура РМА представлена на схеме: Деятельность отдельных подразделений и служб аэропорта Основные функции службы качества: 1. разработка перспективных направлений повышения качества услуг авиакомпаниям и клиентам аэропорта; 2.
36917. Исследование статической и динамической характеристики термопары 188 KB
  Исследование статической и динамической характеристики термопары. Ознакомиться со схемами включения измерительного прибора в цепь термопары. Экспериментально получить статическую и динамическую характеристики термопары. Определить математическую модель термопары.
36918. Знакомство с математическим пакетом Scilab 141.5 KB
  Знакомство с математическим пакетом Scilb Scilb это система компьютерной математики которая предназначена для выполнения инженерных и научных вычислений таких как: решение нелинейных уравнений и систем; решение задач линейной алгебры; решение задач оптимизации; дифференцирование и интегрирование; обработка экспериментальных данных интерполяция и аппроксимация метод наименьших квадратов; решение обыкновенных дифференциальных уравнений и систем. Кроме того Scilb предоставляет широкие возможности по созданию и редактированию...