Интересно, как генерировать матрицу A
размера n*(n-1)
в MATLAB таким образом, что:Как создать ортонормированную матрицу, ортогональную вектору (1; ...; 1) в MATLAB?
transpose(A) * ones(n,1) = zeros(n-1,1)
transpose(A) * A = eye(n-1,n-1)
Интересно, как генерировать матрицу A
размера n*(n-1)
в MATLAB таким образом, что:Как создать ортонормированную матрицу, ортогональную вектору (1; ...; 1) в MATLAB?
transpose(A) * ones(n,1) = zeros(n-1,1)
transpose(A) * A = eye(n-1,n-1)
Оператор нуль-пространства именно это делает, он находит матрицу всех ортогональных векторов:
>> null([1;1;1;1]')
ans =
-0.50000 -0.50000 -0.50000
0.83333 -0.16667 -0.16667
-0.16667 0.83333 -0.16667
-0.16667 -0.16667 0.83333
Он работает успешно, и спасибо за вашу услугу. Однако, интересно, можно ли случайным образом выбрать такую матрицу A? То есть, вычисленный А будет отличаться каждый раз, когда я повторяю приведенную выше формулу. –
Вы хотите, чтобы A был случайным? Сразу умножьте его на случайную вращение (= ортонормированную) матрицу размерности (n-1) * (n-1). – SpamBot
Да, это работает. I Правое умножение A со случайной ортонормированной средней сохраняющей матрицей размером (n-1) * (n-1). Спасибо за вашу услугу. –
то, что у вас уже пытался ? –
Я еще ничего не реализовал. –
Мы хотим, чтобы вы что-то пытались попробовать, поскольку это помогает сузить круг вопросов, как реагировать. вы также можете указать, какие части вы знаете и какая часть (и) конкретно неизвестна вам. попробуйте использовать код в качестве примера –