Пусть S - положительно определенная матрица. Следовательно, S имеет разложение Холецкого L.L '= S, где L - нижнетреугольная матрица, а '
обозначает транспонирование матрицы, а .
обозначает умножение матрицы. Пусть x взят из гауссовского распределения со средним нулем и ковариацией, равной единице матрицы Тогда y = L.x имеет гауссово распределение со средним нулем и ковариацией S.
Итак, если вы можете найти подходящие ковариационные матрицы A и B, вы можете использовать их разложения Холецкого для генерации выборок. Теперь о построении матрицы, которая имеет собственные значения, следующие заданному распределению. Мой совет - начать со списка образцов из экспоненциального распределения; это будут ваши собственные значения. Пусть E = матрица с показательными выборками по диагонали и нулями в противном случае. Пусть U - любая унитарная матрица (т.е. столбцы ортогональны, а норма каждого столбца равна 1). Тогда U.E.U 'является положительно определенной матрицей с указанными собственными значениями.
U может быть любой унитарной матрицей. В частности, U может быть единичной матрицей. Это может сделать все остальное проще; вам нужно проверить, подходит ли U = identity для проблемы, над которой вы работаете.
Я не знаю ни о каких пакетах, чтобы сделать это, но это могло просто быть моим разговором незнания.
Два предложения:
Настройте машину Linux (разделите ПК или виртуальную машину), и снарядите об/мин удаленно с помощью сценариев (см. ssh/scp/samba). Это кажется мне безопасным подходом, который избегает миграции среды полной сборки.
Более предприимчивый подход должен был бы записать Ваши собственные файлы об/мин с помощью Java. Формат файла об/мин, кажется, заголовок, сопровождаемый одним из многих стандартных форматов архива. Некоторый анализ содержания архива был бы необходим, таким образом, этот подход мог бы быть довольно трудоемким в ближайшей перспективе (хотя он, вероятно, приведет к более быстрым сборкам).
Возможное решение состоит в том, чтобы использовать чистый инструмент RPM Manipulation Java, такой как тот, описанный в:
Проверяя руководство Муравья, я нашел следующую дополнительную задачу:
http://ant.apache.org/manual/Tasks/rpm.html
Однако это только работает с компьютерами Linux
Я не думаю, что это - возможные, пакеты во время выполнения, созданные для Linux, не будет работать над окнами (мы не ожидаем dlls и exes на Linux, делаем нас!). Cygwin сталкивается с подобными трудностями, и они ясно заявляют, что делают это путем компиляции исходных файлов для окон.
Также рассмотрите java-библиотеку redline-rpm и задачу ant. https://github.com/craigwblake/redline