Dai vettori ai numeri complessi
Alla voce
vettori
abbiamo introdotto l'uso delle coppie di numeri per descrivere traslazioni, dopo che le avevamo già impiegate per descrivere punti dello spazio bidimensionale (piano cartesiano). Abbiamo introdotto anche una operazione di addizione tra tali coppie, per rappresentare la composizione di due traslazioni. Abbiamo poi introdotto la differenza tra coppie di numeri: le figure seguenti ricordano come la differenza
La traslazione di una figura con passi Δx = 3, Δy = -2 può essere descritta come la applicazione della funzione
il pesce della figura (A) seguente diventa il pesce di (B) mediante una rotazione di 90° (π/2) descrivibile come
il pesce (A) diventa il pesce (C) mediante una rotazione di 180° (π) descrivibile come
il pesce (A) diventa il pesce (D) mediante una rotazione di 270° (3π/2), o -90°, descrivibile come
(-10, 7) | (-7, -10) | (10, -7) |
oltre che simmetrie rispetto all'asse x e all'asse y e trasformazioni di scala, come quella raffigurata a lato: si è ottenuto il pesce (E) mediante una trasformazione di scala monometrica (od omotetia di centro O) di fattore 2 descrivibile come Per semplificare la descrizione sia dei punti che delle trasformazioni geometriche (evitando l'uso delle parentesi e delle virgole) e, come vedremo, per trovare un modo semplice per descrivere anche le rotazioni di ampiezza diversa rispetto ai multipli di 90°, si introduce il seguente "trucco", che descriviamo riferendoci alla figura sotto a destra: |
i, in quanto simbolo di costante "inventato", che non corrisponde a un usuale numero, viene chiamato unità immaginaria, e le espressioni del tipo L'espressione "numeri reali" è stata introdotta dopo l'invenzione dell'uso di i, per precisare che si tratta di numeri usuali in cui non compare l'unità immaginaria. Quando si usano rappresentazioni grafiche come quelle illustrate sopra e a sinistra, gli assi delle ascisse e delle ordinate vengono chiamati anche asse reale e asse immaginario. E, dato il numero complesso, |
Sopra sono rappresentati vari numeri complessi. Tra questi vi è anche un numero con parte reale nulla (-2i, rappresentato da un vettore verticale) e uno con parte immaginaria nulla (-1, rappresentato da un vettore orizzontale), ossia un numero complesso che è anche un numero reale. Con le convenzioni usuali, -2-2i sta per -2+(-2)i, ossia ha -2 come parte immaginaria.
Le operazioni tra numeri complessi
L'insieme dei numeri complessi viene indicato con o con C. Ad esso si possono estendere l'addizione e la moltiplicazione di R in modo che si mantengano le proprietà illustrate alla voce termini equivalenti.
L'addizione non è altro che quella tra vettori:
(4 + 6 i) + (2 + 3 i) = 4+2 + (6i+3i) = 6 + 9i.
Nel trasformare 6i+3i in 9i ho usato un'altra proprietà dei vettori: dato il vettore (a,b) ho che 6(a,b)+3(a,b) = (6a,6b)+(3a,3b) = (6a+3a,6b+3b) = (9a,9b) = 9(a,b); nel nostro caso il vettore (a,b) è i = (0,1).
Effettuando la moltiplicazione tra due generici numeri complessi in modo che valga la proprietà distributiva abbiamo, ad es.:
(7 + 10 i) · (4 + 3 i) = 7·4 + 10·4 i + 7·3 i + 10·3 i·i = 28 + 61 i + 30 i·i.
Per completare il calcolo trasformando il risultato in una espressione del tipo x+iy dobbiamo stabilire quanto fa i·i.
L'addizione tra complessi è interpretabile come una composizione di traslazioni, una moltiplicazione di un complesso
per un numero reale è interpretabile come una omotetia; proviamo a interpretare geometricamente la moltiplicazione per i: 1 per i sappiamo che fa i; quindi il "vettore 1" è stato ruotato di 90° -1 per i sappiamo che fa -i; quindi il "vettore -1" è stato ruotato di 90° Definiamo in modo analogo "i per i": i, ossia (0,1), ruotato di 90° diventa il vettore |
Posto i·i = -1 la moltiplicazione precedente diventa:
(7 + 10 i) · (4 + 3 i) = 28 + 61 i + 30(-1) = -2 + 61 i
| |||
z → z + (4+3i), in quanto (x+iy)+(4+3i) = x+4+(y+3)i, trasforma ogni punto (x,y) in (x+4,y+3): è la traslazione di vettore (4,3) che trasforma il quadrato F nel quadrato F1; z → z · (4+3i) trasforma i punti del segmento OA nei punti del segmento OP; infatti O = 0+0i rimane invariato, A = 1+0i diventa 4+3i, ossia P; il punto medio di OA, ossia 0.5+0i, diventa 4/2+3/2i, cioè (4/2,3/2) che è il punto medio di OP, e così via. Facendo i calcoli in generale si ottiene: z · (4+3i) = (4x-3y) + (4y+3x)i; quindi B = (1,1) diventa Q = (1,7), C = (0,1) diventa R = (-3,4); è facile verificare che il poligono OPQR è un quadrato: è il quadrato F2 che si ottiene da F mediante la stessa rotazione attorno ad O e la stessa omotetia (trasformazione di scala monometrica) che trasformano il versore OA dell'asse reale (il numero 1) nel vettore OP (il numero 4+3i). Qui trovi come verificare ciò con R. |
In sintesi, addizioni e moltiplicazioni tra numeri complessi si eseguono operando sulle espressioni che li rappresentano come si fa tra i numeri reali, a patto di operare la sostituzione di i2 con -1. E si ha che l'addizione di a+ib a x+iy trasla il vettore (x,y) con passi Δx=a e Δy=b e la moltiplicazione di x+iy per a+ib trasforma (x,y) con la stessa "roto-omotetia" che trasforma il vettore (1,0) in (a,b): alla direzione di (x,y) viene addizionata la direzione di (a,b), il modulo di (x,y) viene moltiplicato per il modulo di (a,b).
Viene chiamato modulo di a+ib, e indicato |a+ib|, il modulo del vettore (a,b), ossia √(a2+b2). Ad es. |4+3i| =
La direzione del vettore (a,b) viene invece chiamata anomalia o argomento di a+ib . Ad es. l'argomento di 4+3i è la direzione del vettore (4,3), ossia la direzione compresa tra 0° e 90° che ha come pendenza 3/4 = 0.75; per trovarne il valore posso usare ad es. una calcolatrice: 0.75 fornisce 0.64350
= 36.869
°: è la direzione del segmento OP della figura precedente (ed è l'ampiezza della rotazione eseguita da
Osserviamo che, se z è reale, |z|
inteso come valore assoluto o come modulo coincidono in quanto
I calcoli con R:
(4+6i)+(2+3i); (7+10i)*(4+3i)
6+9i -2+61i
z <- 4+3i; Re(z); Im(z); Mod(z)
4 3 5
Arg(z); paste(Arg(z)/pi*180,"°",sep="")
0.6435011 36.869897645844°
Per calcolare le divisioni tra numeri complessi basta che stabiliamo, dato z = x+iy, quanto vale il
reciproco 1/z. Infatti la divisione per z la possiamo interpretare come una moltiplicazione per 1/z.
Dobbiamo, dunque, trovare a+ib tale che (a+ib)(x+iy)=1, ossia tale che:
ax-by + i(ay+bx) = 1, ossia: ax-by=1 & ay+bx=0
È un sistema di equazioni con incognite a e b che posso risolvere ad es. così:
a=-bx/y & (-bx2/y-by)=1 a=-bx/y &
b(x2+y2)/y=-1
b=-y/(x2+y2) & a=x/(x2+y2)
Quindi:
1/z = 1/(x+iy) = (x-iy)/(x2+y2).
Un modo più veloce (basato su ) per ottenere lo stesso risultato è il seguente:
1 | = | x-iy | = | x-iy | = | x-iy |
| | | | |||
x+iy | (x+iy)(x-iy) | x2- i2y2 | x2 + y2 |
Quanto trovato è in accordo con l'interpretazione vettoriale del prodotto, secondo la quale z e 1/z hanno 1 come prodotto se: il prodotto dei loro moduli è pari al modulo di 1, che è 1, e se la somma dei loro argomenti è pari all'argomento di 1, che è 0. Infatti:
il modulo di (x-iy)/(x2+y2) è il modulo di x-iy diviso x2+y2;
i moduli di x-iy e di x+iy sono uguali per simmetria rispetto all'asse y;
x2+y2 non è altro che il quadrato di questi moduli
e quindi il modulo di x+iy per quello di (x-iy)/(x2+y2) fa 1.
Inoltre:
(x-iy)/(x2+y2) ha la direzione di x-iy ;
le direzioni di x-iy e di x+iy sono opposte per simmetria rispetto all'asse y;
e quindi la direzione di x+iy più quella di (x-iy)/(x2+y2) fa 0.
Esempio: calcolo di (-2 + 61 i) / (4 + 3 i). Potremmo usare la "formula" vista sopra, ma procediamo direttamente:
-2 + 61 i | = | (-2 + 61 i)(4 - 3 i) | = | 175 + 250 i | = 7 + 10 i |
| | | |||
4 + 3 i | (4 + 3 i)(4 - 3 i) | 42 + 32 |
La divisione con R:
(-2+61i)/(4+3i) 7+10i
library(MASS); z <- (-3+4i)/(2+3i); z; fractions( c( Re(z),Im(z) ) )
0.461538+1.307692i 6/13 17/13
Con WolframAlpha battendo nella finestra di input (-3+4i)/(2+3i) ottengo l'esito in forma frazionaria.
Un vettore può essere individuato indicandone le componenti oppure indicandone direzione e modulo. Analogamente un numero complesso può essere individuato indicandone le parti reali e immaginaria oppure indicandone argomento e modulo. E tutto ciò è analogo alla possibilità di individuare un punto del piano mediante le sue coordinate cartesiane oppure mediante le sue coordinate polari. Queste sono comode, oltre che per rappresentare fenomeni, per descrivere figure.
Ad es., usando ρ (lettera greca "ro") e θ (lettera greca "teta") per rappresentare rispettivamente la distanza da O e la direzione, il disco forato (corona circolare) illustrato a fianco,
che in coordinate cartesiane è rappresentabile con Sono facilmente descrivibili le spirali [se n'è visto un esempio alla voce tangenti e curve]. Quella raffigurata a destra è |
|
La disequazione 135° ≤ θ ≤ 225° invece rappresenta un angolo.
In forma cartesiana lo avremmo descritto con il sistema: ρ varia sui numeri reali non negativi, mentre θ varia su tutti i numeri reali. Naturalmente due numeri θ1 e θ2 che differiscono di 2π (360°) sono da intendersi diversi come numeri ma uguali come direzioni. In alcuni casi si restringe θ a variare in [0,2π), cioè [0,360°), o in (-π,π], cioè (-180°,180°]. In questi casi le eventuali operazioni tra direzioni vengono interpretate in modo opportuno. Le coordinate polari ρ e θ vengono chiamate spesso, rispettivamente, raggio vettore e anomalia (come viene spesso chiamato anche l'argomento del corrispondente numero complesso). L'origine del sistema di riferimento viene chiamata polo. Il termine anomalia deriva dall'aggettivo "anomalo" (strano, irregolare). Infatti tra i primi usi delle coordinate polari vi fu quello della descrizione del moto dei pianeti intorno al sole e la scoperta che la direzione del vettore Sole-Pianeta (ossia della anomalia) non variasse proporzionalmente al tempo (i pianeti descrivono un'orbita ellittica e "ruotano" più velocemente quando sono vicini al sole) era stata considerata una cosa "strana" rispetto all'idea allora predominante che i pianeti ruotassero attorno al sole in modo uniforme (ossia con il vettore Sole-Pianeta che varia direzione proporzionalmente al tempo). |
Se indichiamo con x, y, ρ, θ e con xn, yn, ρn, θn rispettivamente le parti reale e immaginaria, il modulo e l'argomento del numeri complessi z e zn, possiamo scrivere:
se z = z1· z2,
se z = 1 / z1,
se z = z1/ z2,
Naturalmente, ρ = |z|. Se la direzione di z viene espressa con un numero θ tale che 0≤θ<2π, tale numero viene indicato con
nel caso di 2+5i (figura A), ρ = √(4+25) = √29 = 5.3851
, θ =
nel caso di -3+2i (figura B), ρ = √(9+4) = √13 = 5.3851
, θ0 =
Se x = 0, non si può calcolare arctan(y/x). Ovviamente si ha: θ = π/2 quando y > 0,
θ = 3π/2 (o
Nota. Le scritture arctan(x), atan(x) e atn(x) sono abbreviazioni di arcotangente di x (la direzione o angolo compreso tra
I calcoli con R:
z <- 2+5i; Mod(z); Arg(z); Arg(z)/pi*180
5.385165
1.19029
68.19859
z <- -3+2i; Mod(z); Arg(z); Arg(z)/pi*180
3.605551
2.55359
146.3099
z <- 0+2i; Mod(z); Arg(z); Arg(z)/pi*180
2
1.570796
90
z <- 0-2i; Mod(z); Arg(z); Arg(z)/pi*180
2
-1.570796
-90
Numeri complessi, figure e loro trasformazioni
Nota. La relazione tra moltiplicazioni per un numeri complessi e rotazioni attorno ad O ci consente di ricavare facilmente alcune formule spesso utili quando si opera con funzioni circolari. Siano u e v due numeri complessi di modulo 1 e siano α e β i loro argomenti, ossia siano u =
u·v = (cos(α) + i sin(α))·(cos(β) + i sin(β)) =
D'altra parte u·v ha come argomento la somma degli argomenti di u e v, ossia:
u·v =
cos(α+β) = cos(α)·cos(β) sin(α)·sin(β), sin(α+β) = sin(α)·cos(β) + sin(β)·cos(α).
[cliccando qui ottieni una figura che suggerisce una dimostrazione alternativa di tali relazioni]
Come caso particolare, per β = α, si ottiene:
cos(2α) = cos(α)2 sin(α)2 = [essendo sin(α)2=1cos(α)2] 2cos(α)2 1,
sin(2α) =
Si possono ricavare facilmente, essendo tan(x) = sin(x)/cos(x):
tan(α+β) =
[le formule (2α) sono note come formule di duplicazione - double-angle formulas]
La figura sotto a sinistra illustra un'altra trasformazione,
z → 1/z, che, ricordando la interpretazione "polare" del prodotto,
possiamo descrivere anche così:
Nella figura sopra a destra si vede come una particolare funzione a input e output complessi
trasforma un reticolato: si vede che cambia la forma ma che le linee tra loro perpendicolari si mantengono perpendicolari.
Quella di mantenere gli angoli con cui si incontrano le linee è una caratteristica delle trasformazioni descrivibili
come
Si può intuire come questo tipo di trasformazioni (chiamate "conformi", in quanto conservano la forma degli incroci) possano essere utili per studiare come cambia il flusso di un fluido al cambiare della forma di un canale, per studiare questioni di aerodinamica e altri fenomeni di tipo fisico: una situazione in cui il comportamento di una grandezza vettoriale (una velocità, una forza, ) varia lungo certe linee può essere ricondotta ad una in cui le linee lungo cui agisce la grandezza siano più facili da rappresentare e, quindi, consentano di semplificare lo studio matematico del problema.
Vedi qui come ottenere i grafici precedenti con R.
Polinomi rispetto a una variabile complessa
Quando per descrivere il piano invece delle coordinate cartesiane si usano i numeri complessi si parla di piano di Argand, dal nome del matematico francese che, verso la fine del XIX sec., ha avuto l'idea di usare i numeri complessi per descrivere figure e trasformazioni geometriche, e, in particolare, di rappresentare le rotazioni di 90° come moltiplicazioni per i.
Ma i numeri complessi sono stati "inventati" nel XVI sec. come "trucco" per risolvere alcune equazioni
polinomiali di 3° grado. Il procedimento è stato descritto in quegli anni dall'italiano
Gerolamo Cardano, anche se probabilmente non è stato lui ad avere l'idea iniziale. Il termine numeri immaginari
fu introdotto (circa 100 anni dopo) da Cartesio, e il simbolo i fu introdotto (dopo circa altri 100 anni)
da Eulero (prima si usavano altri nomi e altre notazioni).
Si era trovato che un'equazione del tipo x3 + p x + q = 0
ha come soluzione rispetto ad x il numero
Ad esempio per
x3 + 6 x - 2 = 0
si trova
R = √(23+12) = √9 = 3
da cui
x =
Ma per
x3 - 15 x - 4 = 0
si trova
R = √(-53+22) = √(-121), che non sarebbe definito, mentre si sa che una soluzione ci deve essere (le funzioni polinomiali di 3° grado assumono valori sia positivi che negativi quindi ci si aspetta che assumano anche il valore 0). Si è allora provato a inventare i per indicare
√(-121) diventa 11i e la soluzione diventerebbe x = 3√(2 + 11i) - 3√(2 - 11i)
Si trova che (2+i)3 = (2+i)(2+i)(2+i) = (4+4i-1)(2+i) =
(3+4i)(2+i) = (6+11i-4) = 2+11i e analogamente che
x = 3√(2 + 11i) - 3√(2 - 11i) = 2+i - 2-i = 4, che è effettivamente una soluzione della nostra equazione.
Dunque, i numeri complessi sono stati introdotti come "numeri fittizi" per potere estendere l'uso delle formule risolutive di alcune equazioni polinomiali e trovare i numeri reali che le risolvono. Non c'era, invece, alcun interesse a trovare i numeri complessi che risolvono una equazione, interesse che è nato, invece, con gli usi dei numeri complessi descritti nei paragrafi precedenti, in cui si è avuto a che fare con equazioni polinomiali di variabile complessa, come la equazione
Ai polinomi di variabile complessa si può applicare lo stesso algoritmo della divisione e lo stesso teorema del resto visti per quelli di variabile reale.
In più per essi vale il cosiddetto teorema fondamentale dell'algebra, secondo il quale ogni equazione polinomiale di variabile complessa di grado maggiore o uguale a 1 ha almeno una soluzione.
Ad esempio, x2+ 1 = 0 se le si assegna come dominio R non ha soluzioni, se le si assegna come dominio C (caso in cui, in genere, verrebbe scritta come z2+ 1 = 0) ha invece i come soluzione, e anche -i.
Dal teorema del resto e dal teorema fondamentale deriva la possibilità di scomporre, nell'ambito dei numeri complessi,
qualunque polinomio P(z) di grado n, con n≥1, nel prodotto di n polinomi di grado 1.
Infatti trovata una soluzione z1 posso dividere P(z) per z-z1 e, trovato
Ovviamente se, ad esempio, z1 e z2 sono eguali, potremo sostituire
Questo è il motivo per cui i programmi che svolgono calcoli simbolici, come Maple e Derive, in genere svolgono le loro manipolazioni operando nei numeri complessi: in tale ambito è sempre possibile fattorizzare i polinomi per i quali si conoscono formule risolutive delle corrispondenti equazioni e, quindi, è più facile semplificare un'espressione complessa contenente termini polinomiali.
Ciò, tuttavia, crea anche dei problemi. Infatti può accadere che una semplificazione eseguita nell'ambito dei numeri complessi conduca a un termine che non è equivalente nell'ambito dei numeri reali.
Ecco, sotto, un esempio di funzione F di cui viene tracciato il grafico anche in
Grafico di una particolare funzione realizzato mediante Derive o Maple (la evidenziazione mediante tratteggio della parte del grafico a sinistra dell'asse y è nostra) |
|
E se chiedo al programma di risolvere l'equazione F(x) = 0 dove F è la stessa funzione, ottengo come soluzione -1 anche se non lo sarebbe in quanto non appartiene al dominio della equazione, se pensata di variabile reale (apparterebbe al dominio se considerassi l'equazione nell'ambito dei numeri complessi). Per il programma, infatti, l'equazione equivale a x+1=0 in quanto considera √(4x)/√x, ossia 2√x/√x, equivalente a 2 per ogni x diverso da 0, anche per x<0.
Anche WolframAlpha con plot y=x-1+sqrt(4*x)/sqrt(x) dà il grafico anche per x negativo, mentre con plot y=x-1+sqrt(4*x)/sqrt(x), 0 < x <= 10 ottengo il grafico corretto. Anche per la soluzione dell'equazione devo aggiungere le condizioni sul dominio di x: solve x-1+sqrt(4*x)/sqrt(x)=0 for x, x > 0.
L'applicazione R, invece, se eseguo: f <- function(x) x-1+sqrt(4*x)/sqrt(x) plot(f,-2,2, ylim=c(-1,3)); abline(h=0,v=0,col="blue") traccia il grafico correttamente, solo per gli input positivi. Solo se specifico che gli input sono numeri complessi ottengo il grafico anche per gli input negativi: g <- function(x) {z <- x+0i; f(z)} plot(g, -2,2, add=TRUE, lty=3) |
È interessante osservare che le soluzioni di A lato è illustrato il caso |
Calcoli e grafico con R
[polyroot(c(a,b,...)) fornisce le radici del polinomio in x
a+bx+...]: sol <- polyroot(c(-1,0,0,0,0,1)); sol # 0.309017+0.9510565i -0.809017+0.5877853i -0.809017-0.5877853i # 1.000000+0.0000000i 0.309017-0.9510565i plot(c(-1,1),c(-1,1),type="n",xlab="", ylab="", asp=1) points( Re(sol),Im(sol), col=c("red","blue","brown","orange","green"), pch=19) symbols(0, 0, circles=1, inches=FALSE, add=TRUE, fg="red") abline(h=0,v=0, lty=3) lines(c(sol[1],sol[2])); lines(c(sol[2],sol[3])); lines(c(sol[3],sol[5])) lines(c(sol[5],sol[4])); lines(c(sol[4],sol[1])) |