int3d
integral definida 3d pelo método da quadratura e cubatura
Seqüência de Chamamento
[result, err] = int3d(X, Y, Z, f) [result, err] = int3d(X, Y, Z, f, nf) [result, err] = int3d(X, Y, Z, f, nf, params)
Parâmetros
- X
um array 4 por
NUMTET
contendo as abscissas dos vértices dosNUMTET
tetraedros.- Y
um array 4 por
NUMTET
contendo as ordenadas dos vértices dosNUMTET
tetraedros.- Z
um array 4 por
NUMTET
contendo as terceiras coordenadas dos vértices dosNUMTET
tetraedros.- f
função externa (function, string ou lista) definindo o integrando
f(xyz,nf)
, ondexyz
é o vetor das coordenadas de um ponto e nf os números das funções- nf
o número da função a ser integrada (o padrão é 1)
- params
vetor de reais
[minpts, maxpts, epsabs, epsrel]
. O valor padrão é[0, 1000, 0.0, 1.d-5]
.- epsabs
limite do erro absoluto desejado
- epsrel
limite do erro relativo desejado
- minpts
número mínimo de avaliações da função
- maxpts
número máximo de avaliações da função. O número de avaliações da função sobre cada subregião é 43
- result
o valor da integral, ou vetor de valores da integral.
- err
estimativas do erro absoluto
Descrição
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.
Referências
Rotina FORTRAN dcutet.f
Exemplos
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])
Ver Também
Report an issue | ||
<< int2d | Equações Diferenciais | intc >> |