Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Однородные системы уравнений Добавлено: 01.06.04 18:09  

Автор вопроса:  MARCUS | Web-сайт: www.talbica.narod.ru
Люди, подскажите как написать программу для решения однородных систем линейных ур-ний. Напоминаю: система, где число уравнений НЕ равно числу неизвестных, а в правой части всех уравнений стоит ноль. При этом не факт, что все коэффициенты матрицы отличны от нуля! Подскажите хотя бы сайт, или библиотеку (например, из MatCAD) где есть этот алгоритм.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Иван



Администратор

ICQ: 147688925 

Вопросов: 24
Ответов: 708
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 01.06.04 19:05
Excel не смотрел?

Ответить

Номер ответа: 2
Автор ответа:
 shadeofgray



Вопросов: 1
Ответов: 5
 Профиль | | #2 Добавлено: 02.06.04 13:49
Есть алгоритм для поиска фундаментальной системы решений (т.е. общего решения, т.к. в данном случае решение не единственно - есть целый континуум решений).

После решения системы уравнений получаете частное решение (в вашем случае - ноль) и набор векторов (ненулевых), которые можно с различными коэффициентами добавить к частному решению, чтобы получить одно из общих решений.

адрес: http://alglib.manual.ru/linequations/svd.php

Как прочитаете абзац с описанием идеи алгоритма, увидите три ссылки: "исходник на С++", "исходник на Delphi", "исходник на VB6". Вам нужна третья, но перед тем, как скачивать исходник, посмотрите дальше, за ссылки. Там будут комментарии, в которых описываются параметры, принимаемые алгоритмом, и их значение.

Ответить

Номер ответа: 3
Автор ответа:
 MARCUS



Вопросов: 24
Ответов: 13
 Web-сайт: www.talbica.narod.ru
 Профиль | | #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
Автор ответа:
 MARCUS



Вопросов: 24
Ответов: 13
 Web-сайт: www.talbica.narod.ru
 Профиль | | #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
Автор ответа:
 shadeofgray



Вопросов: 1
Ответов: 5
 Профиль | | #5 Добавлено: 04.06.04 10:16
Задайте параметр Epsilon ненулевым малым числом (что-нить около 0.0001 или 0.000001). Также проверьте, чтобы нумерация элементов во входных данных начиналась не от 0, а от 1.

Ответить

Номер ответа: 6
Автор ответа:
 shadeofgray



Вопросов: 1
Ответов: 5
 Профиль | | #6 Добавлено: 04.06.04 13:49
Задайте параметр Epsilon ненулевым малым числом (что-нить около 0.0001 или 0.000001). Также проверьте, чтобы нумерация элементов во входных данных начиналась не от 0, а от 1.

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #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
Автор ответа:
 shadeofgray



Вопросов: 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам