![]() |
|
Модераторы: LSD |
![]()
|
|
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург |
Есть у меня такая задача:
Дано несколько (штук 15, хотя это не важно) точек. Необходимо построить кривую, проходящую через все эти точки (ну или хотя бы рядом с этими точками). Конечно есть в WinApi функция PolyBezier, но это совсем не то, что мне нужно. Мне нужно полностью своя функция, где я бы мог контролировать координыта каждой точки графика. Один метод я уже нашёл: построить многочлен n-ой степени (где n - кол-во точек), тогда его график и будет проходить через эти точки. Но, к сожалению, это решение не совсем подходит из-за того, что график получается слишком уж "страшным", хотя и очень точным. Я же готов пожертовать точностью, лишь бы получилась более плавная кривая. Я слышал о каких-то "наименьших квадратах", которые можно применить в данном случае, но кроме названия больше ничего не знаю. Понимаю, что это задача скорее математическая, но может быть кто-нибудь занимался анализом данных и может что-нибудь подсказать. Исходники я не прошу. Программировать сам умею. |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков |
Метод наименьших квадратов - это для нахождения прямой линии. Посмотри в МатКАДе, там, по-моему, в хелпе чуть-чуть про алгоритмы. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев |
Если я не ошибаюсь, метод наименьших квадратов состоит в минимизации суммы квадратов отклонений sum[(f(a,xi)-yi)^2]->min по a (где a - вектор параметров). И совсем необязательно, чтобы график функции был прямой. Например, в качестве приближающей функции можно взять полином степени <n, а в качестве параметров - его коэффициенты. Кроме того, можно наложить условия на величину производных функции и перейти к условной минимизации В случае полинома все это сведется к линейному программированию -------------------- qqq |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург |
Статью я Вашу прочитал. Честно говоря, метод поиска "на решётке" мне не совсем понравился, но, если ничего лучше не придумаю, прийдётся что-нибудь в этом роде написать. А вообще, коэффициенты полинома, по-моему, всё-таки проще искать аналитически. Я сначала думал, что это сложно, т.к. там надо решать систему из n уравнений. Но, посидев пару дней и исписав кучу бумаги, На самом деле, я на этом же форуме в "Технологиях и алгоритмах" нашёл ссылку на кое-что по этой теме (и куда я раньше смотрел?), может оно поможет... -------------------- Да. Именно так. |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков |
Да, торможу, два года однообразного использования МНК прозомбировали меня на славу. |
|||
|
||||
| 78125 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 20.1.2003 Где: Санкт-Петербург |
Учусь я в универе и по вышке недавно прошли ряды
суть в том что любую функцию можно разложить в ряж стремящийся к ней и в другую сторону тоже - по известным точкам составить коэфициенты функции и вперед я понимаю что так рассуждать легко но сам никогда не занимался етим --------------------
купим подпись |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Например, дельта-функцию ? ;) -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
да, только у нее будет бесконечный спектр :] |
|||
|
||||
| podval |
|
||||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
Кстати говоря, МНК дает аппроксимирующий полином (если именно полином используется), котороый вовсе не обязательно будет проходить через исходные точки. Если же обязательным условием является прохождение графика через узлы интерполяции, то лучше использовать сплайны. А если исходные данные "страдают" большой дисперсией, то построенная по МНК кривая и рядом с исходными точками проходить не будет. |
||||
|
|||||
| Crait |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 244 Регистрация: 20.2.2003 |
Рекомендую сплайны.
И для сглаживания тоже. |
|||
|
||||
![]()
|
| Правила раздела «Флейм» | |
|
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Флейм | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |