Scipy Interpolol

Scipy Interpolol

Interpolacja jest tym, co będziemy dzisiaj omówić. Pojęcie interpolacji można zdefiniować jako metodę obliczenia wartości lub liczby między dwoma punktami na linii lub nawet krzywej. Ta koncepcja może wykorzystywać dane w 1, 2 lub nawet wyższych wymiarach, ponieważ istnieje kilka ogólnych możliwości dostępnych w SCIPY do interpolacji, a także gładkości. Niezależnie od tego, czy dane są nieustrukturyzowane, jednowymiarowe, czy dostarczane na ustrukturyzowanej siatce, określa, która metoda interpolacji jest stosowana. Wymagana gładkość interpolatora to kolejna kwestia. Metody sugerowane do interpolacji są dostępne w różnych formach. Z odpowiednim wyjaśnieniem i przykładami omówimy interpolację Scipy'ego w tym artykule.

Interpolacja w Scipy

Scipy oferuje moduł o nazwie Scipy.interpolatu, który ma szeroki zakres funkcji związanych z interpolacją. Metoda tworzenia punktów danych między istniejącymi punktami danych nazywa się interpolacją. Istnieją klasy, funkcje splajnowe oraz klasy interpolacyjne jednoczynnikowe i wielowymiarowe w module Scipy, Scipy.interpolować.

Typy interpolacji

Istnieje wiele sposobów interpolowania, z których niektóre obejmują:

    • Interpolacja 1-D
    • Interpolacja splajna
    • Jednoczynnikowy interpolacja splajna
    • Interpolacja RBF

Omówmy wszystkie te typy szczegółowo i z przykładami programowania, aby zobaczyć wyniki.

Interpolacja 1-D

Rozkład z tylko jedną zmienną można interpolować za pomocą funkcji interp1d (). Wymaga wejścia dwóch punktów, x i y, a także wysyła funkcję, która, która, po wywołaniu nowym x, zwraca odpowiedni y.

Oto jego pełna składnia:


Wyjaśnijmy koncepcję interpolacji 1-D z następującym przykładem:

Przykład:

Powiedzmy, że chcesz użyć wartości x_range i y_range do zbudowania funkcji liniowej z formułą y_range = f (x_range).

Ten przykład pokazuje, jak utworzyć funkcję, która już wykorzystuje dwie znane zmienne x_range i y_range do oszacowania punktów danych linii za pomocą scipy.interpolować.metoda interp1d (). Termin „interp1d” odnosi się do interpolacji w jednym wymiarze, takim jak linia, używając tylko osi x_range i y_range. Cały kod jest tutaj podany.

Pierwsza sekcja kodu pokazuje, że importujemy wymagane moduły. Są to matplotlib.Pyplot, Numpy, Scipy i Interp1d. Następna sekcja pokazuje generowanie losowych punktów dla x_range i y_range oraz użycie tych dwóch wartości, x_range i y_range. Obejmuje również wykonanie scipy.interpolować.metoda interp1d (), w której wartości x_range i y_range są przekazywane jako parametry. Następnie generowane są nowe losowe punkty dla x_range i y_range. Cztery instrukcje drukowania, które są tutaj używane, wyświetlają punkty generowane przez funkcję liniową.

Ostatnia sekcja kodu to miejsce, w którym wykreślono wykres za pomocą x_range, y_range i wynikowych wartości x_res i y_res.

importować matplotlib.Pyplot as Plt
Importuj Numpy
Import Scipy
od Scipy.Interpolol Import Interp1d
x_range = Numpy.Arange (12,20)
print ('x:', x_range)
Y_RANGE = Numpy.exp (-x_range/10)
Drukuj ('y:', y_range)
FUNC_LINEAR = SCIPY.interpolować.interp1d (x_range, y_range)
x_res = Numpy.Arange (12,19,0.1)
y_res = func_linear (x_res)
print ('new_x:', x_res)
print ('new_y:', y_res)
plt.rozproszenie (x_range, y_range, color = „czerwony”)
plt.Wykres (x_res, y_res, color = 'Orange')
plt.xlabel („x”)
plt.ylabel („y”)
plt.Tytuł („interpolacja 1-D”)
plt.pokazywać()
plt.SaveFig („Wynik/wykres.png ')


Jest to wynikowy ekran, na którym można zobaczyć implementację interpolacji 1-D na ekranie:

Interpolacja splajna

Ten przykład dotyczy interpolacji splajnu.

W polach inżynierii komputerowej modelowania wspomaganego komputerowego i grafiki komputerowej, częściowa krzywizna wielomianowa (parametryczna) jest częściej określana jako splajn. Ze względu na ich prostotę w budowie, prostotę i dokładność w ocenie oraz zdolność do przewidywania złożonych form poprzez dopasowanie krzywej i wysoce interaktywne projektowanie krzywej, splajny są często wykorzystywane w różnych dziedzinach.

Interpolacja splajna wykorzystuje splajny z czasem wielomianowym do zbudowania funkcji fragmentarycznej, w przeciwieństwie do interpolacji 1D, w której punkty są zamontowane dla pojedynczej krzywej.

Metoda Univariatespline () akceptuje dwa parametry, XS i YS i generuje funkcję podlegającą zapowiedzi, którą można wywołać nową wartością dla XS. Zobacz następujący załączony kod:

Kod jest bardzo podobny do poprzedniego przykładu, z wyjątkiem tego, że używamy tutaj różnych wartości wejściowych. Następnie interpolat.Funkcja Splev () jest używana na tych wartościach. Różne wartości są generowane dla x, y i t. Wartości te są wykreślane na ekranie z wierszem kodu w ostatniej sekcji załączonego obrazu:

Importuj Numpy
importować matplotlib.Pyplot as Plt
od Scipy Import Interpolol
X = Numpy.Arange (0, 12)
y = Numpy.cos (x ** 3)
t = interpolat.splrep (x, y, s = 0)
X = Numpy.Arange (0, Numpy.PI ** 2, Numpy.PI/100)
y = interpolat.Splev (x, t, der = 0)
plt.postać()
plt.fabuła (x, y, '*', x, y, x, numpy.cos (x),
x, y, „b”, color = „czerwony”)
plt.Legend ([„liniowy”, „Cubic Spline”, „true”])
plt.Oś ([-0.2, 5.6, -1.3, 1.2])
plt.Tytuł („Przykład interpolacji sześciennej”)
plt.pokazywać()


Poniżej znajduje się wygenerowany wykres, który wyjaśnia koncepcję interpolacji sześciennej-splajnowej:

Jednoczynnikowy interpolacja splajna

Porozmawiamy tutaj o jednoczynnikowym splinie. Pasuje do określonego zestawu punktów danych i jest 1-D Spline. Dane wejściowe x val i y cal są zamontowane do splajnu k stopnia za pomocą scipy.interpolować.Univariatespline. Scipy.interpolować.Metoda Univariatespline ma jeszcze jeden argument, S, który ustawia liczbę węzłów, określając warunek wygładzania. Splajn.Ustaw funkcję wygładzania () Funkcja oblicza splajn przy użyciu określonego współczynnika wygładzania i węzłów zidentyfikowanych przez poprzednie połączenie.

Importuj Numpy
importować matplotlib.Pyplot as Plt
od Scipy.interpolować import uniwariatezplin
x_val = Numpy.Linspace (-3, 3, 40)
y_val = Numpy.exp (-x_val ** 2) + 0.1 * Numpy.losowy.Randn (40)
plt.Tytuł („Univariate Spline”)
plt.Wykres (x_val, y_val, 'g.', MS = 8)
spline_shape = univariatespline (x_val, y_val)
XS_SHAPE = Numpy.Linspace (-3, 3, 2000)
plt.Wykres (xs_shape, spline_shape (xs_shape), „żółty”, lw = 3)
spline_shape.set_smoothing_factor (0.5)
plt.Wykres (xs_shape, spline_shape (xs_shape), color = 'Orange', lw = 3)
plt.pokazywać()


Poniżej znajduje się wygenerowany wykres poprzedniego kodu:

Interpolacja promieniowa funkcji podstawowej (RBF)

W tym ostatnim przykładzie skupimy się na funkcji promieniowej (RBF) w celu interpolacji. Interpolate Scipy.RBF jest stosowany do interpolacji N-Wymensu rozproszonych danych. Zgodnie z jego definicją, promieniowa funkcja podstawy odpowiada stałemu punktowi danych odniesienia. Scipy.interpolować.Klasa RBF służy do interpolacji funkcji bezpośrednio z danych rozproszonych N-D do domeny M-D za pomocą promieniowych funkcji podstawowych.

Poniższy załączony zrzut ekranu pokazuje pełny kod. Tutaj importujemy moduły RBF i Numpy. Następnie wartości są generowane dla XS_Val i YS_Val za pomocą Arange () i Numpy.metody sin (). Instrukcja drukowania służy do pokazania komunikatu „tutaj możesz zobaczyć wynik”. Utworzona jest zmienna „RES”, w której używana jest metoda RBF, a wygenerowane xs_val i ys_val są przekazywane jako parametry. Następnie można zobaczyć ZZ, w którym lista liczb jest generowana dla określonego zakresu. Na koniec wynik jest wyświetlany.

od Scipy.Interpolol Import RBF
Importuj Numpy
xs_val = Numpy.Arange (8)
ys_val = xs_val ** 3 + Numpy.sin (xs_val) + 2
Drukuj („Tutaj możesz zobaczyć wynik:”)
res = rbf (xs_val, ys_val)
ZZ = res (Numpy.Arange (2.1, 3, 0.1))
Drukuj (ZZ)


Poniżej znajduje się dane wyjściowe, w których seria liczb jest generowana z poprzedniego kodu, w którym stosowana jest metoda RBF.

Wniosek

W tym artykule omówiliśmy koncepcję Scipy Interpolate. Jego podstawowe typy i ogólne szczegóły są tutaj omawiane. Możesz łatwo znaleźć wszystkie wymagania dotyczące wspomnianego tematu szczegółowo z przykładami programowania. Omówiliśmy osobno wszystkie jego typy (interpolacja 1-D, interpolacja splajna, jednoczynnikowa interpolacja splajna i interpolacja RBF) z odpowiednimi wyjaśnieniami i przykładami, abyś mógł lepiej zrozumieć całą koncepcję.