File: maxima_82.html

package info (click to toggle)
maxima 5.47.0-9
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 193,104 kB
  • sloc: lisp: 434,678; fortran: 14,665; tcl: 10,990; sh: 4,577; makefile: 2,763; ansic: 447; java: 328; python: 262; perl: 201; xml: 60; awk: 28; sed: 15; javascript: 2
file content (298 lines) | stat: -rw-r--r-- 18,444 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima Manual: Функции и переменные для дифференциальных уравнений</title>

<meta name="description" content="Maxima Manual: Функции и переменные для дифференциальных уравнений">
<meta name="keywords" content="Maxima Manual: Функции и переменные для дифференциальных уравнений">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="maxima_toc.html#Top" rel="start" title="Top">
<link href="maxima_264.html#g_t_0423_043a_0430_0437_0430_0442_0435_043b_044c-_0444_0443_043d_043a_0446_0438_0439-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0445" rel="index" title="Указатель функций и переменных">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="maxima_80.html#g_t_0414_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0435-_0443_0440_0430_0432_043d_0435_043d_0438_044f" rel="up" title="Дифференциальные уравнения">
<link href="maxima_83.html#Numerical" rel="next" title="Numerical">
<link href="maxima_81.html#g_t_0414_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0435-_0443_0440_0430_0432_043d_0435_043d_0438_044f-_0432-Maxima" rel="previous" title="Дифференциальные уравнения в Maxima">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {color: black; background: white;  margin-left: 8%; margin-right: 13%;
      font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
    padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
    padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
    font-family: sans-serif}
div.synopsisbox {
    border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
    padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
    padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
    background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 1em; padding-bottom: 1em;
    padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}

-->
</style>

<link rel="icon" href="figures/favicon.ico">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6>"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>

<body lang="ru" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="g_t_0424_0443_043d_043a_0446_0438_0438-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0435-_0434_043b_044f-_0434_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0445-_0443_0440_0430_0432_043d_0435_043d_0438_0439"></a>
<div class="header">
<p>
Previous: <a href="maxima_81.html#g_t_0414_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0435-_0443_0440_0430_0432_043d_0435_043d_0438_044f-_0432-Maxima" accesskey="p" rel="previous">Дифференциальные уравнения в Maxima</a>, Up: <a href="maxima_80.html#g_t_0414_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0435-_0443_0440_0430_0432_043d_0435_043d_0438_044f" accesskey="u" rel="up">Дифференциальные уравнения</a> &nbsp; [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_264.html#g_t_0423_043a_0430_0437_0430_0442_0435_043b_044c-_0444_0443_043d_043a_0446_0438_0439-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0445" title="Index" rel="index">Index</a>]</p>
</div>

<a name="Funkcii-i-peremennye-dlya-differencialxnykh-uravnenii"></a>
<h3 class="section">20.2 Функции и переменные для дифференциальных уравнений</h3>

<a name="Item_003a-Differential_002fdeffn_002fbc2"></a><dl>
<dt><a name="index-bc2"></a>Функция: <strong>bc2</strong> <em>(<var>solution</var>, <var>xval1</var>, <var>yval1</var>, <var>xval2</var>, <var>yval2</var>)</em></dt>
<dd>
<p>Решает краевую задачу для дифференциального уравнения второго порядка.
Здесь <var>solution</var> - общее решение уравнения, полученное <code>ode2</code>; <var>xval1</var>
задает значение независимой переменной в начальной точке в виде
<code><var>x</var> = <var>x1</var></code> и <var>yval1</var> задает значение зависимой переменной
в этой точке в виде <code><var>y</var> = <var>y1</var></code>. Выражения <var>xval2</var> и <var>yval2</var>
определяют значения для этих переменных во второй точке, используя ту же запись.
</p>
<p>Пример использования см. в <code>ode2</code>.
</p>



</dd></dl>


<a name="desolve"></a><a name="Item_003a-Differential_002fdeffn_002fdesolve"></a><dl>
<dt><a name="index-desolve"></a>Функция: <strong>desolve</strong> <em>(<var>eqn</var>, <var>x</var>)</em></dt>
<dt><a name="index-desolve-1"></a>Функция: <strong>desolve</strong> <em>([<var>eqn_1</var>, ..., <var>eqn_n</var>], [<var>x_1</var>, ..., <var>x_n</var>])</em></dt>
<dd><p>Функция <code>desolve</code> решает линейные системы обыкновенных дифференциальных уравнений
при помощи преобразования Лапласа. Здесь <var>eqn</var> - дифференциальные уравнения со
связанными переменными <var>x_1</var>, ..., <var>x_n</var>. Функциональная зависимость между
<var>x_1</var>, ..., <var>x_n</var> или от независимой переменной, например, <var>x</var>,
должна явно задаваться в переменных и их производных. Например, следующее определение
двух уравнений неверно:
</p>
<div class="example">
<pre class="example">eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x);
eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);
</pre></div>

<p>Правильная запись -
</p>
<div class="example">
<pre class="example">eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x);
eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);
</pre></div>

<p>Тогда вызов функции <code>desolve</code> будет иметь вид
</p><div class="example">
<pre class="example">desolve([eqn_1, eqn_2], [f(x),g(x)]);
</pre></div>

<p>Если известны начальные условия в <code>x=0</code>, то при помощи <code>atvalue</code> их можно
дополнительно определить до вызова <code>desolve</code>.
</p>
<div class="example">
<pre class="example">(%i1) <b><tt>'diff(f(x),x)='diff(g(x),x)+sin(x);</tt></b>
                 d           d
(%o1)            -- (f(x)) = -- (g(x)) + sin(x)
                 dx          dx
(%i2) <b><tt>'diff(g(x),x,2)='diff(f(x),x)-cos(x);</tt></b>
                  2
                 d            d
(%o2)            --- (g(x)) = -- (f(x)) - cos(x)
                   2          dx
                 dx
(%i3) <b><tt>atvalue('diff(g(x),x),x=0,a);</tt></b>
(%o3)                           a
(%i4) <b><tt>atvalue(f(x),x=0,1);</tt></b>
(%o4)                           1
(%i5) <b><tt>desolve([%o1,%o2],[f(x),g(x)]);</tt></b>
                  x
(%o5) [f(x) = a %e  - a + 1, g(x) = 

                                                x
                                   cos(x) + a %e  - a + g(0) - 1]
(%i6) <b><tt>[%o1,%o2],%o5,diff;</tt></b>
             x       x      x                x
(%o6)   [a %e  = a %e , a %e  - cos(x) = a %e  - cos(x)]

</pre></div>

<p>Если <code>desolve</code> не может получить решение, возвращается <code>false</code>.
</p>




</dd></dl>

<a name="Item_003a-Differential_002fdeffn_002fic1"></a><dl>
<dt><a name="index-ic1"></a>Функция: <strong>ic1</strong> <em>(<var>solution</var>, <var>xval</var>, <var>yval</var>)</em></dt>
<dd>
<p>Решает задачи с начальными условиями для дифференциальных уравнений
первого порядка. Здесь <var>solution</var> - общее решение уравнения, полученное
<code>ode2</code>; <var>xval</var> задает начальное значение независимой переменной
в виде <code><var>x</var> = <var>x0</var></code>, и <var>yval</var> задает начальное значение зависимой
переменной в виде <code><var>y</var> = <var>y0</var></code>.
</p>
<p>Пример использования см. в <code>ode2</code>.
</p>



</dd></dl>

<a name="Item_003a-Differential_002fdeffn_002fic2"></a><dl>
<dt><a name="index-ic2"></a>Функция: <strong>ic2</strong> <em>(<var>solution</var>, <var>xval</var>, <var>yval</var>, <var>dval</var>)</em></dt>
<dd>
<p>Решает задачи с начальными условиями для дифференциальных уравнений
второго порядка. Здесь <var>solution</var> - общее решение уравнения, полученное
<code>ode2</code>; <var>xval</var> задает начальное значение независимой переменной
в виде <code><var>x</var> = <var>x0</var></code>, <var>yval</var> задает начальное значение зависимой
переменной в виде <code><var>y</var> = <var>y0</var></code>, и <var>dval</var> задает начальное значение
для первой производной зависимой переменной по независимой в виде
<code>diff(<var>y</var>,<var>x</var>) = <var>dy0</var></code> (перед <code>diff</code> не нужно ставить кавычку).
</p>
<p>Пример использования см. в <code>ode2</code>.
</p>



</dd></dl>

<a name="ode2"></a><a name="Item_003a-Differential_002fdeffn_002fode2"></a><dl>
<dt><a name="index-ode2"></a>Функция: <strong>ode2</strong> <em>(<var>eqn</var>, <var>dvar</var>, <var>ivar</var>)</em></dt>
<dd>
<p>Функция <code>ode2</code> решает обыкновенное дифференциальное уравнение (ОДУ)
первого или второго порядка. Она принимает три аргумента: ОДУ <var>eqn</var>,
зависимую переменную <var>dvar</var> и независимую переменную <var>ivar</var>.
При удачном результате возвращается явное или неявное решение относительно
зависимой переменной. <code>%c</code> используется для представления константы
интегрирования в случае уравнений первого порядка; <code>%k1</code> и <code>%k2</code> -
константы в решениях уравнений второго порядка. Зависимость зависимой
переменной от независимой не требуется указывать явно, как в случае с
<code>desolve</code>, но независимая переменная должна всегда указываться в
качестве третьего аргумента.
</p>
<p>Если по каким-то причинам <code>ode2</code> не может получить решение, возвращается
<code>false</code>, и, возможно, печатается сообщение об ошибке. Методы
решения уравнений первого порядка (в том порядке, в каком Maxima пытается
их применять): линейный, разделение переменных, явный - возможно, используется
интегрирующий множитель, однородное уравнение, уравнение Бернулли и обобщенный
однородный метод.
</p>
<p>Типы решаемых уравнений второго порядка:
уравнение с постоянными коэффициентами, явное, линейное однородное с непостоянными
коэффициентами, преобразующимися к постоянным, уравнение Эйлера (или равноразмерное),
уравнения, решаемые методом вариации переменных, а также уравнения без независимой
или зависимой переменной, сводимые для последующего решения к линейным уравнениям
первого порядка.
</p>
<p>В ходе решения ОДУ чисто для справки устанавливается несколько переменных:
<code>method</code> указывает на использованный метод решения (например, <code>linear</code>),
<code>intfactor</code> - использованный интегрирующий множитель, <code>odeindex</code> -
коэффициент, примененный в методе Бернулли или обобщенном однородном методе, а
<code>yp</code> - частное решение для метода вариации переменных.
</p>
<p>Для решения задач с начальными условиями для уравнений первого и второго
порядка доступны функции <code>ic1</code> и <code>ic2</code>, а для решения краевых задач
может использоваться функция <code>bc2</code>.
</p>
<p>Пример:
</p>
<div class="example">
<pre class="example">(%i1) <b><tt>x^2*'diff(y,x) + 3*y*x = sin(x)/x;</tt></b>
                      2 dy           sin(x)
(%o1)                x  -- + 3 x y = ------
                        dx             x
(%i2) <b><tt>ode2(%,y,x);</tt></b>
                             %c - cos(x)
(%o2)                    y = -----------
                                  3
                                 x
(%i3) <b><tt>ic1(%o2,x=%pi,y=0);</tt></b>
                              cos(x) + 1
(%o3)                   y = - ----------
                                   3
                                  x
(%i4) <b><tt>'diff(y,x,2) + y*'diff(y,x)^3 = 0;</tt></b>
                         2
                        d y      dy 3
(%o4)                   --- + y (--)  = 0
                          2      dx
                        dx
(%i5) <b><tt>ode2(%,y,x);</tt></b>
                      3
                     y  + 6 %k1 y
(%o5)                ------------ = x + %k2
                          6
(%i6) <b><tt>ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));</tt></b>
                             3
                          2 y  - 3 y
(%o6)                   - ---------- = x
                              6
(%i7) <b><tt>bc2(%o5,x=0,y=1,x=1,y=3);</tt></b>
                         3
                        y  - 10 y       3
(%o7)                   --------- = x - -
                            6           2

</pre></div>




</dd></dl>


<hr>
<div class="header">
<p>
Previous: <a href="maxima_81.html#g_t_0414_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0435-_0443_0440_0430_0432_043d_0435_043d_0438_044f-_0432-Maxima" accesskey="p" rel="previous">Дифференциальные уравнения в Maxima</a>, Up: <a href="maxima_80.html#g_t_0414_0438_0444_0444_0435_0440_0435_043d_0446_0438_0430_043b_044c_043d_044b_0435-_0443_0440_0430_0432_043d_0435_043d_0438_044f" accesskey="u" rel="up">Дифференциальные уравнения</a> &nbsp; [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_264.html#g_t_0423_043a_0430_0437_0430_0442_0435_043b_044c-_0444_0443_043d_043a_0446_0438_0439-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0445" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>