4202 / 1794 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
1 | ||||||
Гаусс для коллекции16.03.2010, 04:57. Показов 20605. Ответов 13
Метки нет Все метки)
(
Решенная здесь задача. Дано: матрица a коэффициентов системы уравнений в в виде линерализованного массива (a[0][0], a[1][0], a[2][0]... a[n-1][0], a[0][1], a[1][1], a[2][1]...a[n-1][1], a[0][2], a[1][2], a[2][2]...a[n-1][2]...a[0][n-1], a[1][n-1], a[2][n-1]...a[n-1][n-1]), вектор-столбец b свободных членов той же системы уравнений и число уравнений. Матрица квадратная, число элементов вектора равно числу строк матрицы. Система эквивалентна матричному уравнению a*x=b. Требуется найти: вектор x решений системы уравнений. Если система не имеет однозначного решения, вернуть пустой указатель на массив x.
1
|
|
16.03.2010, 04:57 | |
Ответы с готовыми решениями:
13
Решение системы линейных уравнений методом Гаусса Реализация метода Гаусса: приведение матрицы к треугольному виду Решение систем линейных уравнений методом Гаусса Крамер для коллекции |
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
|
|
16.03.2010, 05:15 | 2 |
taras atavin, а каким компилятором пользуешься?
У меня в этом блоке и Dev-C++ и VS 2008 пишут одно и тоже: что нельзя использовать тип double с операцией поразрядного присваивания &= ...?
1
|
4202 / 1794 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
16.03.2010, 05:56 [ТС] | 3 | |||||
Для инта почему-то работало, вот я и заменил. Придётся заменить назад: в оргинале был обмен через temp.
0
|
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
|
|
16.03.2010, 05:58 | 4 |
Все верно поразрядные либо с int либо,что чаще, с unsigned int используются
0
|
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
|
||||||
22.03.2010, 14:45 | 5 | |||||
taras atavin, код немного был с помарками и немного глючил =))), я вроде исправил,но щас другая проблема, стал корни считать как - то в разнобой, вот пример(но код оч хороший, нули на глав диаг и те "пережевывает", что не во всех реализациях Гаусса бывает):
А должен быть: 3, 1, 1, -5, 1.17, -1.25 (подстановкой в ур-ния проверял) Весь день седня долбаюсь никак не хочет в нормальном порядке корни искать =((( Может есть идеи по этому поводу??? Добавлено через 23 часа 56 минут Может есть мысли по этому поводу???
1
|
sergeyq
|
|
26.03.2010, 18:31 | 6 |
код обратной матрицы бы
|
4202 / 1794 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
17.06.2010, 10:08 [ТС] | 7 | |||||
там ещё
надо заменить на
0
|
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
|
|
17.06.2010, 14:55 | 8 |
0
|
4202 / 1794 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
18.06.2010, 11:07 [ТС] | 9 | |||||
Я немножко пропустил, что вместе со строками a должны точно также переставляться и элементы b:
0
|
Модератор
![]() ![]() ![]() ![]() 11655 / 7167 / 1702
Регистрация: 25.07.2009
Сообщений: 13,132
|
|
02.10.2010, 22:23 | 10 |
0
|
43 / 37 / 17
Регистрация: 11.11.2009
Сообщений: 246
|
|
12.10.2010, 08:27 | 11 |
Выкладываю свой не консольный вариант, сделанный по алгоритму преподавателя. На особую гениальность не претендует, но работает. Метод Гаусса с выбором наибольшего элемента столбца. Возможно не правильная проверка на линейность. Но у меня приняли. Кажется, здесь есть схожий, а, возможно, и такой же вариант(самый первый пост). Если есть ошибки в программе, прошу мне написать. Сделано на Borland Developer Studio(C++ Builder).
1
|
NicholasNoise
|
|
16.10.2010, 23:58 | 12 |
поделюсь своими трудами...
код "чуть" короче имеются недоработки (было лень пришивать лишние проверки) |
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
||||||
14.04.2014, 14:30 | 14 | |||||
Честно говоря офигел... Искал вчера несколько часов решение СЛАУ общего вида. Все либо зависали либо были для частных случаев. В итоге решил довести до ума то, что валялось здесь. Я выяснил (методом внимательного всматривания), что правильным порядок иксов в ответе нарушается из-за изменения порядка строк в A (кстати, так и не понял, почему при этом в b ничего менять не надо и ответ правильный). Быстро дописал костыль, проверил, всё идеально.
Работает, естественно, не слишком быстро но для размерности меньше 1000 сойдёт... Решает меньше секунды...
СЛАУ размерностью 5184 решалась 228 секунд... ну да ладно, сойдёт для сельской местности...
1
|
14.04.2014, 14:30 | |
Помогаю со студенческими работами здесь
14
Удаление элемента коллекции в коллекции коллекции ) Сделать сортировку коллекции вместо создания новой коллекции с передачей IOrderedEnumerable<T> Как удалить элемент из коллекции, во время перебора этой коллекции foreach? Доступ из элемента коллекции к другим элементам коллекции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |