例によってJ言語のボキャブラリーからの翻訳です。
t:(ティーコロン、テイラー係数)はu t. yのように使うと、動詞uのy次のテイラー系近似(Taylor series approximation)を返します。副詞tのドメインはデリバティブD.(ラージディードット)の左側ドメインと同じです。m t.の場合を参照下さい。
x u t.yは (x^y) とu t. yの積です。
f=: 1 2 1&p. NB.1+ 2x+x^2という動詞(左から右へ次数が上がる) g=: 1 3 3 1&p. NB.1+3x+3x^2+x^3 x=: 10%~i=: i.8 NB.x=0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 ]c=: (f*g) t. i NB.(1+2x+x^2)*(1+3x+3x^2+x^3) 1 5 10 10 5 1 0 0 6j2 ":(c p. x),:(f*g) x NB.c p.と(f*g)は同じ結果になる 1.00 1.61 2.49 3.71 5.38 7.59 10.49 14.20 1.00 1.61 2.49 3.71 5.38 7.59 10.49 14.20 (c p. x)=(f*g) x NB.確認 1 1 1 1 1 1 1 1 ]d=: f@g t. i NB.f g xに対応するテイラー数列 4 12 21 22 15 6 1 0 (d p. x)=(f g x) NB.確認 1 1 1 1 1 1 1 1 sin=: 1&o. NB.サイン cos=: 2&o. NB.コサイン 8j4":t=: (^ t. i),(sin t. i),:(cos t. i) 1.0000 1.0000 0.5000 0.1667 0.0417 0.0083 0.0014 0.0002 0.0000 1.0000 0.0000 _0.1667 0.0000 0.0083 0.0000 _0.0002 1.0000 0.0000 _0.5000 0.0000 0.0417 0.0000 _0.0014 0.0000 * t NB.符号をチェック 1 1 1 1 1 1 1 1 0 1 0 _1 0 1 0 _1 1 0 _1 0 1 0 _1 0 *1 t. i NB.常に1 1 0 0 0 _2.71051e_20 0 0 0
n=: 0 1&p. NB.0+x d=: 1 _1 _1&p. NB.1-x-x^2 rf=: n%d NB.x%(1-x-x^2) ]fibonacci=: rf t. i. 20 NB.rfのテイラー近似? <=違うと思う 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 2 +/\ fibonacci NB.2個ずつ足し算<=この使い方知らなかった 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 (% -. - *:) t. i.20 NB.(% -. - *:)x=> x%(-. - *:)x=>x%(1-x-x^2)=>n%d 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
*1:sin*sin)+(cos*cos