Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jak wyliczać współczynniki Czebyszewa?

154 views
Skip to first unread message

Borneq

unread,
Oct 20, 2016, 6:07:15 AM10/20/16
to
Należy tam scałkować funkcję która ma w mianowniku (1-x^2) czyli jest
osobliwa w zerze. Więc metoda Romberga odpada. Jest coś takiego jak
kwadratury Gaussa-Czebyszewa, jednak ja potrzebuję bardzo dużej
dokładności. Czy dla kwadratury Gaussa-Czebyszewa dało by się zastosować
jakąś ekstrapolację, tak jak w metodzie Romberga jest dla trapezów?

Borneq

unread,
Oct 20, 2016, 11:27:15 AM10/20/16
to
W dniu 20.10.2016 o 12:07, Borneq pisze:
Coś mi się zdaje że nawet bez żadnej ekstrapolacji kwadratura
Gaussa-Czebyszewa jest szybsza niż metoda Romberga, np dla całki w
(-1,1) exp()/sqrt(1-x^2) już dla n=8 mam 8: 3.97746326050642285 a
następne różnice dla n=9,10,11.. wynikają z gromadzenia się błędów

bartekltg

unread,
Oct 20, 2016, 3:26:51 PM10/20/16
to
On 20.10.2016 12:07, Borneq wrote:
> Należy tam scałkować funkcję która ma w mianowniku (1-x^2) czyli jest
> osobliwaw zerze.

Jaką funkcję.
Po jakim przedziale.
Jakiego rodzaju jest to osobliwość.


> Więc metoda Romberga odpada.

1/(1-x^2) = 1/(1-x)(1+x)

Ta funkcje jest osobliwa w +1 i w -1.
W 0 jest porządna.


Osobliwość "1/r" na jednym wymiarze jest zła.
Całka jest rozbieżna!

Jeśli całkujesz po np [0,1] (do jednej osobliwości)
mianownik musi dążyć do zera, inaczej całka jest rozbieżna.

Jeśli całkujesz tak, że osobliwość jest we wnętrzu
przedziału, można się wykpić mówiąc, że interesuje
nas wartość głowna całki
https://en.wikipedia.org/wiki/Cauchy_principal_value
Ale czy to da to, czego oczekujesz, zależy, co modelujesz.

Niech f(t) = g(t)/t.
Interesujesz się wielkośćią

\int_a^b g(t)/t dt=
dodaję "nic"
= \int_a^b g(t)/t - g(0)/t + g(0)/t
= \int_a^b (g(t)-g(0))/t + g(0)/t
= \int_a^b (g(t)-g(0))/t + \int_a^b g(0)/t

Drugą całkę obliczasz analitycznie. Interesujesz się
PV, więc dość proisto. Dla symetrycznego przecziału wokoło bieguna
to będzie 0.

(g(t)-g(0))/t zbiega do pochodnej g(t), będzie więc pewnie oganiczone.

Można się jeszcze pobawić i w okolicach biegune nieco inaczej obliczać
wartość (g(t)-g(0))/t niż bezpośrednio, ze względu na błędu numeryczne.


Podobnie możesz zrobić, jeśli całkujesz od biegina do bieguna,
i mianownik ma tę samą wartość na brzegach.


> Jest coś takiego jak
> kwadratury Gaussa-Czebyszewa,

Umarłemu kadzidło.

Zresztą, są one dla fubnkcji wagowej 1/SQRT(1-x^2)

1. Ta osobliwość jest całkowalna. Do arcsin.
2. Ta waga jest inną wagą, niż Twoja.
Całka CG umożliwia szybkie całkowanie funkcji
z wagą 1/sqrt(1-x^2), nie 1/(1-x^2)



> jednak ja potrzebuję bardzo dużej
> dokładności. Czy dla kwadratury Gaussa-Czebyszewa dało by się zastosować
> jakąś ekstrapolację, tak jak w metodzie Romberga jest dla trapezów?

Tak.
Tylko po co? Będzie to znacznie mniej efektywne.
Po prostu użyj (jak już poradzisz sobie z osobliwośćią) odpowiedniej
liczby węzłow.

@ pytnie z tytułu:
"wspołczynniki", czyli wspołrzędne węzgłów i ich wagi dla kwardatury
Czebyszewa-Gaussa są podane jawnymi wzorami. Nic skomplikowanego,
funkcje trygonometryczne. Do znaleznienia na wiki.


W przypadku mniej miłych wielomoanów ortogonalnych należy pamietać,
że zawsze mamy formułę trójczłonową.


Powtórka:

Jaką funkcję.
Po jakim przedziale.
Jakiego rodzaju jest to osobliwość (co jest w mianowniku)



pzdr
bartekltg










Borneq

unread,
Oct 20, 2016, 6:08:15 PM10/20/16
to
W dniu 20.10.2016 o 21:26, bartekltg pisze:
> On 20.10.2016 12:07, Borneq wrote:
>> Należy tam scałkować funkcję która ma w mianowniku (1-x^2) czyli jest
>> osobliwaw zerze.

> Jaką funkcję.
> Po jakim przedziale.
> Jakiego rodzaju jest to osobliwość (co jest w mianowniku)

Pośpieszyłem się: nie (1-x^2) a sqrt(1-x^2) i nie w zerze a w -1 i 1
czyli na przedziale który interesuje

kwadratura Gaussa bardzo dobrze spisuje się gdy chcę scałkować funkcję z
wagą 1/sqrt(1-x^2) ale dochodzą wielomiany Czebyszewa i zaczynają się
trudności. Te wielomiany mają nie tylko coraz wyższy stopień (ale na
przedziale (-1,1) to tak nie przeszkadza) ale współczynnik przy
najwyższej potędze rośnie wykładniczo a poza tym współczynnik przy
trochę niższej potędze jest ponad dwa razy jeszcze wyższy. A całka z
wagą wielomiany Czebyszewa wysokiego stopnia w dodatku jest bliższa zeru
(odejmując duże liczby bliskie sobie). W kwadraturze Gaussa z powodu
wysokiego czynnika przy stopniu narastają błędy maszynowe. Na doublach
udało mi się uzyskać całki z exp(x) do 12 stopnia, całki powyższych
stopni chyba nieprawdziwe, bo zaczynają się ujemne, a do 12 stopnia
wszstkie dodatnie i kolejna 10 razy mniejsza.
A więc double pozwala na stopień 12, a to jest za mało aby aproksymować
z dokładnością choćby double. Chyba im wyższa potrzebna dokładność tym
gorsze szanse aproksymacji. Zwiększenie o stopień zwiększa dokładność
zaledwie o rząd wielkości (dziesiętny), dlaczego o tyle?
Precyzja quadruple to 1.9e-34 a octuple nawet 9e-72. Gdyby chcieć
aproksymować z taką dokładnością, potrzeba by wielomianu (lub sumy
licznika i mianownika) rzędu 30 a nawet 60 stopnia! To by bardzo
spowolniło a poza tym wielomiany Czebyszewa 60 stopnia mają kolosalne
współczynniki przy potęgach.

bartekltg

unread,
Oct 20, 2016, 7:15:46 PM10/20/16
to
On 21.10.2016 00:08, Borneq wrote:
> W dniu 20.10.2016 o 21:26, bartekltg pisze:
>> On 20.10.2016 12:07, Borneq wrote:
>>> Należy tam scałkować funkcję która ma w mianowniku (1-x^2) czyli jest
>>> osobliwaw zerze.
>
>> Jaką funkcję.
>> Po jakim przedziale.
>> Jakiego rodzaju jest to osobliwość (co jest w mianowniku)
>
> Pośpieszyłem się: nie (1-x^2) a sqrt(1-x^2) i nie w zerze a w -1 i 1
> czyli na przedziale który interesuje
>
> kwadratura Gaussa bardzo dobrze spisuje się gdy chcę scałkować funkcję z
> wagą 1/sqrt(1-x^2) ale dochodzą wielomiany Czebyszewa i zaczynają się
> trudności. Te wielomiany mają nie tylko coraz wyższy stopień (ale na
> przedziale (-1,1) to tak nie przeszkadza) ale współczynnik przy
> najwyższej potędze rośnie wykładniczo a poza tym współczynnik przy
> trochę niższej potędze jest ponad dwa razy jeszcze wyższy. A całka z

O czym Ty pleciesz?!

Wielomian Czebyszewa ma znane wezły (jest na nie wzorek)
A wielomian interpolacyjny występuje tylko w wyprowadzeniu.

Masz zestaw punktów x_i
Lilczysz w nich wartość funkcji, sumujesz, mnożysz przez pi/n.
Koniec.
Najtrudniejszą cześcią jest policzenie n cosinusów;-)


> wagą wielomiany Czebyszewa wysokiego stopnia w dodatku jest bliższa zeru
> (odejmując duże liczby bliskie sobie). W kwadraturze Gaussa z powodu
> wysokiego czynnika przy stopniu narastają błędy maszynowe. Na doublach
> udało mi się uzyskać całki z exp(x) do 12 stopnia, całki powyższych
> stopni chyba nieprawdziwe, bo zaczynają się ujemne, a do 12 stopnia
> wszstkie dodatnie i kolejna 10 razy mniejsza.

> A więc double pozwala na stopień 12, a to jest za mało aby aproksymować
> z dokładnością choćby double.

Quadpack z palcem w uchu liczy 60 stopnia.


> Chyba im wyższa potrzebna dokładność tym
> gorsze szanse aproksymacji. Zwiększenie o stopień zwiększa dokładność
> zaledwie o rząd wielkości (dziesiętny), dlaczego o tyle?

Właśnie scałkowałęm sobie tą metodą Twojego exp(x)/sqrt(1-x^2)
Rzędami od 2 do 100.
oto błędy:

0.0171972077156646
0.00014130042410665
6.2584446558489e-07
1.72972836054441e-09
3.26538796002751e-12
4.44089209850063e-15
0
4.44089209850063e-16
0
4.44089209850063e-16
4.44089209850063e-16
4.44089209850063e-16
4.44089209850063e-16
4.44089209850063e-16
.... dalej kilkadziesiąt linijek wyglądających tak samo - błęd
reprezentacji...

A co tam, wartość dla kwadratury rzędu 1001?
Proszę: 4.44089209850063e-16


Wartosćią dokladną (i przyzwoitym przybliżęniem) Twojej całki jest
In[34]:= w = Integrate[Exp[x]/Sqrt[1 - x^2], {x, -1, 1}]
N[w, 100]

Out[34]= \[Pi] BesselI[0, 1]
Out[35]=
3.9774632605064226372566098326646971640806713859083192867002979776916803\
04082347333497568678614284387


> Precyzja quadruple to 1.9e-34 a octuple nawet 9e-72. Gdyby chcieć
> aproksymować z taką dokładnością, potrzeba by wielomianu (lub sumy
> licznika i mianownika) rzędu 30 a nawet 60 stopnia! To by bardzo
> spowolniło a poza tym wielomiany Czebyszewa 60 stopnia mają kolosalne
> współczynniki przy potęgach.


A mógłbyś mi wytłumaczyć, na cholerę tworzysz przy metodzie C-G
chcesz tworzyć jakiś wielomian?


W tej metodzie _nie_ musisz:
-wyszukiwać pierwiastków wielomianu czebyszewa n-tego stopnia.
-tworzyć wielomianu czebyszewa n-tego stopnia.
-dotykać się jakiegokolwiek wielomianu.

Musisz ustalić n.
Wyliczyć n węzłów, każdy wymaga policzenia cosinusa.
Wyliczyc wartość funkcji w tych węzłąch.
Przemnożyć przez wagi, dodać wszytko do kupy.

Otwórz nieszczęsną wikipedię chociaż.

pzdr
bartekltg




Borneq

unread,
Oct 20, 2016, 7:30:04 PM10/20/16
to
W dniu 21.10.2016 o 01:15, bartekltg pisze:
> Musisz ustalić n.
> Wyliczyć n węzłów, każdy wymaga policzenia cosinusa.

robię to

> Wyliczyc wartość funkcji w tych węzłąch.

robię to,

> Przemnożyć przez wagi, dodać wszytko do kupy.

teraz mnożę przez wagi a wagami są ..wielomiany Czebyszewa, które mają
bardzo duże współczynniki przy najwyższych i trochę niższych potęgach.
Nie chodzi mi o wyliczenie tylko całki, ale współczynników Czebyszewa.

> Wartosćią dokladną (i przyzwoitym przybliżęniem) Twojej całki jest
> In[34]:= w = Integrate[Exp[x]/Sqrt[1 - x^2], {x, -1, 1}]
> N[w, 100]
>
> Out[34]= \[Pi] BesselI[0, 1]
> Out[35]=
> 3.9774632605064226372566098326646971640806713859083192867002979776916803\
> 04082347333497568678614284387

jakim programem to?

bartekltg

unread,
Oct 20, 2016, 9:12:37 PM10/20/16
to
On 21.10.2016 01:30, Borneq wrote:
> W dniu 21.10.2016 o 01:15, bartekltg pisze:
>> Musisz ustalić n.
>> Wyliczyć n węzłów, każdy wymaga policzenia cosinusa.
>
> robię to
>
>> Wyliczyc wartość funkcji w tych węzłąch.
>
> robię to,
>
>> Przemnożyć przez wagi, dodać wszytko do kupy.
>
> teraz mnożę przez wagi a wagami są ..wielomiany Czebyszewa,

Nie.

Są całki z wielomianów (i to wielomianów interpolacyjnych
opartych na węzłach wielomianu Czebyszewa, nie z w. Czeb. ;p)

Wagami są _liczby_*).

I to liczby znane... pi/n

Pytam całkiem poważnie, zabolałoby, jakbyś otworzył tę nieszcześną
wikipedię, o jakimś skrypcie nie wspominając, i poczytał podstawy?


> Nie chodzi mi o wyliczenie tylko całki, ale współczynników Czebyszewa.

Współczynnik ten wynosi pi/n.
Jest taki sam dla każdego węzła.

Informację o tym (a to wystarczy do korzystania) masz choćby w wiki,
wyprowadzenie np. na mathworld.wolfram.com


>> Wartosćią dokladną (i przyzwoitym przybliżęniem) Twojej całki jest
>> In[34]:= w = Integrate[Exp[x]/Sqrt[1 - x^2], {x, -1, 1}]
>> N[w, 100]
>>
>> Out[34]= \[Pi] BesselI[0, 1]
>> Out[35]=
>> 3.9774632605064226372566098326646971640806713859083192867002979776916803\
>> 04082347333497568678614284387
>
> jakim programem to?

Mathematica.

Maxima też będzie dawać radę, a jest darmowa.
Jest sympy w pythonie.
Jest tego zatrzęsienie:
https://en.wikipedia.org/wiki/List_of_computer_algebra_systems

pzdr
bartekltg


Borneq

unread,
Oct 21, 2016, 10:00:42 AM10/21/16
to
W dniu 21.10.2016 o 03:12, bartekltg pisze:
> Są całki z wielomianów (i to wielomianów interpolacyjnych
> opartych na węzłach wielomianu Czebyszewa, nie z w. Czeb. ;p)
>
> Wagami są _liczby_*).
>
> I to liczby znane... pi/n

> Współczynnik ten wynosi pi/n.
> Jest taki sam dla każdego węzła.

Cytuję z książki Ralstona:
Szeregiem Czebyszewa dla funkcji f(x) nazywamy zbieżny do tej funkcji szereg
(7.6.1) 1/2 c0 + Sigma{j=1}{infinity}c_j T_j(x)
Dzięki ortogonalności wielomianów Czebyszewa możemy współczynniki tego
szeregu wyrazić w postaci:
(7.6.2)
c_j = 2/Pi Całka{-1}{1} (1-x^2)^{-1/2}f(x)T_j(x)dx (j=0,1,...)
-------
Widać wyraźnie tu że do obliczenia c_j potrzebna jest całka z wagą
T_j(x) gdzie x jest wynikiem cosinusa, ale dla parametru zależnego od n.
i myślę że dla dużego stopnia j, T_j(x) będzie się bardzo wahała w
przedziale (-1,1)

bartekltg

unread,
Oct 21, 2016, 11:55:08 AM10/21/16
to
On Friday, October 21, 2016 at 4:00:42 PM UTC+2, Borneq wrote:
> W dniu 21.10.2016 o 03:12, bartekltg pisze:
> > Są całki z wielomianów (i to wielomianów interpolacyjnych
> > opartych na węzłach wielomianu Czebyszewa, nie z w. Czeb. ;p)
> >
> > Wagami są _liczby_*).
> >
> > I to liczby znane... pi/n
>
> > Współczynnik ten wynosi pi/n.
> > Jest taki sam dla każdego węzła.
>
> Cytuję z książki Ralstona:
> Szeregiem Czebyszewa dla funkcji f(x) nazywamy zbieżny do tej funkcji szereg
> (7.6.1) 1/2 c0 + Sigma{j=1}{infinity}c_j T_j(x)
> Dzięki ortogonalności wielomianów Czebyszewa możemy współczynniki tego
> szeregu wyrazić w postaci:
> (7.6.2)
> c_j = 2/Pi Całka{-1}{1} (1-x^2)^{-1/2}f(x)T_j(x)dx (j=0,1,...)
> -------


Jaja sobie robisz, czy wybrałeś losowy kawałek mówiący o czebyszewie?
A co ma wspolnego szereg Czebyszewa z całką Czebyszewa-gaussa?!

To jest kwadratura Clenshawa–Curtisa!
Przybliżające całkę na [-1..1] z wagą 1 (!).
I tam te wagi wylicza się masowo szybką transformatą fouriera.

A Ty cały czas pisałes o kwadraturze Czebyszewa-Gaussa,
przyblizające całkę na [-1, 1 ] z wagą 1/sqrt(1-x^2)
Ona ma wagi stałe równa pi/n.

Skup się:
Kwadratura C-C jest teoretycznym odpowiednikiem (podkreślam,
że to są własności tej operacji, nie rzeczy, które sie wykonuje
prowadząc obliczenia) scałkowania szeregu czebyszewa obciętego
do odpowiedniego stopnia.
Jest to matoda ładna, bo taki szereg jest bliski wielomianowi
minimalnemu, więc błąd jest mały na całym przedziale.
Po zamianie współrzędnych odpowiada przybliżeniu fukcji przez
jej obcięty szereg fouriera

https://en.wikipedia.org/wiki/Clenshaw%E2%80%93Curtis_quadrature#Connection_to_Chebyshev_polynomials
http://mathworld.wolfram.com/ChebyshevApproximationFormula.html

kwadratura C-G to kwadratura interpolacyjna oparta na węzłach
wielomianów ortogonalnych z wagą 1/sqrt(1-x^2).

Widzisz różnicę? Raz całkujesz \int f(x) dx poprzez rzut funkcji
f(x) na wielomiany Czebyszewa.
Drugi raz całkujesz \int f(x)/sqrt(1-x^2) {CO INNEGO!}
poprzez interpolacje wielomianową na węzłach wielomianów Czebyszewa.

Inne matody, inne całki (bo inna waga!) inne węzły
(CG ma węzły cos((2i-1)/2n)) dla i=1...n
CC opiera się na wyliczeniu wartości funkcji w punktach
cos(i/n) dla i=1...n-1


Masz burdel w notatkach.

To, że obie metody wspominają o Czebyszewie nie znczy, że to te same metody.

Zdecyduj się na jedną ;p


> Widać wyraźnie tu że do obliczenia c_j potrzebna jest całka z wagą
> T_j(x) gdzie x jest wynikiem cosinusa, ale dla parametru zależnego od n.
> i myślę że dla dużego stopnia j, T_j(x) będzie się bardzo wahała w
> przedziale (-1,1)

Wyliczenie wag i węzłów sprowadza się do odpalenia
fransformaty fouriera.
Jest to metoda cholernie stabilna i używana do obliczania
całek z b. duzą dokładnością i jest porównywalna z kwadraturami
gaussa (znacznie mniej od nich kosztowna) czy kwadraturą tanh-sinh.

https://en.wikipedia.org/wiki/Clenshaw%E2%80%93Curtis_quadrature#Precomputing_the_quadrature_weights


pzdr
bartekltg

Borneq

unread,
Oct 21, 2016, 12:47:20 PM10/21/16
to
W dniu 21.10.2016 o 17:55, bartekltg pisze:
> http://mathworld.wolfram.com/ChebyshevApproximationFormula.html

Nie użyłem na razie predefiniowanych wag ani transformaty Fouriera ale
zastosowałem wzór z mathworld.wolfram.com
I stabilność wzrosła kolosalnie

Nemrod

unread,
Oct 21, 2016, 1:00:47 PM10/21/16
to
W dniu 2016-10-21 o 17:55, bartekltg pisze:
>(...)

Nie przyszła ci do głowy myśl, że Broneq
to jakiś bot internetowy? Od dłuższego czasu
spamuje wiele grup dyskusyjnych na wiele całkiem
różnych od siebie tematów i wydaje się niemożliwe,
żeby na raz ktoś jeden chciał tak na masę wszystko ogarniać.
W odpowiedziach często używa bełkotu i popełnia masę
błędów rzeczowych. A więc w zachowaniu najbardziej przypomina
bota który usiłuje nauczyć się czegoś z tego co piszą
userzy usenetu. Nie wygląda na typowego trola, ponieważ
typowe trole mają góra 1 lub 2 "idee fixe" i wszystko
sprowadzają do tego samego jednego tematu, wałkując bez końca.
Tutaj ktoś jest nastawiony na pozyskiwanie "łatwej" wiedzy,
która nie jest mu do niczego potrzebna. Kronikuje jej ile może,
a potem poszerza o następne zapytania.

Skoro masz czas, żeby mu merytorycznie odpowiadać, zadaj mu coś,
żeby sprawdzić czy w ogóle umie myśleć, a nie tylko przetwarzać dane.

:)

--
Nemrod Vargardsson

Pwt 32,41 Gdy miecz błyszczący wyostrzę
i wyrok wykona ma ręka,
na swoich wrogach się pomszczę,
odpłacę tym, którzy Mnie nienawidzą.
42 Upoję krwią moje strzały,
mój miecz napasie się mięsem,
krwią poległych i uprowadzonych,
głowami dowódców nieprzyjacielskich.

bartekltg

unread,
Oct 21, 2016, 2:36:41 PM10/21/16
to
Idowiedz na pytania z poprzednich postów.
W szczegolnośći: jakiej kwadratury w koncu uzywasz?!

pzdr
bartekltg


bartekltg

unread,
Oct 21, 2016, 2:40:46 PM10/21/16
to
On 21.10.2016 18:58, Nemrod wrote:
> W dniu 2016-10-21 o 17:55, bartekltg pisze:
>> (...)
>
> Nie przyszła ci do głowy myśl, że Broneq
> to jakiś bot internetowy? Od dłuższego czasu
> spamuje wiele grup dyskusyjnych na wiele całkiem
> różnych od siebie tematów i wydaje się niemożliwe,
> żeby na raz ktoś jeden chciał tak na masę wszystko ogarniać.
> W odpowiedziach często używa bełkotu i popełnia masę
> błędów rzeczowych. A więc w zachowaniu najbardziej przypomina
> bota który usiłuje nauczyć się czegoś z tego co piszą
> userzy usenetu. Nie wygląda na typowego trola, ponieważ
> typowe trole mają góra 1 lub 2 "idee fixe" i wszystko
> sprowadzają do tego samego jednego tematu, wałkując bez końca.
> Tutaj ktoś jest nastawiony na pozyskiwanie "łatwej" wiedzy,
> która nie jest mu do niczego potrzebna. Kronikuje jej ile może,
> a potem poszerza o następne zapytania.
>
> Skoro masz czas, żeby mu merytorycznie odpowiadać, zadaj mu coś,
> żeby sprawdzić czy w ogóle umie myśleć, a nie tylko przetwarzać dane.
>
> :)

Nie zdarzyło mu się chyba jeszcze odpowiedzieć na jakiekolwiek
grubsze pytanie, nawet o doprecyzowanie tego o co pyta.

W sumie to jest tu najgorszy problem. Zadałby rzeczaowe pytanie,
to ja bym sobie coś odświeżył, w archiwym grupy by zostało...
Same zalety.
A tu mamy nieprecyzyjne pytania (pyta o jedną metodę, podaje
wzorki do drugiej, nie rozumie uwagi, że miesza die rzeczy...)

Byłby bo to nawet fajne dyskusje. Tylko tzreba wprowadzić nieco
porządku;/

pzdr
bartekltg



Borneq

unread,
Oct 24, 2016, 8:41:36 AM10/24/16
to
W dniu 21.10.2016 o 17:55, bartekltg pisze:
> http://mathworld.wolfram.com/ChebyshevApproximationFormula.html

Ten wzór z Wolframu jest znacznie stabilniejszy niż ten, którego
wcześniej używałem, a wynika on z tego że Tn(x) = cos(n arccos(x)) (w
interesującym zakresie (-1,1))
https://en.wikipedia.org/wiki/Chebyshev_polynomials#Explicit_expressions

A jeszcze da się go usprawnić przez obliczenie wcześniej wag i
zastosowanie szybkiej transformaty Fouriera?
Podany link:
https://en.wikipedia.org/wiki/Clenshaw%E2%80%93Curtis_quadrature#Precomputing_the_quadrature_weights
to nie wiem, jak się ma do współczynników transformaty

a może są już jakieś wyliczone przykłady, coś w rodzaju
https://oeis.org/ tylko nie do sekwencji integerów tylko floatów?

Borneq

unread,
Oct 24, 2016, 8:47:38 AM10/24/16
to
W dniu 24.10.2016 o 14:41, Borneq pisze:
> to nie wiem, jak się ma do współczynników transformaty

To znaczy do współczynników Czebyszewa

bartekltg

unread,
Oct 24, 2016, 8:51:51 AM10/24/16
to
A zaczniesz odpowiadać na pytania? ;>

Bo ja dalej np nie wiem, którą metodę chcesz stosować.
Przez pół wątku gadasz o jednej, przez pół o drugiej,
i wydajesz się w ogole nie zdawać sprawy (mimo zwrócenia
uwagi) że to różne metody.

Jak mają się współczynniki szeregu Czebyszewa do transformatu
fouriera było zasygnalizowane w któryms z podawanych przeze mnie linków.

pzdr
bartekltg


pzdr
bartekltg

Borneq

unread,
Oct 24, 2016, 9:13:27 AM10/24/16
to
W dniu 24.10.2016 o 14:51, bartekltg pisze:
> Bo ja dalej np nie wiem, którą metodę chcesz stosować.
> Przez pół wątku gadasz o jednej, przez pół o drugiej,
> i wydajesz się w ogole nie zdawać sprawy (mimo zwrócenia
> uwagi) że to różne metody.

Używam http://mathworld.wolfram.com/ChebyshevApproximationFormula.html
jaka to kwadratura?
Mimo wszystko pasuje do
https://en.wikipedia.org/wiki/Chebyshev%E2%80%93Gauss_quadrature
gdzie <math>\int_{-1}^{+1} \frac {f(x)} {\sqrt{1 - x^2} }\,dx</math>
(pierwszy wzór)
gdy w miejsce f(x) wstawimy badaną funkcję np. exp(x) pomnożoną przez
wielomian Czebyszewa.
A do metody Clenshawa–Curtisa mi nie pasuje, bo nie ma tam 1/sqrt(1-x^2)

Borneq

unread,
Oct 24, 2016, 10:55:02 AM10/24/16
to
W dniu 24.10.2016 o 15:13, Borneq pisze:
Natomiast wzór 5.9.4 z
http://www.aip.de/groups/soe/local/numres/bookcpdf/c5-9.pdf
coś mi nie pasuje,

za to jest dobra procedura
http://www.aip.de/groups/soe/local/numres/bookcpdf/c5-10.pdf
przejścia z wielomianów Czebyszewa na zwykłe wielomiany.
Jak porównałem z oczywistym sposobem przejścia, to dla wysokich stopni
wielomianu zgadzało się, ale różniło się dla stopnia 1 i 0

Borneq

unread,
Oct 24, 2016, 10:56:54 AM10/24/16
to
W dniu 24.10.2016 o 16:55, Borneq pisze:
> Natomiast wzór 5.9.4 z
> http://www.aip.de/groups/soe/local/numres/bookcpdf/c5-9.pdf
> coś mi nie pasuje,

Wzór 5.8.7 z
http://www.aip.de/groups/soe/local/numres/bookcpdf/c5-8.pdf
jest chyba ten sam co w Wolframie

bartekltg

unread,
Oct 24, 2016, 12:13:55 PM10/24/16
to
On Monday, October 24, 2016 at 3:13:27 PM UTC+2, Borneq wrote:
> W dniu 24.10.2016 o 14:51, bartekltg pisze:
> > Bo ja dalej np nie wiem, którą metodę chcesz stosować.
> > Przez pół wątku gadasz o jednej, przez pół o drugiej,
> > i wydajesz się w ogole nie zdawać sprawy (mimo zwrócenia
> > uwagi) że to różne metody.
>
> Używam http://mathworld.wolfram.com/ChebyshevApproximationFormula.html
> jaka to kwadratura?

A skąd wziąłeś ten link?
Przecież w miejscu, gdzie go dosatłeś, było napisane, do której on jest.
Do Clenshaw–Curtis, tej z wagą 1, opartej techniczne na fft.

BTW, to Ty masz wiedzedzić, czego chcesz użyć;-)
Nie, nie pasuje:)

> gdzie <math>\int_{-1}^{+1} \frac {f(x)} {\sqrt{1 - x^2} }\,dx</math>
> (pierwszy wzór)
> gdy w miejsce f(x) wstawimy badaną funkcję np. exp(x) pomnożoną przez
> wielomian Czebyszewa.

eee....

> A do metody Clenshawa–Curtisa mi nie pasuje, bo nie ma tam 1/sqrt(1-x^2)

W metodzie nie ma. I własnie ta metoda używa szeregów czebyszewa.
W metodzie Czebyszewa-gaussa tych szeregów nie ma, za to całkuje
ona z waga 1/sqrt(1-x^2)...

W jednej metodzie ta dziwna waga pojawie się w samej całce,
w tym, co chcesz całkować.
W drugiej ta waga występuje tylko w całce (któej się nie liczy)
określającej wagi.

Umówmy się tak. Zapomnij, co 'wiesz'. Tem jest sporo podobnych
kawałków i nie da się tego ogarnąć na rympał.
Przeczytaj na spokojnie, od deski do deski, artykuły w wiki
o obu tych metodach. Potem jeszcze raz ten wątek.

Bo na razie to zamiast rozumieć*), co się tam dzieje, działasz na zasadzie
'a tu jest podobny kształt'.

*) a widać, kombinujesz i próbujesz zrozumieć, bo gdybyś tylko chcaił
zastosować, to byś użył instrukcji (choćby z wiki) i tydzień temu
miał działające kwadratury Czebyszewa-Gaussa.


pzdr
bartekltg

bartekltg

unread,
Oct 24, 2016, 12:26:44 PM10/24/16
to
Wszytko sprowadza się do tego, że

suma cos(j*fi) * cos(k*fi)
ma się równać 0 dla j=/=n. Bo to gwarantuje, że
za pomocą skończonej sumy wyciągniesz z szeregu trygonometrycznego
f(cos(fi)) tylko właściwy współczynnik.
Dowód na 594 mozesz zrobić sobie na palcach. 587 pewnie też.

Wersja 5.9.4 ma tę zaletę, że umożliwia proste tworzenie
kwadratur adaptatywnych, bo po zagęszczeniu punkty wie powtarzają.
W przypadku tego drugiego wzorku - nie.

pzdr
bartekltg

bartekltg

unread,
Oct 24, 2016, 1:09:47 PM10/24/16
to
Zresztą, było o tym w linkach ;-)
https://en.wikipedia.org/wiki/Clenshaw%E2%80%93Curtis_quadrature#Fej.C3.A9r_quadrature

Przy całkowaniu na normalnej kracie nazywamy to całką
Clenshawa-Curtisa, a przy całkowaniu na przesuniętej,
Fejéra.
https://en.wikipedia.org/wiki/Clenshaw%E2%80%93Curtis_quadrature#Fej.C3.A9r_quadrature

Te wzorki generuj te same a_k (do k<N/2, a może do k<N)

pzdr
bartekltg

bartekltg

unread,
Oct 24, 2016, 1:40:24 PM10/24/16
to
To nie prawda. Wysokie częstości przy małych N psują.

pzdr
bartekltg



0 new messages