|
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 39
|
|
Аппроксимация несколькими прямыми18.10.2012, 09:08. Показов 5987. Ответов 27
Метки нет (Все метки)
Дан набор точек (координаты X и Y), нужно провести через них несколько прямых (например, 2) так, чтобы отклонение было минимальным. Каким образом можно это реализовать?
0
|
|
| 18.10.2012, 09:08 | |
|
Ответы с готовыми решениями:
27
Расстояние между прямыми График прямыми линиями |
|
|
||||||
| 22.10.2012, 17:52 | ||||||
|
Если взять ваш текст, то программа выдает нечто напоминающее замкнутый круг, а не переходной процесс, как на предидущем рисунке (все дело из-за первого столбца значений S)
Вот, что я набросал:
Хоть эта процедура мало что дала, однако можно заметить положительный пик на голубой линии (dy3) на участке начального подъема функции и два наибольших отрицательных пика в окрестностях спада ф-ции. Возможно из этого можно выудить нужные участки для апроксимации. Я пока не додумался как.
0
|
||||||
|
301 / 214 / 7
Регистрация: 16.10.2012
Сообщений: 485
|
|
| 22.10.2012, 19:40 | |
|
Проблема в том, что целиком картинка - это и есть динамограмма. А так только кусочек, причем не показательный, т.к. там есть возвратный процесс. Ну увидели мы пики, а дальше что? Как программа должна распознать, что этот пик - начало обратного процесса, а вот этот - выход туда-то...?
0
|
|
|
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 39
|
|
| 23.10.2012, 07:23 [ТС] | |
|
График (динамограмма, нагрузка от положения) и есть замкнутый, в идеале - параллелограмм. Просто на моем рисунке он был развернут (нагрузка от времени).
Можно попробовать ввести ограничение на величину пиков, получаемым при помощи diff, может удастся разделить на области. Но все-таки надо как-то исходить из погрешности.
0
|
|
|
|
||||||
| 23.10.2012, 15:07 | ||||||
|
Вот что мне еще пришло на ум: определить среднее значение функции, ассмотреть области ниже и выше этого уровня, обрезать крайние точки и провести линейную интерполяцию!
Именно во время интерполяции реализуется метод наименьших квадратов! Верхняя область: Нижняя область: Общий вид: И привожу код (громоздкий, 68 строк, поэтому прячу под спойлер): Кликните здесь для просмотра всего текста
Конечно, это только две области и до идеала еще далеко, но уже кое что! ![]() P.S.: А фронты можно попробовать выделить из окрестностей пересечения графика со средней линией! Но это уже в следующий раз
1
|
||||||
|
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 39
|
|
| 24.10.2012, 06:59 [ТС] | |
|
Интересно. Другие прямые, наверно, можно найти из остатков.
Но придется каждый раз обрезать какую-то (определять "на глаз"?) часть точек, т.е. не не сам алгоритм определяет область для линейной аппроксимации.
0
|
|
|
3147 / 1746 / 276
Регистрация: 19.02.2010
Сообщений: 4,557
|
|
| 27.10.2012, 22:29 | |
|
psm, Я бы исходную задачу решал методом расщепления. Итерации:
1) сработка алгоритма кластерного анализа, 2) внутри каждого кластера аппроксимация прямой, 3) новое распределение точек по кластерам (но уже не алгоритмом кластерного анализа - а по тому, какой прямой лучше аппроксимируется точка), 4) переход на п.2 для нового расчёта коэффициентов регрессии в каждом кластере. Очевидно, что процесс сходящийся (пусть и к квазиоптимальному решению), т.к. и п.2, и п.3 минимизируют функции невязки (т.е. решение после выполнения пункта получается лучше, чем до его выполнения). Финальное решение может зависеть от результатов работы п.1. Например, метод динамических ядер при старте с разных начальных положений ядер кластеров может сходиться к разным решениям (к разным разбиениям на кластеры). Но не думаю, что у Вас столько много данных, чтобы даже несколько пробных запусков указанного алгоритма (и последующий выбор лучшего решения) требовали более 1-2 минут расчётов (если, конечно, программист умеет писать быстрые математические программы).
0
|
|
|
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 39
|
|
| 29.10.2012, 07:21 [ТС] | |
|
А можно подробнее про алгоритм кластерного анализа?? Каким образом можно разбить данное множество точек на подмножества, которые будут аппроксимироваться прямыми?
Как я понимаю, в методе динамических ядер разбиение на классы происходит, исходя из расстояния между ними. Но вряд ли это получится, потому что точки распределены неравномерно по определенной кривой, это не просто скопление.
0
|
|
|
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 39
|
|
| 13.11.2012, 06:22 [ТС] | |
|
Есть еще идеи?
0
|
|
| 13.11.2012, 06:22 | |
|
Угол между прямыми Угол между прямыми Угол между прямыми угол между прямыми Углы между прямыми Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|