【Ruby3.x】Complex::rationalize()メソッドの使い方
rationalizeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
rationalizeメソッドは、Complexクラスのインスタンスが表す複素数を有理数に変換しようと試みるメソッドです。
このメソッドは、複素数の虚数部がゼロである場合にのみ有効に機能します。具体的には、複素数 a + bi において、b が 0 であるとき、実数部である a を最も簡潔な有理数(分数)の形式で表現したRationalクラスのオブジェクトとして返します。例えば、Complex(1.5, 0)に対してrationalizeを呼び出すと、Rational(3, 2)が返されます。
もし複素数の虚数部がゼロでない場合、つまり b が 0 でない Complex オブジェクトに対してこのメソッドを呼び出すと、NotImplementedErrorを発生させます。これは、虚数を含む複素数を有理数で完全に表現することができないためです。
この機能は、計算結果として得られた複素数が実数であることを確認しつつ、その値を精度高く分数で扱いたい場合に特に有用です。浮動小数点数の丸め誤差を考慮し、最も近い有理数を見つける点も特徴ですが、Complexクラスにおいては虚数部がゼロであるかどうかが第一の判断基準となります。
構文(syntax)
1Complex(0.1, 0.2).rationalize
引数(parameters)
eps = 0
- eps: 許容誤差を指定する浮動小数点数。デフォルト値は 0 です。
戻り値(return)
戻り値なし
戻り値はありません