Решить обыкновенное дифференциальное уравнение с шагом 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
В результате выполнения программы получаем:




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






