Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Методы Рунге-Кутта
Численные методы решения задачи Коши , y(x0)=y0 на равномерной сетке { x0=a, x1, x2, …, xm=b } отрезка [ a, b ] с шагом являются методами Рунге-Кутта, если, начиная с данных y(x0)=y0 решение ведется по следующим рекуррентным формулам: ; (i=1, 2, …, m) (7) , Метод называют методом Рунге-Кутта порядка P, если от имеет P -й порядок точности по шагу h на сетке. Метод Эйлера можно назвать методом Рунге-Кутта первого порядка. Метод Рунге-Кутта второго порядка называют методом Эйлера-Коши, если P=2, c1=0, c2=1, d1=d2=1/2 ; (i=1, 2, …, m) (8)
Для практической реализации погрешности решения можно применять правило Рунге, полагая P =2: Программа решения дифференциального уравнения методом Эйлера-Коши: program Eiler_Koshi; var x, a, b, h, y, z: real; m, i: integer; function f(x, y: real): real; begin f: =cos(x); end; begin writeln('Введите значения концов отрезка [a, b]'); readln(a, b); writeln('Введите начальное значение y0=y(x0)'); readln(y); writeln('Введите число значений функции на промежутке [a, b]'); read(m); x: =a; h: =(b-a)/m; for i: =0 to m do begin writeln (x: 10: 3, y: 15: 4); z: =y+h*f(x, y); y: =y+h*(f(x, y)+f(x+h, z))/2; x: =x+h end; readln; end.
|