Integration of norminv function

2 visualizaciones (últimos 30 días)
Mariia Vasileva el 25 de Abr. de 2017
Comentada: Mariia Vasileva el 28 de Abr. de 2017
Is there any way to integrate norminv function for big number of dimensions?
For example in case of 3-dimensional integration integration:
fun3=@(x,y,z) exp(-norminv(x,0,1)).*(abs(sin(norminv(y,0,1)))+abs(sin(norminv(z,0,1)))+abs(sin(norminv(x,0,1))));
q3 = integral3(fun3,0,1,0,1,0,1);
vpa(q3)
Matlab returns the following warnings:
Warning: Reached the maximum number of function evaluations (10000). The result passes the global error test.
> In integral2Calc>integral2t (line 136)
In integral2Calc (line 9)
In integral3/innerintegral (line 146)
In integralCalc/iterateScalarValued (line 314)
In integralCalc (line 75)
In integral3 (line 121)
In ICDFd (line 20)
0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Andrew Newell el 25 de Abr. de 2017
Editada: Andrew Newell el 25 de Abr. de 2017
The problem is that norminv(x,0,1) goes to -Inf as x goes to zero and Inf as x goes to 1 (and ditto for y and z), so it's hard to integrate accurately. If you can manage with a larger tolerance,
q3 = integral3(fun3,0,1,0,1,0,1,'AbsTol',1e-3);
does not return any warnings (the default tolerance is 1e-10). If you need higher precision, you'll just need to be patient, as the warnings are not fatal. However, I don't know if the precision is actually met under such circumstances.
3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Andrew Newell el 27 de Abr. de 2017
Editada: Andrew Newell el 27 de Abr. de 2017
The source of the error is your attempt to use norminv with symbolic variables. This gives the same errors:
syms a
norminv(a,0,1)
Trying to come up with your own substitute for integral3 is tricky, and probably not worth the effort as integral3 will almost certainly do a better job.
Mariia Vasileva el 28 de Abr. de 2017
Yes, but I have problems with multidimensional (greater than 3) integrals...

Iniciar sesión para comentar.

Categorías

Más información sobre Common Operations en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by