Exercise3.60の考え方

Exercise3.60
With power series represented as streams of coefficients as in exercise 3.59, adding series is implemented by add-streams. Complete the definition of the following procedure for multiplying series:
(define (mul-series s1 s2)
   (cons-stream <??> (add-streams <??> <??>)))
You can test your procedure by verifying that sin^2 x + cos^2 x = 1, using the series from exercise 3.59

練習問題3.59での係数のストリームで表現されたベキ級数があるとして、級数の加法はadd-streamsによって実装できる。級数の積に対応する、以下の手続きの定義を補完せよ。
(define (mul-series s1 s2)
   (cons-stream <??> (add-stream <??> <??>)))
あなたは、練習問題3.59の級数を使い、sin^2 x + cos^2 x = 1を実証することによって、プロシージャのテストをすることができる。

上記の問題を解く考え方を以下に記す。
級数s1,s2をそれぞれ
s1 = a0 + a1*x + a2*x^2 +...
s2 = b0 + b1*x + b2*x^2 +...
とする。級数の積s1*s2は一般的に計算が非常に大変。
そこで、線型代数を使って、2次形式の考え方を適用して解くことにする。
まず、s1,s2およびs1*s2を次のように書き直す。

これにより、s1*s2の行列表示が得られた。これについて考えると簡単。
上図のように、斜めの成分の和がそれぞれs1*s2級数の係数になっている。
これを求めればよい、というわけで、以下のようになる。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2008年08月16日 08:29
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。