Could do with some help here from mathematicians! If you can help me I'll wish you a VERY good New Year!

Sorry about mixed spelling- I can't type the more economical Cyrillic, and at least two spellings are regularly used...

**Code:**Chebyshev coefficients is a draft programming task.
Chebyshev coefficients are the basis of polynomial approximations of functions.
Write a program to generate Chebyshev coefficients.
Calculate coefficients: cosine function, 10 coefficients, interval 0 1

__Rosetta Code__

I'm familiar with Fourier- you can break any waveform down into a series of sin/cos terms and reassemble.

Chebyshev is similar- you can do the same with the (orthogonal) Tchebyshev functions. It gives better approximation near the end points, and can generate an equivalent series of power terms which will be fast to compute.

I've written code that does the analysis/synthesis across the range of -1 <x <1.

But I don't UNDERSTAND some of it!

Anyone able to comment or provide a GOOD reference? RC comment page points to confusion about the task. Googling has given me a lot, but tends to go straight to coding in Mathematica...

My code works but is in wrong range, and the constants differ from RC!!

**Code:** nomainwin
' use only up to first 8 Tchebyshev terms ( 0 to 7)
n =200
global pi: pi =4 *atn( 1)
for c =0 to 7
c( c) =0
for k =0 to n
xk =cos( ( ( 2 *k +1) /(2 *( n +1))) *pi)
if c =0 then
c( c) =c( c) +( 1 /( n +1)) *funcn( xk)
else
c( c) =c( c) +( 2 /( n +1)) *funcn( xk) *Tchebyshev( c, xk)
end if
next k
'print using( "##.####", c( c))
next c
print
WindowWidth =840
WindowHeight =460
open "Tchebyshev" for graphics_nsb as #wg
#wg "trapclose quit"
#wg "down ; fill darkblue"
#wg "color white"
for h =0 to 9
if h =4 then #wg "size 2" else #wg "size 1"
#wg "up ; goto 0 "; 10 +50 *h; " ; down ; goto 420 "; 10 +50 *h
next h
for v =0 to 2
if v =1 then #wg "size 2" else #wg "size 1"
#wg "up ; goto "; 10 +200 *v; " 0 ; down ; goto "; 10 +200 *v; " 420"
next v
for x =-1 to 1 step 0.005
print using( "##.##", x), using( "##.####",funcn( x)),
#wg "color 255 255 0 ; set "; int( ( x +1) *200 +10); " "; int( 210 -funcn( x) *50)
t =0
for c =0 to 7
t =t +c( c) *Tchebyshev( c, x)
next c
print using( "##.####", t)
#wg "color 255 0 255 ; set "; int( ( x +1) *200 +10); " "; int( 210 -t *50)
next x
#wg "color white ; backcolor darkblue"
for i =0 to 7
#wg "up ; goto 450 "; 50 +i *20
#wg "down"
#wg "\"; i; " "; c( i)
next i
wait'_____________________________________________________________________
function Tchebyshev( n, x)
select case
case x >1
Tchebyshev =cosh( n *arcCosh( x))
case x <-1
Tchebyshev =cos( n *arcCosh( x))
case ( ( x >=-1) and ( x <=1))
Tchebyshev =cos( n *acs( x))
end select
end function
function cosh( x)
cosh =0.5 *( exp( x) +exp( 0 -x))
end function
function arcCosh( x)
if x >1 then arcCosh =log( x +( x^2 -1)^0.5)
end function
sub quit h$
close #wg
end
end sub
sub delay t
timer t *1000, [o]
wait
[o]
timer 0
end sub
function funcn( x)
funcn =cos( x)
'funcn4 *sin( x)^2
'funcn =exp( x) ' 1.2661 1.1302 0.2715 0.0443 is expected
'funcn =4 *x^2
'funcn =4 *sin( pi *x)
end function