|
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835
|
|
Как аппроксимировать функцию?14.09.2016, 10:21. Показов 3839. Ответов 11
Метки нет (Все метки)
Как аппроксимировать функцию?
Я провёл опыт, получил несколько точек двухмерного пространства. Теперь мне необходимо найти функцию в приближённом виде, а именно в виде a*(x^b). Найти необходимо a и b. Как это сделать наиболее простым способом, имея набор точек?
0
|
|
| 14.09.2016, 10:21 | |
|
Ответы с готовыми решениями:
11
Аппроксимировать табличную функцию Аппроксимировать или интерполировать функцию двух переменных Аппроксимировать функции |
|
Модератор
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,490
|
|
| 14.09.2016, 14:13 | |
|
1
|
|
|
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835
|
|
| 14.09.2016, 17:18 [ТС] | |
|
N: 1000; T(N): 0.136.
N: 2000; T(N): 0.148. N: 3000; T(N): 0.25. N: 4000; T(N): 0.399. N: 5000; T(N): 0.53. N: 6000; T(N): 0.624. N: 7000; T(N): 0.785. N: 8000; T(N): 2.105. N: 9000; T(N): 2.363. N: 10000; T(N): 2.549. Вот набор точек. N - ось икс, T(N) - ось игрик. Необходимо подобрать такую функцию, которая имела бы вид a*(N^b). Тo есть суть задания - найти a и b. После вычислений получил b = 1.8117258956353854. a = 1.6626989031869018E-7. Подскажите, пожалуйста правильно ли?
0
|
|
|
Модератор
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,490
|
|
| 14.09.2016, 18:37 | |
|
oobarbazanoo, выбирайте себе функцию по вкусу... (результаты расчетов в текстовом файле)
1
|
|
|
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835
|
|
| 15.09.2016, 11:33 [ТС] | |
|
А чем Вы строили данную функцию?
Это какой-то МатЛаб? Добавлено через 1 минуту a*exp(b*x) что означает данная запись? а умножить на b в степени x? Добавлено через 6 минут Спасибо ОГРОМНОЕ за помощь. Кстати, я сам тоже решал. Я имею десять точек, я брал все возможные пары из двух точек. Потом строил плоскость, где ось икс - log(N), а ось игрик - log(T(N)). Находил положение каждой из двух взяты точек на данной плоскости, проводил прямую через эти две точки, находил её наклон (как тангенс угла наклона к оси икс, то есть просто вычитал из координаты первой точки по игрику, координаты второ точки по игрику, то есть находил дельта по игрику, потом так же находил дельта по иксу и отношение дельта игрика к дельта иксу). Далее получал разный наклон для каждой взятой пары, сохранял его. Потом складывал все наклоны и делил на количество пар, таким образом находил b. Далее, имея формулу T(N) = a* (N^b) я, поочерёдно подставляя T(N) и N находил разные a, так как точек 10, то имел десять а, складывал данные а и делил результат на 10, таким образом находил а. Правильно ли?
0
|
|
|
Модератор
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,490
|
|||
| 15.09.2016, 11:39 | |||
|
a*eb*x
1
|
|||
|
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835
|
|
| 15.09.2016, 13:45 [ТС] | |
|
А как тогда можно перевести в а*(x^b)?
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|||
| 28.09.2016, 17:48 | |||
|
А с чего вы взяли что эта задача имеет решение вообще? Ваша функция не может аппроксимировать ваши данные вообще, постройте ее меняя параметры a,b форма кривой вообще другая. Вот вам и выдали целый список решений где a и b это формулы. Построил выборочно, некоторые вышли бред =) но ведь некоторые неплохие. Кстати задача также может решаться делением на 2 и 4-мя уникальными коэффициентами или проще говоря кривой Безье 3 степени. Которую удобно настроить визуально таская точки. Для процессора намного удобней и быстрей делить на 2 чем дикие степени с плавающей, но и построение будет рекурсивной формулой а не обычной…
1
|
|||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 28.09.2016, 18:37 | |
Сообщение было отмечено oobarbazanoo как решение
Решение
Аппроксимация вручную вышла даже лучше чем в Pro версии сгенереной компом
.Кубическая кривая это две квадратичных. Значит можно найти t зная значение B(t) по X вроде так…формулы есть на вики, кривую разбить на 2 участка. Или проще выбрать одно из решений в одну строчку из списка VSI, пусть намного грубей но зато проще. Еще можно помучить полином Лагранжа\Ньютона но они очень не адекватные по Y когда точек больше 4, лучше брать параметрические кривые. Или вообще линейно интерполировать, разбить на 3 участка вашу кривую и все.
1
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 29.09.2016, 22:00 | |
|
Вот придумал простое красивое решение. Строим 3 прямые по двум точкам KL,LM,MN.
Находим им параметрическую форму типа y=kx+b. Будет линейная аппроксимация ломанной которая очень быстро работает: X(O) это вход X координата точки O. Синтаксис такой: If[ <Condition>, <Then>, <Else> ] Мне кажется, получается проще, быстрей, точней чем любые другие методы и легко настроить вручную. If[ x(O)<x(L), 0.0001*x(O)+0.06285, If[ x(O)<x(M), 0.00143*x(O)-9.27448, 0.00024*x(O)+0.23545 ]]
1
|
|
|
1965 / 1073 / 163
Регистрация: 06.12.2012
Сообщений: 4,695
|
|
| 26.10.2016, 07:04 | |
|
oobarbazanoo, ваша аппроксимация по Мне даёт 2,55*Е(-8)*х^2.
1
|
|
| 26.10.2016, 07:04 | |
|
Помогаю со студенческими работами здесь
12
Используя МНК аппроксимировать данные линейной зависимостью. аппроксимировать функцию Аппроксимировать функцию С++ Аппроксимировать функцию с помощью МНК
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|