級数,極限,留数

和と積
これは和 を表す:
下限が1のときは,入力しなくてよい:
反復変数iの刻み幅を2にして,奇数番の項だけが含まれるようにする:
乗積は和と同じような表現である:
Sum[f,{i,imin,imax}]
Sum[f,{i,imin,imax,di}]
di 刻みで i を増加させた和
Sum[f,{i,imin,imax},{j,jmin,jmax}]
重和
Product[f,{i,imin,imax}]
乗積
和と積
この和は,nの関数として記号的に計算される:
Wolframシステムは,無限級数に対しても厳密な結果を見出すことができる:
積分と同様に,単純な和でも,計算結果は複雑になるものがある:
この和は,標準的な数学関数では厳密に表せない:
しかし,結果の数値的な近似を得ることは可能である:
Wolfram言語には重和と重積に対応した記述法もある.ij 上の二重和は,Sum[f,{i,imin,imax},{j,jmin,jmax}]と記述する.これは,慣用的な数学表記の に対応している.なお,Wolfram言語の記述では,数学表記と同様に最も外側にある変数が最初に指定されることに注意してほしい.
これは二重和 を表す.数学表記の場合と同様に,外側の和が最初に指定されることに注意:
SumProductにおける変数の範囲の指定の仕方は,Wolfram言語全体で標準の「反復子の記述法」に従っている.この記述法は,Tableを使ったリストの作成(「数値の表を作る」)とDoループの構築(「反復処理」)を説明する際に再び登場する.
{imax}
反復処理を imax 回行う(刻みに関する指定はなし)
{i,imax}
i1imax の間で1刻みで増分
{i,imin,imax}
iiminimax1刻みで増分
{i,imin,imax,di}
iiminimaxdi 刻みで増分
{i,imin,imax},{j,jmin,jmax},
iiminimax1刻みで増分させ,各々の値において jjminjmax で増分
反復子の記述法
ベキ級数
これまで説明してきた数学的な演算操作はすべて厳密である.入力が正確であれば,厳密な結果が得られた.
しかし,場合によっては厳密な結果は必要ないかもしれない.例えば,数xが小さいときに有効な近似式を見付けるだけで十分な場合もある.
近傍において 以下の項からなるベキ級数で近似する:
Wolfram言語は,各種の数学関数に対してベキ級数展開を行うことができる:
未知の関数が与えられると,Seriesは微分係数を使いベキ級数展開する:
ベキ級数は,近似値が数値計算に対して持つ役割と同じような働き方を代数式に対して行う近似式である.Wolfram言語を使い,ベキ級数に対して演算操作を行うことができる.その際に結果として求まるベキ級数には,適切な位数,もしくは「精度次数」が常に保持される.
簡単なベキ級数を 精度で展開する:
ベキ級数に演算操作をすると,その結果はxの適切な位数までしか計算されない.
以下で,級数式が普通の式に変換される:
今度は,二乗の値が厳密に計算される:
Expandを答に適用させると11個の項からなる結果が求まる:
Series[expr,{x,x0,n}]
exprx=x0近傍で n 次以下の精度でベキ級数展開する
Normal[series]
ベキ級数から剰余項を除去し計算可能な普通の式に変換する
ベキ級数の操作
ベキ級数の展開
Series[expr,{x,x0,n}]
expr について x=x0 近傍で最高 (x-x0)n 次までベキ級数展開を行う
Series[expr,{x,x0,nx},{y,y0,ny}]
最初 y について,次に x についてベキ級数展開を行う
ベキ級数展開
近傍で までベキ級数展開する:
近傍で を級数展開する:
級数展開できない関数だと,導関数を使いシンボル的に展開形を表してくれる:
Seriesの機能は数学的にいって,関数についてテイラー(Taylor)級数を構成することにある.
近傍における関数 のテイラー級数展開は, 階の導関数 を使い,公式 に従って求められる.この公式が適用可能な式なら,Seriesを使い公式と同じ展開形が得られる(ただし,頻繁に使われる関数についてはSeriesの使うアルゴリズムの方が公式より効率よく展開処理ができる).
さらに,Seriesを使うと,標準的なテイラー級数の公式で直接カバーされない分数や負の指数部分を持つベキ級数も展開できる.
x に負のベキを持つベキ級数を展開する:
x に分数のベキを持つベキ級数を展開する:
Seriesを使えば,対数項を持つ級数でも展開できる:
もちろん,数学関数の中には,通常の意味のベキ級数の展開ができないものもある.Wolfram言語は,そのような場合を認識している.
においてが真性特異点を持つため,Seriesで級数展開は行われない:
しかし,においてはSeriesで展開可能である:
特に負のベキが現れるとき,Seriesが実際にいくつ項を生成するかで微妙な問題が生じる.
特定の次数まで取ったベキ級数と特定の精度で取った実数とを比較し類推してみると,このとき展開がどう進むか理解しやすくなる.すなわち,有限精度の実数を近似値とみなすようにベキ級数は「近似式」とみなされる.
ベキ級数を構築するためにSeriesで取られる手順は,ちょうどNにおいて実数の近似値を求めるために使われる手順によく似ている.つまり,これらの関数ではともに,展開する式が,最小な部分から有限の次数に(または,有限の桁精度に)置換され,そうすることで近似された式が評価される,という手順が取られる.例えば,項の相殺等が起ると,この手順だと指定した次数や桁精度に達しないところで展開が打ち切られる状況も起り得る.ただし,Nと異なりSeriesには,指定した次数の展開が得られるまでなるべく計算を繰り返す機能を持たせてあるので,仮に指定した次数まで展開し切れなくても,高い次数を指定しておけば十分に高い精度の展開が可能である.
Seriesで展開する.展開される式に打消し項が出るが,最終的には x3の項まで構築できる:
変数 x についてベキ級数展開をするとき,関数が具体的に x を含まないと,同オブジェクトは x から独立しているものとみなされる.このため,Seriesの構築するテイラー級数は,実はDの機能をもとに偏微分を取ることで展開が行われる.
aおよびnは,ともにxから独立しているとみなされる:
a[x]として,xへの依存を明示する:
Seriesを使い複数の変数に関してもベキ級数を展開することができる.IntegrateSumと同じように,Seriesでも,最後に指定した変数が展開操作の最初の対象になる.
Seriesの級数展開で変数が複数あると,1つの変数に関する展開が終ってから次の変数の展開が進められる.この例では,yの級数を係数としたxの級数が求まる:
ベキ級数の表し方
Wolframシステムにおけるベキ級数は,SeriesDataオブジェクトとして表される.
求まるベキ級数は項の和として出力される.最後の項O[x]はベキ乗としてある:
入力表記にしてみると,展開式が内部的にはSeriesDataオブジェクトとして扱われているのが分かる:
Wolframシステムにおいてベキ級数は通常の式の形ではなく,SeriesDataオブジェクトとして表される.そうすることで,次数や展開点がどうなっているか記録が簡単になり,ベキ級数に演算をする際に速やかに対処できる.ただし,普通に使っている限りユーザがSeriesDataオブジェクトの内部構造を知る必要はないだろう.
標準表記を出力形式に使っているとき,式がベキ級数かどうかを判別するには,O[x]項があるかどうかを確認することでできる.この項は数学の表記で一般的に使われる に相当するもので,無視された高次の項を表すのに使われる.記述上の一貫性を保つため,Wolframシステムでは無視された 次の項の代りにO[x]^n が使われ,これは数学で使う の記述に対応している.より一般的な ではないことに注意する.
入力した和の式にO[x]の項があると即座にベキ級数の形に変換される.
O[x]が式にあるので,この和の式はベキ級数に変換される:
級数オブジェクトは分数乗を含むことができる:
これは,級数の内部表現である:
級数には対数項が含まれていてもよい:
対数因子はSeriesData係数リストの中に明示的に現れる:
ベキ級数の演算
Wolfram言語では各種の演算をベキ級数に対してできる.演算が何であろうと,入力した精度に見合うだけの次数までしか式は展開されない.
の四次までの正確なベキ級数が求まる:
2乗した答もベキ級数である.精度は四次までのままである:
対数を取る.答は2xだが,やはり までしか展開しない:
有限精度実数が的確な桁数になっているか常に検査され自動調整されるように,ベキ級数の次数精度もまた自動調整される.数値計算の場合と同じように,ベキ級数の演算でも演算操作によっては次数精度が上がったり下がったりする.
までの精度でベキ級数展開する:
式がベキ級数展開されるが,までの精度しかない:
Wolfram言語では,ベキ級数の微積分も可能である.
をベキ級数展開する:
xに関し導関数を求める:
xについて積分すると,もとの級数と同じものが得られる.ただし,積分した式には違う定数項が入る:
通常の式とベキ級数の両方を含む演算操作をすると,式の方がベキ級数に吸収されるように操作が進められる.
1が自動的にベキ級数に吸収される:
x^2もまたベキ級数に吸収される:
Sin[x]を加えると,まず,Sin[x]が適切なベキ級数に展開され,次に,先のベキ級数に組み込まれる:
ベキ級数に掛け合される項も吸収される.未知数axに依存しないものとみなされる:
Wolfram言語ではさまざまな関数がベキ級数に適用可能である.ただし,適用する関数が未知のときは,記号的な答しか得られない.
fは未知な関数を表す.このため,ベキ級数には適用されず,シンボル的な答しか得られない:
ベキ級数の合成と逆関数
ベキ級数を操作するとき,級数を,合成したり逆関数が取れる一種の関数を表すものととらえると便利なことがある.
ComposeSeries[series1,series2,]
ベキ級数を合成
InverseSeries[series,x]
ベキ級数の逆関数を取る
ベキ級数の合成と逆関数
までベキ級数展開する:
のベキ級数の持つ変数 のベキ級数で置換される:
をベキ級数展開する:
方程式 について解くとき,関数 についてベキ級数が存在するのであれば,この級数を使った近似解を得ることが可能になることがよくある.このベキ級数は結局, となる逆関数 を与えていることになる.逆関数に関するベキ級数を求めることをベキ級数の復帰ともいう.
のベキ級数を例に見てみる:
級数の逆関数を取る. の級数が求まる:
これは, の直接の級数と一致する:
級数をその逆関数と合成する.すると,恒等関数が得られる:
ベキ級数の式への変換
Normal[expr]
ベキ級数を通常の式の形に変換する
ベキ級数の式への変換
Wolfram言語においてベキ級数は特殊な内部形式で表され,級数展開の次数等の属性を管理できるようになっている.
解いている問題によっては,ベキ級数を通常の式の形に変換したいことがある.式に変換するということは,数学的にいって,高次の項をすべて0とみなしベキ級数を途中で打ち切ることを意味する.
四項からなるベキ級数を生成する:
級数を二乗する.適切な項数からなる別の級数が得られる:
Normalを作用させ式に変換する.求まる式は高次の項が省略されたものである:
標準的な数式演算が可能になった:
SeriesCoefficient[series,n]
ベキ級数から n 次項の係数を抽出する
ベキ級数の係数抽出
ベキ級数から の項の係数を抽出する:
ゼロ付近での関数 のテイラー展開における項 に対する係数を与える:
ベキ級数を含む方程式の解法
LogicalExpand[series1==series2]
ベキ級数から各々対応した係数を抽出し,等しいとすることで方程式を構築する
Solve[series1==series2,{a1,a2,}]
係数についてベキ級数の方程式を解く
ベキ級数を含む方程式の解法
例に使うベキ級数を入力する:
ベキ級数を含む方程式を構築する:
LogicalExpandを作用させ,xの各ベキ乗項について一連の方程式を生成する:
係数a[i]について方程式を解く.また,Solveに直接方程式を与えても構わない:
ベキ関数を含む方程式のいくつかは,「ベキ級数の合成と逆関数」で説明したようにInverseSeriesを使って解くこともできる.
総和
Sum[expr,{n,nmin,nmax}]
nnmin から nmaxまでの式 expr の総和を計算する
総和
この式は をベキ級数展開したものと解釈される:
ベッセル(Bessel)関数が使われ和が求められる:
この和にも標準的な特殊関数が使われる:
和を取るとき一般化された超幾何関数が現れることはそれほどめずらしくない:
総和と積分の間にはいろいろと似た点がある.不定形の積分があるように,不定形の和も変数を上限指定に使うことで扱うことができる.
これは,実効的な不定形の和を形成する:
この和は不完全ガンマ関数で構成される:
今度は,ポリガンマ関数で構成される:
の逐次値から得られる式の差を取っていくともとの和が求まる:
数学の公式集にある和の式ならWolframシステムですべて求まる.不定積分でそうだったように,単純な関数を含む式からなる不定和でも,その答は複雑なものになりがちである.それでも,定積分のように,定形の和については,求まる答がもとの関数より簡単な関数で構成することが可能である.
不定形の和を取る.答が非常に複雑になってしまう:
定形の和はずっと単純である:
多少複雑な和を取ってみる:
再帰方程式の解法
文字列の n 番目の項を a[n]として表す場合には,「再帰方程式」を使ってこれが文字列の他の項とどのような関係かを指定することができる.
RSolveは再帰方程式を取り,これを解いて a[n]の明示的な式を得る.
これは単純な再帰方程式を解く:
これは解から最初の10個のa[n]の明示的な表を作る:
RSolve[eqn,a[n],n]
再帰方程式を解く
再帰方程式を解く
これは幾何級数について再帰方程式を解く:
これも同じ結果を与える:
これは再帰方程式に代数解を与える:
これはフィボナッチの再帰方程式を解く:
RSolveDSolveの離散的な相似体だと考えることができる.微分方程式を解く上で生成される多くの関数と同じ関数が,再帰方程式の記号解を求める上でも現れる.
これは階乗を一般化するガンマ関数を生成する:
この二次再帰方程式はベッセル関数について現れた:
RSolvea[1]のような項の値の明示的な指定は要求しない.DSolveと同じように,自動的に未定義の定数C[i]を導入し,一般解を与える.
これは未定義の定数1つの一般解を与える:
RSolvea[n]に線形にだけ依存するのではない方程式を解くことができる.しかし,非線形方程式の場合は複数の異なる解が与えられなければならないこともある.微分方程式の場合と同じように,再帰方程式の記号解を求めるのは難しく,標準的な数学関数は限られたケースしか扱わない.
これは非線形再帰方程式の一般解である:
これは2つの異なる解を与える:
RSolve の引数の違いが整数で表せる常「微分方程式」ばかりでなく, の引数が乗数的因子と関連する「 階差分方程式」も解くことができる.
これは階乗方程式の 差分バージョンを解く:
これは二階の 差分方程式である:
RSolve[{eqn1,eqn2,},{a1[n],a2[n],},n]
再帰方程式の対になった系を解く
再帰方程式系を解く
これは二対の再帰方程式の系を解く:
RSolve[eqns,a[n1,n2,],{n1,n2,}]
偏再帰方程式を解く
偏再帰方程式を解く
複数の変数を持つ関数を含む偏微分方程式が設定できるように,多次元の文字列を含む偏再帰方程式を設定することもできる.微分方程式におけるのと同じように,偏再帰方程式の一般解は未定義の関数を含むことができる.
これは単純な偏再帰方程式の一般解を与える:
極限を求める
計算を進めていくと,変数が特定の値を取り,式を評価する必要が出てくる.その多くの場合には,単に置換演算子/.を使い変換規則を適用することで対処できる.
が0のときのの値を求めるには,単に を0におけばよい:
ところが,場合によっては特別な配慮をしなければならないときがある.
例えば,のときのの値を考えてみよう.単純に を0に置き換えると答は不定,つまり,になってしまう.の点におけるの正しい値を求めるには極限を取らなければならない.
Limit[expr,x->x0]
exprxx0に接近していったときの極限を求める
極限を求める
のときのの極限を求める.正確な値が求まる:
この式には有限の極限値が存在しない:
をベキ級数に展開できなくても,Limitでその極限は求まる:
この例でも同じことが言える:
Sign[x]での値は0
しかし,極限値は1である.極限はデフォルトで上から取られる:
ある点についてすべての関数が極限を持っているとは限らない.例えば,関数の近傍で激しく振動するため,定まった極限を持たない.とはいうものの, が実数である限り の近傍における関数の値は必ずからの範囲にある.極限がある有限の幅の中を動くとき,LimitIntervalを使ってその区間を示す.Interval[{xmin,xmax}]は,不確定な極限の値が から の間にあることを示す.
Limitを作用させるとIntervalオブジェクトが返ってくる.同オブジェクトは真性特異点である 近傍においてが取り得る値の範囲を表している:
Intervalオブジェクトには演算操作が行える:
Intervalオブジェクトが使われ極限がシンボル的に表される:
関数によっては,どの方向から接近していくかにより極限が異なるものがある.LimitにオプションDirectionの設定を行うことで,方向が指定できる.
Limit[expr,x->x0,Direction->1]
xx0に下から接近したときの極限を求める
Limit[expr,x->x0,Direction->-1]
xx0 に上から接近したときの極限を求める
接近方向と極限
に左から接近するか右から接近するかにより は異なる極限を持つ:
下から接近すると極限はになる:
上から接近すると極限はである:
f[x]等の未知の関数に対してLimitを適用しても,関数の特性が判明していないため,Limitはシンボル的な関数の形に留められ,評価は行われない.
fが未知なため,Limitは未評価のまま残される:
留数
Limit[expr,x->x0] とすると,xx0 に接近したときの式 expr の値が求められる.この値が無限大になる場合,xx0 のときの expr の留数を求めた方が便利なことがよくある.留数は,expr を点 x0 でベキ級数展開したときに得られる の項の係数で与えられる.
Residue[expr,{x,x0}]
xx0 のときの式 expr の留数を求める
留数
この留数は1に等しい:
この留数は0である:
留数は,無限の点で計算することができる:
パデ(Padé)近似
パデ近似はテーラー多項式を一般化したものと考えられる有理関数である.有理関数は多項式の比である.有理関数には基礎演算しか使われないので,数値的評価が非常に簡単である.分母多項式を使うと,有理特異点を持つ関数を近似することができる.
PadeApproximant[f,{x,x0,{n,m}}]
中心 x0で次数(n,m) のパデ近似を返す
PadeApproximant[f,{x,x0,n}]
中心 x0で次数 n の対角パデ近似を返す
パデ近似
より正確に言うと,正則点あるいは極 における次数の解析関数 のパデ近似は有理関数 である.ここで は次数 の多項式,は次数 の多項式であり,点 付近の の形式的ベキ級数は項から始まる.もし に等しければ,近似は次数 の対角パデ近似と呼ばれる.
における次数へのパデ近似である:
同じ次数の別のパデ近似である:
この級数の初項は消える.これがパデ近似の特徴である:
近似と実際の関数との差をプロットしたものである.展開の中心部では非常によい近似となっているが,中心から遠ざかるに連れて誤差が急速に拡大する点に注目:
Wolfram言語では,PadeApproximantは分岐点付近での展開を許すよう一般化されている.
付近における一般化された有理関数への次数の対角パデ近似を返す:
分岐点 における有理関数の対数への次数の対角パデ近似を返す:
関数の級数展開は次数までの対角パデ近似に一致する: