Помощь - Поиск - Пользователи - Календарь
Полная версия: Приближенное вычисление определенных интегралов (двойного, тройного)
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
Yurka
Какие методы (алгоритмы) можно использовать для вычисления двойных, тройных определенных интегралов. Интересуют методы по которым можно написать программу.
Lapp
Цитата(Yurka @ 15.08.2010 14:40) *
для вычисления двойных, тройных определенных интегралов
А вычислять одномерные ты знаешь, как?
Я вижу существенную разницу только в том, как задавать (или отслеживать) границы области интегрирования.
Yurka
Цитата(Lapp @ 15.08.2010 14:32) *

А вычислять одномерные ты знаешь, как?
Я вижу существенную разницу только в том, как задавать (или отслеживать) границы области интегрирования.


Обычные одномерные знаю как. Писал раньше прогу на Delphi (для методов Симпсона и трапеций).
Эти методы можно использовать для двойных и тройных интегралов? если можно, то подскажите как.

Lapp
Цитата(Yurka @ 15.08.2010 15:58) *
Обычные одномерные знаю как. Писал раньше прогу на Delphi (для методов Симпсона и трапеций).
Эти методы можно использовать для двойных и тройных интегралов? если можно, то подскажите как.
Повторяю: основная сложность - с заданием границ интегрирования. Но если они простые (то есть кнстанты, и область интегрирования тем самым прямоугольная), то - какая сложность с применением старых методов? В простейшем варианте, их можно просто логически разбить на два (или, соответственно, три) этапа. Делаешь два (три) вложенных цикла. То есть заменяешь двойной (тройной) интеграл на два (три) вложенных - вот и все. То есть действуешь буквально по определению:

(двойной интеграл от x1 до x2 и от y1 до y2) F(x,y) dx dy = (интеграл от x1 до x2) ((интеграл от y1 до y2) F(x,y) dy ) dx

В чисто вычислительном плане это может быть не очень эффективно, но так ты мог бы даже использовать свои старые программы (если у тебя функция передается в параметрах). Более эввективно, конечно, считать тройной цикл с непосредственным суммированием F(x,y)*dy*dy.


Yurka
Цитата(Lapp @ 15.08.2010 15:24) *

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

(двойной интеграл от x1 до x2 и от y1 до y2) F(x,y) dx dy = (интеграл от x1 до x2) ((интеграл от y1 до y2) F(x,y) dy ) dx

В чисто вычислительном плане это может быть не очень эффективно, но так ты мог бы даже использовать свои старые программы (если у тебя функция передается в параметрах). Более эввективно, конечно, считать тройной цикл с непосредственным суммированием F(x,y)*dy*dy.

Спасибо, вроде прояснилось. Границы в идеале должен задавать пользователь.
Если не трудно, пару слов скажите по эффективности упомянутых алгоритмов (какой наиболее эффективный), чтобы не перебирать все. Может лучше использовать метод Монте-Карло?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.