PROGRAMMA DI CALCOLO
NUMERICO
CORSO DI LAUREA: Ingegneria Informatica e dell’Automazione
ANNO ACCADEMICO: 2016-2017
ESAME: Calcolo numerico
DOCENTE: Ing. Antonio Satriano
STUDENTE: Albanese Melissa
INDICE 2
.............................................................................................................................................................
RAPPRESENTAZIONE NUMERICA ........................... 5
SISTEMA POSIZIONALE ..................................................... 5
SISTEMA DECIMALE ........................................................... 5
SISTEMA BINARIO ............................................................... 5
CONVERSIONE ...................................................................... 6
RAPPRESENTAZIONE NUMERICA BINARIA ................ 6
COMPLEMENTO A DUE ...................................................... 6
MODULO E SEGNO ............................................................... 9
ALGEBRA DI BOOLE .......................................................... 10
LEGGI DI DE MORGAN ..................................................... 14
NUMERO IN VIRGOLA FISSA .......................................... 15
NUMERO IN VIRGOLA MOBILE ..................................... 16
MATLAB ......................................................................... 18
COMANDI SEMPLICI ......................................................... 19
VARIABILI ............................................................................ 20
VETTORI ............................................................................... 21
MATRICI ................................................................................ 25
FATTORIZZAZIONE ........................................................... 39
SISTEMA LINEARE ............................................................. 39
METODI NUMERICI PER SISTEMI LINEARI .......................... 40
IL COMANDO BACKSLASH .......................................................... 40
RISOLUZIONE DI SISTEMI TRIANGOLARI ................. 42
REALIZZAZIONE DI GRAFICI 2D ................................... 42
GRAFICI IN 3D ..................................................................... 55
LE PRINCIPALI OPERAZIONI ARITMETICO-
LOGICHE ............................................................................... 64
IL COMANDO HELP ........................................................... 67
FUNZIONI LOGICHE .......................................................... 71
FUNZIONI PREDEFINITE .................................................. 72
STRUTTURA CONDIZIONALE ......................................... 77
CICLO FOR ........................................................................... 80
CICLO WHILE ...................................................................... 82
METODO DI BISEZIONE .................................................... 83
METODO DI NEWTON ....................................................... 96
METODO DI NEWTON SEMPLIFICATO ................................... 98
METODO DELLE SECANTI ............................................... 99
IL METODO DI GAUSS ..................................................... 101
VARIABILI NARGIN E NARGOUT ................................. 105
FUNZIONI E SCRIPT ......................................................... 107
PRECISIONE DI MATLAB ............................................... 111
INTERPOLAZIONE DI DATI E FUNZIONI ................... 112
INTERPOLAZIONE POLINOMIALE ......................................... 113
PRINCIPALI OPERAZIONI CHE COINVOLGONO I
POLINOMI ....................................................................................... 114
POLINOMIO INTERPOLANTE DI LAGRANGE ..................... 115
IMMAGINI ........................................................................... 118
OPERAZIONI SULLE IMMAGINI .............................................. 129
ESTRAZIONE DI UNA PORZIONE ............................................ 130
SERIE ED INTEGRALE DI FOURIER ............................ 136
TRASFORMATA DISCRETA DI FOURIER .............................. 139
ESEMPI DI SUONO IN MATLAB ................................................ 139
IL MODULO DELLA VELOCITÀ ANGOLARE ....................... 154
INTEGRALI ......................................................................... 155
PROPRIETÀ DEGLI INTEGRALI ............................................... 157
TEOREMA DELLA MEDIA .......................................................... 157
METODO DEI TRAPEZI ............................................................... 157
METODO DI SIMPSON ................................................................. 167
ALGOBUILD ................................................................ 171
RAPPRESENTAZIONE NUMERICA
SISTEMA POSIZIONALE
Il sistema dei numeri romani è un sistema numerico additivo (o sottrattivo), e non posizionale
come quello decimale, in quanto:
• non posizionale: I vari numeri (simboli) assumono sempre lo stesso
valore indipendentemente dalla posizione che occupano;
• additivo (o sottrattivo): Ogni numero rappresenta la somma (o la differenza) dei
numeri che lo compongono. alfabeto
I numeri romani sono composti da una sequenza di simboli scelti tra le lettere dell’antico
romano. I simboli usati con il rispettivo valore nel nostro sistema di numerazione sono i seguenti:
Numero romano Numero arabo
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
A partire da i suddetti valori vengono formati tutti i numeri romani, ad esempio XV (che equivale
a 15) e CD (che corrisponde a 400).
SISTEMA DECIMALE
Il sistema numerico decimale è un sistema di numerazione posizionale in base 10, nel quale i
numeri vengono formati usando le cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ovvero i numeri arabi, e
assumono un valore diverso in base alla posizione occupata. Infatti, qualora scegliessimo due cifre
accanto all’altra, per ottenere un nuovo numero,
qualsiasi, ad esempio 4 e 6, e le scrivessimo l’una
potremmo formarne bensì due: 46
64
che ovviamente sono diversi poiché le cifre si trovano in posizione diversa: nel primo caso il 4
indica le decine e il 6 le unità, viceversa nel secondo caso.
SISTEMA BINARIO
Il sistema numerico binario, invece, è un sistema di numerazione posizionale in base 2 e le uniche
cifre che compongono i numeri sono 0 e 1. Esso è molto importante perché è alla base
e definisce il codice binario. Per indicare
dell’informatica che un numero è scritto usando il
codice binario lo si racchiude tra parentesi tonde e si mette come pedice il 2, per esempio:
1111 indica il numero millecentoundici nel sistema decimale, ma scrivendolo come (1111) si
2
“uno uno uno uno in base
leggerà due”.
CONVERSIONE
Per convertire un numero binario in un numero decimale basta ricorrere alla forma polinomiale:
⏟1 ⏟1 ⏟1 ⏟1
a a a a
3 2 1 0
0 1 2 3
1 x 2 + 1 x 2 + 1 x 2 + 1 x 2 = 15
Per passare dalla base decimale a quella binaria bisogna dividere il numero iniziale per due e i
successivi quozienti finché come quoziente non si avrà 0. I resti della divisione, scritti in
daranno il numero scritto
ordine inverso (dal basso verso l’alto) in base 2. Per esempio, se
volessimo scrivere il numero 146 in base binaria, dovremmo procedere nel modo seguente:
146 :2=73 resto 0
73 :2=36 resto 1
36 :2=18 resto 0
18 : 2 = 9 resto 0
9 : 2 = 4 resto 1
4 : 2 = 2 resto 0
2 : 2 = 1 resto 0
1 : 2 = 0 resto 1
Otterremo, quindi, 146 = (10010010) .
2
RAPPRESENTAZIONE NUMERICA BINARIA
base della rappresentazione è il bit, con il quale si può rappresentare
L’elemento che assume due valori. Per rappresentare più valori è necessario usare una
un’informazione n
sequenza di bit; n bit rappresentano 2 valori diversi:
2 valori: 0, 1
1 bit rappresenta 4 valori: 00, 01, 10, 11
2 bit rappresentano
3 bit rappresentano 8 valori: 000, 001, 010, 011, 100, 101, 110, 111
e così via.
COMPLEMENTO A DUE
Il complemento a due è il metodo più diffuso per la rappresentazione dei numeri con segno in
informatica. Col complemento a due, il bit più significativo del numero ha peso negativo o
positivo; da questo deriva che tutti i numeri che cominciano con un "1" sono numeri binari negativi, mentre tutti i numeri che
cominciano con uno "0" sono numeri binari positivi. Un numero binario positivo si può negare invertendone i bit e sommando 1 al
valore risultante. Ciò è matematicamente giustificabile se osserviamo come si comporta la somma di un numero binario e del suo
111…111 ̅
inverso: il risultato è una sequenza , che in complemento a 2 rappresenta -1. In simboli: x + = -1
2
⇒ ̅ ⇒ ̅
x + + 1 = 0 + 1= -x. Allo stesso modo si può ottenere il valore assoluto di un numero binario
negativo, ossia prendendo il complementare (invertendo il valore dei singoli bit) e aggiungendo 1 al
numero binario risultante. Un numero binario di n cifre può rappresentare con questo metodo i
(n-1) (n-1)
numeri compresi fra -2 e +2 -1. Ad esempio, un numero binario di 8 cifre può rappresentare
i numeri compresi tra -128 e +127. Questo metodo consente di avere un'unica rappresentazione
dello zero (quando tutti i bit sono zero, eliminando così la ridondanza dello zero che si verifica con
la rappresentazione in modulo e segno), e di operare efficientemente addizione e sottrazione sempre
avendo il primo bit a indicare il segno. Esso ha notevoli vantaggi, soprattutto per effettuare somme
e differenze. Il complemento a due supera infatti gli svantaggi della rappresentazione a modulo e
segno soprattutto in termini di complessità realizzativa dei circuiti sommatori. Come è possibile
notare, in complemento a due, il primo bit diventa automaticamente il bit del segno (come per la
rappresentazione a modulo e segno), risolvendo però il problema dell'ambiguità dello 0 (in
complemento a 2, 00000 e 10000 hanno significati diversi) e vengono enormemente facilitate le
operazioni di somma e differenza, che si riducono alla sola operazione di somma: per comprendere
meglio è sufficiente un esempio: 5 -10 = 5 + (-10 )= 0101 - 1010 = 00101 + 10110 =
10 10 10 10 2 2 CA2 CA2
11011 = -0101 = -5 .
CA2 2 10
Per rappresentare l'opposto di un numero binario in complemento se ne invertono, o negano, i
singoli bit: si applica cioè l'operazione logica NOT. Si aggiunge infine 1 al valore del numero
trovato con questa operazione. Per rappresentare il numero -5 con 8 bit in complemento a 2 si parte
dalla rappresentazione in binario del numero 5: 0000 0101. La prima cifra è 0, quindi il numero è
sicuramente positivo. Si invertono, quindi, i bit: 0 diventa 1, e 1 diventa 0: 1111 1010. A questo
punto si è ottenuto il complemento a uno del numero 5; per ottenere il complemento a due si
somma 1 a questo numero: 1111 1010 + 0000 0001 = 1111 1011. Il risultato è -5. Il primo bit, pari
a 1, evidenzia che il numero è negativo.
Il complemento a due di un numero negativo ne restituisce il numero positivo pari al valore
assoluto: invertendo i bit della rappresentazione del numero -5 (sopra) si ottiene: 0000 0100,
sommando 1 si arriva a 0000 0100 + 0000 0001 = 0000 0101, che è la rappresentazione di +5
in forma binaria. Si noti che il complemento a due dello zero è zero stesso: invertendone la
rappresentazione si ottiene un byte di 8 bit pari a 1, e aggiungendo 1 si ritorna a tutti 0
(l'overflow viene ignorato).
Addizione:
Operare l'addizione di due interi rappresentati con questo metodo non richiede processi speciali se
essi sono di segno opposto, e il segno viene determinato automaticamente. Per esempio
addizionando 15 e -5:
11111 1110 (riporto)
0000 1111 (15)
+ 1111 1011 (-5)
===========
0000 1010 (10)
Questo processo gioca sulla lunghezza fissa di 8 bit della rappresentazione: viene ignorato un
riporto di 1 che causerebbe un overflow, e rimane il risultato corretto dell'operazione (10). Gli
ultimi due bit (da destra a sinistra), ovvero i più significativi, della riga dei riporti contengono
importanti informazioni sulla validità dell'operazione: se il risultato è compreso o non è compreso
nell'intervallo dei numeri rappresentabili. Si verifica se il riporto è stato eseguito sul bit del segno
ma non è stato portato fuori, o viceversa; più semplicemente, se i due bit più a sinistra sulla riga
dei riporti non sono entrambi 0 o 1. Per verificare la validità del risultato è conveniente eseguire su
questi due bit un'operazione XOR. Ad esempio di addizione a 4 bit di 7 e 3:
01110 (riporto)
0111 (7)
+ 0011 (3)
=============
1010 (10)
In questo caso, come si può notare dal riporto presente solo sul bit più significativo, si è in
presenza di overflow, per cui il risultato non è 10 (come sarebbe corretto) ma -6, infatti il massimo
n-1
numero positivo rappresentabile in complemento a due su quattro bit è 7 (con n=4: 2 - 1 = 7).
Per numeri binari rappresentati in complemento a 2 si verifica overflow per l'addizione se e solo se:
• la somma tra due numeri positivi restituisce un numero negativo;
• la somma tra due numeri negativi restituisce un numero positivo.
Sottrazione:
Anche se la sottrazione potrebbe essere eseguita aggiungendo il complemento a due del
sottraendo al minuendo, questo procedimento è poco utilizzato in quanto porta più complicazioni
che semplicemente costruire un circuito per la sottrazione. Ma come per l'addizione, il vantaggio
del complemento a due è l'eliminazione della necessità di esaminare i segni degli operandi per
determinare quale operazione sia necessaria. Per esempio, sottrarre -5 a 15 è come aggiungere 5 a
15, ma questo è nascosto dal complemento a due:
1111 0000 (riporto)
0000 1111 (15)
− 1111 1011 (−5)
===========
0001 0100 (20)
L'overflow viene individuato con lo stesso metodo usato per l'addizione, esaminando i due bit più
a sinistra sulla riga dei riporti: se sono differenti si è verificato un overflow. Un altro esempio con
− 35 = −20:
una sottrazione con risultato negativo: 15
1110 0000 (riporto)
0000 1111 (15)
− 0010 0011 (35)
===========
1110 1100 (−20)
Si verifica overflow durante un'operazione di sottrazione se e solo se:
• la sottrazione tra un numero positivo e uno negativo (ovvero la somma di due numeri
positivi) restituisce un numero negativo;
• la sottrazione tra un numero negativo e uno positivo (ovvero la somma di due numeri negativi)
restituisce un numero positivo.
MODULO E SEGNO
La rappresentazione in segno e modulo, o rappresentazione con grandezza e segno, è
una rappresentazione dei numeri relativi in base 2, che estende il sistema numerico binario per
rappresentare i numeri negativi. È utilizzato in informatica per la rappresentazione dei numeri
all'interno dei calcolatori. Questo è il modo più semplice per rappresentare e distinguere numeri
positivi e negativi: al numero binario vero e proprio viene anteposto un bit che, per convenzione,
assume il valore 0 se il numero è positivo oppure il valore 1 se il numero è negativo.
Esempi:
• +3 = 0011
10 M&S
• -3 = 1011
10 M&S
Il grande difetto di questa rappresentazione è quello di avere due modi per scrivere il numero 0:
0000 e 1000 significano infatti +0 e -0.
+0 0000 -0 1000
+1 0001 -1 1001
+2 0010 -2 1010
+3 0011 -3 1011
+4 0100 -4 1100
+5 0101 -5 1101
+6 0110 -6 1110
1111
+7 0111 -7
Un altro svantaggio lo si ha nell'operazione di somma tra due numeri, in cui, definiti i due numeri
A e B, si procede secondo la seguente tabella:
• con A > 0 e B > 0 --> A + B
• con A > 0 e B < 0 --> A - |B|
• con A < 0 e B > 0 --> B - |A|
• con A < 0 e B < 0 --> - (|A| + |B|)
ALGEBRA DI BOOLE
L'algebra di Boole è il ramo dell'algebra in cui le variabili possono assumere solamente i
valori vero e falso (valori di verità), generalmente denotati come 1 e 0 rispettivamente; le operazioni
fondamentali non sono addizione e sottrazione ma gli operatori logici: la congiunzione o prodotto logico
∧ ∨
indicata con oppure AND; la disgiunzione o somma logica indicata con oppure OR; la negazione o
complementazione indicata con ¬ oppure NOT. Con tale formalismo si possono descrivere le relazioni
logiche in modo simile a quanto fa l'algebra ordinaria con le relazioni numeriche: la combinazione di
AND, OR e NOT permette di sviluppare qualsiasi funzione booleana e i tre operatori logici formano
pertanto un insieme funzionalmente completo. Si è visto che gli operatori dell'algebra booleana possono
essere rappresentati in vari modi, ma spesso sono scritti semplicemente come AND, OR e NOT che è la
scrittura che utilizziamo ora per parlare degli operatori booleani. Nella descrizione dei circuiti, possono
anche essere usati NAND (NOT AND), NOR (NOT OR) e XOR (OR esclusivo).
Not:
L'operatore NOT restituisce il valore inverso a quello in entrata. Una concatenazione di NOT è
semplificabile con un solo NOT in caso di dispari ripetizioni o con nessuno nel caso di pari. Inoltre
la porta logica NOT possiede una sola variabile binaria.
A NOT A
0 1
1 0
Spesso, al fine di semplificare espressioni complesse, si usano operatori brevi che uniscono
l'operazione di NOT ad altre: questi operatori sono NOR (OR + NOT), NAND (AND + NOT),
XNOR (XOR + NOT). La negazione, in questi casi, viene applicata dopo il risultato
dell'operatore principale (OR, AND, XOR).
Il simbolo di una porta NOT è:
And:
L'operazione AND restituisce come valore 1 se tutti gli operandi hanno valore 1, mentre restituisce 0
in tutti gli altri casi come ad esempio quando una porta è alta mentre le altre sono basse e pu&
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.