![]() |
|
![]() ![]() ![]() |
|
Ivanich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
Посоветуйте метод для решения системы линейных алгебраических уравнений. Совсем забыл написать, что СЛАУ мне надо решеть однородные.
Это сообщение отредактировал(а) Ivanich - 23.3.2007, 14:59 |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
метод Крамера
метод обратной матрицы метод Гаусса это то, что пришло в голову сходу. а вообще, я бы не гнушался воспользоваться поиском в Wikipedia(результаты поиска "системы линейных уравнений") |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Вручную больше не решаю...
![]() А вообще, если тривиальная система, то можно и без методов, а просто "подставленим одного в другое"... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Ivanich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
вот и я не хочу, мне надо написать программу. Писать буду на С++, теорию уже почитал и знаю что метод Гаусса и Крамера для этого мне не подойдут. Как я понял мне надо использовать итерационный метод(уже разобрался с методом простых итераций, но он не подходит, так как решать системы мне надо однородные). Подскажите начинающему ![]() Это сообщение отредактировал(а) Ivanich - 23.3.2007, 14:56 |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Ivanich, т.е. ссылки на список из 9 методов - слишком мало?!
![]()
|
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Ой-ли? А тот же метод Жордано-Гаусса не подходит? Не верю! Чтобы на Cи такую программу написать, много времени не надо. Это сообщение отредактировал(а) SoWa - 24.3.2007, 07:51 -------------------- Всем добра ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Гаусс - молодец был
![]() |
|||
|
||||
Ivanich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
Так метод Гаусса же дает серьезную погрешность, в отличии от методов итерации при вычисление СЛАУ на ЭВМ. Или я ошибаюсь? |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Смотря как вычисляешь. если сохранять дроби, то погрешности не будет.
|
|||
|
||||
esperanto |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
Ошибаешься. Есть системы для которых гаус вообще не дает погрешности. Есть системы для которых итеративные методы не сходятся. --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
||||
|
|||||
Joss |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.3.2006 Репутация: нет Всего: 1 |
Однородная СЛАУ имеет либо единственное тривиальное решение, либо бесконечное множество решений. Во втором случае описанные методы вообще неприменимы |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
почему же "неприменимы"? например, метод Крамера.
если "общий" определитель равен нулю и все "частные" определители тоже равны 0, то решений - бесконечное множество. если "общий" определитель равен нулю и хотя бі один частній определитель не равен нулю, то решений нет; система несовместна если "общий" определитель не равен нулю, то решение есть и оно единственно. ------------ единственное базовое ограничение для (известных мне) численных методов: количество переменных == количество уравнений в системе. |
|||
|
||||
Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 1 Всего: 50 |
Ээ...
Сведение матрицы СЛАУ к ступенчатой форме хоть Гауссом, хоть итерационным каким методом... В случае однородности СЛАУ некоторые строки -- нулевые; соответствующие этим строкам переменные выбираем в качестве свободных переменных, остальные строки дадут зависимости несвободных от свободных. -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
Ivanich |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
|
||||||||
|
|||||||||
Artemios |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 1 Всего: 50 |
Ну да, немного попутал: в голове перемешалось с итерационными методами сведения матрицы (не СЛАУ) к треугольной/диагональной форме в задаче поиска собственных значений. Хотя, и те методы, в немного урезанном варианте, кажется, должны быть применимы: там же обнуляет элементы одно преобразование (строк например), а второе преобразование (столбцов) является компенсирующим для сохранения подобности матриц. А при решении СЛАУ подобности матриц не требуется, но требуется неизменность порядка столбцов, то есть компенсирующее преобразование можно опустить... например получили такую треугольную матрицу: 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 Из последних 2-х уравнений -- x_3 и x_4 -- свободные переменные, из 2-го сверху уравнения x_2 = -x_4, из 1-го x_1 = -x_2 - x_3, а с учетом того, что по x_2 уже решено, то x_1 = x_4 - x_3. Таким образом, решение системы -- 2-мерная плоскость в 4-мерном пространстве: {x_2 = -x_4, x_1 = x_4 - x_3} А чтобы не гадать, по каким переменным уже разрешено, а по каким еще нет, лучше сразу приводить максимальный ненулевой минор матрицы к диагональному виду: 1 0 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 Кстати,
Так как писать собрался на C/C++ , ничего не может быть проще, чем скачать библиотеку на длинную арифметику: gmp (советую), и проводить вычисления в дробях произвольной длины с абсолютной точностью. Это сообщение отредактировал(а) Artemios - 26.3.2007, 18:27 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |