アフィリエイト広告を利用しています

2015年11月25日

Excel VBA チェビシェフ多項式 Chebyshev polynomials

 数ある直交多項式の中でも、第1種チェビシェフ多項式は扱いやすい関数です:

Tn(x) = cos(n・arccosx)

 n は整数です。負の値でも構いませんが定義から

T−n(x) = Tn(x)

が成り立ちます。 arccosx は逆三角関数です。逆三角関数に馴染みのない人のために簡単に説明しておくと、

y = arccos(x) ⇔ x = cos(y)

という関係があります。高校数学で「 cosθ = a となるようなθ」のような書き方をすることがあると思いますが、それを逆三角関数を使って

θ = arccos(a)

のように表すわけです。 a には cosθ のとりうる範囲しか指定できないはずですから、逆三角関数の定義域は [−1,1] と極めて限定された範囲となります。また、

cos(arccos(a)) = a

です。第1種チェビシェフ多項式は cosx の倍角公式そのものです。たとえば n = 2 のとき、

T2(x) = cos(2arccosx) = 2cos2(arccosx) − 1

のように展開することができます。cos(arccosx) = x ですから、

T2(x) = 2x2−1

というように2次関数となります。チェビシェフ多項式は

Tn + 1(x) = 2xTn(x) − Tn−1(x)

という漸化式を満たすので、T0(x), T1(x) から順番に次の関数を得ていくほうが簡単です。

T0(x) から T3(x)グラフに描いてみます:

 チェビシェフ多項式t0-t3.png

 T0(x), T1(x), T2(x), T3(x) はそれぞれ直線、1次関数、2次関数、3次関数となっていますね。ただし、定義域が [−1, 1] の非常に狭い範囲に限定されていることに注意してください。

 実はチェビシェフ多項式の集合 {Tn(x)} はそれ自身が直交系をなすわけではありませんが、 Tn(x) を 1 − x2 の 4 乗根で割った関数が互いに直交し、さらに pi / 2 で割ると正規直交系を作り出します。つまり次のような式が成り立っています。

チェビシェフ多項式

第1種チェビシェフ多項式の応用

 Tn(x) を用いて合成関数を作るときは、x の中に入れる関数 f(x) の値域(すなわち Tn(x) の定義域)に [−1, 1] という制限がかかります。たとえば f(x) = exp(x) のような形で T1(x) の中に放り込んでしまうと、exp(1) = 2.718 などの値が生じて T1(2.718) はたちまちエラーを返します(arccos2.718 が計算不能なことに起因します)。
 そうした場合は exp(x) の値域が [−1, 1] の中に入るように改めて x の定義域を決め直さなければなりません。もちろん面白いグラフを探そうと思うなら、そういう手間を惜しんではなりません。ちょっと試みてみましょう。 f(x) = exp(x) は f > 0 の単調増加関数ですから、新しい定義域は exp(x) → 0 となる x → −∞ から、exp(x) = 1 となる x = 0 まで、すなわち (−∞, 1] となります(左側は開区間)。
 T3(expx), T5(expx), T7(expx) をまとめて描いてみます:

 チェビシェフ多項式x⇒expx.png

 すべて x → −∞ で 0 に、 x → 0 で 1 に収束します。番号 n が増えるほど波の数が多くなりますが、波は原点付近で圧縮されていきます。

第1種チェビシェフ多項式の拡大定義

 チェビシェフ多項式は n が整数で定義されていますが、 n を実数 ν(ニューと読みます) に拡大することは簡単です:

Tν(x) = cos(ν・arccosx)

 ただし、この場合はもはや多項式の形に書くことはできなくなります。漸化式もありません。グラフを解析するには上の式を使うしかないので手計算は大変ですが、 Excel を使えば別にどうということもありません。ν = 1 から 2.2 まで少しずつ変化させたグラフを載せてみます:

 チェビシェフ多項式拡大定義.png

直線が少しずつたわむようにして2次関数へと変化し、そこからまた左上の先端が曲げられて3次関数へと変化していく様子が見てとれます。このような性質は n を実数へ拡大してみて初めてわかります。

 チェビシェフ多項式は変数 x を xk ( k は正整数)という形に変えても、定義域 [−1, 1] をそのまま使えます。拡大定義された関数で ν = 2.5, 3.5, 4.5, 5.5 のグラフを描くとこうなります:

 チェビシェフ多項式拡大m+1d2.png

 グラフは大きく2つのタイプに分けられますね。

  ν = 2m + 1 / 2 のときは Tν(0) = −pi / 2
  ν = 2m + 3 / 2 のときは Tν(0) = pi / 2

というように、原点でとりうる値が2種類あります。

第 2 種チェビシェフ多項式

 第 2 種チェビシェフ多項式は次のように定義されます。

第 2 種チェビシェフ多項式

 x = cosθ とおけば、

第 2 種チェビシェフ多項式2

という形で表されます。Un(x) は 漸化式

Un + 1(x) = 2xUn(x) − Un − 1(x)

を満たすので、 U0, U1 がわかれば n = 3 以降は簡単に表式を求めることができます:

   U0(x) = 1
   U1(x) = 2x
   U2(x) = 4x2 − 1
   U3(x) = 8x3 − 4x
   ・・・・・・・・・

 それでは Excel のグラフで描いてみます:

第2種チェビシェフ多項式u0-u3.png

 第 1 種チェビシェフ多項式とよく似た関数系ですね。しかし、第 1 種チェビシェフ多項式が −1 ≦ x, Tn(x) ≦ 1 を満たしていたのに対して、第 2 種チェビシェフ多項式の場合は x に関しては −1 ≦ x ≦ 1 ですが、Un(x) の値に関しては制限がありません。 n が大きくなると狭い定義域の中で非常に大きな値域をとるようになります。たとえば n = 11 としてみると・・・・・・

U11(x).gif


 両端で U11(±) = 12 という値をとります。両端の値と番号 n の間には、

Un(±1) = n + 1

という関係があります。ちなみに端点は最初の三角関数を用いた定義式では分母が 0 になるので、 x → ±1 の極限値で定義されることに注意してください。多項式の形では普通に ±1 の値を代入すれば簡単です。

 Un(x) は Tn(x) と次のような形で関連づけられています。

Tn′(x) = n・Un−1(x)

 つまり、 Tn(x) の任意の点における傾きが n・Un−1(x) で与えられるわけです。 Tn(x) が3次関数であれば、その導関数は2次関数ですから、n は1つずれる形になっています。

第 2 種チェビシェフ多項式の応用

 第 1 種のときと同じように、n を実数に拡大定義してみます:

第 2 種チェビシェフ多項式を実数に拡大定義

そして n = 0 から 冢 = 0.2 刻みで n = 1 まで変化させてみます:

第2種チェビシェフ多項式拡大.png

 変遷過程のグラフ( n = 0.2, 0.4, 0.6, 0.8 )は直線 y = U1(x) を左端で大きく折り曲げたような形になっています。全て x → −1 で −∞ に発散する関数です。
 

第 1 種チェビシェフ多項式


関数名:CHEBT
Function CHEBT(n As Double, x As Double) As Double
  CHEBT = Cos(n * WorksheetFunction.Acos(x))
End Function

 CHEBT 関数は、"=CHEBT(n, x)" の形式で入力します。n, x ともに倍精度実数型(double)で指定します。一般に n は整数を指定しますが、CHEBT 関数は n が実数をとれるように拡大定義されています。 x は −1 〜 1 の範囲で指定してください。それ以外の数を指定するとエラーが返されます。

何となくの数学日記@

 第 1 種チェビシェフ多項式は、大学入試問題の素材としてよく使われているようです。それだけ扱いやすい多項式ということなのでしょう。しかしその内容はただの計算問題になってしまっていて、残念ながらそこにチェビシェフ多項式の本質を見ることはできません。チェビシェフさんも生きていたら「こんなんじゃないわい」と眉をひそめるかもしれません・・・・・・。色々なグラフを書いてみたり、多項式を使って関数を近似してみたりしないと、直交多項式というものはなかなかその本質が見えてきません。

何となくの数学日記A

 五島軒のベルギーチョコレートケーキを取り寄せて美味しくいただきました。こばとちゃん風に言うと「ひゃああ」と驚くほどの美味しさです(別にこばとちゃん風に言う必要もないですが)。私が舌鼓をうっていると飼い猫の "にゃもちゃん" もケーキを食べたがって寄って来ました。でも甘いものは虫歯になってしまうし、身体に良くないので、ケーキをあげることはできません。にゃもちゃんはとても悲しそうな顔をします。それがちょっと辛いですね・・・・・・。

何となくの数学日記B

 漫画原作の「孤独のグルメ」(現在シーズン 5 です!)というドラマをかかさず観ています。主人公の井之頭五郎というおじさんが、ひと仕事終えてから旨そうな店を探して、そこで(迷いながら)色々な物を注文して食べまくる、というただそれだけのドラマなのですが、これがまた実に面白いのです。エンディングに流れる「ゴロー、ゴロー、イノガシラ♪」という曲も好きですね。何だか心が和みます。まだ観たことない人はぜひ1度観てください。
   
posted by Blog Cat at 04:27 | Comment(0) | TrackBack(0) | n次関数
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/4451933
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
Excel VBA 数学教室
数学問題集(解答付き)
下剋上算数
ベクトル解析
サッカーマティクス
Excelで学ぶ統計解析
和算的思考力
学び直し
整数論の理論と演習
大人が手こずる算数
東大生の知恵袋
フーリエ変換
インド式秒算術
Excelで学ぶ微分積分
Excel 数学シミュレーション
オイラーの贈物


ファン
最新記事
カテゴリーアーカイブ