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
4548
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, Супермодераторы



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

Сейчас этот форум просматривают: Google [Bot]


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

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