Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нахождение коэффициентов, уравнения 5 степени 
:(
    Опции темы
Garoh
Дата 21.1.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 29.8.2006
Где: Москва

Репутация: нет
Всего: нет



Всем доброго времени суток!
В общем случае задача выглядит так: по нескольким известным точкам надо определить уравнение кривой 5 степени, проходящей через эти точки. Значит, выбираем 6 известных точек нашей кривой и составляем систему из 6 уравнений с 6 неизвестными коэффициентами:

--------------------------------------------------------------
a*x1(5 степень) + b*x1(4 степень) + c*x1³ + d*x1² + e*x1 + f = y1
a*x2(5 степень) + b*x2(4 степень) + c*x2³ + d*x2² + e*x2 + f = y2
.......................
.......................
.......................
a*x6(5 степень) + b*x6(4 степень) + c*x6³  + d*x6² + e*x6 + f = y6
--------------------------------------------------------------

где a, b, c, d, e, f - неизвестные;
x1, y1; x2, y2; .... ; x6, y6 - известные значения координат 6 точек, принадлежащих нашей кривой

Мне посоветовали решать эту систему уравнений с помощью матрицы:

Код

x1(5 степень) x1(4 степень) x1³ x1² x1 1 y1
x2(5 степень) x2(4 степень) x2³ x2² x2 1 y2
...
...
...
x6(5 степень) x6(4 степень) x6³ x6² x6 1 y6


И приводить ее в нормальный вид (сложением, вычитанием, умножением), чтобы диагональ состояла из едениц, а коэффициенты располагались в матрице след. образом:

Код

1 0 .. .. .. .. a
0 1 0 .. .. .. b
.. 0 1 0 .. .. c
.. .. 0 1 0 .. d
.. .. .. 0 1 0 e
.. .. .. .. 0 1 f


Помогите с реализацией кода обработки матрицы и нахождения этих чертовых коэффициентов плз! Если алгоритм составления матрицы неверен, то посоветуйте какой-нибудь другой.

З.Ы: индексы и значения степеней больше 3 вставить не получилось, так что придется оставить все в таком корявом виде smile 
PM MAIL   Вверх
maxim1000
Дата 21.1.2007, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



есть у нас тема "коллекция алгоритмов от John Smith"
там куча всего
в том числе и решение системы линейных уравнений:
http://forum.vingrad.ru/index.php?showtopi...st&p=285659


--------------------
qqq
PM WWW   Вверх
Garoh
Дата 21.1.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 29.8.2006
Где: Москва

Репутация: нет
Всего: нет



спасибо, сейчас посмотрю
PM MAIL   Вверх
Garoh
Дата 21.1.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 29.8.2006
Где: Москва

Репутация: нет
Всего: нет



В том разделе приведены решения систем линейных уравнений при известных коэффициентах, но в моем случае задача обратная: мы знаем 6 точек, принадлежащих кривой, т.е. значения х1, у1, х2, у2, .... ,  х6, у6, и необходимо найти коэффициенты (a, b, c, d, e, f). Как в таком случае решать данную задачу?
PM MAIL   Вверх
Bitter
Дата 21.1.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



система линейных уравнений решается методом Гаусса. Вот тут есть исходники на Delphi для решения системы 4-го порядка (помоему):

http://student.rostov.ru/files/st_binary1250/gauss.rar
PM MAIL ICQ Skype   Вверх
maxim1000
Дата 21.1.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



конечно, в задаче, для которой требуется найти a,b,c,d,e,f, они являются коэффициентами
но в подзадаче решения системы линейных уравнений они являются как раз неизвестными, а xi^n - коэффициентами


--------------------
qqq
PM WWW   Вверх
Bitter
Дата 21.1.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



извиняюсь, я писал сообщение, когда топ выше еще небыл напечатан.

Тогда так: такие задачи решаются с помощью МЕТОДА НАИМЕНЬШИХ КВАДРАТОВ или МНК. Поисчи в инете, может что-нить найдешь

Добавлено @ 17:41 
например тут: 

http://alglib.sources.ru/interpolation/linleastsq.php

http://revolution.allbest.ru/mathematics/00003949_0.html

http://chemstat.com.ru/glossary/least_squares.html
PM MAIL ICQ Skype   Вверх
maxim1000
Дата 21.1.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



МНК, обычно, используется для тех случаев, когда точное решение найти не получается, кроме того он часто сводится опять же к решению системы линейных уравнений (если коэффициенты входят линейно в аппроксимирующую функцию)
а здесь вполне нормальная ситуация: 6 неизвестных, 6 уравнений


--------------------
qqq
PM WWW   Вверх
Bitter
Дата 21.1.2007, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



Цитата

МНК, обычно, используется для тех случаев, когда точное решение найти не получается


точно, как-то я не подумал...

Цитата

он часто сводится опять же к решению системы линейных уравнений 


это и есть СЛАУ

Вспомнил! Интерполяция это называется. Ща гляну...

Добавлено @ 18:22 
Есть отчет по лабе на эту тему, который я когда-то делал.
Только код в нём на Delphi
Вот он:

Добавлено @ 18:23 
ээээ... только там функция 2-го порядка....

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  __2____.rar 97,97 Kb
PM MAIL ICQ Skype   Вверх
Pete
Дата 22.1.2007, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 5.1.2006
Где: Москва

Репутация: 1
Всего: 12



Цитата(Bitter @  21.1.2007,  19:09 Найти цитируемый пост)
Интерполяция это называется

Ага. Интерполяционный многочлен Лагранжа, по-моему, сам напрашивается при решении такой задачи) И ни каких систем не надо...


--------------------
Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу)
Не откладывай на завтра то, что можешь сделать сегодня. (Пословица)
А теперь выпишем точное значение числа пи... (Препод)
Жахни, Пендальф! © Гоблин
PM   Вверх
Bitter
Дата 22.1.2007, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 4
Всего: 27



Pete, да да. именно этот многочлен использовался smile
PM MAIL ICQ Skype   Вверх
SoWa
Дата 22.1.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Bitter @  21.1.2007,  18:09 Найти цитируемый пост)
Вспомнил! Интерполяция это называется. Ща гляну...

Угу. Формулы есть в учебниках, для многочленов любых степеней.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Akina
Дата 22.1.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Господи! Да поиск 6 коэффициентов по 6 точкам - это же тупой СЛАУ! Составляем главную матрицу и 6 частных, считаем 7 определителей, делим - коэффициенты получены. Для уменьшения ошибки считаем определители по Гауссу с выбором главного по всей матрице. При этом ошибка получается обычно меньше, чем при приведении расширенной матрицы к единичной.

Если в значениях аргументов и функции есть скачки на порядки и система координат не поддается нормализации - вот тогда имеет смысл искать более устойчивые методы.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
VaiMR
Дата 23.1.2007, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 25.11.2006

Репутация: нет
Всего: 2



Вот так нам обьясняли решение этой задачи:

P(x)=y1*Q1(x1)+y2*Q2(x2)+...+yn*Qn(xn)

               (x-x2)(x-x3)...(x-xn)
Q1(x)= ------------------------------
            (x1-x2)(x1-x3)...(x1-xn)

               (x-x1)(x-x3)...(x-xn)
Q2(x)= ------------------------------
            (x2-x1)(x2-x3)...(x2-xn)

Общая формула имееет вид:

                 (X-X1)(X-X2)...(X-Xn-1)(X-Xn+1)...(X-Xm)
Qn(x)= -----------------------------------------------------------    ,где m - степень полинома, n - номер Q, 0<Q<=m.  
            (Xn-X1)(Xn-X2)...(Xn-Xn-1)(Xn-Xn+1)...(Xn-Xm)
PM MAIL ICQ   Вверх
SoWa
Дата 23.1.2007, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Akina @  22.1.2007,  23:54 Найти цитируемый пост)
Господи! Да поиск 6 коэффициентов по 6 точкам - это же тупой СЛАУ

А разве в СЛАУ степени переменных не единица? Тут многочлен 5 степени.

РЕБЯТА! Интерполяция не канает.
Во первых, по определению построения интерполяционного полинома: по n точкам строим полином этой же степени. То есть шестой, в нашем случае. Не годится.
Во вторых, по определению интерполяции: такой полином верен лишь на минимальном отрезке, содержащим данные точки. Дальше- задача экстраполяции. 

У нас на олимпиаде было: найти значение функции в такой-то точке, если даны такие-то. Точка была вне отрезка. Я ответил- "ноль, и попробуйте меня переубедить". Мне зачли решение. Вотъ.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.