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?

 採用された回答

Torsten
Torsten 2022 年 12 月 28 日

0 投票

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 件のコメント

L'O.G.
L'O.G. 2022 年 12 月 29 日
arrayfun is slow, is there a faster option?
Torsten
Torsten 2022 年 12 月 29 日
編集済み: Torsten 2022 年 12 月 29 日
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 ExchangeProgramming についてさらに検索

製品

リリース

R2021b

質問済み:

2022 年 12 月 28 日

編集済み:

2022 年 12 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by