148 / 107 / 54
Регистрация: 06.07.2016
Сообщений: 281
|
|
1 | |
Апроксимация10.01.2019, 13:47. Показов 1794. Ответов 10
Метки нет (Все метки)
Добрый день.
При определенных измерениях получаю 5-7 точек, задача апроксимировать их кривой. 1) Сплайном кубическим не получилось. Условия на него совпадение функций и первых двух производных в узлах. А мне нужно, чтобы выпуклость еще была только вниз. Короче, всплески иногда получаются. 2) В сторонней программе (Table Curve Fit 2D) подобрал руками вид функции, под которую хочу подогнать. Наподобие гауссовского распределения (не плотности, а именно вероятности) Уравнение такое Считать erf(x) я умею. Итого 3 переменные (a,c,d) надо подобрать. Функция, которую оптимизирую - минимум квадратов расстояний игреков. Попробовал спускаться градиентом - не получается. Огромная область неизменяемых значений - и там застряет всегда. Посоветуйте методы поиска для данной задачи, пожалуйста (все-таки хочу этой кривой). Спасибо
0
|
10.01.2019, 13:47 | |
Ответы с готовыми решениями:
10
Апроксимация функции с контролем погрешности Апроксимация Апроксимация Апроксимация |
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
11.01.2019, 19:28 | 2 |
Правильно, при решений нелинейных уравнений первый шаг называют локализация корня. Градиент работает когда один изгиб кривой а не N.
Зачем вообще аппроксимировать? Пока будете искать аппроксимацию уже 10 раз получите новые точки на ломанной. Берите прям с ломанной минимум, и никаких градиентов и локализаций корней.
0
|
148 / 107 / 54
Регистрация: 06.07.2016
Сообщений: 281
|
|
12.01.2019, 11:44 [ТС] | 3 |
Спасибо за участие)
Насчет локализации - да, примерно в ту же сторону пошел. Довольно жестко задал прохождение кривой через крайнюю точку и точку (0,0), и за счет этого перешел к оптимизации 2 параметров, а не трех. Начало получаться. Хотелось бы правда время поиска поменьше, получается самое около 100 мс, точки приходят через 500 мс. Пока так оставлю, буду тестировать Я Ваш ход мысли не совсем понял, на картинках покажу, зачем мне это нужно (измерения обратной вах диода). В целом меня устраивает, иногда бывает (как на 5 рисунке не через все проходит), но график сильнее похож на физическое поведение, чем измерения.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
12.01.2019, 13:02 | 4 |
Так вы хотите построить вах диода? Причем тут вообще оптимизация?
Гуглили “измерение вах диода”? Наверно нужно некоторое время соблюдая один параметр постоянным замерять функцию от него например в течении 1 сек порядка 20 замеров. И так в например 100 точках кривой, затем аппроксимировать все 100*20 точек одной кривой. Я не знаю про вах диода, но выглядит как ваши измерения это не график а поверхность, т.е. вид кривой зависит от еще одного параметра.
0
|
148 / 107 / 54
Регистрация: 06.07.2016
Сообщений: 281
|
|
12.01.2019, 13:13 [ТС] | 5 |
У меня нет 1 секунды. Есть только измерения нескольких точек (от 3 до 7, по разному)
Основная задача - производить быстрые измерения, побочная - красиво отрисовывать (плавной кривой) Вот я и стараюсь по ограниченному набору точек придумать как их плавно соединить.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
12.01.2019, 13:28 | 6 |
Что изначальная задача? Может это задача классификации?
0
|
148 / 107 / 54
Регистрация: 06.07.2016
Сообщений: 281
|
|
12.01.2019, 13:33 [ТС] | 7 |
Я не совсем понятно написал.
Классификация тривиально производится по этим 6-7 измерениям (синие точки на графиках). Задача - красиво нарисовать кривую по точкам, а не соединять ее ломаной линией.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
12.01.2019, 15:43 | 8 |
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
12.01.2019, 16:11 | 9 |
Если катит аппроксимация то самое простое кривые Безье 2 ст.
https://ru.wikipedia.org/wiki/Кривая_Безье Нужно больше точек на месте изгиба. Оранжевые середина отрезка. H середина CD I середина DE и т.д. Хороши тем что нет выбросов. Кривые по: H,D,I I,E,J J,F,K
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
12.01.2019, 16:40 | 10 |
Сообщение было отмечено zxc_pavel как решение
Решение
Нужно больше точек на изгибе, иначе любые алгоритмы будут идти на уловки где брать какая там кривая.
Например зная угол отрезка по первым двум измерениям определяем что зависимость будет иметь резкий изгиб, значит нужно остальные точки на месте изгиба а не на прямом участке. Сделать функцию возвращающую нелинейные координаты точек по X от угла отрезка по первым двум измерениям. Вот например извращение по геометрии. Это уже скорей алгоритм получения точек. По ED прямая a0 Через G прямая b0 параллельная a0 По FE прямая c0 Пресечение c0 b0 точка I. Пресечение d0, b0 точка H. Кривые Безье DHG, GIE
1
|
148 / 107 / 54
Регистрация: 06.07.2016
Сообщений: 281
|
|
12.01.2019, 17:24 [ТС] | 11 |
Выглядит интересно, попробую реализовать
Большое спасибо!
0
|
12.01.2019, 17:24 | |
12.01.2019, 17:24 | |
Помогаю со студенческими работами здесь
11
Апроксимация данных Линейная апроксимация Апроксимация и полином Квадратичная апроксимация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |