Rename specvar integer-info to *integer-info*
[maxima.git] / doc / info / ru / Differential.texi
blobabc2ce7ddb84c9c0d05b2cbe8281827dc545fc91
1 @c Language=Russian
2 @c Encoding=UTF-8
3 @c File=Differential.texi
4 @c OriginalRevision=1.13
5 @c TranslatedBy: (c) 2007-09-05 Alexey V. Beshenov <al@beshenov.ru>
7 @menu
8 * Дифференциальные уравнения в Maxima::  
9 * Функции и переменные для дифференциальных уравнений::  
10 @end menu
12 @node Дифференциальные уравнения в Maxima, Функции и переменные для дифференциальных уравнений, Дифференциальные уравнения, Дифференциальные уравнения
14 @section Дифференциальные уравнения в Maxima
16 Этот раздел описывает функции Maxima для аналитического решения некоторых
17 типов дифференциальных уравнений первого и второго порядка. Для получения
18 численного решения системы дифференциальных уравнений используйте дополнительный
19 пакет @code{dynamics}, для графического представления в фазовом пространстве -
20 пакет @code{plotdf}.
22 @node Функции и переменные для дифференциальных уравнений,  , Дифференциальные уравнения в Maxima, Дифференциальные уравнения
24 @section Функции и переменные для дифференциальных уравнений
26 @deffn {Функция} bc2 (@var{solution}, @var{xval1}, @var{yval1}, @var{xval2}, @var{yval2})
28 Решает краевую задачу для дифференциального уравнения второго порядка.
29 Здесь @var{solution} - общее решение уравнения, полученное @code{ode2}; @var{xval1}
30 задает значение независимой переменной в начальной точке в виде
31 @code{@var{x} = @var{x1}} и @var{yval1} задает значение зависимой переменной
32 в этой точке в виде @code{@var{y} = @var{y1}}. Выражения @var{xval2} и @var{yval2}
33 определяют значения для этих переменных во второй точке, используя ту же запись.
35 Пример использования см. в @code{ode2}.
37 @opencatbox{Категории:}
38 @category{Дифференциальные уравнения}
39 @closecatbox
40 @end deffn
43 @anchor{desolve}
44 @deffn {Функция} desolve (@var{eqn}, @var{x})
45 @deffnx {Функция} desolve ([@var{eqn_1}, ..., @var{eqn_n}], [@var{x_1}, ..., @var{x_n}])
46 Функция @code{desolve} решает линейные системы обыкновенных дифференциальных уравнений
47 при помощи преобразования Лапласа. Здесь @var{eqn} - дифференциальные уравнения со
48 связанными переменными @var{x_1}, ..., @var{x_n}. Функциональная зависимость между
49 @var{x_1}, ..., @var{x_n} или от независимой переменной, например, @var{x},
50 должна явно задаваться в переменных и их производных. Например, следующее определение
51 двух уравнений неверно:
53 @example
54 eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x);
55 eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);
56 @end example
58 Правильная запись -
60 @example
61 eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x);
62 eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);
63 @end example
65 Тогда вызов функции @code{desolve} будет иметь вид
66 @example
67 desolve([eqn_1, eqn_2], [f(x),g(x)]);
68 @end example
70 Если известны начальные условия в @code{x=0}, то при помощи @code{atvalue} их можно
71 дополнительно определить до вызова @code{desolve}.
73 @c ===beg===
74 @c 'diff(f(x),x)='diff(g(x),x)+sin(x);
75 @c 'diff(g(x),x,2)='diff(f(x),x)-cos(x);
76 @c atvalue('diff(g(x),x),x=0,a);
77 @c atvalue(f(x),x=0,1);
78 @c desolve([%o1,%o2],[f(x),g(x)]);
79 @c [%o1,%o2],%o5,diff;
80 @c ===end===
81 @example
82 (%i1) @b{@t{'diff(f(x),x)='diff(g(x),x)+sin(x);}}
83                  d           d
84 (%o1)            -- (f(x)) = -- (g(x)) + sin(x)
85                  dx          dx
86 (%i2) @b{@t{'diff(g(x),x,2)='diff(f(x),x)-cos(x);}}
87                   2
88                  d            d
89 (%o2)            --- (g(x)) = -- (f(x)) - cos(x)
90                    2          dx
91                  dx
92 (%i3) @b{@t{atvalue('diff(g(x),x),x=0,a);}}
93 (%o3)                           a
94 (%i4) @b{@t{atvalue(f(x),x=0,1);}}
95 (%o4)                           1
96 (%i5) @b{@t{desolve([%o1,%o2],[f(x),g(x)]);}}
97                   x
98 (%o5) [f(x) = a %e  - a + 1, g(x) = 
100                                                 x
101                                    cos(x) + a %e  - a + g(0) - 1]
102 (%i6) @b{@t{[%o1,%o2],%o5,diff;}}
103              x       x      x                x
104 (%o6)   [a %e  = a %e , a %e  - cos(x) = a %e  - cos(x)]
106 @end example
108 Если @code{desolve} не может получить решение, возвращается @code{false}.
110 @opencatbox{Категории:}
111 @category{Дифференциальные уравнения}
112 @category{Преобразование Лапласа}
113 @closecatbox
114 @end deffn
116 @deffn {Функция} ic1 (@var{solution}, @var{xval}, @var{yval})
118 Решает задачи с начальными условиями для дифференциальных уравнений
119 первого порядка. Здесь @var{solution} - общее решение уравнения, полученное
120 @code{ode2}; @var{xval} задает начальное значение независимой переменной
121 в виде @code{@var{x} = @var{x0}}, и @var{yval} задает начальное значение зависимой
122 переменной в виде @code{@var{y} = @var{y0}}.
124 Пример использования см. в @code{ode2}.
126 @opencatbox{Категории:}
127 @category{Дифференциальные уравнения}
128 @closecatbox
129 @end deffn
131 @deffn {Функция} ic2 (@var{solution}, @var{xval}, @var{yval}, @var{dval})
133 Решает задачи с начальными условиями для дифференциальных уравнений
134 второго порядка. Здесь @var{solution} - общее решение уравнения, полученное
135 @code{ode2}; @var{xval} задает начальное значение независимой переменной
136 в виде @code{@var{x} = @var{x0}}, @var{yval} задает начальное значение зависимой
137 переменной в виде @code{@var{y} = @var{y0}}, и @var{dval} задает начальное значение
138 для первой производной зависимой переменной по независимой в виде
139 @code{diff(@var{y},@var{x}) = @var{dy0}} (перед @code{diff} не нужно ставить кавычку).
141 Пример использования см. в @code{ode2}.
143 @opencatbox{Категории:}
144 @category{Дифференциальные уравнения}
145 @closecatbox
146 @end deffn
148 @anchor{ode2}
149 @deffn {Функция} ode2 (@var{eqn}, @var{dvar}, @var{ivar})
151 Функция @code{ode2} решает обыкновенное дифференциальное уравнение (ОДУ)
152 первого или второго порядка. Она принимает три аргумента: ОДУ @var{eqn},
153 зависимую переменную @var{dvar} и независимую переменную @var{ivar}.
154 При удачном результате возвращается явное или неявное решение относительно
155 зависимой переменной. @code{%c} используется для представления константы
156 интегрирования в случае уравнений первого порядка; @code{%k1} и @code{%k2} -
157 константы в решениях уравнений второго порядка. Зависимость зависимой
158 переменной от независимой не требуется указывать явно, как в случае с
159 @code{desolve}, но независимая переменная должна всегда указываться в
160 качестве третьего аргумента.
162 Если по каким-то причинам @code{ode2} не может получить решение, возвращается
163 @code{false}, и, возможно, печатается сообщение об ошибке. Методы
164 решения уравнений первого порядка (в том порядке, в каком Maxima пытается
165 их применять): линейный, разделение переменных, явный - возможно, используется
166 интегрирующий множитель, однородное уравнение, уравнение Бернулли и обобщенный
167 однородный метод.
169 Типы решаемых уравнений второго порядка:
170 уравнение с постоянными коэффициентами, явное, линейное однородное с непостоянными
171 коэффициентами, преобразующимися к постоянным, уравнение Эйлера (или равноразмерное),
172 уравнения, решаемые методом вариации переменных, а также уравнения без независимой
173 или зависимой переменной, сводимые для последующего решения к линейным уравнениям
174 первого порядка.
176 В ходе решения ОДУ чисто для справки устанавливается несколько переменных:
177 @code{method} указывает на использованный метод решения (например, @code{linear}),
178 @code{intfactor} - использованный интегрирующий множитель, @code{odeindex} -
179 коэффициент, примененный в методе Бернулли или обобщенном однородном методе, а
180 @code{yp} - частное решение для метода вариации переменных.
182 Для решения задач с начальными условиями для уравнений первого и второго
183 порядка доступны функции @code{ic1} и @code{ic2}, а для решения краевых задач
184 может использоваться функция @code{bc2}.
186 Пример:
188 @c ===beg===
189 @c x^2*'diff(y,x) + 3*y*x = sin(x)/x;
190 @c ode2(%,y,x);
191 @c ic1(%o2,x=%pi,y=0);
192 @c 'diff(y,x,2) + y*'diff(y,x)^3 = 0;
193 @c ode2(%,y,x);
194 @c ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));
195 @c bc2(%o5,x=0,y=1,x=1,y=3);
196 @c ===end===
197 @example
198 (%i1) @b{@t{x^2*'diff(y,x) + 3*y*x = sin(x)/x;}}
199                       2 dy           sin(x)
200 (%o1)                x  -- + 3 x y = ------
201                         dx             x
202 (%i2) @b{@t{ode2(%,y,x);}}
203                              %c - cos(x)
204 (%o2)                    y = -----------
205                                   3
206                                  x
207 (%i3) @b{@t{ic1(%o2,x=%pi,y=0);}}
208                               cos(x) + 1
209 (%o3)                   y = - ----------
210                                    3
211                                   x
212 (%i4) @b{@t{'diff(y,x,2) + y*'diff(y,x)^3 = 0;}}
213                          2
214                         d y      dy 3
215 (%o4)                   --- + y (--)  = 0
216                           2      dx
217                         dx
218 (%i5) @b{@t{ode2(%,y,x);}}
219                       3
220                      y  + 6 %k1 y
221 (%o5)                ------------ = x + %k2
222                           6
223 (%i6) @b{@t{ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));}}
224                              3
225                           2 y  - 3 y
226 (%o6)                   - ---------- = x
227                               6
228 (%i7) @b{@t{bc2(%o5,x=0,y=1,x=1,y=3);}}
229                          3
230                         y  - 10 y       3
231 (%o7)                   --------- = x - -
232                             6           2
234 @end example
236 @opencatbox{Категории:}
237 @category{Дифференциальные уравнения}
238 @closecatbox
239 @end deffn