Курс лекций по математике для направления 020700 - Геология. Широкова Е.А - 165 стр.

UptoLike

Рубрика: 

165
)( ) ( , )(
k k k k k
y x y f x y x x
. При этом имеем узловые значения решения:
1 0 0 0 2 1 1 1 1 1 1
.( , ) , ( , ) ,..., ( , )
n
n n n
y y f x y y y f x y y y f x y
Мы здесь приравниваем отношение приращений функции и аргумента
производной в точке, соответствующей началу отрезка разбиения:
1
( , )
kk
kk
yy
f x y
.
Очевидно, что такое приближение является тем менее точным, чем дальше
мы отойдем от точки
00
( , )xy
. Метод Эйлера является наиболее примитивным.
Здесь интегральная кривая заменяется ломаной, состоящей из прямолинейных
отрезков. Возможны его некоторые модификации, несколько улучшающие
точность. Например, если брать постоянные значения в виде
1
( , ( , ) )
22
k k k k k k
y y f x y f x y

.
Наиболее распространенным численным методом решения указанной
задачи Коши является метод Рунге-Кутта. При решении дифференциального
уравнения этим методом интегральная кривая заменяется ломаной, состоящей из
кусков парабол. Метод Рунге-Кутта встроен в пакет программ MAXIMA.
Например, мы хотим решить дифференциальное уравнение
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 при начальных условиях
. Введем новую
функцию
zy
. Теперь уравнение запишется в виде системы
22
,
23
yz
z xz x y
с начальными условиями
(0) 1, (0) 0yz
.
yk ( x)  yk  f ( xk , yk )( x  xk ) . При этом имеем узловые значения решения:
y1  y0  f ( x0 , y0 ), y2  y1  f ( x1, y1),..., yn  yn1  f ( xn1, yn1).
    Мы здесь приравниваем отношение приращений функции и аргумента
производной в точке, соответствующей началу отрезка разбиения:
                      yk 1  yk
                                  f ( xk , yk ) .
                          
       Очевидно, что такое приближение является тем менее точным, чем дальше
мы отойдем от точки ( x0 , y0 ) . Метод Эйлера является наиболее примитивным.
Здесь интегральная кривая заменяется ломаной, состоящей из прямолинейных
отрезков. Возможны его некоторые модификации, несколько улучшающие
точность. Например, если брать постоянные значения в виде
                                              
     yk 1  yk  f ( xk  , yk  f ( xk , yk ) ) .
                          2                    2
       Наиболее распространенным численным методом решения указанной
задачи Коши является метод Рунге-Кутта. При решении дифференциального
уравнения этим методом интегральная кривая заменяется ломаной, состоящей из
кусков парабол. Метод Рунге-Кутта встроен в пакет программ MAXIMA.

    Например, мы хотим решить дифференциальное уравнение 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 . Введем новую
                                                                        y  z,
функцию z  y . Теперь уравнение запишется в виде системы 
                                                                 z  2  xz  3x y
                                                                             2    2
                                                                
с начальными условиями y(0)  1, z(0)  0 .

                                                 165