Witam,
Mam pewien problem, otóż potrzebuję znaleźć kolejne wielomiany Czebyszewa.
Wielomian Czebyszewa Tk(x) k-tego stopnia określony jest wzorem:
Tk(x) = cos ( k arccos x)
Można posłużyć się też następującymi związkami rekurencyjnymi:
T0(x) = 1
T1(x) = x
Tk+1(x)= 2x Tk(x) - Tk-1(x), k > 0
Kolejne obliczone wielomiany Czebyszewa:
T0(x) = 1
T1(x) = X
T2(X) = 2x<sup>2</sup> - 1
T3(x) = 4x<sup>3</sup> - 3x
T4(x) = 8x<sup>4</sup> - 8x<sup>2</sup> + 1
Mój problem polega na tym, że potrzebuję otrzymać wielomiany w takiej postaci jak te wyliczone powyżej.
Napisałem program, który wyznacza kolejne wielomiany rekurencyjnie, z tym, że dla konkretnych wartości, co mnie nie satysfakcjonuję.
Moglibyście podpowiedzieć mi jak to zrobić?
Niżej wklejam mój kod wyliczający rekurencyjnie kolejne wielomiany Czebyszewa dla konkretnego argumentu x.
double Funkcja::rekWielomianCzebyszewa(double x, int stopien)
{
if(stopien == 0)
return 1;
else if(stopien == 1)
return x;
else if( stopien > 1)
{
return 2.0*x*rekWielomianCzebyszewa(stopien-1,x) - rekWielomianCzebyszewa(stopien-2,x);
}
else
cout << "Stopien wielomianu nie moze byc ujemny\n";
}