Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / ja / Differentiation.texi
blobf0ecb648270ea4571f8ac1cf00fbe4c514785bd2
1 @menu
2 * Functions and Variables for Differentiation::  
3 @end menu
5 @c -----------------------------------------------------------------------------
6 @node Functions and Variables for Differentiation,  , Differentiation, Differentiation
7 @section Functions and Variables for Differentiation
8 @c -----------------------------------------------------------------------------
10 @c -----------------------------------------------------------------------------
11 @anchor{antid}
12 @deffn {関数} antid (@var{expr}, @var{x}, @var{u(x)}) 
14 @var{expr}の@var{x}に関する不定積分がリストから構成できるような、
15 2要素リストを返します。
16 式@var{expr}は、未知の関数@var{u}とその導関数を含むことができます。
18 Let 
19 2要素リスト@var{L}が@code{antid}の戻り値だとします。
20 @code{@var{L}[1] + 'integrate (@var{L}[2], @var{x})}は
21 @var{expr}の@var{x}に関する不定積分です。
23 @code{antid}が完全に成功した時、
24 戻り値の2番目の要素はゼロです。
25 そうでなければ、2番目の要素は非ゼロで、最初の要素は非ゼロまたはゼロです。
26 もし@code{antid}が全く進展できなければ、
27 最初の要素はゼロで、2番目は非ゼロです。
29 @code{load ("antid")}はこの関数をロードします。
30 @code{antid}パッケージは、関数@code{nonzeroandfreeof}と@code{linear}も定義します。
32 @code{antid}は、以下のように@code{antidiff}と関係します。
33 2要素リスト@var{L}が@code{antid}の戻り値とします。
34 @code{antidiff}の戻り値は、@code{@var{L}[1] + 'integrate (@var{L}[2], @var{x})}に
35 等しいです。
36 ここで、@var{x}は積分変数です。
38 例:
40 @c FOLLOWING EXAMPLES GENERATED FROM THESE INPUTS
41 @c load ("antid")$
42 @c expr: exp (z(x)) * diff (z(x), x) * y(x);
43 @c a1: antid (expr, x, z(x));
44 @c a2: antidiff (expr, x, z(x));
45 @c a2 - (first (a1) + 'integrate (second (a1), x));
46 @c antid (expr, x, y(x));
47 @c antidiff (expr, x, y(x));
48 @c THERE IS A DEMO FILE share/integration/antid.dem, EXECUTED BY demo('antid)
49 @c BUT I THINK THE FOLLOWING ILLUSTRATES THE BASIC FUNCTIONALITY MORE CLEARLY
50 @c MAYBE MERGE IN THE DEMO PROBLEMS LATER
51 @example
52 (%i1) load ("antid")$
53 (%i2) expr: exp (z(x)) * diff (z(x), x) * y(x);
54                             z(x)  d
55 (%o2)                y(x) %e     (-- (z(x)))
56                                   dx
57 (%i3) a1: antid (expr, x, z(x));
58                        z(x)      z(x)  d
59 (%o3)          [y(x) %e    , - %e     (-- (y(x)))]
60                                        dx
61 (%i4) a2: antidiff (expr, x, z(x));
62                             /
63                      z(x)   [   z(x)  d
64 (%o4)         y(x) %e     - I %e     (-- (y(x))) dx
65                             ]         dx
66                             /
67 (%i5) a2 - (first (a1) + 'integrate (second (a1), x));
68 (%o5)                           0
69 (%i6) antid (expr, x, y(x));
70                              z(x)  d
71 (%o6)             [0, y(x) %e     (-- (z(x)))]
72                                    dx
73 (%i7) antidiff (expr, x, y(x));
74                   /
75                   [        z(x)  d
76 (%o7)             I y(x) %e     (-- (z(x))) dx
77                   ]              dx
78                   /
79 @end example
81 @opencatbox
82 @category{Integral calculus}
83 @closecatbox
84 @end deffn
86 @c -----------------------------------------------------------------------------
87 @anchor{antidiff}
88 @deffn {関数} antidiff (@var{expr}, @var{x}, @var{u}(@var{x}))
90 @var{expr}の@var{x}に関する不定積分を返します。
91 式@var{expr}は、未知の関数@var{u}とその導関数を含むことができます。
93 @code{antidiff}が完全に成功した時、
94 結果の式は、積分記号を含みません(すなわち、@code{integrate}名詞を含みません)。
95 そうでなければ、@code{antidiff}は
96 部分的にまたは完全に積分記号内にある式を返します。
97 もし@code{antidiff}が全く進展ができないなら、
98 戻り値は完全に積分記号内にあります。
100 @code{load ("antid")}はこの関数をロードします。
101 @code{antid}パッケージは、関数@code{nonzeroandfreeof}と@code{linear}も定義します。
103 @code{antidiff}は、以下のように@code{antid}と関係します。
104 2要素リスト@var{L}が@code{antid}の戻り値とします。
105 @code{antidiff}の戻り値は、@code{@var{L}[1] + 'integrate (@var{L}[2], @var{x})}に
106 等しいです。
107 ここで、@var{x}は積分変数です。
109 例:
111 @c FOLLOWING EXAMPLES GENERATED FROM THESE INPUTS
112 @c load ("antid")$
113 @c expr: exp (z(x)) * diff (z(x), x) * y(x);
114 @c a1: antid (expr, x, z(x));
115 @c a2: antidiff (expr, x, z(x));
116 @c a2 - (first (a1) + 'integrate (second (a1), x));
117 @c antid (expr, x, y(x));
118 @c antidiff (expr, x, y(x));
119 @c THERE IS A DEMO FILE share/integration/antid.dem, EXECUTED BY demo('antid)
120 @c BUT I THINK THE FOLLOWING ILLUSTRATES THE BASIC FUNCTIONALITY MORE CLEARLY
121 @c MAYBE MERGE IN THE DEMO PROBLEMS LATER
122 @example
123 (%i1) load ("antid")$
124 (%i2) expr: exp (z(x)) * diff (z(x), x) * y(x);
125                             z(x)  d
126 (%o2)                y(x) %e     (-- (z(x)))
127                                   dx
128 (%i3) a1: antid (expr, x, z(x));
129                        z(x)      z(x)  d
130 (%o3)          [y(x) %e    , - %e     (-- (y(x)))]
131                                        dx
132 (%i4) a2: antidiff (expr, x, z(x));
133                             /
134                      z(x)   [   z(x)  d
135 (%o4)         y(x) %e     - I %e     (-- (y(x))) dx
136                             ]         dx
137                             /
138 (%i5) a2 - (first (a1) + 'integrate (second (a1), x));
139 (%o5)                           0
140 (%i6) antid (expr, x, y(x));
141                              z(x)  d
142 (%o6)             [0, y(x) %e     (-- (z(x)))]
143                                    dx
144 (%i7) antidiff (expr, x, y(x));
145                   /
146                   [        z(x)  d
147 (%o7)             I y(x) %e     (-- (z(x))) dx
148                   ]              dx
149                   /
150 @end example
152 @opencatbox
153 @category{Integral calculus}
154 @closecatbox
155 @end deffn
157 @c -----------------------------------------------------------------------------
158 @anchor{at}
159 @deffn  {関数} at (@var{expr}, [@var{eqn_1}, @dots{}, @var{eqn_n}])
160 @deffnx {関数} at (@var{expr}, @var{eqn})
161 等式のリスト@code{[@var{eqn_1}, ..., @var{eqn_n}]}
162 もしくは1つの等式@var{eqn}の中で指定されたように値を仮定された変数で、
163 式@var{expr}を評価します。
165 もしも部分式が、値が指定される変数のいずれかに依存するが
166 指定の@code{atvalue}がなく、他の方法で評価できないなら、
167 @code{at}の名詞形が返され、2次元形式で表示されます。
169 @code{at}は多重代入を並列に実行します。
171 @code{atvalue}も参照してください。
172 代入を実行する他の関数に関しては、@code{subst}や@code{ev}も参照してください。
174 例:
176 @c ===beg===
177 @c atvalue (f(x,y), [x = 0, y = 1], a^2);
178 @c atvalue ('diff (f(x,y), x), x = 0, 1 + y);
179 @c printprops (all, atvalue);
180 @c diff (4*f(x, y)^2 - u(x, y)^2, x);
181 @c at (%, [x = 0, y = 1]);
182 @c ===end===
183 @example
184 (%i1) atvalue (f(x,y), [x = 0, y = 1], a^2);
185                                 2
186 (%o1)                          a
187 (%i2) atvalue ('diff (f(x,y), x), x = 0, 1 + y);
188 (%o2)                        @@2 + 1
189 (%i3) printprops (all, atvalue);
190                                 !
191                   d             !
192                  --- (f(@@1, @@2))!       = @@2 + 1
193                  d@@1            !
194                                 !@@1 = 0
196                                      2
197                           f(0, 1) = a
199 (%o3)                         done
200 (%i4) diff (4*f(x, y)^2 - u(x, y)^2, x);
201                   d                          d
202 (%o4)  8 f(x, y) (-- (f(x, y))) - 2 u(x, y) (-- (u(x, y)))
203                   dx                         dx
204 (%i5) at (%, [x = 0, y = 1]);
205 @group
206                                          !
207               2              d           !
208 (%o5)     16 a  - 2 u(0, 1) (-- (u(x, y))!            )
209                              dx          !
210                                          !x = 0, y = 1
211 @end group
212 @end example
214 @opencatbox
215 @category{Evaluation}
216 @category{Differential equations}
217 @closecatbox
218 @end deffn
220 @c I SUSPECT THERE IS MORE TO BE SAID HERE
222 @c -----------------------------------------------------------------------------
223 @anchor{atomgrad}
224 @defvr {Property} atomgrad
226 @code{atomgrad}は、式のアトムのグラディエントプロパティです。
227 このプロパティは@code{gradef}で割り当てられます。
229 @c NEED EXAMPLE HERE
230 @opencatbox
231 @category{Differential calculus}
232 @closecatbox
233 @end defvr
235 @c -----------------------------------------------------------------------------
236 @anchor{atvalue}
237 @deffn  {関数} atvalue (@var{expr}, [@var{x_1} = @var{a_1}, ..., @var{x_m} = @var{a_m}], @var{c})
238 @deffnx {関数} atvalue (@var{expr}, @var{x_1} = @var{a_1}, @var{c})
240 値@var{c}を
241 点@code{@var{x} = @var{a}}の@var{expr}に割り当てます。
242 典型的には、境界値はこのメカニズムによって確立されます。
244 @var{expr}は、関数引数が陽に現れる
245 関数評価
246 @code{@var{f}(@var{x_1}, ..., @var{x_m})}または
247 導関数
248 @code{diff (@var{f}(@var{x_1}, ..., @var{x_m}), @var{x_1}, @var{n_1}, ..., @var{x_n}, @var{n_m})}
249 です。
250 @c HMM, WHAT IS THIS NEXT PHRASE GETTING AT ??
251 @c DOES IT INTEND TO IMPLY THAT IMPLICIT DEPENDENCIES ARE IGNORED ??
252 @var{n_i}は、@var{x_i}に関する微分の階数です。
254 atvalueが確立される点は、等式のリスト@code{[@var{x_1} = @var{a_1}, ..., @var{x_m} = @var{a_m}]}
255 によって与えられます。
256 もし1変数@var{x_1}なら、
257 リストとしてくくられることなしに1つの等式は与えられます。
259 @code{printprops ([@var{f_1}, @var{f_2}, ...], atvalue)}は
260 @code{atvalue}コールによって指定されるような
261 関数@code{@var{f_1}, @var{f_2}, ...}のatvalueを表示します。
263 @code{printprops (@var{f}, atvalue)}は、
264 1関数@var{f}のatvalueを表示します。
265 @code{printprops (all, atvalue)}は、
266 atvaluesが定義された関数すべてのatvalueを表示します。
268 atvaluesが表示される時、
269 シンボル@code{@@1}, @code{@@2}, @dots{} は
270 変数@var{x_1}, @var{x_2}, @dots{}を表します。
272 @code{atvalue}は引数を評価します。
273 @code{atvalue}はatvalue@var{c}を返します。
275 例:
277 @c FOLLOWING ADAPTED FROM example (atvalue)
278 @c atvalue (f(x,y), [x = 0, y = 1], a^2);
279 @c atvalue ('diff (f(x,y), x), x = 0, 1 + y);
280 @c printprops (all, atvalue);
281 @c diff (4*f(x,y)^2 - u(x,y)^2, x);
282 @c at (%, [x = 0, y = 1]);
283 @example
284 (%i1) atvalue (f(x,y), [x = 0, y = 1], a^2);
285                                 2
286 (%o1)                          a
287 (%i2) atvalue ('diff (f(x,y), x), x = 0, 1 + y);
288 (%o2)                        @@2 + 1
289 (%i3) printprops (all, atvalue);
290                                 !
291                   d             !
292                  --- (f(@@1, @@2))!       = @@2 + 1
293                  d@@1            !
294                                 !@@1 = 0
296                                      2
297                           f(0, 1) = a
299 (%o3)                         done
300 (%i4) diff (4*f(x,y)^2 - u(x,y)^2, x);
301                   d                          d
302 (%o4)  8 f(x, y) (-- (f(x, y))) - 2 u(x, y) (-- (u(x, y)))
303                   dx                         dx
304 (%i5) at (%, [x = 0, y = 1]);
305                                          !
306               2              d           !
307 (%o5)     16 a  - 2 u(0, 1) (-- (u(x, y))!            )
308                              dx          !
309                                          !x = 0, y = 1
310 @end example
312 @opencatbox
313 @category{Differential equations}
314 @category{Declarations and inferences}
315 @closecatbox
316 @end deffn
318 @c LOOKS LIKE cartan IS THE NAME OF A PACKAGE AND NOT A FUNCTION OR VARIABLE
319 @c PROBABLY SHOULD SPLIT OUT cartan AND ITS CONTENTS INTO ITS OWN TEXINFO FILE
320 @c ext_diff AND lie_diff NOT DOCUMENTED (OTHER THAN HERE)
322 @c -----------------------------------------------------------------------------
323 @anchor{cartan}
324 @deffn {関数} cartan
326 微分形式の外積代数は
327 エリーカルタンによって開発された微分幾何の基本ツールであり、
328 偏微分方程式論での有用な応用を持ちます。
329 @code{cartan}パッケージは、
330 演算子@code{~} (ウェッジ積)と@code{|} (形式のベクトルとの縮約)と一緒に、
331 関数@code{ext_diff}と@code{lie_diff}を実装します。
332 例と一緒にこれらのコマンドの簡潔な記述を見るには、@code{demo (tensor)}を実行してください。
334 @code{cartan}は、F.B. EstabrookとH.D. Wahlquistによって実装されました。
336 @opencatbox
337 @category{Differential geometry}
338 @closecatbox
339 @end deffn
341 @c -----------------------------------------------------------------------------
342 @anchor{del}
343 @deffn {関数} del (@var{x})
345 @code{del (@var{x})}は、変数@math{x}の微分を表します。
347 もし独立変数が指定されないなら、
348 @code{diff}は、@code{del}を含む式を返します。
349 この場合、戻り値は「全微分」と呼ばれるものです。
351 例:
353 @c GENERATED FROM THE FOLLOWING
354 @c diff (log (x));
355 @c diff (exp (x*y));
356 @c diff (x*y*z);
357 @example
358 (%i1) diff (log (x));
359                              del(x)
360 (%o1)                        ------
361                                x
362 (%i2) diff (exp (x*y));
363                      x y              x y
364 (%o2)            x %e    del(y) + y %e    del(x)
365 (%i3) diff (x*y*z);
366 (%o3)         x y del(z) + x z del(y) + y z del(x)
367 @end example
369 @opencatbox
370 @category{Differential calculus}
371 @closecatbox
372 @end deffn
374 @c -----------------------------------------------------------------------------
375 @anchor{delta}
376 @deffn {関数} delta (@var{t})
378 Diracのデルタ関数
380 今のところ、@code{laplace}だけが@code{delta}を知っています。
382 例:
384 @example
385 (%i1) laplace (delta (t - a) * sin(b*t), t, s);
386 Is  a  positive, negative, or zero?
389                                    - a s
390 (%o1)                   sin(a b) %e
391 @end example
393 @opencatbox
394 @category{Mathematical functions}
395 @category{Laplace transform}
396 @closecatbox
397 @end deffn
399 @c -----------------------------------------------------------------------------
400 @anchor{dependencies}
401 @defvr {システム変数} dependencies
402 デフォルト値: @code{[]}
404 @code{dependencies}は、
405 @code{depends}や@code{gradef}によって割り当てられた、関数依存を持つアトムのリストです。
406 @code{dependencies}リストは累積的です:
407 each call to 
408 @code{depends}や@code{gradef}のコールそれぞれは、上乗せの項目を追加します。
410 @code{depends}と@code{gradef}を参照してください。
412 @opencatbox
413 @category{Declarations and inferences}
414 @category{Global variables}
415 @closecatbox
416 @end defvr
418 @c -----------------------------------------------------------------------------
419 @anchor{depends}
420 @deffn {関数} depends (@var{f_1}, @var{x_1}, ..., @var{f_n}, @var{x_n})
422 導関数を計算するために、変数の間の関数依存を宣言します。
423 宣言された依存関係なしでは、
424 @code{diff (f, x)}はゼロをもたらします。
425 もし@code{depends (f, x)}が宣言されたら、
426 @code{diff (f, x)}はシンボリックな導関数(すなわち、@code{diff}名詞)をもたらします。
428 それぞれの引数@var{f_1}, @var{x_1}, などは、
429 変数や配列の名前、または名前のリストをとり得ます。
430 @var{f_i} (多分ただ1つの要素)のすべての要素は、
431 @var{x_i} (多分ただ1つの要素)のすべての要素に依存するように宣言されます。
432 もしいくつかの@var{f_i}が、配列名だったり、配列名を含むなら、
433 配列の要素すべては@var{x_i}に依存します。
435 @code{diff}は、@code{depends}によって確立された間接的依存関係を認識し、
436 これらの場合に連鎖規則を適用します。
438 @code{remove (@var{f}, dependency)}は、@var{f}に関して宣言された
439 依存関係すべてを取り除きます。
441 @code{depends}は、確立された依存関係のリストを返します。
442 依存関係はグローバル変数@code{dependencies}に適用されます。
443 @code{depends}は引数を評価します。
445 @code{diff}は、
446 @code{depends}によって確立された依存関係を認識する唯一のMaximaコマンドです。
447 他の関数(@code{integrate}, @code{laplace}, など)は、
448 引数によって陽に表現された依存関係だけを認識します。
449 例えば、@code{integrate}は、
450 @code{integrate (f(x), x)}のように陽に表現されないなら、
451 @code{f}の@code{x}への依存性を認識しません。
453 @c GENERATED BY THE FOLLOWING
454 @c depends ([f, g], x);
455 @c depends ([r, s], [u, v, w]);
456 @c depends (u, t);
457 @c dependencies;
458 @c diff (r.s, u);
459 @example
460 (%i1) depends ([f, g], x);
461 (%o1)                     [f(x), g(x)]
462 (%i2) depends ([r, s], [u, v, w]);
463 (%o2)               [r(u, v, w), s(u, v, w)]
464 (%i3) depends (u, t);
465 (%o3)                        [u(t)]
466 (%i4) dependencies;
467 (%o4)      [f(x), g(x), r(u, v, w), s(u, v, w), u(t)]
468 (%i5) diff (r.s, u);
469                          dr           ds
470 (%o5)                    -- . s + r . --
471                          du           du
472 @end example
474 @c GENERATED BY THE FOLLOWING
475 @c diff (r.s, t);
476 @example
477 (%i6) diff (r.s, t);
478                       dr du           ds du
479 (%o6)                 -- -- . s + r . -- --
480                       du dt           du dt
481 @end example
483 @c GENERATED BY THE FOLLOWING
484 @c remove (r, dependency);
485 @c diff (r.s, t);
486 @example
487 (%i7) remove (r, dependency);
488 (%o7)                         done
489 (%i8) diff (r.s, t);
490                                 ds du
491 (%o8)                       r . -- --
492                                 du dt
493 @end example
495 @opencatbox
496 @category{Differential calculus}
497 @category{Declarations and inferences}
498 @closecatbox
499 @end deffn
501 @c -----------------------------------------------------------------------------
502 @anchor{derivabrev}
503 @defvr {オプション変数} derivabbrev
504 デフォルト値: @code{false}
506 @code{derivabbrev}が@code{true}の時、
507 シンボリックな導関数(すなわち、@code{diff}名詞)が下付き添字として表示されます。
508 そうでなければ、導関数はライプニッツ表記@code{dy/dx}で表示されます。
510 @c NEED EXAMPLES HERE
511 @opencatbox
512 @category{Differential calculus}
513 @category{Global flags}
514 @closecatbox
515 @end defvr
517 @c SEEMS LIKE THIS STATEMENT COULD BE LESS CLUMSY
519 @c -----------------------------------------------------------------------------
520 @anchor{derivdegree}
521 @deffn {関数} derivdegree (@var{expr}, @var{y}, @var{x})
523 @var{expr}に現れる独立変数@var{x}に関する
524 従属変数@var{y}の微分の最高階数を返します。
526 例:
528 @c GENERATED FROM THE FOLLOWING
529 @c 'diff (y, x, 2) + 'diff (y, z, 3) + 'diff (y, x) * x^2;
530 @c derivdegree (%, y, x);
531 @example
532 (%i1) 'diff (y, x, 2) + 'diff (y, z, 3) + 'diff (y, x) * x^2;
533                          3     2
534                         d y   d y    2 dy
535 (%o1)                   --- + --- + x  --
536                           3     2      dx
537                         dz    dx
538 (%i2) derivdegree (%, y, x);
539 (%o2)                           2
540 @end example
542 @opencatbox
543 @category{Differential calculus}
544 @category{Expressions}
545 @closecatbox
546 @end deffn
548 @c I HAVE NO IDEA WHAT THIS DOES
550 @c -----------------------------------------------------------------------------
551 @anchor{derivlist}
552 @deffn {関数} derivlist (@var{var_1}, @dots{}, @var{var_k})
554 @code{ev}コマンド内にて、指摘された変数に関する微分のみを起こします。
556 @opencatbox
557 @category{Differential calculus}
558 @category{Evaluation}
559 @closecatbox
560 @end deffn
562 @c -----------------------------------------------------------------------------
563 @anchor{derivsubst}
564 @defvr {オプション変数} derivsubst
565 デフォルト値: @code{false}
567 @code{derivsubst}が@code{true}の時、
568 @code{subst (x, 'diff (y, t), 'diff (y, t, 2))}
569 のような非構文法的代入は@code{'diff (x, t)}をもらします。
571 @opencatbox
572 @category{Differential calculus}
573 @category{Expressions}
574 @closecatbox
575 @end defvr
577 @c -----------------------------------------------------------------------------
578 @anchor{diff}
579 @deffn  {関数} diff (@var{expr}, @var{x_1}, @var{n_1}, @dots{}, @var{x_m}, @var{n_m})
580 @deffnx {関数} diff (@var{expr}, @var{x}, @var{n})
581 @deffnx {関数} diff (@var{expr}, @var{x})
582 @deffnx {関数} diff (@var{expr})
584 @var{expr}の中のすべての変数の中のいくつかに関する、@var{expr}の導関数すなわち微分を返します。
586 @code{diff (@var{expr}, @var{x}, @var{n})}は@var{x}に関する@var{expr}の@var{n}階微分を返します。
588 @code{diff (@var{expr}, @var{x_1}, @var{n_1}, ..., @var{x_m}, @var{n_m})}は
589 @var{x_1}, ..., @var{x_m}に関する@var{expr}の偏微分を返します。
590 これは、@code{diff (... (diff (@var{expr}, @var{x_m}, @var{n_m}) ...), @var{x_1}, @var{n_1})}と同値です。
592 @code{diff (@var{expr}, @var{x})}は変数@var{x}に関する@var{expr}の1階微分を返します。
594 @code{diff (@var{expr})}は@var{expr}の全微分を返します。
595 すなわち、それぞれの変数に関する@var{expr}の微分に変数それぞれの微分@code{del}を掛けたものの和を返します。
596 @c WHAT DOES THIS NEXT STATEMENT MEAN, EXACTLY ??
597 @code{del}の更なる整理は提供されません。
599 @code{diff}の名詞形式が、微分方程式を記述する時など、いくつかの文脈で要求されます。
600 これらの場合、@code{diff}は、微分が実行される代わりに名詞形式を出力するために
601 (@code{'diff}として)クォートされるかもしれません。
603 @code{derivabbrev}が@code{true}の時、導関数は下付き添字として表示されます。
604 そうでなければ、導関数はライブニツ記法の@code{dy/dx}で表示されます。
606 例:
608 @c GENERATED FROM THE FOLLOWING
609 @c diff (exp (f(x)), x, 2);
610 @c derivabbrev: true$
611 @c 'integrate (f(x, y), y, g(x), h(x));
612 @c diff (%, x);
613 @example
614 (%i1) diff (exp (f(x)), x, 2);
615                      2
616               f(x)  d               f(x)  d         2
617 (%o1)       %e     (--- (f(x))) + %e     (-- (f(x)))
618                       2                   dx
619                     dx
620 (%i2) derivabbrev: true$
621 (%i3) 'integrate (f(x, y), y, g(x), h(x));
622                          h(x)
623                         /
624                         [
625 (%o3)                   I     f(x, y) dy
626                         ]
627                         /
628                          g(x)
629 (%i4) diff (%, x);
630        h(x)
631       /
632       [
633 (%o4) I     f(x, y)  dy + f(x, h(x)) h(x)  - f(x, g(x)) g(x)
634       ]            x                     x                  x
635       /
636        g(x)
637 @end example
639 テンソルパッケージのために、以下の変更が取り込まれています:
641 (1) @var{expr}の中の任意のインデックスされたオブジェクトの導関数は、追加された引数として添えられた変数@var{x_i}を持ちます。
642 そして導関数のインデックスはすべてソートされます。
644 (2) @var{x_i}は、1から変数@code{dimension} [デフォルト値: 4]の値までの整数を取ります。
645 これにより、例えば @code{[x, y, z, t]}など
646 座標名のリストして設定されたリスト@code{coordinates}の@var{x_i}番目のメンバーに関する微分が実行されます。
647 もし@code{coordinates}がアトムの変数にバインドされているなら、@var{x_i}で下付き添字された変数が、微分の変数として使われます。
648 これにより、座標名や@code{X[1]}, @code{X[2]}, @dots{}のような下付き添字された名前の配列が使えることになります。
649 もし@code{coordinates}に値が割り当てられていないなら、変数は上の(1)のように扱われます。
651 @c NEED EXAMPLES FOR TENSOR STUFF
652 @opencatbox
653 @category{Differential calculus}
654 @closecatbox
655 @end deffn
657 @c MERGE THIS INTO @defun diff
659 @c -----------------------------------------------------------------------------
660 @anchor{symbol_diff}
661 @defvr {特殊シンボル} diff
663 @code{ev}コールの中で、@code{evflag}として@code{diff}が存在する時、
664 @code{expr}の中で表現されたすべての微分は実行されます。
666 @c NEED EXAMPLE HERE
667 @end defvr
669 @c NOT SURE HOW THIS IS SUPPOSED TO WORK
671 @c -----------------------------------------------------------------------------
672 @anchor{dscalar}
673 @deffn {関数} dscalar (@var{f})
675 スカラーのダランベルシアンをスカラー関数に@var{f}に適用します。
677 @c APPARENTLY dscalar DOESN'T EXIST IN THE CORE FILES ANYMORE
678 @c ctensor HAS THE ONLY DEFN I FOUND (OUTSIDE OF archive/)
679 @code{load ("ctensor")}はこの関数をロードします。
681 @c FOLLOWING EXAMPLE DOESN'T WORK; I GET dscalar (field) ==> 0
682 @c (I GET 0 FOR THE ctensor VERSION OF dscalar, AND SAME FOR
683 @c THE DEFN OF dscalar GIVEN IN archive/share/lisp/ctensr.trl)
684 @c INCIDENTALLY dependencies IS DOCUMENTED ONLY AS A VARIABLE
686 @c @example
687 @c (%i41) dependencies(field(r));
688 @c (%o41)                           [field(r)]
689 @c (%i42) dscalar(field);
690 @c (%o43)
691 @c     -m
692 @c   %e  ((field  n - field  m + 2 field   ) r + 4 field )
693 @c              r  r       r  r         r r             r
694 @c 
695 @c - -----------------------------------------------------
696 @c                              2 r
697 @c @end example
699 @opencatbox
700 @category{Differential calculus}
701 @category{Package ctensor}
702 @closecatbox
703 @end deffn
705 @c -----------------------------------------------------------------------------
706 @anchor{express}
707 @deffn {関数} express (@var{expr})
709 @c HERE IS THE PREVIOUS TEXT. WHAT IS THE POINT ABOUT depends ?? I'M NOT GETTING IT
710 @c The result uses the noun form of any
711 @c derivatives arising from expansion of the vector differential
712 @c operators.  To force evaluation of these derivatives, the built-in @code{ev}
713 @c function can be used together with the @code{diff} evflag, after using the
714 @c built-in @code{depends} function to establish any new implicit dependencies.
716 微分演算子名詞を偏微分を使った式に展開します。
717 @code{express}は、演算子@code{grad}, @code{div}, @code{curl}, @code{laplacian}を
718 認識します。
719 @code{express}は、外積@code{~}も展開します。
721 expressの戻り値の中のシンボリックな導関数(すなわち、@code{diff}名詞)は、
722 @code{ev}関数コールまたはコマンドラインに@code{diff}を含むことによって、評価されることができます。
723 この文脈では、@code{diff}は@code{evfun}として振る舞います。
725 @code{load ("vect")}はこの関数をロードします。
726 @c IN POINT OF FACT, express IS A SIMPLIFICATION RULE, AND express1 IS THE FCN WHICH DOES ALL THE WORK
728 例:
730 @c GENERATED FROM THE FOLLOWING
731 @c load ("vect")$
732 @c grad (x^2 + y^2 + z^2);
733 @c express (%);
734 @c ev (%, diff);
735 @c div ([x^2, y^2, z^2]);
736 @c express (%);
737 @c ev (%, diff);
738 @c curl ([x^2, y^2, z^2]);
739 @c express (%);
740 @c ev (%, diff);
741 @c laplacian (x^2 * y^2 * z^2);
742 @c express (%);
743 @c ev (%, diff);
744 @c [a, b, c] ~ [x, y, z];
745 @c express (%);
746 @example
747 (%i1) load ("vect")$
748 (%i2) grad (x^2 + y^2 + z^2);
749                               2    2    2
750 (%o2)                  grad (z  + y  + x )
751 (%i3) express (%);
752        d    2    2    2   d    2    2    2   d    2    2    2
753 (%o3) [-- (z  + y  + x ), -- (z  + y  + x ), -- (z  + y  + x )]
754        dx                 dy                 dz
755 (%i4) ev (%, diff);
756 (%o4)                    [2 x, 2 y, 2 z]
757 (%i5) div ([x^2, y^2, z^2]);
758                               2   2   2
759 (%o5)                   div [x , y , z ]
760 (%i6) express (%);
761                    d    2    d    2    d    2
762 (%o6)              -- (z ) + -- (y ) + -- (x )
763                    dz        dy        dx
764 (%i7) ev (%, diff);
765 (%o7)                    2 z + 2 y + 2 x
766 (%i8) curl ([x^2, y^2, z^2]);
767                                2   2   2
768 (%o8)                   curl [x , y , z ]
769 (%i9) express (%);
770        d    2    d    2   d    2    d    2   d    2    d    2
771 (%o9) [-- (z ) - -- (y ), -- (x ) - -- (z ), -- (y ) - -- (x )]
772        dy        dz       dz        dx       dx        dy
773 (%i10) ev (%, diff);
774 (%o10)                      [0, 0, 0]
775 (%i11) laplacian (x^2 * y^2 * z^2);
776                                   2  2  2
777 (%o11)                laplacian (x  y  z )
778 (%i12) express (%);
779          2                2                2
780         d     2  2  2    d     2  2  2    d     2  2  2
781 (%o12)  --- (x  y  z ) + --- (x  y  z ) + --- (x  y  z )
782           2                2                2
783         dz               dy               dx
784 (%i13) ev (%, diff);
785                       2  2      2  2      2  2
786 (%o13)             2 y  z  + 2 x  z  + 2 x  y
787 (%i14) [a, b, c] ~ [x, y, z];
788 (%o14)                [a, b, c] ~ [x, y, z]
789 (%i15) express (%);
790 (%o15)          [b z - c y, c x - a z, a y - b x]
791 @end example
793 @opencatbox
794 @category{Differential calculus}
795 @category{Vectors}
796 @category{Operators}
797 @closecatbox
798 @end deffn
800 @c COMMENTING OUT THIS TEXT PENDING RESOLUTION OF BUG REPORT # 836704:
801 @c "gendiff is all bugs: should be deprecated"
802 @c @defun gendiff
803 @c Sometimes @code{diff(e,x,n)} can be reduced even though N is
804 @c symbolic.
805 @c 
806 @c @example
807 @c batch("gendif")$
808 @c @end example
809 @c 
810 @c and you can try, for example,
811 @c 
812 @c @example
813 @c diff(%e^(a*x),x,q)
814 @c @end example
815 @c 
816 @c by using @code{gendiff} rather than @code{diff}.  Unevaluable
817 @c items come out quoted.  Some items are in terms of @code{genfact}, which
818 @c see.
820 @c @end defun
822 @c -----------------------------------------------------------------------------
823 @anchor{gradef}
824 @deffn  {関数} gradef (@var{f}(@var{x_1}, @dots{}, @var{x_n}), @var{g_1}, ..., @var{g_m})
825 @deffnx {関数} gradef (@var{a}, @var{x}, @var{expr})
827 関数@var{f}もしくは変数@var{a}の偏微分(すなわち、勾配の成分)を定義します。
829 @code{gradef (@var{f}(@var{x_1}, ..., @var{x_n}), @var{g_1}, ..., @var{g_m})}は、
830 @code{d@var{f}/d@var{x_i}}を@var{g_i}として定義します。
831 ここで、@var{g_i}は式です; @var{g_i}は関数コールでもあり得ますが、関数名ではありません。
832 偏微分の数@var{m}は、引数の数@var{n}よりもちいさいかもしれません。
833 その場合、微分は@var{x_1}から@var{x_m}までのみに関して定義されます。
835 @code{gradef (@var{a}, @var{x}, @var{expr})}は、
836 変数@var{a}の@var{x}に関する微分を@var{expr}と定義します。
837 これは、 (@code{depends (@var{a}, @var{x})}を介して)
838 @var{a}の@var{x}への依存性を確立もします。
840 最初の引数@code{@var{f}(@var{x_1}, ..., @var{x_n})}または@var{a}はクォートされますが、
841 残りの引数@var{g_1}, ..., @var{g_m}は評価されます。
842 @code{gradef}は偏微分が定義された関数や変数を返します。
844 @code{gradef}は、Maximaの組み込み関数の微分を再定義できます。
845 例えば、@code{gradef (sin(x), sqrt (1 - sin(x)^2))}は、
846 @code{sin}の微分を再定義します。
848 @code{gradef}は、添字付き関数の偏微分を定義できません。
850 @code{printprops ([@var{f_1}, ..., @var{f_n}], gradef)}は、
851 関数@var{f_1}, ..., @var{f_n}の偏微分を
852 @code{gradef}で定義されたように、表示します。
854 @code{printprops ([@var{a_n}, ..., @var{a_n}], atomgrad)}は、
855 変数@var{a_n}, ..., @var{a_n}の偏微分を
856 @code{gradef}で定義されたように、表示します。
858 @code{gradefs}は、偏微分が@code{gradef}によって定義された
859 関数のリストです。
860 @code{gradefs}は、
861 偏微分が@code{gradef}によって定義されたいかなる変数も含みません。
863 @c REPHRASE THIS NEXT BIT
864 例えば、関数が陽に知られていないが、一階微分が知られていて、
865 高階の微分を得ることが望まれる時、勾配が必要です。
867 @c NEED EXAMPLES HERE
868 @opencatbox
869 @category{Differential calculus}
870 @category{Declarations and inferences}
871 @closecatbox
872 @end deffn
874 @c -----------------------------------------------------------------------------
875 @anchor{gradefs}
876 @defvr {システム変数} gradefs
877 デフォルト値: @code{[]}
879 @code{gradefs}は、偏微分が@code{gradef}によって定義された
880 関数のリストです。
881 @code{gradefs}は、
882 偏微分が@code{gradef}によって定義されたいかなる変数も含みません。
884 @opencatbox
885 @category{Differential calculus}
886 @category{Declarations and inferences}
887 @closecatbox
888 @end defvr
890 @c -----------------------------------------------------------------------------
891 @anchor{laplace}
892 @deffn {関数} laplace (@var{expr}, @var{t}, @var{s})
894 変数@var{t}に関するラブラス変換@var{expr}を計算し、パラメータ@var{s}に変換しようとします。
896 @code{laplace}は、
897 @var{expr}の中で、
898 @code{derivative}, @code{integrate}, @code{sum}, @code{ilt}はもちろん、
899 関数@code{delta}, @code{exp},
900 @code{log}, @code{sin}, @code{cos}, @code{sinh}, @code{cosh}, and @code{erf}
901 を認識します。
902 もし、laplaceが変換を見つけられなかったら、
903 関数@code{specint}がコールされます。
904 @code{specint}は、
905 ベッセル関数@code{bessel_j}, @code{bessel_i}, @dots{}のような
906 特殊関数を含む式のラプラス変換を見つけることができ、
907 @code{unit_step}関数を扱うことができます。
908 @code{specint}も参照してください。
910 もし@code{specint}も解を見つけられないなら、
911 名詞@code{laplace}が返されます。
913 @c REPHRASE THIS
914 @var{expr}は、従属変数の@code{atvalue}が使われる線形定数係数微分方程式であるかもしれません。
915 @c "used" -- USED HOW ??
916 要求されるatvalueは、
917 変換が計算される前か後に供給されるかもしれません。
918 初期条件がゼロで指定されなければいけないので、
919 もし他に課される境界条件を持つなら
920 一般解にそれらを課すことができ、それらに関して一般解を解き、それらの値を代入し返すことによって、
921 定数を消去できます。
923 @code{laplace}は、形式
924 @code{integrate (f(x) * g(t - x), x, 0, t)}の畳み込み積分を認識します;
925 他の種類の畳み込みは認識されません。
927 関数関係は、 @var{expr}で陽に表現されなければいけません;
928 @code{depends}で確立した暗黙の関係は認識されません。
929 例えば、もし@var{f}が@var{x}と@var{y}に依存するなら、
930 @code{f (x, y)}が@var{expr}の中に現れなければいけません。
932 逆ラプラス変換@code{ilt}も参照してください。
934 例:
936 @c GENERATED FROM THE FOLLOWING:
937 @c laplace (exp (2*t + a) * sin(t) * t, t, s);
938 @c laplace ('diff (f (x), x), x, s);
939 @c diff (diff (delta (t), t), t);
940 @c laplace (%, t, s);
941 @example
942 (%i1) laplace (exp (2*t + a) * sin(t) * t, t, s);
943                             a
944                           %e  (2 s - 4)
945 (%o1)                    ---------------
946                            2           2
947                          (s  - 4 s + 5)
948 (%i2) laplace ('diff (f (x), x), x, s);
949 (%o2)             s laplace(f(x), x, s) - f(0)
950 (%i3) diff (diff (delta (t), t), t);
951                           2
952                          d
953 (%o3)                    --- (delta(t))
954                            2
955                          dt
956 (%i4) laplace (%, t, s);
957                             !
958                d            !         2
959 (%o4)        - -- (delta(t))!      + s  - delta(0) s
960                dt           !
961                             !t = 0
962 (%i5) assume(a>0)$
963 (%i6) laplace(gamma_incomplete(a,t),t,s),gamma_expand:true;
964                                               - a - 1
965                          gamma(a)   gamma(a) s
966 (%o6)                    -------- - -----------------
967                             s            1     a
968                                         (- + 1)
969                                          s
970 (%i7) factor(laplace(gamma_incomplete(1/2,t),t,s));
971                                               s + 1
972                       sqrt(%pi) (sqrt(s) sqrt(-----) - 1)
973                                                 s
974 (%o7)                 -----------------------------------
975                                 3/2      s + 1
976                                s    sqrt(-----)
977                                            s
978 (%i8) assume(exp(%pi*s)>1)$
979 (%i9) laplace(sum((-1)^n*unit_step(t-n*%pi)*sin(t),n,0,inf),t,s),
980          simpsum;
981 @group
982                          %i                         %i
983               ------------------------ - ------------------------
984                               - %pi s                    - %pi s
985               (s + %i) (1 - %e       )   (s - %i) (1 - %e       )
986 (%o9)         ---------------------------------------------------
987                                        2
988 @end group
989 (%i9) factor(%);
990                                       %pi s
991                                     %e
992 (%o9)                   -------------------------------
993                                              %pi s
994                         (s - %i) (s + %i) (%e      - 1)
996 @end example
998 @opencatbox
999 @category{Laplace transform}
1000 @category{Differential equations}
1001 @closecatbox
1002 @end deffn