Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
148 / 107 / 54
Регистрация: 06.07.2016
Сообщений: 281
1

Апроксимация

10.01.2019, 13:47. Показов 1794. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

При определенных измерениях получаю 5-7 точек, задача апроксимировать их кривой.

1) Сплайном кубическим не получилось. Условия на него совпадение функций и первых двух производных в узлах. А мне нужно, чтобы выпуклость еще была только вниз. Короче, всплески иногда получаются.

2) В сторонней программе (Table Curve Fit 2D) подобрал руками вид функции, под которую хочу подогнать.
Наподобие гауссовского распределения (не плотности, а именно вероятности)

Уравнение такое https://www.cyberforum.ru/cgi-bin/latex.cgi?y = a/2 * (1-erf(-(x-c)/(sqrt2*d)) Считать erf(x) я умею.
Итого 3 переменные (a,c,d) надо подобрать. Функция, которую оптимизирую - минимум квадратов расстояний игреков.

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

Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2019, 13:47
Ответы с готовыми решениями:

Апроксимация функции с контролем погрешности
Есть вещественная функция F(X) которая выдает время (в миллисекундах) когда нужно выполнить...

Апроксимация
Помогите, пожалуйста! Можно ли в MathCad апроксимировать данную зависимость прямой линией?

Апроксимация
Ребят ,кто может помочь с задание (сделать апроксимацию функций y=ae^(bx)+c , y=ax+b на Delfi)

Апроксимация
Нужно апроксимировать переодическую функцию https://www.cyberforum.ru/images/attach/jpg.gif с...

10
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
11.01.2019, 19:28 2
Цитата Сообщение от zxc_pavel Посмотреть сообщение
Попробовал спускаться градиентом - не получается. Огромная область неизменяемых значений - и там застряет всегда.
Правильно, при решений нелинейных уравнений первый шаг называют локализация корня. Градиент работает когда один изгиб кривой а не 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
https://habr.com/post/264191/
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2019, 17:24
Помогаю со студенческими работами здесь

Апроксимация данных
По-работе пришлось не надолго заняться анализом данных, и встала проблема апроксимации данных....

Линейная апроксимация
Имеются данные.Нужно провести аппроксимацию. Я понял что это линейная аппроксимация, смог даже...

Апроксимация и полином
В гост 8.585-2001 много ошибок в коэффициентах полиномов. Из за этого не могу решить некоторые...

Квадратичная апроксимация
Здравствуйте! Очень нужна помощь в решении даной задачи: Я так понимаю ,что нужно в mathcad...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru