Задание 7. Решение дифференциальных уравнений методом Эйлера

Решить обыкновенное дифференциальное уравнение с шагом h и h /2 методом Эйлера. Выполнить «ручной» счет и проверить результат с помощью программ. Варианты заданий приведены в табл. 8.4.

Таблица 8.4

Варианты заданий для решения ОДУ

Вариант f(x) a b y0 h
5 1 3 0.1 0.2

Решение:

Приведем данное уравнение к виду :

.

Решаем данное обыкновенное дифференциальное уравнение с шагом h и h /2 методом Эйлера. Выполняем «ручной» счет:

x yi (h=0.2) yi (h=0.1)
1.0 0.100 0.100
1.1   0.090
1.2 0.080 0.082
1.3   0.075
1.4 0.067 0.069
1.5   0.065
1.6 0.057 0.060
1.7   0.056
1.8 0.050 0.053
1.9   0.050
2.0 0.045 0.048
2.1   0.045
2.2 0.040 0.043
2.3   0.041
2.4 0.037 0.039
2.5   0.038
2.6 0.034 0.036
2.7   0.035
2.8 0.031 0.034
2.9   0.032
3.0 0.029 0.031

 

Проверяем результат с помощью программы.

// ДУ y'=dy(x,y)

function y1 = dy (x, y)

y1 =(y ^3- y)/ x;

endfunction

a=1.0; b=3.0; // отрезок интегрирования

y0=0.1; // начальное условие

// решение с шагом h

h=0.2; n=(b-a)/h;

XY1=[a y0];

for k=1:n

xk=XY1(k,1);

yk=XY1(k,2);

XY1(k+1,1)=xk+h;

XY1(k+1,2)=yk+h* dy (xk,yk);

end

// Решение для h=0.2

XY1

// решение с шагом h/2

h=0.1; n=(b-a)/h;

XY2=[a y0]

for k=1:n

xk=XY2(k,1);

yk=XY2(k,2);

XY2(k+1,1)=xk+h;

XY2(k+1,2)=yk+h* dy (xk,yk);

end

// Решение для h=0.1

XY2

 

В результате выполнения программы получаем:

Сравнивая результаты ручного и программного расчетов, убеждаемся в полном их совпадении.

 




double arrow
Сейчас читают про: