[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
18.1 Functions and Variables for Differentiation |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
2要素リストを返します。 そのリストから exprの xに関する不定積分(antiderivative)が構成できます。 式 exprは未知の関数 uとその導関数を含むかもしれません。
2要素リスト Lがantid
の戻り値だとします。
L[1] + 'integrate (L[2], x)
は
exprの xに関する不定積分です。
antid
が完全に成功した時、戻り値の二番目の要素は0です。
そうでないなら、二番目の要素は0ではなく、一番目の要素は0でないか0かです。
もし antid
が全く進展できないなら、
一番目の要素が0で、二番目は0ではないです。
load ("antid")
はこの関数をロードします。
antid
パッケージは関数 nonzeroandfreeof
と linear
も定義します。
antid
は以下のように antidiff
と関係します。
2要素リスト Lが antid
の戻り値とします。
antidiff
の戻り値は
L[1] + 'integrate (L[2], x)
に等しいです。
ここで xは積分変数です。
例:
(%i1) load ("antid")$ (%i2) expr: exp (z(x)) * diff (z(x), x) * y(x); z(x) d (%o2) y(x) %e (-- (z(x))) dx (%i3) a1: antid (expr, x, z(x)); z(x) z(x) d (%o3) [y(x) %e , - %e (-- (y(x)))] dx (%i4) a2: antidiff (expr, x, z(x)); / z(x) [ z(x) d (%o4) y(x) %e - I %e (-- (y(x))) dx ] dx / (%i5) a2 - (first (a1) + 'integrate (second (a1), x)); (%o5) 0 (%i6) antid (expr, x, y(x)); z(x) d (%o6) [0, y(x) %e (-- (z(x)))] dx (%i7) antidiff (expr, x, y(x)); / [ z(x) d (%o7) I y(x) %e (-- (z(x))) dx ] dx / |
Categories: Integral calculus
exprの xに関する不定積分(antiderivative)を返します。 式 exprは未知の関数 uとその導関数を含むかもしれません。
antidiff
が完全に成功した時、
結果の式は積分記号を含みません(すなわち integrate
名詞を含みません)。
そうでないなら、
antidiff
は部分的にまたは完全に積分記号内にある式を返します。
もし antidiff
が全く進展できないなら、戻り値はそっくり積分記号内にあります。
load ("antid")
はこの関数をロードします。
antid
パッケージは関数 nonzeroandfreeof
と linear
も定義します。
antidiff
は以下のように antid
と関係します。
2要素リスト Lが antid
の戻り値とします。
antidiff
の戻り値は
L[1] + 'integrate (L[2], x)
に等しいです。
ここで xは積分変数です。
例:
(%i1) load ("antid")$ (%i2) expr: exp (z(x)) * diff (z(x), x) * y(x); z(x) d (%o2) y(x) %e (-- (z(x))) dx (%i3) a1: antid (expr, x, z(x)); z(x) z(x) d (%o3) [y(x) %e , - %e (-- (y(x)))] dx (%i4) a2: antidiff (expr, x, z(x)); / z(x) [ z(x) d (%o4) y(x) %e - I %e (-- (y(x))) dx ] dx / (%i5) a2 - (first (a1) + 'integrate (second (a1), x)); (%o5) 0 (%i6) antid (expr, x, y(x)); z(x) d (%o6) [0, y(x) %e (-- (z(x)))] dx (%i7) antidiff (expr, x, y(x)); / [ z(x) d (%o7) I y(x) %e (-- (z(x))) dx ] dx / |
Categories: Integral calculus
等式のリスト [eqn_1, ..., eqn_n]
もしくは1つの等式 eqnの中で指定されたように値を仮定された変数を使って
式 exprを評価します。
もし値が指定される変数のいずれかに部分式が依存するけれど
指定のatvalue
がなく他の方法で評価できないなら、
at
の名詞形を返し、2次元形式で表示します。
at
は多重代入を並列に実行します。
atvalue
も参照してください。
代入を実行する他の関数に関しては subst
や ev
も参照してください。
例:
(%i1) atvalue (f(x,y), [x = 0, y = 1], a^2); 2 (%o1) a (%i2) atvalue ('diff (f(x,y), x), x = 0, 1 + y); (%o2) @2 + 1 (%i3) printprops (all, atvalue); ! d ! --- (f(@1, @2))! = @2 + 1 d@1 ! !@1 = 0 2 f(0, 1) = a (%o3) done (%i4) diff (4*f(x, y)^2 - u(x, y)^2, x); d d (%o4) 8 f(x, y) (-- (f(x, y))) - 2 u(x, y) (-- (u(x, y))) dx dx (%i5) at (%, [x = 0, y = 1]); ! 2 d ! (%o5) 16 a - 2 u(0, 1) (-- (u(x, y))! ) dx ! !x = 0, y = 1 |
Categories: Evaluation · Differential equations
atomgrad
は式のアトムの勾配プロパティです。
このプロパティは gradef
で割り当てられます。
Categories: Differential calculus
値 cを点 x = a
の exprに割り当てます。
典型的にはこのメカニズムが境界値を確立します。
exprは関数引数が明示的に現れる関数評価
f(x_1, ..., x_m)
か導関数
diff (f(x_1, ..., x_m), x_1, n_1, ..., x_n, n_m)
です。
n_iは x_iに関する微分の階数です。
等式のリスト
[x_1 = a_1, ..., x_m = a_m]
はatvalueを確立する点を与えます。
もし1変数 x_1なら、
リストとしてくくることなしに等式1つを与えます。
printprops ([f_1, f_2, ...], atvalue)
は
関数 f_1, f_2, ...
のatvalueを
atvalue
コールで指定されたように表示します。
printprops (f, atvalue)
は
1関数 fのatvalueを表示します。
printprops (all, atvalue)
は
atvaluesが定義された関数すべての atvalueを表示します。
atvaluesが表示される時、
シンボル @1
, @2
, … は
変数 x_1, x_2, …を表します。
atvalue
は引数を評価します。
atvalue
は c, atvalueそのものを返します。
例:
(%i1) atvalue (f(x,y), [x = 0, y = 1], a^2); 2 (%o1) a (%i2) atvalue ('diff (f(x,y), x), x = 0, 1 + y); (%o2) @2 + 1 (%i3) printprops (all, atvalue); ! d ! --- (f(@1, @2))! = @2 + 1 d@1 ! !@1 = 0 2 f(0, 1) = a (%o3) done (%i4) diff (4*f(x,y)^2 - u(x,y)^2, x); d d (%o4) 8 f(x, y) (-- (f(x, y))) - 2 u(x, y) (-- (u(x, y))) dx dx (%i5) at (%, [x = 0, y = 1]); ! 2 d ! (%o5) 16 a - 2 u(0, 1) (-- (u(x, y))! ) dx ! !x = 0, y = 1 |
Categories: Differential equations · Declarations and inferences
微分形式の外積代数はエリーカルタンによって開発された微分幾何の基本ツールであり、
偏微分方程式論で有用な応用があります。
cartan
パッケージは
演算子 ~
(ウェッジ積)と |
(形式とベクトルの縮約)と合わせて
関数 ext_diff
と lie_diff
を実装します。
例と一緒にこれらのコマンドの簡潔な記述を見るには demo (tensor)
を実行してください。
cartan
は F.B. EstabrookとH.D. Wahlquistによって実装されました。
Categories: Differential geometry
del (x)
は変数 xの微分を表します。
もし独立変数を指定しないなら、
diff
は del
を含む式を返します。
この場合、戻り値は「全微分」と呼ばれるものです。
例:
(%i1) diff (log (x)); del(x) (%o1) ------ x (%i2) diff (exp (x*y)); x y x y (%o2) x %e del(y) + y %e del(x) (%i3) diff (x*y*z); (%o3) x y del(z) + x z del(y) + y z del(x) |
Categories: Differential calculus
Diracのデルタ関数
今のところ、laplace
だけが delta
を知っています。
例:
(%i1) laplace (delta (t - a) * sin(b*t), t, s); Is a positive, negative, or zero? p; - a s (%o1) sin(a b) %e |
Categories: Mathematical functions · Laplace transform
変数 dependencies
は、
depends
や関数 dependencies
, gradef
が割り当てた関数依存を持つアトムのリストです。
dependencies
リストは累積的です:
depends
や dependencies
, gradef
をコールする毎に上乗せの項目を追加します。
dependencies
のデフォルト値は []
です。
関数 dependencies(f_1, …, f_n)
は f_1, …, f_nを dependencies
リストに追加します。
ここで、 f_1, …, f_nは形式 f(x_1, …, x_m)
の式であり、
x_1, …, x_mは任意の数の引数です。
dependencies(f(x_1, …, x_m))
は depends(f, [x_1, …, x_m])
と等価です。
(%i1) dependencies; (%o1) [] (%i2) depends (foo, [bar, baz]); (%o2) [foo(bar, baz)] (%i3) depends ([g, h], [a, b, c]); (%o3) [g(a, b, c), h(a, b, c)] (%i4) dependencies; (%o4) [foo(bar, baz), g(a, b, c), h(a, b, c)] (%i5) dependencies (quux (x, y), mumble (u)); (%o5) [quux(x, y), mumble(u)] (%i6) dependencies; (%o6) [foo(bar, baz), g(a, b, c), h(a, b, c), quux(x, y), mumble(u)] (%i7) remove (quux, dependency); (%o7) done (%i8) dependencies; (%o8) [foo(bar, baz), g(a, b, c), h(a, b, c), mumble(u)] |
Categories: Declarations and inferences · Global variables
導関数を計算するために変数の間の関数依存を宣言します。
宣言された依存関係がないと diff (f, x)
の結果はゼロです。
もし depends (f, x)
を宣言したら、
diff (f, x)
の結果はシンボリックな導関数(すなわち diff
名詞)です。
それぞれの引数 f_1, x_1などは、 変数や配列の名前、または名前のリストをとり得ます。 f_i (多分ただ1つの要素)のすべての要素は、 x_i (多分ただ1つの要素)のすべての要素に依存するように宣言されます。 もしいくつかの f_iが配列名だったり配列名を含むなら、 配列の要素すべては x_iに依存します。
diff
は depends
が確立した間接的依存関係を認識し、
これらの場合に連鎖規則を適用します。
remove (f, dependency)
は
fに関して宣言された依存関係すべてを取り除きます。
depends
は確立した依存関係のリストを返します。
依存関係はグローバル変数 dependencies
に追加されます。
depends
は引数を評価します。
diff
は
depends
が確立する依存関係を認識する唯一の Maximaコマンドです。
他の関数( integrate
, laplace
など)は
引数が明示的に示す依存関係だけを認識します。
例えば、integrate
は、
integrate (f(x), x)
のように陽に表現されないなら
f
の x
への依存性を認識しません。
depends(f, [x_1, …, x_n])
は dependencies(f(x_1, …, x_n))
と等価です。
(%i1) depends ([f, g], x); (%o1) [f(x), g(x)] (%i2) depends ([r, s], [u, v, w]); (%o2) [r(u, v, w), s(u, v, w)] (%i3) depends (u, t); (%o3) [u(t)] (%i4) dependencies; (%o4) [f(x), g(x), r(u, v, w), s(u, v, w), u(t)] (%i5) diff (r.s, u); dr ds (%o5) -- . s + r . -- du du |
(%i6) diff (r.s, t); dr du ds du (%o6) -- -- . s + r . -- -- du dt du dt |
(%i7) remove (r, dependency); (%o7) done (%i8) diff (r.s, t); ds du (%o8) r . -- -- du dt |
Categories: Differential calculus · Declarations and inferences
デフォルト値: false
derivabbrev
が true
の時、
シンボリックな導関数(すなわち diff
名詞)が下付き添字として表示されます。
そうでないなら導関数はライプニッツ表記 dy/dx
で表示されます。
Categories: Differential calculus · Global flags
exprに現れる独立変数 xに関する従属変数 yの微分の最高階数を返します。
例:
(%i1) 'diff (y, x, 2) + 'diff (y, z, 3) + 'diff (y, x) * x^2; 3 2 d y d y 2 dy (%o1) --- + --- + x -- 3 2 dx dz dx (%i2) derivdegree (%, y, x); (%o2) 2 |
Categories: Differential calculus · Expressions
ev
コマンド内にて示された変数に関する微分だけを生じさせます。
Categories: Differential calculus · Evaluation
デフォルト値: false
derivsubst
が true
の時、
subst (x, 'diff (y, t), 'diff (y, t, 2))
のような非構文法的代入は 'diff (x, t)
をもらします。
Categories: Differential calculus · Expressions
exprの中のすべての変数の中のいくつかに関する exprの導関数すなわち微分を返します。
diff (expr, x, n)
は
xに関する exprの n階微分を返します。
diff (expr, x_1, n_1, ..., x_m, n_m)
は
x_1, ..., x_mに関する exprの偏微分を返します。
これは diff (... (diff (expr, x_m, n_m) ...), x_1, n_1)
と同値です。
diff (expr, x)
は変数 xに関する
exprの1階微分を返します。
diff (expr)
は exprの全微分を返します。
すなわち、それぞれの変数に関する exprの微分に変数それぞれの微分
del
を掛けたものの和を返します。
del
の更なる整理は提供されません。
微分方程式を記述する時などいくつかの文脈で diff
の名詞形式が要求されます。
これらの場合、 diff
は微分が実行される代わりに名詞形式を出力するために
('diff
として)クォートされるかもしれません。
derivabbrev
が true
の時、導関数は下付き添字として表示されます。
そうでないなら、導関数はライブニツ記法の dy/dx
で表示されます。
例:
(%i1) diff (exp (f(x)), x, 2); 2 f(x) d f(x) d 2 (%o1) %e (--- (f(x))) + %e (-- (f(x))) 2 dx dx (%i2) derivabbrev: true$ (%i3) 'integrate (f(x, y), y, g(x), h(x)); h(x) / [ (%o3) I f(x, y) dy ] / g(x) (%i4) diff (%, x); h(x) / [ (%o4) I f(x, y) dy + f(x, h(x)) h(x) - f(x, g(x)) g(x) ] x x x / g(x) |
テンソルパッケージのために以下の変更が取り込まれています:
(1) exprの中の任意の添字付きオブジェクトの導関数は 追加された引数として添えられた変数 x_iを持ちます。 そして導関数の添字はすべてソートされます。
(2) x_iは 1から変数 dimension
[デフォルト値: 4]の値までの整数を取ります。
これにより、例えば [x, y, z, t]
など座標名のリストして設定されたリスト
coordinates
の x_i番目のメンバーに関する微分が実行されます。
もし coordinates
がアトムの変数にバインドされているなら、
x_iで下付き添字された変数が、微分の変数として使われます。
これにより、座標名や
X[1]
, X[2]
, …のような下付き添字付き名前の配列が使えることになります。
もし coordinates
に値が割り当てられていないなら、変数は上の(1)のように扱われます。
Categories: Differential calculus
ev
コールで evflag
として diff
が存在する時、
expr
の中で表現されたすべての微分が実行されます。
スカラーのダランベルシアンをスカラー関数 fに適用します。
load ("ctensor")
はこの関数をロードします。
Categories: Differential calculus · Package ctensor
名詞形の微分演算子を偏微分を使った式に展開します。
express
は演算子
grad
, div
, curl
, laplacian
を認識します。
express
は外積 ~
も展開します。
ev
関数コールかコマンドラインに diff
を含ませることで、
expressの戻り値の中のシンボリックな導関数(すなわち
diff
名詞)を評価することができます。
この文脈では diff
は evfun
として振る舞います。
load ("vect")
はこの関数をロードします。
例:
(%i1) load ("vect")$ (%i2) grad (x^2 + y^2 + z^2); 2 2 2 (%o2) grad (z + y + x ) (%i3) express (%); d 2 2 2 d 2 2 2 d 2 2 2 (%o3) [-- (z + y + x ), -- (z + y + x ), -- (z + y + x )] dx dy dz (%i4) ev (%, diff); (%o4) [2 x, 2 y, 2 z] (%i5) div ([x^2, y^2, z^2]); 2 2 2 (%o5) div [x , y , z ] (%i6) express (%); d 2 d 2 d 2 (%o6) -- (z ) + -- (y ) + -- (x ) dz dy dx (%i7) ev (%, diff); (%o7) 2 z + 2 y + 2 x (%i8) curl ([x^2, y^2, z^2]); 2 2 2 (%o8) curl [x , y , z ] (%i9) express (%); d 2 d 2 d 2 d 2 d 2 d 2 (%o9) [-- (z ) - -- (y ), -- (x ) - -- (z ), -- (y ) - -- (x )] dy dz dz dx dx dy (%i10) ev (%, diff); (%o10) [0, 0, 0] (%i11) laplacian (x^2 * y^2 * z^2); 2 2 2 (%o11) laplacian (x y z ) (%i12) express (%); 2 2 2 d 2 2 2 d 2 2 2 d 2 2 2 (%o12) --- (x y z ) + --- (x y z ) + --- (x y z ) 2 2 2 dz dy dx (%i13) ev (%, diff); 2 2 2 2 2 2 (%o13) 2 y z + 2 x z + 2 x y (%i14) [a, b, c] ~ [x, y, z]; (%o14) [a, b, c] ~ [x, y, z] (%i15) express (%); (%o15) [b z - c y, c x - a z, a y - b x] |
Categories: Differential calculus · Vectors · Operators
関数 fまたは変数 aの偏微分(すなわち、勾配の成分)を定義します。
gradef (f(x_1, ..., x_n), g_1, ..., g_m)
は
df/dx_i
を g_iとして定義します。
ここで g_iは式です; g_iは関数コールでもあり得ますが関数名ではありません。
偏微分の数 mは引数の数 nよりも小さいかもしれません。
その場合、微分は x_1から x_mまでのみに関して定義されます。
gradef (a, x, expr)
は変数 aの
xに関する微分を exprと定義します。
これは (depends (a, x)
を介して)
aの xへの依存性も確立します。
最初の引数 f(x_1, ..., x_n)
または
aはクォートされますが、
残りの引数 g_1, ..., g_mは評価されます。
gradef
は偏微分が定義される関数や変数を返します。
gradef
は Maximaの組み込み関数の微分を再定義できます。
例えば、gradef (sin(x), sqrt (1 - sin(x)^2))
は
sin
の微分を再定義します。
gradef
は添字付き関数の偏微分を定義できません。
printprops ([f_1, ..., f_n], gradef)
は関数
f_1, ..., f_nの偏微分を
gradef
で定義されたように表示します。
printprops ([a_n, ..., a_n], atomgrad)
は変数
a_n, ..., a_nの偏微分を
gradef
で定義されたように表示します。
gradefs
は gradef
が偏微分を定義した関数のリストです。
gradefs
は gradef
が偏微分を定義した変数は含みません。
例えば、関数は明示的は知られていませんが一階微分が知られていて、 高階の微分を得ることが望まれる時、勾配が必要とされます。
Categories: Differential calculus · Declarations and inferences
デフォルト値: []
gradefs
は gradef
が偏微分を定義した関数のリストです。
gradefs
は gradef
が偏微分を定義した変数は含みません。
Categories: Differential calculus · Declarations and inferences
変数 tに関するラブラス変換 exprを計算し、パラメータ sに変換しようとします。
laplace
は
exprの中で
derivative
, integrate
, sum
, ilt
はもちろん関数
delta
, exp
, log
, sin
, cos
, sinh
,
cosh
, erf
を認識します。
もし laplaceが変換を見つけられなかったら、
関数 specint
をコールします。
specint
はベッセル関数
bessel_j
, bessel_i
, …のような
特殊関数を含む式のラプラス変換を見つけることができ、
unit_step
関数を扱うことができます。
specint
も参照してください。
もし specint
も解を見つけられないなら、
名詞 laplace
を返します。
exprは従属変数の
atvalue
が使われている線形定数係数微分方程式であり得ます。
要求の atvalueは
変換を計算する前でも後でも供給できます。
初期条件をゼロ点で指定しなければいけないので、
もし他に課される境界条件を持つなら
一般解にそれらを課すことができます。
それらに関して一般解を解き、それらの値を代入し返すことによって定数を消去できます。
laplace
は、形式
integrate (f(x) * g(t - x), x, 0, t)
の畳み込み積分を認識します;
他の種類の畳み込みは認識されません。
関数関係は exprで明示的に表現しなければいけません;
depends
で確立した暗黙の関係は認識されません。
例えば、もし fが xと yに依存するなら、
f (x, y)
が exprの中に現れなければいけません。
逆ラプラス変換 ilt
も参照してください。
例:
(%i1) laplace (exp (2*t + a) * sin(t) * t, t, s); a %e (2 s - 4) (%o1) --------------- 2 2 (s - 4 s + 5) (%i2) laplace ('diff (f (x), x), x, s); (%o2) s laplace(f(x), x, s) - f(0) (%i3) diff (diff (delta (t), t), t); 2 d (%o3) --- (delta(t)) 2 dt (%i4) laplace (%, t, s); ! d ! 2 (%o4) - -- (delta(t))! + s - delta(0) s dt ! !t = 0 (%i5) assume(a>0)$ (%i6) laplace(gamma_incomplete(a,t),t,s),gamma_expand:true; - a - 1 gamma(a) gamma(a) s (%o6) -------- - ----------------- s 1 a (- + 1) s (%i7) factor(laplace(gamma_incomplete(1/2,t),t,s)); s + 1 sqrt(%pi) (sqrt(s) sqrt(-----) - 1) s (%o7) ----------------------------------- 3/2 s + 1 s sqrt(-----) s (%i8) assume(exp(%pi*s)>1)$ (%i9) laplace(sum((-1)^n*unit_step(t-n*%pi)*sin(t),n,0,inf),t,s), simpsum; %i %i ------------------------ - ------------------------ - %pi s - %pi s (s + %i) (1 - %e ) (s - %i) (1 - %e ) (%o9) --------------------------------------------------- 2 (%i9) factor(%); %pi s %e (%o9) ------------------------------- %pi s (s - %i) (s + %i) (%e - 1) |
Categories: Laplace transform · Differential equations
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.