Міністерство освіти України
ДАЛПУ
Кафедра автоматизації
технологічних процесів і приладобудування
КУРСОВА РОБОТА
з курсу “Математичне моделювання на ЕОМ”
на тему “Розв’язок диференціального рівняння
виду апу(п)+ап-1у(п-1)+…+а1у1+а0у=кх при заданих
початкових умовах з автоматичним вибором кроку
методом Ейлера”
Виконала студентка групи БА-4-97
Богданова Ольга Олександрівна
Холоденко Вероніка Миколаївна
Перевірила Заргун Валентина Василівна
1998
Блок-схема алгоритма
Блок-схема алгоритма
начало
у/=f(x,y)
y(x0)=y0
x0, x0+a
h, h/2
k:=0
xk+1/2:=xk+h/2
yk+1/2:=yk+f(xk, yk)h/2
αk:= f(xk+1/2, yk+1/2)
xk+1:=xk+h
yk+1:=yk+αkh
нет k:=n
да
x0, y0,
x1, y1…
xn, yn
конец
ПОСТАНОВКА ЗАДАЧИ И МЕТОД РЕШЕНИЯ
Решить дифференциальное уравнение у/=f(x,y) численным методом - это значит для заданной последовательности аргументов х0, х1…, хn и числа у0, не определяя функцию у=F(x), найти такие значения у1, у2,…, уn, что уi=F(xi)(i=1,2,…, n) и F(x0)=y0.
Таким образом, численные методы позволяют вместо нахождения функции
У=F(x) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk-xk-1 называется шагом интегрирования.
Метод Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции у(х). Он является сравнительно грубым и применяется в основном для ориентировочных расчетов. Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других методов.
Рассмотрим дифференциальное уравнение первого порядка
y/=f(x,y) (1)
с начальным условием
x=x0, y(x0)=y0 (2)
Требуется найти решение уравнения (1) на отрезке [а,b].
Разобьем отрезок [a, b] на n равных частей и получим последовательность х0, х1, х2,…, хn, где xi=x0+ih (i=0,1,…, n), а h=(b-a)/n-шаг интегрирования.
В методе Эйлера приближенные значения у(хi)» yi вычисляются последовательно по формулам уi+hf(xi, yi) (i=0,1,2…).
При этом искомая интегральная кривая у=у(х), проходящая через точку М0(х0, у0), заменяется ломаной М0М1М2… с вершинами Мi(xi, yi) (i=0,1,2,…); каждое звено МiMi+1 этой ломаной, называемой ломаной Эйлера, имеет направление, совпадающее с направлением той интегральной кривой уравнения (1), которая проходит через точку Мi.
Если правая часть уравнения (1) в некотором прямоугольнике R{|x-x0|£ a, |y-y0|£ b}удовлетворяет условиям:
|f(x, y1)- f(x, y2)| £ N|y1-y2| (N=const),
|df/dx|=|df/dx+f(df/dy)| £ M (M=const),
то имеет место следующая оценка погрешности:
|y(xn)-yn| £ hM/2N[(1+hN)n-1], (3)
где у(хn)-значение точного решения уравнения(1) при х=хn, а уn- приближенное значение, полученное на n-ом шаге.
Формула (3) имеет в основном теоретическое применение. На практике иногда оказывается более удобным двойной просчет: сначала расчет ведется с шагом h, затем шаг дробят и повторный расчет ведется с шагом h/2. Погрешность более точного значения уn* оценивается формулой
|yn-y(xn)|» |yn*-yn|.
Метод Эйлера легко распространяется на системы дифференциальных уравнений и на дифференциальные уравнения высших порядков. Последние должны быть предварительно приведены к системе дифференциальных уравнений первого порядка.
Модифицированный метод Эйлера более точен.
Рассмотрим дифференциальное уравнение (1) y/=f(x,y)
с начальным условием y(x0)=y0. Разобьем наш участок интегрирования на n
равных частей. На малом участке [x0,x0+h]
у интегральную кривую заменим прямой
Nk/ y=y(x) линией. Получаем точку Мк(хк,ук).
Мк Мк/
yk+1
yk
хк хк1/2 xk+h=xk1 х
Через Мк проводим касательную: у=ук=f(xk,yk)(x-xk).
Делим отрезок (хк,хк1) пополам:
xNk/=xk+h/2=xk+1/2
yNk/=yk+f(xk,yk)h/2=yk+yk+1/2
Получаем точку Nk/. В этой точке строим следующую касательную:
y(xk+1/2)=f(xk+1/2, yk+1/2)=αk
Из точки Мк проводим прямую с угловым коэффициентом αк и определяем точку пересечения этой прямой с прямой Хк1. Получаем точку Мк/. В качестве ук+1 принимаем ординату точки Мк/. Тогда:
ук+1=ук+αкh
xk+1=xk+h
(4) αk=f(xk+h/2, yk+f(xk,Yk)h/2)
yk=yk-1+f(xk-1,yk-1)h
(4)-рекурентные формулы метода Эйлера.
Сначала вычисляют вспомогательные значения искомой функции ук+1/2 в точках хк+1/2, затем находят значение правой части уравнения (1) в средней точке y/k+1/2=f(xk+1/2, yk+1/2) и определяют ук+1.
Для оценки погрешности в точке хк проводят вычисления ук с шагом h, затем с шагом 2h и берут 1/3 разницы этих значений:
| ук*-у(хк)|=1/3(yk*-yk),
где у(х)-точное решение дифференциального уравнения.
Таким образом, методом Эйлера можно решать уравнения любых порядков. Например, чтобы решить уравнение второго порядка y//=f(y/,y,x) c начальными условиями y/(x0)=y/0, y(x0)=y0, выполняется замена:
y/=z
z/=f(x,y,z)
Тем самым преобразуются начальные условия: y(x0)=y0, z(x0)=z0, z0=y/0.
РЕШЕНИЕ КОНТРОЛЬНОГО ПРИМЕРА
Приведем расчет дифференциального уравнения первого, второго и третьего порядка методом Эйлера
1. Пусть дано дифференциальное уравнение первого порядка:
y/=2x-y
Требуется найти решение на отрезке [0,1] c шагом h=(1-0)/5=0,2
Начальные условия: у0=1;
Пользуясь рекурентными формулами (4), находим:
1). x1=0,2; х1/2=0,1; y(x1)=y(x0)+α0h; y(x1/2)=y(x0)+f(x0,y0)h/2;
f(x0,y0)=2* 0-1=-1
y(x1/2)=1-1* 0,1=0,9
α0=2* 0,1-0,9=-0,7
y1=1-0,1* 0,2=0,86
2). y(x2)=y(x1)+α1h; x2=0,2+0,2=0,4; x1+1/2=x1+h/2=0,2+0,1=0,3
y(x1+1/2)=y(x1)+f(x1,y(x1))h/2
f(x1,y1)=2* 0,2-0,86=-0,46
y(x1+1/2)=0,86-0,46* 0,1=0,814
α1=2*0,3-0,814=-0,214
y2=0,86-0,214*0,2=0,8172
3). x3=0,4+0,2=0,6; x2+1/2=x2+h/2=0,4+0,1=0,5
f(x2,y2)=2*0,4-0,8172=-0,0172
y2+1/2=0,8172-0,0172*0,1=0,81548
α2=2*0,5-0,81548=0,18452
y3=0,8172+0,18452*0,2=0,854104
4).x4=0,8; x3+1/2=x3+h/2=0,6+0,1=0,7
f(x3,y3)=2*0,6-0,854104=0,345896
y3+1/2=0,854104+0,345896*0,1=0,8886936
α3=2*0,7-0,89=0,5113064
y4=0,854104+0,5113064*0,2=0,95636528
5).x5=1; x4+1/2=0,8+0,1=0,9
f(x4,y4)=2*0,8-0,956=0,64363472
y4+1/2=0,956+0,643*0,1=1,020728752;
α4=2*0,9-1,02=0,779271248
y5=0,956+0,7792*0,2=1,11221953
2. Дано уравнение второго порядка:
y//=2x-y+y/
Находим решение на том же отрезке [0,1] c шагом h=0,2;
Замена: y/=z
z/=2x-y+z
Начальные условия: у0=1
z0=1
1).x1=0,2; x1/2=0,1
y(z1)=y(z0)+α0h z(x1,y1)=z(x0,y0)+β0h
y(z1/2)=y(z0)+f(z0,y0)h/2 z(x1/2,y1/2)=z(x0,y0)+f(x0,y0,z0)h/2
f(z0,y0)=f10=1 f(x0,y0,z0)=f20=2*0-1+1=0
y1/2=1+1*0,1=1,1 z1/2=1+0*0,1=1
α0=z0=1 β0=2*0,1-1,1+1=0,1
y1=1+0,2*1=1,2 z1=1+0,2*0,1=1,02
2).x2+0,4; x1+1/2=0,3
f11=z1=1,02 f21=2*0,2-1,2+1,02=0,22
y1+1/2=1,2+1,02*0,1=1,1 z1+1/2=1,02+0,22*0,1=1,042
α1=z1+1/2=1,042 β1=2*0,3-1,302+1,042=0,34
y2=1,2+1,042*0,2=1,4084 z2=1.02+0,34*0,2=1,088
3).x3=0,6; x2+1/2=0,5
f12=z2=1,088 f22=2*0,4-1,4084+1,088=0,4796
y2+1/2=1,4084+1,088*0,1=1,5172 z2+1/2=1,088+0,4796*0,1=1,13596
α2=z2+1/2=1,13596 β2=2*0,5-1,5172+1,13596=0,61876
y3=1,4084+1,136*0,2=1,635592 z3=1,088+0,61876*0,2=1,211752
4).x4=0,8; x3+1/2=0,7
f13=z3=1,211752 f23=2*0,6-1,636+1,212=0,77616
y3+1/2=1,636+1,212*0,1=1,7567672 z3+1/2=1,212+0,776*0,1=1,289368
α3=z3+1/2=1,289368 β3=2*0,7-1,7568+1,289=0,9326008
y4=1,6+1,289*0,2=1,8934656 z4=1,212+0,93*0,2=1,39827216
5).x5=1; y4+1/2=0,9
f14=z4=1,39827216 f24=2*0,8-1,893+1,398=1,10480656
y4+1/2=1,893+1,398*0,1=2,0332928 z4+1/2=1,398+1,105*0,1=1,508752816
α4=z4+1/2=1,508752816 β4=2*0,9-2,03+1,5=1,27546
y5=1,893+1,5*0,2=2,195216163 z5=1,398+1,275*0,2=1,65336416
... = cos(aּπּt) и нулевых начальных условиях; 3. Выводы по работе №3 В процессе данной практической работы я изучил возможности математического пакета MathCad в среде Windows для решения дифференциальных уравнений N-го порядка, используемых в инженерных расчетах электротехнических систем. Были выполнены численные методы решения дифференциальных уравнений N-го порядка. Заданное ...
... численных методов (при решении реальных, а не учебных задач!) предполагает использование компьютеров с достаточным быстродействием. Использование для численного решения дифференциальных уравнений компьютерного пакета MathCAD предполагает знание алгоритма работы численных методов для разумного их применения (знание границ применимости, оценки точности, затрат компьютерных ресурсов и др.). Дело в ...
... при использовании этого метода функцию необходимо вычислять четыре раза. 3. Выбор метода реализации программы Исходя из вышеизложенного, для решения систем дифференциальных уравнений мы выбираем наиболее точный метод решения – метод Рунге-Кутта 4 порядка, один из самых употребляемых методов интегрирования дифференциальных уравнений. этот метод является одноступенчатым и одношаговым требует ...
... при использовании этого метода функцию необходимо вычислять четыре раза3. Выбор метода реализации программы Исходя из вышеизложенного, для решения систем дифференциальных уравнений мы выбираем наиболее точный метод решения – метод Рунге-Кутта 4 порядка, один из самых употребляемых методов интегрирования дифференциальных уравнений этот метод является одноступенчатым и одношаговым ...
0 комментариев