ふつう、直交という概念は図形に関していう。イメージとしては、二つの直線が交わっているとき、 そのなす角が直角であることをいう。 角度という量は数学では扱いにくいため、角度に関係する量として内積が扱われることが多くなった。 内積は図形だけでなく関数にも適用できる。具体的には次のようになる。
関数列 `phi_n(x) quad (n = 0, 1, 2 cdots) ` が 区間 `(alpha, beta) quad (-oo <= alpha < beta <= oo) ` で定義されているとする。このとき、内積`(: phi_n(x), phi_m(x) :)`を次で定義する。
`(: phi_n(x), phi_m(x) :); = int_alpha^beta phi_n(x) phi_m(x) dx`
この内積が 0 となるとき、`phi_n(x)` と `phi_m(x)` は直交するという。
また、関数列 `phi_n(x)` とある関数 `w(x)>=0` に対し、`{sqrt(w (x)) phi_n(x)}`が直交関数列をなし、
`{int_alpha^beta w(x) phi_m(x) phi_n(x) dx = 0 quad (m != n)}`
となるとき、この関数列を重み `w(x)` の直交関数列という。
一般に直交関数は係数分の不定性がある。この不定性を解消するための一つの方法として、ノルムを 1 になるように決めればよい。すなわち、
`int_alpha^beta w(x) |phi_n(x)|^2 dx = 1`
となるように決めればよい。このような `phi_n(x)` を特に正規直交関数列と呼ぶ。
なお、以下の直交関数列では係数の正規化はしていない。
直交関数列には、大別すると次のように分類される。
以下は直交多項式について述べる。
ゲーゲンバウアー多項式 `C_n^((alpha)) (x)` とは、区間 [-1,1] 上で定義される重み関数 `(1-x^2)^{alpha-1/2}` の直交多項式をいう。 この多項式は、チェビシェフ多項式や ルジャンドル多項式などを一般化した多項式として知られている。 漸化式を用いた定義は次の通りである。
`C_0^((alpha)) (x) = 1`
`C_1^((alpha)) (x) = 2 alpha x`
`C_n^((alpha)) (x) = 1/n [2x ( n + alpha - 1) C_(n-1)^((alpha)) (x) - (n + 2 alpha - 2) C_(n-2)^((alpha)) (x)]`
ここで、`alpha = 1` とした漸化式 `C_n^((1))` は、 第 2 種のチェビシェフ多項式を表す。代入してみると、実際に満たしていることがわかる。
`C_0^((1)) (x) = 1`また、`alpha = 2` とした漸化式 `C_n^((2))` を書き下すと次のようになる。
`C_0^((2)) (x) = 1`
`C_1^((2)) (x) = 4x`
`C_n^((2)) (x) = 1/n [2x (n + 1) C_(n-1)^((2)) (x) - (n + 2)C_(n-2)^((2)) (x)] `
具体的には次のようになる。
`n` | `alpha=1` | `alpha=2` |
---|---|---|
0 | `1` | 1 |
1 | `2x` | `4x` |
2 | `4x^2 - 1` | `12x^2-2` |
3 | `8x^3 - 4x` | `32x^3 - 12x` |
4 | `16x^4 - 12x^2 + 1` | `80x^4 - 48x^2 + 3` |
5 | `32x^5 - 32x^3 + 6x` | `192x^5 - 160x^3 + 24` |
また、`alpha = 1/2` とした漸化式 `C_n^((1//2))` はルジャンドル多項式となる。
上記のグラフを色分けした。左は `alpha=1` の場合、右は `alpha=2` の場合である。色と次数 `n` の関係は次の通り。 黄:`n = 0`、橙:`n = 1`、赤:`n = 2`、緑:`n = 3`、青:`n = 4`、紫:`n = 5` である。縦軸のスケールが左右で異なることに注意。
ゲーゲンバウアー多項式のさらなる一般化はヤコビ多項式として知られる。 ヤコビ多項式 `P_n^{(alpha, beta)} (x)` とは、区間 [-1,1] 上で定義される重み関数 `(1+x)^alpha(1-x)^beta (alpha, beta > -1)` の直交多項式をいう。 漸化式を用いた定義は次の通りである
`P_0^{(alpha ,beta )}(x)=1`
`P_1^{(alpha ,beta )}(x)=1/2 {(alpha+beta+2)x + (alpha - beta)}`
`(2n+1)(n+alpha +beta+1)(2n+alpha+beta)P_{n+1}^{(\alpha ,\beta )}(x)=`
`(2n+\alpha +\beta +1)
{(2n+\alpha +\beta )(2n+\alpha +\beta +2)x
+\alpha ^2-\beta ^2}
P_n^{(\alpha ,\beta )}(x)
-2(n+\alpha)(n+\beta)(2n+\alpha +\beta+2 )P_{n-1}^{(\alpha ,\beta )}(x)`
`(n = 1, 2, cdots) ` 。
数式の記述にはASCIIMathML を、表現にはMathJaxを使っている。
グラフは SVGGraph を用いている。 最初はグラフも ASCIIMathML を使っていたが、MathJax との干渉があるため使えないことがわかり、ASCIIsvg を用いたが、 こちらは最近メンテナンスされていないため、最終的に SVGGraph にした。