2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 17:28 
Заслуженный участник
Аватара пользователя


26/01/14
4846
Здравствуйте.
Такая проблема: нужно научиться считать в Maple несобственные кратные интегралы, численно.
Например, я пишу

int(int(sin(x*y+2)/sqrt(x^2+y^2),x=-1..1),y=-1..1);

Просто выдаёт символ интеграла, не считает.
Пробую по-другому:

int(int(sin(x*y+2)/sqrt(x^2+y^2),x=-1..1),y=-1..1,numeric);

numeric - чтобы считал численно. Выдаёт очень странный ответ про рекурсию:

Error, (in tools/map) too many levels of recursion

Откуда здесь рекурсия-то?
Пробовал писать numeric у обоих интегралов, всё равно не помогает.
Видел на форуме совет писать так:

MyInt:=Int(Int(sin(x*y+2)/sqrt(x^2+y^2),x=-1..1),y=-1..1);
evalf[8](MyInt);

То же самое.
Ещё слышал, что для несобственных надо применять опцию continuous. Тоже не считает.
Помогите, что делать?

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 18:31 
Заслуженный участник


12/07/07
4522
Если точность не важна, то попробуйте так
Код:
> evalf(Int(sin(x*y+2)/sqrt(x^2+y^2), [x=-1..1, y=-1..1], method=_MonteCarlo, epsilon=0.00005));
                                   6.222174505
Если точность важна, то попробуйте перебрать имеющиеся методы. Если не получится (напишите, какие перебрали методы), то придется разбираться в математике и программировать.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 18:44 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Mikhail_K в сообщении #848410 писал(а):
int(int(sin(x*y+2)/sqrt(x^2+y^2),x=-1..1),y=-1..1);

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

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 18:51 
Заслуженный участник
Аватара пользователя


26/01/14
4846
Otta в сообщении #848427 писал(а):
По существу проблемы: ее источник совершенно понятен, Вы считаете повторный интеграл вместо кратного, а он не существует. Уже внутренний расходится.

Вы ошибаетесь. Внутренний интеграл расходится только при y=0. То есть, внешний интеграл берётся от функции, которая обращается в бесконечность при y=0. Другими словами, внешний интеграл просто несобственный, вот и всё.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 19:24 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Внутренний тоже несобственный. Когда $y=0$. И при этом значении $y$ он превращается в $\int_{-1}^1\frac{\sin 2}{|x|}\,dx$. Сходится?

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 19:50 
Заслуженный участник
Аватара пользователя


26/01/14
4846
Внутренний РАСходится при y=0, и только при y=0.
Это значит, что внутренний интеграл есть функция от y, которая обращается в бесконечность при y=0, и принимает конечные значения при других y. Такую функцию можно интегрировать по y. Таким образом, повторный интеграл (именно повторный) может существовать, несмотря на расходимость внутреннего при y=0.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 20:07 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Mikhail_K в сообщении #848437 писал(а):
Таким образом, повторный интеграл (именно повторный) может существовать, несмотря на расходимость внутреннего при y=0.

Это Вы знаете, это я знаю. Вопрос: знает ли это машина? Иными словами, не получается ли, что утыкаясь в неприличное поведение интеграла при одном значении $y$, она просто не знает, что с этим делать? Какой заложен алгоритм вычисления?

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

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 20:12 
Заслуженный участник
Аватара пользователя


26/01/14
4846
Синус наверху я поставил затем, что без него этот интеграл берётся, и Maple его просто берёт, а не считает численно.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение11.04.2014, 20:23 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
А от $\frac{1}{(x^4+y^4)^{1/3}}$ что получается?

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение12.04.2014, 08:27 
Заслуженный участник


12/07/07
4522
Otta
Maple 7, Classic Worksheet Maple 12, Classic Worksheet Maple 15
Код:
> evalf(Int(Int(1/(x^2+y^2)^(1/2), x=-1..1), y=-1..1));
                        Вычислить не может
> evalf(Int(Int(1/(x^4+y^4)^(1/3), x=-1..1), y=-1..1));
                        Float(infinity)
Classic Worksheet Maple 12
Код:
> evalf(Int(1/(x^4+y^4)^(1/3), [x=-1..1, y=-1..1], method=_MonteCarlo, epsilon=0.0005));
                                  11.37465800
> evalf(Int(1/(x^2+y^2)^(1/2), [x=-1..1, y=-1..1], method=_MonteCarlo, epsilon=0.0005));
                                    7.050293210

Перейдя в полярную систему координат, в случае квадратного корня в Maple 12 получим
Код:
> 2*(evalf(Int(Int(1, rho = 0..1/cos(phi)), phi = -Pi/4..Pi/4)) + evalf(Int(Int(1, rho=0..1/sin(phi)), phi = Pi/4..3*Pi/4)));
                                     7.050988696
А в случае кубического корня в Maple 12
Код:
> f:= 1/(cos(phi)^4+sin(phi)^4)^(1/3): g:= 1/rho^(1/3):
> 2*(evalf(Int(f*Int(g, rho = 0..1/cos(phi)), phi = -Pi/4..Pi/4)) + evalf(Int(f*Int(g, rho=0..1/sin(phi)), phi = Pi/4..3*Pi/4)));
                                       11.39721950

Аналогично, в случае исходного интеграла
Код:
> f:= sin(rho^2*sin(phi)*cos(phi)+2):
> 2*(evalf(Int(Int(f, rho = 0..1/cos(phi)), phi = -Pi/4..Pi/4)) + evalf(Int(Int(f, rho=0..1/sin(phi)), phi = Pi/4..3*Pi/4)));
                                       6.222736680
Результат близок к значению, полученному при помощи метода _MonteCarlo.
Попробую грубо оценить относительную погрешность значения, полученного во втором сообщении темы методом _MonteCarlo. Для этого увеличу точность вычислений и буду вычисленное с такой точностью значение считать «точным».
Код:
> Digits:=20;f:= sin(rho^2*sin(phi)*cos(phi)+2):
> ff:=2*(evalf(Int (Int(f, rho = 0..1/cos(phi)), phi = -Pi/4..Pi/4)) + evalf(Int(Int(f, rho=0..1/sin(phi)), phi = Pi/4..3*Pi/4))):
> eps:= abs((ff - 6.222174505)/ff);
              eps := .000090342106339135968349
Увы, возникает подозрение, что метод _MonteCarlo не обеспечил заявленную погрешность вычислений. Хоть и не сильно.

Mikhail_K
Фичи и баги Maple — это необозримая тема. Я так и не понял, что планируется обсуждать в данной ветке.

-- Sat 12.04.2014 07:46:44 --

Документация Online по numeric integration Maple 17.

-- Соединены подряд идущие сообщения c перерывом три с половиной часа --

GAA в [url=http://dxdy.ru/post848561.html#p848561]сообщении #848561 писал(а):
Maple 7, Classic Worksheet Maple 12, Classic Worksheet Maple 15
Код:
> evalf(Int(Int(1/(x^2+y^2)^(1/2), x=-1..1), y=-1..1));
                        Вычислить не может
> evalf(Int(Int(1/(x^4+y^4)^(1/3), x=-1..1), y=-1..1));
                        Float(infinity)
Это я по невнимательности не в ту программу данные вел [на сервере маленький gray scale монитор]. На самом деле, maple 12 и maple 15 пишут, что не могут вычислить evalf(Int(Int(1/(x^4+y^4)^(1/3), x=-1..1), y=-1..1));. Т.е. эту дырку Maple 7 как будто починили. Остальное перепроверил, подтверждается.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение12.04.2014, 15:32 
Заслуженный участник
Аватара пользователя


26/01/14
4846
На самом деле, как оказалось, несобственные интегралы в Maple можно считать очень просто.
Именно, вместо

int(sin(x*y+2)/sqrt(x^2+y^2),[x=-1..1,y=-1..1],numeric);

писать

eps:=10^(-12);
int(sin(x*y+2)/sqrt(x^2+y^2),[x=-1..-eps,y=-1..1],numeric)+
int(sin(x*y+2)/sqrt(x^2+y^2),[x=eps..1,y=-1..1],numeric);

Точность замечательная :D

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение12.04.2014, 16:44 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Mikhail_K в сообщении #848664 писал(а):
int(sin(x*y+2)/sqrt(x^2+y^2),[x=-1..1,y=-1..1],numeric);

Интересно, а эта команда что, не работает? Ибо второе предложение - некий изврат, основанный на использовании определения.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение12.04.2014, 16:57 
Заслуженный участник
Аватара пользователя


26/01/14
4846
Otta в сообщении #848683 писал(а):
Интересно, а эта команда что, не работает? Ибо второе предложение - некий изврат, основанный на использовании определения.

Не работает. Долго думает, затем выдаёт ошибку.
Если подынтегральная функция непрерывна, такая команда работает, считает мгновенно. А вот уходящие на бесконечность функции Maple, видать, не любит.
Одномерные несобственные интегралы считает, а вот такие кратные несобственные - нет.
Только не соглашусь, что это изврат. Maple умеет считать собственные интегралы. Вычисление несобственного интеграла сводится к вычислению собственных по определению.

А с методом Монте-Карло перестаёт работать при требовании большой точности. Здесь же - какая угодно точность. И скорость великолепная.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение12.04.2014, 17:15 
Заслуженный участник


12/07/07
4522
На всякий случай добавлю: вызов
int(sin(x*y+2)/sqrt(x^2+y^2),[x=-1..1,y=-1..1],numeric);
эквивалентен (по справке) вызову
int(int(sin(x*y+2)/sqrt(x^2+y^2),x=-1..1),y=-1..1);
(Более того, раньше первого варианта записи двойного интеграла не было и следовало двойной интеграл задавать только в виде повторного. Так было еще в Maple 7. Точно с какой версии появился первый тип записи я не скажу. Но в 12 версии он точно есть.)

Об "изврате". Стандартный подход: заменяем несобственный интеграл собственным + малая добавка. В данном случае выбрасываем полосу, в которой находится особая точка. Разве не этому учат студентов в курсе «Высшей математики» или «Численных методов»? Недостатком этого подхода является необходимость оценить ширину полосы, которую выбрасываем. И с увеличением точности вычисления интеграла eps следует пересчитывать.
Преимуществом перехода в полярную систему координат будет большая скорость вычислений. Однако, если нам точность не важна и например 10 знаков достаточно, то эти тонкости не имеют значения.

Maple некоторые кратные несобственные интегралы вычисляет, некоторые нет. Заранее не угадаешь. Каждый раз приходиться разбираться индивидуально.

Редактирование: numeric лишний, зачеркнул.

 Профиль  
                  
 
 Re: Несобственные кратные интегралы в Maple
Сообщение12.04.2014, 17:20 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Так может, и считать его сразу по определению? и по обеим переменным выкалывать окрестность?
Кстати, Вы не ответили, что получается для функции
Otta в сообщении #848445 писал(а):
$\frac{1}{(x^4+y^4)^{1/3}}$
. Но это уже выяснили, а "по определению" что получается?

А, вот,
GAA в сообщении #848692 писал(а):
На всякий случай добавлю: вызов
int(sin(x*y+2)/sqrt(x^2+y^2),[x=-1..1,y=-1..1],numeric);
эквивалентен (по справке) вызову
int(int(sin(x*y+2)/sqrt(x^2+y^2),x=-1..1),y=-1..1);

я так и подозревала. :(

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group