Страница 1 из 2

вычисление интеграла

Добавлено: 31 окт 2010, 15:04
carlos0n
Здравствуйте. Задали написать программу для вычисления интегралов вида:

$$\int_{-\infty}^{+\infty}{exp(-x^2)f(x)dx}$$

подскажите каким методом его можно вычислить, чтобы это можно было без проблем запрограммировать. желательно его ещё и объяснить, но это не обязательно))
был бы вам очень признателен))

вычисление интеграла

Добавлено: 31 окт 2010, 17:25
Ellipsoid
B элементарных функциях не выражается.

вычисление интеграла

Добавлено: 31 окт 2010, 17:32
vicvolf

Это несобственный интеграл. Он сходится далеко не для всех f(x). Какая у Bac f(x)?

вычисление интеграла

Добавлено: 31 окт 2010, 17:36
Ellipsoid
Ellipsoid писал(а):Source of the post
B элементарных функциях не выражается.


Чушь, кажется, написал...

вычисление интеграла

Добавлено: 31 окт 2010, 17:44
mihailm
Вначале наверно надо концы отрезка интегрирования определить, что нибудь типа по модулю больше 10 и значение подынтегральной функции меньше эпсилон/4

потом любым методом численного интегрирования их библиотек как собак

a про функцию f(x) что-нить известно?

вычисление интеграла

Добавлено: 31 окт 2010, 18:09
venja
Насколько я помню, есть специальные квадратурные формулы для бесконечного промежутка интегрирования c весом $$exp(-x^2)$$. Найдите, там есть узлы и веса.

вычисление интеграла

Добавлено: 31 окт 2010, 18:17
laplas
метод Монте Карло

вычисление интеграла

Добавлено: 31 окт 2010, 22:35
Георгий
Давайте рассмотрим конкретный пример (принял наобум)

$$\int \limits _{-\infty}^{+\infty}{e^{-x^2}ln(10|x|)dx}$$

Вольфрам дает только численное значение исходного интеграла:
[url=http://www.wolframalpha.com/input/?i=int%2...ty..infinity%29]http://www.wolframalpha.com/input/?i=int%2...ty..infinity%29[/url]

Он равен 2,34111

Теперь мой рекомендуемый подход. Обязательно строим подинтегральную функцию (см. Рис)

Мы видим, что функция симметричная и достаточно найти интеграл

$$2 \int \limits _{0}^{4}{e^{-x^2}ln(10|x|)dx}$$

Составим программу расчета этого интеграла методом прямоугольников. Вот прога на Yabasic:

for k=2 to 6
d=10^(-k)
for x=d/2 to 4 step d
sum=sum+exp(-x^2)*log(10*x)*d
next x
print d,2*sum
sum=0
next k

При разных d (то есть ширин полос разбиения) получим такие результаты:

d= 0.01 ; S=2.34804
d=0.001 ; S=2.3418
d=0.0001 ; S=2.34118
d=0.00001 ; S=2.34112
d=0.000001 ; S=2.34111

Как видим, задача успешно решена самым простым способом.

Изображение

вычисление интеграла

Добавлено: 01 ноя 2010, 04:58
bot
Чтобы получился вид, нужны какие-то описания возможностей выбора функции $$f(x)$$, a так никаким видом и не пахнет - под интегралом любая функция. Для представления любой функции $$F(x)$$ в таком "виде" достаточно взять $$f(x)=e^{x^2}F(x)$$.

вычисление интеграла

Добавлено: 01 ноя 2010, 08:52
Георгий
bot писал(а):Source of the post
Для представления любой функции $$F(x)$$ в таком "виде" достаточно взять $$f(x)=e^{x^2}F(x)$$.

Вы все свели к "Таблице интегралов". Так не интересно.