1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#で複素数の主値を扱う科学計算ソフトの改善事例 〜主値対応・テスト・Web改善まで〜

Posted at

はじめに

Windows向け科学計算関数電卓ソフトS-Calc(Microsoft Storeにて販売中)を開発・運営しています。
今回のアップデートでは、次の3つの改善を行いました。

  1. 複素数計算を主値(principal value)対応に
  2. 主値計算のテストで安定性を検証
  3. WebサイトのSEO改善とQA追加

複素数計算の主値対応

背景

ユーザから「計算結果が想定と違う」という問い合わせがありました。
例:
(-8)^(1/3) = -2ではない
実際には1 + 1.7321iという結果になっています。
(-8)^(1/3) の計算結果(複素数 主値計算例)
原因は、複素数の 主値(principal value) によるものです。


主値とは?

複素数のべき乗や根は1つではなく複数存在します。
主値は「偏角(角度)が -π < θ ≤ π の範囲にある」代表的な解を指します。

例:

(-8) ^ (1/3)
主値:1 + 1.7321i
他の解:-2 , 1 - 1.7321i

S-Calcでは、この主値を統一して返す仕様にしました。


実装方法

C#.NetのMath.Powは負数の非整数指数でNaNを返します。
そこで、System.Numerics.Complexを採用しました。

主値のテスト

テストケース

複素数の主値が正しく変えるかを確認するため、10題のテスト式を用意しました。
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
全件、WolframAlphaのデフォルト結果(主値)と一致しました。


WebサイトのSEO改善とQA追加

SEO改善

  • titleタグ・h1・h2の見直し(キーワードを含めつつ分かりやすく)
  • meta descriptionの調整(120~150文字程度)
  • 英語タイトルも併記し、海外検索にも対応
  • Search Consoleでインデックス再リクエスト

S-Calc公式サイトTOPページ(Windows 関数電卓・科学計算対応)
サイトTOPページ

海外検索にも対応させた理由として、S-Calcは日本語英語の二か国語に対応しているためです。
√(-5)/√(-20) の計算結果・日本語UI
同じ計算結果・英語UI


QA追加(主値とは?)

WebサイトのQAに「主値とは?」の説明を追加しました。
S-Calc公式サイト:QAページ

例:

主値の結果 備考
(-9)^(1/2) 3.0i 純虚数の平方根
(-8)^(1/3) 1 + 1.7321i 実数解 -2 ではない
(-16)^(1/4) 1.4142 + 1.4142i 偏角45°の4乗根
(-27)^(1/6) 1.5 + 0.866i 偏角30°の6乗根

まとめ

  • 複素数計算は主値を統一して返すことで仕様が明確になった
  • 十分なテストで計算の安定性を確認できた
  • Webサイト改善でユーザが自己解決しやすくなった

この改善により、サポート対応の効率化とユーザ満足度の向上が期待できます。
同様に数値計算ソフトを開発している方の参考になれば幸いです。


参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?