СЛАУ
От: Аноним  
Дата: 06.02.03 08:49
Оценка:
Подскажите кто-нибудь,пожалуйста, как решается система линейных уравнений, в которой число уравнений на несколько порядков больше числа неизвестных. Вроде бы МНК надо использовать?
Re: СЛАУ
От: Bell Россия  
Дата: 06.02.03 08:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Подскажите кто-нибудь,пожалуйста, как решается система линейных уравнений, в которой число уравнений на несколько порядков больше числа неизвестных. Вроде бы МНК надо использовать?


Один из вариантов — выбрать несколько уравнений (по числу переменных, чтобы получилась квадратная матрица) таким образом, чтобы матрица система имела преобладающую главную диагональ.
Любите книгу — источник знаний (с) М.Горький
Re[2]: СЛАУ
От: Аноним  
Дата: 06.02.03 09:25
Оценка:
Неее, как это? Нужно, чтобы в итоге полученное решение ПРИБЛИЖЕННО удовлетворяло (с погрешностью, конечно) всем уравнениям. Если я не прав, тогда скажите, что такое преобладающая главная диагональ.
Re[3]: СЛАУ
От: SergIG  
Дата: 06.02.03 09:32
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Неее, как это? Нужно, чтобы в итоге полученное решение ПРИБЛИЖЕННО удовлетворяло (с погрешностью, конечно) всем уравнениям. Если я не прав, тогда скажите, что такое преобладающая главная диагональ.


Очень часто для твоего случая применяют SVD — сингулярное разложение матриц
... << RSDN@Home 1.0 beta 6a >>
Re[4]: СЛАУ
От: SergIG  
Дата: 06.02.03 09:36
Оценка:
Здравствуйте, SergIG, Вы писали:

SIG>Здравствуйте, <Аноним>, Вы писали:


А>>Неее, как это? Нужно, чтобы в итоге полученное решение ПРИБЛИЖЕННО удовлетворяло (с погрешностью, конечно) всем уравнениям. Если я не прав, тогда скажите, что такое преобладающая главная диагональ.


SIG>Очень часто для твоего случая применяют SVD — сингулярное разложение матриц

SIG>
Можно почитать:
Дж. Форсайт М.Малькольм К.Моулер
"Машинные методы математических вычислений"
... << RSDN@Home 1.0 beta 6a >>
Re: СЛАУ
От: FatZorro  
Дата: 06.02.03 11:59
Оценка:
Сингулярное разложение или МНК, но можно проще (естественно менее эффективно).

Я помню делал методом Гаусса. Ax=и (Где унрав-ий больше неизвест.)
Приводишь ее к квадратной BAx=Bu, где И — это транспонированная A.
Если система имеет решение то ты ее решишь, а если нет то и близкого решения не получишь (В SVD можно).

PS Нужно будет позаботиться о спец. мерах чтобы ошибоки округления меньше сказывались.
Re[2]: СЛАУ
От: FatZorro  
Дата: 06.02.03 12:01
Оценка:
Ошибок наделал

Ax=и -> BAx=Bu
Re[3]: СЛАУ
От: Bell Россия  
Дата: 06.02.03 12:03
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Неее, как это? Нужно, чтобы в итоге полученное решение ПРИБЛИЖЕННО удовлетворяло (с погрешностью, конечно) всем уравнениям. Если я не прав, тогда скажите, что такое преобладающая главная диагональ.


Так и есть. Пусть все уравнения описывают некую определенную систему (объект). Часть уравнений по каким-то причинам нас не устраивают (погрешности при вычислении/измерении коэффициентов и т.д). Тогда можно отобрать часть уравнений так, чтобы на главной диагонали стояли числа, существенно большие, чем все остальные. А затем решить этут систему тем же методом Гаусса. К сожалению не помню выражений для оценки погрешности

Еще можно посмотреть здесь, второй раздел.
Любите книгу — источник знаний (с) М.Горький
Re[4]: СЛАУ
От: SergIG  
Дата: 06.02.03 12:14
Оценка:
Здравствуйте, Bell, Вы писали:

B>Так и есть. Пусть все уравнения описывают некую определенную систему (объект). Часть уравнений по каким-то причинам нас не устраивают (погрешности при вычислении/измерении коэффициентов и т.д). Тогда можно отобрать часть уравнений так, чтобы на главной диагонали стояли числа, существенно большие, чем все остальные. А затем решить этут систему тем же методом Гаусса. К сожалению не помню выражений для оценки погрешности


Возможно для небольшого числа уравнений подобный алгоритм может и подойти,
но я как-то решал систтему уравнений в которой было 1000 уравнений и всего неизвестных.
Так вначале ничего кроме SVD и не помогло. Потом уже, из-за специфики самой системы пришлось перейти к функциональному анализу.
... << RSDN@Home 1.0 beta 6a >>
Re[5]: СЛАУ
От: Fiend  
Дата: 06.02.03 12:44
Оценка:
Я слыхал про какой-то метод Хаусходлера (может это не имя, точно не знаю). Он подходит?
Re[6]: СЛАУ
От: Олег Куликов США  
Дата: 06.02.03 13:22
Оценка:
Здравствуйте, Fiend, Вы писали:

F>Я слыхал про какой-то метод Хаусходлера (может это не имя, точно не знаю). Он подходит?


Метод Хаусхолдера (это таки имя) используется для приведения симметричной квадратной матрицы к трехдиагональной форме. Поскольку матрица в решаемой задаче не является ни симметричной ни квадратной, то о чем говорить?

Преобразования Хаусхолдера ( они же преобразования отражения ) используются на первом этапе SVD для приведения матрицы к двухдиагональной форме. Наверное, про это ты и слышал.
А вообще хочу присоединиться к дружному хору фанатов SVD: ничего лучше человечество пока не придумало.
И немедленно выпил...
Re[7]: СЛАУ
От: Fiend  
Дата: 06.02.03 13:30
Оценка:
Хорошо. Как в русской литературе называется SVD?
Re[8]: СЛАУ
От: Олег Куликов США  
Дата: 06.02.03 13:32
Оценка: 3 (1)
Здравствуйте, Fiend, Вы писали:

F>Хорошо. Как в русской литературе называется SVD?


Сингулярное разложение или Разложение по сингулярным числам
И немедленно выпил...
Re[2]: СЛАУ
От: KonstantinA Россия  
Дата: 07.02.03 16:42
Оценка:
А чем это не метод наименьших квадратов?

Минимизируем <Ax-b,Ax-b> и получаем условие BAx=Bu, где B = транспонированная( A ).
... << RSDN@Home 1.0 beta 5 >>
Re[3]: СЛАУ
От: Олег Куликов США  
Дата: 10.02.03 07:19
Оценка:
Здравствуйте, KonstantinA, Вы писали:

KA>А чем это не метод наименьших квадратов?


Это он и есть

KA>Минимизируем <Ax-b,Ax-b> и получаем условие BAx=Bu, где B = транспонированная( A ).


ага. и погрешность будет порядка d*cond(A)*cond(A), где cond(A) — число обусловленности A, где d — ошибка округления. Если матрица содержит линейно зависимые строки, то погрешность в теории будет стремиться к бесконечности, а на практике будет просто очень большой. Предложенный тобой подход можно применить только если про матрицу точно известно, что она хорошо обусловленная.


( B ) должна быть не транспонированная( A ), а псевдообратная( A ).
И немедленно выпил...
Re: СЛАУ
От: Kilo Россия  
Дата: 08.03.03 19:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Подскажите кто-нибудь,пожалуйста, как решается система линейных уравнений, в которой число уравнений на несколько порядков больше числа неизвестных. Вроде бы МНК надо использовать?


Могу порекомендовать компонент TMatrix из серии SDL Components Suite. У Tmatrix есть метод MultiLinReg как раз на этот случай.Если в инете не найдеш пиши Kilo@inbox.ru пришлю.Воооще матричной математики на Delphi не найдеш так что если что по поводу СЛАУ есть шли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.