[#46184] [ruby-trunk - Bug #7095][Open] Non-recursive marking — "authorNari (Narihiro Nakamura)" <authorNari@...>
6 messages
2012/10/01
[#46189] [ruby-trunk - Bug #7100][Open] WEBrick::HTTPServer.new で BindAddress を指定しない場合に必ず警告が記録される — "sho-h (Sho Hashimoto)" <sho-h@...>
5 messages
2012/10/02
[#46203] [ruby-trunk - Bug #7111][Open] New build option to enable/disable global method caching — "shugo (Shugo Maeda)" <redmine@...>
5 messages
2012/10/06
[#46258] [ANN] 2.0.0 feature freeze — Yusuke Endoh <mame@...>
Japanese later; 日本語は後で
5 messages
2012/10/24
[#46309] [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX — "usa (Usaku NAKAMURA)" <usa@...>
13 messages
2012/10/29
[#46310] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX
— Tanaka Akira <akr@...>
2012/10/29
2012年10月29日 10:31 usa (Usaku NAKAMURA) <[email protected]>:
[#46366] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX
— "U.Nakamura" <usa@...>
2012/11/02
こんにちは、なかむら(う)です。
[#46375] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX
— KOSAKI Motohiro <kosaki.motohiro@...>
2012/11/02
>> とくに指定しなければ、default external は locale から設定されるので、
[#46376] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX
— Urabe Shyouhei <shyouhei@...>
2012/11/02
On 11/02/2012 01:56 PM, KOSAKI Motohiro wrote:
[#46396] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX
— "U.Nakamura" <usa@...>
2012/11/05
こんにちは、なかむら(う)です。
[ruby-dev:46251] [ruby-trunk - Bug #7208][Open] 複素固有値を持つ行列に対する Matrix#eigensystem の返り値が正しくない
From:
"pypypy567 (py _)" <redmine@...>
Date:
2012-10-23 12:28:38 UTC
List:
ruby-dev #46251
Issue #7208 has been reported by pypypy567 (py _).
----------------------------------------
Bug #7208: 複素固有値を持つ行列に対する Matrix#eigensystem の返り値が正しくない
https://bugs.ruby-lang.org/issues/7208
Author: pypypy567 (py _)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p286 (2012-10-12 revision 37165) [i386-mswin32_100]
=begin
概要:
Matrix[[0, 1], [-1, 0]] などのように対角化可能だが固有値に複素数を含む行列に対して Matrix#eigensystem が正しい結果を返さないようです。
再現手順:
irb(main):001:0> RUBY_DESCRIPTION
=> "ruby 1.9.3p286 (2012-10-12 revision 37165) [i386-mswin32_100]"
irb(main):002:0> require 'matrix'
=> true
irb(main):003:0> m = Matrix[[0, 1], [-1, 0]]
=> Matrix[[0, 1], [-1, 0]]
irb(main):004:0> v, d, v_inv = m.eigensystem
ExceptionForMatrix::ErrNotRegular: Not Regular Matrix
from C:/ruby193/lib/ruby/1.9.1/matrix.rb:930:in `block in inverse_from'
from C:/ruby193/lib/ruby/1.9.1/matrix.rb:920:in `upto'
from C:/ruby193/lib/ruby/1.9.1/matrix.rb:920:in `inverse_from'
from C:/ruby193/lib/ruby/1.9.1/matrix.rb:912:in `inverse'
from C:/ruby193/lib/ruby/1.9.1/matrix/eigenvalue_decomposition.rb:51:in
`eigenvector_matrix_inv'
from C:/ruby193/lib/ruby/1.9.1/matrix/eigenvalue_decomposition.rb:80:in
`to_ary'
from (irb):4
from C:/ruby193/bin/irb.bat:19:in `<main>'
説明:
実行列 m が対角化可能なら m.eigensystem は以下のような分解を与えます。
(Float で計算されるので誤差により等しくならないことがあります。)
v * d * v_inv == m
しかし固有値に複素数を含む場合は上記のように上手くいかないようです。
最初は単にそういうのは非対応なのかと思いましたがそういうわけではなさそうです。
エラーの出所を追ってみたところ Matrix::EigenvalueDecomposition#build_eigenvectors が不正な値を返しているように思えました。
ソースコード: http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/32355/entry/lib/matrix/eigenvalue_decomposition.rb#L85
コードのコメントに有る URL の説明を読んでみると、正直仕組みはまったく分かってないのですが、添付したパッチのようにするのが正しいような気がしました。
試しに手元の ruby の該当部分を同じように書きかえてみたら期待通りの結果が返りました。
=end
--
http://bugs.ruby-lang.org/