Используйте базовую, угловатую, как javascript framework для дизайна пользовательского интерфейса, и извлекайте данные, используя rest api. Это полностью удалит зависимость java от пользовательского интерфейса.
Пример кода (Python):
from scipy import random, linalg
matrixSize = 10
A = random.rand(matrixSize,matrixSize)
B = numpy.dot(A,A.transpose())
print 'random positive semi-define matrix for today is', B
Необходимо быть ясными на определении "случайных". Каковы Ваши ограничения на получающуюся матрицу? Вы хотите, чтобы коэффициенты были однородно или обычно распределены? Вы хотите, чтобы собственные значения имели конкретное распределение? (и т.д.).
существует много способов генерировать положительные полуопределенные матрицы M, включая:
По числовым причинам, я, вероятно, выбрал бы второй подход путем генерации диагональной матрицы с желаемыми свойствами, затем генерируя Q как состав многих отражения Домовладельца (генерируйте случайный вектор v, масштаб к единичной длине, H = я - 2vv <глоток> T глоток>); я подозреваю, что Вы хотели бы использовать K * N, где N является размером матрицы M, и K является числом между 1.5-3 (я предполагаю на этом), который гарантирует, что это имеет достаточно степеней свободы.
Вы могли также генерировать ортонормированную матрицу Q использование вращения Givens : выберите 2 отличных значения от 1 до N и генерируйте вращение Givens вокруг той пары осей с углом, равномерно распределенным от 0 до 2 * пи. Тогда возьмите K * N их (то же обоснование как выше абзаца), и их состав приводит к Q.
редактирование: я был бы предположение (не уверенный), что, если у Вас есть коэффициенты, которые независимо сгенерированы и обычно распределяются, тогда матрица в целом "обычно распределялась бы" (независимо от того, что это означает). Это верно для векторов, по крайней мере. (N независимо сгенерированные Гауссовы случайные переменные, один для каждого компонента, дает Вам Гауссов случайный вектор), Это не верно для равномерно распределенных компонентов.
Если можно генерировать случайную матрицу на выбранном языке, то при помощи свойства, что матрица, умноженная на транспонировала, является положительным semi-definte, можно генерировать случайный положительный полуопределенный matix
В Matlab, это было бы столь же просто как
% Generate a random 3x3 matrix
A = rand(3,3)
% Multiply by its tranpose
PosSemDef = A'*A
Естественные распределения на положительно полуопределенных матрицах - это распределения Уишарта .