Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Численное решение обыкновенных дифференциальных уравнений↑ ⇐ ПредыдущаяСтр 11 из 11 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Краткое введение. Дифференциальное уравнение первого порядка, разрешенное относительно производной, имеет вид y ' = f (x,y). (1) Решением дифференциального уравнения (1) называется функция φ (x), подстановка которой в уравнение обращает его в тождество: φ ' (x) = f (x, φ (x)). График решения y = φ (x) называется интегральной кривой. Задача Коши для дифференциального уравнения (1) состоит в том, чтобы найти решение уравнения (1), удовлетворяющему начальному условию (2) пару чисел (x0, y0 ) называют начальными данными. Решение задачи Коши называется частным решением уравнения (1) при условии (2). Численное решение задачи Коши (1) - (2) состоит в том, чтобы получить искомое решение φ (x) в виде таблицы его приближенных решений для заданных значений аргумента x на некотором отрезке [ a, b ]: X0 = a, x 1, x 2,..., x m = b (3) Точки (3) называются узловыми точками, а множество этих точек называется сеткой на отрезке [ a, b ]. Будем использовать равномерную сетку с шагом h: h = (b - a) / m; x i - x i - 1 = h или x i = x 0 + ih (i = 1,..., m). Приближенные значения численного решения задачи Коши в узловых точках x i обозначим через y i; таким образом, (i = 1,..., m). Для любого численного метода решения задачи (1) - (2) начальное условие (2) выполняется точно, т. е. . Величина погрешности численного метода решения задачи Коши на сетке отрезка [ a, b ] оценивается величиной , Говорят, что численный метод имеет p - й порядок точности по шагу h на сетке, если расстояние d можно представить в виде степенной функции от h: , p > 0, где c - некоторая положительная постоянная, зависящая от правой части уравнения (1) и от рассматриваемого метода. В данном случае очевидно, что когда шаг h стремится к нулю, погрешность d также стремится к нулю. Метод Эйлера. Простейшим численным методом решения задачи Коши (1) - (2) является метод Эйлера. Угловой коэффициент касательной к интегральной кривой в точке P0 (x0, y0) есть y '0 = f (x0,y0 ). Найдем ординату y1 касательной, соответствующей абсциссе x 1 = x 0 + h. Так как уравнение касательной к кривой в точке P 0 имеет вид y - y0 = y ' (x - x0 ), то y1 = y0 + h f (x0, y0 ). Угловой коэффициент в точке P1 (x1 ,y1) также находится из данного дифференциального уравнения y'1 = f(x1,y1). На следующем шаге получаем новую точку P2 (x2 ,y2), причем x2 = x1 + h, y2 = y1 + hf(x1 ,y1). Продолжая вычисления в соответствии с намеченной схемой, получим формулы Эйлера для m приближенных значений решения задачи Коши с начальными данными (x0, y0) на сетке отрезка [ a, b ] с шагом h: xi = xi -1 + h, yi = yi - 1 + hf(xi - 1 , yi - 1 ) (i = 1,2,..., m) (4) Графической иллюстрацией приближенного решения является ломаная, соединяющая последовательно точки P0 , P1, P2,...,Pm, которую называют ломаной Эйлера. Погрешность метода Эйлера можно оценить неравенством или представить в виде , где . Это означает, что метод Эйлера имеет первый порядок точности. В частности, при уменьшении шага h в 10 раз погрешность уменьшится примерно в 10 раз. Практическую оценку погрешности решения, найденного на сетке с шагом h/2, в точке производят с помощью приближенного равенства - правила Рунге: , (5) где p - порядок точности численного метода. Таким образом, оценка полученного результата по формуле (5) вынуждает проводить вычисления дважды: один раз с шагом h, другой - с шагом h/2. Методы Рунге - Кутта. Численные методы решения задачи Коши , на равномерной сетке { x0 = a, x1 , x2 ,...,xm = b}отрезка[ a, b ]с шагом h = (b -a ) / m являются методами Рунге - Кутта, если, начиная с данных (x0,y0 ), решение ведется по следующим рекуррентным формулам (6)
Метод называют методом Рунге - Кутта порядка p,если он имеет p - й порядок точности по шагу h на сетке. Порядок точности p достигается с помощью формул (6) при определенных значениях коэффициентов cj и dj (j = 1,2,...,p); c1 всегда полагают равным нулю. Метод Рунге - Кутта второго порядка называют методом Эйлера - Коши, если p = 2, c1 = 0, c2 = 1, d1 = d2 = 1/2. Алгоритм Эйлера - Коши получается из формул (6):
xi =xi-1 + h, yi = yi-1 + Δyi-1, Δyi-1 = (1/2)[ k1[i -1] + k2[i -1]] (i = 1,..., m), (7) k1[ i - 1] = hf (xi-1,yi-1), k2[ i - 1 ] = hf (xi-1 + h, yi-1 + hf (xi-1 ,yi-1))
Для практической оценки погрешности решения можно применять правило Рунге, полагая в формуле (5) р = 2. Метод Рунге - Кутта четвертого порядка называют классическим методом Рунге - Кутта, если p = 4, c1 = 0, c2 = c3 = 1/2, c4 = 1, d1 = d4 = 1/6, d2 = d3 =1/3. Из рекуррентных формул (6)получим алгоритм решения задачи Коши классическим методом Рунге - Кутта:
x I = x i - 1 + h, y i = y i - 1 + Δy i – 1 (i = 1,2,..., m), Δyi-1 = 1/6 [ k1[ i - 1] + 2 k2[ i - 1] + 2k3[ i - 1] + k4[ i - 1] ], k1[ i - 1] = h f (xi - 1, yi -1), k2[ i - 1 ] = h f(xi - 1 + (1/2) h, y i - 1 + (1/2)k1[ i - 1 ]), k3[ i - 1] = h f (xi - 1 + (1/2)h, y i - 1 + (1/2)k2[ i - 1 ]), k4[ i - 1 ] = h f(xi - 1 + h, y i - 1 + k3[ i - 1 ]), Графиком приближенного решения является ломаная, последовательно соединяющая точки Pi(xi, yi) ( i = 0, 1, 2,..., m ). С увеличением порядка численного метода звенья ломаной приближаются к ломаной, образованной хордами интегральной кривой y = φ(x), последовательно соединяющими точки (xi, φ(xi)) на интегральной кривой. Правило Рунге (5) практической оценки погрешности решения для численного метода четвертого порядка имеет вид
Задание на работу. Решить задачу Коши на равномерной сетке. Решение найти в четырех узловых точках (шаг h1 равен [ b - a ] / 4). Найти решение в тех же узлах, ведя расчет с уменьшенным вдвое шагом. Вычислить погрешности приближений при расчете с шагом h2 = h1 / 2 Задачу решить с помощью системы MATHCAD: а) методом Эйлера; б) методом Эйлера - Коши; в) методом Рунге - Кутта.
Варианты лабораторных работ. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Вспомогательные материалы.
Пример Решить задачу Коши
на равномерной сетке с шагом h = 0.1. Решение найти в четырех узловых точках. С помощью программы найти решение в тех же узлах, ведя расчет с уменьшенным вдвое шагом. Вычислить погрешности приближений при расчете с шагом h = 0.05 Задачу решить: а) методом Эйлера; б) методом Эйлера - Коши; в) методом Рунге - Кутта.
Решение. Здесь f (x,y) = x + y; m = 4; a = 0; b = 0.4; h = (b - a) / m = 0.4 /4 = 0.1 а) Используя рекуррентные формулы x0 = 0; y0 = 1; xi = x i - 1 + 0.1; y i = y i - 1 + 0.1(x i - 1 + y i - 1) i = (1, 2, 3, 4), последовательно находим при i = 1: x1 = 0.1; y1 = 1 + 0.1(0 + 1) = 1.1; при i = 2; x2 = 0.2; y2 = 1.1 + 0.1(0.1 + 1.1) = 1.22; при i = 3; x3 = 0.3; y3 = 1.22 + 0.1(0.2 + 1.22) = 1.362; при i = 4; x4 = 0.4; y4 = 1.362 + 0.1(0.3 + 1.362) = 1.5282. С помощью программы находим решение при h = 0.05. Обозначив, d i = | y i (h) - y i (h/2) | сведем результаты вычислений в таблицу
б) Формулы (7) в нашем случае принимают вид
k1[ i - 1] = h (xi-1 + yi-1), k2[ i - 1 ] = h (xi-1 + h + yi-1 + k1[ i - 1]) xi =xi-1 + h, yi = yi-1 + (1/2)[ k1[i -1] + k2[i -1]] (i = 1, 2, 3, 4).
Полагая x 0 = 0, y 0 = 1, последовательно находим
при i = 1:
k1[ 0 ] =0.1(0 + 1) = 0.1; k2[ 0 ] = 0.1(0 + 0.1 + 1 + 0.1) = 0.12; x1= 0 + 0.1 = 0.1; y1 = 1 + (1/2)(0.1 + 0.12) = 1.11;
при i = 2:
k1[ 1 ] =0.1(0.1 + 1.11) = 0.121; k2[ 1 ] = 0.1(0.1+0.1+1.11+0.121) = 0.1431; x1= 0.1 + 0.1 = 0.2; y1 = 1.11+(1/2)(0.121+0.143) = 1.2425.
Далее получаем при i = 3: x 3 = 0.3; y 3 = 1.398465; При i = 4: x 4 = 0.4; y 4 = 1.581804. С помощью программы проводим вычисления с половинным шагом. Результаты заносим в таблицу, аналогичную таблице пункта а).
в) Из формул (8) получаем
k1[ i - 1] = h (xi-1 + yi-1), k2[ i - 1 ] = h (xi-1 + (1/2)h + yi-1 +(1/2) k1[ i - 1]) k3[ i - 1 ] = h (xi-1 + (1/2)h + yi-1 +(1/2) k2[ i - 1]) k4[ i - 1 ] = h (xi-1 + h + yi-1 + k3[ i - 1]) xi =xi-1 + h, yi = yi-1 + (1/6)[ k1[i -1] + 2k2[i -1] + 2k3[i -1] + k4[ i - 1 ]] для i = 1, 2, 3, 4.
Полагая x 0 = 0, y 0 = 1, последовательно находим
при i = 1:
k1[ 0 ] =0.1(0 + 1) = 0.1; k2[ 0 ] = 0.1(0 + 0.05 + 1 + 0.05) = 0.11; k3[ 0 ] = 0.1(0 + 0.05 + 1 + 0.055) = 0.1105 k4[ 0 ] = 0.1(0 + 0.1 + 1 + 0.1105) = 0.121050 x1= 0 + 0.1 = 0.1; y1 = 1 +(1/6)(0.1 + 2*0.11+2*0.1105+ +0.12105) = 1.110342; при i = 2:
k1[ 1 ] =0.1(0.1 + 1.110342) = 0.1210342; k2[ 1 ] = 0.1(0.1 + 0.05 + 1.110342 + 0.0605171) = 0.1326385; k3[ 1 ] = 0.1(0.1 + 0.05 + 1.110342 + 0.06604295) = 0.1326385; k4[ 1 ] = 0.1(0.1 + 0.1 + 1.110342 + 0.1326385) = 0.1442980. x2= 0.1 + 0.1 = 0.2; y2 = y1 +(1/6) [ k1[1] + 2 k2[1] +2 k3[1] + k4[1]] = 1.242805;
Далее получаем при i = 3 x3 = 0.3; y3 = 1.399717; i = 4 x4 = 0.4; y4 = 1.583648;
С помощью программы проводим вычисления с половинным шагом. Результаты заносим в таблицу.
2. Блок - схема численного решения задачи Коши для дифференциального уравнения первого порядка методами Эйлера, Эйлера - Коши и Рунге - Кутта
3. Пример программы для функции y / = x + y (пример приведен для удобства разработки программы на MATHCADе студентами, привыкшими работать в ПАСКАЛЕ)) program DifEquationsFirstOrder; {*******************************************************} uses Crt; const c:array[1..4] of real = (0,0.5,0.5,1); type coef = array[0..4] of real; var i,j,m:integer; a,b,h,x,y,y1,y2,y3:real; k0,k:coef; ch:char; {-----------------------SUBROUTINES---------------------} { Y = F (x,y) (f = x+y) } function f(x,y:real):real; BEGIN f:= x + y END; {-------------------------------------------------------} procedure Pausa; BEGIN WRITELN;WRITELN ('Для продолжения нажмите любую клавишу...'); REPEAT ch:= readkey UNTIL ch <> ''; END; {------------------ОСНОВНАЯ ПРОГРАММА-------------------} BEGIN ClrScr; WRITELN ('Введите значения концов отрезка [a,b]'); READ (a,b); WRITELN ('Введите начальное значение функции y0 при x=x0 '); READ (y); WRITELN (' Введите число значений функции на промежутке [a,b]'); READ (m); x:= a; h:= (b-a) / m; y1:= y; y2:= y; y3:=y; WRITELN (' Метод Эйлера Метод Э.-Коши Метод Р.-Кутта'); WRITELN ('x=',x:5:2,' y1=',y:9:6,' y2=',y2:9:6,' y3=',y3:9:6); FOR i:= 1 TO m DO BEGIN y1:= y1 + h*f(x,y1); FOR j:=1 TO 2 DO k0[j]:=h*f(x+2*c[j]*h, y2+2*c[j]*k0[j-1]); y2:= y2+(k0[1]+k0[2]) / 2; FOR j:=1 TO 4 DO k[j]:= h*f(x+c[j]*h, y3+ c[j]*k[j-1]); y3:= Y3+ (k[1]+2*k[2]+2*k[3]+k[4]) / 6; x:= x+h; WRITELN ('x=',x:5:2,' y1=',y1:9:6,' y2=',y2:9:6,' y3=',y3:9:6); END; PAUSA; END.
Библиографический список
1. Демидович, Б.П Основы вычислительной математики/ Б.П. Демидович И.А. Марон. М.: Наука, 1970.- 664 с. 2. Демидович, Б.П. Численные методы анализа/ Б.П. Демидович, И.А. Марон, Э.З. Шувалова. М: Наука, 1967.- 368 с. 3. Копченова, Н.В. Вычислительная математика в примерах и задачах/ Н.В. Копченова, И.А. Марон. М: Наука, 1972.- 367 с. 4. Рачков, А.Д. Введение в численные методы/ А.Д. Рачков. Н – ск, изд-во НЭТИ, 1992.- 47 с. 5. Ракитин, В. И. Практическое руководство по методам вычислений/ В. И. Ракитин, Первушин. В.Е.М: Высш. Шк., 1992.- 383 с. 6. Плис, А.И. MATHCAD 2000/ А.И. Плис, Н.А. Сливина. М: Финансы и статистика, 2000.- 655 c. 7. Дьяконов, В.П. MATHCAD 2000/ В.П. Дьяконов. «Питер», 2000.- 635 с.
|
|||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 550; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.15.34 (0.009 с.) |