2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Численное интегрирование двойного интеграла, Maple 9.5
Сообщение26.11.2008, 19:32 


10/06/06
26
г. Красногорск Московская обл.
Пытаюсь решить уравнение
\[
\begin{array}{l}
 f(x) = \frac{1}{\pi }\frac{1}{{1 + x^2 }},\,f(y) = \frac{1}{\pi }\frac{1}{{1 + y^2 }} \\ 
 \int\limits_{ - \infty }^\infty  {f(x)\int\limits_{ - \infty }^{5.758770482+5.671281818*x} {f(y)dxdy} }  \\ 
 \end{array}
\]

в документации написано, что для численного интегрирования нужно использовать связку evalf(Int(....))
пишу

Код:
evalf( Int( f(x)*Int(f(y), y=-infinity...5.758770482+5.671281818*x, method=_d01amc) , x=-infinity...infinity, method=_d01amc));


решение maple не может найти
\[
\int\limits_{ - \infty }^\infty  {\frac{{{\rm{.3183098861}}}}{{{\rm{1 + x}}^{\rm{2}} }}} \int\limits_{ - \infty }^{5.758770482+5.671281818*x} {\frac{{{\rm{.3183098861}}}}{{{\rm{1 + y}}^{\rm{2}} }}} dydx
\]

но если заменить Intна int то maplе находит решение
.7266741715-.1e-11*I
Но оно не верно, т.к. решение должно быть действительным числом.
Не могу понять в чем дело. Может надо дополнительный пакет использовать?
Думаю все проблемы связаны с тем что интеграл от бесконечностей берется, но чтобы не было с этим проблем я использую метод _d01amc но он почему-то не помогает

 Профиль  
                  
 
 
Сообщение26.11.2008, 20:01 
Заслуженный участник
Аватара пользователя


03/03/06
648
.:Артём:.

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

Для вычисления двойных интегралов посмотрите пакет Student.

 Профиль  
                  
 
 
Сообщение26.11.2008, 20:21 


10/06/06
26
г. Красногорск Московская обл.
reader_st спасибо за быстрый ответ
Student тоже дает странный ответ
Код:
with (student):
Doubleint(f(x)*f(y),y=-infinity...5.758770482+5.671281818*x , x=-infinity...infinity);
value(%);
.7266741716-.2e-11*I


по поводу команды с большой буквы, в документации говорится что для численного интегрирования используйте
evalf(Int(f, x=a..b, ...)) evalf(Int(f, a..b, ...))
evalf(Int(f, list-of-equations, ...))
evalf(Int(f, list-of-ranges, ...))
evalf(int(f, x=a..b))

 Профиль  
                  
 
 
Сообщение27.11.2008, 13:24 
Заслуженный участник


12/07/07
4438
1. В общем случае. Если выполнить
evalf(Int(f(x), x= a..b)),
то будет выполнено численное интегрирование, а если набрать
evalf(int(f(x), x= a..b)),
то Maple будет пытаться выполнить интегрирование символьно, а затем преобразовать результат в представление с плавающей точкой.

Однако, в данном случае пределы с плавающей запятой, поэтому вызов evalf, если использовать int, избыточен (результат и так будет иметь вид выражения с плавающей запятой).

Добавлено спустя 3 минуты 34 секунды:

2. В Maple 10 двойной интеграл численно вычисляется, если требуется 8 и менее знаков.
Код:
> MyInt:= Int(1/Pi*1/(1+x^2)*Int(1/Pi*1/(1+y^2), y=-infinity...5.758770482+5.671281818*x), x=-infinity...infinity);
> evalf[8](MyInt);
                                  .72667417
[Вместо изменения глобальной переменной Digits используем вызов evalf с параметром, что равносильно.] С чем связана невозможность вычисления с большим числом знаков — я не знаю; самому интересно.

Добавлено спустя 10 минут 38 секунд:

3. Т.к. при вычислении часто используются методы ТФКП, то, как правило, ответ будет комплексным, быть может, с нулевой мнимой частью.
В данном случае имеем допустимую погрешность (по умолчанию Digits = 10). Для уменьшения погрешности достаточно увеличить число знаков в вычислении. Выполнив в Maple 10 Classic Worksheet следующий
Код:
> Digits:= 15;
> int(1/Pi*1/(1+x^2)*int(1/Pi*1/(1+y^2), y=-infinity...5.758770482+5.671281818*x), x=-infinity...infinity);
                             .726674171526481+0.*I


Добавлено спустя 10 минут 20 секунд:

4. Если выполнить (Maple 10 Classic Worksheet)
Код:
> evalf(Int(1/Pi*1/(1+x^2)*int(1/Pi*1/(1+y^2), y=-infinity...5.758770482+5.671281818*x) , x=-infinity...infinity));
(внутренний интеграл символьно, внешний — численно), то, при точности по умолчанию (Digits=10), получим .7266741715

Добавлено спустя 5 минут 10 секунд:

5. Седьмая версия вычисляет интеграл неправильно. Выполнив
Код:
> int(1/Pi*1/(1+x^2)*int(1/Pi*1/(1+y^2), y=-infinity...5.758770482+5.671281818*x) , x=-infinity...infinity);
получим 0.
Версией 9.5 никогда не пользовался.

.:Артём:., oчень нехорошо одновременно задавать один и тот же вопрос на нескольких форумах [особенно без указания этого!].
Пункт 2 изменен утром следующего деня

 Профиль  
                  
 
 
Сообщение28.11.2008, 14:34 


10/06/06
26
г. Красногорск Московская обл.
GAA спасибо за ответ, очень помогли! Извиняюсь за дублирования сообщений без указания этого.

 Профиль  
                  
 
 Re: Численное интегрирование двойного интеграла, Maple 9.5
Сообщение03.01.2012, 21:18 


04/02/11
113
Мурманск, Дмитров
Ищу площадь тела пересечения эллипсоида и сферы.
Maple висит на int и не считает Int
restart;a:=2;b:=3;c:=4;
> x0:=1;y0:=2;z0:=3;r:=5;
> # the surface of the sphere crossed ellipsoid;
> x:=x0+r*cos(u)*cos(v);
> y:=y0+r*cos(u)*sin(v);
> z:=z0+r*sin(u);
> f:=x^2/a^2+y^2/b^2+z^2/c^2-1;
> sv:=evalf(Int((1-signum(f))/2, [v=0..2*Pi] ));
> s:=int(cos(u)*sv, [u=-Pi/2..Pi/2] )/4/Pi;evalf(%);

Error, (in assuming) when calling 'simplify/trig'.
Received: 'ambiguous multiple assignment'

s:=MultiInt(cos(u)*(1-signum(f))/2,u=-Pi/2..Pi/2,v=0..2*Pi);
висим

-- Вт янв 03, 2012 22:17:44 --

fn:=(u,v)->`if`((x0+r*cos(u)*cos(v))^2/a^2+(y0+r*cos(u)*sin(v))^2/b^2+(z0+r*sin(u))^2/c^2<1,cos(u),0);

s:=int(int(f(u,v),u=-Pi/2..Pi/2),v=0..2*Pi); evalf(s/4/Pi);
теперь полная чушь. Ответ не изменяется при изменении выражения в условии или при изменении знака условия

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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



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

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


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

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