Praca domowa
Metody numeryczne
Kamil Żyłko
Wydział Inżynierii Produkcji
Automatyka i robotyka
Studia magisterskie stacjonarne
Warszawa 2013
1
1. Treść zadania Z90.
Dana jest funkcja zadana poniższą tablicą:
xi -5 -4,5 -4 -3,5 -3 -2,5 -2
f(xi) 1,536098 2,318505 3,663004 6,12323 10,98901 21,59244 47,61905
xi -1,5 -1 -0,5 0 0,5 1 1,5
f(xi) 120,3008 333,3333 761,9048 1000 761,9048 333,3333 120,3008
xi 2 2,5 3 3,5 4 4,5 5
f(xi) 47,61905 21,59244 10,98901 6,12323 3,663004 2,318505 1,536098
gdzie xi jest argumentem funkcji a f(xi) jej wartością, i=1,& , 21. Wyznacz:
a) wielomiany interpolacyjne Newtona i Lagrange a szóstego stopnia w przedziale [-1.5 , 1.5],
b) wielomian interpolacyjny składający się z funkcji sklejanych trzeciego i/lub czwartego stopnia
na przedziale [-5, 5].
Przedstaw graficznie na jednym wykresie wielomiany z punktów a) i b). Porównaj błąd interpolacji w
przedziale [-1,5, 1,5].
2. Opis metod numerycznych wykorzystanych do rozwiÄ…zania zadania.
Interpolacja stosowana jest w celu określenia wartości funkcji między znanymi punktami jej
przebiegu. Stosuje się przybliżanie funkcji za pomocą wielomianu odpowiednio wysokiego stopnia.
Można to wyznaczyć dzięki znanym wartościom funkcji w danych punktach. Tych znanych punktów
jest n+1, natomiast wyznaczany wielomian może być stopnia co najwyżej n.
a) Metoda Newtona
Wielomian interpolacyjny metodą Newtona można zapisać jako:
= -
= + - + - - + ï" + - & - -
Do wyznaczenia wielomianu można wykorzystać metodę interpolacji Newtona. W związku z tym,
że należy wyznaczyć wielomian w przedziale [-1.5 , 1.5], a punkty xi są w równych odległościach,
należy zastosować wzory interpolacyjne Newtona dla równoodległych wartości argumentu.
2
W pierwszej kolejności mając dane wartości funkcji dla argumentów będących w równych
odległościach wyznacza się różnice między wartościami funkcji dla argumentów sąsiadujących ze
sobą. Można zapisać to jako:
" = -
" = -
& & & & & & & & & & ..
" = -
Następnie wylicza się różnice między wyznaczonymi przed chwilą różnicami:
" = " - "
" = " - "
& & & & & & & .
" = " - "
Powyższą czynność powtarza się aż do momentu, w którym zostaną wyliczone wszystkie różnice
różnic i nie będzie możliwości wyznaczenia kolejnej. Ostatnia wyznaczona różnica zapisana jest jako:
" = " - "
Po wyliczeniu różnic należy przejść do wyznaczania wielomianu opisanego wzorem:
- 1 " " - 1 & - - 1 " "
= + " " + + ï" +
2! !
=
-
b) Metoda Lagrange a
Wielomian interpolacyjny metodą Lagrange a można zapisać jako:
=
- - & - - & -
= "
- - & - - & -
c) Interpolacja za pomocÄ… funkcji sklejanych
Niech f(x) " C
. s(x) " S3 ("n) jest funkcją sklejaną stopnia trzeciego dla funkcji f(x) jeżeli
s(xi)=f(xi)=yi.
Interpolacja funkcjami sklejanymi polega na podziale przedziału na tyle kolejnych
przedziałów, aby każdy z nich zawierał najwyżej kilka argumentów. Punkty wspólne
3
utworzonych przedziałów nazywane są węzłami interpolacji. W tym samym węzle, czyli
stanowiącym początek jednego przedziału i koniec drugiego przedziału funkcja musi
przyjmować takie same wartości.
W każdym z tych przedziałów interpoluje się funkcję wielomianem interpolacyjnym.
3. Obliczenia numeryczne metodami:
a) Newtona
W związku z tym, że argumenty funkcji są równoodległe oraz dlatego, że wartości
przyjmowane przez funkcję są takie same dla argumentów ze znakiem + i ze znakiem
należy wyznaczyć wielomian metodą Newtona dla równoodległych wartości argumentu
jedynie dla argumentów od 0 do +1,5.
W tym przedziale podane są 4 argumenty, więc wyznaczony wielomian będzie miał
postać trzeciego stopnia.
x y "y " y " y
0 1000
-238.0952
0.5 761.9048 -190.4763
-428.5715 406.0153
1 333.3333 215.539
-213.0325
1.5 120.3008
- 1 " " - 1 - 2 " "
= + " " + + =
2! 3!
- 1 " -190.4763 - 1 - 2 " 406.0153
= 1000 + " -238.0952 + + =
2! 3!
= 1000 + " -238.0952 + - 1 " -95.23815 + - 1 - 2 " 67.66921667
= = = 2
- 0.5
Po podstawieniu do wzoru wartości 2x zamiast q otrzymujemy:
= 2 2 - 1 2 - 2 67.66921667 + 2 2 - 1 -95.23815
+ 2 -238.0952 + 1000 =
= 4 - 2 2 - 2 67.66921667 + 4 - 2 -95.23815 - 476.1904 + 1000 =
= 8 - 8 - 4 + 4 67.66921667 - 380.9526 + 190.4763 - 476.1904 + 1000 =
= 541.3537334 - 541.3537334 - 270.6768667 + 270.6768667 - 380.9526
- 285.7141 + 1000 =
= 541.3537334 - 1192.9832 - 15.0372333 + 1000
4
Ze względu na to, że wartości przyjmowane przez funkcję są takie same dla argumentów ze
znakiem + i ze znakiem -, postać wielomianu wyznaczonego metodą Newtona jest następująca:
W(x)=
|541.3537334 | - |1192.9832 | - |15.0372333 | + 1000
b) Lagrange a
x 0 0.5 1 1.5
y 1000 761.9048 333.3333 120.3008
=
- - & - - & -
= " =
- - & - - & -
- 0.5 - 1 - 1.5
= 1000 " +
0 - 0.5 0 - 1 0 - 1.5
- 0 - 1 - 1.5
+761.9048 " +
0.5 - 0 0.5 - 1 0.5 - 1.5
- 0 - 0.5 - 1.5
+333.3333 " +
1 - 0 1 - 0.5 1 - 1.5
- 0 - 0.5 - 1
+120.3008 " =
1.5 - 0 1.5 - 0.5 1.5 - 1
- 1 - 1.5
= 1000 - 500 " +
0.5 -1.5
- 1 - 1.5
+761.9048 " +
-0.5 -0.5
- 0.5 - 1.5
+333.3333 " +
0.5 -0.5
- 0.5 - 1
+120.3008 " =
1.5 0.5
- 1.5
= 1000 - 1500 + 500 " +
-0.75
- 1.5
+ 761.9048 - 761.9048 " +
0.25
- 1.5
+ 333.3333 - 166.66665 " +
-0.25
- 1
+ 120.3008 - 60.1504 " =
0.75
= -1333.333333 + 4000 - 3666.666667 + 1000 +
+3047.6192 - 3047.6192 - 4571.4288 + 4571.4288 -
-1333.3332 + 666.6666 + 1999.9998 - 999.9999 +
+160.4010667 - 80.20053333 - 160.4010667 + 80.20053333 =
= 541.3537337 - 1192.9832 - 15.03723367 + 1000
5
Powyższa postać wielomianu ma tylko zastosowanie dla funkcji w przedziale [0, 1.5] z kolei
dla funkcji w przedziale [-1.5, 1.5]:
= |541.3537337 | - |1192.9832 | - |15.03723367 | + 1000
c) funkcji sklejanych
W przedziale [-5;5] znane są wartości funkcji dla 21 argumentów. W związku z tym można
dokonać podziału na 6 przedziałów, w dwóch z nich wyznaczone zostaną wielomiany
czwartego stopnia, zaÅ› w czterech z nich wielomiany trzeciego stopnia.
Tak więc będą to przedziały: [-5;-3], [-3;-1.5], [-1.5;0], [0;1.5], [1.5;3], [3;5].
Interpolacja funkcji w przedziale [-5;-3]
x -5 -4.5 -4 -3.5 -3
y 1,536098 2,318505 3,663004 6,12323 10,98901
=
- - & - - & -
= " =
- - & - - & -
+ 4.5 + 4 + 3.5 + 3
= 1.536098 " +
-5 + 4.5 -5 + 4 -5 + 3.5 -5 + 3
+ 4 + 3.5 + 3 + 5
+2.318505 " +
-4.5 + 4 -4.5 + 3.5 -4.5 + 3 -4.5 + 5
+ 3.5 + 3 + 5 + 4.5
+3.663004 " +
-4 + 3.5 -4 + 3 -4 + 5 -4 + 4.5
+ 3 + 5 + 4.5 + 4
+6.12323 " +
-3.5 + 3 -3.5 + 5 -3.5 + 4.5 -3.5 + 4
+ 3 + 5 + 4.5 + 4
+10.98901 " =
-3.5 + 3 -3.5 + 5 -3.5 + 4.5 -3.5 + 4
+ 3.5 + 3
= 1.536098 + 13.056833 + 27.649764 " +
1.5
+ 3 + 5
+ 2.318505 + 17.3887875 + 32.45907 " +
-0.375
+ 5 + 4.5
+ 3.663004 + 23.809526 + 38.461542 " +
0.25
+ 4.5 + 4
+ 6.12323 + 30.61615 + 91.84845 " +
-0.375
+ 4.5 + 4
+ 10.98901 + 87.91208 + 164.83515 " =
-0.375
= 1.536098 + 9.984637 + 16.129029 + 13.056833 + 84.8694145
1
+ 137.0967465 + 27.649764 + 179.723466 + 290.322522 " +
1.5
6
+ 2.318505 + 18.54804 + 34.777575 + 17.3887875 + 139.1103
1
+ 260.8318125 + 32.45907 + 259.67256 + 486.88605 " +
-0.375
+ 3.663004 + 34.798538 + 82.41759 + 23.809526 + 226.190497
1
+ 535.714335 + 38.461542 + 365.384649 + 865.384695 " +
0.25
+ 6.12323 + 52.047455 + 110.21814 + 30.61615 + 260.237275
1
+ 551.0907 + 91.84845 + 780.711825 + 1653.2721 " +
-0.375
+ 10.98901 + 93.406585 + 197.80218 + 87.91208 + 747.25268
+ 1582.41744 + 164.83515 + 1401.098775 + 2967.0327
1
" =
-0.375
= 1.024065333 + 15.36098 + 85.76547167 + 211.213475 + 193.548348 +
-6.18268 - 95.83154 - 550.25852 - 1388.01166 - 1298.3628 +
+14.652016 + 234.432256 + 1388.278516 + 3604.395936 + 3461.53878 +
-16.32861333 - 220.43628 - 1232.810307 - 3551.4734 - 4408.7256 +
-29.30402667 - 483.51644 - 2959.706693 - 7956.04324 - 7912.0872 =
= -36.13923867 - 549.991024 - 3268.731532 - 9079.918889
- 9964.088472
Interpolacja funkcji w przedziale [0;1.5]
x 0 0,5 1 1,5
y 1000 761,9048 333,3333 120,3008
=
- - & - - & -
= " =
- - & - - & -
- 0.5 - 1 - 1.5
= 1000 " +
0 - 0.5 0 - 1 0 - 1.5
- 0 - 1 - 1.5
+761.9048 " +
0.5 - 0 0.5 - 1 0.5 - 1.5
- 0 - 0.5 - 1.5
+333.3333 " +
1 - 0 1 - 0.5 1 - 1.5
- 0 - 0.5 - 1
+120.3008 " =
1.5 - 0 1.5 - 0.5 1.5 - 1
- 1 - 1.5
= 1000 - 500 " +
0.5 -1.5
- 1 - 1.5
+761.9048 " +
-0.5 -0.5
- 0.5 - 1.5
+333.3333 " +
0.5 -0.5
- 0.5 - 1
+120.3008 " =
1.5 0.5
7
- 1.5
= 1000 - 1500 + 500 " +
-0.75
- 1.5
+ 761.9048 - 761.9048 " +
0.25
- 1.5
+ 333.3333 - 166.66665 " +
-0.25
- 1
+ 120.3008 - 60.1504 " =
0.75
= -1333.333333 + 4000 - 3666.666667 + 1000 +
+3047.6192 - 3047.6192 - 4571.4288 + 4571.4288 -
-1333.3332 + 666.6666 + 1999.9998 - 999.9999 +
+160.4010667 - 80.20053333 - 160.4010667 + 80.20053333 =
= 541.3537337 - 1192.9832 - 15.03723367 + 1000
W programie Matlab możliwe jest graficzne przedstawienie rozwiązania metodą funkcji sklejanych.
Umożliwia to wpisanie następujących komend:
x = -5:5;
y = [1.536098 3.663004 10.98901 47.61905 333.3333 1000 333.3333 47.61905 10.98901 3.663004
1.536098];
cs = spline(x,[0 y 0]);
xx = linspace(-5,5,101);
plot(x,y,'o',xx,ppval(cs,xx),'-');
4. Graficzna prezentacja wyników
Rozwiązanie metodą funkcji sklejanych wygląda następująco, po wykonaniu w programie Matlab:
8
Rozwiązanie metodą Newtona wygląda z kolei następująco:
1200
1000
800
600
400
200
0
-6 -4 -2 0 2 4 6
5. Przedstawienie otrzymanych wyników
Wielomian wyznaczony metodą Newtona ma postać:
= |541.3537334 | - |1192.9832 | - |15.0372333 | + 1000
Z kolei wyznaczony metodÄ… Lagrange a:
= |541.3537337 | - |1192.9832 | - |15.03723367 | + 1000
9
Na podstawie powyższych wielomianów można wyznaczyć błąd interpolacji. Do jego określenia
można ustalić wartości jakie przyjmują funkcje dla argumentu wynoszącego: 0.1
Dla wielomianu wyznaczonego metodÄ… Newtona wynosi ona 987,1077984034.
Dla wielomianu wyznaczonego metodÄ… Lagrange a wynosi ona 987,1077983667.
, ,
Błąd interpolacji liczymy więc następująco: = =1.013060581*10^-10
,
10
Wyszukiwarka
Podobne podstrony:
48 Praca organiczna Jay Friedman Organize ! 2013 06 0918 12 06Testownik save (Kopia powodująca konflikty (użytkownik Filip141) 2013 06 18)Praca domowa z C 12menum praca domowa2013Tygodnik nrh 18 12 rWSM 06 51 plPraca domowa 4 OgarnijTemat com18 Obw M z 2013 r w spr wys stawek opł za korzyst ze rodowwięcej podobnych podstron