• Nie Znaleziono Wyników

Interpolacja funkcjami sklejanymi.

N/A
N/A
Protected

Academic year: 2021

Share "Interpolacja funkcjami sklejanymi."

Copied!
2
0
0

Pełen tekst

(1)

Interpolacja funkcjami sklejanymi.

Tomasz Chwiej 27 listopada 2011

Naszym zadaniem będzie naisanie programu do interpolacji przy pomocy funkcji sklejanych będących wielomianami 3 stopnia.

1 Program

1. Napisać procedurę do wyznaczania wartości drugich pochodnych w węzłach. Do procedury należy przekazać: a) wektor z położeniami węzłów (xw), b) wektor wartościami funkcji (yw), c) liczbę węzłów (n), d) wektor do którego procedura zapisze wartości drugich pochodnych (w), e) wartości drugich pochodnych w skrajnych węzłach (alfa i beta)

void wyzM(float *xw,float *yw, float *w, int n, float alfa, float beta) Uwaga: wszystkie elementy wektorów indeksujemy od 1 - żeby uniknąć pro- blemów w dalszej części zadania (rozwiązywanie układu równań). Całkowita liczba węzłów będzie więc równa n.

W celu wyznaczenia wartości drugich pochodnych trzeba skonstruować na podstawie od- ległości pomiędzy węzłami oraz wartości funkcji odpowiedni układ równań - tak jak po- kazano to na wykładzie. Przyjąć warunki z drugą pochodną. W pierwszym i ostatnim wierszu układu równań znajduje się 1 na diagonali a pozostałe elementy są równe 0. W wektorze wyrazów wolnych w miejsce pierwszego elementu wstawiamy wartość α, a do ostatniego elementu wartość β.

Układ równań rozwiązać metodą gaussj z Numerical Recipes.

2. Napisać procedurę do wyznaczania wartości funkcji w położeniu międzywęzłowym. Część argumentów będzie identyczna jak dla procedury wyzM, ale dodajemy jeszcze wartość aktualną x:

float wyzX(float *xw,float *yw, float *w, int n, float x){

y=...

return y;

}

W procedurze najpierw trzeba określić w którym przedziale znajduje się x , a następnie wyznaczyć wartość korzystając z wzorów pokazanych na wykładzie.

Uwaga: Może się zdarzyć że x pokryje się z położeniem któregoś z węzłów tj.

odległość między nimi będzie mniejsza niż 10−2hi (hi jest szerokością podprze- działu). Trzeba wykryć taki przypadek i od razu zwrócić wartość funkcji w danym węźle.

1

(2)

3. Napisać program do interpolacji funkcjami sklejanymi, który będzie korzystał z dwóch powyższych procedur.

2 Wyniki

Przy użyciu swojego programu przeprowadzić interpolację funkcji f1(x) = 1

1 + x2 (1)

oraz

f2(x) = cos(2x) (2)

Zadania do wykonania:

1. Dla funkcji f1(x) oraz 10 węzłów w przedziale x ∈ [−5, 5] należy wyznaczyć wartości drugich pochodnych i porównać je z ”dokładniejszymi” wartościami liczonymi zgodnie z wzorem:

d2f

dx2 f (x− ∆x) − 2f(x) + f(x + ∆x)

(∆x)2 (3)

Przyjąć ∆x = 0.01. Wykonać wykres wartości drugich pochodnych w zależności od poło- żenia węzłów pokazujący porównanie obu sposobów obliczania drugich pochodnych.

2. Wykonać interpolację dla f1(x) oraz f2(x) w przedziale x ∈ [−5, 5], dla liczby węzłów:

5,7,8,15,21. Wykonać rysunki funkcji interpolowanej i interpolującej dla każdego przypad- ku.

Cytaty

Powiązane dokumenty

W sprawozdaniu we wstępie proszę opisać podstawy metody, proszę określić jakość interpolacji (czy obserwujemy efekt Rungego? co się dzieje w pobliżu krańców

[r]

Proszę zapoznać się z materiałem z poniższego linka i na podstawie zamieszczonych tam przykładów zróbcie zadania:. na podstawie przykładu 1 proszę zrobić zad 8.68/213

Z uwagi na niewielkie wymiary wyprowadzeń obudowy SOT-23 użycie metody wyznaczenia wartości współczynnika emisyjności ε polegającej na porównaniu

Jakość danej funkcji interpolacyjnej określana jest przez krzywe bezwzględne- go oraz względnego jej odchylenia od funkcji pierwotnej.. Z przedstawionych wyżej rysunków wynika,

2) Interpolacja funkcji, której przebieg znacznie różni się od przebiegu wielomianu interpolacyjnego, może nie dawać dobrych wyników przy dużej liczbie węzłów..

{Dla łatwiejszych obliczeń, środek układu odniesienia umieszczę w punkcie wyrzutu kuli (rys.2

Jeśli jego najkrótszy bok (będący naprzeciwko kąta 30 ◦ ) oznaczymy literą a, to jego pozostałe boki będą miały długości a √.. 3 (bok naprzeciwko kąta 60 ◦ ) oraz