Att arbeta med komplexa tal

Ruby:
Att arbeta med komplexa tal

Hur man gör:

Ruby gör hanteringen av komplexa tal mycket enkel. Du kan skapa och manipulera dem med hjälp av klassen Complex:

require 'complex'

# Skapa komplexa tal
c1 = Complex(3, 4)
c2 = Complex('2+5i')

# Grundläggande operationer
summa = c1 + c2               # => (5.0+9.0i)
differens = c1 - c2           # => (1.0-1.0i)
produkt = c1 * c2             # => (-14.0+23.0i)
kvot = c1 / c2                # => (0.896551724137931+0.03448275862068961i)

# Konjugat, magnitud och fas
konjugat = c1.conjugate       # => (3.0-4.0i)
magnitud = c1.abs             # => 5.0
fas = c1.phase                # Math.atan2(4, 3) => 0.9272952180016122 radianer

# Specifika metoder för komplexa tal
polar = c1.polar              # => [5.0, 0.9272952180016122]
rektangulär = c1.rect         # => [3.0, 4.0]

Fördjupning

Komplexa tal är inte nya - de har funnits sedan 1600-talet, för att lösa ekvationer utan reella lösningar. Bortom matematiken gör sig Rubys Complex-klass av med det tunga lyftet, stöttat av Matematikmodulen för trigonometriska och transcendenta funktioner.

Tidigare programmeringsspråk krävde manuell hantering av reella och imaginära delar. Vissa, som Fortran och C++, har dedikerade bibliotek för komplex aritmetik.

Rubys tillvägagångssätt innebär stöd för komplexa tal i dess syntax, vilket befriar dig från att återuppfinna hjulet. Bakom kulisserna sköter Complex-klassen matematiken, medan Ruby tar hand om objektinteraktioner.

Se även