TypeScript:
Робота з комплексними числами
Як:
Для роботи з комплексними числами у TypeScript потрібен спеціальний клас. Давайте створимо один та пройдемося по додаванню і множенню.
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 product = num1.multiply(num2);
console.log(`Sum: ${sum.toString()}`); // Вивід: Sum: 4 + 6i
console.log(`Product: ${product.toString()}`); // Вивід: Product: -5 + 10i
Поглиблений розгляд
Історично, комплексні числа були предметом суперечок - навіть отримали назву “уявні”, щоб виразити первісний скептицизм. Зараз вони є фундаментальними в сучасній математиці та науці.
Альтернативи нашому простому класу можуть включати використання існуючих бібліотек, як-от math.js
або complex.js
, деталізовані додатковими функціями, такими як тригонометричні функції, експоненціювання та комплексне спряження.
Деталі нашої реалізації на TypeScript зводяться до визначення арифметичних операцій. Метод add
просто додає відповідні частини. multiply
застосовує метод FOIL, що використовується в алгебрі, пам’ятаючи, що i^2 = -1
.
Дивіться також
Для подальшого читання та ресурсів про комплексні числа та їх використання в програмуванні, перегляньте:
- МДН Алгебра комплексних чисел: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
- бібліотека
math.js
: https://mathjs.org/docs/datatypes/complex_numbers.html - бібліотека
complex.js
: https://complex-js.github.io/complex.js/