Track
/
Julia
Julia
/
Esercizi
/
Numeri complessi
Numeri complessi

Numeri complessi

Difficile

Istruzioni

Un numero complesso è espresso nella forma z = a + b * i, dove:

  • a è la parte reale (un numero reale),

  • b è la parte immaginaria (anche lei un numero reale), e

  • i è l'unità immaginaria che soddisfa i^2 = -1.

Operazioni sui numeri complessi

Coniugato

Il coniugato del numero complesso z = a + b * i è dato da:

zc = a - b * i

Valore assoluto

Il valore assoluto (o modulo) di z è definito come:

|z| = sqrt(a^2 + b^2)

Il quadrato del valore assoluto si calcola come prodotto di z e del suo coniugato zc:

|z|^2 = z * zc = a^2 + b^2

Addizione

La somma di due numeri complessi z1 = a + b * i e z2 = c + d * i si calcola sommando separatamente le loro parti reale e immaginaria:

z1 + z2 = (a + b * i) + (c + d * i)
        = (a + c) + (b + d) * i

Sottrazione

La differenza di due numeri complessi si ottiene sottraendo le rispettive parti:

z1 - z2 = (a + b * i) - (c + d * i)
        = (a - c) + (b - d) * i

Moltiplicazione

Il prodotto di due numeri complessi è definito come:

z1 * z2 = (a + b * i) * (c + d * i)
        = (a * c - b * d) + (b * c + a * d) * i

Reciproco

Il reciproco di un numero complesso diverso da zero è dato da:

1 / z = 1 / (a + b * i)
      = a / (a^2 + b^2) - b / (a^2 + b^2) * i

Divisione

La divisione di un numero complesso per un altro è data da:

z1 / z2 = z1 * (1 / z2)
        = (a + b * i) / (c + d * i)
        = (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i

Elevamento a potenza

Elevare e (la base del logaritmo naturale) a un esponente complesso si può esprimere usando la formula di Eulero:

e^(a + b * i) = e^a * e^(b * i)
              = e^a * (cos(b) + i * sin(b))

Requisiti di implementazione

Dato che non dovresti usare il supporto integrato per i numeri complessi, implementa le seguenti operazioni:

  • addizione di due numeri complessi
  • sottrazione di due numeri complessi
  • moltiplicazione di due numeri complessi
  • divisione di due numeri complessi
  • coniugato di un numero complesso
  • valore assoluto di un numero complesso
  • elevamento a potenza di e (la base del logaritmo naturale) a un numero complesso

L'implementazione dei numeri complessi in Julia Base si trova qui: https://github.com/JuliaLang/julia/blob/master/base/complex.jl.


Bonus A

Puoi lavorare sugli esercizi bonus che riguardano l'aritmetica tra numeri reali e numeri complessi togliendo il commento da: # enable_realcomplex_tests = true nello stub complex-numbers.jl o in runtests.jl

Bonus B

Puoi lavorare sugli esercizi bonus tra numeri reali e numeri complessi togliendo il commento da: # enable_syntaxsugar_tests = true nello stub complex-numbers.jl o in runtests.jl Poi, implementa jm in modo analogo a im, così che 1 + 1jm == ComplexNumber(1, 1).


Fonte

WikipediaIl link si apre in una nuova finestra o scheda
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Julia Exercism

Vuoi iniziare Numeri complessi?

Iscriviti a Exercism per imparare e padroneggiare Julia con 35 concetti128 esercizi e il mentoring di persone reali, tutto gratis.