Doing a nested numerical integral in Matlab

How do I do the following nested integral in Matlab? The goal is to evaluate the following:
where the function ϕ is defined as
where . The notation seems a bit weird to me since the argument of ϕ in the second equation is only part of the argument where it appears in the first equation. I imagine that just means μ is re-defined in terms of itself. Assuming that's correct, how do I do this nested integral?

 采纳的回答

mu = -20:0.01:20;
f = @(mu) integral2(@(u,sigma) sin(mu*sqrt(1-sigma.^2).*cos(pi/2*u)).*(sin(mu*sigma/2)).^2,0,1,0,1);
P = arrayfun(@(mu)f(mu),mu);
plot(mu,P)

2 个评论

arrayfun is slow, is there a faster option?
Yes, a for-loop over the elements of mu.
But I don't think that "arrayfun" is the time-consuming part - it's "integral2".

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by