Страница: 1 |
Вопрос: Однородные системы уравнений | Добавлено: 01.06.04 18:09 |
Автор вопроса: ![]() |
Люди, подскажите как написать программу для решения однородных систем линейных ур-ний. Напоминаю: система, где число уравнений НЕ равно числу неизвестных, а в правой части всех уравнений стоит ноль. При этом не факт, что все коэффициенты матрицы отличны от нуля! Подскажите хотя бы сайт, или библиотеку (например, из MatCAD) где есть этот алгоритм. |
Ответы | Всего ответов: 8 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 147688925 Вопросов: 24 Ответов: 708 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 01.06.04 19:05 |
Excel не смотрел? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #2 | Добавлено: 02.06.04 13:49 |
Есть алгоритм для поиска фундаментальной системы решений (т.е. общего решения, т.к. в данном случае решение не единственно - есть целый континуум решений).
После решения системы уравнений получаете частное решение (в вашем случае - ноль) и набор векторов (ненулевых), которые можно с различными коэффициентами добавить к частному решению, чтобы получить одно из общих решений. адрес: http://alglib.manual.ru/linequations/svd.php Как прочитаете абзац с описанием идеи алгоритма, увидите три ссылки: "исходник на С++", "исходник на Delphi", "исходник на VB6". Вам нужна третья, но перед тем, как скачивать исходник, посмотрите дальше, за ссылки. Там будут комментарии, в которых описываются параметры, принимаемые алгоритмом, и их значение. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 24 Ответов: 13 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 02.06.04 21:31 |
Я скачал этот алгоритм SVD-разложения, но никак не могу по--человечески вызвать эту ф-цию. Я задаю массив 4Х4:
1 0 -2 0 1 4 -4 -1 1 2 0 -2 0 1 -1 0 Ошибка-деление на нуль. Помогите с ней разобраться, please! |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 24 Ответов: 13 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 03.06.04 11:52 |
Я скачал этот алгоритм SVD-разложения, но никак не могу по--человечески вызвать эту ф-цию. Я задаю массив 4Х4: 1 0 -2 0 1 4 -4 -1 1 2 0 -2 0 1 -1 0 Ошибка-деление на нуль. Помогите с ней разобраться, please! |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #5 | Добавлено: 04.06.04 10:16 |
Задайте параметр Epsilon ненулевым малым числом (что-нить около 0.0001 или 0.000001). Также проверьте, чтобы нумерация элементов во входных данных начиналась не от 0, а от 1. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #6 | Добавлено: 04.06.04 13:49 |
Задайте параметр Epsilon ненулевым малым числом (что-нить около 0.0001 или 0.000001). Также проверьте, чтобы нумерация элементов во входных данных начиналась не от 0, а от 1. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 05.06.04 13:18 |
Ботайте линал!
Матрица системы однородных линейных уравнений совместна и имеет одно нулевое решение и n-r ненулевых линейно независимых, где n-число неизвестных, а r-ранг матрицы. Данные вектора решений образуют линейное многообразие, все вектора которого являются решениями системы. Линейное многообразие - совокупность векторов, являющихся линейной комбинацией векторо базиса. Обычно в качестве базиса принимается решение системы при значениях x[r+1], x[r+2], ... , x[n] равных (1;0;...;0), (0;1;...;0), ... , (0;0;...;1), значения x[1], ... , x[r] получают из решения полученной неоднородной системы. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #8 | Добавлено: 05.06.04 19:03 |
> Обычно в качестве базиса принимается > решение системы при значениях x[r+1], x[r+2], ... , x[n] > равных (1;0;...;0), (0;1;...;0), ... , (0;0;...;1) Способ некорректен. Существуют системы, в которых сначала требуется произвести перестановку неизвестных, чтобы сработал ваш способ. А какую именно перестановку, неизвестно - задачка-то нетривиальная. Лучше и более обще, чем SVD в этом плане пока не придидумали. |
Страница: 1 |
|