On Thursday, July 23, 2020 at 11:57:01 AM UTC+2, WM wrote:
> W dniu 2020-07-23 o 02:13, bartekltg pisze:
> (...)
> >
> > I tu rodzi się pytanie, po co używać czegoś, co przybliza kiepsko,
> > a jest tak samo kosztowne obliczeniowo?
>
> Jednak chodziło mi o porównanie z funkcją trygonometryczną.
> Ewentualnie kombinacja funkcji trygonometrycznych wchodzi w grę.
Mozę od razu wielomian trygonometryczny, tempo zbieżności
jest z grubsza jak dla wielomianów (twierdzenia Jacksona).
> > Głupi wielomian 1 - x/Pi + 0.034671 x (x - Pi)^2
> > daje błąd względny ~0.0035, utrzymując własności, że
> > przybliżenie zgadza się w o i pi. Dodatkowo zgadza się pochodna
> > w Pi. Jest to prawie element optymalny wg kryterium Chebyshewa
> > (TW o alternansie) ze względu na błąd względny
> >
https://www.fotosik.pl/zdjecie/d197779b2d4373eb
> > (pierwszy wykres, błęd względny, drugi, bezwzględny, trzeci,
> > porównanie wykresów, praktycznie nachodzą na siebie).
>
> Dziękuję za podanie znakomitego przybliżenia.
> Nie lubię przybliżać wielomianami z powodu oscylacji Rungego.
> Jednak tu szczęśliwie nie występują.
Te oscylacje występują, gdy używa się bzdurnych węzłów.
Np równoodległych. Ale biorąc np węzły czebyszewa, efekt znika.
Bierze się to z tego, że (jeśli g to nasza funkcka, p interpolacyjny wielomian stopnia n, interpolujący f w punktach x_0...x_n)
|f(x) - p(x)| = (x-x0)(x-x1)...(x-xn) f^(n+1)(\eta)/(n+1)!
f^(n+1)(\eta) to n+1 pochodna w jakimś (nieznanym) punkcie pomiędzy węzłąmi,
a (x-x0)(x-x1)...(x-xn) to wielomian stopnia n+1, do tego moniczny (jedynka
przy dominującym największym składniku).
Widać, że dla źle wybranych (np równoogległych) wezłow na [a,b] ten wielomian możę być bradzo duży, i napędza błąd. Ale... możemy znaleźć specjalny
wielomian! Wielomian czebyszewa (który jest właściswie cosinusem po zmianie
wspołrzędnych:)) 1 rodzaju, przeskalowany do postaci monicznej
ma najmniejszą normę na [-1,1](pierwszą, czyli sup) wsród wszelkich
wielomianów tego typu. Jeśli więc wybierzemy do interpolacji jego pierwiastki
tego wielomianu (które znamy jawnie!, tylko musimy przeskalować z [-1,1 na
[1,b]]) gwarantuje nam to, że ||(x-x0)(x-x1)...(x-xn)|| jest nejmniejsza
z możliwych. I dla regularnych funkcji mamy zbieżność,
Jeśli funkcja jest C^k, to ||f-p|| <= O(log(n)/n^k).
Zwróc uwagę, zę to zbieżnosć jednostajna na całym przedziale.
Ale to tylko interpolacja, wybraliśmy punkty, które są przyzwoicie dobre,
by zrobić na nihc interpolacje dla każdej w mierę regualrnej funkcji.
Ale mając konkretną funkcję f można zrobić lepiej (o czynnik log(n)).
Twierdzenie czebyszewa o alternansie daje kryterium, kiedy p jest wielomianem
n-tego stopnia optymalnie (najlepiej wsrod wszytkich wielomianow)
aproksymującym f. f-p ma mieć (co najmniej) n+2 ekstremów, takich samych
co do modułu, ale na zmianę różnego znaku.
Do tego dochodzi algorytm Remeza, który pozwala znaleśc takie optymalny
wielomian interacyjnie.
Wtedy ||f-p|| <= O(n^-k) dla dla f \in C^k
Żadnych oscylacji, śliczna zbieżność.
> >> Co ciekawe, błąd względny jest największy dla x=π, gdzie jest zerowa
> >> wartość błędu bezwzględnego.
> >> Ciekawe jest i to, że błąd względny jest niezerowy tam, gdzie obie
> >> funkcje są zerowe (dla x=π).
> >
> > Dla bezpieczeństwa bym powiedział, że błęd względny dąży do tej dużęj
> > stałej gdy x-> pi ;-)
>
> Tu mam pewien problem z tym co można, a co nie.
>
> Który zapis jest prawidłowy?
>
> 1/
> dla: -5 < x < 5 ,
> x/x=1 ;
>
> 2/
> dla: -5 < x < 5 ,
> x/x=1 dla x różnego od 0,
> lim x->0 x/x=1 dla x=0 ,
2. Biorąc x/x=1 nawet, gdy x=0 można udowonić ciekawe rzeczy
https://www.pleacher.com/mp/mhumor/onezero2.html ;-)
> > Jak ktoś już zauważył, po prostu porównujesz wtedy pochodne.
> >
> > lim x->pi [f(x) - p(x)]/f(x) = lim x->pi [f(x) -0 - p(x) +0]/ (f(x)-0) =
> > = lim x->pi [f(x) -f(pi) - p(x) +p(pi)]/(x-pi) / (f(x)/(x-pi) )=
> > [mogę to zrobić bo w liczniku i mianowniku mam skonczony granice]
> > = lim x->pi [(f(x) -f(pi))/(x-pi)] -lim x->pi [(p(x) +p(pi))/(x-pi)] / lim x->pi (f(x)/(x-pi) )=
> > (f'(x) - p'(x))/f'(x)
> > Jeśli pochodne się nie zgadzają, mamy spora stałą.
> >
>
> Jeżeli pochodne by się zgadzały to by była stała=1.
Policz to raz jeszcze.
Masz też gotowe obliczenia wyżęj i przykłąd liczbowy (te nasz dwie
funkcje w pi)
> Tylko co ewentualnie można zrobić by stała była równa zero?
> Czy to możliwe w punkcie, gdzie obie funkcje przechodzą przez zero?
Pochodne mają się zgadzać, jak dla
Sin[x]/x
i
1 - x/Pi + 0.034671 x (x - Pi)^2
obie są równe -1/pi w x=pi,
błąd względny dąży do 0 gdy x->pi
pzdr
bartekltg
BTW, Kryterium czebyszewa i alg Remeza działją dla zagadnienia
optymalizujemy ||p-f||_[a,b]
czyli błąd bezwzględny. Ale p nie musi być wielomianem,
może być kombinacją dowolnych funkcji spełniających pewne
własności - bazą Haara - jeśli baza ma n elementów i funkcja
zeruje się w n+1 punktach, to jest tożsamośćiowo równa zero.
Wielomiany przeskalowane przez f, o ile nic nie wybucha, działają.
mozęmy więc przepisać błąd względny
||(p-f)/f||_[a,b] = ||p/f-1||_[a,b] = ||q-1||_[a,b]
i mamy zagadneinie aproksymowania jedynki elementami
x^k/f
W przypadku sin[x]/x na []0,pi musimy zająć się wcześniej biegunem,
więc nasze elementy z których układami aproksymację będą
syglądały tak:
(x-pi)^k/f