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

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

Liczby zmiennoprzecinkowe i błędy

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

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

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

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

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

BŁĘDY OBLICZEŃ NUMERYCZNYCH

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

Metody numeryczne. dr hab. Piotr Fronczak. pok. 101 GF. Zakład Fizyki Układów Złożonych

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

Podstawy Informatyki

Dokładność obliczeń numerycznych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Arytmetyka stało i zmiennoprzecinkowa

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

Wprowadzenie do metod numerycznych. Krzysztof Patan

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

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

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

Teoretyczne Podstawy Informatyki

Naturalny kod binarny (NKB)

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

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

EMN. dr Wojtek Palubicki

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Arytmetyka binarna - wykład 6

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

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

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

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

Pracownia Komputerowa wykład VI

Technologie Informacyjne Wykład 4

LICZBY ZMIENNOPRZECINKOWE

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Systemy zapisu liczb.

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

Architektura komputerów

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

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

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

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

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1

Metoda znak-moduł (ZM)

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

Pracownia Komputerowa wykład IV

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

Podstawy Informatyki

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

Pracownia Komputerowa wykład V

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

Algorytmy i struktury danych

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Zapis liczb binarnych ze znakiem

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Metody numeryczne II. Reprezentacja liczb

Pracownia Komputerowa wyk ad VI

Stan wysoki (H) i stan niski (L)

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych

Architektura komputerów

Wprowadzenie do informatyki ćwiczenia

Arytmetyka zmiennoprzecinkowa wer. 5

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

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

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Metody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

LICZBY ZMIENNOPRZECINKOWE

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych

WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI KARTA PRZEDMIOTU

Pozycyjny system liczbowy

Wprowadzenie do informatyki - ć wiczenia

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

Pułapki liczb zmiennoprzecinkowych. Adam Sawicki asawicki.info

Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

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

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Pracownia Komputerowa wyk ad IV

x y

Kod U2 Opracował: Andrzej Nowak

Arytmetyka liczb wymiernych w języku C++

Kodowanie liczb całkowitych w systemach komputerowych

BŁĘDY PRZETWARZANIA NUMERYCZNEGO

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

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

STYCZEŃ 2017 Analiza wyników sprawdzianu na zakończenie nauki. w I semestrze drugiej klasy gimnazjum MATEMATYKA

Kodowanie informacji. Kody liczbowe

Podstawowe elementy języka Python III. Wykład 3. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 50 / 277

Metody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

1259 (10) = 1 * * * * 100 = 1 * * * *1

Transkrypt:

Obliczenia Naukowe O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć Bartek Wilczyński bartek@mimuw.edu.pl 29. lutego 2016

Plan semestru Arytmetyka komputerów, wektory, macierze i operacje na nich Kreślenie funkcji, graficzna reprezentacja danych Rozwiązywanie układów równań liniowych, metoda najmniejszych kwadratów Wartości własne i wektory własne macierzy Interpolacje i aproksymacje funkcji Podstawy przetwarzania sygnałów, filtry, reprezentacja obrazów Rozwiązywanie równań różniczkowych, kwadratury Obliczenia symboliczne

Założenia i wymagania Mamy zapoznać się z narzędziami ułatwiającymi dokonywanie obliczeń w programach komputerowych Przy okazji szlifujemy nasze umiejętności programistyczyczne Celem jest praktyczna znajomość narzędzi przy jednoczesnej znajomości podstaw działania metod numerycznych Opieramy się głównie na języku python (w wersji 3) Podstawą do zaliczenia będą projekty programistyczne wykonywane samodzielnie oraz egzamin

Projekty I Projekt 15 IV - 3 V 10 pkt II Projekt 3 V - 20 V 10 pkt III Projekt 20 V 10 VI 20 pkt Za projekty oddane po terminie max. 50% punktów Egzamin pisemny 40 pkt Do zaliczenia potrzeba 60% punktów

Materiały Dostępnych jest wiele książek pokrywających tematyke metod numerycznych Będziemy też korzystać z materiałów online: http://smurf.mimuw.edu.pl/?q=metody_numeryczne Moje slajdy I zadania publikowane będą na stronie www: http://regulomics.mimuw.edu.pl/wp/category/teaching/ona/

O co chodzi z tą arytmetyką? Mówiliśmy już w poprzednim semestrze, że komputery dysponują skończoną pamięcią Skądinąd wiedzą Państwo, że liczby mogą być dowolnie duże, więc nie każda liczba zmieści się w pamięci komputera Stąd potrzeba jest ustalenia reguł jak wykonywać obliczenia w komputerze, tak, aby zbyt często nie popełniać błędów

Pomyłki w obliczeniach? W 1991 r. wyrzutnia rakiet patriot w Arabii Saudyjskiej chybiła celu, w związku z czym zginęło 28 żołnierzy, powód niedokładna reprezentacja liczby 0.1 w komputerze W 1995 r. rakieta Ariane rozpadła się podczas startu z powodu przepełnienia wartości numerycznej W 1991 r. zapadła się platforma wiertnicza Sleipner, z powodu błędu w obliczeniach konstrukcyjnych (niedoszacowanie obciążenia o 47% z powodu błędu numerycznego). Więcej: https://www.ima.umn.edu/~arnold/disasters/disasters.html

Jak komputer liczy? Ile to będzie 2016/10e309? 2.016/10e306? (2016/1000) / (10e309/1000)? 2016/10**309? 2016/10.**309? A co z ułamkami? 0.1? 0.1 + 0.1? 0.1 + 0.1 + 0.1? 3 * 0.1? 5 * 0.1?

Cecha i mantysa Liczby możemy reprezentować jako ciąg bitów: Wartością takiej liczby jest (-1) S * M..M E..E Ta liczba ma reprezentację binarną (nie dziesiętną) Ułatwia nam to operacje na takich liczbach

Standard IEEE-754 Standard IEEE-754 (ostatnia wersja z 2008r.) opisuje jak zapisywane są liczby w większości procesorów na świecie Dodatkowo, mamy tu różne precyzje liczb i bias, która pozwala przechowywać ułamki bez dodatkowego bitu na znak wykładnika

Problemy arytmetyki zmiennoprzecinkowej Błąd reprezentacji: Epsilon maszynowy Nadmiary i niedomiary Podczas wykonywania działań Utrata cyfr znaczących podczas dodawania Utrata cyfr znaczących podczas odejmowania Porównania liczb zmiennoprzecinkowych dają niespodziewane wyniki...

Wartości specjalne Co się stanie, jeśli chcemy reprezentować liczby większe niż możemy zmieścić w reprezentacji bitowej? wartości Inf oraz -Inf A co, jeśli liczby te będą za małe? 0.0 Co jeśli nadal będziemy wykonywać operacje na liczbach nieskończonych? Not a Number, czyli NaN To nie musi dziać się z liczbami całkowitymi: w pythonie, liczby całkowite mają dużo większą precyzję.

Lepsze reprezentacje liczb w pythonie Liczby całkowite w pythonie 3 mogą być arbitralnie duże (tak jak bignum w pythonie2). Oczywiście pamięć nadal nas ogranicza Pakiet Decimal, opisujący liczby dziesiętne w formacie cecha+mantysa w zadanej dokładności Pakiet Fractions opisujący liczby wymierne jako ułamki liczb całkowitych Oba działają znacznie wolniej od arytmetyki IEEE-754

Pakiet mpmath Zewnętrzny względem python'a pakiet liczb zmiennoprzecinkowych Dowolna precyzja, zoptymalizowany kod Dodatkowe funkcje pozwalające na mniejsze błędy zaokrągleń (zwiększenie precyzji podczas wykonywania operacji).