Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение ортогонального дополнения, достроить набор векторов 
:(
    Опции темы
comcon1
Дата 25.3.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Дана матрица NxM (N<M), представляет из себя N векторов (линейно независимых). Как найти оставшиеся N-M векторов так чтобы каждый был ортогонален предыдущим N векторам?

Задача построения ортогонального дополнения. Можете послать меня на соответствующий учебник линала - я просто щас вот ничего не нашел. Помню, что делал когда-то.


--------------------
PM MAIL   Вверх
maxim1000
Дата 25.3.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



я уже не помню, как нам рассказывали на линейной алгебре, так что, возможно, моё решение не самое оптимальное, но можно попробовать:

1. ортогонализируем имеющиеся вектора
2. по одному начинаем добавлять базисные вектора (0,...,0,1,0,...0), при каждом добавлении ортогонализируем его со всеми предыдущими
какие-то вектора уйдут в ноль (иначе получили бы N+M линейно независимых векторов), их нужно убрать, оставшиеся, начиная с N+1-го, - базис дополнения

Это сообщение отредактировал(а) maxim1000 - 25.3.2008, 13:28


--------------------
qqq
PM WWW   Вверх
comcon1
Дата 25.3.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Я, пока катался в метро, придумал алгоритм. В нем не нужно менять предыдущие вектора (ортогонализовывать). Хочется услышать комментарии, не через ж*пу ли алгоритм.

Допустим есть 3 вектора в 7мерном пространстве. Нужно найти четвертый, так чтобы он был ортогонален предыдущим трём. Для этого будем искать его числа, решая систему уравнений:
Код

a11*x1+a12*x2+...+a17*x7 = 0
a21*x1+a22*x2+...+a27*x7 = 0
a31*x1+a32*x2+...+a37*x7 = 0

Находим в матрице 7x3 3 столбца таким образом, чтобы они образовывали невырожденную матрицу. Допустим, это столбцы 1,4 и 7. 
Присваиваем x2,x3,x5,x6 по единице (например).
Код

a11*x1+a14*x2+a17*x7 = (a12+a13+a15+a16)
a21*x1+a24*x2+a27*x7 = (a22+a23+a25+a26)
a31*x1+a34*x2+a37*x7 = (a32+a33+a35+a36)

Решаем методом крамера. 

все. вектор готов.


--------------------
PM MAIL   Вверх
maxim1000
Дата 25.3.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



если вспомнить, что алгоритм Гаусса - практически дословное описание алгоритма ортогонализации, то сведение к системе линейных уравнений, по сути, делает то же самое
только тут Крамер вместо Гаусса
как по мне, так лучше Гаусс - в общем случае он удобнее, а то для метода Крамера определители считать придётся


--------------------
qqq
PM WWW   Вверх
comcon1
Дата 25.3.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Меня какбы это не напрягает, потомукмо я юзаю линал-библотеки.)) 

А в жизни всегда предпочитал Крамера юзать, кстати.


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.