12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
||||||
1 | ||||||
Решение систем линейных уравнений методом Гаусса20.12.2013, 01:46. Показов 7681. Ответов 21
Метки нет (Все метки)
Такая вот проблема вышла, не работает один случай и никак не могу найти - в чем ошибка. Возьмем к примеру такое уравнение:
0 0 0 1 2 3 6 9 7 2 7 8 0 0 0 2 4 6 0 0 0 4 8 12 5 0 9 1 3 9 - если это вбить, то уравнение решается вполне нормально, убираются 2 из одинаковых строк и образуется матрица из 3 строк. 5 неизвестных и последний столбец - это чему они равны. Тоесть в итоге проходит проверка, образуется следующее уравнение: 0 0 0 1 2 3 6 9 7 2 7 8 5 0 9 1 3 9 - Но вот такая проблема - если изначально вбить сразу же такую матрицу (ту, которая вышла после проверки) в программу, то выбрасывает ошибку. Не может решить дальше. В чем тут может быть проблема? И может ещё какие-нибудь недоработки в программе увидите. P.S смотреть в "case 1" И ещё такой вопрос - нам преподаватель говорила, что goto лучше не пользоваться - создает ли его использование в данных случаях какие-то проблемы?
0
|
20.12.2013, 01:46 | |
Ответы с готовыми решениями:
21
Решение систем линейных уравнений методом Гаусса Решение систем линейных уравнений методом Гаусса Решение систем линейных алгебраических уравнений методом Гаусса с выбором главного элемента Решение линейных уравнений методом Гаусса |
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
20.12.2013, 09:19 | 2 |
Вы хотите решить методом Гаусса СЛАУ с 5 неизвестными и всего 3 уравнениями?Этого сделать нельзя.
0
|
88 / 74 / 10
Регистрация: 26.07.2013
Сообщений: 545
|
|
20.12.2013, 14:51 | 3 |
- Blueeyer, насколько я помню линейную алгебру, из двух тождественных строк удалять можно
лишь одну (лишнюю), но не сразу две, иначе из системы уходит часть ее информации (сущности). - И, потом, чтобы решить линейную систему с одним столбцом свободных членов, надо чтобы в матрице число Столбцов было на единицу больше числа Строк. Для первой матрицы это выполняется, а для второй никак ...
0
|
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
|
|
20.12.2013, 15:27 | 4 |
для этих целей есть численные методы
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
20.12.2013, 16:44 [ТС] | 5 |
так в Гауссе если столбцов больше, чем строк, то просто все последние неизвестные не вычисляются. В данном случае ведь 3 тождественные строки и 2 из них удаляются. Всеравно при вычитании бы две строки дали нули, а строка полностью заполненная нулями - откидывается.
Добавлено через 2 минуты С теорией то тут всё в порядке, принцип по идее верный, преподаватель по математике проверял и все ответы выбивало верно, но вот в данном случае что-то идет не так. Не могу найти - что и почему.
0
|
Заблокирован
|
||||||
20.12.2013, 17:08 | 6 | |||||
Не по теме: 0_0. Где же вы учитесь, если не секрет? Добавлено через 10 минут
Вбил я вашу так сказать матрицу: Кликните здесь для просмотра всего текста
Заполнить матрицу в ручную или рандомно? (1 - вручную; 2 - рандомно): 1 Введите кол-во строк: 5 Введите кол-во неизвестных в строке: 5 Строка #1 ----- Неизвестная #1 0 Строка #1 ----- Неизвестная #2 0 Строка #1 ----- Неизвестная #3 0 Строка #1 ----- Неизвестная #4 1 Строка #1 ----- Неизвестная #5 2 Чему это равно? (1 строка) 3 Строка #2 ----- Неизвестная #1 6 Строка #2 ----- Неизвестная #2 9 Строка #2 ----- Неизвестная #3 7 Строка #2 ----- Неизвестная #4 2 Строка #2 ----- Неизвестная #5 7 Чему это равно? (2 строка) 8 Строка #3 ----- Неизвестная #1 0 Строка #3 ----- Неизвестная #2 0 Строка #3 ----- Неизвестная #3 0 Строка #3 ----- Неизвестная #4 2 Строка #3 ----- Неизвестная #5 4 Чему это равно? (3 строка) 6 Строка #4 ----- Неизвестная #1 0 Строка #4 ----- Неизвестная #2 0 Строка #4 ----- Неизвестная #3 0 Строка #4 ----- Неизвестная #4 4 Строка #4 ----- Неизвестная #5 8 Чему это равно? (4 строка) 12 Строка #5 ----- Неизвестная #1 5 Строка #5 ----- Неизвестная #2 0 Строка #5 ----- Неизвестная #3 9 Строка #5 ----- Неизвестная #4 1 Строка #5 ----- Неизвестная #5 3 Чему это равно? (5 строка) 9 Начальная матрица. 0 0 0 1 2 3 6 9 7 2 7 8 0 0 0 2 4 6 0 0 0 4 8 12 5 0 9 1 3 9 0 0 0 1 2 3 6 9 7 2 7 8 5 0 9 1 3 9 Конечный результат. 1 0 1.8 0.2 0.6 1.8 0 1 -0.422 0.089 0.378 -0.311 0 0 0 1 2 3 Для продолжения нажмите любую клавишу . . . Вы считаете, что получен ответ?
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
20.12.2013, 17:28 [ТС] | 7 |
В онлайн калькуляторах он такой же, только у меня последний шаг не выполняется. Там последняя строка должна отниматься от всех, что находятся выше. А так - всё верно решается. Но с данным шагом я разберусь позже.
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
20.12.2013, 17:39 [ТС] | 9 |
Кликните здесь для просмотра всего текста
http://ru.onlinemschool.com/math/assistance/equation/gaus/
Добавлено через 1 минуту Кстати, у меня же вроде change итак float стоит? Или я что-то пропустил и не вижу... Можете указать строчку, пожалуйста?
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
20.12.2013, 18:49 [ТС] | 11 |
ааа, это уже case 2 - там рандом, другой вариант. В case 1 всё с этим в порядке. Но допустим, если в том калькуляторе вбить те же данные, что и у меня, а последние две строки заполнить нулями, то всё нормально решает. У меня же - всё тот же косяк
0
|
Заблокирован
|
|
20.12.2013, 18:52 | 12 |
Та матрица по сути неправильная, добавьте проверку, что столбцов на 1 больше чем строк. И вам правильно сказали go to только запутывает код. Метод Гаусса можно закодить и без этого. Так что советую перестроить решение.
Добавлено через 53 секунды Кстати а вы пробывали решать нормальныйе СЛАУ вашей программой?
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
20.12.2013, 18:55 | 13 |
это не решение
Кликните здесь для просмотра всего текста
Решение:
Перепишем систему уравнений в матричном виде и решим его методом Гаусса 0 0 0 1 2 3 6 9 7 2 7 8 5 0 9 1 3 9 0 0 0 0 0 0 0 0 0 0 0 0 поменяем 1-ую строку и 2-ую строку местами 6 9 7 2 7 8 0 0 0 1 2 3 5 0 9 1 3 9 0 0 0 0 0 0 0 0 0 0 0 0 1-ую строку делим на 6 1 1.5 7/6 1/3 7/6 4/3 0 0 0 1 2 3 5 0 9 1 3 9 0 0 0 0 0 0 0 0 0 0 0 0 от 3 строк отнимаем 1 строку, умноженную соответственно на 5 1 1.5 7/6 1/3 7/6 4/3 0 0 0 1 2 3 0 -7.5 19/6 -2/3 -17/6 7/3 0 0 0 0 0 0 0 0 0 0 0 0 поменяем 2-ую строку и 3-ую строку местами 1 1.5 7/6 1/3 7/6 4/3 0 -7.5 19/6 -2/3 -17/6 7/3 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 2-ую строку делим на -7.5 1 1.5 7/6 1/3 7/6 4/3 0 1 -19/45 4/45 17/45 -14/45 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 от 1 строк отнимаем 2 строку, умноженную соответственно на 1.5 1 0 1.8 0.2 0.6 1.8 0 1 -19/45 4/45 17/45 -14/45 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 от 1; 2 строк отнимаем 3 строку, умноженную соответственно на 0.2; 4/45 1 0 1.8 0 0.2 1.2 0 1 -19/45 0 0.2 -26/45 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 Ответ: x1 + (1.8)x3 + (0.2)x5 = 1.2 x2 + (-19/45)x3 + (0.2)x5 = -26/45 x4 + 2x5 = 3
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
20.12.2013, 19:14 [ТС] | 14 |
Нормальные вроде решаются без проблем )
Добавлено через 50 секунд Ну по крайней мере в институте мы так же обычно что-то подобное решали )
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
20.12.2013, 19:59 | 16 |
Наверное имеется ввиду фундаментальная система решений.
0
|
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
|
|
20.12.2013, 20:26 [ТС] | 18 |
0
|
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
|
|
20.12.2013, 20:26 | 19 |
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
20.12.2013, 20:31 | 20 |
Вряд-ли.Решайте обычные СЛАУ,а сложности на старших курсах будете программировать
0
|
20.12.2013, 20:31 | |
20.12.2013, 20:31 | |
Помогаю со студенческими работами здесь
20
Решение линейных уравнений методом Гаусса Решение системы линейных уравнений методом Гаусса Решение системы линейных уравнений методом Гаусса Решение системы линейных уравнений методом Гаусса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |