TypeScript:
Å jobbe med komplekse tall
Hvordan:
Å håndtere komplekse tall i TypeScript krever en dedikert klasse. La oss lage en og jobbe gjennom addisjon og multiplikasjon.
class Complex {
constructor(public re: number, public im: number) {}
add(other: Complex): Complex {
return new Complex(this.re + other.re, this.im + other.im);
}
multiply(other: Complex): Complex {
return new Complex(
this.re * other.re - this.im * other.im,
this.re * other.im + this.im * other.re
);
}
toString(): string {
return `${this.re} + ${this.im}i`;
}
}
let num1 = new Complex(1, 2);
let num2 = new Complex(3, 4);
let sum = num1.add(num2);
let produkt = num1.multiply(num2);
console.log(`Sum: ${sum.toString()}`); // Utgang: Sum: 4 + 6i
console.log(`Produkt: ${produkt.toString()}`); // Utgang: Produkt: -5 + 10i
Dypdykk
Historisk sett var komplekse tall kontroversielle - til og med omtalt som ‘imaginære’ for å uttrykke opprinnelig skepsis. Nå er de grunnleggende i moderne matematikk og vitenskap.
Alternativer til vår enkle klasse kan innebære å bruke eksisterende biblioteker som math.js
eller complex.js
, detaljert med ytterligere funksjoner som trigonometriske funksjoner, eksponentiering og kompleks konjugasjon.
Vår TypeScript-implementering detaljer går ned til å definere aritmetiske operasjoner. add
-metoden legger ganske enkelt til tilsvarende deler. multiply
anvender FOIL-metoden som brukes i algebra, med å huske at i^2 = -1
.
Se Også
For videre lesing og ressurser om komplekse tall og deres bruk i programmering, sjekk ut:
- MDN Kompleks Tall Algebra: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
math.js
bibliotek: https://mathjs.org/docs/datatypes/complex_numbers.htmlcomplex.js
bibliotek: https://complex-js.github.io/complex.js/