Dart:
Werken met complexe getallen
Hoe:
Dart zelf bevat geen ingebouwde bibliotheek voor complexe getallen, wat noodzaakt tot het implementeren van een aangepaste klasse voor complexe getallen of het gebruik van een bibliotheek van derden. Een populaire keuze voor wetenschappelijke berekeningstaken, die ondersteuning biedt voor complexe getallen, is package:scidart
.
Een Basis Complex Getal Klasse Implementeren
Voor eenvoudige bewerkingen kun je gemakkelijk je eigen klasse voor complexe getallen definiëren:
class Complex {
final double real;
final double imaginary;
Complex(this.real, this.imaginary);
// Optellen van twee complexe getallen
Complex operator +(Complex other) {
return Complex(real + other.real, imaginary + other.imaginary);
}
// Stringrepresentatie voor eenvoudige foutopsporing
@override
String toString() => '${real} + ${imaginary}i';
}
void main() {
var nummer1 = Complex(3, 4);
var nummer2 = Complex(1, 2);
var som = nummer1 + nummer2;
print(som); // 4.0 + 6.0i
}
SciDart Gebruiken voor Geavanceerde Bewerkingen
Voor meer complexe bewerkingen of wanneer prestaties cruciaal zijn, biedt de package:scidart
uitgebreide ondersteuning voor complexe getallen onder andere wetenschappelijke rekenfunctionaliteiten. Voeg eerst SciDart toe aan je pubspec.yaml:
dependencies:
scidart: ^0.0.1-dev.9
Zo voer je basisbewerkingen met complexe getallen uit met SciDart:
import 'package:scidart/numdart.dart';
void main() {
// Creëren van complexe getallen
var complexNum1 = Complex(real: 5, imaginary: 3);
var complexNum2 = Complex(real: 2, imaginary: 7);
// Optellen
var som = complexAdd(complexNum1, complexNum2);
// Vermenigvuldigen
var product = complexMultiply(complexNum1, complexNum2);
print('Som: ${som.toString()}'); // Som: Complex(real: 7.0, imaginary: 10.0)
print('Product: ${product.toString()}'); // Product: Complex(real: -11.0, imaginary: 41.0)
}
Deze voorbeelden demonstreren de basismanipulatie en het gebruik van complexe getallen in Dart, zowel door aangepaste implementatie als via de SciDart-bibliotheek, waarmee de flexibiliteit en kracht van Dart voor wetenschappelijke berekeningstaken wordt benadrukt.