2014 dxdy logo

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

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




На страницу 1, 2, 3, 4  След.
 
 Функция двух переменных заданная таблицей и её производные
Сообщение28.07.2008, 13:15 
Функция двух переменных задана не аналитическим способом (не формулой), а табличным: набор пар аргументов и соответствующих им значений этой функции. Существует ли способ находить частные производные для каждой из представленных пар аргументов?

 
 
 
 
Сообщение28.07.2008, 13:44 
Аватара пользователя
Можно, например, решить сначала задачу интерполяции (это можно сделать разными методами) и по найденной интерполяционной функции f(x,y) найти её производную (причём в любой точке). Правда, тут надо, чтобы сама f(x,y) была дифференцируемой, поэтому не каждый способ интерполяции подойдёт.

 
 
 
 
Сообщение28.07.2008, 14:24 
Да, мне это уже предложили. Но я слышал, что существуют методы, позволяющие находить приближённые производные для дискретных функций без интерполяции, используя только табличные данные... Не в курсе?

 
 
 
 
Сообщение28.07.2008, 15:43 
Это как? Было бы очень любопытно взглянуть. Даже примитивнейший метод оценки производной (функции одной переменной, для многих аналогично) через $\frac{f(x+h)-f(x)}{h}$ (то есть ничего, кроме табличных данных не используем) по сути дела основан на линейной интерполяции.

 
 
 
 
Сообщение28.07.2008, 15:44 
Аватара пользователя
Конечно, можно придумать аналоги одномерных разностных аппроксимаций.
Пусть, например, для данной табличной точки существует содержащий её выпуклый многоугольник, вершинами которого также являются табличные точки. Тогда можно найти первую производную вдоль какого-то направления, проведя через данную точку прямую вдоль этого направления, найдя точки пересечения этой прямой со сторонами многоугольника, вычислив значения функции в этих точках пересечения линейной интерполяцией, и сведя таким образом задачу к одномерному случаю.

 
 
 
 
Сообщение28.07.2008, 15:45 
Mr. Demetrius писал(а):
Но я слышал, что существуют методы, позволяющие находить приближённые производные для дискретных функций без интерполяции, используя только табличные данные...

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

 
 
 
 
Сообщение28.07.2008, 15:46 
Да, кстати, а уточнить постановку задачи можно? В каких именно точках задана функция? Что о ней известно (из какого она класса, например)?

 
 
 
 
Сообщение28.07.2008, 15:48 
Аватара пользователя
Narn в сообщении #135936 писал(а):
Даже примитивнейший метод оценки производной... по сути дела основан на линейной интерполяции.

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

 
 
 
 
Сообщение28.07.2008, 16:08 
Если сетка равномерная и значения производных нужны только в узлах, то для их оценки можно использовать формулу Тейлора. Этот способ напрямую с интерполированием не связан и позволяет получать более конкретные оценки погрешности. Например, в стандартных

$$ f'(x_i)={f(x_{i+1})-f(x_{i-1})\over 2h}-{h^2\over6}f'''(\xi)\;, $$

$$ f''(x_i)={f(x_{i+1})-2f(x_i)+f(x_{i-1})\over h^2}-{h^2\over12}f^{(4)}(\xi) $$

остаточные члены так просто из интерполяционного не выведешь.

Кстати, продвинувшись чуть дальше, теми же формулами Тейлора последний результат легко уточняется:

$$ f''(x_i)={f(x_{i+1})-2f(x_i)+f(x_{i-1})\over h^2}-{h^2\over12}f^{(4)}(x_i)+O(h^4)\; $$

Это бывает полезно.

 
 
 
 
Сообщение28.07.2008, 18:28 
worm2, я о том же, что и Алексей К. писал. То есть, как ни крути, но где-то там интерполяция сидит. Просто выразился хуже. А то что Вы глобальную интерполяцию предлагаете, я понял. Поэтому и написал про другой, самый примитивный способ, в котором
интерполяция локальная.

Прочитал сообщение ewert. Не интерполяция, так аппроксимация :) .

 
 
 
 
Сообщение28.07.2008, 18:37 
Narn писал(а):
Не интерполяция, так аппроксимация :) .

интерполяция (с прикладной точки зрения) -- не более чем очень частный случай аппроксимации

 
 
 
 
Сообщение28.07.2008, 18:37 
Большое спасибо, что откликнулись. Прокомментирую в порядке поступления вопросов.

Цитата:
Это как? Было бы очень любопытно взглянуть. Даже примитивнейший метод оценки производной (функции одной переменной, для многих аналогично) через (то есть ничего, кроме табличных данных не используем) по сути дела основан на линейной интерполяции.
Видимо, об этом и шла речь. Операторы Собела и иже с ними. Не самый лучший способ, на мой взгляд.

Алексей К. в сообщении #135938 писал(а):
"Используя только табличные данные" означает, что залезли в таблицу и вынули производную. У Вас случай не тот. Надо что-то взять из таблицы и повычитать, поделить, поусреднять. Т.е. выполнить какую-нибудь, самую примитивную, интерполяцию. Хотя бы по двум соседним точкам (закрыв глаза на тот факт, что точка слева ничем не хуже точки справа).
Да, вы правы. Над табличными данными в любом случае необходимо производить вычисления, которые в некотором роде буду являться интерполяцией.

ewert, больно формулы запутанные...

Narn в сообщении #135940 писал(а):
Да, кстати, а уточнить постановку задачи можно? В каких именно точках задана функция? Что о ней известно (из какого она класса, например)?
Таблица x на y. В каждой точке натуральное число - значение функции от её координат. То есть, как я и говорил, функция от двух переменных, заданная таблицей. Требуется найти производные по x и по y для каждой точки, с целью последующего вычисления градиента в каждой точке. Безусловно, я слышал о методах приминения градиентных масок Собеля, Преввита и т.д. Но мне эти методы показались грубыми и дающими результат с большой погрешностью. Вот поэтому и ищу другой способ.


Хорошо, давайте остановимся на интерполяции. Какой способ вы посоветуете использовать для получения приближённого аналитического выражения функции? Я так понял, можно интерполяцией получить аналитическое представление двух функций: по x и по y. Производные по ним и будут частными производными в каждой точке. Или я ошибаюсь? Поправьте, пожалуйста, и подскажите наилучший по вашему мнению метод - я в вычислительной математике, к сожалению, не силён.

 
 
 
 
Сообщение28.07.2008, 18:42 
Mr. Demetrius писал(а):
ewert, больно формулы запутанные...

Да они не запутанные, а совершенно стандартные, в любом справочнике можно найти. Кроме, может, последней -- это уже чуть специфичнее; но и тоже очень просто.

 
 
 
 
Сообщение28.07.2008, 18:55 
В таком случае, не могли бы вы разъяснить буквы формулы? Хотя бы, что такое h? Да и откуда берётся выражение, вычитающееся в конце?

 
 
 
 А смогу ли я сапоги себе сшить по интернетным подсказкам?
Сообщение28.07.2008, 19:00 
Mr. Demetrius писал(а):
Хорошо, давайте остановимся на интерполяции. Какой способ вы посоветуете использовать для получения приближённого аналитического выражения функции? Я так понял, можно интерполяцией получить аналитическое представление двух функций: по x и по y. Производные по ним и будут частными производными в каждой точке. Или я ошибаюсь? Поправьте, пожалуйста, и подскажите наилучший по вашему мнению метод - я в вычислительной математике, к сожалению, не силён.

Мы все хором сразу подскажем Метод Наименьших Квадратов. И что аналитический вид надо придумать (из физической модели или от фонаря) самому. Метод лишь вычислит коэффициенты. При этом мы заметим, что подсказка условна, и, кто не поленится и не опаздывает на день рождения, предложит другое или уточнит детали.

Я --- опаздывающий, и по сути скажу мало и скупо. Ваша задача --- это отдельная маленькая профессия. Целое ремесло. Возможно, уже как-то заавтоматизированное...

 
 
 [ Сообщений: 49 ]  На страницу 1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group