Метод Эйлера

Решение систем дифференциальных уравнений

End..

Begin

Begin

Begin

writeln('Аппроксимация зависимостью a*ln(x)+b методом наименьших квадратов');

write('Количество точек N= ');

readln(n);

if n > nmax then n:=nmax;

sx:=0;

sy:=0;

sxy:=0;

sx2:=0;

for i:=1 to n do

write('X(',i:2,'),

Y(',i:2,')= ');

readln(x[i],y[i]);

sx:=sx+ln(x[i]);

sy:=sy+y[i];

sxy:=sxy+(ln(x[i]))*y[i];

sx2:=sx2+sqr(ln(x[i]));

end;

a:=(sx*sy-n*sxy)/(sqr(sx)-n*sx2);

b:=(sy-a*sx)/n;

writeln('Коэффициенты зависимости a*ln(x)+b a= ',a:5:5,', b= ',b:5:5);

for i:=1 to n do

writeln('X(',i:2,')= ',x[i]:5:5,' Y(',i:2,')= ',y[i]:5:5,

' Y*(',i:2,')= ',a*ln(x[i])+b:5:5);

end;

write('Нажмите <Enter> для продолжения'); readln;


 

 

Систему ОДУ (1) часто удается представить в каноническом виде, в так называемой форме Коши:

(3)

где k=1,2,...,n.

При формулировке задачи Коши система (3) дополняется начальными условиями (2). Для простоты рассмотрим задачу Коши для одного уравнения типа (3), а затем полученные алгоритмы обобщим на систему n уравнений

. (4)

В окрестности точки x0 функцию y(x) разложим в ряд Тейлора:

(5)

который можно применить для приближенного определения искомой функции y(x). В точке x0+h при малых значениях h можно ограничиться двумя членами ряда (5), тогда

(6)

где - бесконечно малая величина порядка h2. Заменим производную y(x0), входящую в формулу (6), на правую часть уравнения (4):

. (7)

Теперь приближенное решение в точке x1=x0+h можно вновь рассматривать как начальное условие и по формуле (7) найти значение искомой функции в следующей точке x2=x1+h. В результате получен простейший алгоритм решения задачи Коши, который называется методом Эйлера, или методом ломаных.

На каждом шаге метода Эйлера решение y(x) определяется с погрешностью за счет отбрасывания членов ряда Тейлора, пропорциональных h в степени, выше первой. Это значит, что метод Эйлера имеет второй порядок локальной погрешности. Глобальная погрешность имеет первый порядок и при постоянном шаге h для оценки погрешности применима первая формула Рунге:

, (8)

где yh(x) - приближенное решение дифференциального уравнения в точке x, полученное с шагом h; ykh(x) - приближенное решение того же уравнения с шагом kh; p - порядок метода.

Формула (8) позволяет опытным путем определить шаг h, обеспечивающий требуемую точность решения y(x). Можно осуществлять автоматическое изменение шага в процессе интегрирования дифференциального уравнения.

Для уточнения решения применима вторая формула Рунге:

.

Формула Эйлера (7) обобщается для систем ОДУ, записанных в форме Коши (3) с начальными условиями (2):

. (9)

На практике часто пользуются модифицированным методом Эйлера, при этом формула (9) принимает следующий вид:

,

где .