Przybliżenie Padégo

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Dopracować

Przybliżenia Padégo funkcji tangens
Przybliżenia Padégo funkcji wykładniczej

Przybliżenie Padégo – metoda aproksymacji funkcji za pomocą funkcji wymiernych danego rzędu. Często daje lepszy wynik niż szereg Taylora dla tej samej liczby współczynników, kiedy funkcja posiada bieguny.

Jej odkrywcą jest Henri Padé.

Definicja

Dla danej funkcji f i dwóch liczb naturalnych m,nN0, przybliżeniem Padégo rzędu (m,n) jest funkcja wymierna

Rm,n(x)=a0+a1x+a2x2++amxm1+b1x+b2x2++bnxn,

której pochodne równają się pochodnym f(x) do najwyższego możliwego rzędu

f(0)=R(0)
f(0)=R(0)
f(0)=R(0)
f(m+n)(0)=R(m+n)(0).

Ściślej i ogólniej funkcja wymierna ρ jest przybliżeniem Padégo rzędu (k,nk) formalnego szeregu potęgowego g nad ciałem F, jeżeli[1]:

g=i0gixiF[[x]] (giF)
ρ=rt
r,tF[x]
xt
rtgmodxn (równoważnie rtgmodxn)
degr<k
degrnk

Obliczanie

Jeżeli rozwinięcie funkcji f(x) w szereg Taylora ma postać

f(x)=c0+c1x+c2x2+c3x3+,

to współczynniki w przybliżeniu Padégo spełniają układ równań

ai=j=0ibjcij  dla  i=0,1,...,m+n.

Przy czym przyjmuje się, że

b0=1,
ai=0  dla  i>m,
bi=0  dla  i>n.

Przykład

Należy wyliczyć wielomian R2,1(x) przybliżający ex w punkcie 0. Mamy m=2, n=1, m+n=3. Z szeregu Taylora, który dla punktu 0 staje się szeregiem Maclaurina mamy

c0=1,c1=1,c2=12,c3=16 ogólnie dla ex cn=1n!

Układamy układ równań:

pierwsza część
1b0=a0
1b0+1b1=a1
1/2b0+1b1=a2
druga część
1/6b0+1/2b1=0
oraz
b0=1

Wpisujemy do macierzy najpierw pierwsze m niewiadomych, a potem drugie n, otrzymując macierz: [10010010110011/210001/61/200010]

oraz wektor wyrazów wolnych składający się z samych zer z wyjątkiem ostatniej jedynki. Następnie wyliczamy posługując się na przykład metodą eliminacji Gaussa, otrzymujemy [12/31/611/3], co daje 1+2/3x+1/6x211/3x,

co jest zgodne z przykładami WolframuSzablon:Odn z dokładnością do mnożnika licznika i mianownika.

Wypełnianie macierzy

Niech N=m+n+2 będzie rozmiarem macierzy A z normalnym indeksem liczonym od 1 do N.

Czyścimy macierz inicjując  zerami;
        for (int i = 0; i <= m; i++)
        {
                for (int j = 0; j <= i; j++)
                {
                        if (j<=n)
                                A[i+1, m+j+2] = c[i  j];
                }
                A[i+1, i+1] = -1;
        }
        for (int i = 0; i<= n  1; i++)
                for (int j = 0; j <= n; j++)
                        A[m + i + 2, m + j + 2]  = c[m + n  i  j];
        ; końcowe b0 = 1
        A[m + n + 2, m + 2] = 1;

Przypisy

Szablon:Przypisy

Bibliografia

Linki zewnętrzne