ВУЗ:
Составители:
Рубрика:
123
Например, мы хотим решить дифференциальное уравнение
2
y y x
с
начальным условием
(0) 0.3y
. При этом мы задаем отрезок [0,1], на котором
хотим получить численное решение и шаг разбиения этого отрезка, равный
0.05. Мы должны ввести команду
load(dynamics); rk(y^2+x,y,0.3,[x,0,1,0.05]);
и после того, как мы нажмем клавиши Shift+Enter, получим данные
[[0,0.3],[0.05,0.30583128660202],[0.1,0.31438277172198],[0.15,
0.32574776902574],[0.2,0.34003114365951],[0.25,0.35735268712942],[0.3,
0.37785103897622],[0.35,0.40168830090343],[0.4,0.42905553899765],[0.45,
0.46017943684494],[0.5,0.49533045405802],[0.55,0.53483297195895],[0.6,
0.57907808748734],[0.65,0.62853997325452],[0.7,0.6837970957275],[0.75,
0.74556013793749],[0.8,0.81470931041585],[0.85,0.89234502470182],[0.9,
0.97985793824278],[0.95,1.079027666994073],[1.0,1.192164923146931]].
Это означает, что мы получили узловые значения решения: y(0.05)=
0.30583128660202,…, y(0.4)= 0.42905553899765,…..
Приближенное решение дифференциальных уравнений высших
порядков сводятся к решению систем уравнений первого порядка. Например,
требуется решить дифференциальное уравнение
22
( ) 3 2y x y x y
на
отрезке [0,2] с шагом 0.1 при начальных условиях
(0) 1, (0) 0yy
. Введем
новую функцию
zy
. Теперь уравнение запишется в виде системы
22
,
23
yz
z xz x y
с начальными условиями
(0) 1, (0) 0yz
.
Для получения решения методом Рунге-Кутта вводим команду
load(dynamics); rk([z,2-x*z^2-3*x^2*y], [y,z], [1,0], [x,0,2,0.1]).
Мы получим значения в узлах:
Например, мы хотим решить дифференциальное уравнение y y 2 x с начальным условием y(0) 0.3 . При этом мы задаем отрезок [0,1], на котором хотим получить численное решение и шаг разбиения этого отрезка, равный 0.05. Мы должны ввести команду load(dynamics); rk(y^2+x,y,0.3,[x,0,1,0.05]); и после того, как мы нажмем клавиши Shift+Enter, получим данные [[0,0.3],[0.05,0.30583128660202],[0.1,0.31438277172198],[0.15, 0.32574776902574],[0.2,0.34003114365951],[0.25,0.35735268712942],[0.3, 0.37785103897622],[0.35,0.40168830090343],[0.4,0.42905553899765],[0.45, 0.46017943684494],[0.5,0.49533045405802],[0.55,0.53483297195895],[0.6, 0.57907808748734],[0.65,0.62853997325452],[0.7,0.6837970957275],[0.75, 0.74556013793749],[0.8,0.81470931041585],[0.85,0.89234502470182],[0.9, 0.97985793824278],[0.95,1.079027666994073],[1.0,1.192164923146931]]. Это означает, что мы получили узловые значения решения: y(0.05)= 0.30583128660202,…, y(0.4)= 0.42905553899765,….. Приближенное решение дифференциальных уравнений высших порядков сводятся к решению систем уравнений первого порядка. Например, требуется решить дифференциальное уравнение y x( y)2 3x2 y 2 на отрезке [0,2] с шагом 0.1 при начальных условиях y(0) 1, y(0) 0 . Введем новую функцию z y . Теперь уравнение запишется в виде системы y z, z 2 xz 3x y 2 2 с начальными условиями y(0) 1, z(0) 0 . Для получения решения методом Рунге-Кутта вводим команду load(dynamics); rk([z,2-x*z^2-3*x^2*y], [y,z], [1,0], [x,0,2,0.1]). Мы получим значения в узлах: 123
Страницы
- « первая
- ‹ предыдущая
- …
- 121
- 122
- 123
- 124
- 125
- …
- следующая ›
- последняя »