Aritmetica in Floating Point

Documenti analoghi
Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

Corso di Matematica per la Chimica

I numeri reali e la loro rappresentazione

3. Matrici e algebra lineare in MATLAB

GLI ERRORI. Problema. valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso. Prof.

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Complementi di Matematica e Calcolo Numerico A.A

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Tipi di dato primitivi

Gli errori nella risoluzione di un problema

Elaborazione aut. dei dati

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Variabile, costante ed espressione

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Matlab. Istruzioni condizionali, cicli for e cicli while.

VBA Principali Comandi

Problema numerico. Relazione funzionale chiara e non ambigua tra dati iniziali e soluzione. Dati iniziali e soluzione sono due vettori finiti x, y.

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Corso di Calcolo Numerico Informatica e Comunicazione Digitale - Taranto A.A. 2015/2016

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

MATLAB parte II. Array

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione al MATLAB c Parte 2

Introduzione a Matlab (e al Calcolo Numerico)

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Prendiamo in considerazione la matrice tridiagonale

PROGRAMMAZIONE STRUTTURATA

Somma di numeri binari

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica!

Le matrici. Sia K un campo con elemento neutro dell addizione 0 ed elemento neutro della moltiplicazione 1.

Script in Matlab. INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali

Introduzione al MATLAB c Parte 1 Variabili ed array

Mini-Corso di Informatica

Lab. 1 - Introduzione a Matlab

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Caratteristiche di un linguaggio ad alto livello

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Corso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

MATRICI. 1. Esercizi

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

Aritmetica dei Calcolatori

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Appunti su Indipendenza Lineare di Vettori

Fondamenti di Programmazione. Strutture di controllo

28/02/2014 Copyright V. Moriggia

Introduzione. MATLAB è l acronimo di MATrix LABoratory

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Linguaggio C Espressioni e operatori

Introduzione alla programmazione in C(++)

Introduzione alla programmazione Esercizi risolti

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Calcolo Numerico con elementi di programmazione

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

RIDUZIONE E RANGO , C = 2 5 1

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Fondamenti di Programmazione. Sistemi di rappresentazione

Algoritmi e soluzione di problemi

Calcolo numerico e programmazione Rappresentazione dei numeri

Rappresentazione dei dati reali e teoria degli errori. N. Del Buono

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

A = Quindi > b=a(:) b =

Algebra di Boole X Y Z V. Algebra di Boole

Esercizi di Analisi Numerica. Errori, Cambi di base, Numeri macchina, Aritmetica finita

Strutture di Controllo

Decomposizione LU di una matrice quadrata

Corso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3).

La codifica. dell informazione

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Sistemi di Numerazione Binaria

Architetture aritmetiche

MATRICI (ARRAY) IN MATLAB/OCTAVE

Esercitazione 5: Sistemi a risoluzione immediata.

Laboratorio con DERIVE

Laboratorio di Matematica Computazionale A.A Lab. 1 - Introduzione a Matlab

Costrutti condizionali e iterativi

Aritmetica dei Calcolatori

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Strutture dati e loro organizzazione. Gabriella Trucco

Cosa si intende con stato

Analisi e Programmazione

Numeri fixed point. La rappresentazione dei numeri interi: i numeri fixed point. Rappresentazione fixed point di un intero positivo N

Lezione 5. La macchina universale

Firmware Division & Floating pointer adder

Istruzioni iterative (o cicliche)

Moltiplicazione. Divisione. Multipli e divisori

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Transcript:

Aritmetica in Floating Point Esempio di non associatività Alcune proprietà delle operazioni in aritmetica esatta possono non valere in aritmetica finita in virgola mobile (floating point). Ad esempio: >> a=1.0e+308; >> b=1.1e+308; >> c=-1.001e+308; >> (a+b)+c ans = Inf >> a+(b+c) ans = 1.0990e+308 Esempio di cancellazione numerica In aritmetica esatta, usando la nota identità (a+b)(a b) = a 2 b 2, si ottiene facilmente x 1 + 1 x = x 2 x + 1 + x 2 R Calcolando con Matlab: >> x=77777777; >> y1=sqrt(x^2+1)-x y1 = 0 >> y2=1/(sqrt(x^2+1)+x) y2 = 6.4286e-09 >> err=abs((y1-y2)/y2) err = 1

In aritmetica esatta i valori y1 e y2 dovrebbero essere uguali e l errore relativo err nullo. In realtà i risultati ottenuti (y1 e y2) sono assai diversi. Il risultato finale dipende fortemente da come viene effettivamente calcolata la funzione (errore di arrotondamento, dovuto all aritmetica finita del calcolatore). Il risultato corretto `e y2, mentre y1 è soggetto a un fenomeno di cancellazione. Precisione di macchina L errore relativo che si commette approssimando un numero reale x con il numero floating point fl(x) è tale che dove M t = β 1 fl( x) x x Cε ε è detto epsilon macchina, dove β è la base e t il numero di cifre significative dell insieme dei numeri macchina considerato. Nel caso della doppia precisione β = 2 e t = 53. ε M può anche essere definito come il più piccolo numero macchina positivo tale che fl(1 + x) > 1. M Esercizio Verificare (in format hex) che: 1+eps > 1 1+eps/2 =1 10^20 +1 =1 (perchè?); verificare il valore di eps(1e20) ε M non va confuso con il più piccolo numero rappresentabile in un sistema floating point (quello è realmin!!!), esso definisce invece una stima di quanto possa valere al più l errore relativo quando si approssima un numero reale con un numero macchina. In Matlab è predefinita la variabile eps che contiene il suo valore. >> eps ans = 2.2204e-16

Esercizio Calcolare algoritmo: ε M scrivendo un breve codice che implementi il seguente e 0 = 1/2, k = 0 se e k + 1 > 1 allora e k+1 = e k /2 altrimenti STOP Risolvere Esercizi dall 1 al 5 Matlab come linguaggio di programmazione Cicli condizionati (comando while ) Sintassi generale: while (condizione == true) istruzione aggiornamento condizione end Cicli non condizionati con contatore (comando for ) Sintassi generale: for contatore = [elementi di un vettore] istruzione istruzione end

Istruzioni condizionali (comando if ) Sintassi generale: if (condizione1==true) istruzioni 1 elseif (condizione2==true) istruzioni 2 else istruzioni 3 end Operatori relazionali e logici Il valore 1 corrisponde ad una condizione vera, 0 ad una falsa. <, <=, >=, >, = =, ~= a == b 1 se a = b, 0 altrimenti a ~= b 1 se a b, 0 altrimenti &,, ~, xor

Per assegnare le matrici Matrici in Matlab (primi comandi) A = 4 2 5 3 6 1 3 7 21, B = 11 0 >> A=[1 2 3; 4 5 6]; >> B =[ 1 7 21;3 11 0]; Si costruiscono elencandone gli elementi per riga. Matrici particolari Matrici nulle >> zeros(3,2) Matrici con elementi uguali a 1 >> ones(4,2) Matrici di numeri casuali >> ones(4,2) Matrici identità >> I =eye(4) Matrici di Hilbert >> H=hilb(5) Matrici di Vandermonde: sono matrici le cui colonne contengono le potenze successive di un vettore di riferimento x = [x1,..., xn] >> V=vander([1 2 3 4]) Elementi di una matrice Possiamo, usando indici di riga e colonna, estrarre gli elementi ed elaborarli >> s=b(1,2)+a(2,3) oppure riassegnarli: >> B(2,2) =100 (Attenzione: controllate il risultato dell assegnazione B(3,5) = 1 oppure B(4,6) = 5)

Concatenazione (come per i vettori) la virgola accoda in orizzontale, il punto e virgola in verticale. Esempio Date A=[1 2; 3 4], B=[1 2;-1 1] verificare il risultato di >> C = [[A, B]; ones(2,8)]; >> D = [zeros(8,4),[a;b]]; Manipolazione di sottoblocchi di matrici Sia A=eye(4) e B=hilb(2). Per sostituire alle ultime due righe e colonne di A la matrice B: >> A=eye(4); B=hilb(2); >> A(3:4,3:4)=B si utilizzano gli stessi metodi visti con i vettori ma lavorando su due indici. Per estrarre la quarta riga di A: >> r=a(4,:) Per eliminare una colonna usiamo il vettore vuoto []: >> A(:,4)=[] Operazioni tra matrici Possiamo calcolare somma e sottrazione >> C=A+B; >> D=A-B; purché gli addendi abbiano le stesse dimensioni. Sia C = >> C*A 3 2 4 ; l operatore * esegue il prodotto righe per colonne: equivale all oparazione matematica 3 2 4 4 2 5 3 6 9 12 15 = 19 26 33

MEMO: date due matrici S m,n (m righe, n colonne) e R p,q (p righe, q colonne), il prodotto righe per colonne S m,n * R p,q = W m,q se e solo se n = p è possibile solo se n = p e il risultato sarà una matrice di m righe e q colonne Esempio Dati i due vettori a = [1 2 3 4] e b = [5 6 7 8] verificare i risultati delle 4 operazioni: a*b, a *b, a *b, a*b Operazioni elemento per elemento (come per i vettori): >> A=[1 2; 3 4], B=[1 2;-1 1]; >> A.*B; >> A./B; >> A.^B; Risolvere Esercizi 6, 7, 8.