Dělení. Demonstrační cvičení 8 INP

Podobné dokumenty
Dělení. INP 2008 FIT VUT v Brně

Operace v FP a iterační algoritmy. INP 2008 FIT VUT v Brně

Numerická matematika 1

METODA PŮLENÍ INTERVALU (METODA BISEKCE) METODA PROSTÉ ITERACE NEWTONOVA METODA

Newtonova metoda. 23. října 2012

Řešení nelineárních rovnic

Matematika pro informatiku 4

Dělení. MI-AAK(Aritmetika a kódy)

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012

Numerické řešení rovnice f(x) = 0

Numerické řešení nelineárních rovnic

DRN: Kořeny funkce numericky

Nelineární rovnice. Numerické metody 6. května FJFI ČVUT v Praze

Příklad 1 ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 6

Libovolnou z probraných metod najděte s přesností na 3 desetinná místa kladný kořen rovnice. sin x + x 2 2 = 0.

CVIČNÝ TEST 1. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 21 IV. Záznamový list 23

Aritmetické operace a obvody pro jejich realizaci

10. cvičení - LS 2017

Obsah. Metodický list Metodický list Metodický list Metodický list

Numerické řešení nelineárních rovnic

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Numerické řešení nelineárních rovnic

BAKALÁŘSKÁ PRÁCE. Metody pro výpočet kořenů polynomů

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Funkce jedné reálné proměnné. lineární kvadratická racionální exponenciální logaritmická s absolutní hodnotou

Parametrická rovnice přímky v rovině

Co je obsahem numerických metod?

Zlín, 23. října 2011

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Příklady k analytické geometrii kružnice a vzájemná poloha kružnice a přímky

Obecná rovnice kvadratické funkce : y = ax 2 + bx + c Pokud není uvedeno jinak, tak definičním oborem řešených funkcí je množina reálných čísel.

Semestrální písemka BMA3 - termín varianta A13 vzorové řešení

f(x) = arccotg x 2 x lim f(x). Určete všechny asymptoty grafu x 2 2 =

Numerické metody a programování. Lekce 7

Praha & EU: investujeme do vaší budoucnosti. Daniel Turzík, Miroslava Dubcová,

Nelineární obvody. V nelineárních obvodech však platí Kirchhoffovy zákony.

Připomenutí co je to soustava lineárních rovnic

Hledání extrémů funkcí

Přijímací zkoušky z matematiky pro akademický rok 2017/18 NMgr. studium Učitelství matematiky ZŠ, SŠ

CVIČNÝ TEST 10. OBSAH I. Cvičný test 2. Mgr. Renáta Koubková. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19

úloh pro ODR jednokrokové metody

Struktura a architektura počítačů (BI-SAP) 5

Numerická matematika Banka řešených příkladů

Poznámka: Násobení je možné vyložit jako zkrácený zápis pro součet více sčítanců. Například:

E. Pohyblivářádováčárka

2.7.6 Rovnice vyšších řádů

Pedagogická poznámka: Celý obsah se za hodinu stihnout nedá. z ] leží na kulové ploše, právě když platí = r. Dosadíme vzorec pro vzdálenost:


Moderní numerické metody

M - Příprava na 12. zápočtový test

Numerická stabilita algoritmů

= - rovnost dvou výrazů, za x můžeme dosazovat různá čísla, tím měníme

Úvod do programování 7. hodina

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Soustavy lineárních rovnic-numerické řešení. October 2, 2008

Diferenciál a Taylorův polynom

Funkce. RNDR. Yvetta Bartáková. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Variace. Kvadratická funkce

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

Derivace funkcí více proměnných

4 Numerické derivování a integrace

15. KubickÈ rovnice a rovnice vyööìho stupnï

Nerovnice a nerovnice v součinovém nebo v podílovém tvaru

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0

3. Reálná čísla. většinou racionálních čísel. V analytických úvahách, které praktickým výpočtům

. je zlomkem. Ten je smysluplný pro jakýkoli jmenovatel různý od nuly. Musí tedy platit = 0

1 Polynomiální interpolace

M - Příprava na 1. čtvrtletku pro třídu 4ODK

Násobení. MI-AAK(Aritmetika a kódy)

Funkce pro studijní obory

ŘEŠENÍ NELINEÁRNÍCH ROVNIC

Posloupnosti a jejich limity

Celá čísla. Celá čísla jsou množinou čísel, kterou tvoří všechna čísla přirozená, čísla k nim opačná a číslo nula.

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

ŘEŠENÍ NELINEÁRNÍCH ROVNIC

Přijímací zkoušky z matematiky pro akademický rok 2016/17 NMgr. studium Učitelství matematiky ZŠ, SŠ

Extrémy funkce dvou proměnných

1.1 Existence a jednoznačnost řešení. Příklad 1.1: [M2-P1] diferenciální rovnice (DR) řádu n: speciálně nás budou zajímat rovnice typu

Algebraické rovnice. Obsah. Aplikovaná matematika I. Ohraničenost kořenů a jejich. Aproximace kořenů metodou půlení intervalu.

Numerická integrace a derivace

Hledáme lokální extrémy funkce vzhledem k množině, která je popsána jednou či několika rovnicemi, vazebními podmínkami. Pokud jsou podmínky

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

metoda Regula Falsi 23. října 2012

Univerzita Karlova v Praze Pedagogická fakulta

Variace. Číselné výrazy

11. přednáška 10. prosince Kapitola 3. Úvod do teorie diferenciálních rovnic. Obyčejná diferenciální rovnice řádu n (ODR řádu n) je vztah

Architektury počítačů

Nerovnice, grafy, monotonie a spojitost

CVIČNÝ TEST 9 OBSAH. Mgr. Václav Zemek. I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 17 IV. Záznamový list 19

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

M - Příprava na 1. čtvrtletku pro třídy 2P a 2VK

Struktura a architektura počítačů (BI-SAP) 6

GEOMETRICKÁ OPTIKA. Znáš pojmy A. 1. Znázorni chod význačných paprsků pro spojku. Čočku popiš a uveď pro ni znaménkovou konvenci.

MATEMATIKA. Příklady pro 1. ročník bakalářského studia. II. část Diferenciální počet. II.1. Posloupnosti reálných čísel

Variace. Mocniny a odmocniny

CVIČNÝ TEST 5. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Poznámka: V kurzu rovnice ostatní podrobně probíráme polynomické rovnice a jejich řešení.

Transkript:

Dělení Demonstrační cvičení 8 INP

Přístupy k dělení sekvenční s restaurací nezáporného zbytku bez restaurace nezáporného zbytku SRT kombinační obvod založen na úplné odečítačce iterační algoritmy Newtonův iter. algoritmus

Dělení (bez znamének) Hledáme: podíl a zbytek dělení D/d Platí: D = Q.d + R D dělenec (2n) d dělitel (n) Q podíl (n) R zbytek (n) Princip: v každém kroku (i) se pokoušíme odečíst od průběžného zbytku Ri posunutý dělitel (2 -i d o i bitů vpravo)

Dělení 38:5 ( d vpravo, Ri v pevné poloze) D=100110b (38) d=101b (5) Ri+1= Ri - qn-i2 -i d i=0 100110 R0=D 2 -i d > Ri => qn-i= q3 =0-000000 q32 0 d (5.) i=1 100110 R1 2 -i d < Ri => qn-i = q2 =1-010100 q22-1 d i=2 010010 R2 2 -i d < Ri => qn-i = q1 =1-001010 q12-2 d i=3 001000 R3 2 -i d < Ri => qn-i = q0 =1-000101 q02-3 d 011 R=R4 Q=0111b (7) R=011b (3)

Dělení modifikovaný postup (Praxe: Ri, d v pevné poloze) D=100110b (38) d=101b (5) Ri+1= 2Ri - qn-id i=0 100110 2R0=D d > 2R0 => Q=0-000000 q3d i=1 100110 R1 00110x 2R1 d < 2R1 => Q=01-101000 q2d i=2 10010x R2 0010xx 2R2 d < 2R2 => Q=011-101000 q1d i=3 1000xx R3 000xxx 2R3 d < 2R3 => Q=0111-101000 q0d 011xxx R4 =2 4 R => R = 2-4 R4 Q=0111b (7) R=011b (3)

30=00011110, 7=0111, -7=1001 00011110 +1001 -d 10101110 <0, => c4=0 +0111 +d (korekce) 00011110 <- 0011110x +1001 -d 1100110x <0 => c3=0 +0111 +d (korekce) 0011110x 011110xx +1001 -d 000010xx >0 => c2=1 00010xxx +1001 -d 10100xxx <0 => c1=0 +0111 +d (korekce) 00010xxx 0010xxxx +1001 -d 1011xxxx <0 => c0=0 +0111 +d (korekce) 0010xxxx zbytek 2 Příklad: 30:7=4, zbytek 2 s restaurací nezáporného zbytku

30=00011110, 7=0111, -7=1001 00011110 +1001 -d 10101110 <0 => c4 = 0 0101110x <- +0111 +d 1100110x <0 => c3 = 0 100110xx +0111 +d 000010xx >0 => c2 = 1 00010xxx +1001 -d 10100xxx <0 => c1 = 0 0100xxxx +0111 +d 1011xxxx <0 => c0 = 0 +0111 +d (korekce na kladný zbytek) 0010xxxx zbytek 2 Příklad: 30:7=4, zbytek 2 bez restaurace nezáporného zbytku Úspornější z hlediska počtu operací.

Algoritmus SRT (1958) (Sweeney, Robertson, Tocher) umožňuje dělení čísel se znaménkem prováděné operace se pro každý krok určují (odhadují) podle nejvyšších tří bitů průběžného zbytku na závěr se případný záporný zbytek koriguje na kladný algoritmus může selhat

Algoritmus SRT tabulka odhadů Průběžný zbytek Ri d>0 bit podílu d>0 operace d<0 bit podílu d<0 operace 000 111 0 0 001 010 1 -d, -1 +d, 011 101 110-1 +d, 1 -d, 100

49=00110001, 7=0111, -7=1001-49=11001111 (d>0) -1 11001111 0111 +d 00111111 <- +1 0111111x 1001 -d 0000111x 0 000111xx <- +1 00111xxx <- 1001 -d 11001xxx <- -1 1001xxxx 0111 +d 0000xxxx zbytek 0 Q = -1 1 0 1 1 = Ri 000 111 001 010 011 101 110 100 Příklad: -49:7=-7, zb 0 SRT d>0 bit podílu 0 1-1 d>0 operace -d, +d, d<0 bit podílu 0-1 1 d<0 operace +d, -d, 2 4 2 3 2 2 2 1 2 0 = -16+8+0+2-1 = -7

53=00110101, 6=0110, -6=1010 1 00110101 1010 -d 11010101-1 1010101x <- 0110 +d 0000101x 0 000101xx <- 1 00101xxx <- 1010 -d 11001xxx <- -1 1001xxxx 0110 +d 1111xxxx záporný zbytek 0110 +d (korekce) 0101 zbytek 5 Ri 000 111 001 010 011 Příklad: 53:6=8, zb 5 SRT d>0 bit podílu 0 1 d>0 operace -d, d<0 bit podílu 0-1 d<0 operace +d, Q = 1 1 0 1 1 = 16-8+0+2-1=9 101 110 100-1 +d, 1 -d, po korekci 9-1=8

53=00110101, 6=0110, -6=1010-1 00110101 1010 +d 11010101 1 1010101x <- 0110 -d 0000101x 0 000101xx <- -1 00101xxx <- 1010 +d 11001xxx <- 1 1001xxxx 0110 -d 1111xxxx záporný zbytek 0110 +d (korekce) 0101 zbytek 5 Příklad: 53: (-6)=-8, zb 5 SRT Ri 000 111 001 010 011 d>0 bit podílu 0 1 d>0 operace -d, d<0 bit podílu 0-1 d<0 operace +d, Q = -1 1 0-1 1 = -16+8+0-2+1=-9 101 110 100-1 +d, 1 -d, po korekci -9+1=-8

51=00110011, 7=0111, -7=1001 +1 00110011 1001 -d 11000011 <- -1 1000011x 0111 +d 1111011x <- 0 111011xx <- -1 11011xxx 0111 +d 01001xxx <- -1 1001xxxx 0111 +d 0000xxxx zbytek 0 Q = 1 1 0 1 1 = 16-8-2-1 = 5 Příklad: 51: 7=7, zb 2 SRT Ri 000 111 001 010 011 101 110 100 Výsledek není správný! Odhad podle 3 bitů nepostačuje. Demonstrovali jsem selhání algoritmu SRT. d>0 bit podílu 0 1-1 d>0 operace -d, +d, d<0 bit podílu 0-1 1 d<0 operace +d, -d,

Selhání algoritmu SRT Odhad podle tří bitů průběžného zbytku je nedostatečný způsobuje časté chybování postupu SRT. Praktické realizace postupu (např. Pentium) odhadují hodnotu číslice podílu podle 7 bitů průběžného zbytku a podle 5 bitů hodnoty dělitele.

Iterační algoritmy: Newtonův iterační algoritmus pro dělení y f(x) x i x i+1 x Na základě odhadu x i hledáme přesnější odhad x i+1 v bodě průsečíku tečny s osou x. Rovnice přímky procházející bodem f(x i ) je y - f(x i ) = f'(x i )(x - x i ) Pokládáme-li přímku za aproximaci funkce f(x), můžeme psát f(x i+1 ) - f(x i ) = f'(x i )(x i+1 - x i ) V průsečíku tečny s osou x je f(x i+1 ) = 0, takže odtud dostáváme iterační vzorec x i+1 = x i - f(x i )/f'(x i )

Newtonův iterační algoritmus pro dělení Platí: x i+1 = x i - f(x i )/f'(x i ) Máme-li dělit číslem b, zvolíme: f(x) = 1/x b Pokud f(x) = 0, pak 1/x = b, resp. x = 1/b Operaci dělení a/b pak nahradíme násobením a*1/b Derivace: f'(x) = -1/x 2, odtud dosazením x i+1 = x i - (1/ x i - b)/(-1/ x i2 ) = = x i + x i - bx i2 = x i (2 - bx i ) x i+1 = x i (2 - bx i ) Postup výpočtu a/b: Posuneme b tak, aby padlo do intervalu (1,2). Pomocí tabulky odhadů zvolíme první odhad x 0. Iteračně provádíme výpočty x i+1 dokud nedostanemeřešení s požadovanou přesností na p bitů Výsledek n. iterace (x n ) vynásobíme číslem a, součin posuneme o odpovídající počet bitů (viz krok 1)

Příklad: 1/b pro b=20 b= 10100, posun des. čárky o 4b, b=1.0100 zvolím x 0 =1 x 1 = x 0 (2 bx 0 )d = 1(10-1.01x1)b = 0.11b x 2 = x 1 (2 bx 1 )d = 0.11(10-1.01x0.11) = 0.11(10 0.1111)b = 0.11x1.0001b = 0.110011b x 3 = 0.11001100110011b atd. posun des. čárky o 4b Výsledek po 3 iteračních krocích: 1/20d = 0.000011001100110011b = 0.04999923706d

Př. Ukažte, že se počet správných (přesných) bitů p se každým iteračním krokem zdvojnásobuje x i - 1/b je absolutní chyba ε i = (x i - 1/b)/(1/b) = 2 -p je relativní chyba i. kroku, hledáme ale tvar pro krok i+1, tj. pro x i+1 Vyjádříme x i = 1/b (2 -p )+1/b a dosadíme do x i+1 = x i (2 - bx i ) kde dostáváme x i+1 = (1/b (2 -p )+1/b).(2 b (1/b (2 -p )+1/b)) x i+1 = 1/b 1/b(2-2p ) což upravíme na tvar pro relativní chybu pro krok i+1: ε i+1 = (x i+1-1/b)/(1/b) = 2-2p ε i+1 /ε i = 2-2p / 2 -p = 2 -p ε i+1 = ε i.2 -p Počet přesných míst v jednotlivých iteracích: 1 2 4 8 16... Čím přesnější je počáteční odhad x 0, tím méně iterací je potřeba.

Newtonův algoritmus dělení v HW x i+1 =x i (2-bx i )

Literatura Drábek, V.: Výstavba počítačů, skriptum VUT v Brně, 1995