@Kovats

Как найти неизвестные параметры функции, зная ее значения?

Дано: Конкретная функция вида f(x) = 54,8-k(x-7)^n, где n≥2, x - натуральное число.
Требуется: найти неизвестные параметры k,n такие, что значения функции будут максимально приближены к данным:
f(x) X
0,4 1
0,9 2
4,4 3
22,5 4
39,4 5
51,6 6
54,8 7
54,1 8
50,3 9
42,6 10
35,2 11
26,4 12
14,4 13
--
То есть фактически дана функция, которая является временным рядом, нужно восстановить зависимость по имеющимся значениям так, чтобы ошибка была минимальной. Вышеописанное – конкретный пример, который не требуется решать, хотелось бы понять, каким методом можно выполнить поставленную задачу?
  • Вопрос задан
  • 402 просмотра
Пригласить эксперта
Ответы на вопрос 2
hint000
@hint000
у админа три руки
f(x) = 54,8-k(x-7)^n

Ну во-первых, возьмём x=8 и сразу получим значение k.
54,1=54,8-k(1)^n
k=0,7
Не очень сложно, правда?
f(x) = 54,8-0,7(x-7)^n
теперь это можно тупо забить в Excel (по строкам x, по столбцам разные n, рядом заданные значения f(x)) и посмотреть, что получится, можно даже построить графики.
Ответ написан
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
Поскльку у вас уже жестко задан вид функции, то это задача на минимизацию функции ошибки (от n и k). Обычно мнимизируют сумму квадратов ошибок по всем примерам.

Аналитически, как в методе наименьших квадратов, приравнять производные по n и k к 0 похоже не очень получается. Придется использовать какой-то численный метод минимизации функции. Например, градиентный спуск или метод ньютона. Если похоже, что функция имеет множество локальных минимумов, то будет работать что-то более хитрое, как например, метод отжига.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы