Arbeide med komplekse tall

Dart:
Arbeide med komplekse tall

Hvordan:

Dart selv inkluderer ikke et innebygd bibliotek for komplekse tall, noe som nødvendiggjør enten implementeringen av en egen klasse for komplekse tall eller bruk av et tredjepartsbibliotek. Et populært valg for vitenskapelig databehandlingsoppgaver, som inkluderer støtte for komplekse tall, er package:scidart.

Implementering av en Grunnleggende Klasse for Komplekse Tall

For enkle operasjoner kan du enkelt definere din egen klasse for komplekse tall:

class Complex {
  final double real;
  final double imaginary;

  Complex(this.real, this.imaginary);

  // Addisjon av to komplekse tall
  Complex operator +(Complex other) {
    return Complex(real + other.real, imaginary + other.imaginary);
  }

  // Strengrepresentasjon for enkel feilsøking
  @override
  String toString() => '${real} + ${imaginary}i';
}

void main() {
  var number1 = Complex(3, 4);
  var number2 = Complex(1, 2);

  var sum = number1 + number2;
  print(sum);  // 4.0 + 6.0i
}

Bruk av SciDart for Avanserte Operasjoner

For mer komplekse operasjoner eller når ytelse er kritisk, tilbyr package:scidart omfattende støtte for komplekse tall blant annet vitenskapelig databehandlingsfunksjonaliteter. Først, legg til SciDart i din pubspec.yaml:

dependencies:
  scidart: ^0.0.1-dev.9

Slik utfører du grunnleggende operasjoner med komplekse tall ved hjelp av SciDart:

import 'package:scidart/numdart.dart';

void main() {
  // Oppretting av komplekse tall
  var complexNum1 = Complex(real: 5, imaginary: 3);
  var complexNum2 = Complex(real: 2, imaginary: 7);

  // Addisjon
  var sum = complexAdd(complexNum1, complexNum2);
  
  // Multiplikasjon
  var product = complexMultiply(complexNum1, complexNum2);

  print('Sum: ${sum.toString()}');  // Sum: Complex(real: 7.0, imaginary: 10.0)
  print('Product: ${product.toString()}');  // Produkt: Complex(real: -11.0, imaginary: 41.0)
}

Disse eksemplene viser grunnleggende manipulering og bruk av komplekse tall i Dart, både gjennom tilpasset implementering og via SciDart-biblioteket, og fremhever fleksibiliteten og kraften til Dart for vitenskapelige databehandlingsoppgaver.