integral definida 3d pelo método da quadratura e cubatura
[result,err]=int3d(X,Y,Z,f [,nf[,params]])
um array 4 por NUMTET
contendo as abscissas
dos vértices dos NUMTET
tetraedros.
um array 4 por NUMTET
contendo as ordenadas
dos vértices dos NUMTET
tetraedros.
um array 4 por NUMTET
contendo as terceiras
coordenadas dos vértices dos NUMTET
tetraedros.
função externa (function, string ou lista) definindo o
integrando f(xyz,nf)
, onde xyz
é o vetor das coordenadas de um ponto e nf os números das
funções
o número da função a ser integrada (o padrão é 1)
vetor de reais [minpts, maxpts, epsabs,
epsrel]
.O valor padrão é [0, 1000, 0.0,
1.d-5]
.
limite do erro absoluto desejado
limite do erro relativo desejado
número mínimo de avaliações da função
número máximo de avaliações da função. O número de avaliações da função sobre cada subregião é 43
o valor da integral, ou vetor de valores da integral.
estimativas do erro absoluto
A função calcula uma aproximação a um dado vetor de integrais definidas
I I I (F ,F ,...,F ) dx(3)dx(2)dx(1), 1 2 numfun
onde a região de integração são os NUMTET tetraedros e onde
F = F (X(1),X(2),X(3)), J = 1,2,...,NUMFUN. J J
uma estratégia globalmente adaptativa é aplicada para se computar
aproximações result(k)
esperando-se que satisfaça, para
cada componente de I, à seguinte precisão:
ABS(I(K)-RESULT(K))<=MAX(EPSABS,EPSREL*ABS(I(K)))
int3d
repetidamente subdivide os tetraedros com
maiores erros estimados e estima as integrais e os erros sobre os novos
tetraedros até que a exigência de erro seja encontrada ou
MAXPTS
avaliações da função tenham sido feitas.
Uma regra de 43 pontos de integração com todos os pontos de avaliação dentro dos tetraedros é aplicada. A regra tem grau polinomial 8.
Se os valores dos parâmetros de entrada EPSABS
ou
EPSREL
são suficientemente grandes, uma regra de
integração é aplicada sobre cada tetraedro e os valores são aproximados
para se fornecer as aproximações RESULT(K)
. Nenhuma
subdivisão posterior dos tetraedros será feita.
Quando int3d
computa estimativas a um vetor de
integrais, é dado tratamento igual a todos os componentes do vetor. Isto
é, I(Fj)
e I(Fk)
paraj
diferente de k
, são estimados com a mesma
subdivisão da região de integração. Para integrais suficientemente
semelhantes, podemos economizar tempo aplicando int3d
a
todos os integrando em uma chamada. Para integrais que variam
continuamente em função de um parâmetro, as estimativas produzidas por
int3d
também irão variar continuamente quando a
subdivisão é aplicada a todos os componentes. Este geralmente não será o
caso quando componentes diferentes são tratados separadamente.
Por outro lado, este recurso deve ser utilizado com cautela quando os componentes diferentes da integral requerem claramente subdivisões diferentes.
Rotina FORTRAN dcutet.f
X=[0;1;0;0]; Y=[0;0;1;0]; Z=[0;0;0;1]; [RESULT,ERROR]=int3d(X,Y,Z,'int3dex') // computa o integrando exp(x*x+y*y+z*z) sobre o //tetraedro (0.,0.,0.),(1.,0.,0.),(0.,1.,0.),(0.,0.,1.) //integração sobre um cubo -1<=x<=1;-1<=y<=1;-1<=z<=1 // fundo -topo- direita -esquerda- frente -traseira- X=[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; -1,-1, -1,-1, 1, 1, -1,-1, -1,-1, -1,-1; 1,-1, 1,-1, 1, 1, -1,-1, 1,-1, 1,-1; 1, 1, 1, 1, 1, 1, -1,-1, 1, 1, 1, 1]; Y=[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; -1,-1, -1,-1, -1, 1, -1, 1, -1,-1, 1, 1; -1, 1, -1, 1, 1, 1, 1, 1, -1,-1, 1, 1; 1, 1, 1, 1, -1,-1, -1,-1, -1,-1, 1, 1]; Z=[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; -1,-1, 1, 1, -1, 1, -1, 1, -1,-1, -1,-1; -1,-1, 1, 1, -1,-1, -1,-1, -1, 1, -1, 1; -1,-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; function v=f(xyz, numfun),v=exp(xyz'*xyz),endfunction [result,err]=int3d(X,Y,Z,f,1,[0,100000,1.d-5,1.d-7]) function v=f(xyz, numfun),v=1,endfunction [result,err]=int3d(X,Y,Z,f,1,[0,100000,1.d-5,1.d-7]) | ![]() | ![]() |