Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańka jerzy.nawrocki@put.poznan.pl Obliczenia i metody numeryczne = a 2 + b 2 a + (b/a) 2 =b + (a/b) 2 Metody numeryczne begin a:= 3e-25; b:= 4e-25; m:= qrt(a*a + b*b); writeln(m) end. begin a:= 3e-25; b:= 4e-25; if a > b then m:= a*qrt(+ (b/a)*(b/a)) ele m:= b*qrt(+ (a/b)*(a/b)); writeln(m) end..e+ 5.E-25 Metody numeryczne (2) Cel wykładu Przedtawić: klayczną reprezentację liczb poób obliczania tzw. funkcji tandardowych (e x, co x, π) zybką metodę obliczania wartości wielomianu Metody numeryczne (3) Metody numeryczne (4) Reprezentacja tałopozycyjna Reprezentacja tałopozycyjna Część całkowita Część ułamkowa a 3 a 2 a a b b 2 b 3 b 4 (-) ( a 3 2 3 + a 2 2 2 + a 2 + a 2 + b 2 - + b 2 2-2 + b 3 2-3 + b 4 2-4 ) Metody numeryczne (5) Metody numeryczne (6) Metody numeryczne
Jerzy Nawrocki, Reprezentacja tałopozycyjna Wada Metody numeryczne (7) Metody numeryczne (8) 7 Metody numeryczne (9) Metody numeryczne () 4 Metody numeryczne () Metody numeryczne (2) Metody numeryczne 2
Jerzy Nawrocki, 4 4-2 Metody numeryczne (3) Metody numeryczne (4) c m c m x : x = (-) 2 c m {, } c= cecha m= mantya [/2, ) Metody numeryczne (5) Metody numeryczne (6) c m 8 7 + 2 Metody numeryczne (7) Metody numeryczne (8) Metody numeryczne 3
Jerzy Nawrocki, Obliczanie pierwiatków g(a) = a Metody numeryczne (9) Tranformacja do problemu znajdowania miejca zerowego f(x) f(x) = x 2 a Metoda tycznych (metoda Newtona): x k+ x k f(x k ) Geom. interpretacja pochodnej: f (x k ) = f(x k ) / (x k x k+ ) gdzie f (x) = 2x. Po przekztałceniu: x k+ = ½ (x k + a/x k ) Metody numeryczne (2) Iteracyjne algorytmy numeryczne Algorytm Herona obliczania pierwiatka kwadratowego a x = a jeśli a >= jeśli a < x k+ = ½ (x k + a/x k ) Heron z Alekandrii Rycina z niemieckiego tłumaczenia Pneumatyki z 688 r. http://pl.wikipedia.org/wiki/heron_z_alekandrii Metody numeryczne (2) Metody numeryczne (22) Wzór Taylora Wzór Maclaurina ~ 73 79: Cambridge Univerity 72: Royal Society 75: Wzór Taylora (zereg Taylora) (bez dowodu) Dla x = dotajemy: Brook Taylor 685-73 ~ Metody numeryczne (23) Colin Maclaurin (698 746) Metody numeryczne (24) Metody numeryczne 4
Jerzy Nawrocki, (e x ) = e x e = Wzór Maclaurina f(x) = e x N e x Σ x k / k! k= e() = 2,7.. e() = e x = + x/! + x 2 /2! + x 3 /3! + x 4 /4! +... num x T= den! e x x 2 x 3 2! 3! Colin Maclaurin (698 746) e x x /! + x /! + x 2 /2! + x 3 /3! +.. = + x /! + x 2 /2! + x 3 /3! +.. Metody numeryczne (25) Metody numeryczne (26) e x e x e x = + x/! + x 2 /2! + x 3 /3! + x 4 /4! +... e x = + x/! + x 2 /2! + x 3 /3! + x 4 /4! +... e() = 2,7.. e() = T= num den *x *x *x * x! *2 x 2 2! *3 x 3 3! e() = 2,7.. e() = void main(){ float x; // Argument e(x) canf("%g", &x); printf("e(%g)= %g\n", x, e(x)); return; } e()= Metody numeryczne (27) Metody numeryczne (28) Colin Maclaurin (698 746) Wzór Maclaurina f(x) = co x (co x) () = co x (co x) = in x (co x) = co x - (co x) (3) = in x (co x) (4) = co x... co x + x 2 /2! + + x 4 /4! +.. Metody numeryczne (29) co() = co(,57..) = co x + x 2 /2! + + x 4 /4! +.. T = num den *(-x 2 ) **2 *(-x -x 2 ) 2 2! *3*4 co(x) x 4 4! Metody numeryczne (3) Metody numeryczne 5
Jerzy Nawrocki, π π = /3 + /5 /7 + π tg(π/4)=??? arctg() = π/4 (-) k arctg(x) = Σ 2k+ k= x 2k+ T = num den *(-) *(-) *(-) - - +2 +2 +2 3 5 7 Colin Maclaurin (698 746) π/4 = x 3 /3 + x 5 /5 x 7 /7 + = /3 + /5 /7 + Metody numeryczne (3) Metody numeryczne (32) Wielomiany p(x) = a k x Σk= k = a x + a x + a 2 x 2 + Metody numeryczne (33) Nagłówek p Wywołanie p float p(float x, int n, float a[ ])... #define MaxN 5 void main(){ float x; // Zmienna x int n; // Stopien wielomianu float a[maxn+]; // Wpolczynniki wielomianu... printf("%g\n", p(x, n, a)); return; } Metody numeryczne (34) Wielomiany Schemat p(x) = a k x Σk= k = a x + a x + a 2 x 2 + p(x,) = a p(x,n) = a x n + a x n- +.. + a n- x + a n p(x,) = a x + a float p(float x, int n, float a[ ]){ float reult, PowerX; int k = ; p(x,2) = a x 2 + a x + a 2 PowerX = ; p(x,3) = a x 3 + a x 2 + a 2 x + a 3 reult = a[] * PowerX; while (k < n){ k = k+; PowerX = PowerX * x; p(x,4) = a x 4 + a x 3 + a 2 x 2 + a 3 x + a 4 reult = reult + a[k] * PowerX; } return reult; } Metody numeryczne (35) Metody numeryczne (36) Metody numeryczne 6
Jerzy Nawrocki, Obliczanie wielomianu chemat p(x,n) = a x n + a x n- +.. + a n- x + a n p(x,) = a p(x,) = a x + a = p(x, )x + a p(x,2) = a x 2 + a x + a 2 p(x,3) = a x 3 + a x 2 + a 2 x + a 3 Obliczanie wielomianu chemat p(x,n) = a x n + a x n- +.. + a n- x + a n p(x,) = a p(x,) = a x + a = p(x, )x + a p(x,2) = a x 2 + a x + a 2 = (a x + a )x + a 2 = p(x,)x+a 2 p(x,3) = a x 3 + a x 2 + a 2 x + a 3 p(x,4) = a x 4 + a x 3 + a 2 x 2 + a 3 x + a 4 p(x,4) = a x 4 + a x 3 + a 2 x 2 + a 3 x + a 4 Metody numeryczne (37) Metody numeryczne (38) Obliczanie wielomianu chemat Schemat p(x,n) = a x n + a x n- +.. + a n- x + a n p(x,) = a p(x,) = a x + a = p(x, )x + a p(x,2) = a x 2 + a x + a 2 = (a x + a )x + a 2 = p(x,)x+a 2 p(x,3) = a x 3 + a x 2 + a 2 x + a 3 = p(x,) = a p(x,n) = a x n + a x n- +.. + a n- x + a n p(x,n) = p(x, n-)x + a n = (a x 2 + a x + a 2 )x + a 3 = p(x,2)x + a 3 p(x,4) = a x 4 + a x 3 + a 2 x 2 + a 3 x + a 4 = = (a x 3 + a x 2 + a 2 x + a 3 )x + a 4 = p(x,3)x + a 4 p(x,n) = p(x, n-)x + a n Metody numeryczne (39) Metody numeryczne (4) Źle uwarunkowane zadania Uwarunkowanie zadania Metody numeryczne (4) Zadanie źle uwarunkowane: Niewielkie względne zmiany danych duże względne zmiany wyniku 2 p(x) = a 2 x 2 + + a x + a = k= Π(x k) = x =, 2,, 2 a 9 = -2 a 9 = -(2 + 2-23 ) x = 5 x = 3,99 + 2,5i Metody numeryczne (42) Metody numeryczne 7