はじめに
Windows向け科学計算関数電卓ソフトS-Calc(Microsoft Storeにて販売中)を開発・運営しています。
今回のアップデートでは、次の3つの改善を行いました。
- 複素数計算を主値(principal value)対応に
- 主値計算のテストで安定性を検証
- WebサイトのSEO改善とQA追加
複素数計算の主値対応
背景
ユーザから「計算結果が想定と違う」という問い合わせがありました。
例:
(-8)^(1/3) = -2ではない
実際には1 + 1.7321i
という結果になっています。
原因は、複素数の 主値(principal value) によるものです。
主値とは?
複素数のべき乗や根は1つではなく複数存在します。
主値は「偏角(角度)が -π < θ ≤ π の範囲にある」代表的な解を指します。
例:
(-8) ^ (1/3)
主値:1 + 1.7321i
他の解:-2 , 1 - 1.7321i
S-Calcでは、この主値を統一して返す仕様にしました。
実装方法
C#.NetのMath.Pow
は負数の非整数指数でNaN
を返します。
そこで、System.Numerics.Complex
を採用しました。
主値のテスト
テストケース
複素数の主値が正しく変えるかを確認するため、10題のテスト式を用意しました。
全件、WolframAlphaのデフォルト結果(主値)と一致しました。
WebサイトのSEO改善とQA追加
SEO改善
- titleタグ・h1・h2の見直し(キーワードを含めつつ分かりやすく)
- meta descriptionの調整(120~150文字程度)
- 英語タイトルも併記し、海外検索にも対応
- Search Consoleでインデックス再リクエスト
S-Calc公式サイトTOPページ(Windows 関数電卓・科学計算対応)
海外検索にも対応させた理由として、S-Calcは日本語と英語の二か国語に対応しているためです。
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サイト改善でユーザが自己解決しやすくなった
この改善により、サポート対応の効率化とユーザ満足度の向上が期待できます。
同様に数値計算ソフトを開発している方の参考になれば幸いです。