Eschgfaeller Mabbs Algoritmi

User Manual: Eschgfaeller-mabbs-algoritmi

Open the PDF directly: View PDF PDF.
Page Count: 47

DownloadEschgfaeller-mabbs-algoritmi
Open PDF In BrowserView PDF
ALGORITMI E STRUTTURE DI DATI

Insiemi
La notazione matematica
L’assioma della scelta
L’insieme delle parti

Numeri complessi
2
3
4

Le funzioni
Le funzioni
Uguaglianza di funzioni
Composizione di funzioni
Associatività
La funzione identica
L’immagine
Funzioni iniettive
Funzioni suriettive
Iniettività categoriale
Suriettività categoriale
Funzioni biiettive
Spazi di funzioni
Proprietà funtoriali

2
3
3
3
3
3
3
4
4
4
4
4
4

Algebra lineare
Equazioni lineari in una incognita
Sistemi astratti
Due sistemi lineari in due incognite
Esempi
La forma generale della regola
di Cramer
Determinanti
L’algoritmo di eliminazione di Gauß
Sistemi con più di una soluzione
L’insieme delle soluzioni di un
sistema lineare

6
7
7
8
8
8
9
10
10

Trigonometria
Trigonometria oggi
Un problema di geodesia
Il triangolo
Il triangolo rettangolo
Triple pitagoree
Le funzioni trigonometriche
La dimostrazione indiana
Il triangolo isolatero
Angoli sul cerchio
Il teorema del coseno
Il grafico della funzione seno
La periodicità di seno e coseno
Altre proprietà di seno e coseno
   e  

11
11
12
12
12
12
13
13
13
14
14
14
14
14

Geometria
Grafica al calcolatore e geometria
Distanze in 
Il prodotto scalare
Ortogonalità
Coordinate polari nel piano
Coordinate cilindriche nello spazio
Coordinate polari nello spazio
Rotazioni nel piano
Disuguaglianze fondamentali
Il segno del prodotto scalare
Ellissi
Iperboli
Rette e segmenti
Equazione di una retta
Proiezione su una retta
Riflessione in un punto
Riflessione in una retta

9 gennaio 2005

a.a. 2004/05

11
15
15
15
21
21
21
21
24
24
29
29
30
30
30
36
36

Numeri complessi in R
I numeri complessi
La formula di Euler
Il campo dei numeri complessi
La formula di de Moivre
Parte reale e parte immaginaria
Radici di un polinomio
Radici  -esime dell’unità
Radici di un numero complesso
Perturbazione dei coefficienti
I cammini delle radici
Il teorema di Rouché
Continuità delle radici

Vettori e matrici con R
22
23
23
24
24
24
25
25
25
36
37
37
37

Programmazione in R
R
Le funzioni d’aiuto
Installazione di R
Il libro di Crawley
Programmare in R
Programmi autonomi
Nomi in R
Assegnamento
Successioni
Angoli espressi in gradi
I commenti
Funzioni in R
expression ed eval
ifelse
NA
if ... else
identical
Operazioni insiemistiche
dimnames
for, while e repeat
Abbreviazioni
Options e print(x,n)
any e all
Ordinamento
La libreria

16
16
16
16
17
17
17
17
18
18
18
22
29
32
32
33
33
33
33
40
45
45
46
46
46

Grafica con R
Figure di Lissajous
La grafica di R
plot e lines
Il comando postscript
points
symbols e rect
Grafici di funzioni
Curve parametrizzate nel piano
Octobrina elegans
Octobrinidae I
Octobrinidae II
abline
Parabrinidae
Rotazioni
Testi matematici
Curve di livello



Una collana




  


"!$#%"
"!
"!&
 ! #%
"!&

Il foglio di Cartesio
La chiocciola di Pascal
La lemniscata
Una curva trascendente
La funzione polygon
Il file figure
Tratteggi
Una modifica in Postscript
Parallele
Come nasce una forma

Indice

18
19
19
19
22
22
26
26
26
27
27
28
28
28
29
31
31
32
33
33
33
34
34
34
34
34
34
35
35
35
36
38
38

outer
Creazione di matrici
Matrici in R
Esempi per le operazioni matriciali
Piccoli operatori
Indici vettoriali
v[v%%p ' 0]
Assegnazione vettoriale
Indici matriciali
L’opzione drop
rbind e cbind
Sistemi lineari con R
length e dim
det (determinante) e traccia
Matrici diagonali
abs (valore assoluto) e sign
Autovalori
Matrici simmetriche
eigen (autovalori e autovettori)
Matrici reali
I cerchi di Gershgorin

32
38
39
39
39
40
40
41
41
41
41
42
42
42
42
42
42
43
43
43
43

Analisi
I numeri binomiali
La formula di Stirling
Funzioni iperboliche
Derivazione simbolica
La derivata
La funzione esponenziale
Esempi per l’uso di D
La serie di Taylor

20
21
28
44
44
44
45
45

La professione del matematico
Che cos’è la matematica?
La professione
Dall’università all’azienda
Geometria applicata
La matematica in azienda
La statistica matematica
La matematica degli ingegneri
Matematica e chimica
La dinamica dei fluidi
Geomatematica
Malattie tropicali
La matematica del futuro

1
2
2
5
5
5
5
5
5
5
5
18

Varia
Il re dei matematici
Le basi di Gröbner
Il sito CRAN di Ferrara
Il crivello di Eratostene

6
6
30
40

Strumenti
L’alfabeto greco

1

Esercizi per gli scritti
Esercizi 1-13
Esercizi 14-17
Esercizi 18-22
Esercizi 23-27
Esercizi 28-43
Esercizi 44-53
Esercizi 54-58
Esercizi 59-66
Esercizi 67-76

10
15
18
22
25
30
34
38
43

     
Corso di laurea in matematica



 

 





 

Anno accademico 2004/05

Che cos’è la matematica?
Dividiamo questa domanda in due sottodomande, cercando di indicare prima i
costituenti elementari della matematica, poi come la matematica deve essere usata.
I componenti elementari del ragionamento matematico sono enunciati della forma ipotesi implica tesi; in questo senso la matematica non conosce affermazioni
assolute, ma soltanto proposizioni che si compongono ogni volta di un preciso elenco delle ipotesi che vengono fatte, e poi di una altrettanto precisa specificazione
dell’enunciato che secondo quella proposizione ne consegue. A questo punto non è
detto che la proposizione sia valida, bisogna ancora dimostrarla, e ciò significa,
nella matematica, dimostrare che la tesi segue dalle ipotesi unite agli assiomi e ai
risultati già ottenuti e alle regole logiche che dobbiamo applicare. Gli assiomi sono enunciati che vengono messi all’inizio di una teoria, senza dimostrazione; ogni
altro enunciato deve essere invece dimostrato.
È importante che bisogna sempre dimostrare una proposizione - che è sempre
nella forma ipotesi implica tesi! - nella sua interezza, cioè che si tratta di dimostrare la validità dell’implicazione e non la validità della tesi. L’enunciato A
implica B può essere vero, anche se B non e vero. Ad esempio in logica si impara
che, se l’ipotesi A è falsa, allora la proposizione A implica B è sempre vera. Quindi l’affermazione se 3 è uguale a 3.1, allora io mi chiamo Piero è sempre vera,
indipendentemente da come mi chiamo io. Nella pratica matematica ciò significa
che da una premessa errata si può, con un po’ di pazienza, dedurre qualunque
cosa.
La validità si riferisce quindi sempre a tutta la proposizione A implica B.
Mentre il matematico puro cerca soprattutto di arricchire l’edificio delle teorie
matematiche con nuovi concetti o con dimostrazioni, talvolta assai difficili, di teoremi, il matematico applicato deve anche saper usare la matematica. Nelle scienze
naturali e sociali, le quali pongono problemi molto complessi, uno dei compiti più
importanti è spesso la separazione degli elementi essenziali di un fenomeno dagli
aspetti marginali. In queste scienze le informazioni disponibili sono quasi sempre
incomplete, cosicché possiamo ogni volta descrivere soltanto una piccola parte della realtà. Anche quando disponiamo di conoscenze dettagliate, queste si presentano
in grande quantità, sono complesse e multiformi e richiedono concetti ordinatori
per poterle interpretare. Ciò significa che bisogna estrarre e semplificare.
Un modello matematico di un fenomeno ha soprattutto lo scopo di permettere di
comprendere meglio quel fenomeno, quindi di metterne in evidenza cause e effetti
e comportamenti quantitativi, di individuarne i tratti essenziali e i meccanismi
fondamentali. In un certo senso la matematica consiste di tautologie, e nel modello
matematico si tenta di evidenziare le tautologie contenute nel fenomeno studiato.
La teoria cerca di comprendere i processi e legami funzionali di un campo del
sapere.
La mente umana pensa in modelli. Anche quando non facciamo matematica
della natura, cerchiamo di comprendere la natura mediante immagini semplificate. La teoria inizia già nell’istante in cui cominciamo a porci la domanda quali
siano gli aspetti essenziali di un oggetto o di un fenomeno. La matematica non è
dunque altro che un modo sistematico e controllato di eseguire questi processi di
astrazione e semplificazione costantemente attivi nel nostro intelletto.
Il modello matematico, una volta concepito, se sviluppato correttamente, si mostra poi di una esattezza naturale che spesso impressiona l’utente finale che è tentato di adottare gli enunciati matematici come se essi corrispondessero precisamente ai fenomeni modellati. Ma ciò non è affatto vero: La precisione del modello
matematico è soltanto una precisione interna, tautologica, e la semplificazione,
quindi verità approssimata e parziale, che sta all’inizio del modello, si conserva,
e più avanza lo sviluppo matematico, maggiore è il pericolo che iterando più volte
l’errore, questo sia cresciuto in misura tale da richiedere un’interpretazione estremamente prudente dei risultati matematici. Proprie le teorie più avanzate, più
belle quindi per il matematico puro, sono spesso quelle più lontane dalla realtà.
Questo automatismo della matematica può essere però anche fonte di nuovi punti
di vista e svelare connessioni nascoste.
Un modello matematico è perciò solo un ausilio per la riflessione, per controllare
il contenuto e la consistenza logica di un pensiero o di una ricerca. In altre parole,
modelli sono strumenti intellettuali e non si possono da essi aspettare descrizioni
perfette della realtà. Essi non forniscono risposte complete, ma indicano piuttosto
quali siano le domande che bisogna porre.
L’astrattezza intrinseca della matematica comporta da un lato che essa rimanga
sempre diversa dalla realtà, offre però dall’altro lato la possibilità di generalizzare
i risultati ottenuti nelle ricerche in un particolare campo applicativo o anche uno
strumento della matematica pura a problemi apparentemente completamente diversi, se questi hanno proprietà formali in comune con il primo campo.

Numero 1

In questo numero
1

Che cos’è la matematica?
L’alfabeto greco
La professione
Dall’università all’azienda
La notazione matematica
Le funzioni
Uguaglianza di funzioni
Composizione di funzioni
Associatività
La funzione identica
L’immagine
Funzioni iniettive
L’assioma della scelta
Funzioni suriettive
Iniettività categoriale
Suriettività categoriale
Funzioni biiettive
Spazi di funzioni
Proprietà funtoriali
L’insieme delle parti
Geometria applicata
La matematica in azienda
La statistica matematica
La matematica degli ingegneri
Matematica e chimica
La dinamica dei fluidi
Geomatematica
Malattie tropicali

2

3

4

5

L’alfabeto greco
alfa
beta
gamma
delta
epsilon
zeta
eta
theta
iota
kappa
lambda
mi
ni
xi
omikron
pi
rho
sigma
tau
ypsilon
fi
chi
psi
omega







"$
&(
,*.
305 ,1
79
=;







!

#%
')

-/+
426
:8<
>

0 1

Sono 24 lettere. La sigma minuscola ha due forme: alla fine della parola si scrive , altrimenti
. In matematica si usa solo la .
Mikros (
) significa piccolo, megas
) grande, quindi la omikron è la o piccola
(
e la omega la o grande.
Le lettere greche vengono usate molto spes-

0

$?CDEF1

$? @.BA?1

H JLG KNM I è
I
B
un’abbreviazione per la somma M KPO M@Q O M?R O M
S G KVM I per il prodotto M K M Q M R M , mentre WYXZ èG
e ITJU
G
so nella matematica, ad esempio

un oggetto con due indici, per uno dei quali abbiamo usato una lettera greca.

ALGORITMI E STRUTTURE DI DATI
La professione
\ In genere lavoro in un team con ingegneri, biologi o bancari. Lavoro autonomo o in team nella programmazione
(chi conosce il C e il Perl può realizzare
le costruzioni e tecniche astratte matematiche imparate nel corso di laurea in
modo creativo e utile per l’azienda).
\ Il matematico deve essere in grado di
comprendere e analizzare i problemi
che si pongono nella prassi aziendale,
di tradurli nel linguaggio formale della matematica e di risolverli, spesso con
l’aiuto di tecniche e mezzi informatici.
\ Matematica finanziaria e attuariale
(calcolo delle probabilità, statistica, serie temporali, previsione dei valori di
borsa, calcolo dei rischi e delle tariffe).
\ Matematica aziendale (ottimizzazione,
statistica, teoria dei grafi). Il matematico può lavorare nei reparti di ricerca
operativa in grandi ditte, nello sviluppo di software aziendale, nel controllo
della produzione, nel servizio statistico,
nelle banche, nelle assicurazioni, nella
pubblica amministrazione.
\ Matematica industriale (equazioni differenziali, fisica matematica, ma anche statistica, serie temporali, ottimizzazione e controllo automatico, analisi
numerica).
\ Elaborazione delle immagini (applicazioni nell’industria, nella medicina,
nella robotica). Geometria (discreta e
differenziale) computazionale, grafica
al calcolatore).
\ Informatica teorica: algebra, strutture
ordinate, funzioni booleane (metodi
classici di semplificazione, diagrammi
di decisione, proprietà matematichestrutturali), linguaggi formali, automi.
Algoritmi. Analisi formale dei concetti.
\ Bioinformatica (confronto di sequenze,
studio dell’espressione genica, reti metaboliche). Statistica multivariata di
dati clinici di grandi dimensioni.
\ Possibilità di posizioni anche superiori (industria farmaceutica, ramo
attuariale-statistico).

Dall’università all’azienda
b Per inserirsi e crescere aziendalmente
nel modo migliore, è importante capire sin dall’inizio che cosa le imprese vogliono dai laureati appena assunti.
b Allenarsi al lavoro in team vuol
dire l’opposto che vedersi con i
propri simili: vuol dire sviluppare
l’interdisciplinarità, la capacità di farsi
capire da chi ha una cultura e un
gergo differenti, di trovare soluzioni
a problemi che toccano tutti in modo
diverso.
b L’università spinge invece ad aggregarsi per omogeneità, a verificare di sapere
tutti esattamente le stesse cose.
Purtroppo l’università abitua spesso a
un rapporto passivo, spersonalizzato,
burocratico e disincentiva l’iniziativa
individuale, la capacità di costruirsi
sentieri e schemi propri.
Gian Battista Rosa (ed.): Dall’università all’azienda.
ACTL 2002, 350p. Euro 30.

Numero 1

a.a. 2004/05

2

La notazione matematica

Le funzioni

Matematica e linguaggi di programmazione
hanno in comune la quasi perfetta precisione e allo stesso tempo la grande complessità
degli enunciati. È necessario quindi definire attentamente gli oggetti con cui si vuole
lavorare e le operazioni che si vogliono effettuare. Spesso questi oggetti e queste operazioni vengono utilizzati più volte nello stesso ragionamento o in una teoria. È quindi
necessario introdurre abbreviazioni e, siccome talvolta le stesse operazioni possono
essere effettuate su oggetti diversi, variabili. Ci limitiamo qui ad alcuni dei più comuni
concetti insiemistici.
L’insieme che consiste degli elementi viene
 denotato con
    .
 è l’insieme di

tutti gli
che godono della proprietà
o che comunquepossono

 essere descritti
dall’espressione
. Se
è elemento
di

 . Il
un insieme  , allora si scrive
simbolo  significa uguale per definizione.
Alcuni insiemi di numeri:

Il concetto singolo più importante della matematica è certamente quello di funzione.
Mediante funzioni possiamo trasformare informazioni da una forma all’altra, possiamo
semplificare informazioni complesse o immergere informazioni in contesti più generali. Una funzione del tempo può essere studiata per scoprire proprietà di periodicità,
funzioni complicate possono essere decomposte in funzioni più semplici. Se per esempio sappiamo che il prodotto di due funzioni
continue è ancora continuo e se accettiamo
per certo che la funzione che manda un numero reale in se stesso è continua, possiamo immediatamente concludere che
 la  funzione che manda un numero reale in D è
anch’essa continua.
Il concetto di funzione in matematica è
molto generale. Una funzione (o applicazione) è definita da tre componenti: un insieme  su cui la funzione è definita (il dominio della funzione), un insieme 2 (il codominio) di valori possibili (ogni valore della funzione deve essere un elemento di 2 ,
ma non necessariamente ogni elemento di
2 è valore della funzione), e un sottoinsieme \]I^_372 (il grafico della funzione)
; che deve avere la proprietà che per ogni
2 tale che
`  * esiste esattamente un 8
98
\ .


La tripla ab
<2c&\ si chiama allora una funzione da  in 2 e si scrive anche
?
aded)fg

 2 oppure i)h fg2 . Per  ogni
con
2 per cui
` a * si denota quell’unico 8
98
\ .
Se a può essere espressa mediante una
`
,
formula, per a si scrive anche aj k6a

"

!

$# &% ' 
"
)*' )+% ),# # &% &' 
.
.0/
 !
"
. 
e



!
Gli elementi di si chiamano numeri natu(
rali, quelli di numeri interi, gli elementi
(




di numeri razionali. L’insieme dei numeri
reali viene definito nei corsi di analisi ed è
denotato con 1 .
Molto importante e versatile è il concetto di prodotto cartesiano di insiemi: dati
due insiemi  ed 2 , con 432 si denota
l’insieme delle coppie (ordinate) di elementi
che si possono formare prendendo come prima componente un elemento di  e come
seconda un elemento di 2 :

53627



98

:;

<8



20

j kA>B >3; C .
formare l’insieme 

a

#
%


t"

'
tu

volte

1:D è quindi il piano reale, 1,E lo spazio
tridimensionale. In statistica una tabella di
F righe ed G colonne di numeri può essere
considerata come una collezione di F punti
nello spazio 1:H .
Quando un insieme  è contenuto in un
insieme 2 (ciò significa, per definizione, che
ogni elemento di  è anche elemento di
- si scrive JIK2 . Cosı̀ abbiamo
! 2 ), allora
(
I
I
I71 . Due insiemi si chiamano
uguali se hanno gli stessi elementi. Ciò si
può formulare anche cosı̀:



'
%
v
%

#
u v

In questo caso w
# &% &' &t    e per
2 possiamo
prendere ad esempio l’insieme
"
2x
# &% &' 9t  .
Nell’analisi di una variabile reale si studiano funzioni definite su un intervallo di 1
a valori reali. Il grafo di queste funzioni è un
sottoinsieme di 1:D e può quindi essere rappresentato nel piano.

LM2 se e solo se 5IN2 e 2OIP .
L’unione QORTS di due insiemi Q e S è
l’insieme di tutti gli elementi che appartengono ad almeno uno dei due insiemi, mentre l’intersezione QVUWS è l’insieme dei loro elementi comuni, ciò degli elementi che
appartengono sia ad Q che a S .
Come
" in aritmetica è utile avere un numero , cosı̀ nell’insiemistica si introduce
un insieme vuoto apparentemente artificiale definito dalla proprietà di non avere alcun elemento. Esso viene denotato con X ed
è sottoinsieme di ogni altro insieme: XYIT
per ogni insieme  (infatti ogni elemento di
X , cioè nessuno, appartiene a  ).

Z0[

è un’abbreviazione per se e solo se.

j kWl9m n '




u 
o l9m n
otzy${ l

Funzioni di questa forma, rappresentabili
come somme (finite o infinite) di funzioni trigonometriche, vengono studiate nell’analisi
armonica (o analisi di Fourier).

ALGORITMI E STRUTTURE DI DATI

Numero 1

a.a. 2004/05

Uguaglianza di funzioni

Associatività

Quand’è che due funzioni sono uguali?
Per definizione una funzione è una tripla.
Due triple di oggetti matematici    
e    sono uguali, se coincidono in
ogni componente, cioè se     
 e  . Perciò due funzioni  

!"#
$    " 
e  
sono
uguali se e solo se   %&  ' e
"#()"  . Le prime due condizioni significano che le due funzioni hanno lo stesso dominio e lo stesso codominio che a questo punto
possiamo chiamare  e ; analizziamo la
terza condizione, cioè "*+,"  . Ciò significa che, per -/.0 e 12./ si ha -3415.0" 
se e solo se -617.8"  e quindi 19 -
se e solo se 1#:- . In altre parole, la terza condizione è equivalente a  -;:  -
per ogni -9.0 .
Due funzioni  e   sono perciò uguali se
e solo se hanno lo stesso dominio  e lo stesso codominio
e se inoltre  -&<  -
per ogni -9.0 .

Assumiamo che siano date tre funzioni
b
@a BC , dc
@BHG e Gf
@e BHg . Allora possiamo
formare prima D7I+ e comporre il risultato
con h ottenendo cosı̀ iJ= :h;I6DjI! , oppure
comporre  con h7IMD , ottenendo la funzione
i  = kh5I3DIl . Dimostriamo che si ottiene
in entrambi i casi la stessa funzione. In primo luogo im ed i  hanno lo stesso dominio

e lo stesso codominio g . Dobbiamo dimostrare che i-*=?A@!BC e DE=?F@BHG sono due funzioni, si può definire la funzione composta
DJIKL=A@B>G ponendo
D+I(3-M= ND3-O

per ogni -/./ . La funzione composta trasforma quindi prima - in 6- e applica poi
la D ad 3- . Questa operazione è molto importante, sia per costruire nuove funzioni
da funzioni note, sia per studiare funzioni complicate decomponendole in funzioni
più semplici, rappresentando cioè la funzione complicata come composizione di funzioni più semplici.
Si usano allora spesso diagrammi commutativi: Un diagramma di funzioni

L’immagine

i  -?:h#I+oDJI(-?
:h64oDJI5-OL)h6Dp6-O4
i  -?kh7I5D 3I(3-?
kh7I5D p6-OL)h6Dp6-O4

e quindi im -Ji  - . Abbiamo cosı̀ ottenuto la legge di associatività per la composizone di funzioni:
h&I+oDJI(?kh&IqD lI5

Possiamo perciò tralasciare le parentesi e
scrivere semplicemente hImDI per una composizione di tre funzioni. In un diagramma commutativo la legge di associatività
ci permette di percorrere il diagramma seguendo le frecce, il risultato dipenderà solo dall’inizio e dalla fine del cammino. Verificare questa regola nell’ultimo diagramma
in basso a sinistra!
La legge di associatività corrisponde alla
commutatività del diagramma

D
G

si chiama commutativo, se P QDI7 . Siccome P e D/I2 hanno, per definizione, lo
stesso dominio  e lo stesso codominio G ,
l’uguaglianza significa che P -*RD3-O
per ogni -9.0 . Esempi:
UV

-3-

S

UV
UV
S

-

W
-



G


P


G

S

In analisi si dimostra che la composizione
di funzioni continue è continua; quindi se
UV
 UV
]O^ _

-+[C\ e
sono consappiamo che
tinue, possiamo dedurre che anche la funU V ]O^ _

zione 
[`\
è continua.

1&:3-}

Una funzione 2=w@BC è detta iniettiva, se
trasforma elementi distinti di  in elementi
distinti di ; quindi la funzione  è iniettiva se e solo se l’uguaglianza 3-6+~6- 
implica -  )- .
Proposizione 3.1. Sia f)
 € . Allora la funzione 2=w@BH è iniettiva se e solo se esiste
una funzione D=@BE tale che DIF)spt u .
Dimostrazione: (1)  sia iniettiva. L’idea
della costruzione di D è di mandare ogni 19.
ypz*z
(unico per la inietti in quell’ -n.,
ypz*z
‚ ,
vità di  ) per cui 103- . Se
abbiamo già finito. Cosa facciamo però, in caso generale, con quegli 12.0 che non apparypz*z
 ? A questo scopo scegliamo
tengono ad
un elemento qualsiasi -ƒ*.9 (ciò è possibile

€ ) e mandiamo tutti
perché per ipotesi „
ypz*z
!} in -ƒ .
gli elementi di {m18.H |j1H. 
In altre parole
†
-ƒ

se 1&:3-
altrimenti

= ){3--(|-9.0/}

yz*z

j}

.

(2) Molto più semplice, ma in un certo senso anche più interessante è la seconda direzione della dimostrazione, perché dà un
primo saggio dell’efficacia di questo modo
astratto di ragionare. Assumiamo che esista
una funzione D)=+@BC tale che DLI&,
sptu . Per dimostrare che  allora è iniettiva,
prendiamo due elementi -6 e -  di  per cui
3-j?:3-  .
Ma, per ipotesi, D3-O‰- per ogni -8.
 , e quindi -  ND3-  O?ND3-O?N- .

L’assioma della scelta

La funzione identica
Per ogni insieme 
tica (o identità) spt

esiste la funzione idenUV
-8=jw@BE . Per

uv= 

ogni funzione H=;w@BC
gramma commutativo

abbiamo un dia-






sptu




h
r

S

]O^ _

con

Funzioni iniettive

‡#&= ){1j- ƒ K|1F.AM10. 

g



-/./



e

S

S

esiste

è quindi un sottoinsieme di e consiste di quegli 19.w che sono immagine sotto
 di qualche elemento di  .

‡

In verità, in un diagramma commutativo
non useremo il cerchietto per denotare la
composizione, ma daremo dei nuovi nomi a
tutte le frecce; che nel diagramma che segue
P
NDI  segue proprio dalla commutatività.

-1

-#[>\

n{m12./~|
ypz*z

h

h&I5D


UV

L=n{6-(|-/./0}

In verità avremmo dovuto definire D mediante un grafo. È però chiaro che basta porre
D&kM42‡2 con ‡~)‡‰ˆ9‡  , dove

D

D

X YZ



D+I5


SCT2S
VU

ypz*z

D1?

g

P

sia un’applicazione. Allora l’imè l’insieme

E=lw@BH

magine di






3



stx

Quando si sviluppa assiomaticamente la teoria degli insiemi, si scopre che un enunciato che per molti versi sembrerebbe naturale,
non può essere dedotto dagli altri assiomi.
È quindi necessario aggiungerlo al sistema
degli assiomi insiemistici. Questo enunciato
prende il nome di assioma della scelta e può
essere formulato in questo modo:
Sia
un insieme e per ogni 1E.` sia dato un insieme non vuoto Š Y in modo tale che
per 1HŒ

‹ gli insiemi Š Y ed ŠŽ non abbiano
elementi in comune. Allora esiste un insieme
contenuto nell’unione degli Š Y tale che per
‡
ogni 1,. l’intersezione ‡<EŠ Y possieda
esattamente un elemento.

ALGORITMI E STRUTTURE DI DATI

Numero 1

a.a. 2004/05

4

Funzioni suriettive

Suriettività categoriale

Proprietà funtoriali

è detta suriettiva
Una funzione
se ogni elemento di
è immagine di qual.
che elemento di , cioè se

Proposizione 4.3. La funzione
è suriettiva se e solo se per ogni insieme e
e
ogni coppia di funzioni
l’uguaglianza
im.
plica

Proposizione 4.5. Siano date funzioni





Proposizione 4.1. La funzione 
è suriettiva se e solo se esiste una funzione
  tale che    .
Dimostrazione: (1) sia suriettiva. Sta
volta la costruzione di non è affatto elementare e richiede l’assioma della scelta.
Per ogni "! definiamo
#%$  '&)(*+-,./!10243%(*,5.67
8 9 per ogni
# $:
Siccome la è suriettiva,
8 ? non
%
#
$
>
#
=
;!< . Inoltre ed per @
hanno elementi in comune, come è evidente
dalla definizione. Per l’assioma della scelta
esiste un insieme
contenuto nell’unione
(e quindi contenuto in
degli
perché
per ogni ) tale che
per ogni
possiel’intersezione
da esattamente un elemento.
Quest’ultima condizione significa però
per ogni
esiste esattamente un
tale che
.
Perciò la tripla
è una funzione ben definita.
Dobbiamo però dimostrare che
, cioè che
per ogni
.
Ma
è proprio scelto in modo tale che
!
Riassumiamo la dimostrazione di questa
prima parte: L’idea intuitiva è semplicemente che per ogni
scegliamo un
tale che
(un tale
esiste sempre per l’ipotesi della suriettività
della ). Poi formiamo
. Ma senza l’assioma della scelta non riusciamo a dimostrare che in questo modo
abbiamo veramente definito un insieme .

A
#>$
# $CD <0
AE ># $
!
(*+-,./!2 A



  
*( ).
%(  (*).I.6

"!2

 F(G+H"+-A".

%(  (*.I.J:

, $ !L
7

B0C

,!

  
!K

z .
(2) Se viceversa esiste una funzione
tale che
e
,
allora è iniettiva e suriettiva, quindi biiettiva, per le prop. 3.1 e 4.1. Abbiamo quindi
il seguente risultato.

Y{

Z]^[ O/Z 

5
Z
ZJom[ /ZO 

Proposizione 4.4. La funzione
è biiettiva se e solo se esiste una funzione
t.c.
e
.
è allora univocamente determinata.


Z

Spazi di funzioni



l

l [
5 l

Per insiemi
ed
definiamo
come
l’insieme di tutte le funzioni
. Un
o un suo sottoininsieme della forma
sieme si chiama uno spazio di funzioni. Sia
una funzione.

X)

l [

Per ogni insieme T ed ogni funzione
| (1)
! | X} possiamo
formare la composizione
~( .  MX | !Cn} , ottenendo cosı̀ una
funzione j~)}\5} .
(2) Per ogni insieme l ed ogni funzione
U~ !xl  possiamo formare
la composizione
(€U.m yUm~ n'! 1l [ ,[ ottenendo cosı̀ una
l  l .
funzione
o‚ può essere identificato con nƒ _ „ † † † „ ‚5‡ .

‰ˆ Š{‹ T
} ˆ ~ O}
~
} 5{ ‹o}
(OkZ. ~  ~ kZ ~
Dimostrazione: Sia | !X2} .
Allora (/WZ. ~ ( | .61(/WZ. | /s(hZs | .s
j~(hZ] | .sj~(hZi~( | .I. .

e
.
sia un insieme. Come prima abbiamo applicazioni
e
. Allora

Proposizione 4.6. Siano date funzioni

 ˆ

5{‹  l sia
~ un insieme.~ Abbial 5ˆ  l [ e Jl Œ{  l  . Al(OkZ. ~ KZ ~ o ~
Dimostrazione: Sia UX!lJΠ.
~
Allora (/WZ. (U).sUG6(kWZ.G1(€UG%5.WZO
~Z (€Uno5.sKZ ~ ( ~ (€U.I. .
una funProposizione 4.7. Sia 

e
.
mo applicazioni
lora

zione. Allora:

Ž ~ % }\5}
T.
~ 5l  5  l [
è suriettiva Ž<
per ogni insieme l .
è iniettiva
per ogni insieme

è iniettiva
è iniettiva

Dimostrazione: Ciò non è altro che una riformulazione delle prop. 4.2 e 4.3.

L’insieme delle parti



L’insieme delle parti di un insieme
è definito come l’insieme di tutti i sottoinsiemi
stesso e
di . Ne fanno parte almeno
l’insieme vuoto che sappiamo essere sottoinsieme di ogni insieme. Se
è vuoto e
quindi coincide con , l’insieme delle parti
ha un solo elemento ed è uguale a
; se
possiede esattamente un elemento,
e non ci sono sottoinsiemi di
diversi da
e , quindi l’insieme delle parti è uguale all’insieme
e possiede due elemenè un insieme finito con
ti. In genere, se
elementi, l’insieme delle parti consiste di
elementi. L’insieme delle parti di
si denota con
.





9



9

&9+N27


’Q(*X.



9





&97 8 
 e9



‘
r‚

’(*X.
&9)7
&cb)7 &9+“&cb)7j7
&cb+“qj7 &9+“&cb)7+ &jqj7)+ &cb+“q7i7
&cb+ q+Nri7 &9+“&cb)7+ &jqj7)+ &r7
&cb+“qj7+v&cb+Nr7)+“&iqi+-ri7)+“&cb+“qi+“ri7i7
Una funzione booleana di ‘ variabili è una
‚
funzione o&cb+“qj7 x&cb+“qj7 o, equivalentemente, una funzione 1^’(*X.“ &cb+ q7 ,
dove  è un insieme con ‘ elementi.
Il numero delle funzioni
booleane è esor` ‚ funzioni
bitante. Esistono r
booleane di
‘ variabili, quindi 65536 funzioni booleane
9

con 4 argomenti, più di 4 miliardi con 5 argomenti, più di 18 miliardi di miliardi con
6 argomenti (ogni volta che si aggiunge una
variabile il numero delle funzioni booleane è
il quadrato di quello precedente).
Le funzioni booleane appaiono, sotto vesti
distinte, nella matematica pura, nello sviluppo di circuiti elettronici, nella ricerca medica. Su Google con boolean gene expression
cancer filetype:pdf si trovano 900 files.

ALGORITMI E STRUTTURE DI DATI

Numero 1

a.a. 2004/05

5

Geometria applicata

La matematica degli ingegneri

La dinamica dei fluidi

La geometria viene utilizzata in molti campi della tecnologia moderna: nella tomografia computerizzata, nella pianificazione di
edifici, nella creazione di animazioni per
film e pubblicità, nell’analisi dei movimenti
di robot e satelliti.
La matematica è di grande aiuto nella
grafica al calcolatore; conoscere le operazioni fondamentali della geometria (traslazioni, rotazioni, riflessioni, coordinate baricentriche, i vari tipi di proiezioni) permette di creare facilmente programmi di grafica con caratteristiche che talvolta mancano
anche nei programmi di grandi produttori
quando non sono stati sviluppati da matematici.
A livello più avanzato la geometria studia le varie rappresentazioni di curve, superficie e varietà geometriche di dimensione superiore, mediante rappresentazioni
parametriche oppure sistemi di equazioni.
Si impara allora come passare da una
rappresentazione parametrica a un sistema di equazioni che descrive la stessa varietà e viceversa; si studiano le funzioni che
trasformano una varietà in un’altra.
Nella statistica medica i dati sono spesso
punti in spazi di alta dimensione (se in una
analisi di prove di sangue con la spettrometria di massa vengono rilevate le concentrazioni di 80 molecole,
 ogni prova corrisponde a un punto di
). Se adesso vogliamo
suddividere i pazienti in gruppi caratteristici (sani e malati nel caso più semplice)
abbiamo bisogno di metodi geometrici per
definire validi criteri di separazione.

Problemi ingegneristici hanno quasi sempre una forte componente matematica: dalla teoria dei materiali all’elaborazione dei
segnali, dall’interpretazione di misurazioni al controllo di qualità, da modelli per
il corpo umano e i suoi movimenti (ad
esempio nell’industria automobilistica, ma
anche nell’industria tessile - in sartoria!)
all’analisi strutturale di edifici e ponti, dai
modelli matematici per i processi fisici e
chimici in un altoforno all’ottimizzazione
dell’illuminazione in impianti industriali,
dallo studio dell’erosione nel letto di un
fiume ai problemi inversi della geofisica
(importanti per esempio anche nell’analisi
strutturale di monumenti e edifici), dappertutto si utilizza la matematica.
Potremmo elencare tanti altri campi di
applicazione: la geometria dei movimenti
(cinematica) in robotica e nella costruzione
di macchine, teoria dei sistemi e controllo
ottimale nell’automazione, modellazione di
reazioni chimiche nella chimica industriale,
ottimizzazione strutturale di componenti di
macchine o della composizione di punte per
trapani da dentista, microstruttura di metalli, costruzione di autoveicoli, treni ed aerei, ottimizzazione di orari ferroviari, pianificazione urbanistica, telecomunicazioni.

Uno dei campi più classici e allo stesso tempo
più attuali della fisica matematica è la dinamica dei fluidi e dei gas. Essa richiede un ricco bagaglio di tecniche matematiche, soprattutto dall’analisi (equazioni differenziali parziali) e dalla geometria differenziale (calcolo
tensoriale), oltre a solide conoscenze in meccanica dei continui e termodinamica (densità
e viscosità e altre caratteristiche di un fluido o di un gas dipendono dalla temperatura e viceversa – un gas si scalda se viene
compresso). È una disciplina molto vasta con
tantissime applicazioni: costruzione di macchine (iniettori, turbine, ventilatori, pompe),
ale di aerei, eliche di aerei e di navi, ruote a
vento, modelli per nuovi materiali, flussi in
medi porosi, raffreddamento di vetri, produzione di fibre plastiche, serbatoi di olio, ottimizzazione del caffè espresso, studio della formazione di vortici e turbolenze, combustione, detonazioni, modelli per il movimento di animali (pesci, serpenti, uccelli), modelli aerodinamici per la meteorologia (circolazioni e turbolenze atmosferiche, moto dei
venti attorno a grandi catene di montagne,
uragani, convezione termica nell’atmosfera)
e l’agricoltura (moto dell’aria in piantagioni
o foreste), aerodinamica di edifici, pianificazione di esperimenti aerodinamici e idrodinamici (costruzione di canali aerodinamici),
previsione delle interazioni con l’aria di treni ad alta velocità, stima delle esposizioni al
vento di un ponte. In medicina la fluidodinamica del sangue è un campo importante ma
ancora piuttosto difficile (prevenzione di aneurismi e patologie circolatorie).

La matematica in azienda
La matematica aziendale comprende
da un lato la ricerca operativa, cioè
l’ottimizzazione delle risorse di un’azienda
o di un ente, una disciplina che si è evoluta
dall’ottimizzazione lineare a metodi sempre più avanzati (ottimizzazione quadratica,
convessa, dinamica, geometria dei numeri
e ottimizzazione intera, topologia algebrica, programmazione logica), e dall’altro,
soprattutto in campo bancario, la moderna sofisticata matematica finanziaria
che deriva dalla matematica attuariale,
ma utilizza strumenti matematici molto
complicati.
Processi stocastici e serie temporali oltre
che in matematica finanziaria hanno molte
altre applicazioni in economia: osservazioni
del carico elettrico della rete ENEL, cambiamenti demografici, andamento di mercati e borse.

La statistica matematica
Lo statistico che lavora in un’azienda,
nell’amministrazione pubblica o nella ricerca clinica, deve comprendere i compiti che
gli vengono posti e deve essere in grado
di interagire con i committenti. Nonostante ciò la statistica è di sua natura una disciplina matematica che si basa sul calcolo
delle probabilità e richiede conoscenze tecniche in altri campi della matematica come
analisi reale e complessa, analisi armonica, calcolo combinatorio (ad esempio per la
pianificazione di esperimenti).

Corso di laurea in matematica



Matematica e chimica
Il ruolo della matematica in chimica è in rapida crescita, essa viene applicata ad esempio nel disegno razionale di farmaci, nella
selezione e sintesi di nuovi materiali, come
guida nella ricerca di nuovi catalizzatori,
nello sviluppo di algoritmi per la dinamica
molecolare, nella risoluzione di problemi di
ottimizzazione di conformazioni, per la comprensione del ripiegamento delle proteine,
nello studio del trasporto di sostanze attraverso le membrane esterne ed interne della cellula (fondamentale per la farmacologia), nell’analisi del complicato avvolgimento delle molecole di DNA, nello studio della
struttura di cristalli e quasicristalli, nella
chimica quantistica.
La geometria e la topologia possono contribuire alla comprensione della struttura
tridimensionale delle molecole, la teoria dei
grafi permette non solo la visualizzazione
dei legami chimici, ma può essere applicata
alla rappresentazione di reazioni chimiche
oppure nell’organizzazione di banche dati di
molecole o della letteratura chimica; il calcolo combinatorio e la teoria dei gruppi intervengono nella chimica combinatoria, una
tecnica sempre più utilizzata dall’industria
farmaceutica. Il matematico può lavorare
nello sviluppo di algoritmi per la trasformazione di Fourier per le applicazioni nella
spettroscopia molecolare oppure nella chimica quantistica computazionale.
Equazioni differenziali parziali, analisi armonica, processi stocastici, statistica,
analisi numerica, teoria combinatoria dei
gruppi finiti, teoria dei grafi, quasiordini,
teoria dei numeri (generazione di numeri
casuali), geometria computazionale e grafica al calcolatore nella modellistica molecolare (computer aided molecular design e
computer aided drug design): sono poche le
discipline matematiche che non hanno interessanti applicazioni in chimica.

Corso di Algoritmi e strutture di dati

Geomatematica
Questo è un campo nuovo, molto bello e difficile della matematica. Funzioni speciali della geofisica matematica, funzioni armoniche
sulla sfera, operatori pseudodifferenziali della geodesia matematica, metodi di approssimazione multivariata, splines, wavelets, metodi degli elementi finiti nella geodesia, determinazione del campo gravitazionale della
Terra, analisi delle deformazioni della superficie terrestre, effetti della rifrazione atmosferica, determinazione del campo magnetico
della Terra mediante l’analisi di dati trasmessi da satelliti, sono solo alcuni dei temi
di questa interessante disciplina.

Malattie tropicali
È tipico per la natura viva che essa pone
dei problemi che difficilmente possono essere
perfettamente modellati con i metodi matematici classici sviluppati in genere per la fisica o l’ingegneria. Ciò da un lato vale naturalmente anche per le malattie tropicali come malaria, bilharziosi, filariosi, leishmaniosi, dall’altro lato queste malattie colpiscono ogni anno centinaia di milioni di persone, sono trascurate dalle ditte farmaceutiche
(i pazienti non possono pagare) e richiedono quindi interventi ecologici o politici molto
impegnativi. Alla pianificazione di questi interventi anche i modelli matematici possono
contribuire e sicuramente la medicina tropicale è attraente per il suo fascino e per il lato
umano.





Docente: Josef Eschgfäller

     
Corso di laurea in matematica



 

 





 

Anno accademico 2004/05

Il re dei matematici

Numero 2

In questo numero

Carl Friedrich Gauß (1777-1855) è considerato il re dei matematici. La lettera ß alla fine del nome è una s tedesca antica; il nome
(talvolta scritto Gauss) si pronuncia gaos, simile a caos, ma con la g invece della c e con
la o molto breve e legata alla a in modo che le
due vocali formino un dittongo. Nessun altro
matematico ha creato tanti concetti profondi
ancora oggi importanti nelle discipline matematiche più avanzate (teoria dei numeri, geometria differenziale e geodesia matematica,
teoria degli errori e statistica, analisi complessa). Il ritratto lo mostra a ventisei anni.
È stato forse il primo a concepire le geometrie non euclidee, ha dato una
semplice interpretazione dei numeri complessi come punti del piano reale
con l’addizione vettoriale e la moltiplicazione

 !"$#%&'(*)+"

e ha dimostrato il teorema fondamentale dell’algebra (che afferma che
ogni polinomio con coefficienti complessi possiede, nell’ambito dei numeri complessi, una radice), ha introdotto la distribuzione gaussiana del
calcolo delle probabilità, ha conseguito importanti scoperte nella teoria
dell’elettromagnetismo; è stato direttore dell’osservatorio astronomico di
Gottinga.
L’algoritmo di eliminazione era noto nel 1759 a Lagrange (1736-1813) e
già 2000 anni fa in Cina; Gauß lo ha usato nel suo lavoro sui moti celesti
del 1809, in cui descrisse il metodo dei minimi quadrati, una tecnica di
approssimazione ancora oggi universalmente utilizzata.

Le basi di Gröbner
Se si prova ad imitare l’algoritmo di eliminazione nella soluzione di sistemi polinomiali di grado maggiore di uno, ad esempio di

,(-.0/21&-3 /24(-6587(3:9<;
- . /23 . />-?/A@B3:9C,
=

si incontrano molte difficoltà (provare). Il
problema è stato risolto solo nel 1965 con
l’introduzione delle basi di Gröbner (Wolfgang Gröbner, 1899-1980, era un matematico austriaco)
e dell’algoritmo di
Buchberger (Bruno Buchberger, nato 1942), molto più
profondo e complicato dell’algoritmo
di eliminazione nel
caso lineare. Sistemi di equazioni polinomiali appaiono
in molti campi delWolfgang Gröbner
la matematica con
numerose applicazioni in ingegneria e statistica. Per questa ragione la geometria algebrica computazionale (compresa la geometria algebrica reale, importantissima
e molto difficile) è oggi un campo estremamente attivo della matematica, intera-

gendo con la teoria dell’ottimizzazione, la
teoria dei poliedri convessi, la crittografia, le equazioni differenziali parziali, la
fisica teorica e, se ci si fida, la matematica
finanziaria.
Bruno Buchberger nel 1987 ha fondato
il RISC (Research Institute for Symbolic
Computation, www.risc.uni-linz.ac.at/),
che ha sede nel castello di Hagenberg a 25
km da Linz e di cui è stato direttore fino
al 2003.
Il RISC è un istituto dell’università di
Linz e ospita circa 70 collaboratori, tra
cui molti studenti. Le attività, iniziate
con la geometria algebrica algoritmica
nell’intento di sfruttare le possibilità offerte dall’algoritmo di Buchberger, sono molto varie, ma hanno tutte in qualche modo
da fare con
la risoluzione di equazioni e disequazioni, talvolta
in senso molto lato confinando con la
logica computazionale, la
Il castello di Hagenberg
dimostrazione automatica di teoremi, l’inteligenza
artificiale, la robotica e la chimica industriale.

6

7
8

9
10

Il re dei matematici
Le basi di Gröbner
Equazioni lineari in una incognita
Sistemi astratti
Due equazioni lineari in due incognite
Esempi
La forma generale della regola
di Cramer
Determinanti
L’algoritmo di eliminazione di Gauß
Sistemi con più di una soluzione
L’insieme delle soluzioni di un
sistema lineare
Esercizi 1-13

-F9

- 6- 9
<9 B D
D-69 E E
D G la soluzione è unica e data da D .
Per H
-

Equazioni lineari in una incognita

E D E

Siano dati numeri reali e . Cercare di risolvere l’equazione
nell’incognita significa
.
cercare tutti i numeri reali per i quali

Dimostrazione: È chiaro che le seguenti equazioni sono equivalenti, cioè se soddisfa una di
esse, allora le soddisfa tutte:

-69
-D 9 E
D -69 E
D D
E
D

È evidente che nel nostro ragionamento solo le
proprietà algebriche formali dei numeri reali sono state usate e che rimane quindi valido, cosı̀
come le considerazioni successive, se lavoriamo
con numeri razionali o numeri complessi o altri insiemi di numeri con quelle corrispondenti
proprietà. Si vede comunque anche che abbiamo
avuto bisogno di poter dividere per un numero
, e quindi il risultato non è vero nell’ambito
dei numeri naturali o interi.
Un insieme, su cui sono date due operazioni
di addizione e di moltiplicazione che soddisfano
le familiari regole di calcolo e in cui si può sempre dividere per un elemento
, in matematica
si chiama un campo. Quindi l’algoritmo di eliminazione di Gauß rimane valido per sistemi di
equazioni lineari i cui coefficienti appartengono
a un campo qualsiasi.
Elenchiamo le regole che devono valere in un
campo; verranno stabilite e studiate più dettagliatamente negli altri corsi.

9IB
G

9K
D E /F/ B?99 D / E
/
3 "?4 3-@  @ 4 .!.!."4 3 $="$A '# @ BC!!!*!$+  coincidono. Dimostrazione. Per dimostrare l’uguaglianza tra i due insiemi, dobbiamo dimostrare che ogni elemento del primo insieme è anche elemento del secondo, e che ogni elemento del secondo insieme è elemento del primo. Sia quindi un elemento fissato di X (1)    '    '!!!!* $  . È chiaro che allora anche Sia 3 ' G:4 3D@  @C E4 !. ."."4 3 $F"$ G "@!  $  C (2) Sia viceversa 3   '  G:4 3 @  @ E4 .!."."4 3 $  $ G "@C! !$  C   FH Ma se sostituia @C FH'!!!"#!$ 'FI nella .prima equazione, Dobbiamo dimostrare che mo vediamo che 3  'G . Qui possiamo adesso applicare la nostra ipotesi che 3 F< . Essa implica  ' . 3 < Attenzione: Il ragionamento non vale più, se non sappiamo ! che  @ Nota 7.4. Nel seguito avremo oppure, più in generale, . Nel primo caso scriveremo gli elementi di nella forma , cosicché denoterà la prima coordinata di un elemento e non l’elemento stesso. Gli elementi di saranno scritti nella forma , gli elementi di nella forma . Questo passaggio da una notazione all’altra è frequente e diventerà presto familiare. )J -2KL )J  )M Q #RS#T! Q@ * R @ # T @ . Risolvere il sistema lineare significa trovare tutte le coppie di numeri reali che soddisfano entrambe le equazioni. Per poter applicare il teorema 7.3 introduciamo le funzioni definite da denotiamo l’insieme e 7 /   !!"!P  J E#KNPO Q X   %'* @ W . La- cosicché l’insieme delle soluzioni cercate coincide con . sciamo come esercizio il caso molto facile che Assumiamo quindi che e definiamo la funzione Q <   Q " @Y(Q@  M Per il teorema 7.3 abbiamo ) '# @ BG ) '# B M  B < perché è @ che sicuramente appare con un coefficiente  esteso l’equazione M diventa Q  Q@  4 Q !R @ K (Q "T @);Q@Q S (Q@ R*"KZ4 QL@ T!X in  M . Scritta per cioè [Q " R Z@ (Q@ RSS\K7 Q " T )@ ;Q@ T! , e quindi le soluzioni del sistema originale coincidono con le soluzioni del sistema  Q  " 5R 4UR  K7T [Q Z@ (Q@ RSS\K7  R @ ]Q Il numero Q Q " T )@ ;Q@ T! @ R  si chiama il determinante del sistema; lasciamo ^ < , ancora come esercizio il caso che il determinante si annulli; se è invece allora la seconda equazione significa che K7 Q !" TR @);Q@ T!R* Q )@ ;Q@ . Se per numeri reali `` Q b  T! ` 7K `` Q @ TR @ `` Q R ` Q@ @ `` `` Q #R"#T#_ poniamo `` Q R `` a T _ ``  _ R*T `` Q  , possiamo scrivere `` `` Vediamo che anche il numeratore ha la forma di un determinante; infatti si ottiene dal denominatore sostituendo per la seconda colonna la colonna che costituisce il lato destro del sistema. A questo punto possiamo calcolare anche . Ricordando che , otteniamo  T!  RS Q "TR @);Q@ T!RS ! T  R S !  K  = Q  @);Q@ Q Q Q "R @ T! ;Q@ RST!  R* Q "T @ 4cRS Q@ T! Q  >Q "R @Y(QL@ RS! Q  R @ T R  R  Q  RST!@  R @"RT   R  T RS@  Q >Q @);Q@ Q @Y(QL@ < Q / `` T!bRS `` ` T R ` ``` Q @  R @  ``` `` QL@ R @ `` A < , il sistema possiede Quindi nel caso che il determinante del sistema sia un’unica soluzione data da `` T!bR* `` `` Q bT! `` `` T @ R @ `` ` `  ` bRS ` K7 `` Q @dTRS@ `` `` Q R `` `` Q R `` ` Q@ @ ` ` Q@ @ `  Si osservi che il numeratore di si ottiene anch’esso dal determinante del sistema, sostituendo stavolta la prima colonna con il lato destro del sistema. Questo risultato è molto importante per l’algebra lineare e può essere generalizzato a più dimensioni; è noto come regola di Cramer. ALGORITMI E STRUTTURE DI DATI Numero 2 a.a. 2004/05 Esempi Determinanti Risolviamo con la regola di Cramer il sistema Conosciamo già i determinanti           Il determinante del sistema è            , quindi   !   "                  # %$      * + G +   * / G /   *=H!G5H  3 + 3 / 3 H   * + G +   *K/LG5/   *KHLG5H   *=MNG-M  3 J + IK+ 3 / I / 3 H I H 3 M I M   G5/ * +   5G H  9      &'  &'(  $ Esercizio. Perché non si può applicare la regola di Cramer al sistema &'  &'   9     *.+0/  / * /5/  / 111 111 *.+02  2  * /52  2  3 + 3 / * 2./  / 666 111 * 2.2  2  3 2 Anche in questo caso più generale si può definire il determinante del sistema, un numero che viene denotato con 8:9    * ;+ / * /-/ 666  =  * 2>+"*=2./ 666 666 * 0+ 2 * /52 666 *=2,2        e si dimostrerà nel corso di Geometria I che questo determi@ se e solo se il sistema possiede un’unica soluzione nante è ? che in tal caso è data da  3 A *.+;/  +  3 / * /-/     3 2   +  3 + 3 /  *=2>+  3 2   /  * 2./  * 5+ +   *=/<+   666 8 666 8 666 666 *.+02 * /52  666 * 2,2  666 666 * 0+ 2 *=/52  666 *=2,2  ...  * -+ + * +0/   *=/4+A*=/5/     2  ,B  *=27+"*=2,/  666 8   G<+    * /  5G H     G-M     G +     *OM  G5/     G5H   I / 3 H 3 M  G<+ *=H   G /     I H I M 3 " + IK+ 3 / I / 3 MLIM  3 + 3 / 3 + 3 H 3 M     I + I H I M       3 " + IK+ 3 / I / 3 H I H      DF Lemma 8.3. Un determinante regola  .  * +"G<+  * / G /   * H G H   3 + 3 / 3 H   G5/ * +   5G H  9    può essere calcolato anche secondo la     G +  *=/   =   * H 3 / 3 H    S3 +  *=/LG5/   =   * HLG5H 3 / 3 H     Dimostrazione. Le due espansioni si distinguono in Sia dato un sistema di ) equazioni lineari in ) incognite (quindi il numero delle equazioni è uguale al numero delle incognite):  3 /  3 + 3 H  DP  La forma generale della regola di Cramer  * 5+ +   * /<+     * /  G<+   5G H   3 H Lemma 8.2. Se in un determinante scambiamo tra di loro due righe R o due colonne, il determinante si moltiplica con . &'  * 27+  + * + G /  * / G + .  Dimostrazione. Immediata. Eppure non è difficile trovare “tutte” le soluzioni. Perché ho messo “tutte” tra virgolette? E perché è anche (quasi) facile trovare tutte le soluzioni di *,+-+  + * /4+  +    e cosı̀ via. Si noti l’alternanza dei segni. I determinanti hanno molte proprietà importanti che verranno studiate nel corso di Geometria. Qui ci PD PDQ limiteremo a determinanti e , per i quali dimostriamo alcune D ) , se riformulate in semplici regole, valide anche per determinanti ) modo naturale.  &'    3 /  G5/  * +  5G H  G-M   G +  * H  G5/  G M   Esercizio. Risolvere da soli   *.+"G<+  G / :  * / Definizione 8.1. Per induzione definiamo i determinanti di ordine superiore: diverso da , per cui         EDF 8   e   * /  G +  G H 3 + 3 H    G +  * / * H  = 3 /  3 H  G + *=H   5G / 3 + 3 /   G /  T3 +  * /   =   * H!G5H       * / G + 3 H     G + * / 3 H   * / G5H 3 + *=HG + 3 /  *=HOG / 3 + G + *=H 3 / T3 + * / G-H  3 + *KHG / che però, come vediamo, danno lo stesso risultato. Lemma 8.4. Se si scambiano due righe o due colonne in una matrice R il determinante si moltiplica per . UD& , Dimostrazione. Ciò, per il lemma 8.2, è evidente per lo scambio della seconda e della terza colonna e, per il lemma 8.3, anche per lo scambio della seconda e della terza riga. Se invece scambiamo la prima e la seconda colonna, otteniamo il determinante  G + * +   G / * /   G5HL*=H  3 + 3 / 3 H    * / G4+   * H  9    3 / 3 H     *.+  G /   G H   3 / 3 H    S3 +  G /   G H   * / * H uguale, come si vede subito, al determinante originale moltiplicato per Gli altri casi seguono adesso applicando le regole già dimostrate. R     . Lemma 8.5. Se in un determinante appaiono due righe o due colonne  uguali, allora il determinante è uguale a .     DQ   Dimostrazione. Ciò per un determinante è ovvio, e se ad esempio  DV ) sono uguali le ultime due colonne, l’enunciato segue (usando il caso DV dalla formula di espansione anche per i determinanti , e poi dal caso TDF D anche per i determinanti   ecc.  Esempio. Verificare con calcoli a mano che     666 666 3 + 3 /  666 3 2   * +   * /   * H    * + * / * H 3 + 3 / 3 H  .  * +"G<+  * / G /   * H G H  *.+ * / * H e che     è quindi un quoziente il cui numeratore si ottiene dal determinante del sistema, sostituendo la C -esima colonna con il lato destro del sistema.         3 + 3 / 3 H         .  * +"G<+  * / G /   * H G H  3 + 3 / 3 H       L’ultima uguaglianza è un caso speciale di un’altra proprietà fondamentale dei determinanti. ALGORITMI E STRUTTURE DI DATI L’algoritmo di eliminazione di Gauß La teoria dei determinanti e la regola di Cramer hanno una grandissima importanza teorica, ma non possono essere utilizzate se non per sistemi in due o al massimo tre incognite. Inoltre la regola di Cramer si applica solo al caso di un sistema quadratico. Esiste invece un metodo molto efficiente (anche nel calcolo a mano) per la risoluzione di sistemi di equazioni lineari, che viene detto algoritmo di eliminazione di Gauß e che consiste nella sistematica applicazione del teorema 7.3. Esempio 9.1. Consideriamo il sistema      !"#     $!"&%     &%5+,-).0/21 !     Le indichiamo alla destra delle equazioni corrispondenti. Con la notazione che abbiamo introdotto nell’osservazione 7.2 poniamo &61  78 # Per il teorema 7.3 allora +9:35)* # 35)*&% ;/<=+>?6 ;5)@ # ;5)@&%$3/ A &6  perché il coefficiente con cui appare in è diverso da . Es&6 ; plicitamente equivale a  +B /C85+  D8$/E  F  F   cioè a G ; . Se chiamiamo due sistemi equivalenti quando hanno le stesse soluzioni, possiamo dire che il sistema originale è equivalente al sistema   !" #     $!"&% G$!&6  &6 Nell’ultima equazione la variabile in è sparita, è stata eli# minata. Ripetiamo questa operazione sostituendo la funzione con H 1 3 #   &% H  # 3 Ciò è possibile perché in la appare con un coefficiente I . H3 Esplicitamente significa  J8$   +B4  /E!   F  cioè  $GK LM . Perciò il sistema originale ha le stesse soluzioni come il sistema     $!N&% G$!= 6  $GK$MH &O1 P&6MQGH &6 Adesso formiamo che può sostituire sia la H H &O; che la . Possiamo togliere la . è equivalente a 5+BGA/RG5+S  GK/<= F :G F +SM/ , cioè a 35 . 9 Otteniamo cosı̀ il sistema     $! &% G$!T&6 $!5&O che è ancora equivalente a quello originale. Ma adesso vedia mo che nell’ultima equazione è stata eliminata anche la ed è rimasta solo la che possiamo cosı̀ calcolare direttamente: 5 $ 35UK ,  &6$3 , otteniamo poi, usando :!  ;5 5G , G In analogia a quanto abbiamo fatto a pagina 7 per il sistema '( )* # &% le funzioni ed sono definite da +,-).0/21 3  4  # +,-).0/21 Numero 2 a.a. 2004/05 &%; e infine dal VL7!  W$35 G . Nella pratica si userà uno schema in cui vengono scritti, nell’ordine indicato dall’ordine delle variabili, solo i coefficienti. Nell’esempio appena trattato i conti verrebbero disposti nel modo seguente:    X 3  Y# M  3      Y&%  [ Z #  G   X 6 \  GK MYH] # Z   &% 3  ^ 5X O = 6 4G[H Z L’asterisco indica ogni volta l’equazione cancellata in quel punto; l’uncino a destra di un’equazione significa che questa equazione è stata cancellata. Nei conti a mano spesso si preferirà forse cancellare la riga con un tratto orizzontale piuttosto di usare l’uncino. Come si vede, nell’algoritmo cerchiamo prima di ottenere un sistema equivalente all’originale in cui tutti i coefficienti tran_ , poi, usando ne al massimo uno nella prima colonna sono le equazioni rimaste, applichiamo lo stesso procedimento alla seconda colonna (non modificando più però quella riga a cui L nella prima coloncorrisponde quell’eventuale coefficiente I na), ecc. È chiaro che il procedimento termina sempre: alle ` ] ! equazioni iniziali si aggiungono prima ` , poi ` , poi  ` , ecc. L’insieme delle soluzioni rimane sempre lo stesso; le equazioni cancellate naturalmente sono superflue e non vengono più usate. Quindi, se il sistema non ha soluzioni o più di una soluzione, riusciamo a scoprire anche questo. Esempio 9.2. Consideriamo il sistema -2G # a%ba6W -E   # ba%7a6W! -2  # a%Ma6W3c Applichiamo il nostro schema:  MG \         #     c &% \  G\MG MGd 6 ;  Z 8  # \  G\MG MdH ; % Z 8   #     Md O ; 6 Z   H 3 3 3 Il sistema dato è quindi equivalente al sistema -E   # ba%74a6;  [#7G % G 6 =M $; In particolare siamo arrivati alla contraddizione di il sistema non ha soluzione. $LM , quin- ALGORITMI E STRUTTURE DI DATI Numero 2 a.a. 2004/05 Sistemi con più di una soluzione Esercizi per i compiti scritti Consideriamo il sistema         1. 2.  ! $%  & )*+,.! - /0 % )12  %23.& $42,.* -   1 3  :7 9 ' 2 9 C? D?   '    ' 9BA 9BA 9BA ea > . Calcolare _ > . Calcolare Z ;[ \  b 6c a ea c< F?` A. considerate come . 3Z d[\  & Z % i_ Z j[ \  % Z _ > > ea > > . e f gh c( Calcolare a . Siano 4. Risolvere con la regola di Cramer il sistema + 5. possiamo risolvere 6. + e vediamo che l’insieme delle soluzioni è una retta nello spazio > rappresentazione parametrica @?  _ > M3 ' < 2=  9 #  9 ' # (+=  '    9 9  ' ' ' 9 6;( Siano XZ ;[ \  %  /5 67 '6/78 Per ogni valore 9 di KZ [ \]  * ^ % 372  Z 3. 3 3 Stavolta non abbiamo una contraddizione, ma un’ultima equazione superflua, quindi siamo rimasti con due equazioni per tre incognite: + Sia funzioni > Usiamo di nuovo il nostro schema di calcolo:   "# "  ('   '"(    10   Calcolare il determinante k l=l k k $ k k $ k k k k k k k Calcolare il determinante k l=$ k k $l k k $ k k k k k k k & con la Risolvere i sistemi con l’algoritmo di Gauß usando lo schema. 7. ' 9  ' 9   ! i%m  &  * = .!n %   i&mD*28 C!< % 7D&: D*  7C!W % i&mD*2;# 9 ?EF? C? & I? 9BAHG 9BAHG 9BABA(JK> che è una Per ogni numero reale 9 si ottiene un punto soluzione del nostro sistema, e viceversa ogni soluzione è di questa forma. 8.  ! i%: &    * =  ! D%: &    *  .!n %   i&m7I*+8 C! %   D&I*+8 L’insieme delle soluzioni di un sistema lineare Negli esempi visti finora abbiamo trovato sistemi che non avevano soluzioni, oppure un’unica soluzione (descriventi cioè un unico punto nello spazio), oppure, nell’ultimo esempio, una retta di soluzioni. Ciò vale per ogni sistema di equazioni lineari: l’insieme delle soluzioni è sempre o vuoto (nessuna soluzione), oppure un solo punto, oppure una retta, oppure un piano, oppure uno spazio affine tridimensionale ecc., e viceversa ogni insieme di questa forma può essere descritto da un sistema di equazioni lineari. La dimostrazione di questo teorema e la definizione precisa del concetto di spazio affine verranno date nel corso di Geometria I. Nonostante l’efficienza dell’algoritmo di eliminazione che permette la risoluzione abbastanza agevole di sistemi lineari non troppo grandi (con un 52%-&(+ A /PO QR@12 ARST 58QR?12 AUST I M N 1 I  e quindi , . Possiamo perciò applicare la regola di Cramer e otteniamo Calcoliamo l’errore V>1W che si commette approssimando la distanza V sulla sfera  1=< ; terrestre tra due punti mediante la lun; ghezza  del segmento di retta che si ottie?/ ;;; %'9&)%-(*&>(+ 52%'&)(+<  ;;; / ne utilizzando la trigonometria piana: / %'&)(*9>%'&)52(+%' &)(+  V=1X 50 km 0.13 m mentre per  possiamo, se calcoliamo pri1m 100 km ma  , usare direttamente la relazione @/ 500 km 128 m +%'&(. . 1000 km 1029 m Trigonometria oggi Un problema di geodesia Grafica al calcolatore e geometria Il triangolo Il triangolo rettangolo Triple pitagoroee Le funzioni trigonometriche La dimostrazione indiana Il triangolo isolatero Angoli sul cerchio Il teorema del coseno Il grafico della funzione seno La periodicità di seno e coseno Altre proprietà di seno e coseno e Distanze in Il prodotto scalare Ortogonalità Esercizi 14-17 YBZ-[]\_^a`cb_YBZ_[][]d\ YBZ-[]e_YB` f=g Grafica al calcolatore e geometria La grafica al calcolatore e le discipline affini come la geometria computazionale e l’elaborazione delle immagini si basano sulla matematica. È importante separare gli algoritmi dalla loro realizzazione mediante un linguaggio di programmazione. È importante separare la rappresentazione matematica delle figure nello spazio dalle immagini che creiamo sullo schermo di un calcolatore. Il matematico è molto avvantaggiato in questo. Già semplici nozioni di trigonometria e di geometria affine e algebra lineare possono rendere facili o immediate costruzioni e formule di trasformazione (e quindi gli algoritmi che da esse derivano) che senza questi strumenti matematici risulterebbero difficoltose o non verrebbero nemmeno scoperte. La geometria proiettiva, apparentemente una vecchia teoria astratta e filosofica, diventa di sorpresa una tecnica molto utile per trasformare compiti di proiezione in semplici calcoli. I concetti dell’analisi e della geometria differenziale portano all’introduzione e allo studio delle curve e superficie di Bézier, largamente utilizzate nei programmi di disegno al calcolatore (CAD, computer aided design). Molte figure possono essere descritte mediante equazioni algebriche; per questa ragione la geometria algebrica assume notevole importanza nella grafica al calcolatore moderna. Curve e superficie possono essere date in forme parametrica oppure mediante un sistema di equazioni; le basi di Gröbner forniscono uno strumento per passare una rappresentazione all’altra. La topologia generale, una disciplina tra la geometria, l’analisi e l’algebra, è la base della morfologia matematica, mentre la topologia algebrica e la geometria algebrica reale possiedono applicazioni naturali in robotica. ion lm hMikj pq i T r H. Pottmann/J. Wallner: Computational line geometry. Springer 1999. W. Böhm/H. Prautzsch: Geometric concepts for geometric design. Peters 1994. iks ALGORITMI E STRUTTURE DI DATI Il triangolo Numero 3 a.a. 2004/05 Il triangolo rettangolo Le funzioni trigonometriche Il triangolo Consideriamo la seguente figura,       /. 0% . sia B 12 rettangolo, ad esempio B B B’ c  A P’ C’ P 1 C  In questa figura i segmenti  e sono paralleli. Nella geometria elementare si dimostra che le proporzioni del triangolo più sono uguali alle proporziopiccolo ni del triangolo grande . Cio significa che, se denota la lunghezza del segmento , allora             c a     Se il valore comune di queste tre frazioni viene denotato con , abbiamo quindi              A b  C  Il lato più lungo è quello opposto all’angolo retto, cioè , e si chiama ipotenusa, i due altri lati sono più brevi e sono detti cateti. La somma dei tre angoli di un triangolo è sempre uguale a : 5" #60% "$#$0% . 7!'78( 23'24( 9;:  = < :   Teorema di Pitagora: Dato un triangolo ret, e tangolo e posto come nella figura, si ha Una relazione analoga vale anche per le altezze:        Dati tre punti    cone     l’angolo  tra i denotiamo segmenti  : B   >)? . Dimostrazione: Pag. 13. Il teorema di Pitagora implica che l’ipotenusa è veramente più lunga di ciascuno dei due cateti (perché ). La relazione può essere anche usata per il calcolo di uno dei lati di un triangolo rettangolo dagli altri due: 9BA<C  > IH 9 JH < IH  A 90?@7;=: >D? 9E?F7G  9&?7J ? 9BA< Una tripla pitagorea è una tripla di nu. La meri naturali positivi tali che tripla pitagorea si chiama primitiva, se e sono relativamente primi tra di loro. Diamo una tavola delle prime triple pitagoree primitive in ordine crescente di . L > > M N N "$OP" L #P" MN "$QN QRO O O$SLUOENR "TO . "5O M ML Q .  " O6# MVNRNUL "TW6N SWEN" L6"6LR WRW WNULN W NL M"5WR # Q  *  +   *  +    Si può dimostrare ed è chiaro intuitivamente che, dati due triangoli con gli stessi angoli, essi possono essere sovrapposti in maniera tale che si ottenga una figura simile alla nostra. Ogni triangolo può essere considerato (talvolta anche in più modi - quando?) come unione di due triangoli rettangoli. XYCGO P 9  A<  < < > > 9, 9 e da ciò anche 9 >  < 9  > < 9 9 > < > < Questi rapporti sono perciò funzioni che vengono dette fundell’angolo zioni trigonometriche e denotate come segue:  9 ^4_ ` Y  : cDdU^ G: e3f ` g: cDd e h: < 9 >ba$a5a seno di  > $a a5a coseno di  > ^3_ `  > Dc d6^  9 ^4_ `  < e Dc f d ` e  9  < cDdU^  e3f ` VM N % cDd e MVN % Esercizio. Calcolare , . ^4_ ` UM N % , cDdU^ VM N % , Esercizio. I valori delle funzioni trigonometriche si trovano in tabelle oppure possono essere calcolati con la calcolatrice tascabile oppure con una semplice istruzione in quasi tutti i linguaggi di programmazione. Ricavare in uno di questi modi i necessari valori per calcolare la distanza e l’altezza nella seguente figura: i 9 d Per non esistono invece soluzioni dell’equazione ,-, C Le formule per i triangoli rettangoli sono particolarmente semplici; conviene quindi studiare separatamente i triangoli e .   > Gli arabi possedevano già nel 972 tavole simili a questa. B A C 9B)<5)> 9 ? 7;< ? > ?K < ? > ?K 9 ? Triple pitagoree b in cui sono come prima i lati del triangolo rettangolo più grande e e sono i lati del triangolo più piccolo, che è ancora rettangolo. Le proporzioni nella figura dipendono solo dall’angolo , si ha cioè C Evidentemente . Con e indichiamo gli altri due angoli come nella figura; spesso serve solo la grandezza assoluta degli angoli, allora si lasciano via le punte di freccia. ] a’ b’ A  Ciò implica che un triangolo può avere al massimo un angolo retto (se ce ne fossero due, il terzo dovrebbe essere zero e non avremmo più un triangolo). c’ a   90Z[7G >)Z a j)k % l 100 m C; interi . La dimostrazione di questo teorema (detto ultimo teorema di Fermat) è stata molto difficile; per circa tre secoli i matematici l’avevano cercata invano e solo intorno al 1995 Andrew Wiles ci è riuscito, utilizzando strumenti molto avanzati della geometria algebrica. Pierre de Fermat (circa 1607-1665) sostenne di conoscere una dimostrazione del teorema che poi portò il suo nome, ma non è mai stata trovata e si dubita molto che sia esistita. ALGORITMI E STRUTTURE DI DATI Numero 3 a.a. 2004/05 La dimostrazione indiana Angoli sul cerchio In una fonte indiana del dodicesimo secolo si trova il seguente disegno, con una sola parola in sanscrito: guarda! Siccome le lunghezze assolute non sono importanti, possiamo assumere che l’ipotenusa del triangolo rettangolo considerato sia di lunghezza 1 e studiare le funzioni trigonometriche sulla circonferenza di raggio 1. Questo ci permette inoltre di estendere la definizione delle funzioni trigonometriche a valori arbitrari di ? , non necessariamente sottoposti, come finora, alla condizione '  ? !@ ') . Definiamo prima 67 8 ? e 9.; 6 ? per ogni ? con 'BA"?A 5 *') come nelle seguenti figure: MONP ? D>E.G C a a 9.; 6 ? 67 8 ? c Da esso si deduce immediatamente il teorema di Pitagora: Il nostro triangolo rettangolo abbia i lati  con     . Allora l’area del quadrato grande è uguale a quella del quadrato piccolo più quattro volte l’area del triangolo, quindi     , J KL H ' $ mUnpo q.r_s ? ?     !  ! . mg‡†&ˆ.‰ s Esercizio: Disegnare la figura nel caso che "# e convincersi che la dimostrazione rimane ancora valida. J KL ? H 9.; 6 ? 67 8 ? $ ' t>u Qvxwy{z|}~l€ D>E.G C ‚ƒ „ ? 9.; 6 ?  ' 6F7 8 ?  ' Š‹.Œ v wpgzŽ ‘l’ ? 9.; 6 ? ' 67 8 ?  $ Il triangolo isolatero ZU[]\ P_^ 9.; 6 ?  $ 67 8 ? ' 9.; 6 ?  ' 67 8 ?Y ' cioè J KL C DFE.G CIH 9.; 6  ? Y!' 67 8 ?! Y ' ` a&bdcegf!h>ijlk DFE.G C 1 QBRSUTV W X b-a 13 ? DFE.G C ‚ƒ „ Consideriamo adesso un triangolo isolatero di lato 1. In esso anche gli angoli devono essere tutti uguali, quindi, dovendo essere la somma degli angoli $&%(') , ogni angolo è uguale a *(') . 9.; 6 “ ? Y!' 6F7 8 ?  ' Definiamo poi ogni volta /.- ) = 8 *' ) 3 5 $ <>= 8 ') 43 5  0 5 5 6F7 8 ? 9.; 6 ? quando 9.; 6 ?‡• ' risp. 67 data a pag. 12, quando ' 9.; < ?“” 9.; 6 ? 67 8 ? 8 ‡ ? • ' . Si vede subito che questa definizione coincide con quella  ? ]@ ') . $ 9.; < ? quando entrambi i valori sono definiti. Se ? è infine un numero reale qualsiasi (non necessariamente compreso tra ' e 5 *') ), –˜— <>5 = *(')  ?š™ < con '›A]@ =: n v t !  2&465w o $ o , quindi per  reat  tenle e tendente ad infinito (in questo caso  o v de a 0 ) 2&465I si comporta come o $ e tende quindi valide per ogni numero complesso , vediamo che ad esempio : : = fortemente ad infinito. B= C&= D&= E= F&= ; 9  9 G # <  < IH J KL5/M N  G # <  < H #PO G #Q  Q H analogo si definiscono l’inversa RTSU2&2&4T5 della zione viene denotata con R6S/2&5/M N . In #PO modo funzione biiettiva J K 2&4T5  G 0PV H G #Q  Q H e l’inversa RTS/2WRTN della funzione biiettiva J K WUR6N  */# <  < , #POX*U#ZY  Y , . Come si vede dalla figura e come sarà dimostrato rigorosamente nel corso di Analisi, la funzione seno è iniettiva sull’intervallo chiuso e assume su questo intervallo tutti i valori possibili per il seno, cioè tutti i valori tra -1 e 1. Possiamo quindi definire una funzione biiettiva . L’inversa di questa fun- arcsin, arccos e arctan Queste funzioni, definite a sinistra, sono determinate dalle seguenti relazioni: RTSU2&5/M Nxy {z}| 5/M N  Xx #'Q m+xim Q # < m  m < per e RTSU2&2&4T5axj 1z}| 2&4T5  ~x #'Q m+xim Q 0ym  m+V per e 1  RTSU2WURTN"xy z}| WUR6N  ~x #Y€ x Y # < m  m < per e ALGORITMI E STRUTTURE DI DATI Numero 3 a.a. 2004/05 Distanze in  La distanza tra due punti   e  del piano reale   si calcola secondo il teorema di Pitagora come       "! #$%   .       !   e viceversa la La distanza del punto  dall’origine è quindi   distanza di  e  è proprio la lunghezza del vettore & . 9 :<; = ' (*),+-(. / ' 0),+10.,/ 9 0? 86 567 0)324(*) 0) > Ortogonalità La formula fondamentale c 3  c    i   -j kl g    nmo mWp qm [e    e   e j kl j kl ghsT m%tre Tuedv g%T mxwpe c L] c  c 3omo c m c 3] c m       i      i mo    m i  i     m i    rimane valida anche se e sono uno un multiplo per , però entrambi dell’altro, ad esempio (ciò implica ). In questo caso infatti il triangolo determinato da , e è degenerato, ma è naturale assegnare all’angolo tra e il valore (per cui ) se e invece il valore (cosicché ) se . e Inoltre . Dimostrare queste relazioni e concludere da soli, stando attenti ai segni. Quindi se i due vettori sono diversi da zero (ciò implica che anche e ), allora essi sono ortogonali (cioè oppure ) se e solo se , . cioè se e solo se Siccome infine per ogni , è naturale includere anche il vettore tra i vettori ortogonali ad . Raccogliendo tutto possiamo perciò dire: q e r    M q e     q e gSzyev c c gb a{ ev 3c  c[e 3]e |e e @A@ B C,D EGF C D D 0. IH JK#L G  H      M    !     !   N  !  !   H     H, per cui       !   !   .  H Se adesso &#    H  è un altro punto, la distanza tra  e  sarà uguale alla lunghezza di OP , quindi        "! #     "!  P   . H H Per ogni QSRT possiamo definire lunghezze e distanze in IU nello stesso modo. Per  *V*VV*  "WXU poniamo    Y     ![Z*Z*UZ!   , U e se P\ *V*V*V*  è un altro punto, la distanza tra  e  è la lunghezza di U OP , cioè         ![ZZ*Z!     . U U   Formule del tutto analoghe si hanno nello spazio tridimensionale . Calcoliamo di un vettore utilizzando la figura a prima la lunghezza destra, dalla quale si vede che vettori  c LDue ] c [e . ed  di Il prodotto scalare XU Siano come sopra e due punti di . Calcoliamo la lunghezza della somma dei due vettori; questo è anche in statistica il punto di partenza per la definizione del coefficiente di correlazione che, nonostante il nome prometta molto di più, non è altro che un mezzo per confrontare e ! L]  !    !     ^ U  _`    ! ^U L’espressione _`  _ _ !  _    _^ `U  _ ! _^ U`  _ !ba _^ U`  _  _     !ba ^ U  _  _ _`  _ si chiama il prodotto scalare dei vettori   sono ortogonali se e solo se } a€ lo ‚ g a ~  mentre la distanza (cioè l’arco) ƒ sul cerchio tra ~ e  (nell’ipotesi e„rgPwS ) è uguale ad € g . 14. Dalla figura si vede che la lunghezza della corda , (cioè del segmento di retta) tra e è uguale a  g r ~ † ‡ a ol  ‚ a è probabilmente la più antica funzione trigonometrica e venne tabulata già da Ipparco da Nikaia (Nicea) nel secondo secolo prima di Cristo (tavola delle corde). Già i babilonesi possedevano però una rudimentale trigonometria, di cui erano molto orgogliosi. ƒˆO} Calcolare la differenza , che corrisponde all’errore che si commette usando al posto di per misurare la distanza tra i punti e sulla sfera terrestre, che possiede un raggio medio di 6371 km, per 1 km, 10 km, 50 km, 100 km, 500 km, 1000 km. ~ €  }"  ed . Esso è di c L c Y M  3  Y N  ![ZZ*Z*!  U  U La seconda è più diffusa della prima, comporta però il pericolo di confusione con la coppia #L d che proprio nella statistica multidimensionale appare spesso contemporaneamente. Sostituendo  con  otteniamo          !      a c L c . I due punti  ed  formano insieme all’origine    e  un triangolo  (eventualmente degenerato) i cui lati hanno le lunghezze  ,  e f[ . Assumiamo che il triangolo non sia degenerato e sia g l’angolo opposto al lato di lunghezza 4h . Per il teorema del coseno abbiamo  &P        !      a   i  -j kl g , da cui c 3  c    i  -j kl g . –  } ƒ lo ‚Š‰ N  ‹ , come si calcola ‰ ? ‚ Œ] ‚  ‚ ! Œ] ‚ ‚  . 15. Œ]  ! Ž TXŒ] "Œ]  j  k  l  j  k ] l 16. sT*‘ ’ O a e j kl H“ ! 8==! ! Leggendo più attentamente il testo della $#% & ==!! guida si osserva che le funzioni di R hanno spesso argomenti opzionali determina &&0? @BA=0! ti dal loro nome; ciò è tipico dei linguaggi in qualche modo derivati dal Lisp e verrà ancora trattato con più dettaglio. Per uscire da un file informativo chiamato con basta premere il tasto . Da 1 5 con l’indicazione degli argomenti, seguito da un’esposizione sull’uso. 16 17 18 R Le funzioni d’aiuto Installazione di R Il libro di Crawley Programmare in R Programmi autonomi Nomi in R Assegnamento Successioni Angoli espressi in gradi Figure di Lissajous I commenti La matematica del futuro Esercizi 18-22 Installazione di R Per l’uso e l’installazione di R sotto Windows possiamo dare solo informazioni molto vaghe. Il sito a cui rivolgersi è, per ogni sistema operativo, www.r-project.org/ dove, per copiare il programma, si sceglie CRAN e poi uno dei siti depositori; quello che funziona meglio è forse cran.r-mirror.de. Nella voce FAQ esiste invece una guida per Windows. L’installazione sotto Linux è molto semplice. Si ritira il file .rpm adatto per la propria versione di Linux e poi lo si installa, diventando , con  ##  $)DCE$F &# ) $CG$C 4 % () A questo punto, tornati utenti normali, basta battere H dalla tastiera e il programma parte. viene consigliato di lanciare I0% &Sotto ; 6 %BWindows =$ oppure  J H di creare un shortcut a questo file. Il libro di Crawley One of the objectives of statistical analysis is to distil a long and complicated set of data into a small number of meaningful descriptive statistics. Many of the modern computer statistics packages, however, do exactly the opposite of this. They generate literally pages of output from the most meagre sets of data. This copious output has several major shortcomings: it is open to uncritical acceptance; it can lead to over interpretation of data; and it encourages the bad habit of data trawling (dredging through the output looking for significant results without any prior notion of a testable hypothesis). S-Plus, on the other hand, tells you nothing unless you explicitly ask for it ... The computing is presented in S-Plus, but all the examples will also work in the freeware program R, which can be downloaded from the web, free of charge, anywhere in the world ... S-Plus encourages good habits of data exploration by providing a superb range of graphical facilities. La statistica, in fondo, si sviluppa attorno a questa domanda: What do we mean when we say that a result is significant? M. Crawley: Statistical computing. Wiley 2004. & www.bio.ic.ac.uk/research/mjcraw/crawley.htm ALGORITMI E STRUTTURE DI DATI Programmare in R Benché si tratti di un linguaggio ad alto livello, gli ideatori di R preferiscono presentare R come linguaggio con cui lavorare in linea e non mediante l’esecuzione di programmi scritti su files. Oggigiorno ciò non è perfettamente comprensibile ed è comunque possibile scrivere programmi e farli eseguire nel modo familiare ai programmatori con la tecnica che adesso descriviamo. Prima creiamo una nuova cartella (directory) in cui vogliamo svolgere un determinato lavoro. Poi in questa cartella creiamo il file .Rprofile che contiene solo queste righe:     !!" Le istruzioni contenute in .Rprofile vengono, come vedremo nel prossimo numero, eseguite alla partenza di R. Adesso creiamo un file prove in cui scriviamo (per il momento) tutto il resto del programma, ad esempio ## !%$  $!&%'$(!$!" )*)%+-,.%/0. La funzione  cosı̀ definita corrisponde alla 25 funzione matematica 1 23 4 , mentre ! è la funzione elementare di visualizzazione (un po’ complicata anch’essa come tutte le funzioni di input/output di R) che qui visualizza 687*9: per 9<;= . .%/0. è il carattere di invio che, nell’output, fa in modo che dopo la visualizzazione il programma torni su una nuova riga. Per eseguire il programma battiamo R dalla tastiera e poi, una volta in R, diamo il comando Vediamo cosı̀ che 3K;=ML N OP=P= , se calcolato sulle prime 6 cifre dopo il punto decimale, perché in verità 3 è un numero trascendente, cioè non è radice di un polinomio a coefficienti interi, e quindi sicuramente non è razionale. Per scrivere il programma dobbiamo usare un editor che crea soltanto files in formato testo puro o impostare questa modalità nell’editor che vogliamo usare. Programmi più grandi verranno scritti su più files, ad esempio prove, funzioni, grafica. In tal caso possiamo o modificare la funzione principale nel file .Rprofile, !#    >! !  Q  !  SR !" Bisogna stare un po’ attenti all’ordine in cui le inclusioni vengono effettuate; infatti un altro punto debole di R, che deriva dalla filosofia di voler costringere l’utente a programmare sul terminale, è che le funzioni possono essere ridefinite, possibilità che compromette notevolmente la trasparenza dei programmi se il programmatore non è abituato ad organizzare bene il proprio lavoro. Esempio: Cancelliamo tutto il contenuto del file prove, scrivendo poi TUVW$  '$" !)*) D -,.%/!&. Se eseguiamo il programma con > vieD ne visualizzato ' . Ciò è comodo nel lavoro sul terminale, ma piuttosto problematico quando si vogliono creare programmi più consistenti o librerie di funzioni. cioè 3 40H , come possiamo verificare aggiungendo la riga !&%$!&' G -,./&. a prove. Cosı̀ possiamo continuare a lavorare, rimanendo in R, ma scrivendo il programma e le sue modifiche in prove, usando il terminale solo per ripetere il comando ! (a questo scopo in ambiente Linux è sufficiente premere il tasto I che utilizza la storia dei comandi dati in precedenza che si trova nel file nascosto .Rhistory nella nostra stessa cartella). Forse non tutti conoscono il valore del numero 3 ; esso è uguale ad 3J , quindi lo possiamo visualizzare aggiungendo !&%$!& B -,.%/!&. al nostro programma, cioè al file prove. Programmi autonomi Dal punto di vista della filosofia Unix, la tecnica di programmazione che abbiamo usato nell’articolo precedente, ha un neo importante. Infatti il programmatore Unix è abituato che tutti i programmi possono essere combinati tra di loro, cioè che possono essere eseguiti da un altro programma e che si possono scambiare dati. La nostra tecnica non crea però files eseguibili autonomamente perché richiede l’esecuzione dal terminale di R. Praticamente tutti gli altri linguaggi interpretati permettono, sotto Unix, la creazione di programmi eseguibili semplicemente mettendo nella prima riga del file il comando X8Y ! che fa in modo che il resto del file venga eseguito dall’interprete indicato. Per un programma in R dovremmo quindi scrivere X8Y[Z   Z\  Z]Z 17 Per ragioni misteriose questa possibilità per R non è mai stata realizzata. Si può ovviare a questo problema scrivendo nella prima riga Z   Z!\  Z!] ''  ^^_ Benché funzioni (almeno in ambiente Unix o Linux), non è molto soddisfacente, anche perché in ogni esecuzione R viene caricato con molte delle sue librerie e quindi l’avvio è lento; i tipici programmi Unix si caricano in genere solo con quanto è necessario per poter partire. Nomi in R Nomi (detti anche identificatori) in R consistono in una lettera (` 'a'Q ) seguita da una o più caratteri che possono essere lettere, cifre o punti. Quindi ! DE $ @*ECC  sono nomi ammissibili, mentre non lo sono DE @*C F E D , , _ . In R (come in C o in Perl) bisogna distinguere tra minuscole e maiuscole. Bisogna anche evitare i nomi riservati di R. Purtroppo in R anche alcuni caratteri singoli sono riservati: TUVW$  $(!$" !> che, in accordo con la sua definizione, carica il file prove ed esegue le istruzioni in esso contenute. Viene visualizzato il risultato: ?&@A? B!CDB!EFG Numero 4 a.a. 2004/05 b c de g f inoltre ci sono parecchi nomi che consistono di due lettere, ad esempio h  e  . Questa scelta sicuramente non è ottimale. Ad eseme possiamo usare per il tempo e nempio non meno per le funzioni. Assegnamento L’assegnamento di un valore (spesso rappresentato da un’espressione) a una variabile $ avviene mediante l’istruzione $#! Esiste anche la forma tradizionale (leggermente più generale) $i^'j! sicuramente meno leggibile. Per saperne di più usare k ^'U . Più istruzioni sulla stessa riga devono essere separate da un punto e virgola, mentre il punto e virgola alla fine di una riga è (a differenza dal C) facoltativo: $ B?lnm  $($_+ l ) m ,./&. l !)%$_ m  Z +>,.%/0. l con output B? + EF ALGORITMI E STRUTTURE DI DATI Successioni  mediatamente applicare a una successioper ottenere la successione ne . In C allo stesso scopo bisogna lavorare con un ciclo, ad esempio un ,e riflettere sulla struttura di dati che si vogliono utilizzare; in Lisp e Perl si può usare la funzione che, data una funzione , trasforma la successione nella successione . In R è tutto molto più semplice e automatico:                    ! #"%$% !&(') *  &,+- ./#-0- 1 ! $ '2+35476478494;:. <' $ )>! + #" 4+?;!=@& . ?.  < KX3A6M8M9D: KDK S8KLSE%K SBD3S6N3S:D3SY 8 SV9 SVD:>SV%E SVMV>SV%Y>SV 8 SV%8>SBM9 S73Z9LS8%9 S:9 SVM9 SB con output 3A9CBD3ED6: ' ! F' Anche le operazioni algebriche vengono eseguite su tutti gli elementi di una successione; possiamo ad esempio moltiplicare una successione con un numero oppure anche due successioni tra di loro. Esempi: ! $ '2+35476478494;:.5G < $ '+764354;847:47E .5G '  )>+H!I < 4?7@& ?J.5G '  )>+H!(0 < 4?7@& ?J.5G '  )>+H!I 3K4?7@&L?.5G '  )>+3K0! 4?7@&L?.5G con output 8%8DEMBN33 6%6DBM6#KD8#K 33M36C38C39N3: 3KD6#KD8#KM9KD:#K nn \ \^] T_ \^] `_  a T R #O P b '  come visto a pagina 13. Si osservi qui che la successione è stata creata utilizzando l’operatore , il cui nome viene da concatenate e che unisce una sequenza di valori in un unico oggetto. per dettagli. m Successioni possono essere valori di una funzioni. Creiamo ad esempio una funzione per la risoluzione del problema geodetico visto in precedenza. Questa funzione restituisce una successione i cui compoe sono e come a pagina nenti 11. A differenza dal C l’indice delle successioni parte da . Per il di pagina 11 usia, perché è una parola mo la variabile riservata. Siccome vogliamo poter indicare gli angoli in gradi, definiamo prima tre funzioni che corrispondono alle funzioni trigonometriche e per angoli espressi in gradi. L’argomento va quindi moltiplicato con c#d e ef g hJi g T jkl m  #* n3#Y#K '  & O )  * " 3Y#K $ K SHK 3#V#9 :86 B6:3B B#9 8G mMo !&p *  &(*Z)  *q  &  P )  *'r P  P  m  &q  s *%*& " *'  ) *M*&Dq " *S t  O $% !&(') *  &,+- .%/ '  O +-0'  & O )  * " 3Y#K .#1 u*&  !&(') *  &,+- .%/ O *&L+-0'  & O )  * " 3Y#K .#1 v  & $% $% !&(') *  &,+- .%/)  &L+-0'  & O )  * " 3Y#K .#1 mMw  R s P  " *Aq P #" P O * %  q*&  33S m [ s *  &q s * <P &q  &  *& " *'  ) *M*&Cq  #" *S [ P #" P $M !&(') *  &,+R  O#P 4 s 4R P )  . /#) & v & + .5Gx) &R ) v & +HR ) .5G - $ R  O#s#P 0)#$ &R P )  sn +)  & s# I#P)  #&$R P )  .5G P  y $ -0)  & s GU'2+-4 y .1 ! $ [ P #" P +78Y4;E649 V .5Gz- $ !{;3|G y $ !{6#|G '  )>+-4 y 4?7@&L?.5G La base del triangolo era di } k mm, gli angoli di approssimativamente ~ ` e (€ gradi. L’output è 3#8>SVBBK Y6:>SB :68#K e corrisponde abbastanza bene alle misure reali. Un operatore molto utile per generare successioni di valori equidistanti è la funzione . Il risultato di O#P#Q +  4HR=. Useremo da ora in avanti per le funzioni sempre nomi che iniziano con una maiuscola, ricordandoci che sono riservati i nomi . t4W 4 o 4ƒ‚54 v è la successione  4  I 354  I64SSS che è continuata fino a quando non si supeR ra . Il passo di progressione è quindi T se non viene impostato come terzo argomento: O#P#Q +  H4 R 4  . restituisce la successione  4  I  4  I6  4SS S R +K>47:.5GU'  >) +H! 4?;@& ?.5G +K>4764K S8.5GU'  ) +H! 4?7@& ?.5G +78 SV47B.2GU'  )>+H!L4?7@& ?J.5G +78 SV47:47K S6.5GW'  )>+H! 4?;@& ?.5G anch’essa continuata fino a quando l’ultimo valore non supera . Esempi: ! $ O#P#Q ! $ O#P#Q ! $ O#P#Q ! $ O#P#Q Corso di laurea in matematica ° m Se una riga contiene, al di fuori di una stringa, il carattere , tutto il resto della riga è considerato un commento, compreso il carattere stesso. Molti altri linguaggi interpretati (Perl, Python, la shell di Unix) usano questo simbolo per i commenti. In C una funzione analoga è svolta dalla sequenza . Angoli espressi in gradi [ P " P 18 I commenti Otteniamo Uno dei punti forti di R è che molte funzioni sono definite direttamente per successioni finite di valori. Ciò significa che se definiamo una funzione in R per la fun, la possiamo imzione matematica O#P#Q Numero 4 a.a. 2004/05 Figure di Lissajous Illustreremo nel prossimo numero le capacità grafiche di R. Provare intanto questo esempio che dovrebbe far apparire una figura di Lissajous, cioè una curva con una rappresentazione parametrica tipicamente della forma per . H„  c#d e†Z‡ ef g‰ˆ ‡  † ˆCŠZ‹ - $ O#P#Q +7K476 0  *24 s P & q#)#r $ 3KKK . ) '+7Œ3543 . ms   #s$ )N*   O ) %s q  * '  S (s )>) + ys  )P  4 &s  ) 4- 4 R 4 y R .  $=  s $= s $=  s *&' P )O + O *+H&& +76Y04)- y.54 PO *& +7V 0#. - .. ms  t s *#' '  $P 6 < s )$=P ;2S  " P< S   +. mAŽ O '*  P " ss  q  *'  S Corso di Algoritmi e strutture di dati La matematica del futuro The main scientific challenges of the twentyfirst century may no longer be divided into the classical disciplines of mathematics, informatics, physics, chemistry, biology, etc. For example, theoretical biology is currently in the phase of formulating laws of nature in terms of mathematical statements; quantum chemistry has already become an important research field in applied mathematics; physics needs more and more input from computer science and mathematics, including logic and informatics; and, outside of the natural sciences, financial mathematics has developed highly reliable tools for economic market and stock analysis. But how will researchers be motivated to do interdisciplinary research in a university environment, given the current system in which academic careers (typically) advance based upon a record of publication in a single field? www.wpi.ac.at/ And the missing ingredient in facing those problems ... is mathematics. D. Donoho: High-dimensional data analysis - the curses and blessings of dimensionality. Internet 2000, 32p. Esercizi per gli scritti 18. 19. ;`T ‘“’ ~` ”–• #T  ’ `T ”  ~—` ‘ • ’ T ~ `˜` ” Qual’è la ragione per cui nella seconda riga del prodotto riappare il secondo fattore? T ` ’š ~ € ™ ’ }˜  ” k—›œT#l ” `(T˜` ` € =’  € š ~=T ” l T™` ¡¢ ` š ¡¢ T~ š ¡¢ 21. žŸ T žŸ œT = žŸ ` `› šk` ~—} ~—` šk š` 22. La traccia hJ£¤ di una matrice ¤ è la somma degli elementi nella sua diagonale principale. Una matrice `¦¥§` ’L¨ª b˜«© ”§• ¤ può (in parte) essere con‹­¬ siderata come elemento  ¨ © b«( di . Possiamo quindi formare il prodotto sca„ ‹­¬ . lare ®¤W¯Z® di due matrici `U¥%` in „ J h  £ ­ ¤ ¯ Dimostrare che ®¤W¯ƒ® • di ¯ , ,dove cioè ¯ denota la matrice trasposta la matrice che si ottiene da ¯ scambian- 20. do righe e colonne. ±³²µ´ Docente: Josef Eschgfäller          Corso di laurea in matematica   3   Numero 5 In questo numero R possiede ricche capacità grafiche, però anche molti comandi per la grafica che è difficile imparare con tutte le loro opzioni. Da un lato si può usare l’aiuto in linea (provare 8 9 10 13 11 12 14 , , , , , ), dall’altro lato però è utile una certa disciplina 15 16 18 17 nell’impiegare una serie scelta e ben composta di comandi che si padroneggia. Cercheremo anche noi 19 20 23 25 21 22 24 di fare cosı̀, ad esempio utilizzando in genere solo per il comando predisporre la finestra grafica su cui successivamente le immagini verranno create con comandi separati, anche se molte figure potrebbero essere ottenute con un unico comando complicato. separati dalle In particolare useremo sistematicamente comandi istruzioni di disegno. Infatti il comando permette una perfetta impostazione dei parametri grafici (colore, spessore delle linee, disposizione degli assi, caratteristiche dei testi che appaiono nelle figure, dimensioni varie, possibilità di linee tratteggiate in vari modi), quindi nonostante la molteplicità delle opzioni andrebbe studiato bene, ma il suo utilizzo risulta più trasparente se viene usato in modo esplicito al di fuori degli altri comandi. La figura nell’inserto è spiegata a pagina 22. 2  Anno accademico 2004/05 La grafica di R 1  4 5 6  "! # $"!#% $&!# '"&(   # # plot e lines )+*-,/. Diamo solo le varianti essenziali di questi comandi. In particolare useremo solo per predisporre la finestra grafica, non per il disegno stesso. Per far apparire la figura in una finestra sotto Linux in alcune versioni di R bisogna prima chiamare il dis, ma non sembra positivo grafico con più necessario nelle versioni più recenti. Per terminare il lavoro del dispositivo grafico si usa . richiede (nell’uso che ne facciamo) come primi argomenti l’indicazione dei limiti per le coordinate ed , entrambi . Se vogliamo disegnare nella forma il coseno, possiamo ad esempio impostare l’intervallo per con e l’intervallo per con . I comandi di base per impostare la finestra grafica sono allora i seguenti: 0+1-1"243 19 7 > 7A V? )HJHM ? > IH*-ATD P7*7ATD .7P9)+69JESLGS )+*-,/. spesso utile per imporre che le coordinate ed vengano utilizzate nella stessa farebbe in modo che le coorscala ( dinate appaiono in scala doppia rispetto e riguardano alle coordinate ); le scritte che appaiono ai lati del diagramma; infine indica che viene usato solo per l’impostazione e non per disegnare una figura. A questo punto, far apparire nella finestra il grafico del coseno. è sufficiente inserire la riga )+*-,9. 57698:;,/<-<2=3 *7FG+67V2UICL@9,HV2UI+3-3 @2BAC;DE3 > ? l’operazione a cui corresponde > ? FFGHGH7. 7. I-P-JHJH@@2L2LK-KHM71"NC=)O1-F3 CBM7N)OFH3 Infatti, Hscritta * FG+67V matematicamente può essere dein questo modo: Se sono dad;>eOf-g-g-g7f>hji e ti due vettori >cb e h , allora *7FG+67V2UICUP+3 k ? b ; d ? f g g g T f ? i unisce il punto d;>eOf?"e9i con dU>l"f?Ol7i , )+FGH*7IH.7,/.I-*-JHAT2LDH@FGHJE2L.7K-S7IM7SONCUCL)OP7FGH*-F.7A/CBDHPM7JENC;)O.7S-P9FHSO)+3"C 69QRJEFSLG7G.7SOP-C J+@2BKH1"C41-3 il punto d;> l f? l i con dU>m"f?Om7i , ..., e honpeOffunzione, ?Ohonpe9i concond;>hq*7FTfG+?O67hjV2Ui I. C;Quindi se r AHV)HJ+1"CLA9I767V/J-W7X-Y7Z/[C;<-\HAT]O6:^)+*-,9.7J9_-`9aH[O3 èdU>una otte < U 2 + I 7 3 3 niamo un’approssimazione poligonale del57698:;,/<-<2=3 la funzione r che, in una figura normale, per s sufficientemente grande (ad esemSe eseguiamo il programma, vedremo per pio maggiore di t-uHu+u ) sembrerà una rapun istante lampeggiare la finestra grafica presentazione perfetta della funzione. che però si chiude subito. Per poterla guarutilizzare la stessa funzione dare, inseriamo *-,7@-A/.H,/\241-3 nella penulti*diamo HFPossiamo G+67V per aggiungere alla figura (che vema riga; il parametro 1 indica che il pronell’inserto a destra) le rette ?vbwt gramma aspetta che clicchiamo una volta e ?jbyxt . Per fare ciò uniamo con una retsull’immagine, prima di chiuderla. Vediata i punti d=x{z+|}f/t7i e dUzH|}f9t e con una semo allora un quadrato nella finestra che conda retta i punti d=x{z+|}f-x~t-i e d;zH|f-xt7i : è stato disegnato a causa dell’indicazione <-\HA9AT]OI76H6V/:^)+J9W7*-X-,9YH.7J9Z/[_-`9aHsignifica [ nel comando + ) * / , . . che gli assi delle *7*7FFG+G+6H6HVV2L2L@@2B2BK7K7M7M7NN)O)OFFCLCLM7M7NN)O)OF7F733CLCL@@2=2BKH1"1C41-CBKH3-1-3 3-3 coordinate non vengono mostrati; A7VT)HJ+1 è 20 21 22 La grafica di R plot e lines Il comando postscript I numeri binomiali La formula di Stirling Coordinate polari nel piano Coordinate cilindriche nello spazio Coordinate polari nello spazio Rotazioni nel piano Numeri complessi in R Funzioni in R points symbols e rect Esercizi 23-27 Il comando postscript Per far apparire questa figura sullo schermo usiamo quindi +))+FGHA9A9.7\\I-2€2B]+JH*/‚7A7@57F92LJ-JHK-M7@N2U:;)OƒFC„CBCBDHM7CU-JN)OECUOFHS4PH3"3-6-3 Qo*-*-FG7,/.7‚P7S/JH3 @2BKH1C=1-3 )+*7A7,/.V)H2LJ+FGH1.7CBIA9I7CL67FGHV9.7J9W7PX-C;.7Y7P9Z9)+[69C;<-JE\HSLGA/]+SO6CUI7:^)+*-*7A/DH,/.7JEJ9S-_-SO`-CBa7P7[O*-AT3 DHJ"S-SOC I-*7J+FTG+V96769†V2U2BIK7M7CL@9N)O,7VF2BCLI+M7N3-)O3 FCL*-6TGH9.-‡HJ+1T-7+3 *7*7FTFTG+G+6767VV2L2L@@2B2BK-K-M7M7NN)E)EFFCBCBM7M7NN)E)EF7F73"3"CLCL@@242LKH1"1"C=1-CBKH3-173 3-3 57*-,H698@9A/:;.H,/<-,/\<2=2=1-3 3 Se vogliamo invece conservare l’immagine in un file in formato PostScript, possiamo usare il comando come nella seguente sequenza di istruzioni, dove abbiamo anche tolto l’istruzione interattiva : )+,7V/.+V-@T\+FT)7. -* ,H@9A/.H,/\2=1-3 )+,H‚+VT.+F/59V-.9@T‡+\OJ7F)7M.:€2SC;‡+:-67:;ˆTF/)O/‡HV-.7ˆHJ-1/‰-K7:;Š@-,7C V96TG+,:^)OV+SOC ‡+)+,/AT)+\+6/F/\H‹HJE,TG7ST.HV)+A-*-6HJ9@-W7F9X-A-Y7*OZ9S9[3"CBQ ,TG+69<+F9*-69J-W7X-Y7Z/[C )+)+FGHA9A9.7\\I-2€2B]+JH*/‚7A7@57F92LJ-JHK-M7@N2U:;)OƒFC„CBCBDHM7CU-JN)OECUOFHS4PH3"3-6-3 Qo*-*-FG7,/.7‚P7S/JH3 @2BKH1C=1-3 )+*7,/A7.V)H2LJ+FGH1.7CBIA9I7CL67FGHV9.7J9W7PX-C;.7Y7P9Z9)+[69C;<-JE\HSLGA/]+SO6CUI7:^)+*-*7A/DH,/.7JEJ9S-_-SO`-CBa7P7[O*-AT3 DHJ"S-SOC I-*7J+FTG+V96967†V2U2BIK7M7CL@9N)O,7VF2BCLI+M7N3-)O3 FCL*-6TGH9.-‡HJ+1T-7+3 *7*7FTFTG+G+6767VV2L2L@@2B2BK-K-M7M7NN)E)EFFCBCBM7M7NN)E)EF7F73"3"CLCL@@242LKH1"1"C=1-CBKH3-173 3-3 57698:;,/<-<2=3 Abbiamo aggiunto, nei due comandi )+A/\ , le specifiche di alcuni parametri grafici: ]+A7F/J+@2UCUCUCU+3 per azzerare i margini della figura (la F viene da inches, pollici, l’unità di misura utilizzata da R), DH7JES4P76-*7*-,/‚"S per usare uno sfondo (background) giallo, e */‚H5-J-:;ƒ per dimezzare lo spessore delle linee (linewidth). questo caso non bisogna dimenticare fine. 576/Anche 8:U,/<-<2=in3 alla ALGORITMI E STRUTTURE DI DATI I numeri binomiali Situazione 20.1. to con elementi.  ,  un insieme fini-   il nu-              . Definizione 20.4. Per !"" denotiamo con #%$ "&'!)( l’insieme di quei sottoinsiemi di  che possiedono esattamente ! elementi: #%$ "&*!)(+,.-/01  2!43 Esempio 20.5. Sia 56,878&:94&*;4&=<>&:?)3 . Quindi  @A? . Quanti sottoinsiemi con esattamente 9 elementi possiede  ? Questi sottoinsiemi sono ,87)&:9)3 , ,878&*;83 , ,878&=F si chiamano coe Nota 20.3. Se tali che ), allora sono sottoinsiemi di (cioè e efficienti binomiali o numeri binomiali. La definizione naturalmente non dipende da , ma solo da .  E Osservazione 20.7. F 7 perché  è l’unico sottoinsieme di E  con elementi. F 7 perché  è l’unico sottoinsieme E con 7)F G E % 7 E E  ! F ! F !MH7 F per 7OIZ!IZ . Questa formula vale però anche per !PJ : !V"G7 abbiamo []\>\>Infatti ^`^`__ba .7pere anche [\ a sinistra []\\Ba a destra \ ^Y_ba  S27L7 ; per !/cUG9 abbiamo sia a Proposizione 20.8. %IJ!IJ . E H! F E !F -J Dimostrazione. Ogni sottoinsieme determina univocamente il suo complemene viceversa. Se ha elementi, to ne ha . Abbiamo quindi una bie . iezione tra LKM  ! KN %# H$ " &*!B! ( %# $ " &:H!B( E Corollario 20.9. HO7 F G . E Osservazione 20.10. !>F per ! PJ . Dimostrazione.  non può possedere sottoinsiemi con più di elementi, perché si ha sempre  4I.  per -J . Nota 20.11. Q sia un elemento esterno che non appartiene ad  . Allora R, QC3 possiede S7 elementi. Sia !" con 7@I! IJ . Siccome ogni sottoinsieme di  è anche un sottoinsieme di T, QC3 , i sottoinsiemi di UV, QC3 con ! elementi sono o sottoinsiemi con ! elementi di  , oppure consistono di Q e di altri !THV7 elementi appartenenti ad  . E D7 9 E 9C; F E 9?F < F Dimostrazione. Nota 20.11. e Il teorema 20.12 è equivalente al triangolo di Pascal: f e e g g e e h i h e ekj 'e l 'e l j e emi e'j fl e'j i e e e e $on /p*( \ q \ E n \wv r p r rCsut ! F n per ogni &*pVx . Questa formula è più in Teorema 20.13. Teorema binomiale: generale valida in ogni anello commutativo con unità. Dimostrazione. Non richiesta, ma facile. Corsi di Geometria o Analisi. Definizione 20.14. Poniamo uy z 7|{C9N{D{C{ $ WH7D(= per c 7 )y z 7 uy si pronuncia n fattoriali; si parla anche del fattoriale di . Dalla definizione segue direttamente l’equazione funzionale $ %J7C(:yB uy $ XJ7D( E uy Teorema 20.15. ! F !4y $ VH!)(:y per XI! IJ . ! Dimostrazione. Facile per induzione su , fissato . Non richiesta. Nota 20.16. La formula del teorema 20.15 è molto importante nella teoria, ma, un po’ simile a come accade per il determinante, può essere utilizzata solo per numeri molto piccoli. Infatti per calcolare E 9 < F con il teore- 9 )y e9 C7 )y} ~8y , due numeri giganteschi, e formare F !MH7DF per ogni c ed ogni !"c 7 . 20 Non è difficile giustificare questa regola (esercizio 23). destra che a sinistra. perché i sottoinsiemi con un ele-  Ad esempio per cui elementi. mento corrispondono univocamente agli elementi di , e di questi ce ne sono proprio . per %# $ W, QC3B&'!)( è uguale a #X$ "&*!)(YW,CJ, QC3  . #X$ "&*!HO7C(:3 Vediamo cosı̀ che Definizione 20.2. Denotiamo con mero degli elementi di . In particolare .   Numero 5 a.a. 2004/05 ! E %J!@HO7 ! F si chiamano binomiali superiori. Anche qui sia sopra che sotto stanno numeri. Infatti E ^ !F Basta leggere il numeratore all’indietro nella definizione. Nonostante ciò, i binomiali superiori hanno interessanti interpretazioni combinatoriche. Nota 20.18. Per calcolare fattoriali e binomiali molto grandi al calcolatore conviene utilizzare il logaritmo. Siccome )y47 e Yy) $ H7D(*y per c 7 „ † abbiamo „ † ByB „ †e „ † $ uy4 H7D(*yC per cG7 da cui si deduce facilmente un algoritmo. Quando si usa il logaritmo, si può anche usare il teorema 20.15 per calcolare i numeri binomiali: „ † E !F „ † uyBH „ † !4y4H „ † ‡IAˆI‰7D $ HO!)(:y uy Quando questi numeri, ad esempio per , servono spesso, conviene creare una tabella. Š‹CŒ*Ž ‹D‘>’”“)• ‘'Š‹CŒ* Ž' ‹D‘ ’–“)• Œ:— ŽDŽC˜D™>’–“‚š”›)• ‘CŒ:— ŽDŽ˜™>’–“‚šœ›8• In R comunque tutte queste funzioni sono già comprese: „uy† „ [o†\r a uy Š [ ‹C\r Œ*a Ž'8‹D‘>’ g‚”j • Sorprendentemente con Š ‹CŒ*Ž'8‹D‘>’ g • non i otteniamo, come magari ci aspetteremmo, lo stesso risultato come con , cioè (perché si potrebbe pensare che semplicemente l’argomento venga arrotondato, essendo il fattoriale definito per argomenti che sono numeri naturali); viene invece restitui. to il misterioso valore La ragione è molto profonda; infatti la funzione fattoriale è la restrizione eCe>”iDgežDg ad  Ÿ \ uy4z)NH4O della funzione gamma ¡ z)¢K $ H£¤('H4¢ ¡¤$œ¥ ( una delle più importanti funzioni della matematica e della statistica. è quindi definito per ogni numero complesso che non sia il negativo di un numero naturale, cioè per ogni con . Il fattoriale è legato alla funzione gamma dalla relazione ¥  ¢ ¥ ¥. ¦ ,C>&DH7)&DHƒ94&D§D§C§'3 ‹'©D© ‹ uy‘ 4 ‹'©D¤¡ © ‹ $ %J7C( Provare ¨ e ¨ in R. ALGORITMI E STRUTTURE DI DATI Numero 5 a.a. 2004/05 La formula di Stirling Coordinate polari (o sferiche) nello spazio Teorema 21.1. Il valore di Un punto aDbdcegfhfi3j dello spazio tridimensionale può anche essere rappresentato come nella figura seguente:                          e  è sempre compreso tra * m $ Dimostrazione. Non richiesta. Richiede i potenti strumenti dell’analisi complessa. +  l no&('V) " * $ Avendo + , si vede che 46587:9 ;=< >658;? @A< FE  5BDC   s‚Uƒ ƒ‚„{|6‡†ˆ ‰ ˆ „{y6„ ˆ † † (*) , mentre l’angolo < è univocadove mente determinato se chiediamo 1HG6658;? @A< ZM6Z Questa rappresentazione è quella che si usa nelle coordinate geografiche di un punto della terra o della sfera celeste: |Šb longitudine, latitudine.  W Consideriamo l’applicazione ¡ ) da W in  che consiste nel ruotare un punto ¢ £ ¢   ¢   per l’angolo fissato < in senso antiorario. È chiaro che ¡ ) V¤ ¢ A ¤S¡ )  ¢  per ogni ¤{¥6W e dal disegno si vede che anche E ¦ Š E ¦ ¡ ) ¢ g‡¡ )  ¢  ¡ )    ¦ ¥ W . Una rotazione è  per ¢  quindi ­ ¬ © ° § % ] * ®Ÿ¯±° , \ _$ &('V) La rappresentazione è univoca per quei punti per cui K` / 21K1L , quindi per tutti i punti che non si trovano sull’asse Z . che in caso di simmetrie può avere una forma analitica molto più semplice della › . > 4  ›8cegfhfi3j}b–e h i ad  esempio diventa cosı̀ ž=cVsf|Ÿf(yujBbRs , una funzione di una sola variabile notevolmente più semplice. Altre volte una funzione dipende solo dalla direzione e quindi non da s ; in questo caso ž è una funzione di sole due variabili e anche questa è una importante semplificazione. Nello stesso modo si usano le coordinate cilindriche e le coordinate polari piane. . ¨ E ¡ )  ¢ T ¢  ¡ ) V    ¢  ¡ ) V    Ma Cfr. esercizio 24. Quindi E ¢ ¡ ) ¢ g   ¢  ² 7:; ? 9L@¶;Œ< < ³ ²˜7:µ 9L;;Œ? < @A< ¢  ¢  ¸² ¢  7:;? 9L@¶;Œ< < E µ ¢  7:;9L? @AŒ; << ³ Se per una matrice ¹ ®       la base canonica di W E ¢  ¢  ¢  perciò < ¡ ) V    —² :7; ? 9 @A;S<´ ³ ¡ ) V   —²˜7:µ 9 ;;S? < @¶< ³ ¡ ) ·   è il vettore magico di ¡ ) V    ! ª « Sia $ . Rotazioni nel piano ^ + yŠb Anche in questo caso la corrispondenza non è biiettiva, perché non solo per aBb‹cVƒŒfƒŒf(ƒ j la rappresentazione è valida per s‹bƒ e valori arbitrari di un’applicazione lineare. % [ . ™ fw~€4yBbt_vxw š ž=csf(|Ÿfyuj b ›8csFt_vxw|Ht_vxw8yŸfsTw~€`|Ht_vxwyAfsTw~€>yuj con Si vede che, se 0 / 2131 , allora ™ t_vxw yBbw~€ Molte funzioni della matematica e della fisica presentano simmetrie. A una funzione ›b—›8cVegfhfiKj definita su œM (per semplicità, ma spesso bisognerà studiare bene il più adatto dominio di definizione) possiamo associare la funzione žXbOž=cVsf|Ÿf(yFj definita da ezb{sut_vxw|}t_vxwy h}b{suw~€M|Ht_vxwy i4b{suw~€`y # &(') . rXbOsut_vxwy bO‘xƒ ’ ‰ y quindi un punto del piano reale. , % ! ™Xš , Coordinate polari nel piano Sia  y , ma anche per ogni altro punb Ž cVƒŒf(ƒŒfƒ j dell’asse i bisogna porre  ybY‘xƒK’ e quindi t_vxwybOƒ e w~€>yBb”“ se iO•–ƒ oppure y”b ‰ ‘xƒ ’ e quindi tovxw y—bDƒ e w~€>y—b ‰ “ se i˜ƒ , e allora ogni | va bene. Quindi su tutta l’asse i le coordinate polari non sono e to univocamente determinate. Spesso al posto di y si usa ^ % k .qp n | 21  ²½¼ º ¾» ³ ¥‚W   definiamo ¹ ¢ ² . Allora ¢  E ¢ ½(º ¢  E ¾ » ¢  ³ vediamo che possiamo prendere ¹ ² :7; ? 9L@¶;Œ< < ;? @¶< :7 µ 9 ;S< ³ . Notiamo anche che le colonne di proprio ¡ ) V   e ¡ ) V   . ¹ sono ³ ALGORITMI E STRUTTURE DI DATI a.a. 2004/05 Numeri complessi in R points    Un numero complesso è un punto del piano reale. Secondo questa definizione, i numeri complessi non sono nuovi come oggetti. Definiremo però nel prossimo numero le due operazioni, addizione e moltiplicazione, per i numeri complessi, di cui abbiamo già parlato a pagina 6. Per stavolta usiamo i numeri complessi solo come la forma più comoda per rappresentare punti del piano in R. In matematica il viene anche numero complesso , ad esemscritto nella forma . In modo quasi identico pio vengono rappresentati i numeri complessi in R, mentre però in matematica per si scrive , in R bisogna scrivere . Anche da solo non è ammesso, dobbiamo scrivere ; R stesso nell’output utilizza . Si può usare per il numero complesso (nell’output ). La parte reale si ottiene con , la parte immaginaria con . Molte funzioni grafiche in R sono definite per successioni di punti. Siccome in statistica accade spesso che si hanno due serie di misurazioni, ad esempio e , molte di queste funzioni possono essere usate nella forma . Una coppia di misurazioni (cioè di vettori) è però equivalente a una successione di punti del piano, cioè a un elemento di . Questa dualità è onnipresente nella statistica multivariata. In R dovremmo allora scrivere che ci costringe a una rappresentazione un po’ difficoltosa. Le stesse funzioni grafiche operano correttamente se diamo i punti come una successione di numeri complessi, possiamo cioè usarle ad esempio nella forma . Non dimenticare l’operatore .           $ #%$    ()+*-,. & &"&$   ! "#%$ &"#%$ /01*-,. '   124333 657    2 3334  5 89*:6;-<6;===>.  ?A@CB 5ED B 5   2   2 3433  5   5 5 FBHG 89*>I *:J#;<#. ;===;KI *:01;-<0L.;=4==-. 89*>I *>M%"4N4$ ;>OP#%$ ;>M4$ ;K#?&4"4Q4$4.. I R )%SI TJ$VUW8%XYJI?ZJ$%[?Y*:9; S\%]]$ ; S)U#;>I%[4^[S)SJ$U%_4`. a 8I[S[^[*cbd $ Ye:.f<0g[4^4f *cb1;KI$?SI%^4)4fU%S\]]$ ; \hhU%i9;K$ YJI T)fU%j9; 8]UI%[^4[S)+;cg]UI%[^4[S)S$.k l S\8$I%\WUm8%XYJIZ$%[?Y*-:6;<6;>I[S%YJ$I)%U%j4`nop9; a bJS\:S9<*c0U\#$;>\4U0ff\S$U]j4.`qrn4bop1\S1;c0*-^\s4S4h]4U4U%S&1)?= b1O.*-&6q ;!.. b^4[Z9*:6;-<6; Z4<bJ)%ULt>Y tL;:4^\?gULttJ;<^\?gULt4tJ; \f bU%S4:4<6;-\%:4)fU4\4ff4$ ; 8S\0)9=Fb^4[Z4UI%[%S%YJ$I%).k u [f?ZfI?SJ$ b4ZWUW8XYJI?Z$[?Y* 8$^)+;-^\%S4]6;-\^%ZJ. a bJ[4f?ZfIS$ b4Z9*8$%^)+;s$h%Z%TU4^\S4]9;cT)4$]%T4Z4U4\^%Z9; TJ[S$,4[Y4Z\^%Uj4`n4op1;-[?Y)8J$%^)%U%j`n4op9; bJ\?b)S4Ut?f b)4I4$%\^Jt.%k u X4Y4Z$VU8%XYJI?ZJ$%[?Y *:6;Kf$ 0g1;Z$ b[%Ut>b tJ; a bJI[4[$ Y4^Z[Sf+)* (U)+#;>*:JI%[4.^;K[/01S)*-SJ:$.U%;cbJ_4`6I?T;KUfI%f\$ 04^g1\U; Z4#<. bJ)%U%Z$ bJ[+; I[^%UI%[4^[S)+; g]UI%[4^[S)SJ$ ;>I%)%:4UfI%\^4\.k ()%ZZ\?Y][^4$vUW8XYJI?Z$[?Y*:6;>^\S4]6;>\^Z9; a SI)4[I?Z9^[* S())+U*:#.;>I%;[4/01^[*S:). SJ; ($U%)+_4*`:J..?"4^\S]6;K/01*-:.?"4\^%Z9; I[^%UI%[4^[S)SJ$ ;cg[Sh4)S4UI[^[S).k Da questi esempi si dovrebbero poter dedurre le regole più importanti per la definizione di funzioni in R. Parametri predefiniti sono , assegnati con . Le funzioni e verranno discusse adesso. U bJ[4$ Y4Zf f<%0g[^4f b[$ Y4Zf * bXY4Z$+;rbJI TUf4$ 0g[^4[+; Z<b)%U%ZJ$ b[%ULtKb tJ;wI%[^UI%[^[%S)+; g]UI%[^4[S)S$+;7I%)%:UfI%\^\U#. Usiamo qui la seguente convenzione: In primo luogo gli argomenti possibili nelle funzioni di R sono in genere talmente tanti, che i prototipi che indichiamo corrispondono soltanto a un formato scelto per semplicità e funzionalità. R permette inoltre argomenti riconoscibili per nome, che quindi non devono necessariamente seguirsi nell’ordine indicato. Quando nel nostro prototipo appaiono due segni di uguaglianza, ciò significa che l’ultimo valore è il valore predefinito in R. Analizziamo in dettaglio i parametri. bXYZ$ sono le coordinate dei punti, che possono dati sia come elementi :6;< B 5xD essere B 5 oppure di mediante un vettore di numeri complessi. è il simbolo con cui il punto viene rappresentato. Questo simbolo può essere una lettera oppure un numero tra 1 e 25. Le forme che corrispondono a questi numeri sono elencate nella prima figura a pagina 19. può omesso oppure scelto tra e . Se viene omesso, assume il valore predefinito , che sta per point e indica che nel punto indicato viene disegnata la figura desiderata. fa in modo che i punti vengano uniti con linee (in questo caso è superfluo), mentre l’interessante opzione (per both) implica che vengano disegnati sia i simboli che le linee congiungenti. è il colore in cui il simbolo (o il suo bordo quando è riempibile) viene disegnato. Se manca, viene usato il colore di disegno attualmente impostato. è il colore di riempimento per i simboli con i numeri da 21 a 25. I colori possono essere indicati per nome (ad esem, un elenco dei nomi pio disponibili lo si ottiene, almeno sotto Linux, con il comando ) oppure in formato RGB, ad esempio per il rosso. è la scala. È normalmente impostata ad 1, per avere un formato più grande si può aumentare la scala, ad esempio con . La figura a pagina 19 che rappresenta i simboli e i numeri a cui corrispondono è stata ottenuta con questi comandi: f$ 04g[^[ Z$ bJ[ t>g t t>b t bJ[4$ Y4Zf f<0gJ[^4f Corso di laurea in matematica • 22 symbols e rect Per disegnare punti e simboli in R si pose . Il sono usare le funzioni primo comando ha il formato t ^Jt t ^Jt bJI?T R )SI TL$ Nella funzione dell’ultimo paragrafo che perabbiamo usato la funzione mette di disegnare simboli più complessi di . È una quelli che si ottengono con funzione che si usa poco però e anche noi la utilizziamo solo per disegnare cerchi il cui raggio (in pollici, come tutte le misure di R) possono essere assegnati. Cerchi si possono anche ottenere con , dove però invece del raggio si può indicare solo la scala relativa impostando il parametro (o in ). Anche rettangoli si possono disegnare sia con che con ; siccome esiste però una funzione apposita in R, possiamo adattarla definendo una nostra funzione . Usiamo anche qui il plurale perché tutte queste figure permettono di disegnare serie di figure. f%<0g[^f b[$ Y4Zf b[$ Y4Zf u XY4ZJ$ f<0gJ[^4f b[4$?Y4Zf ()ZZ\Y]4[^4$ I%): f4I%\^\ S)4IZ L’immagine è stata ottenuta con u [4f?ZfIS$ b4Z9*?t== {?bLf%{NNPh$fI TL$6=FbJftL;K#+= |+;#+= N. l S\8$I\+*>I *&9;K#+= |. ;>I *&6;#+= N.. ()ZZ\?Y]4[^4$ *-&6;K#+= |6;K#+= N+;KI%[^[S)S$ULt y4||4II4IIt. b4XY4Z$UI *&1=-#"&1=-#%$+;&1= Q%"4&1= M4$ ;#+=-#?"&= O4$4. ^4\Z[%U&= QO+qw^4\Z$U%S)?b1*-^\%Z[+;-M. 8a [S *cbd$ YbX4Y4Z$4. ()ZZ\Y]4[^4$+*cb1;-^\%Z$ ;-^\%Z$ ;>I%[4^[S)SJ$ULtyghgzQ?g+t. RI)?)Y4SZI TJS[$+U*>bI%"6)?Y4*-Z4^4S\Z[+[%;-"4^^4\%Z\Z[4[4ƒ&1ƒ *-= &!6";>I%#%[$4^4.4[.S{N+)Sq $%ULt>g4S[%s%Y t. R )SI TJ$+*>I%)?Y4Z4S[+;-^\%Z[4ƒ&1=NO+; I%[^[%S)S$Uty&&4|gO8t.%k h)= [8489*K. t>g+t I%[^4[S) I%[^4[S)S$ Funzioni in R S)4I?Z Numero 5 tS)%hLt t]S))?Y tL;e===; I%[4^[Sf *. t y%884&&4&&Lt fI%\4^\ fI%\^4\%U4N9= z u [f?ZfI?SJ$ b4Z9* t == {?bJf{#|P4f4$ 0g[^$6=FbJftL;-N+;-N. l^S\%Z\8[%U$II%\6*-&6*-^;-\NZ.[6qr;-bJ^\\S9Z[6*cg;>]4I%UL[S%tYLy4z$\I%I%)%|U%zi4\J(%}4t%pJ. . 8[%S *>$$?Y~#+-#€%„. a„  U$%P#q‚:4U&1= NOƒ *K#?" „„ z.q <4U#+= QP&1= O4ƒ * { z.qrb[4$ YZf *:6;-<6;cbJI TU$4.q Z)%:%Z9*:9;<"&1=N+;>$ ;>aI)%:U&1=O.k 8[%S *>$$?Y~#|9 N4„O„ . U$%P#|+q :4U&1= NOƒ *K#?" z.q<4U&1=-#q bJ[4$ Y4Zf+*:6;<6; bJI TU$+;cg]ULtS)%hLt. q Z)%:%Z9*:9;<"&1=N+;>$ ;>I)%:U&1=O.k h4)%= [881*K. Per ottenere l’output su una finestra grafiprima di ca è sufficiente inserire . ^[4I%\Z[S9*K#. h4)=[889*K. \9Fg è lo stesso come f%)%†9*-\+;cgL. . Corso di Algoritmi e strutture di dati Il semplice ma potente nella forma 8[S di R viene usato 8 [S *:‡$ Y‡f XJI4I%)4ff$[?Y).m$4f?ZS%X,$%[?Y) S)?b*:6;cYL. è la successione I *:9;===;-:. con Y ripetizioni di : . Esercizi per gli scritti 23. Giustificare la regola della nota 20.16. ˆ  ‰9?Š? ‹  KŒŠ4‰L 24. Per un vettore del piano il che si ottiene da vettore per rotazione di 90 gradi in senso antiorario si chiama il vettore magico di . Usare le matrici di rotazione per ottenere da . ˆ ‹ ˆ ˆ 25. Usando le matrici di rotazione dimo. strare che Ž‘Ž%’VŽ 6“ ’VŽ%’HŽ4 26. Se  ‹ è il vettore magico di ˆ  , allora Ž  ‹ è il vettore magico di Ž  ˆ . Usare2 l’esercizio 25! Riflettere sul caso ˆ‚” . 27. Scrivere una funzione per disegnare rettangoli in cui il primo argomento corrisponde al vettore dei centri. – —C˜ Docente: Josef Eschgfäller          Corso di laurea in matematica    Abbiamo già detto che un numero complesso è un punto del piano reale e che secondo questa definizione i numeri complessi non sono nuovi come oggetti. Definiamo però adesso per i numeri complessi due operazioni, addizione e moltiplicazione. scalare reale del piano. %$&(' )$&*"+$, -(' .0/1"234.5$&"-! con il vettore Q4 25 (3) Più in generale abbiamo L’addizione è l’addizione vettoriale nel piano, la moltiplicazione è invece motivata nel modo seguente. 76(8/)9 ;:;<  6(=?> 9$@ 6A= 9CB > L’equazione non ha soimplica luzioni reali (perché e ). Ci chiediamo allora se è possibile aggiungere ai numeri reali altri numeri, numeri immaginari, tra cui un numero ( appunto perché immaginario) che soddisfa l’equazione D D D 6 E/)9 Naturalmente vorremmo che le usuali leggi aritmetiche siano conservate anche con i nuovi numeri. Con la nostra definizione tutto funziona bene: Chiamiamo il punto del piano , poniamo cioè  > #9# 3 >  e identifichiamo il numero reale con il numero complesso - ciò significa geometricamente che consideriamo la retta reale come sottoinsieme del piano nel solito modo, identificandola con l’asse delle .  34"H4*A:A< . Allora: (1) 3 > JI4K.L , dove a Siano sinistra il prodotto è il nuovo prodotto per i numeri complessi. Infatti, secondo la nostra definizione, 23 Infatti D 6 F > #9GRIN > #9G F > I > /,9IS9T#9PI > $ > IN9G F/)9T > +E/)9 34"#U3 > $V > 4"W X)$Y"T > #9GUX)$&"-D e quindi anche *UXZ$YLD , e )$Y"-D[-Z$&LD[ V.O$&.LD\$Y"-\D\$,"2LD 6 V.0/]"-5$V.5$&"2!*D Osserviamo bene quest’ultima formula. Il risultato è in accordo con la nostra definizione per la moltiplicazione di numeri complessi, ma è stato raggiunto eseguendo il calcolo secondo le regole algebriche usuali, a cui abbiamo aggiunto la nuova legge . D*6/)9 / $ (4) E infatti per le operazioni e definite all’inizio valgono le stesse leggi algebriche come per i numeri reali (cfr. pagina 6), perché, come si verifica adesso facilmente, l’insieme dei numeri complessi con queste operazioni è un anello commutativo in cui il numero reale è l’elemento neutro per la moltiplicazione. Quest’ultima affermazione segue dal punto (1). Vedremo a pagina 24 che i numeri complessi formano in verità un campo, cioè che ogni numero complesso diverso da zero possiede un inverso per la moltiplicazione. 9^F9T >  3 > MIN Il campo dei numeri complessi F.0/ > I-! > I#O$,. viene denotato con _ . In pratica F.. ,_ @ - è ugua- $"2D , e siccome "-D+aDb" , si può anle ad PI2Q , cioè al prodotto dello che scrivere 3*"#+Vc$&Dd" .   Numero 6 In questo numero 24 D 6 E/)9 (2)  e  !"# . D D+' F > #9G  Anno accademico 2004/05 I numeri complessi Siano Allora  I numeri complessi La formula di Euler Il campo dei numeri complessi La formula di de Moivre Parte reale e parte immaginaria Disuguaglianze fondamentali Il segno del prodotto scalare Poligoni con R Radici di un polinomio Radici -esime dell’unità Radici di un numero complesso Esercizi 28-43 e La formula di Euler f4gihOj k1lnm4o-pSq!r[pbs tMqLu per q]v`w . Adesso la possiamo riscrivere nella forma f4gih)kxm4o-pNq^y`zWpbs tMq Abbiamo introdotto già a pagina 21 la notazione (formula di Euler). Questa notazione, per il momento puramente simbolica (perché solo nei corsi di Analisi si potrà dimostrare che si tratta veramente di una potenza), non è solo molto comoda, come vedremo adesso, ma anche estremamente importante nella teoria. Dal teorema di addizione per le funzioni trigonometriche si deduce immediatamente che f4g|{}hS~.H€3k;fg‚hƒ2f4g} q3rd„(v^w k‡†yˆz‚‰ per (esercizio 33). Si vede che nel campo complesso il teorema di addizione assume una forma molto più semplice. possiamo anche più in generale Per definire f‹ŠJj k‡fŒSf4gn Allora f Š~Ž`k;fŠ+ƒ2f4Ž per ogni r*Ev; . La funzione esponenziale è quindi un omomorfismo ln‘rWyUuQ’S“”ln‘rTƒ u Leonhard Euler (1707-1783), matematico svizzero-tedesco, passò gran parte della sua vita a Pietroburgo e a Berlino. È stato uno dei più prolifici matematici di tutti i tempi; la sua opera riempie 88 volumi. Non era solo un geniale analista, ma ha inventato anche la teoria dei grafi, anticipando un campo della matematica discreta oggi molto studiato per le numerose applicazioni (ad esempio in ricerca operativa e in informatica). Ha lavorato su quasi tutti i campi della matematica pura e applicata del suo tempo. C. Boyer. Storia della matematica. Mondadori. U. Bottazzini. Il flauto di Hilbert. Utet 1990. C. Berge. The theory of graphs. Dover 2001. R. Diestel. Graph theory. Springer 1997. ALGORITMI E STRUTTURE DI DATI Numero 6 a.a. 2004/05 24 Il campo dei numeri complessi Parte reale e parte immaginaria Il segno del prodotto scalare  Definizione 24.4. (con reali come sempre) sia un numero complesso. Definiamo allora Nota 24.10. Nella disuguaglianza di Cauchy-Schwarz anche a sinistra dobbiamo mettere il segno di valore assoluto, perché il prodotto scalare può essere negativo. Infatti il segno del prodotto scalare ha una importantissima interpretazione geometrica: Siano come finora e due punti di , entrambi diversi da . Come nella dimostrazione della disuguaglianza di Cauchy-Schwarz sia l’angolo che i due vettori formano in un piano comune (un tale piano esiste sempre ed è univocamente determinato se i due vettori non sono paralleli). Sappiamo che Abbiamo visto a pagina 21 che ogni punto di può essere scritto nella forma    ! dove #"%$ è univocamente determinato ed '& . Abbiamo anche visto che () )*+  -,  Se /.0$ , anche  è univocamente determinato se chiediamo $213'465*7 oppure, come il matematico preferisce dire, univocamente determinato modulo 5*7 . _% ,`P Re Im T 6 T Q Re si chiama la parte reale di , Im parte immaginaria. Osservazione 24.5. Sia anch’essa già anticipata a pagina 21, con  ed  come sopra. Sia adesso anche < & . Allora 89>=0?89;@>:BA!= C 8D9E=F come segue dal teorema di addizione visto ha quindi la a pagina 24. Il prodotto stessa lunghezza di ed un angolo aumentato di rispetto a . Ciò significa che la è la stessa cosa comoltiplicazione con me una rotazione per l’angolo in senso antiorario. Prendiamo adesso un numero complesso arbitrario. Lo possiamo rappresentare nella forma con . Per il prodotto otteniamo evidentemente e quindi vediamo che la moltiplicazione con un numero complesso consiste sempre di una rotazione combinata con un allungamento (o accorciamento se ). < 8D9E= G < G IHJ89>= H?89;@>:BA!= CG HK"L$ G M ) G ) 43N Definizione 24.1. Sia /O ,QP R&'S con  & . Allora 3T UWV P si chiama il numero complesso coniugato a . Geometricamente si ottiene mediante rispetto all’asse reale. È riflessione di chiaro che . 0 0 ,RP 0  ,  ) )  . Lemma 24.2. Sia . Allora Dimostrazione. Immediata. Perché è anche un caso speciale dell’esercizio 30? 0.X$ Nota 24.3. Ogni numero complesso possiede un inverso rispetto alla moltiplicazione, infatti Y  ZN per cui possiamo porre N  o, equivalentemente, [&#S la . Allora a-b  ,5 ced  V 5P Possiamo quindi scrivere ogni numero complesso nella forma 0*89;: ! [&#S . Allora ) Re )B1f) ) e ) Im )g1f) ) . Dimostrazione. Infatti, con 0 ,RP , h Re i hkjlh mnh*jo m!p2qsr m!p t3uvpwjxh i h . particolare }†!}Š"`$f‹wŒ*v'"6$ e Nello stesso modo per Im . Osservazione 24.7. Per un numero complesso la parte reale e la parte immaginaria di non sono altro che le coordinate di come punto di . È quindi chiaro che, se è se e un altro numero complesso, si ha solo se e coincidono sia nelle parti reali che nelle parti immaginarie. Usare questa osservazione nella dimostrazione degli esercizi 41 e 42.  y y y z;F{*D|J|D|D ^ ^ . Allora wg{*J|D|D|D ^ )~}! }?)g1) €)~) ) e Questa è una delle disuguaglianze più importanti di tutta la matematica e prende il nome di disuguaglianza di CauchySchwarz. Dimostrazione. Possiamo ricondurre questa fondamentale disuguaglianza al caso . Infatti i due vettori stanno su un piano e il prodotto scalare si esprime mediante l’angolo che essi formano in questo piano (pagina 15): ] 5  }! }‚) €)~) );* e siccome )ƒ*F„) 13N abbiamo )~}! }?)) )~) )~)e*v-)B1Z) €)~) ) N  [V P  R  ,  , P >SF , DY è quindi un campo. Come in ogni campo anche in S l’inverso è univocamente Proposizione 24.9. Siano ancora e . Allora punti di determinato. Questa seconda disuguaglianza fondamentale è detta disuguaglianza triangolare. La formula di de Moivre 0?89:\&/S ] "QN Sia . Per allora, secondo le formule viste precedentemente, abbiamo *^/0*^89^B: Abraham de Moivre (1667-1754) era un matematico francese emigrato giovane in Inghilterra. Ha scritto un famoso trattato sul calcolo delle probabilità (Doctrines of chances, 1718). zF{*D|J|D|D ^ % g{*D|D|J|D ^ ^ )  , )B1Z) ) , ) ) due Dimostrazione. Ciò è una facile conseguenza della formula )  , )  ) )  , ) !)  , 5v}!} per il prodotto scalare vista a pagina 15 e della disuguaglianza di Cauchy-Schwarz: )  , !)  per cui anche   1 ) )  , ) )  , v5 }†} 1 ) ) ) ) v5 ) )~) )J †) € ) , , ) !)   , )  , )B1Z) ) , ) ) }†!}-3$f‹wŒŽ3$ ^ Fissiamo adesso  . Allora i vettori %& per i quali Ž0$ sono esattamente i vettori ortogonali ad  . Essi formano l’iperpiano ortogonale ad  (una retta ortogonale ad  in  , un piano ortogonale ad  in Š ). Come si vede dalle figure a pagina 13 per Q il coseno di  è uguale ad N , e se, partendo da wZ , avviciniamo all’iperpiano ortogonale di  , il coseno diventa sempre più piccolo, rimanendo però positivo fino a quando non tocchiamo l’iperpiano ortogonale. Se passa invece dall’altra parte dell’iperpiano, il coseno di diventa negativo. Avendo e però lo stesso segno, otteniamo il seguente enunciato geometrico, importante anche in molte applicazioni, ad esempio nella teoria dell’ottimizzazione:  Disuguaglianze fondamentali Teorema 24.8. Siano due punti di  }†!}-) €)~) !)e Per ipotesi ) )(‰U$ e ) )‰I$ . Ciò implica che }†!} e *v hanno lo stesso segno; in Osservazione 24.6. Sia  l‡F{?D|D|D|J ^ ^ Mˆ { J|D|J|D† ^ $ }!} *v  ‘ { J|D|D|D ^ % ^ }!}'‰L$ Mxg{?D|J|D|J ^ e Teorema 24.11. Siano due punti di , entrambi se e solo diversi da zero. Allora se si trova dalla stessa parte dell’iperpiano ortogonale ad come stesso.   Poligoni con R La semplicità delle seguenti costruzioni è impressionante - ma richiede la nostra matematica! Esaminare bene ogni singola riga del programma e variarlo. ’“J”†•*”J–†—*˜™J•Fš›œDDž™*Ÿ†J•¡D¢J“†?˜v£E™?”*›?¤¥v£¦B¤¥B£;œ§ ¨ —¡©*˜J–¡Bšƒ– šƒž¥B£e¥g¤ƒœ£ª§g¤– šež¥B£ƒ¥g¤¥B£e¥J§D§ «Ÿ•D•¡¢J“D¬J˜Bšež¥B£e¥ž¥B£e¥˜B¤eª£>­v¤ƒœ£œB¤ –“D¬J“—Ÿ—*˜®k› ¯JŸD¬J¬D“°g›§ ™*¡—še¬°J±D®J§M²Ž³¡•?˜†•¡´”™?ŸJ”D”¡£ ¡†¢J“D¬˜®™?˜µD­D¶”Ÿ·š;¸v¤eœJ¹†™?˜ ¤eœJ¹†™?˜µD§ ™*“D¬J˜¢“†*“†*Ÿ—“®–“” še¡†¢“D¬J˜J§†¶?¥˜D¹D”D˜†Fše¡†¢“D¬J˜J§ ¬J˜*ŸJ”Bš>™*“D¬J˜¢J“†*“†?Ÿ—“§ º ­J®–D“J” š>™?˜Dµ­*§†¶*¥D˜D¹D”D˜š>™?˜µ­?§ ™*“D¬J˜¢“†*“—“”D”“® º ­JJ¹™*“J¬J˜¢J“†?“†*Ÿ—“ ™*¡—šƒ–D“D¬®k›—*Ÿ±k›§ ¬J˜*ŸJ”Bš>™*“D¬J˜¢J“†*“—*“J”D”“§ ™*“D¬J˜¢“†*“»Ÿ—J±JŸ®D¸£J¹™*“J¬J˜¢J“†?“—“J”D”D“¶D¸F£œ ™*¡—šƒ–D“D¬®k› ¢D—ŸDŸ† ›§ ¬J˜*ŸJ”Bš>™*“D¬J˜¢J“†*“»*Ÿ—J±JŸ§ ™*¡—še¬°J±D®Jœ§ –Ÿ†J•D—?˜®*¥B£¼D¶*¥˜D¹D”DŸ·všež¸£DB¤;¸£DB¤;¸£œD§ ½ Ÿ—*–¾k˜ šƒ–Ÿ†•D—*˜ ¤;¸£ªB¤ –“D¬J“—Ÿ—*˜®k›©“—*ŸJ”†•Ž¢—ŸJŸ† ›?¤ƒ–D“D¬D“—ŸD®k›—Ÿ±g›§ ±JŸ»£“©D©š§ Si ottiene la figura a pagina 25. ALGORITMI E STRUTTURE DI DATI Radici di un polinomio Radici di un numero complesso       un polinomio con coefficienti complessi,   . Allora esistono numeri   e  ! " " "   , univocamente detercomplessi  minati, tali che $#%'&  (  ) #%'&  *( Teorema 25.1. Siano Questa uguaglianza è intesa come uguaglianza di polinomi, cioè sviluppando il prodotto a destra si ottiene un polinomio con gli stessi coefficienti di e quindi proprio . per ogni e È chiaro anche che si può dimostrare che ogni radice di , cioè ogni per cui , è uno degli .  +# -, (  +#  (  /, . Dimostrazione. Non richiesta. Esistono molte dimostrazioni, le più semplici utilizzano ancora l’analisi complessa. Il teorema 25.1 si chiama il teorema fondamentale dell’algebra. In R le radici di un polinomio possono essere ottenute con la funzione che prende come argomento il vettore dei coefficienti di elencati iniziando con il coefficiente costante. Per arrotondare i risultati usiamo la funzione , il cui secondo argomento è il numero di cifre decimali a cui si vuole arrotondare. Esempio: 021 3 465)1 187 5)1:9 ;)< 5)= <)> ? >8@6021 3646521 187BAC? AED FEG HIFEJ FEG HIFLK M M 05!>N;7BA%521:9 ;) ?>PFEQ)M M con output R S2K >TRG)K6>UQ6S R)>V6S R)> . Infatti W &YX2Z\[2I]^&_X)I`\ a $#%b&Yc ( #%d&_e ( #%'&_f ( #%Z f ( . h i j k ]:lnm fissato. Consideriamo il nu-  j  (che naturalmente dipende da ). Dalla formula di de Moivre segue che elevato alla -esima potenza, è uguale a . È anche chiaro che  #j , ( $  # j  ( ,  ,  per ogni . o . Consideriamo adesso i nu ] " " " j p- . meri j j , Dalla formula di Euler vediamo che gli j , j si trovano c)tutti sul cerchio unitario, con q eW ruotato di  (cioè di  gradi) rispetto ad j , p- . Essi formano in altre parole (almeno e ) i vertici del poligono regolare con per Yr  vertici iscritto al cerchio unitario con pri mo vertice uguale ad . Ciò implica che gli j , per .   " " "  &U sono tutti distinti  &  un insieme di  tra di loro e costituiscono radici del polinomio , mentre per altri . i valori si ripetono. Dal teorema fonda & dell’algebra segue mentale j , che ogni radice di  & è uno degli e che $#%^&T ( #%s& j ( #%s& j ] (    #Os& j *p- (  ] " " " j p- si chiamano le I numeri j j  -esime radici dell’unità. Corso di laurea in matematica  un numero reale non negativo Siano t r    . Nei corsi di Analisi si impara _  T   ed  esiste un unico numero u r  tale v che che numero con u  t . Denotiamo t. x   questo Sia adesso w un numero complesso   k z m y  diverso da . Allora w con t { e | ~} . Cerchiamo le radici t  -esime di w , cioè  w . Una radice le radici del polinomio la troviamo subito; infatti la formula di de Moivre implica che v y  ^  t k m     w soddisfa l’equazione . Se è un numero complesso tale che allora anche €  adesso  , €  # € (    €      t  ‚ Però noi conosciamo i € per cui € ; sono le  -esime radici dell’unità. Quindi ciascuno dei numeri v y   t k m   ]  j   `  j ]  " "" *p U  j   & è una radice di w . D’altra parte la moltiplicazione di un numero complesso ƒ con j , corrisponde un e W  alla rotazione di ƒ per „   e angolo di .  gradi e, siccome w    , tutti gli  , sono diquindi anche  stinti tra di loro. Dal teorema fondamentale dell’algebra segue che Radici g -esime dell’unità Sia mero Numero 6 a.a. 2004/05 ¶  & $#%b& 6(    #Od& *( w     complesso  che soddisfa e che ogni numero w è uno degli -, . l’equazione  †\e2f : Troviamo con R le quarte radici di 52=6<)> ? >6@8021 364 5)1 187BAL?PAEG)K8GV>PFORIFERIFORIFLKM M 0)52>N;7BAO5)1:9 ;)? >PFEQ)MM 30.  – ”+w ƒ ’:w dƒ ’  #  &T—O˜ w ƒ ( “P”8• w ƒ $ 31. Usiamo il simbolo ™ per indicare l’ortogonalità tra due vettori. w™ƒ›šdœ – ”w ƒ  šdœžw ƒ } f . f si chiama l’asse immagiL’insieme } f nario, gli elementi di } , cioè i numeri complessi con parte reale uguale a zero, si chiamano puramente immaginari. e sono quindi ortogonali se e solo se è puramente immaginario. w ƒ wƒ  wƒ 32. w!ƒ Ÿ w!ƒ Ÿ  Ÿ w Ÿ Ÿ ƒ Ÿ . Nella seconda parte non ripetere i conti! k6mE¡£¢I¤*¥P¦†k6m%¢)k6m£¥ ¨§ ~} . per ogni  k ©¤+ªk ©Z)k ª . 34.  35. Calcolare f .  36. Calcolare c« [2f . e« f 37. Calcolare ¬ &Yc2f . fE­ 38. Calcolare . e‘X)f) W fO]/‘®2f%`& ¬ fza-U6!fO­ . 39. Calcolare e¯&YfB W f%]« ¬ fO° 40. Calcolare X^& W f ­  fO± . e2b ¬ ²6³2´ `/'&_e ²6³2´ . 41. ²6³2´ ‚} Dimostrare questa formula per (seno e coseno possono essere definiti anche su  e l’equazione rimane valida, 33. ma ciò non può essere dimostrato qui) usando la formula di de Moivre e confrontando le parti reali e immaginarie. K ‡%Q J6SR‡zˆ2K6>TG R‡zˆ2K:S!K %‡ Q J> G2K ‡%Q J G R‡zˆ2K6>R‡zˆ2K8G2K %‡ Q J> 42. Fare un disegno con riga e compasso e verificare il risultato. Cfr. esercizio 43. Esercizi per gli scritti Per vettori si denota talvolta con non solo la pla, ma anche la matrice le cui colonne sono i vettori nell’ordine indicato. In particolare possiamo formare la matrice per due numeri complessi e , con. siderati come punti di Siano e numeri complessi con . #w ƒ ( w ƒ  ’:w ƒd’ & “P”8• # w ƒ ( f . Quindi L’output è  ‰ # "! " " " " "‰2Š ( ‹} ‰ ‰Š ! " " " ‰ ‰Š 25 Œ ²6³2´ X2b W ²6³)´ ­/b&Yc) ²6³)´ `/\X ²6³)´ Questo era l’esercizio 16. Dimostrarlo adesso con il metodo dell’esercizio 41. È solo un piccolo esempio di quanto il passaggio per i numeri complessi possa semplificare anche questioni che apparentemente riguardano soltanto i numeri reali.   a¯w  w f  &  µ& f  IaB& w 43. Siano un numero complesso diverso da e . Allora le altre radici di sono . w ƒ ] } w iŽPŽ f  ƒ i~†}  ‰ f ‘ ‰ f 28. Il vettore magico di w è w . # ( 29. Calcolare ’:w ƒd’ e “P”8• w ƒ in termini Ž  ‰. di Corso di Algoritmi e strutture di dati . ·¸›¹ Docente: Josef Eschgfäller          Corso di laurea in matematica Grafici di funzioni  Il grafico di una funzione (di R o definita da noi) si ottiene, come a pagina 19 il grafico del coseno, con la riga    adattando i parametri di ambiente (dimensioni degli intervalli per l’ascissa e per l’ordinata, colori, linee ausiliarie) secondo le necessità. Ricordiamo che il parametro deve essere un vettore di valori reali che matematicamente siano ad esempio ; congiunge i punti con segmenti di rette. Se i punti di sono sufficientemente vicini, avremo l’impressione di una curva continua. In genere, se la funzione non oscilla troppo, è sufficiente , definendo una risoluzione di . Mentre la notazione per vettori  "!$#&%('('('(%)!+*-, .. "! # %0/$"! # ,1,2%&'('('(%"! * %0/$"! * ,1,  .6.7-819:;:.<6=>=@?7 3 ' 354   IKJLDM7NOGH L GH G I P QSRL I A U T W Q V XTUQWV YTUQWV I Q I+TZQWV\[]T^XTUQWV1_YTUQWVWV XJ`LDMNaGb YcJI L7M-NaGdb Xe[KXTZQWV Yf[KYTUQWV Notiamo subito che il grafico di una funzione reale ghJ+LDMNaG b definita su un intervallo è un caso speciale di curva parametrizzata che può essere rappresentato nella forma  Anno accademico 2004/05   Numero 7 In questo numero e matrici in R non è particolarmente felice, per figure piane possiamo usare con grande vantaggio la rappresentazione complessa. Per un grafico di funzioni possiamo scrivere 26 La comodità della forma complessa sta soprattutto nel fatto che possiamo cosı̀ facilmente eseguire operazioni geometriche, le quali nel piano, come vedremo in questo numero, sono tutte esprimibili mediante operazioni algebriche con numeri complessi. Per spostare il grafico di 1 verso l’alto è sufficiente 29 .A.B  @7C5?D. .A&?D7B-B  @DC5?D per girarlo di E-3F è sufficiente .A&?DC.B  7C5?D- e cosı̀ via. Curve parametrizzate nel piano Una curva parametrizzata in è un’ap, dove è un interplicazione vallo (aperto o chiuso, finito o infinito, ma più spesso finito e chiuso) di . Normalmente si chiede che la sia almeno continua o anche che sia due volte differenziabile con derivate continue. Lo studio delle curve continue rientra nel campo della topologia e riguarda in primo luogo proprietà di deformabilità di oggetti geometrici (ci sono applicazioni in robotica, ad esempio la questione, se i bracci di un robot possano o no passare in modo continuo da una posizione a un’altra, può essere formulata e trattata con gli strumenti della topologia), lo studio delle curve e superficie differenziabili fa parte della geometria differenziale. Quando è uguale a 2, si parla di curve piane. In questo caso, per ogni abbiamo un punto del piano, le cui ed dipendono da e coordinate sono, appunto, legate alla dalla relazio. In questo modo ne sono definite due funzioni e che a loro volta determinano la . Spesso si scrive allora  Xi[jQ Yf[kg5TUQWV R si presta particolarmente bene per la rappresentazione di curve piane parametrizzate, perché, una volta definito l’intervallo che si vuole usare e che deve essere rappresentato come successione finita di punti, è sufficiente l’istruzione l m0no&p0q7r^s-r l(tDu^v r l(t0t nel programma per ottenere la curva. Abbiamo osservato a pagina 17 che il nome in R è riservato (viene utilizzata per formare la trasposta di una matrice), ma lo possiamo utilizzare per le variabili locali all’interno di una funzione (naturalmente solo se non abbiamo contemporaneamente bisogno della trasposta). Anche per le curve parametrizzate useremo la notazione complessa, quindi matematicamente l I+TZQWVw[KXTUQWV5xyYTUQWVWz e nel disegno della curva in R useremo l’istruzione m0no&p0q7r^s-r l(t){|v r l(t|}0~ n t ma anche, se la I è rappresentata diretn tamente in R come funzione |€ a valori complessi, istruzioni della forma m0no&p0q7r |€ nDr l(t|t 27 28 30 Grafici di funzioni Curve parametrizzate nel piano Octobrina elegans Octobrinidae I Octobrinidae II abline Funzioni iperboliche Parabrinidae Rotazioni expression ed eval Testi matematici Ellissi Iperboli Rette e segmenti Equazione di una retta Proiezione su una retta Il sito CRAN di Ferrara Esercizi 44-53 Octobrina elegans Rappresentiamo il grafico della funzione  ‚jƒ ‰ „W† ‡ˆ X xyX b a cui in R diamo il nome Š0‹)l : Š0‘|’‹)la} q|ŒŽno.1r”“ o} s‹lt)•n1)r oK~{ s r^s} ts t)– nell’intervallo — Md˜_˜0™ . Octobrina elegans mediante le istruzioni š2m|2q l1sq ‹› n r 0ž|l rœ ’||ž m| ‹)l Ÿ › no&r ž0¡£  £q(œ u ’ uW~0t § › l›  rUŸ2n Œ2¤‹ Œ-r‹ œ”vm|p|lm|u m0|s)t¥u¢ m|œ u"l‹ lp1 sv-v|Œ|u"Œ2¦‹ ‹ ¡Z›“ o(t n ‹u p tŒ1¨(¢ t l0m Œno&q1p0p1©-qDrr l2ž0{0 Š0u ‹l u Ÿ r l(v|Œ|t1¦}0~ ¡ ¦(n t~|t l­0p|p1®s l ¡Z r |ž|0ž|r ’t¢¡Zª0n u œ Š0‹l Ÿ › no(«p0m|p1¤0o¬q&œ uU 2q Œ “ t Per vedere la figura sullo schermo bisogna elim|  r minare la prima riga e inserire ‹ l › ~|t pri­0p1®¡Z | r t . ma di Il programma contiene una sola nuova istrup|s l , che viene usata per aggiungere testi zione, l a una figura. Il primo parametro indica il punto a cui si riferisce la posizione del testo; se il 2q è uguale a 4, il testo viene inseriparametro  to alla destra del punto di riferimento. Quando questo parametro manca, il testo viene centrato p1s l per le altre possibilità. nel punto. Vedere ¯l Per ottenere una scritta piccola abbiamo mos (nella terza ridificato il parametro grafico ‹ p1s è un’abbreviazione perp|character expanga); ‹ sion; l’abbiamo già incontrata a pagina 22. ALGORITMI E STRUTTURE DI DATI Octobrinidae I Numero 7 a.a. 2004/05 Octobrinidae II 27 Il grafico dell’octobrina è cosı̀ elegante perché presenta una simmetria non perfetta. Se a prima vista la curva può sembrare simmetrica, guardando più attentamente vediamo invece che le due metà si distinguono nel segno; infatti la funzione è una funzione dispari - una funzione si chiama dispari, se    perché il seno è una funzione dispari e il quadrato una funzione  pari; d’altra parte il Octobrina geminata Octobrina turrita   riduce l’ampiezza della curva quando    diventa più grande e fattore smorzante attenua cosı̀ la differenza tra le due parti. Combinando la funzione ad altre funzioni elementari abbiamo ottenuto i grafici su questa pagina che corrispondono  "!alle se- guenti funzioni di  , con Octobrina montuosa Octobrina tortuosa O. geminata O. montuosa O. voraginosa O. irregularis O. divisa Octobrina voraginosa Octobrina repentina O. pulcherrima O. sellulata O. munita O. modulata O. turrita Octobrina irregularis Octobrina solitaria O. tortuosa O. repentina O. solitaria O. sinuosa O. assurgens Octobrina divisa Octobrina sinuosa O. simplex O. laboriosa O. tranquilla     :  #  # %$'&(  # %) &(*  +    #  #   #% #   # #    $'&,   #       -$'&,  #   %$'&(  #   %  #   /.0(21  324 526 #      #7( #  # 8    -  # /.90,1   .0(21  #   .90,1 : $'&,  #   .90,1 :   Il quadro delle figure nella seconda colonna è stato ottenuto con il seguente programma in R: Octobrina pulcherrima Octobrina assurgens Octobrina sellulata Octobrina simplex Octobrina munita Octobrina laboriosa Octobrina modulata Octobrina tranquilla ;=???@,n?H2XnEgXYeRT<X[C?B?]?B:G,M'G(H:_WSG(M'KWS:\ ]AH9I(MAOQYf,n'H:x,yACED,BEF,G(H9I(L:l?zAG?G(HED(LQDJ\?\ D,M'^'DUQ[@?`'x?gAsRTfAH2X9SEyACED,BEF,G(H9I(L{D'zAGAG(HED,LJSWX#P(BAO:_Ag(\ ]AH9I(MAOQ6gAfAH:x,yACED,BEF,G(H9I(L:l(B:G?D'z(B,O'LQDJ\A\ D,M'^'DUQ[@?`'x?gAUTf,H:xAyACED(BEFAG(H9IJL?}AH9I?zJBAO'LQDW\?\ D,M'^'DUQ[@?`'xA<'gTfAH2X9SEyACED,BEF,G(H9I(L~O?H9IAz(BAO'LJSWX#P(BAO:_Ag(\ ]AH9I(MAOQY<,n'H:x,yACED,BEF,G(H9I(L'(O?O9zAGAh,MEIJO2QDW\?\ D,M'^'DUQ[@?`'x(n:sRTfAH2X9SEyACED,BEF,G(H9I(LtLAO?OEzAGAhAMEIWO(SJX#P(B,O:_?g(\ ]AH9I(MAOQn:fAH:x,yACED,BEF,G(H9I(L?},H9€?P(]?M?^QDJ\?\ D,M'^'DUQ[@?`'x(n: dell’octobrina in entrambe le coordinate della parametrizzazione:     si ottiene una retta orizzontale all’altezza  , con P. rotans      una retta verticale con ascissa  . Si possono anche disegnare altre rette, ma tranne per questi casi semplici è forse preferibile usare    . Comoda è la possibilità di disegnare più linee con un’unico comando   : Parabrina rotans ,;0 P. muscellaria ,;0ml"$#% jn P. composita P. rediens Parabrina muscellaria P. faceta d ,;0 P. octonaria 1$>2?:A@ d P. fungina Tutte e tre hanno importanti applicazioni tecniche; la tangente iperbolica ) * ( & è anche nota sotto il nome di funzione sigmoidea e viene spesso utilizzata per modellare la crescita di popolazioni (crescita logistica) o la formazione di impulsi, ad esempio nelle reti neuronali. l"$#% jn d ,;0 Parabrina nuclearis l"$#%jn d l%' (=jn d ,;0 d o 0 Parabrina composita ljn d o 0 1 >2 3B@ ljn 8 l j n d ,;0 ljn ljn ljn : @ n lj A d o 0 12;:<1672 8 0 d ,;0 d d ljn lj > n d o 0 124351672 8 "$#%&=, d ,;0 o 0 Le funzioni iperboliche "$#%& , %' (& e )+* ( & sono definite da ) * ( &9,/. 0 ljn o 0qj d l jn o 0 P. nuclearis Funzioni iperboliche %' (&-, d P. trichoptera Parabrina trichoptera %' ( &9,/. 0 d ,;0ml"$#%jn ljn o 0pl%+' (-j > n d l jn o 0pl%+' (-jn    !  "$# %&-,/. 0 28 l"$#%jn @ 3 %' (=jn l k Di queste funzioni solo le ultime due sono periodiche, perciò, nonostante le apparenze, le prime sette curve non sono chiuse e ogni allargamento dell’intervallo di definizione ne cambierebbe l’aspetto, anche se i cambiamenti diventano impercettibili per l’influsso @ smorzante del fattore @k3 cosh d contenuto in . , > Rotazioni tanh Parabrina rediens sinh Parabrina faceta La figura è stata ottenuta con CEDFG  H$I$J  K J LIM HLN O DFG  HMI$J  NPQHMOM D  D  $L J$  G$R  R TSUL J  GR  R  H$INV$$WP R  XYO+ JZO [ I\$!L J!LJ$V$J$I$M$$]M $$^ GR  R WPM H$IN!Z_ NV$J ` L $LN G Pa$b  O$JOMHJ  R  NL ` L $LN P$bWP R  OL OMHMJ R  H$INV$JYOI $_TOMUZ_WPa  NV ` H$INV$J L $LN G Pc G   O OMHJ  R  _$`PJ\\W Parabrina octonaria Abbiamo visto a pagina 24 che una rotazione per un angolo r attorno all’origine nel piano corrisponde alla moltiplicazione con 1st nell’ambito dei numeri complessi. Se vogliamo esprimere l’angolo in gradi, dobbiamo moltiplicare l’argomento con @u v w come visto a pagina 13. Vogliamo inoltre anche rappresentare rotazioni di un punto x attorno a un centro y . A questo scopo dobbiamo prima ruotare il vettore x : y attorno all’origine e poi riattaccarlo in y . Otteniamo cosı̀ la seguente funzione in R: C{z  J L$| $JM}_ ~|{HI\ BVX$I _  C LLJI$J{€$ LI JNP z JL€E\$ML$J‚|N!\ V$LI J$   ƒ $LI J$b$$HW$„\ „$$† K _M F $„ | G $  LI J $‡ Come sempre nelle funzioni di R, anche questa può essere applicata usando un vettore invece di un singolo punto come primo argomento x . A pagina 29 definiremo una funzione ˆ  $ che crea un vettore consistente dei punti di un’ellisse. Con Parabrina fungina z JLN  LN! D T!\ ˆ VLI J otteniamo l’ellisse ruotata dell’angolo $\ attorno al centro. ALGORITMI E STRUTTURE DI DATI Numero 7 a.a. 2004/05 /023 expression ed eval Ellissi R permette di creare espressioni formali con la funzione  . Mentre quindi dopo Siano S#T UT!VXWPY con S;TU[Z]\ ed ^`_aScbdeV , f _gU;eNh ijV . Allora ^;k l S k    è un’espressione formale il cui valore non viene però calcolato (infatti questa espressione è lecita anche quando  non è ancora stato definito), con      ne possiamo calcolare il valore. Esempio: f k U k _am quindi il punto n^T f>o si trova su un’ellisse con gli assi S e U . Non è difficile dimostrare (con le conoscenze sulle funzioni trigonometriche e le loro inverse che si imparano nei corsi di Analisi) che viceversa ogni punto dell’ellisse può essere rappresentato in questa forma. In altre parole,         ^p_gScbde;V f _gU;eLh iXV !"#  !"#$% con \rqsVtqvuw è una parametrizzazione dell’ellisse in forma normale. Per S1_rU otteniamo un cerchio di raggio S . Possiamo quindi usare la seguente funzione in R: con output x (  &' )' Testi matematici Nelle istruzioni "" , * + , "" e  , che permettono l’aggiunta di testi alle figure, le espressioni matematiche (nel senso dell’articolo precendente) vengono elaborate secondo regole simili a quelle del Latex per ottenere le formule matematiche corrispondenti. I dettagli sono forniti da , ""- e +$""-. . Esempio: y= 2sin(x) 1 + cos(x) 1 + x2  & 5  " yD"#:A;:$E. z  K K K  5D"  E   !D"{ Questa funzione restituisce un vettore di punti che, se il vettore dei parametri " ha una risoluzione sufficientemente fine, quando lo disegniamo con ! apparirà come una curva liscia continua. Più concretamente useremo i punti definiti da 0K "I;A;: .>:$E@7$ per disegnare un’ellisse intera, ma possiamo anche limitarci a una parte del intervallo con 0 "I;"%:D" :$E@7$ per ottenere un arco oppure suddividere l’intervallo in | parti, per ottenere un poligono (regolare per S}_yU ) ad | vertici: 0K "I;A;: .>:A *"-~ per un esagono (perché l’ultimo punto lo aggiungiamo per chiudere la curva). Per spostare il centro è sufficiente usare l’addizione in Yk (usando i numeri complessi di R), per ruotare la figura possiamo utilizzare la funzione €" che abbiamo introdotto a pagina 28. Naturalmente traslazioni e rotazioni possono essere applicate anche alle altre figure che abbiamo definito. 29  4 023 0 0  "5 !"!6 ;796: :  3 / 22 G"5> <;:A<%=‚#$E*%6 55 6  5A":A":B55H  #B5.6B>6>=? E!$-3 #:  #AJ+%:N5%=‚"I; C:BC:$E@7$>= 3 ! ;7DO K 4 €"#7D E!ƒ5D"%:A<O 0K "I#;: >:$E@7$ x 0 ! D": 7DO:L7DO #B5.6N+.6 0 x !7DO 7DF D"#:B:7DF x 0 0 ! D":N7 :L7  #B5.6BE 6 0 0K "I#$M : :$E7D 30 30 ! 7DO 7DF x €"# "#:N7DO;:N%:<O #B5 0K "I#;: 0 3 0 >:A* x "-F ! 7D 7DF D"#:L7DC:N   + 7D N Iperboli Siano S#T UT!VjWpY con S;TUZ„\ ed ^ _gS†bdeN‡ˆV , f _teNh i‡ˆV . Allora ^k S k1‰ f k U k _am quindi il punto n^T f%o si trova su un’iperbole di asse reale S e asse immaginaria U . Si può dimostrare che viceversa ogni punto del ramo destro dell’iperbole può essere rappresentato in questa forma. In altre parole, ^p_gScbdeL‡ˆV f _gU;eLh i‡ˆV con ŠŒ‹ V ‹Š è una parametrizzazione ‰ del ramo destro dell’iperbole in forma normale. Per ottenere il ramo sinistro si può ad esempio sostituire S con S . Per S _ŽU otte‰ niamo un’iperbole equilatera con equazione f k[_gS%k ‰ Possiamo quindi usare la seguente funzione in R: ^k / / € &+ "+PB3!E#7 €  1! "15  7 5 z K E& K " K  yD":A:$E.  5!-D" E !-D"{ ‘ La figura è stata ottenuta con /1023 ""- 4 023 0 0  "5 !"#!6 ""-8796.: :  3  "5;:<>=?"  @    > 5  >  A :    /  G #B57DC:DE*.6 CF56  5;A";:A"@;:B55H I;#:<;:$E@7$ #B5.6 6  E!D-;:   #AJ+%:B5   0K >#: K K K !B  I"#L 5M;N   0 ""# 7O7D>:A @P 0K 0 5> !AQQI"#N5>A%:N.R  +  7D N Per ragioni tipografiche abbiamo suddiviso alcune istruzioni su due righe. Si possono anche rappresentare integrali, simboli logici e insiemistici, indici ecc. A parte i soliti comandi di impostazione il programma contiene le righe Nel programma ad ogni figura corrispondono pochissime istruzioni: 32 2 #AJ+‘ %:N5%=‚"I; : ! E"#:7DO;:N #B5.6BE 6 ‘ 3 ! E"#: 7O:N #B5.6N+.6:AJ+7~ 0 ! 7O ‘ 0 €"#0  E;D"#:7D<;:7D~%: ! 7O ‘ 3 €"# E;D"#: 7$<;:7~%: :$E@7$>=  0  ALGORITMI E STRUTTURE DI DATI Rette e segmenti Una retta in nella forma  può essere rappresentata     !"# %' $ & (*)  )  ) +,+,+ (      2 e /.3 ) +4+,+ 5 2 . se -/.0 ) +,+,+ 1   In 6 possiamo scrivere #7  e (  ( 8 9  9 : 2 se ;<.=8>!: e 7 ?. ( 9 2 , oppure, in forma complessa, B  ) AC.3 )D  2 7E 7@C.07 )D 7 2 La retta che congiunge due punti e distinti in è l’insieme ; la e retta che congiunge due punti distinti del piano è quindi . Se i due punti non sono distinti, questo insieme non è una retta, ma contiene soltanto l’unico punto dato. Se come parametri usiamo solo i valori invece della retta otteniamo il segmento di retta che congiunge i due punti.  7)  GF &BIHIJ xXy,d zI{ld j4bnq| b_lf` } d` ~ o€O_4p a` p‚EvEƒ,f,` *|‚ `,r † m!jf d m}„o cd b,f4beOo=bqm p _E` p _4ar,r x^cd b,bEeˆ‡nIbe be‰eIb,bEnI‡ jEn x e †,†BŠ nI‡Em z m1j d | _ f a,v` m„ _,‹ f ‹,tE` m b† f} dd ~ o cv` Op cE` Od p‚ƒ,f4*|‚_ `,r _,‹Er r,r m!j }o nIbqo b,beBo0bqp Bp p€Œ, A Ferrara opera un gruppo di biologi che lavora con R (soprattutto nel campo dei microarrays) e gestisce anche il deposito italiano del CRAN. Gli indirizzi sono microarrays.unife.it/CRAN biotecnologie.unife.it/ Esercizi per gli scritti Proiezione su una retta ŽBC# Y   Siano dati una retta in (con ) e un punto . Vogliamo calcolare la proiezione ortogonale di su . Il punto deve essere in primo luogo un punto della retta e quindi della forma NQ $ &   S   D  deve essere ortogo ‘ D G!’ & , ossia ‘*1’“IG!’  @!’ “‘!’”,I@‘’ Siccome  $ & , ciò è equivalente a ‘  *  1 ’  D ‘ !’ • I@!’ inoltre il vettore nale a , cioè e quindi abbiamo la formula fondamentale D • ‘ I@ !’1 ’ Da essa otteniamo la proiezione con Equazione di una retta 2 6 e .08L1: 2 6 Siano 7/. ( K 9 $ & . Allora il vettore M='N. D :O!8 2 con %' è ortogonale alla retta QP R7 e un punto 7 appartiene alla retta se e solo se 2 7 D 7 è ortogonale ad M= . Sia M0S;.0TOIU D : e UV 8 ).( Allora (cioè TS 9 7 appartiene ad se e solo se l’equazione ed soddisfano TO. (WDX( 2 YU4. 9ZDX9 2 & che può essere scritta anche nella forma T ( YU 9 [T ( YU 9 2 $ & Siccome /.0U4 D T  , anche .0TOIU 2 $ & b Anche in questo caso i punti generati possono essere soggetti a traslazioni o rotazioni usando l’addizione tra numeri complessi e . la funzione §  Dalla derivazione si vede anche che e con esso sono univocamente determinati. La . distanza di dalla retta è uguale a Tutto ciò è valido in per ogni .   – 44. Octobrina montuosa e Octobrina voraginosa si distinguono apparentemente soprattutto nella parte centrale. È vero grande hanno un andamento che per simile? (  . D D H 2 .=¡ 2 45. Trovare l’equazione della retta che congiunge i punti e . 46. Trovare, con il metodo indicato su questa pagina, l’equazione della retta che congiunge i punti e . .‚¢B D H 2 =. ¢IH,& 2 ¡ ( H,& 9 #£ 47. Rappresentare la retta con equazione in forma parametrica. 48.   sia una retta in e un punto che appartiene a questa retta. Allora la proiezione ortogonale di su coincide con .   . 1¤ 2 /.‚¢ H 2 .€HK!¡ 2 X 49. Calcolare la proiezione ortogonale di sulla retta con . ¥ €. HK‘&1¡ 2 2 /.‚¢ IH .€HK!¤ 2 A 50. Calcolare in la proiezione ortogonale sulla retta con di . .‚¢B H 22 .€HK1¦ . 1¡ 2 52. Usare due hEnI‡ 51. Calcolare la proiezione ortogonale di sulla retta che congiunge i punti e . .   D   . Per rappresentare rette in R usiamo una funzione che genera i punti della retta tra e corrispondenti ai parametri : Corso di laurea in matematica S[‘ D  !’I R T ( YU 9 [\ con TO1UZX non entrambi uguali a & . Allo9  tali ra possiamo facilmente trovare ( che T ( OWU 9 ][\ e vediamo che l’equazione2 ( 9 descrive la retta 2 7 ^ con 7 P /. e #P /.0U4 D T . c nIb sentazione Quando è indicato solo una figura, il compito consiste nell’ottenere quella figura con un programma in R. È geometricamente chiaro e facile da dimostrare che se è un punto della retta (esercizio 48). Sia viceversa data un’equazione della forma _E` 4_ a cd b,begf^h i,jlk1blm n1jo=bqp _E` p _4aEr s _l`1t bEuo _4a,v _E`4rIw ‘ D !’  I@‘’ Quando  ’H (ciò si può sempre ottenere  sostituendo  con  ’ ), abbiamo la rappreS  30 Il sito CRAN di Ferrara Esempio: con e , equivalente alla rappresentazione parametrica 7@#7 A Numero 7 a.a. 2004/05 Definiamo in R una funzione per il calcolo del prodotto scalare di due punti del piano, x^— ‡n ˜nIb,bn^}4k e † eI‡ d ˜mˆ˜Ii d x‰™ i,j4blmˆ˜ d,†™ m e1jEnq| y k e † eI‡ d f‰h i4jlk1bEm nIj#o _ p=š r s cd o _ u ›4n1jEœBo0š r,rIw in cui abbiamo usato la relazione I7B!’žL7  ›4nIjEœ 53. La retta è dell’esercizio 30 e la funzione che in R corrisponde alla formazione del complesso coniugato, ottenendo cosı̀ la funzione per il calcolo della proiezione di un punto su una retta nel piano: 9  D H E( e 7 è D H + ¤M . z x^— n4m d _ m n1j d ˜m _ }!i †,† eg‡ d b,be _  t b,šL| — ‡n4‡ˆ o _ rIŸ p _y Op=š † r d s b4f ym k f^ † hIe i,‡ jld k1o bl_4mv n1_ j# e O  0 p š k,e eI‡ o=šqp=š r _  t bEu1š w Corso di Algoritmi e strutture di dati ¨©<ª Docente: Josef Eschgfäller          Corso di laurea in matematica        )Dfh&(Di grafica senza cancellare il contenuto precedente; riguarda la grandezza delle scritte con cui vengono indicati i valori dei livelli. (nell’originale ) è un singolo numero o un vettore di numeri che rappresenta l’insieme dei livelli che vogliamo disegnare; con (scelta presta) viene mostrabilita in to l’insieme degli zeri di , con gli insiemi , e . )%'()D)% anche noi perché il valore preimpostato per la visualizzazione sullo schermo risulta troppo grande per le immagini che otteniamo con ; per queste ultime sceglieremo quindi . Si noti che nella nostra funzione è definito attraverso l’espressione booleana ; per ottenere una figura senza scritte sulle curve di livello useremo . Nella funzione abbiamo posto l’argomento uguale a , perché in questo modo possiamo esguire più volte il comando (o ) sulla stessa n bdb#O"d%Oc bD"d%##(#o#prq.s e#" fg )#fh ()#b j Numero 8 )%'(#)#)%o#p $&%'()D)%  )%'()D)%o vt>pxw-,=>8@/20102?BAD+.31CFEDL#CGC 5C –— ˆ 7 “ ˆ : Š : Š Š  ˆ ‹ MW +.5X9>I+.;1Y2;62=.ICF62ED;,CF-,/7I#H101?FAD=.I:CFE#+CGCB5:01/.VO--,/1010,+C Žd• ˆ Š:Š:Š ‘ ŽD‹ M ‘ 91=1073,97=201=.I,/CP0.[2Y13 M>Q / M1M =7I,/C di ˜ righe ed ™ colonne; il coefY102I,H>\:H.[,97/701A2H.\<31L/10 SG]2M 3#^ M ? 9>M I<9>I<+>;2+.;,;1;,//1C _7L:VOCBH7Y1Y237`:V.a il valore nel punto ficiente D‘ š › è funzione P  ‡ . ‰ Œ  della di cui voIl significato dei parametri D#)#"#( › š disegnare i livelli. gliamo Questa e bOc ( b#b"( (della matita) è chiaro. matrice è il risultato di un coIl parametro b#"d%O#( riguarda i mando  ! (D"xt>irw>†rwRœ| . La funzione parametri e#" fgd)Dfh ()b e )#fh&(i è stata predisposta per es& $  %  '  ( D )  ) % della funzione originale, di cui il sere utilizzata in due modi: possiaprimo, se posto uguale a jDkDlm , mo o indicare la funzione œ (e alloimplica che sulle linee di livello ra !#(D" viene chiamato all’interno vengono indicati i valori che cor- di $&%'#()#)% ), oppure usare come parispondono a quei livelli, mentre rametro ' f#)D"d% una matrice gene)#fOh&(Di indica la grandezza del- rata con un !(" precedente; la sele scritte, di cui abbiamo bisogno b#O"d%#(Do#p   In questo numero Curve di livello di una funzione in due variabili non sono altro che gli insiemi della forma , dove è una costante. In particolare per si ottengono gli zeri di ; spesso però è interessante guardare come variano queste curve con il variare di e soprattutto in quel caso, cioè quando si disegnano le cur(con la notazione della ve def. 7.1) contemporaneamente per più valori di , in modo simile come in un atlante si disegnano curve di punti con la stessa altezza o con la stessa quantità di precipitazioni o con la stessa temperatura media ecc., si parla di curve di livello. In R a questo scopo si può usache, nella re la funzione versione più semplice, si usa come che creiamo nella funzione per la nostra libreria:    Anno accademico 2004/05 Curve di livello   33 34 ¡ ž ¥¢  ¦¨§© ž ¡ ž ¢¥ ¦ ¡ ž ¢¥ ¦ªŸ€ ž ¡ ž ¢¥ ¦¨§© ¡ ž ¢¥ ¦ªŸ€ Il foglio di Cartesio La chiocciola di Pascal La lemniscata Una curva trascendente Esercizi 54-58 «¨¬®­‚¯x¬±°³² ´¶µX· ¸ ´®¹º· ¸ » » ´½¼X· ¸D¾r¿À»O¾¨¼¥ÁG¸Â¿Ã»OÄ7ÁG¸’Å€»Äz¼X· e corrisponde alle due rette »ª¼@¸ ed »½¼¥¿Æ¸ . Otteniamo la figura su questa pagina che mostra le curve di livello della funzione definita da Ç ÁG¸ È>»OÄz¼X¸¾’¿Ã»O¾ con questo programma in R: ÉÃÊ,N.Ë2+ Q /.I7\<=10,+ Ì,01=H7;,M ;=73,M 9>9I:?PË1+ QÏ;#CBÏ,?RVÍ>Ê,Z N.Ë2H.+ I#Q /.?U\51M 5,͍Ñ1CÎэNÍ.SGV]CNSG],V Q ;25ÃÒ I<3 3¶H.M 5?B;<01CBH.Ï+7;,=>CU8Ô\<=DE1CB3101?FADLH.;,CFSUE?G62;#;,CG;#/.ICF-,?G;#H101CG;#=.I:CF5:+.37V -,H102=.I<+C 9>I<+>;1;-,010102/1=.I<02+02/7?G;#3+.3ÍÎCG;#I,M /7/1CF-,;2YY,H1Í:01+>C 51=.M I:59.I<+.? 37M+>-,;1/7;,ÓDH102/1?P31=.Ë1ICG\,Q E1/ 31M1LM =7SFI,Ö,/7VO32CFL<ÏV2C V Y2/7- SG=.515?ÎV Come sappiamo per ogni questa equazione rappresenta un’iperbole equilatera con asse uguale all’asse delle . Per invece abbiamo un’equazione dello stesso tipo con ed invertite, che quindi corrisponde a un’iperbole con asse uguale all’asse delle . Per infine l’equazione diventa × ¿ÆØÈØ1ÙÚ±× ¿ÆØÈRØ2Ù L’insieme dei punti su cui avviene l’analisi dei sudlivelli è dato dal quadrato diviso in ogni coordinata con una risoluzione di , come espresso dall’istruzione ·Û ·OÜ ;23 M /7ÓD?BË2ÏCBÏCU\-,/1010,+ due volte. Infatti la Usiamo la funzione prima volta disegniamo in nero e con le scritte tutti i livelli diversi da · , la seconda volta solo le due rette »ª¼Ôݒ¸ , in rosso e senza scritte. Nella prima istruzione i livelli scelti corrispondono a ´ßÞ®àO¿ÆØÈ1¿rÜÛ áÈ1¿r܍È1¿v·Û áÈ·Û áÈ.܍È.ÜÛ áOÈR؍â Nel programma questo insieme è definito come differenza insiemistica (pagina 33) M /7;2Y,+>515? M /7ÓD?PË1ÏCBÏCG\,E131LSFÖ,VOCFL KNM LPO M@Q RCS è il vettore che si ottiene sostituendo in , ogni valore vero con un valore di d e ogni valore falso con un valore di e , percorrendo (in maniera ciclica, quando necessario) i vettori d ee . 0(7U( 5 è effettivamente una funzione che può generare delle configurazioni piuttosto complicate e matematicamente interessanti. Assumiamo che vogliamo generare una successione della forma L ; con l’addizione modulo ; ciò significa che introduciamo per gli elementi di questo insieme un’operazione K definita da L 0(7U( *-,.fd .|eC1 5 !" In R a ciò corrisponde l’espressione % &'()+*-,.-/+.01 . % &'() può essere usata in molti modi, non solo per impostare la matrice dei valori per un comando 2 % 3'% &) o 45 6 (77 5 , ma ad esempio anche per creare la tabella di moltiplicazione per un’operazione binaria. Consideriamo l’insieme 8:9;=< >@?A sia un vettore di valori booleani o di oggetti convertibili a valori booleani, d e e due vettori qualsiasi, non necessariamente della stessa lunghezza di , . Allora ; ; dove T@Q RCS è il resto di T modulo 6. Per vedere tutti i risultati che otteniamo in questo modo definiamo la tabella di moltiplicazione (in questo caso la tabel; la delle somme modulo ) con le seguenti istruzioni in R: C M }C L~  ME LC€  M  LE‚  M ƒE LC„ MHE L   MH} Allora possiamo procedere come in questo esempio: ,Yig]ik dY *†i bb.-‡ˆ.]kbb.‡ˆ.flbb.‡ˆ1‰ 2 eY *‡ˆ.†iE.‡ˆ.]k1 2 &Y 0(7U(*-,``k.]d .|eC1 5 d'*|&.Š]‹3Š†1 2 con output i bbjiZkbbmk[lbbqi[i bbpkokbbjiZlbb[k U V%WXZY[0&3 ' % 3\*-,.]/1^*-,_/1 ``X  2 5 ,YU(a*-b+.]c1 'de(77dY% &'()+*-,.-,+.fUV%WX1 W V3d V(UE*'d e(77d1Y7 U '*-bgc .]bgc1 5 5 h) 3'+*'d e(77d1 5 con output bjiZkmlZnmc bobjiZkmlZnmc ioiok[l[n[cob kokmlonpcZbqi lol[nmc[bpiZk nonpcobjirk[l coc[bqiokolon Nello stesso modo possiamo definire un prodotto modulo 6, ponendo Lts M <> L M @Q RCS ; In R allora usiamo la funzione hV%WXZYo0&3 2 ' 5 % 3u*-,.]/1v*-,w/1 ``X al posto di UV%W . Otteniamo per questa operazione la tabella di moltiplicazione s^z > LtsNz K\]M sNz 8:9; s La tripla K{ è quindi un anello commutativo con unità. Se guardiamo bene la seconda tabella, vediamo però che D s F a b 100 NA 200 NA 300 NA 100 NA 200 NA 300 NA NA 1 NA 2 NA 1 NA 2 NA 1 NA 2 Secondo il programma, per un valore dispari nella colonna , viene scelto il valore da d , per un valore pari un valore da e . Traducendo questa idea in una realizzazione geometrica, otteniamo la collana nella figura. d e e possono anche consistere di valori singoli, come in con output Nel corso di Algebra si dimostra che 8x9; 8:9; s -Ky è un gruppo abeliano,  è un semigruppo commutativo con unità e che le due operazioni sono legate dalla legge distributiva KNM x 1 2 3 4 5 6 7 8 9 10 11 12 ,Y *]k .]c .fl .†i.]k.]l .-n.fŒ1 2 &Y 0(7U(*-,``k.HW U hd) C.fhd) 1 5 5 5 5 0%)u* 3[&C1 d'+* .Šf‹ 3† Š 1 6q5 2 6 b iZkmlZnmc j bobmb[bmbob[b ibjiZkmlZnmc kZbpkonmb[kon lZbplobplZbml nobmnmk[bonmk cZbpconplokpi L Infatti, siccome i vettori d e e vengono ripetuti ciclicamente, abbiamo questa situazione: >\A A benché D e F siano diversi da . Questo anello possiede perciò divisori di zero. hd) W U 5 W U 5 W U 5 hd) W U 5 hd) W U 5 5 hd) 5 hd) 5 hd) 5 5 hd) 5 h d)  5 5 0(7U( 5 (nella sua forma non vettoriale) è una funzione molto importante anche in informatica teorica e nella teoria dei circuiti digitali, dove appare nella descrizione di funzioni boo?A Ž  ?A leane (cioè funzioni BJ BJ ) mediante diagrammi binari di decisione. Invece di 0(7U( *-,.]d.|eC1 5 si scrive allora spesso ‘  L  MH’ . Questo operatore ternario esiste anche in C dove viene scritto nella forma ,q“od\gye . Nel seguente programma in R appare il termine &”–•— con cui si denota il • -esimo elemento del vettore & . A differenza dal C in R si inizia a contare da 1. ˜ lk™ 2 % 30 5š &)d› 5 % 3( œ  % U 'U ) h'*lk™ % 30 &)d› % 3(+–hU.†iX .†i -X1 2 5 2 5š 5 7d'%Y *]™i -k .†i k1‰thd)+*e YCH/(77%žE1 2 š Ÿ )d0 d *]7d'% .]7d'% . %)3 (Y1 52 2 52 'YU(a+*-b.]kw h .|e/Yb|bi1 5 () %Y %UE*'1 _i wU 3*'1 2 2¡C5 2 5 5 hd)+*]7žWYi. %7Yi1 2 7 3(U * () %1 5 2 2 ¡5 dY * ˜ ekkkkk.‡ˆ. ˜ d¢dlC.‡ˆ. 2 22 ˜  XŒXc ekC.‡ˆ1 ˜ ˜ eY *‡ˆ. bbelbb.‡ˆ.  ccXek01 2 Yi g]ik ‰y&Y 0(7U(* ``k.]d .|eC1 6 5 6 0%)u*-• 3 1Z£d70dY•w h X ‰ 5 6 5¤ h% 3'UE*](,h"*]d70dwi 1.h Yki. 5 5 2¡ e Y&”–•—. (,Yk1¥ š 2 W( %00+*†1 6 La funzione h% 5 3'U è stata discussa a pagina 22; per disegnare cerchi pieni colorati si può usare anche il comando h%7/ š %3 , come vedremo fra poco. NA In statistica accade molto spesso che serie di misurazioni contengano dati non validi o non disponibili. A questo corrisponde il valore ‡ˆ (un’abbreviazione per not available); l’abbiamo già incontrato a pagina 22. La funzione Ua)' che calcola la radice quadrata reale di un numero reale  non è definita per A §¦ , anche se nel campo complesso  Ž Ž Ž possiede le due radici ¨ © e ¨  © (ad Ž esempio le radici quadrate di F sono ¨ F© e Ž ¨ F© ); ciò è un caso speciale di quanto visto a pagina 25. Se è dato un vettore , di numeri reali, non necessariamente tutti positivi, di cui, se sono positivi, vogliamo calcolare le radici quadrate, possiamo usare 5 0(7U( per convertire tutti i valori negativi in ‡ˆ : ,Y *]™i.]k .-b+.]™l .]™n.]c1 2 , Y 0(7U( *-,ªYb.-,+.‡ˆ1  5 & YUa)'+*-,1  0%)u* 3[&1 d'* .Š]‹3Š†1 6p5 2 6 con output ‡ˆ i |ni nki n b i Œlkbci ‡ˆ k+klXbX« ALGORITMI E STRUTTURE DI DATI if ... else dimnames All’interno di una funzione o di un blocco tra parentesi graffe l’  di R viene usato nelle forme Nelle tabelle di moltiplicazione a pagina 32 abbiamo usato la funzione 6E !E . Essa è utile per la visualizzazione di tabelle; altrimenti nella riga dei titoli e nella colonna dei nomi delle righe apparirebbero solo gli indici. Infatti con      oppure              Quando il comando complessivamente occupa più righe e non si trova all’interno di un blocco o di una funzione, bisogna racchiuderlo tra parentesi graffe. Abbiamo usato la prima forma (un  senza  ) nella definizione della funzione    a pagina 31. In R il test per uguaglianza di oggetti dovrebbe avvenire mediante la funzione   ! . Gli operatori "" e #$" sono definiti in modo un po’ diverso da come uno se lo aspetterebbe, infatti vengono usati soprattutto per il confronto elemento per elemento di vettori come in con output 789 :;< =:>;< =:?789:>;< =:?789: gihkj‰lnm Questa curva è la cuspide o parabola di Neill: otteniamo l’output ^ ^ '&_ ')_ ^ '._B-4/42 ( ^ ,'._2222?- +,'._`/4[4\22 ^ !"E  ! F*%-4,'22223'&/4[*')/423' - ('4\22 %'$ ] "+  < 1 6E !E%)! "@%6a  ! !! @D&a' = a&b  c!Ra'6a  !a(' 1 %6a 5 de E VRa'6a6! d 222Ra 5  6X!  con output 1 6 5 de E V! d  222 < 1  ! !f! @D -4  / 42 b  c ! 2222 -    =  ! /4[ 4\22 !" %  &(')*')+,'.-*'/,')0  " %&('.23')4,'.-*'+,')0  1  "3)!""  5 63$( 1 33 !"E !F*%-4,'22223'&/4[*')/423' - ('4\22 %'$ ] "+  5  6X!  che diventa più leggibile se aggiungiamo i significati dei numeri: identical Numero 8 a.a. 2004/05 gihkj‰lnmfŠ‹lnh Purtroppo talvolta il software per la rappresentazione di curve può ingannare, e ciò non vale solo per R, ma anche per Maple, Mathematica ecc. In questo caso per esempio è chiaro che l’origine è una soluzione dell’equazione u(v WH*w H v eppure non appare nella figura (dovrebbe essere un punto rosso nell’origine). Quindi non ci si può fidare ciecamente dei disegni che si ottengono con questi programmi. Si noti che nella lista vengono prima indicati i nomi delle righe, poi quelli delle colonne. e gihkj?lnmoplqh !" %  &(')*')+,'.-*'/,')0  " %&('.23')4,'.-*'+,')0  1  "3)!@#A"  5 63$( 1 Con lo stesso programma che a pagina 31 abbiamo usato per disegnare le iperboli, sostituendo solo la riga riguardante la funzione con con output ;< =:?789:B789:>;<=:?789:>;<=: Infatti nello stesso modo vettoriale funzionano anche gli operatori per il confronto numerico: !" %  &(')*')+,'.-*'/,')0  " %&('.23')4,'.-*'+,')0  1  "3)!C  5 63$( f">R .F*'.r r srtF sF sFtF sF possiamo disegnare la famiglia di curve le cui equazioni hanno la forma u%v WH,wUxPH v xzy In questo caso la curva singolare, in rosso, è la curva 1 u(v WH*w{xPH v con output ;<=:?789:; <=:>; <=:B789:>; <=: Non siamo riusciti ad ottenere l’origine come punto della curva mediante il programma; dobbiamo quindi, appellandoci ai risultati della matematica, aggiungerlo a mano: DDD f"> .F*')r Œr sr tF sF sFF sF DDD 5 6%.2*'.23' 5 6Ž " 2*'F"2@DI4*'"(a& Ra DI3& ottenendo cosı̀ Operazioni insiemistiche R contiene alcune semplici, ma potenti funzioni insiemistiche: < *D.E 3.F*'  < @ '.N < 6  3 'INR <  3 'IN <  V !* 'IN ... ... ... ... ... GIHJKML KPOQ KPSQ KPTUQ GIKXWQYL Insiemi vengono rappresentati da vettori, astraendo dall’ordine degli elementi e da apparizioni molteplici dello stesso valore. Abbiamo usato la funzione   a pagina 31 per togliere il valore Z dall’insieme dei livelli da disegnare nella prima esecu zione di   . I livelli indicati sono i livelli della funzione |} | u%v† H,w W H v . Si vede che la as€$R~ ‚ ƒ„ sume valori positivi alla destra della curva singolare e valori negativi alla sua sinistra. Provare da soli, eventualmente ingran| dendo la figura, a scoprire il segno di GIHˆ‡ u L all’interno del nodo. In questo caso potrebbe anche trattarsi di un difetto della funzione    (o di 6  , se    usa 6 ) che non sembra in grado di disegnare un punto isolato. ALGORITMI E STRUTTURE DI DATI   La chiocciola di Pascal Anche la curva  la possiamo ottenere cambiando semplicemente la funzione nel nostro programma. Numero 8 a.a. 2004/05 La chiocciola di Pascal ha l’equazione ! "#%$&'()* 34 Il termine x4y{z converge velocemente a zero quando  diventa più grande; la figura esprime quindi fortemente la periodicità di seno e coseno. Se togliamo però questo termine, la curva diventa più regolare, ma forse meno bella: Il programma è stato leggermente modificato:     Vediamo ancora che una semplice modificazione dell’equazione implica un cambiamento sostanziale nella forma della curva. Alcune differenze scompaiono comunque se si considerano queste curve come curve definite sul campo dei numeri complessi. Come una retta complessa corrisponde a un piano reale, cosı̀ una curva complessa corrisponde a una superficie reale. Completate nel senso della geometria proiettiva le cubiche finora viste diventano superficie di Riemann, la cui teoria è ancora oggi un campo attivo della ricerca. + ,.-0/21430576.378  9:052;576=<>?10;A@2B?,.-0/21430576.378DCE145B4FHGCJIF(GCJI&K 803=;&:.L7M6@N/.ODCQPFN,ACJ,KRS873=;&:7T7M&6@N/0UFNU&KR 143=7673@N873=;:.LFN873.;&:.TF]67:=<.^4>767_.M.`4K L0M&5._.a@]/.ODCJPF],ACJ,FWVT7M7ODCWO4G7K T0M&5._.a@]/7UFNUFJV&T7M7ODCJOG7K ZM Z.b7^Y62;>.:2^c@QLFQTK d b&M7LYe?U7f7TYe?U7/0U0g=LRbe2U7/.LYe?U0/.TYe?U7h i 3787:=<>.M0:2b0;&_. i _7878&>@QLFQTAF i 3787:.<>=M i 3087:=<>F(5762<>2;0;&_.M7ODCQkF 80> i _08780>=M&57_=;0l&>2Z0ZA@]5._.aA@N/7UFNUFWV&T7M7OmCJk&KFQO4K7K j> i _7878&>@QLFQTAF i 3787:.<>=M i 3087:=<>F(5?1_05757:=<&_.M0UF 6.:787:.<&_.MYB(<_.lYB4F]5062<>2;7;_.M7OK l&_ i CJ:=Z0ZA@(K Esercizi per gli scritti 54. Tabella di addizione e di moltiplicazio|7$ . Ci sono divisori di zero in ne !W}~ modulo |7$oJo=€' ? 55. Tabella di addizione e di moltiplicazione  . Ci sono divisori di zero in !W}~ modulo oJ‚o2€' ? 2> Z&_78057_ per ottenere l’output G U,ƒ3„kIƒP V%[G2OG7G 6 56. Usare 57. La lemniscata La lemniscata di Bernoulli è una curva ad otto con equazione ! "0'H) Nelle applicazioni, ad esempio in statistica, ancora più importanti sono però proprio le forme reali, la cui classificazione è molto difficile. Il foglio di Cartesio Sono indicate le prime 4 lettere di ogni riga del programma: 873.;&: \ <3=Z ;0M5._ 1:080> 80>2^_ ;0M5._†@]g&K 1:080> 1:&>?^ 87:&6.3 l0_ i C Una curva trascendente Questa curva ha l’equazione Consideriamo la funzione  n ! poH'qr(s tu#v.w&r"*xy{z La riga (*) serve per non ridisegnare il primo dei cerchi piccoli. Come si fa? 58. Corso di laurea in matematica ‡ Corso di Algoritmi e strutture di dati ˆ‰‹Š Docente: Josef Eschgfäller          Corso di laurea in matematica La funzione polygon      Numero 9 In questo numero      !"#  Anno accademico 2004/05 La funzione è molto simile a ; anch’essa unisce una successione di punti, chiudendola però, mentre per ottenere un poligono chiuso con dobbiamo aggiungere il punto di partenza alla successione. permette inoltre di colorare l’interno del poligono (oppure di tratteggiarlo in vari modi). Useremo soprattutto questa possibilità per disegnare poligoni colorati, e quindi anche rettangoli, cerchi ed ellissi (che otteniamo scegliendo successioni di punti molto ravvicinati). Come anche permette l’uso di linee interrotte impostando il parametro ; vedere . I parametri per definire i colori sono per il bordo e per il colore di riempimento.    $#% # &  35 36 37 38 La funzione polygon Il file Figure Tratteggi Riflessione in un punto Riflessione in una retta Perturbazione dei coefficienti Una modifica in Postscript I cammini delle radici Il teorema di Rouché Continuità delle radici Creazione di matrici Parallele Come nasce una forma Esercizi 59-66 Tratteggi ,G .?@8-,+?:,Q ;?@)A,(*. 31 7*(/Q*A)7?@ ;?@)A,(,. =/7,‡8( ˆ ‰ Per tratteggiare l’interno di un poligono dobbiae di . mo usare i parametri Una densità maggiore corrisponde a un numero maggiore di linee; imposta l’angolo di inclinazione ed è inizialmente uguale a . Nel divenpoligono tratteggiato il parametro ta il colore delle linee di tratteggio. Per tratteggi multipli o per colorare allo stesso tempo l’interno del poligono si possono impiegare più sullo stesso insieme di punti. istruzioni 187*(/Q*A,75@ Il file Figure ')(*(,+,-*-/. 0213.54/687*(*. 9).5:,:); Abbiamo visto, quando abbiamo definito le funzioni , e (pagine 29-30), che in un approccio matematico alla grafica una strategia molto efficiente e versatile è quella di creare le figure di base come insiemi di punti e di separare da esse le operazioni di disegno. Useremo da ora in avanti questo modo di procedere, eliminando quindi le funzioni e definite a pagina 22 dalla nostra libreria; inseriremo le figure di base in un file Figure della libreria. Definiamo adesso due funzioni per la creazione di rettangoli e di poligoni, funzioni che riassumono semplicemente alcune costruzioni già viste. 9).5:*:3;?@)A,7*()+ <,.543=?>8+ BBLK=CD68-*+E@FD6)G,.,-FH;/G,.,-FH;,-*+E@IJG3+ B .M@M;*4)(5:).5:,.*:)O*O,;?@);NA,G*7,Q(*K7NR G)+N(,;54,A5>3.*O*O,;NG*P 9)./:*;*:)G,.,;?@)-5S/A)X*7*Y)(*Z*7LZ SUF[T;)-*@8+E@)=?:3S/X*+*Y)7?@VZ*Z CWF G*PFWG*Q F _ +563T`G,.,C3-5abS/+*X*-Y)Rc@Z*KZ (*F\( 6CH-*;,+E-*@)+E@S/X*I*Y)I Z*_Z ;/F]G,.)=*.?-5@,S,:*;,4)-*7*+?@)S*^3d*G*I P e 68+?TV-,+E@)C3S,ab;,+*--,+ERl@@3Kf)(*g/(+,h5CmG*;/G,Q .,ei-,6)I,G,I .)_-5S5;,68-*-*+E@3+?@)S,d*;/G*G,P,.,jk-*f/.*G*(,P -/e . 68+?TV-,+E@)C3S,ab;,+*--,+ERl@@3Kf)(*g/(+,h5Cb68G*Q-*+Eei@6)I,G,I .)_-5S5;,68-*-*+E@3+?@)S568d*G*-*P,+E@3jkd3.*g/(,+*-/h5.G,Q e ;/+?TVG).,-5C3S,ab;,+*--,+ERl@@)Kd*G*(*P(Cben6)6)G,G,.,.,-,-5I,S/I 68_-*68+E@)-*d,+E@3G*S5P,6)jNG,.*.,(,-*-*f/.G*P e ;,_ ;)-,+E-*@)+E@)S568S/93-,.+E@)Cmd3=/.?g/@)+,:*h54)G*Q7)I5eof ;/G,.)-5S,;,-*+?@)d*G*P,jk.*(,-/. ;68/G)-,G,.,+E@)P,-5p*S,S,q/;,;,d3-,-,g*+E+E@)@3+*d*f)hG*g/CrP+,02sh5e G*CmQ=/.?ei@,6):,G,4).)7)-5I?S5d*68G,-*Q,+?p*@)q)d*IG*e P,j =Cb68-*+E@Fb6)G,.,-Fm;/G,.,-Fm;,-*+E@I/j In questa funzione i parametri G*P e G*Q indicano la larghezza e l’altezza del rettan- golo; si può inoltre impostare, a scelta, il centro, il punto in alto a destra o a sinistra, il punto in basso a destra o a sinistra. Il risultato della funzione è il vettore che consiste dei quattro vertici del rettangolo nell’ordine dato dall’ultima riga del listato. Fare un disegno e verificare l’algoritmo. Abbiamo usato la condizione al posto di utilizzato a pagina 31. Più semplice è la funzione per i poligoni: K +5G,.?@):3+*=/;*( CWP FbX/Y3Z*Z3I +*- Rc@ (*(CWP8I BUB t ./4*:3+*=*+NG)+ K @M@3f/A,7?@87L4)./A,7,(*;54). u_ 7*G)(,+L+/A,4)7?@3;/A*7NA)SU+*7LT K4@8R =?:8+/7?@VCD@Fb48I <,:,.543S)-*=?>8./v+/7CW^ Cb:Fmq,Fb48hE18I5j+Fm(*.?@)A/:*>)S5@)d3g,I dove abbiamo introdotto la funzione <,_ ').543(*()=?>8+*-*+/7N-/.SkCW:T FbK4@8Fb4=?:8I5j+/7?@`Cb:FW48I Otteniamo la figura in alto con u 7,-?:8-*=?43+E1):CEwEx*y,f?137*(,+/A,7?@8+ Rl18-3w8Frg5^ FWz3I 13|(*4);5;5:)4;5T87*Cb6)P*+*S)A*=/S;=wCWCH^B(,G*;5Fr:)G/g?T*^37/T)PIx,e{Fmx8(*(,;5w5;5:)I :)7/7/QQ*FmS3=/=754/CW^@+*FWz8=/I./S/e }I 413,=/S/.?7*@,9)(/:,Q,./:*4)A,:)7?7/@S,;?@)qCb4A)RW7*y/Fmd,(*=/77*q,(/+CHS;*e G,w?.,=/75-54)S);,=*.?(8@,w5:*I 4)7 FHqFrgRWy)I 134,4,S/S/7*9)9)(/Q,././:*:*A,:):)7?@;?;?@)@)Cb4A)A)7*7*Fm(*(*=/777*(/CDCH63S;)G,-*wE.,75+E@)4)-5S)S);?@3=*=*A,.?.?@,@,.8:*:*w54)4)I 77 FHFHqqFrFrggRWRWy)y)II 134,S/7*9)(/Q,./:*A,:)7?@;?@)Cb4A)7*Fm(*=/77*(/CD6S-*wr:+EK@)4,S)v=*K.?@,7,:*+*4)-/7.w5FHqI FrgRWy)I 134,S/7*9)(/Q,./:*A,:)7?@;?@)Cb4A)7*Fm(*=/77*(/CmS=*.?w @,B 63:*4);*7*y,S)y/G,=/.?x8@,w5:,I 4)7FHqF2gRby)I 13=/7*.?@,(/:,Q,4)A,7?7/@S,~Cb4RWy/Fmd,=/7*q,(/+Se{w *B S3=5G,gy)eo=/4,y,S8=3gw5IRbye[;,(5T);/S*^e =/7*(*w?7/-,43+/.?+5@*S)@3=;C?w?w8=5FEQ,wr4);?@.*Gw8w5FEIw2Q,.,(*(*75€wFEw2A/4).,.?@w8F _ u 13T)757*4`(/(5€)Q,A,G*Cb@S,7?@q+EFmCb@93=*7*75:‚(/S)CDƒb1y)=/7,I Fm(*;*75(51)43T)S;)+ I5„W7*d)/()3I=/+5.?A,@,7?:,@34)77CDF @Fb48Ie 4,G,S/.54)†f*RW^75T*RbTxe[CrI *S,/d3ge];*(5T);/S);*(5T);/d)y/^,j Otteniamo la figura con u 7)-?:3-*=?48+E1,:CEw?x*y*f5:*43;5:*:)./A,A)+ Rc18-8w8FHyFHy3I |(*43;/:);5T37/S)+*==/; CH^ CH(*FHy);5:)I7 eoFH13(*;5;54:)7 CD63FmA*=/S754/wr:)@;5+*@=/./w5S/I}e I ;?68(,+E@3.Cb>)S,qRby3I 134,4,S*S*7,9)4,(/Q*d,.5:*A,q:)7?Rb@;5y @)Cbe\4A,137*FWG,7*(*(/7.5@8Q,CHA,;,-*7?-*+?@:,+E@3Q,Cb4S*S3^g?FWG,^3Rb.?q/I @8d,z-,+?Rb:,Š,Q*+S3Fmqg/~RHgFH;?FW@)^A)Rb(*Š)./I S*^3I 13134,S*7,7,9)(/(/Q*Q*.5:*A,A,:)7?7?@@;5@)CbCb44A,7*FmFWG,(*=/77,.5@8(/CD68S-*-*+?wr:,4)+E@3Q,.*S*GS3^g5w5qI Rbq/FHd);5@)qA,Rb‹,(*./+S)FHzx/^3Rb~I Frg,I :,./S3S*')-/(*./v(,+*CW^-,-/FH.q,hECb18:+FmqFD6)RbQ*xS*FW^^RbRD^3~)I?g*d,I qRby/d3gRW‹,+e 13137,7,(/(/Q*Q*A,A,7?7?@@CHCH..FmFWG,=/7,.5@8(/S-*+?w2:,A/43Q,S3.*.?g5@qw5FH;5I @)A,(*./S)x/^3I 137,(/Q*A,7?@CH.FWG,.5@8-*+?:,Q,S3g5qFH;5@)A,(*./S8g5y/^3I 13134,S*7,7,9)(/(/Q*Q*.5:*A,A,:)7?7?@@;5@)CbCb44A,7*FmFWG,(*=/77,.5@8(/CD68S-*-*+?w2:,Q,+E@3Q,.,S*S,(*^(*q/^75Rb€q/FHd,;5w/@)^I A,Rbq,(*./+S,FHz^ FmRb~=/7*FW^(*SRb‹)wr4)I ./Gw5I 13G,7,./†(/Q*RbA,75T*7?@TCbCr4I FWG,.5@8-*+?:,Q,S,q/^ FH;5@)A,(*./S)‚/^ Fm=/7,(/Swr4).*Gw5I ALGORITMI E STRUTTURE DI DATI Numero 9 a.a. 2004/05 p tsEe4ijlku-sEeQlkuvtsEew xEu!sEe?  ##'(")#  !"#$&%"@ -))@A%BC!)D,  #- ? -))@&.!("/)#!-"102%432%?B43ED6 7 '(")02%F3 >? 02%432%BF3ED66-; Perturbazione dei coefficienti '!R ? -) già a Abbiamo usato la funzione pagina 25. Il suo unico argomento è il vettore dei coefficienti (reali o complessi) di un polinomio, elencati iniziando con il coefficiente costante. Se i coefficienti delle potenze più alte sono uguali a zero, vengono scartate. Il risultato è un vettore che rappresenta le radici complesse del polinomio con le loro molteplicità. Abbiamo anche usato la funzione per arrotondare i numeri che otteniamo. Siccome il risultato di è un vettore di numeri complessi, è facile rappresentare le radici di un polinomio con i nostri strumenti; possiamo ad esempio disegnare un piccolo cerchio in ogni radice. Vogliamo adesso studiare il comportamento delle radici quando i coefficienti del polinomio vengono modificati. ? ("$ Consideriamo il polinomio d 1efghe4ijlk Otteniamo le sue radici, se sul terminale di R battiamo con output BZ, 8 I!CBZ,E]mnBZ, 8 I:!BZ,E]m:#X,5o]!CB\,5BB Possiamo utilizzare questa funzione anche a un insieme di punti, cioè a una figura, ad esempio ai punti di un cerchio o di un poligono: > M4)#N3 IF/ ,E?M6G')F0GHIJ:'#-K" ? !F,L'#H3 @!)!O./02B43NM6PQ@-)!R./02B43SIF,EM6 '#@ ? 05TK.HUR-DH-6 V @-#/!@40N@-)O43N@-)#!R43S/! "/!.!W6 D?.I!C#X,EIPY%B.BZ,E[!CB\,2]P ? ).#!!^40N: 8 3NI35T#R.B\,5BX6 ?)..#!-!)^4)02BF@40E3 )F89 32'%BF3235T%BRC!.D_BZ6,5B#PYX6 G"#0 ? 6 !.` /Ga_!0E)F3NB\, 8 M6-C#X,E[MC#X,EJ 8  '#!R?K"Z0N3S/!!._H ? $_H-6  .!# -))@40N32%BF3ED6 '#?!RK"Z? 0N ? 3S/!._H ? !$_H-6 '. > -K"#0NM432B\,E]6-CI!C 8 ,2[ '#!RK"Z05'\3S/!!._HG ? @"KH!6 ' ? .!# ? -))@405'\32%BF3ED6 '#!RK"Z05' ? 3S/!._HG ? @"K_H-6 $!bZ,E-\0c6 Otteniamo l’immagine in alto nella colonna accanto. d 1e{|z}e f q~#e i z}eY} tsEew u i sEe€x2u-sEeQqx2u Consideriamo prima il polinomio z z’ >@-))#!O./ ?/G0N': )\8 0G,EMHGI3 8J:-,2'#M6!PQR ? @-)#-)!R8 .,L'/#0S:HX3NM4,EM3NI3UX6 ,EM6 '#@ ? 05T#K._HUR-DH!6 V ? @-#/!@0N@!)!O43N@-)!R43c/! ? "/!!.!W6 @T#G"05a.BF3Eb.B#6P ).!!^F02B43 89 '35TR.B\,5B#X6 '#!RK"\02` ? /Ga!40E)F3cX66 ./0cX32B43cX3UX6 !R ? -)F0E6 ?@!$.-'0N%z ?'#")#G" 02%F? 35'@!$#/Ga6 . 8 X35TK._H !$H-6 ? K./0cX3cX3cX3UX6 @? !$.-'!R ? -)F02K#6  ? 0N%zG" ? @!$#6 '#")#02%F35'/Ga. 8 X35TK._HUK ? "H-6 $-bZ,E!F0c6 '#!R ? -) ./0cX3NB43cX3cX6 ? @!($".-'#$40 !R@!?$43 !)8 F6 0E6 ? ? m La figura è stata ottenuta con Ciò significa che la terza radice è reale, mentre le altre due sono l’una la coniugata complessa dell’altra. Nella rappresentazione grafica otteniamo Esso possiede una radice doppia, che quindi nella rappresentazione grafica corrisponderà a un unico cerchietto rosso nel punto . Se poi modifichiamo il coefficiente di con , otteniamo il polinomio e s ‚Uƒ u „~ p 1e { }#e4fgh~e4i ~eQ} d che, come si vede dalla figura, ha due radici molto vicine alle radici semplici di e due radici che in un certo senso provengono dalla radice doppia di anche se sono visibilmente distanti da essa. d Consideriamo adesso il polinomio p 1e4fjqe4ijqeQlk in cui appare anche e ; infatti p  d qe p Se calcoliamo nello stesso modo le radici di , otteniamo la risposta BC#X!:#XCBrB:X! Infatti Una modifica in Postscript > )#/ ? G') Da questo numero abbiamo modificato la funzione , dividendo i parametri che indicano larghezza e altezza per 2.54. Ciò ci permette di misurare le figure su carta direttamente in centimetri. !("_/)#!" 0E#!43N@ KF3N@-)6 >7 '#)#)/?/ G'G')z)F. 0E#!3ED#-$)!a.@ ? K† 8 ,2? M!o43 ? a#!K-a).@-)† 8 ,2M!o43 a# ? -%")#@!.!‡ˆ‰Š-‹F3 "#!#!!.‡ˆ‰Š-‹\3 '#@'# ? ._HG'#/!@H!6-; ALGORITMI E STRUTTURE DI DATI Numero 9 a.a. 2004/05 I cammini delle radici Il teorema di Rouché Consideriamo il polinomio Teorema 37.1. ed siano due polinomi a coefficienti complessi e una circonferenza (cioè il bordo di un cerchio) nel piano tale che        ! "#"$ %& '("$   )*+ ,-/.10 il polinomio 32&45 7) 6 2 con 6 2&8  !  % 9  9;:<=;< ,> ?  ) 2 Stavolta le radici di 6 le disegniamo usando in @ACBED=FG il simbolo @$HEIJCK/L con un H/M/N3JCLPORQ : S A=GTFG3HTU$BE@CFVEWTX3Y3Z1[3F\O]@$GW$^7_^RKO _` a3b F=A/N3J=HVRZ3X^RX`c a3b F=A3d3J=HVRZQ^RK=` @i b Ub Vfe=g3Jb WdCa3Mb a3a A1ha3W1b` U [B3H V F=A3N;^ FA/d;^7H/A/U/D$B3H/M3J/j$` [CJb3nHV L;^ La ^ L;^ L;^7k3Z/l=B^7Z/l3m3l=B^RZ3K3Z=Q3B^Q3` U J1@A d/U=A3A1FPb/n V [$` [=A/UV o BTDpU ` n r J@$G/ACM/s;BEDCV FLG^QV o;^fe=^f@$dCHTJ3I=LPJCOfLK=QQC`^ e=g3JqWUM W1` [=t A/UV FBTD r ` [CFCJ/[Cm/F$u3HVRZ1FP^ LPO _^7K^Q^Q3B^Q^RZQ/B^ L` U b3n J1@A a d/U=A3A1FPb/n V [3F$` [=A/UV o BTDpU ` n M/@$xvACO A1BEDC[3F[PGV` V o;^f@$HTI=JCK/L;^H/M/N3J3LvORQ3`1w e per ogni Otteniamo 6 z Continuità delle radici { | 6  }$ |~| z  }$ | per ogni } *€{ . La disuguaglianza è quindi richiesta solo sul bordo del cerchio, non al suo interno. Allora i polinomi e possiedono all’interno del cerchio lo stesso numero di radici, se queste vengono contate con le loro molteplicità. 6 6  z Dimostrazione. Questo è un teorema molto importante dell’analisi complessa. Non confondere con . {  Il teorema di Rouché si usa nel modo seguente. Assumiamo che vogliamo studiare gli zeri di un polinomio . Allora decomponiamo nella forma , dove è un polinomio sui cui zeri, almeno all’interno di un cerchio, abbiamo sufficienti informazioni. Consideriamo in altre parole come perturbazione di mediante . Se riusciamo a dimostrare che sul bordo del cerchio si ha sempre , allora possiamo concludere che e all’interno del cerchio possiedono lo stesso numero di radici, tenuto conto della loro molteplicità. Quindi se nel cerchio possiede una sola radice tripla, non possiamo dire che anche possiede una radice tripla, possiamo però dire che nel cerchio possiede esattamente tre radici se queste vengono contate con le loro molteplicità. y 6  z 6 6 z | 6  }$ |‚~ƒ| z  }$ | 6 6 Il teorema di Rouché permette una veloce dimostrazione del teorema fondamentale dell’algebra (teorema 25.1); naturalmente dovremmo prima, in un corso di analisi complessa, dimostrare il teorema di Rouché. Sia quindi dato un polinomio Questi grafici possono anche ingannare; in questo caso ogni ramo si accresce solo in una direzione dalla radice di partenza; se avremo invece usiamo l’intervallo due (mezzi) rami per ogni nuova radice come nel seguente esempio in cui, con le stesse notazioni, + .$-1./0 y : 4„qv †„qv‡‰ˆ1 P‡‰ˆ   Š3Š3ŠC„q‹ „ 4Œ , e non a coefficienti complessi, con costante, cioè con  Ž. . Per applicare il teorema di Rouché consideriamo come perturbazione di 6  4„  v‡‰ˆ z 4„qP‡‰ˆ3 Š3ŠCŠC„q‹ } *‘ si ha | 6  } |  | „ |]| } | Per ogni | } | sufficiene si vede facilmente che per temente grande questa  -esima potenza domina | largamente le potenze inferiori e  }$ | , per quanto quindi z grandi siano i coefficienti di queste potenze inferiori ris„  di . petto al coefficiente ~ , tale Perciò esiste certamente un ’ } che per ogni che appartiene alla| circon}| ’ ) ferenza tale che |  di} raggio |~“| z  }$’  | (cioè . si ha 6 mediante e 6 2& ,> ?   9  . In questo esempio si vede particolarmente bene un fenomeno già osservato nell’ultima figura a pagina 36: Sembra che le nuove radici non partano direttamente dalla radice tripla, ma a una certa distanza da essa, continuando poi su un cammino più continuo. Infatti tipicamente le radici multiple risentono più fortemente di una perturbazione dei coefficienti del polinomio di quanto accada per le radici semplici. Il teorema di Rouché implica allora che , il nostro polinomio dato, all’interno del cerchio possiede lo stesso numero in quedi radici come . Ma di sto cerchio possiede la radice molteplicità . E quindi anche possiede all’interno dello stesso cerchio radici e quindi almeno una radice perché per ipotesi . | } ;| ” ’   Ž—. 6 37 6 •„  }– ,  z | z | ˜R™1šR› › Definizione 37.2. Per un polinomio a coefficienti complessi sia il massimo dei valori assoluti dei suoi coefficienti. z Osservazione 37.3. sia un polinomio a coefficienti complessi di grado . Allora œ | z  }$ | œ | z | ˜R™1šR› ›  ‹ | } | ž žCŸ } per ogni *  . Osservazione 37.4. Siano Allora } -1¡4*9 e ¢*9£ . | } | ž œ  | } ¡ |  | ¡ |  ž | | Assumiamo sapere che ¡ œ†¤ . Allora, se | } ¡ | ¥ , disi ha | } | ž œ  ¥ ¤  ž } Corollario 37.5. Siano -1¡| *¦|  e ¢y*¦£ . Assumiamo di sapere che ¡ œ†¤ . complessi di z sia un polinomio a| }coefficienti ¡ | ¥ , si ha grado œ† . Allora, se | z  }$ | œ | z | ˜R™1šR› ›  ‹  ¥& ¤  ž žCŸ   Teorema 6 „ ‹ †„ ˆ Š3Š3ŠC†„  „q  Œ , 37.6. con ed †Ž. sia un polinomio con coˆ efficienti complessi. ¡ -3>3>3>3-1¡¨§ siano le radici ˆ distinte di 6 ; esse possiedano le molteplicit © -3>C>3>3- © § . Possiamo allora scegliere ¥ ~ à,  .$-3>C>3>3-T« , ¡¨¬ sia in modo tale che, per ogni ª | }‰ ¡ ¬ |” ¥ l’unica radice di 6 nel disco aperto e| inoltre| 6 non si annulli sulla circonferenza }5 ¡ ¬ ¥ e quindi nemmeno sull’unione ­ di queste circonferenze. Se vogliamo, possiamo ¥ scegliere anche molto piccolo. ¥ Fissato in tal modo , per un teorema elementare e fondamentale sulle funzioni continue definite su un insieme compatto (nel nostro caso ), esiste un numero tale che ® ~ , ­ | 6  }$ | Ž® } per ogni *€­ . Sia inoltre —  ± ¯ ¤4 °C²P | ¡ ˆ | -C>3>3>3- | ¡ § |  il massimo dei valori assoluti delle radici e sia ® ³   ‹  ¥< ¤  ž ž=Ÿ Allora per ogni polinomio | z | ˜R™1šR› › ” ³ z di grado  6  z © ¬ v¡ ¬ v| ” ¥ œ— con il polinomio possiede per ciascun esattamente radici all’interno del cerchio , se queste vengono contate con le loro molteplicità, possiede cioè lo stesso numero di radici in questo cerchio come . ª | }´ 6 Dimostrazione. Abbiamo preparato quasi tutto per poter applicare il teorema di Rouché. Fissiamo . Sia . Dobbiamo dimostrare che . ¥ ª |  } || }”| ¡  ¬ }$|  “ | z 6 Ma per il corollario 37.5 abbbiamo | z  }$ | œ | z | ˜R™1šR› › µ  ¥& žCŸ ‹ µ ” ®  ‹  ¥ ¤  ž ž=Ÿ ž=Ÿ  ®(œ | 6  }$ | ž ¤  ‹  ¥ ¤  ž ALGORITMI E STRUTTURE DI DATI Numero 9 a.a. 2004/05 38 Creazione di matrici Come nasce una forma Esercizi per gli scritti Matrici possono essere definite con il co  che abbiamo già incontrato mando  a pagina 33. I componenti di una matrice possono essere numeri reali o complessi, stringhe oppure avere il valore .     ha come argomento obbligatorio un vettore di dati; inoltre si possono indi  il numero delle righe o con care con   il numero delle righe. La matrice viene riempita colonna per colonna, se non si in  . Se  è una matrice, con  si dica  ottiene il vettore dei suoi elementi, elencati colonna per colonna. Esempi: La natura è molto efficiente a creare una straordinaria varietà di forme con elementi semplicissimi. La ricchezza non sta quindi negli ingredienti, ma nella fantasia delle combinazioni. Uno degli strumenti più efficaci è la ripetizione associata a piccole modifiche negli elementi.   D  D genera un insieLa funzione F  me di punti che possiamo sottoporre a traslazioni, rotazioni o altre operazioni geome  triche e disegnare con DE , come si vede nell’esercizio 65 e nelle seguenti figure: 59. 2              % * # + ( , 4!5#6%7'6(8*5+8,5/.98! e invece, con gli stessi dati,  E  E   2  /GY#+] 2     "^ 2 EGR&%$&%  ]!"! 3 2   V K G  /G    H " "        )    D   2  F    D  D$-"^V'" - ( S.L^V! H   H   9EDP$&.0#(.$V  !. N     2  H \  D H E"H V`    D a[^ - F _         1   #"1      2     3 2    )  con output  ' ! ,:/. ( z’ Non è difficile, è sufficiente scrivere b esplicitamente con i suoi coefficienti. /.    ! ' m 60. b sia un polinomio a coefficienti reali ed cedgf tale che bih ckj @ml . Allora anche bih cij @gl . !"#$&%$'")("*"+$,"-/.0- -!     1   # 3 2 ) con output (senza le dimensioni) ! z # % * +  ; ! Dall’enunciato di questo esercizio deriva facilmente (ma non fa parte del compito) che le radici non reali di un polinomio a coefficienti reali appaiono sempre a coppie coniugate e che un polinomio a coefficienti reali di gradi dispari possiede sempre una radice reale. 61. Le radici del polinomio bn@ehV>porq j hV>poUs j non sono coniugate tra di loro. Perché non è una contraddizione all’esercizio precedente? 62. Spiegazione a pagina 37. Quanto è semplice! 4'5,8!5(5/.5#5*5<%5+7! Impareremo nel prossimo numero le funzioni di R per l’algebra lineare, in particolare come risolvere un sistema lineare =?>A@CB ; adesso le useremo per un po’ di grafica. 63. t sia un polinomio a coefficienti complessi di grado uwv . Allora Parallele x   L’istruzione D E 2  unisce i punti di un vettore di numeri complessi 2 con segmenti di rette. Se però incontra un valore , interrompe il tracciato e lo riprende con il prossimo valore definito. Usiamo questa caratteristica per creare schemi di rette parallele.   D  D che adesso defiLa funzione F  niamo ha come argomento la larghezza e l’altezza dello schema e il numero di righe     vieparallele; l’argomento opzionale   ne messo uguale a se vogliamo anche disegnare i bordi superiore e inferiore oppure  uguale ad G EG o G G se vogliamo solo visualizzare il bordo superiore o inferiore. Il risultato della funzione è un vettore di numeri complessi interrotto da valori .    D  D 6HI   J   K    1L     M    K  KQ  O E DP0&.$   D R  /S T    3U  D 2 V $VR O O        #"1        1 .$3W E  )"    T   !" 13 1  D E     K  3X  DE     K S  E  L3   /HD/   1   Y G/ E GZ  2 E  L D E  ED  D/  1 YG G " 2 1E L1 D E  ED /H V       " 2  E  L D EV 01E  [1 D E D ED 2\ F NO O ! 2   E   /H D  D  Corso di laurea in matematica ‰ 2  F     H   H N   D E"V` D  D$#0^1%$"^V!"# ( ]"^&*].L^V(     9ED P$ &.0#(.$V  #(  2  H   \ Lo schema è stato centrato. x tihVy j u x x z{ |} }€ ~ x x  t  ‚kƒ y per ogni y d4f . È quindi richiesta la dimostrazione dell’osservazione 37.2 (molto facile).    D D nella 64. Spiegare la funzione F  prima colonna su questa pagina. Ciò significa che nel compito può essere dato il listato della funzione e bisogna spiegare, anche e soprattutto con appositi disegni, il significato delle singole istruzioni. 65. Prendere le misure con la riga. 2  F     H   H N   D E"V` D  D$#0^1%$ !.]"^V* ].L^V'     9ED P$ &.0#(.$V !%  2  H   \ Corso di Algoritmi e strutture di dati 66. Riflessione del punto h1„/† j nella retta che congiunge i punti h)qY‡ j e hq ‡Yˆ j . Šg‹Œ Docente: Josef Eschgfäller          Corso di laurea in matematica Matrici in R  " Possiamo naturalmente anche formare la somma di due matrici della stessa forma e moltiplicare una matrice con un numero reale o complesso: 8 #  $&% ' $)( * ,+  # $&% '-* % '.#/% ' i coefficienti 0 % ' del prodotto matri# da ciale 01( * 02% '3*5476  % 6 # 6 ' . ,9 87> #;:<% '=*  : %' * > 9  % ' % ' =# % ' In R le operazioni matriciali corrispondono ai seguenti comandi: ?A@B ... addizione C ? ... moltiplicazione di una matrice con un numero ? C B ...... prodotto Hadamard ?AD C DB ... prodotto dimatriciale ?FE.G ... non 3H , ma I+J ! 3N di A LO K ?M ... trasposta L ? W V F B M QPARRTSAQPULK ...  N #  #  Sembra che possiamo senza problema usare per numeri anche in uno stesso contesto, non dobbiamo comunque ridefinire come funzione se vogliamo usare anche la trasposta. è anche definito quando e hanno la stessa lunghezza ( ) totale, ma l’operazione non ha molto senso se le due matrici non hanno la stessa forma.  ?CB ? B XZY[A\ZZ] ?AD C D^ Definiamo prima una nostra funzione per la creazione di una matrice: _a`cber7sdg`bac>P? che non sia primo. Allora esiste AdDeX con Uf>gA^>gh ? tale che AHG a . In altre parole, se sappiamo che ae>g? , per verificare che a sia primo, dobbiamo solo dimostrare che a non possiede divisori tra U e h ? . Nota 40.4. Sia ?iD&X<]jU un numero naturale TkU fissato. Possiamo creare una lista di tutti i primi con il seguente procedimento che prende il nome di crivello di Eratostene; lo modifichiamo leggermente ai fini del programma in R con cui verrà realizzato.. (1) Definiamo due vettori variabili l e m e poniamo inizialmente lJKonp Una caratteristica avanzata di R è che come indici si possono anche usare vettori di valori booleani, cioè vettori i cui componenti sono o 3 o 4 . Se in questo caso il vettore booleano ha una lunghezza minore di quella del vettore da cui vogliamo estrarre, i valori booleani vengono ciclicamente ripetuti. Esempi: 5 6  7  #8 4 4 3 3 4 3 4 4  9# 6 7 #8 :9; con output "<02' . Infatti vengono riprodotti in 9 gli elementi di che corrispondono a posizioni in cui il valore del vettore booleano è uguale a 3 . 6 Con 7 #8# 3 4  otteniamo ogni secon6 do elemento di , con 7  #8 # 4 3  ogni secondo elemento di , saltando il primo: 5 6  7  #8 3 4  9# 6 7 #8 :9; 6  7  #8 4 3  9# 6 7 #8 :9; con output ="2$/( *0&'/ Possiamo adesso riscrivere in R un famoso algoritmo che permette di trovare i numeri primi >@? per un dato numero naturale ? . mqKonUBr;Bs s sB.? p Calcoliamo la radice tEKuh ? . Poniamo SfKvmw . Se S=x@t , andiamo alla fine (F). Aggiungiamo S a l , ridefinendo l=KVnlyBzSp intendendo con ciò che S viene aggiunto come ultimo elemento ad l . (6) Eliminiamo da m tutti gli elementi divisibili per S (compreso S stesso). (7) Torniamo al punto (3). (F) A questo punto la concatenazione nl{Bmp di l e m rappresenta la successione ordinata dei primi >i? . (2) (3) (4) (5) Dimostrazione. Infatti il numero S al punto (3) è il più piccolo numero che non è stato eliminato da m nel passaggio precedente; esso non è quindi divisibile da nessun numero tra U e S_|}[ ed è perciò primo, cosicché lo aggiungiamo ad l . Poi eliminiamo da m tutti i multipli di S . Dall’osservazione 40.3 segue che ci possiamo fermare quando S=x h ? . Possiamo trascrivere questo algoritmo direttamente in una funzione in R che conserviamo nel file Primi della nostra libreria: ~ #   #8€ #.* 6 9 .8.v:; ‚ ƒ „ 9#!5„N#€ †  : .   ‚ #  !„f 6 ‡ ‰ˆ##  Š„ 9#:9H # ‹ŒŒ ‡ #Ž :9HŽ 40 Per provare la funzione usiamo 9# ~ # #8#€.#.!    9 :9H # +  #  :9H  ‘ '# + ottenendo l’output  " $ (’ “ "’ (  % "” %“"#•" (”0•0"”0(“$ " $%”'#”' (–(#•( "“( %– "“ % %(—.—."˜.(™.%˜  "— (˜"#  "(— " %™.0%˜ $#— $ (˜ ' "—' (˜( "  (%— #— %#š % "™ % (˜ % %   Abbiamo creato una matrice per una migliore visualizzazione; per poter riempire la matrice abbiamo anche aggiunto due zeri che naturalmente non derivano dall’algoritmo. for, while e repeat R possiede tre istruzioni per l’esecuzione di 6 cicli: 8  (che abbiamo già usato alle pagine 22, 32, 35-37), ‘7 e #.  (che abbiamo ~ usato in # #8#€.#. ); esse vengono utilizzate con questa sintassi: 6 8v›2.2*€. 9#œ8. ‘7 j- 8.## œ8.#< €. 9œ#8. #   &€. 9#œ8. dove €. 9#œ8. è un’istruzione singola oppure una successione di istruzioni che allora deve essere racchiusa tra parentesi graffe. Per uscire da un ciclo si usa ˆ# Š , mentre › interrompe il passaggio corrente di un ciclo e porta all’immediata esecuzione del passaggio successivo, cosicché 6 8 v›2.ž  ‚  6 › ŒŒ ‡Y› › Ž stampa sullo schermo i numeri pari compresi tra 1 e 20. v[v%%p Ÿ 0] Dobbiamo ancora analizzare questa misteriosa espressione che abbiamo usato nella funzio~ ne  #8€.. . Intuitivamente è chiaro che dovrebbe rappresentare quegli elementi del vettore il cui resto modulo S è maggiore di zero. Ma come si inquadra nella sintassi che abbiamo visto finora? La spiegazione è che in ‹Œ Œ‡  viene prima calcolato il vettore interno che funge da filtro, cioè il vettore booleano Œ Œ‡ che, secondo il modo vettoriale delle operazioni di R, contiene il valore 3 in ogni posizione dove in si trova un numero non divisibile per  , e nelle altre posizioni contiene il valore 4 . All’inizio dell’algoritmo, quando Hƒ e # , Œ Œ#‡ è uguale a  4 3 4 3 4 3 #  , nel passaggio successivo, in cui #-"$(!%5 5 "5$5 (  , #Œ Œ" ‡ è uguale a  4 3 3 4 3 3 4 3 #  , e cosı̀ via. In modo simile (anche questo esempio è importante nella teoria dei numeri), se  H‹ , allora ‹#Œ Œ 0  . consisterà di tutti i numeri naturali tra  e  con resto 1 modulo 4. ALGORITMI E STRUTTURE DI DATI Numero 10 a.a. 2004/05 Assegnazione vettoriale L’opzione drop  Le espressioni della forma possono essere anche usate per assegnare valori alla parte del vettore descritta dall’espressione. Esempi: :5  F @ 2/  M  M     K@ K@        !#"%$  $ &'(#)*,+#-#     !#"%$  $ 92   :   )  ;)     .A8.BC D       #* !#"%$  $   Il coefficiente nella -esima riga e E -esima colonna di una matrice F viene denotato con     F E . Anche qui possiamo però usare espressioni più complesse, cosicché ad esempio D  DC D    ) + otteniamo la mtrice con F 2x3 che consiste dei coefficienti nella prima e terza riga e nella seconda, quarta e sesta colonna di F .  $  $ Se e sono vettori di indici, allora F è la matrice che consiste delle righe di F con   $ consiste delle coindici da , mentre F 9 $  lonne con indici da . F è invece la matrice da cui abbiamo tolto le righe con indici $ da . Anche vettori booleani di indici possono essere usati per matrici. Esempi: @ 5+    +    +  )/:.)+    @I  )  %+ @I@J @K  ) +  @I@J @K  ) +    )/L) ) )@)I) )2+ e, continuando con la stessa matrice F , D  C M F       M     @I  ) @I@J  )   K  ) @J@I  )  @J@I  )   ) O) ) )@) +   )  rbind e cbind Se usiamo un filtro, otteniamo il vettore dei coefficienti della matrice che soddisfano il criterio espresso dal filtro, elencati colonna per colonna: Possiamo unire più righe con \ 21 e più colonne con \ 21 ; le righe o colonne possono essere date singolarmente o anche come matrici. Esempi:     @ @ 1  /  @ N :   Q%@/%1  /     @ @  )8N )] )8 P %  Q%@ "  F@R@R@)@/ @ 2/  P %  Q%@ "  ?  / F@ /  F M ?  /   M / ^ \ 21  /  ^  P   Q%@ "  @F 2/  M  M con output B B A@VW B F@ST%U F@ST%U U F@ST%U AVW B B B U F ST%U  F ST%U @ F ST%U @ B B A VW @ B F@ST%U F ST%U @ U F ST%U @ AVW B B B U F S T%U F@ S T%U F@S% T U  ')/* #@* ) B F@ST%U F@ST%U A@VW B U F ST%U @ B B F@ST%U F ST%U @ A@VW B U F@ S T%U  = = 3  1  /  /5G%H3    3 D Q%@/%1  /  /5G%H3    F    M  B con output   @J  @K   @K     )   ) )  @   @   @J  ) @KK  )  @KK  )  F    + 2/   F    F   ) 2/   F    @   @ ^ e, continuando con la stessa matrice , con output = =@J=@I= =@J=  ) +  @J@I @J  ) +  @J@I @J  ) +    ) O) ) )@)I) )+ =@I= =@J= L ) + J@I @J L ) +  J@I @J L ) +   ) L)J) )@)I) )+    %+ @K   = con output )  Z@ZD[   )     @J  ) J @I@J  ) J @I@J  ) 9@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9      *  ) 9@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9  Z@ZD[   )      @J  ) con output     Anche indici matriciali possono essere usati per assegnare valori a parti di una matrice: con output : con output, stavolta completo, cosı̀ come appare sullo schermo, 9   M @F + 2/  M    ?  @/ 3  1  /  /%G%H3 F@ @)       F   @    1  "  B @F   /     K  @J@    Indici matriciali  + con output Nel penultimo esempio R ci avverte che la lunghezza della parte dove vogliamo modificare i valori (in questo caso 5) non è un multiplo del vettore che contiene i nuovi valori (in questo caso 3). Sono operazioni piuttosto potenti.   5+ @J M  @ N)   @F  /   % @XD9@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9@Y  XN  D  A8.B CN .A8.BC @F 2/  M  =   ?  / 3  1  /  /5G%H3  F@  /   F % @XD9@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9@99@9@9@9@Y  XN <-# +        =  # !#"%$  $  ><-#  7 !6? # 3 @2354 8 % @ 1  / 1  /   K  )  @J@I  )  ')  con output   ) D  A8.B C M @F 2/  M   /  .)      #(# !#"%$  $ ,+#-# !#0%$ 21'/3% 54 " /  361 87   )   Quando scegliamo solo una riga o una colonna di una matrice, queste vengono automaticamente convertite in un vettore. Talvolta però si vorrebbe poter considerare quella riga o colonna come matrice; per fare ciò biB " sogna aggiungere l’opzione 1   all’indice. Esempio: con output    92  41 = \ 21  ^      /  _  _ = con output    @J  )  @KK @  )  @KK @  )    ` )a = =@K=K= =@  )  ALGORITMI E STRUTTURE DI DATI Numero 10 a.a. 2004/05 Sistemi lineari con R det (determinante) e traccia R permette, per matrici che devono essere quadratiche e invertibili, la risoluzione di un sistema lineare è il determinante della matrice . Per la traccia sembra che non ci sia una apposita funzione che però possiamo facilmente definire:     2 !  \-  " "  UQL 6 " ! 6 2! ] QH 6 ./ 2!^ ([7L X  !. 24  _"2!` mediante l’istruzione       . può essere usata in più !. +! '983:;<;=83$ 1 genera una matrice identica !. 3 L’output è , in accordo con la soluzione già trovata, infatti >!?  @#B C*DFE HG B > @A @A aFbMa   !  "#%$'&!(*2I&:'J(#J(*& (I!   ,  -! " !  -!./ $! !"#J(K;%+'   !  234 5 -476  - KL 6  2I!      . 2I! 5 !- 76 ! ; in accordo con quanto già trovato. Se vogliamo le soluzioni come numeri razionali, nell’ultima riga del programma possiamo usare 5 -!K6 3Q -! " ! 6 #2! -  " ! 6 La funzione Q richiede però la libreria MASS, che dobbiamo caricare con  - -R 2,S S  Otteniamo allora l’output ($ :' TIP 1<$ (KITI P 1U1IT IP 1 L’inversa di una matrice non singolare  è data da   2! ; ; ;     ! .!76  ; ;  6 . / 34 è la lunghezza di un vettore o di una matrice. Nel caso di una matrice questa viene considerata come vettore, la lunghezza è quindi uguale ad , se la matrice poscolonne. siede righe ed V  7X 2! W VOW è allora il vettore Y3V D W[Z . ( ; zi hUk | i h Z  YJq‚ZJkuvwY qz|l Z è un polinomio di grado V in | (qui si usa spesso la stessa lettera | sia per un elemento concreto di h che per un’indeterminata) che si chiama il uvwY2|lq Consideriamo il caso V  @ | q† |lŠq x„ƒ  q q ‡‰ | q } x„ƒO e  †ˆ‡4‰ quindi ((c('e($ '!(g' 'c' $ $!(g$ 'c$ $ ((M' '_$ $ è il valore assoluto del numero reale o complesso . Secondo la filosofia di R, se è un vettosi ottiene il vettore dei vare, con lori assoluti degli elementi del vettore; lo stesso vale per una matrice dalla quale otteniamo quindi la matrice dei valori assoluti dei suoi coefficienti.  è il segno di un numero reale (uguale a zero se è uguale a zero). . . Allora  ‹‹ |}q q  ‡ ‹‹ Z Œ ‹‹ q † |q ‹  Y2|q ZY2|}q ‡ Z‹ q  †  |ŽŠqz|Y  ‡ Z ‘ ‡ q  †  | Ž qz|’w)“  u#vw u#vwY2|lŠq  è un Nota 42.6. Sviluppando il determinante, non è difficile dimostrare che "J( (f($' ( f2' $$ (f3$ $  -4 "  !  4- ./  $  !   . !   #34 | . polinomio caratteristico di  . Allora Dimostrazione. Teorema 42.2. ( 'c;d; ;e$c; ;d;e1 .6 24 A | q~|lZ } A i h si chiama Definizione 42.4. Un elemento | i h 0?@A anche un sistema di autovettori; ciò può rallentare il calcolo per matrici molto grandi. Il risultato è una lista in R, un concetto che non riusciamo più a trattare, e le componenti si ottengono con la sintassi B:=<75> 0? e B:=0CD 4E ? . Creiamo due funzioni che inseriamo nel file Matrici della nostra libreria: F => D 4 :=<75 4E 1G@/H7>73ICJD 1 4 L F M N 0=120J39K FO 4 3 57698;:=<75> 0?3 @A MK B :=<75> 0?P F >=D 4 :=0DD 4E 1G@QH>73ICJDI1 4 3LK FIM N 0=120J39K F M B:=0=CJD 4E ?7P  o t  t  o€| t w o   | t t tw |o   | t t tw Questi cerchi, che si definiscono in modo analogo per le dimensioni superriori, si chiamano i cerchi di Gershgorin di . I centri dei cerchi di Gershgorin sono gli elementi nella diagonale principale della matrice; se la matrice è reale o se almeno gli elementi nella diagonale sono tutti reali, i centri dei cerchi di Gershgorin si troveranno quindi sull’asse reale.  0 E ^? ‚=2 N E E <C270J32=D 1 4 CTKUC0J3D e nello stesso modo $ R che, secondo quanto visto prima, dovrebbero essere reali. Infatti troviamo la risposta . Corso di laurea in matematica  poniamo d    JJo o no%p rq=s d  s i tt t e u t    n p rq=s d i tt s  t e u t  |J|  n | p rq=s  s i tt t e u t Definiamo una funzione (che farà parte del file Matrici nella libreria) che restituisce il centro e il raggio dell’ 1 -esimo cerchio di F Gershgorin della matrice : F 7@ S=<D E 1C0TKUC KUV OXWTOXYWTO V M O C 4 5 @ W M F 4 4E F M ]57E<Z71^3[=D_\<K E@ 4 >>73=D \: KU<757573ICJDI1 4 L 3 K F_O 1 M 4 @ F9„ 1 O 1 F„ O M MY 7O Z9E <7KU27=-?A@CB 46 Derivazione simbolica La derivata La funzione esponenziale Abbreviazioni Esempi per l’uso di D La serie di Taylor Options e print(x,n) any e all Ordinamento La libreria La derivata DFEHGJILKNM G M G M sia una funzione a valori reali definita su un aperto di (quasi sempre sarà un intervallo aperto, anche infinito, di oppure un’unione di un numero finito di intervalli aperti). Sia . Se il limite T8DL~ V SyWl`DLS&DL~ ]€ Intravvediamo la formula generale che infatti si dimostra facilmente per ogni  ƒQ ‚ con induzione. Se poniamo D uguaO7PRQ G le all’identità otteniamo la derivata di un DLSUT O4PV E WY\^X ]Z [_ P D`T OLPbadcLV IeD`T O4PV monomio T„Z t4~ V S`Wl Z t4~ ]€ c D esiste, allora si dice che la funzione è difDLSUT O4PV si chiama la che, in modo meno preciso ma più intuitiferenziabile in OLP ed D vo, talvolta è scritta nella forma derivata di in OLP . T O ~ V SyWl O ~ ]€ Segue abbastanza direttamente dalla definizione che, se anche f è una funzioreale † abbiamo ne definita in e se esistono le derivate DLSgT OLPV e f SUT O4PV G , allora T8D adf-V S*T OLPV PerT † unD V S`numero W † DLS anche esiste e si ha perché la derivata della funzione costante T8D aef(V S*T O P V WhDLSgT O P V`aef SUT O P V i j † è uguale a zero, come abbiamo visto. Si dimostra inoltre che esiste anche T8D f(V SgT O P V e che Ciò mostra, insieme alla regola per la che la formazione della derivata T8D f(V S T O P V WhD S T O P Vgf T O P V`a D`T O P Vgf S T O P V èsomma, un operatore lineare e ci permette di calD D`T OLVgf T OLV , da non colare la derivata di una funzione polinoQui f è la funzione i j miale. Sia infatti confondere con la composizione delle due D‡W i j † P aˆ† € OJaˆ† u O u a zzz aˆ† ~ O ~ funzioni. Se k è l’insieme dei punti in cui D e f sono entrambeD7S differenziabili, posS Usando la formula per la derivata di un siamo considerare e f come funzioni monomio e la linearità otteniamo definite su k e scrivere più brevemente D4SHW i j † € a x † u O‰a zzz a  † ~ O ~ ]€ T8D aef(V S WlD S amf S T8D f(V S WlD S fna D f S D E W Consideriamo adesso il quoziente Š T O P aocLV e di due funzioni differenziabili, dove re-f Per una funzione costante D`T O4PV coincidono, e vediamoD`che G la deristringiamo in modo tale che non contenvata di una funzione costante è uguale a ga zeri di f . Siccome ŠHf S W‹D , dallaSŽWregola DLS e zero. del prodotto abbiamo Š fŒaŠHf quindi Consideriamo la funzione identica. In D S questo caso il limite da studiare è L D y S I T I S D L D ` S I S W ŠHf W ff \^X ]Z [_ P O P apc4c V O P WY\qX ]Z [_ P cc Wsr ’ f ‘ f f DLS f I“D f S Z t ha derivata W perciò la funzione identica 1 in ogni punto. fu D Assumiamo adesso che la sia differenD7u Nei corsi di Analisi si dimostra (e la dimoziabile in OLP e consideriamo le funzioni , DLv e D^w . Per la regola del prodotto abbiamo strazione richiede un po’ di attenzione!) la regola della catena, molto importante, per T8D u V S WhD S D a D7D S WlxD7D S la composizione di due funzioni differenziabili: T8D v V S WhD S D u a DyT&D u V S T f•” D V SgT OLPV WhDLSgT O4PV z f SUT8D`T OLPV*V WhD S D u a DRzx-D7D S W|{D S D u T8D w V S WhD S D v a DyT&D v V S che in modo astratto può essere scritta anche cosı̀ (nel dominio dove tutto è definito): WhD S D v a DRz{-D S D u W|}(D S D v T f•” D V SyWhDLSyz(T f S ” D V La funzione esponenziale Esiste una funzione che è la derivata di se stessa? Nei corsi di Analisi si impara che una tale funzione, cioè una funzione con esiste veramente e che è unica se chiediamo che . Questa funzione si chiama la funzione esponenziale e viene denotata con . Essa può essere definita per ogni numero reale - in verità può essere estesa su tutto , è quindi una funzione Š „T — V Wr ˜™qš E-MJIKNM Š › Š S–W Š ˜™qš oppure, rivelando allora la sua vera natura e la profonda parentela con le funzioni trigonometriche, una funzione ˜ ™qš E › I>K › ˜™qš è quindi una soluzione dell’equazione differenziale Š SyW Š e se con k denotiamo l’operatore (di cui sappiamo che è lineare) di differenziazione (che è definito su un qualche spazio vettoriale di funzioni di cui la funzione esponenziale fa parte), vediamo che è soluzione dell’equazione lineare ˜™qš W ‡k Š Š k e quindi un autovettore per l’autovalore 1 (cioè e non un punto fisso) dell’operatore lineare ci sorprende che, come si verifica facilmente, l’insieme delle soluzioni forma un sottospazio vettoriale in quello spazio di funzioni. Si dimostra anzi che le soluzioni formano una retta e che quindi le funzioni che coincidono con la propria derivata sono esattamente i multipli scalari della funzione esponenziale. Per otteniamo la funzione costante zero che effettivamente anch’essa è la derivata di se stessa. Sia . Allora e vediamo che ogni soluzione della nostra equazione differenziale può essere scritta nella forma †b˜™qš † W— Š W †œ˜™qš Š T„— V W † Š W Š T2— V z ˜™qš T j nei corsi Si dimostra di Analisi che ˜™qš O4V coinil numero  (detto anche base cide con  , dove del logaritmo naturale) è definito da r ~  Wž~ ]X Z _Œ[ Ÿ r a  ‘ Wlx^ ¡-r¢x¢(r¢x¢}-£¤^¥¥ In R la funzione esponenziale corrisponde alla  ; il numero  non èpredefinito funzione ma %$U¦, . Ciò costa può essere ottenuto calcolando tempo però in esecuzioni ripetute, quindi inseriamo il valore nel file Costanti: §¨© Nª7«8¬¦­ª­¦­ª­ ALGORITMI E STRUTTURE DI DATI Numero 11 a.a. 2004/05 Abbreviazioni La serie di Taylor Per evitare di dover battere la parola commettiamo la seguente riplicata  ga nel file Abbreviazioni della nostra libreria:     Molte funzioni reali (ad esempio i polinomi, le funzioni trigonometriche e iperboliche, la funzione esponenziale, i quozienti di poli$Y€ del loro nomi) possono, per ogni punto $ dominio di definizione ed ogni sufficiente$'€ $ƒ‚ (e spesso per ogni ) mente vicino ad essere rappresentate mediante la loro serie di Taylor: !Y‰ ‡Š "%$ € & !#"%$'&3( † „ "%$ $'€& ‡ D ‹vŒ € ‡ˆ Nello stesso modo possiamo rinominare altre funzioni:            Esempi per l’uso di D Verifichiamo le formule !#"%$'&)(*$'+,(.-/!'01"%$2&3(*4$25 $ 687:9 2 (.-@! 0 "%$'&A( !#"%$'&)( $2;87=<$>7=? <$ "%$'6B7:9&"%F$'6B7C<& ( $';B7C<$>7=?ED "G$2;H7=<$I7=?& 6 J KL 0#( D LNM O.P1L1M O 0#( J KLPQRTS 0.( QRTS !#"%$'&)(VUW 6 (.-X!'0N"%$2&)(*<$YUW 6 !#"%$'&)( J KL G" $2& 1L M O "%$'&)(.!'0N"%$2&)( J  K L 63$ D LNM O 6A$ !#"%$'&)([Z $\(.-/!201"%$'&3( ]1^ O 0.( 9 J KL 6 P1J KLN_ 0 ( 9 < Z $ LNM O2_ !h‰ ‡Š "%$'€& ! ‹ dove è la -esima derivata di nel $'€ punto . Questa rappresentazione fornisce molte informazioni sul comportamento del$Y€ la funzione vicino al punto . ! è una funzione polinoAnche quando $Y€ miale la serie di Taylor in è interessante, ! $Y€ perché ci dice come la si esprime in . In questo caso naturalmente la serie di Taylor $ $Y€ dello è formalmente un polinomio in D stesso grado di quello di partenza. Abbiamo ad esempio < F$I7=<$ 6 ([987d"%$ D F D $I7=<$ 6 ([987= vcw  n  vcG  hcG n.cG   ee   b ` 2bcxeye YcG bYc 'c l u  #m{zh|%}nfj zh|%}     ee   b ` 2bc%ee hcG l bYc 'c s e  #m~r  vcG j p ee   b2c%hcG ` bee l bYc 'c s e  #m~r  hcG jp   ee   b ` 2bcxee hcG l bYc 'c e  #m>.cG Questi sono i reciproci dei fattoriali! Infatti la serie di Taylor della funzione esponenziale nell’origine è $ ‡ „† UW¥( ‹vŒ € ‡ˆ Abbiamo aumentato il limite superiore del denominatore in a b b . Proviamo con il coseno, sostituendo   ad  , e otteniamo u s s u s s rz r pzŽr p ¤•z r kp z•z£r ¤ztpz Infatti J KL $¦([9 D $'6 7 < Œ $2§  Œ~D $25 7 ? Œ $2¨ © Œ¥D 7Cªªª Sostituiamo   con   per calcolare lo sviluppo di Taylor del coseno iperbolico e ritroviamo gli stessi coefficienti, ma senza segno. Quindi $'6 $2§ $25 $2¨ 7dªªª 7 7 7 J KLN_ $˜([987 < Œ ? Œ Œ © Œ  9 !."G$2&3( Proviamo infine con 9 $ : D 9  Creiamo adesso una funzione   che restituisce i primi qr coefficienti di una funzione (rappresentata mediante un’espres$ € sione formale) in un punto . Per calcolare $Y€ ‹ il valore della -esima derivata in usiamo ” che conosciamo dalla pagina 29.   ee   b 2bcxee hcG ` l bYc 'c e  #m> vcw  dopo aver caricato, se necessario, la libreria Ÿ¡¡ Ÿ¡¡e con  ¢Yc (cfr. pagina 42), troviamo s s s s s s s rErEr pr o£r p ¤£r rp z£r kp z£r } z¤zr ¤ztp z ([9“7Ž$I7Ž$ 6 7Ž$ ; 7=$ § 7«ªªª , $ D ma stavolta la serie di Taylor converge solo 9 $ 9 per ¬ ¬œ­ , benché il quoziente 9 $ sia D $[ ®( 9 . definito per ogni Infatti 9 ee  g hc%a b2c%  ee  .|ž br zzzzz  s u ee  2c1r cNr h g gwe      Y  e c z l hc%  .m~rrEr•rrErr•rEr  e   b ` 2bcGf eej k bYc 'c l  #mIknfj o  Vediamo dei numeri che a prima vista non sembrano dire molto; ma se visualizziamo invece i coefficienti come frazioni di interi con    45 La usiamo per calcolare i coefficienti del primo dei due polinomi visti sopra; questo polinomio ha grado 2 e quindi possiamo impostare uguale a 2:   u e   2cwp tnqpnfjp  Yg g e     Y  c r p e YcG   Options e print(x,n) Il numero delle cifre significative che vengono visualizzate in un numero reale è preimpostato a 7 e può essere modificato mediante il comando e  bvcG  brp per avere ad esempio 12 cifre significative. Il valore massimo è probabilmente 22, ma sembra che la precisione arrivi a circa 16 cifre dietro il punto decimale. b b funziona quindi in modo simile a b . Per vedere e anche gli altri parametri provare  fvc . Se si vuole stampare un valore solo una volta con un certo numero di cifre, si può utilizzare il secondo parametro di  . Esempio: Otteniamo, correttamente, rEr•p . e e l   .cNr —{Y  cx .mIph|%kr p p Proviamo adesso con lo sviluppo di Taylor $Y€œ(d’ della funzione esponenziale in : g e l hcw r ¤     .mIph|%kr p r p ¤}¯ z   ee   2cwhcGY  g gwe     Yc z  e YcG   e  bve cG  br z l hcw     .mIph|%kr p r p ALGORITMI E STRUTTURE DI DATI Numero 11 a.a. 2004/05 any e all La libreria Se è un vettore di valori booleani (cioè   uguali a o  ),  è vero se e solo se almeno uno dei componenti di è vero, mentre  è vero se e solo se tutti i componenti di sono veri. Esempi: Elenchiamo qui i singoli files della nostra libreria in ordine alfabetico, tralasciando le Octobrinidae e Parabrinidae.  ! "   %'&)( !" %'&)( (    3 893801:  (5 (;<:= / !"  #  &)( %' (  7  # #+* !"  #$   %'&)( (  # #+*,  !"  #$)  %'&)( (   # #+*      [\  :89 C:C C:CI%  / / %'& " & )# !"   & H   [\] )" B C 3 38L3 94 20: [\ C3 B / ] "  298:/ M299M /  0$C310 $: = !" ( D CF 3G06  # ( :7*0' 47 2   : #+*E/ D ( = !" " (  : # 26 4' 0'37C'0': #+* D / & funzione di ordinamento ? ! # ordiun vettore di numeri reali, in ordicrescente se non è indicata l’opzione !> ? " H  . Usiamo lo stesso ( : 0$C310  -/*  &  !> ? > # > ? ! !"  #1 !> ? >  %'&)( ( 3 # #+* / B >  !> ? >  # > ? !"  # B>  !> ?  %'&)( ( C # #+* D $: * D  ( #  > # :' :60706472 2 = / ] ( " > S  &? ? 6P X  ?#Ra/ %F %  F d >! S X  "  "FB" & H& H " (!  FP 3$: " &  X # ! )Z # "FB>& & ! ! " ?   > ( #  # F 6 S f f P: /)a#X . :'0'C63G0F472 : % & *J/ ( 3 :6:'07D064'2 C ? ! # * ( / D !"  # !  A  %'&)( ( & : " > >FB" :8L3 > 8 #K  9'C6M7082   * %':7#0827 2 82  3  2827 / / & ! B >)! ( !" %'&)( # ( 2  :  3'0 96C7M64 # #+* / / D _# " b  #)Z  L`  &    R# " e  $ ! H )#  ! a# jb8 B"  "  f & .  > # ! )Z &8 > " f  [ & ) j X o   )Z  ? i ` % ] ! & "> f ] ! & " 6P S f #3  j a#X Z ( &    FP R # " e O  3 P i  " >  "  > /   &  & !> /  ? > ?? & &    #&( "     !" = i   # >)!  O  P O     & !"   > >  ?) &  j &   3!8 >  B ? > ? ? !> ` DX? !" ## > 53  >  ?1? !" ## >  B " 'P ( & ! >   /   #?&  &>   &  )#& " & Q O   !>!" -d O  N O  !> L` H &  !>  384   " >   "  B   ) Z  " &  " N ? #  # " & !><^ !"   >O ? )Z " & _  P " ")B #^  & f & ^ !" W >)!  ?    >  :8! 2H 4 ) # ! H Y   # W >  "  )Z Matrici ( & &  ( ! " " &   S > # " >  $ & 'P 8 #( > _  ( H b      ?) ) r)  > ?Z ( & > & !" ( &  P&  '  )# " _  $ S > # " > ## H b  )r) >  # ! ? Z ( f f :  !> ##I# ! / > ! " # 8  B >   #& " "k f !  f N: > #  " _#  /  f # /Z   &  e O   !  "  >   N ! 3  H   4 q& 333$3  j 382 = H W  ` NRW" W  ` WW   B   O       ! N> 8 & & ! " > " ? ? P  #    ) Z ] & ( !"< S &? #? !"<#6'P " > # j ?#?  #P : 824 ^ & > " H)^#  )#Y   > P "  >  p )> ! S > ?<^!H   # ! HH " & 1 >  # &   ! "  'P ( # " & _   "  & '  s " ")t ( `  ` & ? N 1 ?bs " t  ). ?1  >  # !  ! & ! HH " & Z \ > FP "  !" " ? 8 (  B )# " Peu "  B )# "   Z ` B > ? "  ?  & & !> & !> H  8 7.H  & ! " )# _   >  H#^)a/  #&  & " &  & Grafica-strumenti  >  H#^)h   f !:> i  h&)j  0 L` ! &)j  / =   !      " X)# = ! " ?&  &H  ! B ?  k ?  ?  "  `& ! B & N > ! "  )#   B )# " PQu )# !")O  ? >'" )# !")O  ? > i ( & R# "   H)^ > i    !&)j" H^ >  8 ! (  !" ?   & 1&       H)& ^ >   & i L`    )& j   !    ! ( " " &   S "  >FFP R# 5 e ( P $ H#^$ /I? N  B" H  Q >  ? > $)Z Primi Geometria %F "  " S : PN  X z & S ` & > 8  B" (   c "<>)!  8 ! &  & G & .  L ` " `)# _#  X X? " ^#Z 0C8 H "   !  >  > 6P ( `& ! B & R Sf >g 3 ! f : /) f ? "   = H  /a/ X)# f  N )# !")O 1 `  "  3= ? " / ? ` B > = B > ?)  ! H " PQ ")B >  # "  >  ? >'" P_ ")B >  # L` " L` B >  ?  >  ? >'" P `& ! B &   "  B >  ?  >  ? >l Z % %I( # " " X ` X ? % ] ] % ] ( Con ! A si ottiene la posizione di ogni elemento nella successione ordinata, con & ! B >! invece successivamente la posizione dell’elemento più piccolo nella successione originale, poi quella del secondo e cosı̀ via: ( N & B > ?# ! & N & ? "  " ?# `& > ( &  FP " ?<^#a/ %Fm > ! % B"F#! ] & " & S  H>g [ #>)!? " <^ C & ! ( B > !> D "  #    ?   H  >  # >  264'070':': 3 / Corso di laurea in matematica ! "  # " )#  & B "F>O) M=  -/ [ )> ! " &  P (  " & _#  !  S  < ^ " > 6    #   ? ?  # ! ! ) Z !> non è una vera funzione di ordinamento, ma restituisce semplicemente gli elementi di un vettore in ordine invertito: ( " >   " &  !" !" S " ? ")#B#> PQ &  !" & &( !   #& &  `   > O   B! j  Figure Trattiamo qui le seguenti funzioni: !> @? & ! # !  A & ! B >)! La na ne B >  p ! ( )P " FFP R# " ! O /  ?? "   S ! N " !>) N !  W &     # O  #  >    O>  ! O ?   ?) Costanti  f 3 Grafica & ! (  O 3 " & S OO 3= '& P> # > Q = R &  PP   P)## / PS ! A <" W TW /*U= R O  P## P##XA  V & &   & > PP - > PP > )Y)P)##)Z  > PPZ Ordinamento  &)( -/*  %' # "  !>  %'&)( # % ] ! & B & & ! >6B"l (  # I " B # # ?   f j S  > ( &  !> F  P R  # " e       ( & F >O) !> ?? "  & ! && "     # & G "  > ? & & & I H  Analisi 10$234 $./  ! "  # (53   %'&)( ( '6  7  # #+*,(53   !"   %'&)( #$(  # #+*,  (53 !" %'&)( #$( )    # #+* ( & !N ( B"  ! ## ! ##  - ! "  %'&)( #$(    # #+* !"  #$)  %'&)( (  # #+*,  > ? ? " &  >FB" f  >  !> ## f  f 3j ( & ##I6f P ] # " f _   ( &  ! & "  f 3j  #   Z %6& f " & >FB" f >! #  )Pn " KH % & ! & >  # ! &8 )#  #   G  f  & ( &  & 3 6P & # " _ )P[\]  >  # C! 3  S #' ")B /  >  # ! a >O) -/ " X )P X X %6 " P  " !> P  S   " P Abbreviazioni      #$   (  # #+*,  #$( )   # #+* 46 " & >FB" f ? (    ! > # # f 3 a# jb8 f  f 3j (  " & #f f _   j j !>  . 3j Y    ! >   & & N 8 B" f  >  (  P( > ? ?& "  >F f   # ( & f # 6  P R# " e   N  . Z Corso di Algoritmi e strutture di dati % ] 438 H "   ! & >  > 'P )# ) ? # S : =v( =  *U w !>> )# S t = " P 5 ( bs($/    53 t Z ( bsx y y  Z {Q|~} ( & # " _  Lh ! ? g!  # Lh !  ` !> )A = Docente: Josef Eschgfäller

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.2
Linearized                      : No
Page Count                      : 47
Producer                        : GNU Ghostscript 7.05
EXIF Metadata provided by
EXIF.tools

Navigation menu