48857

РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

Курсовая

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

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

Русский

2013-12-16

221.5 KB

7 чел.

PAGE  3

Сибирский государственный университет телекоммуникации

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

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

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

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

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

ВИЗУАЛИЗАЦИЯ ЧИСЛЕННЫХ МЕТОДОВ.

РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

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

                                                                                 Руководитель: Минина Е.Е.

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

Содержание.

Введение.

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

Термин и н ф о р м а т и к а возник в 60-х гг. во Франции для названия области, занимающейся автоматизированной обработкой информации с помощью электронных вычислительных машин.

В нашей стране подобная трактовка термина “информатика” утвердилась с момента принятия решения в 1983 г. На сессии годичного собрания Академии наук СССР об организации нового отделения информатики , вычислительной техники и автоматизации. Информатика трактовалась как “комплексная научная инженерская дисциплина, изучающая все аспекты разработки, проектирования, создания, оценки, функционирования основных на ЭВМ систем переработки информации, их применения и воздействия на различные области социальной практики”.

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

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

В данной курсовой работе требуется вычислить дифференциальное уравнение способами Эйлера и Эйлера модифицированный:

Результаты вычислений должны содержать:

- точное значение уравнения

- приближенные значения

- графики

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

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

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

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

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

Чтобы решить обыкновенное дифференциальное уравнение, необходимо знать значения зависимой переменной и (или) её производных при некоторых значениях независимой переменной. Если эти дополнительные условия задаются при одном значении независимой переменной, то такая задача называется задачей с начальными условиями, или задачей Коши. Часто в задаче Коши в роли независимой переменной выступает время.

Задачу Коши можно сформулировать следующим образом.

Пусть дано дифференциальное уравнение      и начальное условие y(x0) = y0.  Требуется найти функцию y(x), удовлетворяющую как указанному уравнению, так и начальному условию.

Численное решение задачи Коши сводится к табулированию искомой функции.

График решения дифференциального уравнения называется интегральной кривой.

Геометрический смысл задачи:

 - тангенс угла наклона касательной к графику решения в точке (x, y) к оси ОХ, - угловой коэффициент (рис.1).

Существование решения:

Если правая часть f(x,y) непрерывна в некоторой области R, определяемой неравенствами

|xx0| < a ;  |yy0| < b ,

то существует, по меньшей мере, одно решение  y = y(x), определённое в окрестности  |xx0| < h, где h – положительное число.

Это решение единственно, если в R выполнено условие Липшица

где N – некоторая постоянная (константа Липшица), зависящая, в общем случае, от a и b. Если f(x, y)имеет ограниченную производную  в R, то можно положить

N = max||    при    .

Численные методы решения задачи Коши

При использовании численных методов выполняется замена отрезка [x0, X] – области непрерывного изменения аргумента х множеством , состоящего из конечного числа точек  x0 < x1 < … < xn = X – сеткой.

При этом xi называют узлами сетки.

Во многих методах используются равномерные сетки с шагом 

Задача Коши, определённая ранее на непрерывном отрезке [x0, X], заменяется её дискретным аналогом – системой уравнений, решая которую можно последовательно найти значения y1, y2, …, yn – приближённые значения функции в узлах сетки.

                                 (4.1)

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

  •  Одношаговые методы, в которых для нахождения следующей точки на кривой y = f(x) требуется информация лишь об одном предыдущем шаге. Одношаговыми являются метод Эйлера и методы Рунге – Кутта.
  •  Методы прогноза и коррекции (многошаговые), в которых для отыскания следующей точки кривой y = f(x) требуется информация более чем об одной из предыдущих точек. Чтобы получить достаточно точное численное значение, часто прибегают к итерации. К числу таких методов относятся методы Милна, Адамса – Башфорта и Хемминга.
  •  Явные методы, в которых функция Ф в выражении (4.1) не зависит от yn+1.
  •  Неявные методы, в которых функция Ф зависит от yn+1.

Метод Эйлера

Иногда этот метод называют методом Рунге-Кутта первого порядка точности.

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

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

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

y(x0) = y0.

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

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

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

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

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

Проведем прямую АВ через точку (xi,yi) под углом α. При этом

tgα = f(xi,yi) (1).

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

Тогда yi+1 = yiy (2).

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

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

Отсюда

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

    (4).

Рисунок 2. Метод Эйлера.

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

Метод Эйлера – один из простейших методов численного решения обыкновенных дифференциальных уравнений. Но существенным его недостатком является большая погрешность вычислений. На рисунке 2 погрешность вычислений для i-го шага обозначена ε. С каждым шагом погрешность вычислений увеличивается.

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

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

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

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

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 характеризует погрешность метода Эйлера, а ε – погрешность метода Эйлера модифицированного.

Блок схема

Код программы.

Объявление переменных 

Dim x(50) As Single, y(50) As Single, yE(50) As Single, yT(50) As Single

Private y0 As Single

Private x0 As Single

Private xk As Single

Задание функции

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

f = -q / (1 + t ^ 2)

End Function

Задание переменных

x0 = Val(Text1.Text)

xk = Val(Text2.Text)

y0 = Val(Text4.Text)

h = Val(Text3.Text)

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

Форматирование таблицы

MSFlexGrid1.Rows = N + 2

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

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

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

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

Решение методами

Max = 1

Min = 0.8

y(0) = y0

yE(0) = y0

yT(0) = y0

For i = 0 To N

x(i) = x0 + i * h

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

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

yT(i) = Round(Exp(-Atn(x(i)) + 0.7854), 4)

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

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

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

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

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

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

Next i

Построение графиков

Picture1.Cls

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

ky = (Picture1.Height - 1000) / (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 - (yE(i) - Min) * ky)

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

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

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

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

z8 = Round(5400 - (yT(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

Проверка в пакете MathCad.

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

Заключение.

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

5 Литература

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

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

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

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


 

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

49214. Виртуальная модель вертолета в среде MatLab 265.65 KB
  Математическое моделирование движителя вертолета. Создание виртуальной модели вертолета в среде VRBuilder. Особенностью моделируемого вертолета является то что используется движитель роль которого выполняет двигатель постоянного тока ДПТ.
49215. Разработка системы управления механизма передвижения тележки (мехатронного объекта) по схеме ТП-ДПТ 11.99 MB
  Целью данного курсового проекта является задача проектирования электромеханической системы (ЭМС) мехатронного модуля подъема мостового крана. Смысловая её реализации заключается в создании универсальных, надёжных и долговечных устройств, которые тем или иным образом помогали бы человеку решать поставленные перед ним задачи
49216. Разработка микропроцессорной системы управления подачей фурмы в конвертере 36.85 KB
  Разработать микропроцессорную систему управления подачей фурмы в конвертере. Разработать цифровое устройство управления подачей фурмы в конвертере. Например система управления положением кислородной фурмы осуществляет измерение и регулирование положения кислородной фурмы в соответствие с уставкой по положению фурмы над уровнем спокойной ванны с автоматической коррекцией на разгар футеровки и выдачей команды на отсечной клапан. Положение фурмы в разные этапы плавки: Первый период – наведение шлака.
49217. Принципы функционирования плазменных телевизоров 904.34 KB
  В развитых странах телевизоры есть практически в каждом доме. Если в доме есть необходимые антенны и уж по крайней мере трудно не согласиться что антенна самый большой и заметный элемент приемной системы телезрители могут принимать несколько десятков каналов предающих массу программ от мыльных опер до фильмов о природе и дискуссий о политических событиях. Некоторые думают что выбирать телевизионный приемник лучше всего по цене то есть если цена большая то и все характеристики в норме. Есть еще телевизоры с разрешением экрана...
49218. Проектирование транзисторных широкодиапазонных передатчиков 348.55 KB
  Задачей курсового расчета является проектирование транзисторного широкодиапазонного радиопередающего устройства обеспечивающего формирование радиосигналов заданном рабочем диапазоне частот и заданную мощность выделяемую на нагрузке в состав которого входят следующие каскады: ОКГ опорный кварцевый генератор являющийся источником высокостабильных колебаний необходимо произвести расчет принципиальной схемы автогенератора с кварцевым резонатором в цепи обратной связи; ССЧ синтезатор сетки частот формирующий из опорной частоты...
49219. Комплексное исследование системы мотивации производственного персонала в Восточно-Сибирской Региональной Дирекции железнодорожных вокзалов, вокзал станции Черемхово 147.36 KB
  Разработка и практическое применение новых мотивационных систем непосредственно на самих предприятиях позволяют привлекать новых высококвалифицированных специалистов, способных на деле управлять как малыми, так и большими коллективами, ориентируясь преимущественно при этом на индивидуальное мотивирование в соответствии с количеством и качеством труда, затраченного индивидом.
49220. Разработать микропроцессорную систему и цифровое устройство управления подачей добавок в ДСП 637.56 KB
  Задание на курсовую работу: Разработать микропроцессорную систему управления подачей добавок в ДСП. Разработать цифровое устройство управления подачей добавок в ДСП. В настоящее время имеется достаточно большое количество вариантов оснащения ДСП различными устройства подачей добавок. При этом стоит задача управления отдельными локальными потоками подачи в печь добавок.
49221. Исследование фильтрационного потока от нагнетательной скважины к эксплуатационной и исследование нерадиального установившегося движения жидкости и газов к одной скважине 279.55 KB
  ВЫЯСНЕНИЕ ВЛИЯНИЯ ФОРМЫ КОНТУРА ОБЛАСТИ ПИТАНИЯ НА ДЕБИТ СКВАЖИНЫ И РАСПРЕДЕЛЕНИЕ ДАВЛЕНИЯ В ПЛАСТЕ ИССЛЕДОВАНИЕ ФИЛЬТРАЦИОННОГО ПОТОКА ОТ НАГНЕТАТЕЛЬНОЙ СКВАЖИНЫ К ЭКСПЛУАТАЦИОННОЙ НЕРАДИАЛЬНОЕ ДВИЖЕНИЕ ЖИДКОСТИ К СКВАЖИНЕ ПРИ КРУГОВОМ КОНТУРЕ ОБЛАСТИ...
49222. Разработка устройства для сигнализации давления в 6-ти точках 159.63 KB
  Идентифицировать номер датчика и сигнал01. Начало =6;B=1 Опрос датчика Вывод в порт № датчика K=0 да нет Вывод в порт Вывод в порт B=B1 B=B1 B B нет нет да да Конец Разработать устройство для сигнализации давления в 6ти точках. Идентифицировать номер датчика и сигнал01. Реализация программы управления на языке SSEMBLER MVI D 6 Колво датчиков = 6 MVI B 1 № первого датчика For IN1 Проводим опрос OUT 2 Подаем значение в порт0 или1 MOV B Выводим номер датчика OUT 3 Выводим этот номер в порт INR B 1 CMP D Сравнение с пред...