Dart:
Att arbeta med komplexa tal
Hur:
Dart inkluderar inte i sig ett inbyggt bibliotek för komplexa tal, vilket kräver antingen implementeringen av en egen klass för komplexa tal eller användningen av ett tredjepartbibliotek. Ett populärt val för vetenskapliga beräkningsuppgifter, som inkluderar stöd för komplexa tal, är package:scidart
.
Implementera en grundläggande klass för komplexa tal
För enkla operationer kan du enkelt definiera din egen klass för komplexa tal:
class Complex {
final double real;
final double imaginary;
Complex(this.real, this.imaginary);
// Addition av två komplexa tal
Complex operator +(Complex other) {
return Complex(real + other.real, imaginary + other.imaginary);
}
// Strängrepresentation för enkel felsökning
@override
String toString() => '${real} + ${imaginary}i';
}
void main() {
var nummer1 = Complex(3, 4);
var nummer2 = Complex(1, 2);
var summa = nummer1 + nummer2;
print(summa); // 4.0 + 6.0i
}
Använda SciDart för avancerade operationer
För mer komplexa operationer eller när prestanda är kritisk, erbjuder package:scidart
omfattande stöd för komplexa tal bland andra funktioner för vetenskaplig beräkning. Först, lägg till SciDart i din pubspec.yaml:
dependencies:
scidart: ^0.0.1-dev.9
Så här utför du grundläggande operationer med komplexa tal med hjälp av SciDart:
import 'package:scidart/numdart.dart';
void main() {
// Skapa komplexa tal
var complexNum1 = Complex(real: 5, imaginary: 3);
var complexNum2 = Complex(real: 2, imaginary: 7);
// Addition
var summa = complexAdd(complexNum1, complexNum2);
// Multiplikation
var produkt = complexMultiply(complexNum1, complexNum2);
print('Summa: ${summa.toString()}'); // Summa: Complex(real: 7.0, imaginary: 10.0)
print('Produkt: ${produkt.toString()}'); // Produkt: Complex(real: -11.0, imaginary: 41.0)
}
Dessa exempel demonstrerar grundläggande manipulering och användning av komplexa tal i Dart, både genom egen implementering och via SciDart-biblioteket, vilket framhäver Darts flexibilitet och kraft för vetenskapliga beräkningsuppgifter.