BŁĘDY OBLICZEŃ NUMERYCZNYCH

Podobne dokumenty
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Liczby zmiennoprzecinkowe i błędy

Wprowadzenie do metod numerycznych. Krzysztof Patan

BŁĘDY PRZETWARZANIA NUMERYCZNEGO

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

EMN. dr Wojtek Palubicki

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p.

Zapis liczb binarnych ze znakiem

Podstawy Informatyki

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Wstęp do informatyki- wykład 1 Systemy liczbowe

Teoretyczne Podstawy Informatyki

Dokładność obliczeń numerycznych

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Metody numeryczne. Postać zmiennoprzecinkowa liczby. dr Artur Woike. Arytmetyka zmiennoprzecinkowa. Uwarunkowanie zadania.

METODY NUMERYCZNE. Wykład 2. Analiza błędów w metodach numerycznych. Met.Numer. wykład 2 1

Technologie Informacyjne Wykład 4

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Naturalny kod binarny (NKB)

Metoda znak-moduł (ZM)

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Algorytmy obliczeniowe

Kod U2 Opracował: Andrzej Nowak

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

LICZBY ZMIENNOPRZECINKOWE

Bardzo łatwa lista powtórkowa

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Technologie Informacyjne

Wstęp do informatyki- wykład 1 Systemy liczbowe

Programowanie celowe #1

1.1. Pozycyjne systemy liczbowe

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Pozycyjny system liczbowy

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

5. Twierdzenie Weierstrassa

Podstawy Informatyki

Algorytmy i struktury danych. Wykład 4

Pracownia Komputerowa wykład IV

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Arytmetyka binarna - wykład 6

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Systemy zapisu liczb.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Pracownia Komputerowa wykład VI

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

Wstęp do informatyki- wykład 2

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

x y

Wprowadzenie do metod numerycznych Wykład 1 Przybliżenia

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

W jaki sposób użyć tych n bitów do reprezentacji liczb całkowitych

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Adam Korzeniewski p Katedra Systemów Multimedialnych

Pracownia Komputerowa wyk ad VI

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Wprowadzenie do informatyki - ć wiczenia

LICZBY ZMIENNOPRZECINKOWE

Architektura komputerów

Arytmetyka liczb binarnych

Pracownia Komputerowa wyk ad IV

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Algorytmy i struktury danych. wykład 9

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Kodowanie informacji. Kody liczbowe

czyli o szukaniu miejsc zerowych, których nie ma

Metody numeryczne II. Reprezentacja liczb

Pracownia Komputerowa wykład V

Stan wysoki (H) i stan niski (L)

Metody numeryczne I Równania nieliniowe

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Komputerowa Analiza Danych Doświadczalnych

Transkrypt:

BŁĘDY OBLICZEŃ NUMERYCZNYCH błędy zaokrągleń skończona liczba cyfr (bitów) w reprezentacji numerycznej błędy obcięcia rozwinięcia w szeregi i procesy iteracyjne - w praktyce muszą być skończone błędy metody przybliżone rozwiązania problemu poza tym: * błędy modelu * błędy danych wejściowych * pomyłki Zaokrąglenia 1. nieskończone reprezentacje dziesiętne 2. nieskończone reprezentacje binarne skończonych reprezentacji dziesiętnych, np.: ( 0.1 ) 10 = ( 0.000110011001100110011001100... ) 2 0.09999999... (0.000110011) 2 -> 0.099609375 przykład:

zmiennoprzecinkowa reprezentacja w IBM 370 (najlepsza maszyna obliczeniowa w latach 70-tych) 32-bitowe słowo podstawa systemu liczenia - 16 rozpatrzmy liczbę, której reprezentacja ma postać 0 1000010 101100110000010000000000 wykładnik podstawy: [ (1000010) 2 = 66 ] 64 (cecha bez znaku odejmowanie 64 zapewnia zakres wartości cechy: od -64 do +63 wartość (uwzgl. postać znormalizowaną) L = m*p C [(1/2) 1 + (1/2) 3 + (1/2) 4 + (1/2) 7 + (1/2) 8 + (1/2) 14 ]*16 (66-64) = 179.015625 minimalnie większa wartość różniąca się 1 bitem 0 1000010 101100110000010000000001 179.0156097412109375 minimalnie mniejsza wartość różniąca się 1 bitem: 0 1000010 101100110000001111111111

179.0156402587890625 porównajmy: 179.0156097412109375 179.015625 179.0156402587890625 1) oznacza to, że reprezentacja 0 1000010 101100110000010000000000 odpowiada nieskończonej ilości liczb rzeczywistych z połowy powyższego przedziału 2) maksymalnie 7 znaczących cyfr 10-tnych przy 24 znaczących bitach reprezent. maszynowej 3) największa możliwa liczba 0 1111111 111111111111111111111111 16 63 10 76 najmniejsza 0 0000000 00010000000000000000000 = 16-65 10-78 (najmniejsza możliwa mantysa znormalizowana = 1/16 = 16-1, najmniejsza możliwa cecha) rozważmy bardziej przyziemny przykład: reprezentacja REAL w PASCALU (PC słowo jednobajtowe)

(tu arytmetyka jest dwójkowa ) cecha bez znaku: wartość wykładnika = c-129 [binarnie] gdy c>0 np.: c = 10000000 = 2 7 = 128 => wartość wykładnika = -1 c = 00011001 = 25 => wartość wykładnika = -104... obliczenie wartości: jeśli c = 00000000 => L = 0 (oznaka najmniejszego możliwego wykładnika = -129, a zatem najmniejsza możliwa liczba, co do wartości bezwzględnej = 0 ) jeśli 0<c<256 => L = (-1) s 2 (c-129) 1.m (zauważmy, że tu zawsze dodawane jest 1 do mantysy) najmniejsza możliwa liczba ujemna, różna od zera ma zatem postać: 100000000000000000000000000000000000000000000001 i wynosi -2-128 ~ -2.9*10-39 (sprawdź kalkulatorem) a dodatnia 000000000000000000000000000000000000000000000001 ale w PAO będzie wyglądała tak: 000000010000000000000000000000000000000000000000...PROGRAM REAL_MIN...(przesuwa 1 co bajt) a największa ujemna 111111111111111111111111111111111111111111111111 i wynosi ~ -2*2 (255-129) = -2 127 ~ -1.7 * 10 38

w PAO, reprezentacja wygląda inaczej gdyż z pamięci kolejne BAJTY sczytywane są sekwencyjnie (od lewej) i ustawiane w rejestrze poprawnie od prawej... zatem: program REAL_BIN reprezentacja REAL w PAO (..dla +/- 0.5) program MAX_REAL znajdowanie bitu znaku utrata dokładności operacja dodawania wymaga wyrównania cech (wykonajmy dodawanie na cyfrach, a nie na bitach i załóżmy że mamy tylko 7 dostępnych cyfr na mantysę) 0.1460071 x 10 3 ---> 0.0000015 x 10 8 + 0.2389034 x 10 8 a próbując dodać np. 0. 1460071 x 10-1 do 0.2389034 x 10 8 w wyniku otrzymamy 0.2389034 x 10 8 a co jeśli do 0.2389034 x 10 8 0. 1460071 x 10-1 liczb? mielibyśmy dodać 100 milionów takich dodając je sukcesywnie, wciąż mielibyśmy w wyniku 0.2389034 x 10 8 ale dodając wpierw do siebie 100 milionów (10 8 ) razy 0. 1460071 x 10-1 dostaniemy 0. 1460071 x 10 7 a następnie dodając to do 0.2389034 x 10 8 dostaniemy 0.2535041 x 10 8 odejmowanie liczb bliskich (a - b) * c

a = 0.2356073 x 10 6 b = 0.2356102 x 10 6-0.2900000 x 10 1 (bo zawsze postać znormalizowana) c = 0.1112050 x 10 1 wynik 0.3224945 x 10 1 śmieci mówimy, że p* jest zmiennoprzecinkowym przybliżeniem do p z dokładnością do t cyfr znaczących jeśli t jest największą nieujemną liczbą całkowitą taką, że p p * p < 5 10 t Przykład rozwiązanie równania C - rzeczywiste 2 d y( x) dx 2 = 2 c y( x), np. równanie Schrödingera dla cząstki wewnątrz bariery y(x) = A e -CX + B e CX

żądamy rozwiązania, które y(0)=1, y (0)= -C y(x) = e -CX jeśli chcemy numerycznie znaleźć to rozwiązanie np. w przedziale [0,P], czyli dla wielu arg. x, to musimy nadać wartość szykanego rozwiązania w x=0 a następnie znajdować numeryczne y(x) w kolejnych węzłach dyskretnej siatki zmiennej x w przedziale [0,P]; czyli - zadajemy 1 oraz C w x=0 i numerycznie szukamy wartości Y dla x>0 rozwiązując numerycznie na dyskretnej siatce węzłów: 1 (jedynka) oraz C są określone (zaokrąglone) z numeryczną dokładnością ε y numeryczne e -CX + ε e CX już w X=0 będzie zawierało domieszkę rozwiązania e cx (z wagą rzędu ε - rzędu dokładności numerycznej ) dla dużych i dodatnich x eksplodujące rozwiązanie e CX zdominuje numeryczne rozwiązanie y num błędy obcięcia pewne wielkości wyliczane są zawsze z nieskończonych sum, szeregów czy iteracji np:

sin( x) 3 5 7 x x x = x + +... 3! 5! 7! przykład unikania utraty dokładności f(x) = x - sin(x) dla x 0 x sin(x) (bliskie wartości) ==> f ( x) 3 5 7 = x x x 3! 5! + 7!...... numeryczne sumowanie szeregu 1/(n 3 ) - w przód i w tył...program... suma_szeregu METODY N UMERYCZNE = sposoby przybliżonego rozwiązywania zagadnień dyskretyzacja aproksymacja propagacja błędów i numeryczna niestabilność np. przykład (prawo rozpadu promieniotwórczego)

rozwiązanie równania dy ( t) = λy ( t) dt metodą Eulera (poznamy później) rozwiązaniem ścisłym jest y(t) = exp(-λt) (dla λ >0 wartości Y(t) powinny monotonicznie maleć w czasie) na siatce punktów { t i }, t i+1 -t i = h metoda jest niestabilna jeśli h > 2 / λ...program EULER_GR... problemy źle uwarunkowane (przy zadanej dokładności numerycznej) np.: układ równań 6.025 x + 109.774 y = 4.12 14.054 x + 256.125 y = 10.50 ma rozwiązanie: Y i+1 = Y i + h Y i / = (1 - λh)y i

x = -250.15 y = 13.77 ; jeśli dysponujemy dokładnością do 2 miejsc po kropce i wyniki pośrednich operacji zaokrąglamy do 2 miejsc po kropce, to rozwiązaniem jest x = - 44.33 y = 2.47 powód: równania prawie zależne (niezależne na granicy dokładności)