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 ] 

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



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

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


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

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