第 9 章 多項式について
10.3 級数展開に関連する函数
deftaylor
deftaylor(func,exp)
任意の1変数函数funcに対し,0の近傍に於ける)aylor級数としてexpを定めます. expはその 変数の多項式やsum函数を用いたものでも構いません.deftaylorで与えられた情報を表示する為に powerseries(f(x),x,0)が使えます.
(%i1) deftaylor (f(x), x^2 + sum(x^i/(2^i*i!^2), i, 4, inf));
(%o1) [f]
(%i2) powerseries (f(x), x, 0);
inf
==== i1
\ x 2
(%o2) > --- + x
/ i1 2
==== 2 i1!
i1 = 4
(%i3) taylor (exp (sqrt (f(x))), x, 0, 4);
2 3 4
x 3073 x 12817 x
(%o3)/t/ 1 + x + -- + --- + --- + . . .
2 18432 307200
niceindices
niceindices (h式i)
h式iを取り,和と積の全ての添数を変更して幾らかより判り易いものに変更する. 添数としてi が使え,iが内部式で用いられていれば,ちゃんとした添数を見つけるまでj,k,l,m,n,i0,i1,i2,i3,i4,· · · の順で添字を振って行きます.
nusum
nusum (h式i,h変数i,hlowi,hhighi)
R.W.Gosperによる決定手順を用いたh変数iに対するh式iの不定和を計算します.h式iと潜 在的な解はn次の羃乗,階乗,二項係数,そして有理函数の積として表現可能なものでなければなり ません.尚,ここでは定和と不定和という言葉を定積分と不定積分の類似として用いています.不定 和を取るとは,変数の複数の区間,例えば0からinfへと云ったものではなく,その上での和に対す る近い公式を与える事を意味します.その為,二項級数の一般的な部分和に対し,公式が存在しない ので,nusumは使えません.
94 第10章 級数について pade
pade(htaylor級数i,h分子の上限の次数i,h分母の上限の次数i) 有理函数のリストを返します.
この有理函数はtaylor展開で分子と分母の次数の和がtaylor級数展開の切捨て水準以下のもの となっています.即ち,返却される有理函数はあくまでも与えられたtaylor展開の有理函数による 最上の近似で,指定した次数の上限を満すものになります.
最初の引数は単変数のtaylor級数,第二と第三の引数は正整数であり,近似有理函数の分子と分 母の次数の上限を定めます.
尚,padeの最初の引数はlaurent級数でも構いません.この場合,総次数が羃級数の長さ以下の全 ての有理函数が返されます.尚,ここでの
h総次数 >=<分子の次数>+<分母の次数i羃級数の長さ=切捨ての水準+1-min(0,級数の
次数)
となります.
(c15) ff:taylor(1+x+x^2+x^3,x,0,3);
2 3
(d15)/t/ 1 + x + x + x + . . .
(c16) pade(ff,1,1);
1
(d16) [- ---]
x - 1 (c1) ff:taylor(-(83787*x^10-45552*x^9-187296*x^8
+387072*x^7+86016*x^6-1507328*x^5 +1966080*x^4+4194304*x^3-25165824*x^2 +67108864*x-134217728)
/134217728,x,0,10);
(c25) pade(ff,4,4);
(d25) []
この羃級数表現では分子/分母の次数が4の有理函数を持たない.一般的に,未知係数を解く為に 十分なだけの分子と分母の次数が,少なくとも足し合わせて羃級数の次数に到達するものを持って いなければならない.
(c26) pade(ff,5,5);
(d26) [-(520256329*x^5-96719020632*x^4-489651410240*x^3 -1619100813312*x^2 -2176885157888*x-2386516803584) /(47041365435*x^5+381702613848*x^4+1360678489152*x^3
+2856700692480*x^2
+3370143559680*x+2386516803584)]
powerseries
powerseries (h式i,h変数i,h点i)h点i(無限の場合はinf)の近傍で,h変数iに対するh式iの 一般的な級数展開を生成します.尚,powerseriesで式を展開出来なければ,taylor函数で級数の最初 の幾つかの項を求められるかもしれません.
尚,verboseをtrueにしていると,以下の様な進行状況が表示されます.
(c1) verbose:true$
(c2) powerseries(log(sin(x)/x),x,0);
can’t expand
log(sin(x)) so we’ll try again after applying the rule:
d
/ -- (sin(x)) [ dx
log(sin(x)) = i --- dx ] sin(x) /
in the first simplification we have returned:
/ [
i cot(x) dx - log(x) ]
/ inf
==== i1 2 i1 2 i1
\ (- 1) 2 bern(2 i1) x
>
---/ i1 (2 i1)!
====
i1 = 1
(d2) ---2
revertとrevert2 revert (h式i,h変数i)
revert2(h式i,h変数i,h次数i)
taylor級数からh式iを多項式で復元します.h変数iはtaylor展開で用いた変数で,0の近傍での
taylor展開に対してのみに使えます.
96 第10章 級数について
revertではtaylor級数の表示されている項を最高次数とする多項式に纏めてしまいますが,revert2
では表示されていなくても,指定したh次数iを越えない多項式に纏めます.
これら函数を利用したければ,予めload(revert)を実行しておく必要があります.
(%i39) load("revert");
(%o39) /usr/local/share/Maxima/5.9.2/share/calculus/revert.mac (%i40) t1:taylor(sin(x),x,0,5);
3 5
x x
(%o40)/t/ x - -- + --- + . . .
6 120
(%i41) revert(t1,x);
5 3
9 x + 20 x + 120 x
(%o41)/R/
---120 (%i42) revert2(t1,x,10);
9 7 5 3
779 x 2 x 3 x x
(%o42) --- + ---- + ---- + -- + x
25920 45 40 6
taylor
taylor (h式i,h変数i,h点i,h次数i)
h式iをh点iの近傍でh変数iのtaylor級数(必要であればlaurent級数)として展開します.
(h式i−h点i)h次数iまでの項が生成されます.ここで,h式iがf(h変数i)/g(h変数i)の型で,g(h変 数i)にh次数iに達する項が無い場合,taylorはg(h変数i)を次数2∗ h次数iまで展開しようとし ます.
非零の項がまだ存在し,変数taylordepthの値がnであれば, (h次数i ∗2)nに達する迄,g(h変数i) の展開の次数を倍にします.
taylor(h式i,[h変数1i,h点1i,h次数1i],[h変数2i,h点2i,h次数2i],· · ·)はh点iiの近傍でh変数ii のh次数iiで切り捨てられた羃級数を返します.
taylor(h式i,[h変数1i,h変数2i,· · ·],h点i,h次数i).
ここで,h点iとh次数iは変数のリストに対応するリストで置換えても構いません.つまり,各リ ストのn番目の項目は互いに関連するものとなります.
taylor(h式i,[h変数i,h点i,h次数i,hasympi])は(h変数i − h点i)の負の羃による式の展開を 与えます.最も高い次数の項は(h変数i − h点i)−h次数iとなります. asympは構文指定で変更が効 きません.尚,展開の制御は大域変数のtaylor logexpandが効力を持ちます.
• maxtayorderがtrueであれば,(切捨てられた)taylor級数の代数操作中に, taylorは正確にな
る様に可能な限りの多くの項を保持しようとします.
• psexpandがtrueであれば,展開した有理函数式を広く展開したものを表示します.(ratexpand
もこの処理を行います).falseであれば,多変数式が有理函数パッケージ内部で表示されます.
• psexpand:multiであれば,全次数がnの変数の項で互いにグループ化されます.
taylorinfo
taylorinfo (h式i)
h式iがtaylor級数で無ければfalseを返します. taylor級数であれば,taylor展開の項を記述す るリストのリストが返されます.
(%i10) taylor((1-y)/(1-x),x,0,4,[y,a,inf]);
(%o10)/T/ 1 - a - (y - a) + (1 - a - (y - a)) x 2 + (1 - a - (y - a)) x
3 + (1 - a - (y - a)) x
4
+ (1 - a - (y - a)) x + . . . (%i11) taylorinfo(%o10);
(%o11) [[y, a, inf], [x, 0, 4]]
taylorp
taylorp(h式i)
述語函数であり,h式iがtaylor級数表現である時に限ってtrueを返します.
taylor simplifier taylor simplifier
一引数の函数で,その引数はtaylorが羃級数の係数の簡易化で用いられます.
taytorat
taytorat (h式i)
h式iをtaylor形式からCRE表現に変換します.つまり,rat(ratdisprep(exp))に似ていますが処 理はより速いものになります.
(%i1) exp2:taylor(sin(x),x,0,10);
3 5 7 9
x x x x
(%o1)/T/ x - -- + --- - ---- + --- + . . .
98 第10章 級数について 6 120 5040 362880
(%i2) exp3:taytorat(exp2);
9 7 5 3
x - 72 x + 3024 x - 60480 x + 362880 x (%o2)/R/
---362880 (%i3) :lisp $exp2;
((MRAT SIMP (((%SIN SIMP) $X) $X) (sin(x)13183 X13184) (($X ((10 . 1)) 0 NIL X13184 . 2)) TRUNC)
PS (X13184 . 2) ((10 . 1)) ((1 . 1) 1 . 1)
((3 . 1) -1 . 6) ((5 . 1) 1 . 120)
((7 . 1) -1 . 5040) ((9 . 1) 1 . 362880)) (%i3) :lisp $exp3;
((MRAT SIMP (((%SIN SIMP) $X) $X) (sin(x)13183 X13184)) (X13184 9 1 7 -72 5 3024 3 -60480 1 362880) . 362880)
この例で示す様に,ラベルが/T/から/R/に変化している事に注意して下さい. 又,内部表現も,CRE 表現に似たTaylor級数展開から,Xの多項式のCRE表現に変換されている事にも注目して下さい.
trunc
trunc (h式i)
一般表現のh式iを切詰めたtaylor級数であるかの様に表示します.
(c155) exp1:x^2+x+1;
2
(d155) x + x + 1
(c156) exp2:trunc(x^2+x+1);
2
(d156) 1 + x + x + . . .
(c157) is(exp1=exp2);
(d157) true
この例で示す様に,表示は一見異なりますが,exp1=exp2となり,データ自体に変化はありません.
unsum
unsum (h函数i,hni)
第一後退差分h函数i(hni)− h函数i(hni −1)を計算します.
(c1) g(p):=p*4^n/binomial(2*n,n);
n p 4
(d1) g(p) := ---binomial(2 n, n) (c2) g(n^4);
4 n n 4
(d2)
---binomial(2 n, n) (c3) nusum(d2,n,0,n);
4 3 2 n
2 (n + 1) (63 n + 112 n + 18 n - 22 n + 3) 4 2 (d3) -
---693 binomial(2 n, n) 3 11 7
(c4) unsum(%,n);
4 n n 4
(d4)
---binomial(2 n, n)
100 第10章 級数について (平成17年12月13日(火))