Документация Engee

Преобразование Чебышева

Здесь приводится преобразование Чебышева и обратное преобразование с точным объяснением нормализации и точек.

using FastTransforms
n = 20
20

Точки первого рода многочлены первого рода

p_1 = chebyshevpoints(Float64, n, Val(1))
f = exp.(p_1)
f̌ = chebyshevtransform(f, Val(1))
f̃ = x -> [cos(k*acos(x)) for k=0:n-1]' * f̌
f̃(0.1) ≈ exp(0.1)
true

Многочлены первого рода точки первого рода

ichebyshevtransform(f̌, Val(1)) ≈ exp.(p_1)
true

Точки второго рода многочлены первого рода

p_2 = chebyshevpoints(Float64, n, Val(2))
f = exp.(p_2)
f̌ = chebyshevtransform(f, Val(2))
f̃ = x -> [cos(k*acos(x)) for k=0:n-1]' * f̌
f̃(0.1) ≈ exp(0.1)
true

Многочлены первого рода точки второго рода

ichebyshevtransform(f̌, Val(2)) ≈ exp.(p_2)
true

Точки первого рода многочлены второго рода

p_1 = chebyshevpoints(Float64, n, Val(1))
f = exp.(p_1)
f̌ = chebyshevutransform(f, Val(1))
f̃ = x -> [sin((k+1)*acos(x))/sin(acos(x)) for k=0:n-1]' * f̌
f̃(0.1) ≈ exp(0.1)
true

Многочлены второго рода точки первого рода

ichebyshevutransform(f̌, Val(1)) ≈ exp.(p_1)
true

Точки второго рода многочлены второго рода

p_2 = chebyshevpoints(Float64, n, Val(2))[2:n-1]
f = exp.(p_2)
f̌ = chebyshevutransform(f, Val(2))
f̃ = x -> [sin((k+1)*acos(x))/sin(acos(x)) for k=0:n-3]' * f̌
f̃(0.1) ≈ exp(0.1)
true

Многочлены второго рода точки второго рода

ichebyshevutransform(f̌, Val(2)) ≈ exp.(p_2)
true