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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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