2014 dxdy logo

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

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


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


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Аппроксимация функции
Сообщение17.07.2012, 17:42 


15/02/12
17
Есть функция $F(t,z)=0$, которая решается численным методом для каждого $t$; Есть еще 2 функции $x = F_x(t,z)$ и $y=F_y(t,z)$.
Нужно аппроксимировать функцию $y=F(x)$ прямыми с заданной точностью $\delta$.
Т.е., по идеи, вот так (или как еще в данном случае можно точность понимать?): Изображение
Где $DB=\delta$.

Так вот, точка $A$ есть, как найти точку $C$?

Можно получить одно уравнение найдя расстояние от точки $B$ до прямой $AC$. Если выразить все в $z$ и $t$, учитывая, что есть функция $F(t,z)=0$, получим 2 неизвестные (две точки $B, C$): $z_B, z_C$. Где взять еще одно уравнение?

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение17.07.2012, 20:01 
Заблокирован по собственному желанию
Аватара пользователя


18/05/09
3612
FuntPND в сообщении #596252 писал(а):
Есть функция $F(t,z)=0$, которая решается численным методом для каждого $t$; Есть еще 2 функции $x = F_x(t,z)$ и $y=F_y(t,z)$.
Нужно аппроксимировать функцию $y=F(x)$
Вы очень коряво задачу описали. Во-первых, буковка F использована для обозначения двух совершенно разный функций (одной и двух переменных). $F(t,z)=0$ --- это не функция, а уравнение ("которОЕ решается численным методом..." функции не решаются). Возможно, оно определяет функцию $z(t)$.

Во-вторых, неудачные обозначения типа $F_x$ напоминают частные производные, о которых, как я понимаю, здесь речи нет. А читать трудно, путаница производится. Вам буковок не хватает? $x=X(t,z)$, или $x=G(t,z)$.

Не хотите переписать аккуратнее?

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение17.07.2012, 20:29 


29/09/06
4552
Думаю, полезно было бы сообщить, как заданы функции $F_{x,y}$, обозначения которых я ниже меняю на $X,Y$. Можно ли из системы $$\begin{cases}x=X(t,z),\\y=Y(t,z),\end{cases}$$ выразить явно $t=T(x,y)$, $z=Z(x,y)$?

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение18.07.2012, 10:16 


15/02/12
17
AKM в сообщении #596293 писал(а):
Вы очень коряво задачу описали. Не хотите переписать аккуратнее?

К сожалению первое сообщение уже не могу подправить, попробую еще раз.
Есть уравнение $E(t,z)=0$, из которого, к сожалению, нельзя явным образом получить функцию $z(t)$. Для нахождения $z$ по заданному $t$ используется метод Ньютона.
Нужно построить кусочно-линейную аппроксимацию функции $F(x,y)$, где $x=X(t,z)$ и $y=Y(t,z)$.

Точка $A$ известна (известны границы $t$, таким образом для начальной $t$ можно получить $z$ из $E(t,z)=0$, а дальше посчитать $x, y$).

Дальше нужно найти точку $C$ так, чтобы наибольшее расстояние от точки на кривой $F(x,y)$ (в промежутке от $A$ до $C$) до прямой $AC$ было равно $\delta$.
Т.е., можно построить функцию расстояние от любой точки на $F(x,y)$ до $AC$. Учитывая, что $DB=\delta$ получим одно уравнение. И Учитывая, что $DB$ должно быть максимумом этой функции получим другое уравнение. Имея $E(t,z)=0$ можно будет решить систему...

-- 18.07.2012, 11:23 --

Алексей К. в сообщении #596307 писал(а):
Можно ли из системы $$\begin{cases}x=X(t,z),\\y=Y(t,z),\end{cases}$$ выразить явно $t=T(x,y)$, $z=Z(x,y)$?

К сожалению нет :(

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение18.07.2012, 11:38 


29/09/06
4552
Самое тупое: с каким-то достаточно малым шагом по тэ вычисляете $x_i(t_i), y_i(t_i)$. Шаг можно делать переменным, проверяя как далеко ушла i-я точка от i-минус-первой. И вот какое-то $t_{n}$ (седьмое, или сотое, или каждое) проверяете: $C=(x_n,y_n)$.
Проводите прямую $AC{:}\;ax+by+L=0,\;a^2+b^2=1!,$ и считаете $|\delta_i|=|ax_i+by_i+L|$. Проверяете максимум.

Вообще-то условие экстремума функции $\delta(t)$ можно выписать явно через частные производные $X'_t,X'_z,\ldots,E'_z$, но у меня нет уверенности-ясности, полезно ли это для Вашего дела.

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение18.07.2012, 12:57 


15/02/12
17
Алексей К. в сообщении #596485 писал(а):
Вообще-то условие экстремума функции $\delta(t)$ можно выписать явно через частные производные $X'_t,X'_z,\ldots,E'_z$, но у меня нет уверенности-ясности, полезно ли это для Вашего дела.

Спасибо за вариант.
В идеале конечно хотелось бы получить систему, которую, я так понимаю, можно было бы решить многомерным методом Ньютона и найти $B, C$ без подбора точки $C$. Но на практике, выражения $E(t,z), X(t,z), Y(t,z)$ настолько громоздкие, что даже если точка $C$ известна, я все равно никак не могу представить как получить такую систему и сколько на это может уйти времени :( .

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение18.07.2012, 14:58 


29/09/06
4552
Я даже не знаю, сообщил ли я Вам что-то новое, написав нормированное уравнение прямой, левая часть которого даёт расстояние (со знаком) от точки до прямой. Может, Вы это знали и без меня: это не было ясно из Вашего сообщения.

Далее, легко выписать, если хотите, упомянутое условие экстремума для случая фиксированной точки С.

Наконец, если оно Вам чем-то приглянётся и не отпугнёт, можно попробовать выписать систему уравнений с двумя неизвестными $t,v$ $(0<t<v)$, где $v$ будет изображать конец отрезка, теперь не фиксированный. Типа $$D(t,v)=a(v)x(t)+b(v)y(t)+L(v),\quad  \begin{cases}D'_t=0,\\D'_v=0. \end{cases}$$ Мне слабо верится в эффективность этого занятия, но можно попробовать, увидеть и бросить. Думаю, лет 100 назад я это пережил (для кривых Безье), бросил, но забыл подробности. Второй попытки должно хватить на оставшиеся N лет... :D

-- 18 июл 2012, 16:09:00 --

Ой, да не будет там, наверное экстремума функции двух переменных... Думать надо будет. (Этого ещё не хватало, в июле-то!)

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение18.07.2012, 15:30 


15/02/12
17
Алексей К. в сообщении #596579 писал(а):
Я даже не знаю, сообщил ли я Вам что-то новое, написав нормированное уравнение прямой, левая часть которого даёт расстояние (со знаком) от точки до прямой.

Сообщили :)

Алексей К. писал(а):
Ой, да не будет там, наверное экстремума функции двух переменных... Думать надо будет. (Этого ещё не хватало, в июле-то!)

Мне кажется там будет условный экстремум одной переменной (если правильно выразился). Т.е. с помощью нахождения максимума мы фиксируем точку $B$, соответственно нужно искать экстремум только относительно $t$. Но поскольку функция расстояния до прямой зависит и от $z$, а $z$ зависит от $t$, то при поиске экстремума нужно учитывать $E(t,z)=0$, т.е. использовать метод Лагранжа....

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение18.07.2012, 16:28 


29/09/06
4552
Вот так, наверное: $D'_t(t,v)=0$ даст зависимость $t_{extr}(v)$ (хорошо бы единственную), а уравнение $|D(t_{extr}(v),v)|=\delta_{max}$ даст искомое $v$. А уж как это теоретизирование уложится в "пароходы, строчки и другие добрые дела" --- пока неясно...

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение19.07.2012, 14:59 


15/02/12
17
Алексей К. в сообщении #596485 писал(а):
Самое тупое: с каким-то достаточно малым шагом по тэ вычисляете $x_i(t_i), y_i(t_i)$. Шаг можно делать переменным, проверяя как далеко ушла i-я точка от i-минус-первой. И вот какое-то $t_{n}$ (седьмое, или сотое, или каждое) проверяете: $C=(x_n,y_n)$.
Проводите прямую $AC{:}\;ax+by+L=0,\;a^2+b^2=1!,$ и считаете $|\delta_i|=|ax_i+by_i+L|$. Проверяете максимум.

Имеется в виду взять например 10 точек, провести прямую между первой и 10-й точками. Посчитать расстояние от точек с второй по девятую до прямой. Проверить расстояния, если одно из них очень близко к заданной точности - взять 10-ю точку, если нет - идти дальше в право (увеличивать $t$) или вернуться назад (уменьшать $t$)...
Я так понимаю, этот метод не будет гарантировать, что для любой точки полученная аппроксимация будет удовлетворять условию точности. Но при малых шагах на "глаз" оно будет очень близко к заданной точности....

Или Вы имели в виду, что можно перебирать $t$, для каждой строить $AC$. Потом найти условный максимум (экстремум функции расстояния $DB(t,z)$ с учетом $E(t,z)=0$, где $t$ определяет точку $B$) и проверить, выполняется ли условия по точности, исходя из которого двигаться вперед или назад?

 Профиль  
                  
 
 Re: Аппроксимация функции
Сообщение19.07.2012, 16:23 


29/09/06
4552
FuntPND в сообщении #596964 писал(а):
Я так понимаю, этот метод не будет гарантировать, что для любой точки полученная аппроксимация будет удовлетворять условию точности.

Условия точности всё же обычно не рассматриваются как жёсткие неравенства. Ваше $\delta$ может трактоваться как $\delta\pm10\%$. Или можно в алгоритмах положить дельту типа 0.8 от заданной, для подстраховки.
Если Вы нашли, например, максимум последовательности в 7-й точке, то максимум функции можно уточнить квадратичной интерполяцией по точкам 6,7,8.

Ведь у Вас, похоже, хорошо конкретизированная задача, и это может как-то упростить дело.

Короче, я Вам предложил тупой способ прореживания точек: типа считаем их тыщу, потом оставляем первую, десятую, двадцать вторую итд.
И я совсем упустил из виду, что раз Вы можете вполне точно (практически, с компьютерной точностью) сосчитать координаты точек (а ещё и знать в каждой точке касательные, а то и кривизны), то задачу прореживания можно организовать несколько умнее. Сам придумал --- сам забыл. И Вы, как я понял, аппроксимируете не функцию, а плоскую кривую.

Посмотрите пока сюда. Там окружностями аппроксимировалось с заданной точностью, а у Вас прямыми. Малость подправить будет несложно, думаю.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

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



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

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


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

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