67717

Метод Эйлера первого порядка точности и Рунге – Кутта четвёртого порядка точности. Визуализация численных методов

Курсовая

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

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

Русский

2016-09-14

222 KB

7 чел.

УРАЛЬСКИЙ ТЕХНИЧЕСКИЙ ИНСТИТУТ СВЯЗИ И ИНФОРМАТИКИ

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

КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ И ТЕХНОЛОГИЙ

По курсу: “Информатика”.

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

                                                                Выполнил:

                                                                    Сафронов Н.В.

                                                               группа  ИТЕ-13б

                                                      Проверила:

Бикбулатова Н.Г.

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

Содержание

[1] Содержание

[2] Введение

[3] Цель и задачи

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

[4.0.0.1] y`=f(x,y) – тангенс угла наклона касательной к графику решения в точке (x,y) к оси OX (угловой коэффициент (в общей формуле прямой, y=k*x+b, обозначается как “k”)(рис 1).

[4.0.0.2] Рисунок 1. Геометрический смысл задачи Коши

[5]
1.1. Метод Эйлера

[6]
1.2. Метод Рунге – Кутта

[7]
2. Блок-схемы

[8] 2.1 Блок-схема программы

[9]

[10] 2.2 Блок-схема алгоритма функции

[11] 2.3 Блок-схема метода Эйлера

[12] 2.4 Блок-схема общего решения и поиска

[13] максимальных значений

[14]
2.5 Блок-схема метода Рунге-Кутта 4 порядка

[15] 3.Виды, формы

[16] 3.1. Начальная форма

[17] 4. Программа для решения дифференциального уравнения в Visual Basic

[18] 5. Решение задачи в MathCadе

Введение

Уравнения, связывающие независимую переменную, искомую функцию и её производные называют дифференциальным уравнением. Решение дифференциального уравнения называется функция, которая при подстановке в уравнение обращает его в тождество.

Если искомая (неизвестная) функция зависит от одной переменной, то дифференциальное уравнение называется обычным; в противном случае – уравнение в частных производных, содержащие несколько независимых переменных и производные по ним, которые называются частными. В данной работе будут рассматриваться методы решения обычных дифференциальных уравнений (ОДУ).

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

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

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

В данной курсовой работе будут рассматриваться два одношаговых метода: метод Эйлера первого порядка точности и Рунге – Кутта четвёртого порядка точности.

Цель и задачи

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

1 Убедиться в том, что данные методы решений совпадаю и сделать вывод о сходимости.

2 Проанализировать результаты, которые получатся в обоих методах

3 Так же в соответствующих программах создать данные формы объекта


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

  В данной курсовой работе необходимо решить ОДУ вида y` = (y^2*ln(x)-y)/x  с заданными начальными значениями x0=1, xk=1.6, y0=4, h=0.1. Для проверки точности результатов дано общее решение данного уравнения      y=(1+ln(x)+c*x)^-1.

   Требуется решить уравнение двумя методами: Эйлера и Рунге – Кутта четвёртого порядка, сравнить результаты и сделать вывод какой метод эффективнее использовать, построить графики.

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

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

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

 y`=f(x,y) – тангенс угла наклона касательной к графику решения в точке (x,y) к оси OX (угловой коэффициент (в общей формуле прямой, y=k*x+b, обозначается как “k”)(рис 1). 

Рисунок 1. Геометрический смысл задачи Коши

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

Если правая часть f(x,y) непрерывная в некоторой области R, определяемой неравенствами |xx0| < a; |yy0| > b, то существует, по меньшей мере, одно решение y=y(x), определённое в окрестности |xx0| < h, где h > 0.

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

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

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

                                


1.1. Метод Эйлера

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

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

                               y`=f(x,y)

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

                               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)

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

Тогда y i+1=yi+Δy (2).

Из прямоугольного треугольника АВС tgα= Δy/h (3).

Приравниваем правые части (1) и (3). Получим Δy/h= f(xi,yi).

Отсюда Δy= f(xi,yi)*h.

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

y i+1=yi+ h*f (xi,yi)            (4).

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

                          

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

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

График решения дифференциального уравнения

Решение дифференциального уравнения.

1 Находим точку А по координатам (x0,y0) = (1,4)

2 Вычисляем угол 

tgα=f(xi,yi)

f(xi,yi)= y^2*ln(x)-y)/x

f(xi,yi)= -4

α=arctg( f(xi,yi))= -76’

3 Проводим касательную от точки А под углом α            

4 Находим точку В на прямой с координатами (x1,y1) где x1 = x0 + h , рассчитываем координату  y1 по формуле y i+1 = yi + h * f ( xi , y i).  y1 = 3,6

5 Вычисляем угол  в точке В(1,1;3,6)

tgα=f(xi,yi)

f(xi,yi)= y^2*ln(x)-y)/x

f(xi,yi)= -2,15

α=arctg( f(xi,yi))= -65’

6 Проводим касательную от точки В под углом α1             


1.2. Метод РунгеКутта 

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

                               y`=f(x,y)

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

                               y(x0)=y0.

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

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

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

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

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

  1.  Обозначим точки: A(xi,yi), B(xi+1,yi+1), C, D, E.
  2.  Через точку А проведём прямую под углом α, где tg α = f(xi,yi).
  3.  На прямой найдём точку В. Через точку В проведём прямую под углом α = -73, где tg α1 = f(xi+h/4, yi+h/4*f(xi,yi).
  4.  Найдём точку С на прямой В и через неё проведём прямую под углом α = -71, где

tg α = f(xi+h/2, yi+h/2*f(xi,yi)).

И так же находим остальные точки D c α = -68  и E c  α = -65

  1.  По примеру, описанному выше, построим прямую, которая пересечётся с прямой x = xi+1. Эта точка и будет решением дифференциального уравнения при x = xi+1.  

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

 y i+1=yi+Δy,

где

Δy=(k1+2*k2+2*k3+k4)/6,  i=0,1,2,...

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

k1=h*f(xi,yi)

k2 =h*f(xi+h/2,yi+k1/2)

k3=h*f(xi+h/2,yi+k2/2)

k4 =h*f(xi+h,yi+k3)

Это явный четырёхэтапный метод четвёртого порядка точности.

                                

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

На рисунке 6 приведена блок-схема процедуры RUNGE(X0, XK, Y0, N, Y) для решения задачи Коши описанным выше методом Рунге – Кутта.

Рисунок 6. Блок-схема процедуры RUNGE

На рисунке 7 приведена блок-схема алгоритма основной программы для решения задачи Коши и получения результатов с фиксированным количеством отрезков разбиения N. В основной программе происходит обращение к процедуре RUNGE(X0, XK, Y0, N, Y), вычисляющей значения искомой функции yj в точках xj методом Рунге – Кутта.

Исходными данными в данной задаче являются:

X0, XK – начальное и конечное значения независимой переменной;

Y0 – значение y0 из начального условия  y(x0) = y0;

N – количество отрезков разбиения.

Результаты работы программы выводятся в виде двух столбцов:

X – массив значений узлов сетки;

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

Рисунок 7. Блок-схема алгоритма основной программы для решения задачи Коши с фиксированным количеством отрезков разбиения N


2. Блок-схемы

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



2.2 Блок-схема алгоритма функции

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

2.4 Блок-схема общего решения и поиска

максимальных значений


2.5 Блок-схема метода Рунге-Кутта 4 порядка

3.Виды, формы

3.1. Начальная форма


3.2. Конечная форма

4. Программа для решения дифференциального уравнения в Visual Basic

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

Private i, n As Integer

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

Function f(x, y) As Single

p = Log(x) / Log(2.718282)

f = (y ^ 2 * p - y) / x

End Function

Private Sub Eiler()

ReDim x(n + 1)

ReDim e(n + 1)

e(0) = y0

For i = 0 To n

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

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

Next i

End Sub

Private Sub RungeK4()

ReDim x(n + 1)

ReDim em(n + 1)

em(0) = y0

For i = 0 To n

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

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

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

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

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

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

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

Next i

End Sub

Private Sub Obhee()

ReDim x(n + 1)

ReDim o(n + 1)

maxy = y0

miny = y0

maxx = x0

minx = x0

p = Log(x0) / Log(2.718282)

  c = (1 / (x0 * y0)) - (1 / x0) - (p / x0)

For i = 0 To n

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

p = Log(x(i)) / Log(2.718282)

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

Next i

End Sub

Private Sub Command1_Click()

x0 = Val(Text1.Text)

y0 = Val(Text2.Text)

xk = Val(Text3.Text)

h = Val(Text4.Text)

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

MSFlexGrid1.Cols = 4

MSFlexGrid1.Rows = n + 2

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

MSFlexGrid1.TextMatrix(0, 1) = "Общее решение"

MSFlexGrid1.TextMatrix(0, 2) = "Эйлер"

MSFlexGrid1.TextMatrix(0, 3) = "Рунге-Кутт"

Eiler

RungeKutta

Obhee

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

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

Next i

minx = x(0)

maxx = x(n)

miny = o(0)

maxy = o(n)

If e(n) > o(n) Then maxy = e(n)

If em(n) > o(n) Then maxy = em(n)

If e(n) > em(n) Then maxy = e(n)

Label10.Caption = Str(miny)

Label11.Caption = Str(maxy)

Label8.Caption = Str(minx)

Label12.Caption = Str(maxx)

Picture1.Cls

kx = (4000 - 700) / (xk - x0)

ky = (5000 - 6000) / (maxy - miny)

For i = 0 To n - 1

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

z2 = (1000 - (e(i) - miny) * ky)

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

z4 = (1000 - (e(i + 1) - miny) * ky)

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

Next i

For i = 0 To n - 1

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

z2 = (1000 - (em(i) - miny) * ky)

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

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

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

Next i

For i = 0 To n - 1

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

z2 = (1000 - (o(i) - miny) * ky)

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

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

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

Next i

End Sub

Private Sub Command2_Click()

End

End Sub

5. Решение задачи в MathCadе


Заключение

В данной курсовой работе я рассматривал два метода решения  дифференциального уравнения, а именно Метод Эйлера и Рунге-Кутта 4 порядка. Эти методы были рассчитаны путем вычисления через программу Visual Basic и MathCadе.

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

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


 

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

48373. Подготовка конструкторской документации с использованием трехмерных моделей деталей 12.58 KB
  После построения 3Dмодели детали или сборки либо непосредственно в ходе построения конструктор может получить ее чертеж избежав таким образом рутинного создания видов средствами плоского черчения. Плоский чертеж будет создан автоматически и с абсолютной точностью независимо от сложности модели. В Компас3D объемные модели и плоские чертежи ассоциативны между собой. Компас3D располагает мощными средствами редактирования модели которые позволяют задавать параметрические связи и ассоциации как между отдельными элементами деталей так и...
48374. Подготовка конструкторской документации с использованием трехмерных моделей сборок 12.6 KB
  После построения 3Dмодели детали или сборки либо непосредственно в ходе построения конструктор может получить ее чертеж избежав таким образом рутинного создания видов средствами плоского черчения. Плоский чертеж будет создан автоматически и с абсолютной точностью независимо от сложности модели. В Компас3DV объемные модели и плоские чертежи ассоциативны между собой. Компас3D располагает мощными средствами редактирования модели которые позволяют задавать параметрические связи и ассоциации как между отдельными элементами деталей так...
48375. Требования к системам автоматизированной подготовки конструкторской документации 11.32 KB
  Требования к системам автоматизированной подготовки конструкторской документации Требования: наличие средств импорта экспорта графических документов позволяющих поддерживать обмен данными с другими системами: 1 чтение и запись графических файлов плоских dxf. 2 чтение и запись фалов трехмерных моделей iges. 3 чтение и запись текстовых документов scci. 4 запись данных спецификаций dbf.
48376. Модули библиотек как средства автоматизации конструкторского проектирования. Работа с библиотеками 29 KB
  Основная задача информационного обеспечения САПР - удовлетворение информационных потребностей проектировщика и отдельных компонентов САПР. Вопросы повышения достоверности результатов проектирования и скорости их получения напрямую связаны с организацией данных информационного фонда САПР.
48377. Конституционные основы государства 16.14 KB
  Основы конституционного строя закрепляют форму государственной власти в стране. Российская Федерация отмечается в статье 1 Конституции есть демократическое федеративное правовое государство с республиканской формой правления Россия демократическое государство Носителем суверенитета и единственным источником власти в ней является многонациональный народ. Он осуществляет свою власть непосредственно путем референдумов и свободных выборова также через органы государственной власти и местного самоуправления. Эти исходные положения...
48378. Драгоценные камни: свойства и обработка. Учебное пособие 1.86 MB
  В учебном пособии рассматриваются свойства ювелирных и ювелирно-поделочных камней и способы их обработки. Пособие предназначено в помощь студентам специальностей 261001 Технология художественной обработки материалов и 071504 Художественное проектирование ювелирных изделий бакалаврам и магистрам по направлениям подготовки Технология художественной обработки материалов Декоративноприкладное искусство и народные промыслы художественный металл Искусство костюма и текстиля проектирование ювелирных изделий...
48379. Конспект воспитательного мероприятия в форме праздника «Масленица» 3.04 MB
  Ребята а что такое масленица Масленица народный праздничный цикл сохранившийся на Руси с языческих времён. Масленица получила свое название оттого что в этот период времени последнюю неделю перед Великим постом разрешается употребление в пищу сливочного масла молочных продуктов и рыбы.
48380. Основы бухгалтерского учета 252.67 KB
  Цель нашего курса - познакомить Вас с основами системы ведения бухгалтерского учета которая ежедневно используется на предприятии. Вы овладеете основами бухгалтерского учета и научитесь практически применять полученные знания. Материалы курса выходят за рамки только бухгалтерского учета.
48381. Кримінальне право. Курс лекцій 546.71 KB
  Курс лекцій містить зміст лекційного курсу, завдання до самостійного вивчення теоретичного матеріалу курсу, що вивчається в позааудиторний час, список рекомендованої літератури і ресурсів Інтернет, ілюстративний матеріал до лекцій