ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】三次方程式の3つの解を全て求める。

成果物

前回は1つの解だけしか求められなかったので、全ての解を求める方法を調べてみました。コードは長く、3つの条件で処理を分けるのですが、複素数の計算があまりなく、シンプルです。
前回記事
nekodigi.hatenablog.com

仕組み

www.1728.org
こちらのサイトの数式をもとにしています。ただし、処理の重さを考えて、自乗は掛け算で置き換え、1/2乗はsqrtで置き換えをしています。また負の1/3乗はエラーになるので、一旦絶対値を求めて計算して、後で符号を戻すことで解決しました。
CUBIC EQUATION CALCULATOR
また、解があっているか不安な場合はこちらのサイトで確認できます。

コード

Cubic Equation Allという名前で追加しています。
github.com