Статистика и матричная алгебра в Ruby

Я бы поместил их в анонимное пространство имен в файле CPP. Это делает их закрытыми для реализации и в то же время делает их видимыми для не-членских функций, которые являются частью реализации (например, operator<<).

5
задан Shai 29 June 2013 в 20:51
поделиться

2 ответа

Попробуйте использовать библиотеку 'matrix':

http://www.ruby-doc.org/stdlib/libdoc/matrix/rdoc/index.html
1
ответ дан 14 December 2019 в 08:58
поделиться

Численно более стабильная возможность, чем прямая инверсия, заключается в использовании разложения Холецкого с пакет вы найдете здесь :

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

Лучше, чем инвертировать l, использовать метод, описанный в статье викпедии, ссылка на которую приведена выше.

Если ваша проблема численно слишком нестабильна, рассмотрите Разложение по сингулярным значениям , но у меня нет кода для этого.

3
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: