2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Производные функции многих переменных
Сообщение06.10.2017, 17:52 
Аватара пользователя


16/11/12
55
Задача следующая: есть функция $f:\mathbb{R}^n\to\mathbb{R}$, но она дана не на всём $\mathbb{R}^n$, а на конечном наборе точек. Нужно численно найти все её частные производные в каждой из точек.

Первое решение, которое приходит в голову - это интерполировать функцию в данной точке квадратичным полиномом ($n$ переменных) и взять производные этого полинома. Но дело в том, что при больших $n$ количество членов в квадратичном полиноме, если правильно помню $\sim n^2$, из-за чего придётся решать огромную СЛАУ для интерполяции, поэтому вопрос: есть ли способы попроще?

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 18:10 
Заслуженный участник


20/08/14
11900
Россия, Москва
Если не ошибаюсь, то частную производную можно брать не по всей функции, а по сечению функции плоскостью. Тогда интерполировать надо не одновременно все $n$ переменных, а всего лишь одну, и по ней брать производную. И повторить это $n$ раз для каждой из переменных. Но все полиномы будут при этом обычной параболой $a_ix_i^2+b_ix_i+c_i, i=1..n$.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 19:03 
Аватара пользователя


16/11/12
55
Dmitriy40
Так можно сделать с равномерной сеткой, у меня же точки расположены "хаотично".

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 19:33 
Заслуженный участник


20/08/14
11900
Россия, Москва
Не понимаю причём здесь равномерность сетки. Она может влиять лишь на точность интерполяции, но не на саму возможность таковой. И тем более частная производная специально так определена что перекрёстные члены нулевые, в этом её отличие от полной производной, а значит производная в плоском сечении не отличается от частной по той же переменной.
Другое дело если Вы хотите уточнять частные производные по одной координате по частным производным по другим координатам, если где-то точки расположены слишком редко для получения требуемой точности, тогда да. Но это другая задача и по ней я ничего сказать не могу.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 19:37 
Аватара пользователя


16/11/12
55
А если у меня только одна точка на данной координатной линии, то как аппроксимировать параболой?

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 19:54 
Заслуженный участник


27/04/09
28128
Если я правильно понял, тогда, например, триангулируйте область и что-то на треугольниках попробуйте определить. Для этого уже должны быть известные методы — я слышал, есть интерес располагать детекторы нерегулярно, чтобы избавиться от алиасинга.

-- Пт окт 06, 2017 21:54:39 --

Ну да, собственно, вы о таких методах и спросили. Я пас. :D

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 19:57 
Заслуженный участник


20/08/14
11900
Россия, Москва
qwe8013 в сообщении #1253770 писал(а):
А если у меня только одна точка на данной координатной линии, то как аппроксимировать параболой?
Не знаю.
С другой стороны, а чему тогда вообще равна частная производная, если функция определена лишь в одной точке? По моему производная тогда вообше не определена. Потому что нет приращения аргумента и нельзя взять предел отношения.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 20:00 
Аватара пользователя


16/11/12
55
Dmitriy40
Точек много, но может случиться так, что на данной линии точка одна.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 20:32 
Заслуженный участник


20/08/14
11900
Россия, Москва
Угу, понял.
Ну тогда у меня только мысль постепенно интерполировать промежуточные точки на нужную линию по другим точкам. Насколько это будет точно и трудоёмко - вопрос.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение06.10.2017, 20:58 
Заслуженный участник


05/08/14
1564
qwe8013 в сообщении #1253744 писал(а):
Нужно численно найти все её частные производные в каждой из точек.

Если имеются ввиду производные 1-го порядка, то можно для каждой точки $x_i$ найти $n$ ближайших точек $x_j, j=1,...,n$ и составить $n$ линейных уравнений для разностей. Получим $n$ уравнений ($z_{i,l}- l$-ая координата точки $x_i$ в $\mathbb{R}^n$) относительно $n$ неизвестных $ \frac{\partial{f}(x_i)}{\partial{z}_{l}}$, $(l=1,\dots, n)$
$\frac{\partial{f(x_i)}}{\partial{z_{1}}}(z_{i,1}-z_{j,1}) +\cdots+\frac{\partial{f(x_i)}}{\partial{z}_{n}}(z_{i,n}-z_{j,n})=f(x_i)-f(x_j)$
$j=1,\dots,n$
Чтобы система была однозначно разрешимой надо только, чтобы соседние точки не лежали в одной гиперплоскости, но т.к. точки распределены "хаотично", то вероятность такого события нулевая.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение08.10.2017, 18:01 
Аватара пользователя


16/11/12
55
В общем сделал как в первом посте: интерполировал многочленом 2 степени, соответствующую СЛАУ решил методом простых итераций. Решил для проверки вычислить значения многочлена в точках, по которым строилась интерполяция. При количестве переменных - около 20 вылезают большие ошибки, можно ли это как-то побороть?

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение08.10.2017, 18:20 
Заслуженный участник


20/08/14
11900
Россия, Москва
Тут были темы Точность решения СЛАУ прямыми методами и Точность вычислений в BLAS.h, возможно найдёте там советы.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение09.10.2017, 00:40 
Заслуженный участник


11/05/08
32166
qwe8013 в сообщении #1253744 писал(а):
интерполировать функцию в данной точке квадратичным полиномом

А при чём тут квадратичность? Если речь только о первых производных, то достаточно линейного, т.е. симплекса.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение09.10.2017, 02:01 
Аватара пользователя


16/11/12
55
ewert
Вы конечно правы, но рассмотрим картинку:
Изображение
на ней изображены три точки. По ней видно, что можно обойтись и двумя точками, в зависимости от того, какую точку выберем получается совсем разный результат. Мне кажется, что в данном случае стоит построить параболу, она так сказать, точнее отобразит суть.

 Профиль  
                  
 
 Re: Производные функции многих переменных
Сообщение09.10.2017, 20:59 
Аватара пользователя


16/11/12
55
В принципе, для функции одной переменной можно сделать так:
пусть есть 3 точки
$
\begin{cases}
y_0=f(x_0)\\
y_1=f(x_1)\\
y_2=f(x_2)\\
x_0<x_1<x_2
\end{cases}
$
Введём производные по 2-м точкам:
$
\begin{cases}
d_0=\frac{y_1-y_0}{x_1-x_0}\\
d_1=\frac{y_2-y_1}{x_2-x_1}\\
d_2=\frac{y_2-y_0}{x_2-x_0}
\end{cases}
$
Можно построить квадратный интерполяционный полином по 3-м точкам выше:
$
p(x)=a\cdot x^2+b\cdot x+c
$
его производная в точке $x_1$ равна
$
p'(x)=2ax_1+b
$
где
$
\begin{cases}
a=-\frac{x_0}{(x_0-x_1)(x_0-x_2)}\cdot d_1+\frac{x_1}{(x_0-x_1)(x_1-x_2)}\cdot d_2-\frac{x_2}{(x_0-x_2)(x_1-x_2)}\cdot d_0\\
b=\frac{x_2^2}{(x_0-x_2)(x_1-x_2)}\cdot d_0+\frac{x_0^2}{(x_0-x_1)(x_0-x_2)}\cdot d_1-\frac{x_1^2}{(x_0-x_1)(x_1-x_2)}\cdot d_2
\end{cases}
$
тогда производная в точке $x_1$ будет равна
$
p'(x_1)=-\frac{2x_1x_0}{(x_0-x_1)(x_0-x_2)}\cdot d_1-\frac{2x_1x_2}{(x_0-x_2)(x_1-x_2)}\cdot d_0+\frac{x_1^2}{(x_0-x_1)(x_1-x_2)}\cdot d_2+\frac{x_2^2}{(x_0-x_2)(x_1-x_2)}\cdot d_0+\frac{x_0^2}{(x_0-x_1)(x_0-x_2)}\cdot d_1=
$


$
=d_0\cdot\frac{x_2^2-x_1x_2}{(x_0-x_2)(x_1-x_2)}+d_1\cdot\frac{x_0^2-2x_1x_0}{(x_0-x_1)(x_0-x_2)}+d_2\cdot\frac{x_1^2}{(x_0-x_1)(x_1-x_2)}=
$

$
=-d_0\cdot\frac{x_2}{x_0-x_2}+d_1\cdot\frac{x_0}{x_0-x_2}+d_2\cdot\frac{x_1^2}{(x_0-x_1)(x_1-x_2)}
$
Надеюсь нигде не ошибся (сильно надеюсь). Может кто подскажет, есть ли подобное для функций большего числа переменных?

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

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



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

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


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

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