Tôi cần đảo ngược ma trận phương sai-hiệp phương sai trong Ruby và vector bằng phép nhân ma trận. Tôi nên sử dụng thư viện Ruby số/Gem nào?Thống kê và đại số ma trận trong Ruby
5
A
Trả lời
1
Hãy thử sử dụng 'ma trận' thư viện:
http://www.ruby-doc.org/stdlib/libdoc/matrix/rdoc/index.html
3
Một khả năng số lượng ổn định hơn so với đảo ngược trực tiếp là sử dụng một Cholesky decomposition với gói bạn tìm here:
require 'Cholesky.rb'
require 'pp'
# m is the covariance matrix you want to invert (it is positive semidefinite)
l = m.cholesky
li = l.inverse
lit = li.transpose
# lit*li is approximately the inverse and the next line shows this
pp lit*li*m
Tốt hơn so với đảo ngược l là sử dụng phương pháp được mô tả trong bài viết wikpedia được liên kết ở trên.
Nếu sự cố của bạn không ổn định về số lượng thì hãy xem xét Singular Value Decomposition, nhưng tôi không có mã cho nó.
3
Nếu bạn có thể biên dịch mã, sử dụng ruby-GSL
gem install gsl
Điều ngược lại có thể thu được bằng LU mô-đun
inverse=GSL::Linalg::LU.invert(matrix)
0
Có NMatrix. Có hỗ trợ cho các hoạt động khác nhau, bao gồm một số từ BLAS và LAPACK (bằng cách sử dụng ATLAS).