Complex
コンプレックス(標準ライブラリ)
意味 複素数を扱うためのクラス
Complexとは?
Complexクラスは、Rubyの標準ライブラリに含まれる複素数を表現し操作するためのクラスです。実部と虚部を持つ数値を扱うことができ、複素数の四則演算や絶対値の計算などが可能です。
Complexの具体的な使い方
複素数の基本操作
require 'complex'
# 複素数の作成
z1 = Complex(3, 4)
z2 = Complex(1, 2)
# 基本的な演算
sum = z1 + z2
diff = z1 - z2
prod = z1 * z2
quot = z1 / z2
puts "z1 = #{z1}"
puts "z2 = #{z2}"
puts "和: #{sum}"
puts "差: #{diff}"
puts "積: #{prod}"
puts "商: #{quot.round(4)}"
# 絶対値と偏角
puts "z1の絶対値: #{z1.abs}"
puts "z1の偏角: #{z1.angle.round(4)} ラジアン"
👇出力結果
z1 = 3+4i
z2 = 1+2i
和: 4+6i
差: 2+2i
積: -5+10i
商: 2.2-0.4i
z1の絶対値: 5.0
z1の偏角: 0.9273 ラジアン
この例では、Complexクラスを使用して複素数を作成し、基本的な演算(加算、減算、乗算、除算)を行っています。また、複素数の絶対値と偏角(引数)も計算しています。
複素数の極形式と代数形式の変換
require 'complex'
# 極形式から複素数を作成
r = 2
theta = Math::PI / 4 # 45度
z = Complex.polar(r, theta)
puts "極形式 (r=#{r}, θ=π/4) から作成した複素数: #{z}"
# 代数形式に変換
a = z.real.round(4)
b = z.imag.round(4)
puts "代数形式: #{a} + #{b}i"
# 極形式に戻す
reconstructed_r = z.abs.round(4)
reconstructed_theta = z.angle.round(4)
puts "極形式に戻した場合:"
puts "r = #{reconstructed_r}"
puts "θ = #{reconstructed_theta} ラジアン"
👇出力結果
極形式 (r=2, θ=π/4) から作成した複素数: 1.4142135623730951+1.4142135623730951i
代数形式: 1.4142 + 1.4142i
極形式に戻した場合:
r = 2.0
θ = 0.7854 ラジアン
この例では、極形式(絶対値と偏角)から複素数を作成し、それを代数形式(実部と虚部)に変換しています。その後、再び極形式に戻す操作を行っています。Complex.polar メソッドを使用して極形式から複素数を作成し、real と imag メソッドで実部と虚部を、abs と angle メソッドで絶対値と偏角を取得しています。
Complexに関するよくある質問
Complexが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのComplexやTCPSocket、Math、Tempfile、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!