2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Аппроксимация данных экспонентой - область поиска минимума?
Сообщение11.01.2019, 13:24 
Заслуженный участник
Аватара пользователя


11/03/08
10003
Москва
Ну, если у меня будет оценка для B, достаточно точная, то я бы перешёл бы к новому регрессору $z_i=e^{-B x_i}$ и затем оценивал бы регрессию y на z.
$\bar{y}=\frac {y_i} n$, $\bar{z}=\frac {z_i} n$
$A=-\frac {\Sigma (y_i-\bar{y})(z_i-\bar{z})}{\Sigma(z_i-\bar{z})^2}$
$C=\bar{y}+A\bar{z}$

 Профиль  
                  
 
 Re: Аппроксимация данных экспонентой - область поиска минимума?
Сообщение11.01.2019, 14:43 
Заслуженный участник
Аватара пользователя


11/03/08
10003
Москва
Дополнительная опция - поварьировать значениями B в узких пределах, посчитать коэффициент корреляции R (или F-отношение) при разных B (как "отход от расчёта регрессии)
$R=-\frac {\Sigma (y_i-\bar{y})(z_i-\bar{z})}{\sqrt{\Sigma(y_i-\bar{y})^2 \Sigma(z_i-\bar{z})^2}}$
и оптимизнуть по B. (Три точки и парабола, или по сетке пройтись, или какую-нибудь одномерную оптимизацию замутить, навроде Фибоначчи...)

 Профиль  
                  
 
 Re: Аппроксимация данных экспонентой - область поиска минимума?
Сообщение13.01.2019, 14:04 
Заслуженный участник
Аватара пользователя


11/03/08
10003
Москва
А можно поинтересоваться результатами?

 Профиль  
                  
 
 Re: Аппроксимация данных экспонентой - область поиска минимума?
Сообщение18.01.2019, 13:35 


09/01/19
9
Евгений Машеров в сообщении #1368246 писал(а):
А можно поинтересоваться результатами?
Я очень извиняюсь, но пока не дошел до реализации. В принципе понятно то, что Вы сказали, но, чтобы это проверить, надо сначала сделать всю программу (где и получается исходная последовательность точек). Оптимистичный срок - недели 2 :wink: Но, я обязательно воспользуюсь Вашим советом, так что спасибо в любом случае.
О результатах отпишусь здесь.

 Профиль  
                  
 
 Re: Аппроксимация данных экспонентой - область поиска минимума?
Сообщение18.01.2019, 21:38 
Аватара пользователя


26/05/12
1700
приходит весна?
Я так понимаю вы минимизируете величину $$M=\sum\limits_{k}{{{\left( A\exp \left( B{{x}_{k}} \right)+C-{{y}_{k}} \right)}^{2}}}$$
где $(x_k,y_k)$ — ваши экспериментальные точки, а $A$, $B$ и $C$ — искомые параметры.

Во-первых, когда вы встречаетесь с многомерной численной задачей нелинейной оптимизации, то в первую очередь советую смотреть в сторону алгоритма Нелдера-Мида. Он имеет ряд достоинств: не требует счёта производной, в отличие от всяких градиентных методов, и значительно более устойчивей своих конкурентов на всяких "плохих" случаях, типа функции Розенброка. Плюс это алгоритм не требует диапазона значений для поиска, только начальное значение, от которого он будет отталкиваться.

Во-вторых, ваша модельная функция линейна по целым двум из трёх своих аргументов! Это значит, что эти аргументы могут быть вычислены с ходу в лоб прямым дифференцированием. Ну, разумеется, не конечное значение может быть вычислено, а оптимальное значение для текущего шага численной оптимизации. Но это сразу редуцирует задачу из трёхмерия в одномерие. Численный поиск минимума функции одной переменной задача качественно более простая, чем поиск минимума в многомерии. Тем более, есть все основания полагать, что минимум у вас единственный ("хорошая" функция с "хорошими" данными).

Так вот, как редуцировать размерность задачи, пользуясь линейностью модели по своим аргументам. Стандартная процедура. Берём и дифференцируем целевую величину $M$ по параметрам $A$ и $C$ и приравниваем результат нулю: $$\frac{1}{2}\frac{\partial M}{\partial A}=A\sum\limits_{k}{\exp \left( 2B{{x}_{k}} \right)}+C\sum\limits_{k}{\exp \left( B{{x}_{k}} \right)}-\sum\limits_{k}{{{y}_{k}}\exp \left( B{{x}_{k}} \right)}=0$$$$\frac{1}{2}\frac{\partial M}{\partial C}=A\sum\limits_{k}{\exp \left( B{{x}_{k}} \right)}+C\sum\limits_{k}{1}-\sum\limits_{k}{{{y}_{k}}}=0$$
Откуда выходит линейная задача на параметры $A$ и $C$:
$$\left( \begin{matrix}
   \sum\limits_{k}{\exp \left( 2B{{x}_{k}} \right)} & \sum\limits_{k}{\exp \left( B{{x}_{k}} \right)}  \\
   \sum\limits_{k}{\exp \left( B{{x}_{k}} \right)} & \sum\limits_{k}{1}  \\
\end{matrix} \right)\left( \begin{matrix}
   A  \\
   C  \\
\end{matrix} \right)=\left( \begin{matrix}
   \sum\limits_{k}{{{y}_{k}}\exp \left( B{{x}_{k}} \right)}  \\
   \sum\limits_{k}{{{y}_{k}}}  \\
\end{matrix} \right)$$
Находим их, подставляем в целевую функцию $M(A,B,C)$ и получаем целевую функцию, зависящую только от одного искомого параметра $B$. Теперь дело за компьютером. Алгоритм, разумеется, какой-нибудь одномерный без производных.

И да, величина
$\sum\limits_{k}{1}$
— это количество ваших данных.

Евгений Машеров в сообщении #1368246 писал(а):
А можно поинтересоваться результатами?

Я бы поинтересовался табличкой исходных данных, чтобы поиграться. Изображение

Кстати, если $x_k$ равноудалены, то все суммы в матрице являются суммами арифметических прогрессий, и для них можно сразу запилить общую формулу. Немного ускорит счёт.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group