2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 08:47 
logout2d в сообщении #323455 писал(а):
Я не знаю как у вас Гаусс дает {-4,1}, у меня он дает {0,0} и при этом он решает СЛАУ правильно! Значит метод работает!

А-а, вот оно что. Метод-то работает, а вот Вы -- не очень.

В любом машинном пакете метод Гаусса решает только невырожденные системы. (Мог бы, в принципе, и вырожденные, но мне таких пакетов не попадалось.) И по Вашей последней ссылке машина об этом честно и говорит: "Матрица вырождена, так что адью".

Но Вы-то ведь пытаетесь искать собственные векторы. И, значит, Ваша система принципиально вырожденна. А находить надо -- общее решение этой системы. Да, именно методом Гаусса, и именно стандартным, причем в векторной форме. Только пальчиками, как на первом курсе учат, а не маткадами.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 09:30 
В целом все так и есть.

ewert в сообщении #323677 писал(а):
А-а, вот оно что. Метод-то работает, а вот Вы -- не очень.


Это не совсем верно, я пишу программы разного плана. Я вообще предпочитаю с начало самому научиться решать, а потом перекладывать это в код. Я могу решить вырожденную систему ручками, но не понимаю как можно научить программу решать такие. У меня то задача не просто решить а написать программу для многократного решения задач ИБО (см пред офтоп) ручками можно, но не катит так решать :-)

Подскажите а как "он в принципе МОЖЕТ решать вырожденные системы"
Может я смогу реализовать такой метод, было бы очень неплохо.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 09:40 
logout2d в сообщении #323685 писал(а):
, но не понимаю как можно научить программу решать такие.

Этого я не понимаю. Метод Гаусса достаточно жестко формализован. Пишем расширенную матрицу системы и применяем к ней стандартные преобразования. И раз уж Вы "пишите программы" -- то что может помешать Вам перевести все эти действия в машинный код?...

Разве что ловля нулевых строк (с учетом погрешностей округления). Ну так нормируйте все строчки и задайте порог отсечения.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 09:48 
logout2d в сообщении #323685 писал(а):
Метод Гаусса достаточно жестко формализован. Пишем расширенную матрицу системы и применяем к ней стандартные преобразования. И раз уж Вы "пишите программы" -- то что может помешать Вам перевести все эти действия в машинный код?...


Я так и делаю, составляю расширенную матрицу и вперед по стандартному алгоритму.

logout2d в сообщении #323685 писал(а):
Ну так нормируйте все строчки и задайте порог отсечения.


Как нормировать? Какой порог?
Пожалуйста несколько подробней.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 09:57 
Порог -- в некотором смысле от балды. Считаем какую-ниудь норму исходной матрицы (не очень важно какую) и умножаем ее на, скажем, десять в минус двенадцатой; это и будет порог. А потом, при поиске главного элемента в правой нижней подматрице -- полагаем ее нулевой, если все ее элементы оказались ниже этого порога.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 10:19 
Хм... метод интересный, сейчас мне не нужен, но позже займусь реализацией.
Спс что просвятил :-)

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 10:24 

(Оффтоп)

logout2d в сообщении #323702 писал(а):
просвятил

к сожалению, сана у меня нету, так что просвЯтить я никак не могу. А метод -- стандартный.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 10:41 
ewert в сообщении #323705 писал(а):
А метод -- стандартный


Тем более спасибо, не знал о таком :-)

ewert в сообщении #323677 писал(а):
(Мог бы, в принципе, и вырожденные, но мне таких пакетов не попадалось.)


Правда возникает вопрос если он стандартный то почему не реализовывается в стандартных пакетах типа Маткада. Правда возникает и ответ, там и так есть поиск собственных чисел и векторов каким методом неважно, надо думать там более приспособленный метод. Ну это уже совсем другая тема.

 
 
 
 Re: Сингулярное разложение матриц. Помогите разобраться
Сообщение25.05.2010, 10:56 
logout2d в сообщении #323706 писал(а):
Правда возникает вопрос если он стандартный то почему не реализовывается в стандартных пакетах типа Маткада.

Там проблемы в первую очередь с интерфейсом. Процедура должна возвращать (например) частное решение и базис ядра матрицы, причем размерность ядра заранее не известна. И главное: трудно сформулировать универсально разумный способ определения ранга матрицы.

 
 
 [ Сообщений: 24 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group