Книги-online
Обыкновенные дифференциальные уравнения.
|
И в библиотеке бывают рекламные паузы. |
Обыкновенные дифференциальные уравнения.
Модиффицированные методы Эйлера решения уравнения первого порядка.
При численном интегрировании дифференциального уравнения первого порядка
y'=F(x,y)
с начальным условием y(x0)=y0 (задача Коши) сначала выбираем фиксированное приращение аргумента h=(xf -x0)/n, где xf - конечная точка интервала интегрирования, n- число шагов. Затем, применяя процедуру модифицированного метода Эйлера, вычисляем yk по рекурентной формуле:
yk=yk-1+h[Fk-1+F(xk ,yk-1+hFk-1)]/2
где Fk=F(xk,yk).
Можно воспользоваться другой рекурентной формулой:
yk=yk-1+F(xk-1+h/2,yk-1+Fk-1 h/2)
.
Наверх
Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка.
Наиболее употребительным методом Рунге-Кутта является метод четвертого порядка, в котором вычисления производятся по формуле:
yk+1=yk+(k1+2k2+2k3+k4)/6,
где
k1=Fk h=F(xk,yk)h
k2=F(xk+h/2,yk+k1/2) h
k3=F(xk+h/2,yk+k2/2) h
k4=F(xk+1,yk+k3) h, k=0, . . .,n-1
h=(xf -x0)/n
Наверх
Обыкновенные дифферециальные уравнения высших порядков и системы дифферециальных уравнений.
Система обыкновенных диференциальных уравнений высшего порядка путем введения новых функций может быть сведена к системе уравнений первого порядка. Рассмотрим такую систему
yi'=Fi(x,y)
где i=1,...,n; y=(y1,y2, . . .,yn); y(x0)=y(0)=(y(0)1, . . .,y(0)n).
Систему будем решать методом Рунге-Кутта, вычисляя yik по формуле:
yi(k+1)=yi(k)+(k1(i)+2k2(i)+2k3(i)+k4(i))/6
где
k1(i)=Fi(x(k),y(k))h
k2(i)=Fi(x(k)+h/2,y(k)+k1(i)/2) h
k3(i)=Fi(x(k)+h/2,y(k)+k2(i)/2) h
k4(i)=Fi(x(k+1),y(k)+k3(i)) h,
h=(xf -x0)/m
m - колличество шагов интегрирования.
Процедура использует набор функций F(i,x,y), которые соответствуют функциям F(i,x,y) описанным выше.
Наверх
Метод Рунге-Кутта с автоматическим выбором шага.
Процедура интегрирует систему дифференциальных уравнений первого порядка
yi'=Fi(x,y)
с начальным условием y(x0)=y(0)=(y(0)1, . . .,y(0)n) методом Рунге-Кутта с автоматическим выбором шага. Вначале шаг интегрирования выбирается равным: h=(xf -x0)/2. По формулам
предыдущего раздела вычисляются значения функций y1 i=yi(x0+2h) (т.е. на шаге интегрирования 2h), затем эти же формулы применяются дважды с шагом h: вначале для нахождения решения y2 i в точках x0+h и по этим значениям для нахождения y3 i=yi(x0+2h). Полученные значения y1 i и y3 i сравниваются. Если абсолютные значения разности мантисс y1 i и y3 i (после выравнивания порядков этих величин и 10 s ) больше e, то происходит уменьшение шага вдвое.
После пятикратного интегрирования с шагом h происходит двухкратное увеличение шага. После вычисления y(x0+2h) за исходную принимается точка x+2h, а за исходное значение функции y(x+2h), затем процесс вычисления повторяется.
Данная процедура также как и предыдущая использует набор функций F(i,x,y), которые соответствуют функциям F(i,x,y) описанным выше.
Процедура вызывает процедуру RK, блок-схема которой находится в том же файле. Если Вы решите экспортировать блок-схемы в паскаль, то необходимо вынести процедуру RK в новый документ и экспортировать отдельно от основной процедуры.
Наверх