![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Веталька |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 338 Регистрация: 2.11.2008 Репутация: нет Всего: 6 |
подскажите как связать это с решением СЛАУ методом Жордана-Гаусса?
тоисть заставить искать базисные и опорные решения
Это сообщение отредактировал(а) Веталька - 24.1.2010, 21:56 -------------------- Ради зачета студент идет на все, даже на лекции........................ |
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
У меня та же тема...
Хотелось бы знать, как реализовать на с++ нахождение базисных решений СЛАУ и как вообще дать программе знать, когда какое решение (общее, базисное, опорное) искать... |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Ответьте на вопрос: что такое "общее решение" для вырожденной непротиворечивой СЛАУ?
Просто я даже не знаю, что Вам писать. Просто если вы не понимаете математику, речь о С++ водить бесполезно. |
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
ну, если слау вырожденая, то нужно проверить систему на совместность. если система совместна, то может быть тривиальное решение или базисное. Вроде так... Если нет, для начала буду рад ссылке на толковое разъяснение даной темы для бестолочи (меня)...
|
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
может быть тривиальное решение или базисное?
Нет, решение СЛАУ одно. Если система вырождена и совместна, то решение есть вектор X некоего подпространства. Небоходимо найти 1) размерность подпространства решений 2) выразить решение (вектор X) в виде л.к.: X = X0 + a1X1 + a2X2 + .. + anXn, где X1 - Xn - базис подпространства, X0 - постоянный вектор, an - произвольные коэффициентики Деление решений на базисные, небазисные и прочую фигню - исключительно искусственно. З.Ы. Я не вижу в приведенном коде даже проверки на совместность. Добавлено через 1 минуту и 22 секунды Толковой ссылки не знаю. Учебники по ЛинАлу, наверно. Пишите конкретно, чего не ясно, здесь ответят. |
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
Для точности: дано задание на лабораторную: 1)а) решить СЛУ методом Жордана-Гаусса; б)найти все базисные решения; 2) найти все опорные (неотрицательные базисные) решения СЛУ.
Приведенный вверху код решает систему методом Жордана-Гаусса, если количество уравнений равно количеству неизвестных (или ранг основной матрицы равен количеству неизвестных-так наверное точнее сказано). Если количество уравнений меньше количества неизвестных, то именно тогда, я так понимаю, нужно искать базисные решения. По поводу проверки на совместность: нужно сравнить ранг основной матрицы и расширенной. Но как вписать поиск ранга в имеющийся код? |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Что значит "как вписать"? У тебя есть матрицы-массивы. Есть гугл и запрос "нахождение ранга матрицы". Что конкретно не понятно?
|
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
Ну вот, ранг теперь вычисляется. |
|||
|
||||
Лешкин |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
Далее: если ранг равен количеству переменных, то можна выводить результат решения методом ж-г--последний столбец;
если ранг меньше количества переменных, то нужно искать общее решение (в виде выражения базисных неизвестных через свободные) и базисное решение. Это я взял с небольших указаний к лабораторной... Вы пишете, что:
это будет С(n^m), где n-количество неизвестных, а m-количество базисных неизвестных. базисные неизвестные-это те, которые после прохода массива методом ж-г встречаются только в одном уравнении (тоесть 1 при (i=j) и 0 в других ячейках столбика j).
1)Допустим, система АХ=В. постоянный вектор-это В? 2)Если что не так, прошу исправить меня. 3)Теперь самый важный на сегодня вопрос: мне теперь разбивать вектор, который есть, и потом каким-то образом выражать общее решение (прошу подсказать как), или можно обойтись без этого? |
||||
|
|||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Ну вот смотри:
x+4y+8z = 5 Соответственно ранг = 1 Кол-во переменных = 3 Базис подпространства решений = 3-1 = 2 базисные функции x = 5 - 4y -8z Соответственно решение: (x,y,z) = (5-4y-8z, y, z) = = (5, 0, 0) + (-4, 1, 0)y + (-8, 0, 1)z Это чтобы был наглядный пример, на который ориентироваться при работе с общим видом. |
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
спасибо), пробую дальше...
|
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
Итак, программа решает системы с рангом равным количеству неизвестных, а также находит общее решение для системы с рангом меньшим за количество неизвестных. Остается найти базисные... Также отреставрировать сортировку... Вопросы: 1) может кто знает, почему стопорится сортировка? 2) как исходя из общих, найти базисные решения? |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
базисные ты уже нашел. Базисные - это общие при значениях свободных переменных = 0, вроде бы.
|
|||
|
||||
Лешкин |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.1.2010 Репутация: 1 Всего: 1 |
если взять такую матрицу:
3х5 1 -1 3 1 4 2 3 -1 -1 6 1 -6 10 4 6 то базисных решений здесь будет 6. Находятся они путем замены поочередно неизвестных нулями. При этом количество заменяемых на ноль (вроде бы) равно рангу матрицы. сейчас мучаю это решение на с++. Добавлено через 4 минуты и 19 секунд для предыдущей матрицы базисные решения: Х1=(9, 2, 0, 0) Х2=(0, 11, 9, 0) Х3=(11, 0, -2, 0) Х4=(10, 0, 0, 5) Х5=(0, 20, 0, -45) Х6=(0, 0, 20, 55) Добавлено через 6 минут и 7 секунд А как на счет сортировки? Почему вектор ругается? |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Подожди.
(С) Базисным решением системой уравнений называется такое решение при котором свободные переменные равны нулю. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |