Clenshaw递推公式

数值分析中,Clenshaw递推公式 (由Charles William Clenshaw发现)是一个求切比雪夫多项式的值的递归方法。

切比雪夫多项式

N次切比雪夫多项式,是下面形式的多项式p(x)

p ( x ) = n = 0 N a n T n ( x ) {\displaystyle p(x)=\sum _{n=0}^{N}a_{n}T_{n}(x)}

其中Tnn阶切比雪夫多项式.

Clenshaw递推公式

Clenshaw递推公式可以用来计算切比雪夫多项式的值。给定

p ( x ) = n = 0 N a n T n ( x ) {\displaystyle p(x)=\sum _{n=0}^{N}a_{n}T_{n}(x)}

我们定义

b N {\displaystyle b_{N}\,\!} := a N {\displaystyle :=a_{N}\,}
b N 1 {\displaystyle b_{N-1}\,\!} := 2 x b N + a N 1 {\displaystyle :=2xb_{N}+a_{N-1}\,}
b N n {\displaystyle b_{N-n}\,\!} := 2 x b N n + 1 + a N n b N n + 2 , n = 2 , , N 1 {\displaystyle :=2xb_{N-n+1}+a_{N-n}-b_{N-n+2}\,,\;n=2,\ldots ,N-1\,}
b 0 {\displaystyle b_{0}\,\!} := x b 1 + a 0 b 2 {\displaystyle :=xb_{1}+a_{0}-b_{2}\,}

于是

p ( x ) = n = 0 N a n T n ( x ) = b 0 . {\displaystyle p(x)=\sum _{n=0}^{N}a_{n}T_{n}(x)=b_{0}.}

(注)上面的公式在 N = 0 , 1 {\displaystyle N=0,1} 的情况下无意义。 此时我们可以用下面的公式:

b N + 2 := 0 {\displaystyle b_{N+2}:=0\,}
b N + 1 := 0 {\displaystyle b_{N+1}:=0\,}
b j := 2 x b j + 1 b j + 2 + a j , j = N , , 1 {\displaystyle b_{j}:=2xb_{j+1}-b_{j+2}+a_{j}\,,\;j=N,\ldots ,1} (downward, omit if N=0)
p ( x ) := x b 1 b 2 + a 0 {\displaystyle p(x):=xb_{1}-b_{2}+a_{0}\,}
q ( x ) := 2 x b 1 b 2 + a 0 {\displaystyle q(x):=2xb_{1}-b_{2}+a_{0}\,}

这里

p ( x ) = n = 0 N a n T n ( x ) {\displaystyle p(x)=\sum _{n=0}^{N}a_{n}T_{n}(x)}

或者

q ( x ) = n = 0 N a n U n ( x ) {\displaystyle q(x)=\sum _{n=0}^{N}a_{n}U_{n}(x)}

其中 U n ( x ) {\displaystyle U_{n}(x)} 是第二类切比雪夫多项式。