Пытаюсь решить уравнение
f(x)=1/(Pi*(1+x^2));
f(y)=1/(Pi*(1+y^2));
Int( f(x)*Int(f(y), y=-infinity...5.758770482+5.671281818*x) , x=-infinity...infinity);
в документации написано, что для численного интегрирования нужно использовать связку efalf(Int(...))
пишу
evalf( Int( f(x)*Int(f(y), y=-infinity...5.758770482+5.671281818*x, method=_d01amc) , x=-infinity...infinity, method=_d01amc));
решение maple не может найти
но если заменить Int на int то maplе находит решение
Но оно не верно, т.к. решение должно быть действительным числом.
Не могу понять в чем дело. Может надо дополнительный пакет использовать?
Думаю все проблемы связаны с тем что интеграл от бесконечностей берется, но чтобы не было с этим проблем я использую метод _d01amc но он почему-то не помогает
Численное интегрирование двойного интеграла, Maple 9.5
Модератор: Admin
Действительно, если в Maple 10 мы имеем комплексное значение, то в Maple 8 получаем Float(undefined), хотя уже график
> plot(f(x)*h(x), x=-infinity...infinity);
показывает, что должно быть конкретное действительное значение. К сожалению, это далеко не единственная проблема Maple при вычислениях даже относительно несложных интегралов. Много по этому поводу можно найти в англоязычных форумах и в Goole-группах. В таком случае еще для Maple 7 рекомендовалось одним авторитетом, в частности, «поиграть» Digits, что я и сделал:
> f:= x -> 1/(Pi*(1+x^2)): g:= y -> 1/(Pi*(1+y^2)):
> Digits:=3: h:= x -> int(g(y), y=-infinity...5.758770482+5.671281818*x):
> int(f(x)*h(x), x=-infinity...infinity);
0.726
Мотивировку такого подхода по ряду причин не привожу, заинтересованный сам отыщет при необходимости.
> plot(f(x)*h(x), x=-infinity...infinity);
показывает, что должно быть конкретное действительное значение. К сожалению, это далеко не единственная проблема Maple при вычислениях даже относительно несложных интегралов. Много по этому поводу можно найти в англоязычных форумах и в Goole-группах. В таком случае еще для Maple 7 рекомендовалось одним авторитетом, в частности, «поиграть» Digits, что я и сделал:
> f:= x -> 1/(Pi*(1+x^2)): g:= y -> 1/(Pi*(1+y^2)):
> Digits:=3: h:= x -> int(g(y), y=-infinity...5.758770482+5.671281818*x):
> int(f(x)*h(x), x=-infinity...infinity);
0.726
Мотивировку такого подхода по ряду причин не привожу, заинтересованный сам отыщет при необходимости.
.:Артём:., oчень нехорошо одновременно задавать один и тот же вопрос на нескольких форумах, [особенно без указания этого!]. Не ясно — где отвечать!
Но оно не верно, т.к. решение должно быть действительным числом.
Вы получаете
Код: Выделить всё
.7266741716-2.387324146*10^(-12)*I
Мнимая часть этого ответа достаточно близка к нулю.
Можно использовать evalf(Int(..)) вот так:
Код: Выделить всё
> evalf(Int(fx*(int(fy, y = -infinity .. 5.758770482+5.671281818*x)), x = -infinity .. infinity))
0.7266741715
То есть внутренний интеграл считает int, внешний -- evalf(Int(...))