Мені потрібно генерувати випадкові неквадратичні матриці з рядками та стовпцями, елементами, випадковим чином розподіленими із середнім = 0, та обмеженими таким чином, що довжина (норма L2) кожного рядка дорівнює а довжина кожного стовпця - . Рівнозначно, значення квадратних значень дорівнює 1 для кожного рядка і для кожного стовпця.
Поки я знайшов один із способів досягти цього: просто ініціалізувати елементи матриці випадковим чином (наприклад, з рівномірного, нормального чи розподілу лапла з нульовою середньою та довільною дисперсією), а потім по черзі нормалізувати рядки та стовпці до , що закінчується нормалізацією рядків. Це, здається, досить швидко збігається до бажаного результату (наприклад, для і , відхилення довжини стовпців зазвичай становить ~ після ітерацій), але я не впевнений, чи можу я залежати від цієї швидкої швидкості конвергенції. в цілому (для різних розмірів матриці та розподілу початкових елементів).
Моє запитання таке: чи є спосіб досягти бажаного результату ( , ) безпосередньо без ітерації між нормалізація рядків / стовпців? Наприклад, щось на зразок алгоритму нормалізації випадкового вектора (ініціалізувати елементи випадковим чином, вимірювати суму квадратних значень, а потім масштабувати кожен елемент загальним скаляром). Якщо ні, чи є проста характеристика швидкості конвергенції (наприклад, ітерації чисел до помилки ) описаного вище ітеративного методу?