Wielomiany Czebyszewa definiujemy rekurencyjnie: ,
oraz
\begin{equation}(#)
T_{n+1}(x)=2xT_n(x)-T_{n-1}(x)
\end{equation}
albo ze wzoru:
\begin{equation}(#)
T_n(x)=\cos(n*\arccos(x)) \qquad x\in[-1,1].
\end{equation}
W tym rozdziale przetestujemy podstawowe własności tych wielomianów.
Funkcja octave'a ma zwrócić wartość .
Przetestuj tę funkcję dla , tzn. narysuj dwa wykresy
raz korzystając z tej funkcji oraz drugi raz korzystając wprost ze wzoru ( [link]).
obliczającą wartość wielomianu zadanego poprzez współczynniki w bazie Czebyszewa z wzoru ( [link]), tzn. parametry wejściowe funkcji
to:
takich, że
Funkcja octave'a powinna zwrócić macierz , wymiaru
z wartościami
.
Funkcja ma korzystać z wzoru rekurencyjnego ( [link]), ale jako funkcja octave'a ma być nierekurencyjna. Koszt algorytmu powinien wynosić
.
Narysuj dwa wykres
- jeden korzystając z tej funkcji oraz drugi - ze wzoru ( [link]).
oraz ze wzoru rekurencyjnego ( [link]).
Policz maksimum wartości absolutnych z różnicy między wartościami wielomianu obliczonymi obiema metodami. Porównaj czas obliczania wartości tego wielomianu obydwoma wzorami.
Powtórz testy ale dla wielomianów innych stopni, np. .
wykres wielomianów dla
. Policz dyskretną normę maksimum na siatce. Czy wynosi jeden? Policz na wykresie zera oraz ekstrema każdego z wielomianów.
Chcemy eksperymentalnie sprawdzić, czy wielomian ma minimalną normę supremum na
wśród wszystkich wielomianów postaci
.
Policz dla różnych losowych węzłów
,
z odcinka
dla
i kilkuset różnych losowych zestawów
przybliżoną normę supremum wielomianu .
Przeprowadź testy również
dla węzłów Czebyszewa (czyli zer ) oraz węzłów równoodległych dla tego samego
.
Z teorii wiadomo, że wielomian ma minimalną normę supremum na
wśród wszystkich wielomianów postaci
Chcemy sprawdzić eksperymentalnie, czy ta własność się potwierdzi.
Policz dla losowych współczynników
dla
przybliżoną normę supremum wielomianu:
Przetestuj dla i co najmniej kilku tysięcy różnych losowych zestawów
węzłów. Węzły losujemy funkcją randn()
zwracającą liczby losowe o rozkładzie normalnym.
Chcemy sprawdzić, czy dla dowolnego punktu i
wielomian
ma minimalną normę supremum na wśród wszystkich wielomianów
stopnia nie większego od
przyjmujących wartość
w punkcie
.
Policz dla losowych współczynników
z
dla
i co najmniej kilku tysięcy różnych losowych zestawów
węzłów
przybliżoną normę supremum wielomianu
i porównaj z normą supremum na
równą
(dlaczego tyle ona wynosi?).
Węzły losujemy funkcją randn()
zwracającą liczby losowe o rozkładzie normalnym.
Zapoznaj się z funkcją octave'a quad()
.
Policz całkę przy pomocy funkcji quad()
z
na
.
Napisz funkcję octave'a:
komendy octave'a
nl2=....
endfunction
która oblicza iloczyn skalarny typu z wagą
tzn.:
dla danej funkcji wagowej i funkcji
.
Parametry funkcji to:
y=......
endfunction
function y=g(x)
y=......
endfunction
obliczających odpowiednio wartości funkcji i
dla
.
y=......
endfunction
Funkcja powinna zwrócić przybliżenie iloczynu skalarnego obliczone za pomocą funkcji octave'a quad()
.
W przypadku wywołania funkcji IlSkL2()
tylko z czterema pierwszymi argumentami (tzn. bez podania wskaźnika do wagi) funkcja powinna zwrócić iloczyn skalarny z wagą .
Sprawdź eksperymentalnie w octavie, np. za pomocą funkcji quad()
lub własnej funkcji z poprzedniego zadania, czy wielomiany Czebyszewa tworzą układ ortogonalny w , tzn. czy prawdą jest, że
Sprawdź powyższe zależności dla różnych różnej wielkości np. dla
i
.