Численное интегрирование функции со значениями, известными в данном наборе точек (конечных и дискретных) по области, ограниченной дискретными точками? - PullRequest
1 голос
/ 17 мая 2011

Пусть D - область, ограниченная серией точек {x_i, y_i} (1 <= i <= N). (Площадь не должна быть выпуклой, и точки должны проходить вдоль граничной кривой.)</p>

Пусть f - функция, определенная на D, но мы знаем только ее значения на заданном наборе точек (конечных и дискретных), скажем, {x'_i, y'_i, f (x'_i, y'_i))} (1 <= i <= N '). (Данный набор данных не обязательно должен быть «плотным» в D.) </p>

Как выполнить числовое интегрирование f по D?

Вот то, что я думаю:
1) Сначала мы должны приблизить границу D отрезками между этими рядами точек.
2) Затем мы должны выполнить некоторую интерполяцию для данного набора данных. Однако интерполяция в двух измерениях не всегда возможна. Тогда я застреваю.

Не могли бы вы помочь?Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 марта 2017

Если вы смогли триангулировать свои точки, задания были выполнены: в каждом треугольнике вы знаете значения функций в угловых точках и интегрируете их через

triangle_area * (val1 + val2 + val3) / 3.0

В то время как выпуклая триангуляция является решаемой проблемой с большим количеством доступных инструментов (см., Например, qhull ), невыпуклая триангуляция намного сложнее. В любом случае, копание в этом направлении, вероятно, приведет вас куда-то.

0 голосов
/ 17 мая 2011

Я бы записал решение в виде контурного интеграла и использовал бы сумму числового интегрирования Гаусса или квадратурного 1D по каждому кусочному сегменту на границе.Логарифмическая квадратура полезна, если функция в некоторой точке кривой является единственной.

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

Если вы доберетесь до этого, я бы порекомендовалсходимость путем удвоения числа кривых вдоль контура и повторного интегрирования.Если интегральное значение не изменяется после одной или двух итераций, вы можете считать себя сходящимся.

Если вы говорите, что не знаете значений функции где-либо на кривой, то вы не сможетесделать интеграцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...