複素数を操作する

Dart:
複素数を操作する

方法:

Dart自体は複素数のための組み込みライブラリを含んでいません。これは、カスタム複素数クラスの実装またはサードパーティ製ライブラリの使用を必要とします。科学計算タスクに人気の選択肢で、複素数をサポートしているpackage:scidartがあります。

基本的な複素数クラスの実装

単純な操作のために、自分自身の複素数クラスを簡単に定義できます:

class Complex {
  final double real;
  final double imaginary;

  Complex(this.real, this.imaginary);

  // 二つの複素数の加算
  Complex operator +(Complex other) {
    return Complex(real + other.real, imaginary + other.imaginary);
  }

  // 容易なデバッグのための文字列表現
  @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
}

SciDartを使用して高度な操作を行う

より複雑な操作やパフォーマンスが重要な場合、package:scidartは複素数を含む他の科学計算機能のための包括的なサポートを提供します。まず、SciDartをpubspec.yamlに追加します:

dependencies:
  scidart: ^0.0.1-dev.9

SciDartを使用して複素数の基本操作を行う方法:

import 'package:scidart/numdart.dart';

void main() {
  // 複素数の作成
  var complexNum1 = Complex(real: 5, imaginary: 3);
  var complexNum2 = Complex(real: 2, imaginary: 7);

  // 加算
  var sum = complexAdd(complexNum1, complexNum2);
  
  // 乗算
  var product = complexMultiply(complexNum1, complexNum2);

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

これらの例は、カスタム実装およびSciDartライブラリを通して、Dartで複素数の基本的な操作と利用を示しており、科学計算タスクにおけるDartの柔軟性と力を強調しています。