RSS

Ruby: 複素数のテスト – Matrix, Vectorの複素数拡張

17 9月

複素数で Matrix , Vector クラスを使う例

#!/usr/bin/ruby
# coding: utf-8
#   複素数のテスト(3) - Matrix, Vectorの複素数拡張
require "matrix"
require "complex"
require "cmath"

puts "複素数のテスト(3) - Matrix, Vectorの複素数拡張"
a = Vector[Complex(0.0, 1.0), Complex(1.0, 0.0)]
b = Vector[Complex(-1.0, 1.0), Complex(1.0, -1.0)]

p a.r
p a.inner_product(b)

th = 30.0 * Math::PI / 180.0
m = Matrix[[Complex(CMath.cos(th), -CMath.sin(th)), Complex(CMath.sin(th), 
           CMath.cos(th))], 
           [Complex(1.0, 0.0), Complex(0.0, 1.0)]]

c = m * b
p c

実行例 (Ubuntu 16.04LTS, ruby 2.3.1p112)

$ ./test_cmplx3.rb
複素数のテスト(3) - Matrix, Vectorの複素数拡張
1.4142135623730951
(2.0+0.0i)
Vector[(0.9999999999999998+1.7320508075688774i), (0.0+2.0i)]
$
 
コメントする

投稿者: : 2016/09/17 投稿先 Ruby

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。