1

所以我正在尝试为三重积分编写一个函数,该函数最终取决于变量 q ,它是积分的最终限制,还有一个变量 b ,它有助于函数参数化。但是,此代码不起作用,我不完全确定该怎么做。我认为它可能涉及将 b 的值传递给嵌套函数,但我在 matlab 上很新,任何帮助表示赞赏。

function [r] = test1(q,u)
b = u;
r = quad(@(k)Inner(k),-0.5.*(1-b)-b-1,q);

function [w] = Inner(k)
w = zeros(1);
for i = 1 : length(k);
    w(i) = quad(@(n)InnerIntegral(n,b).*unifpdf(k(i)-n,-1,1),0,k(i)-1,k(i)+1);
end;



function [y] = InnerIntegral(n)
y = zeros(1);
for i = 1 : length(n);
    y(i) = quad(@(m)unifpdf(n(i)-m, -b, b).*unifpdf(m,-0.5.*b,0.5.*b), n(i)-b,n(i)+b);
end;
end
end
end
4

1 回答 1

1

查看编辑器右侧的橙色小刻度线。在我的副本中,将鼠标悬停在一个上面会说“外部循环索引 'i' 设置在子函数中。”

我不知道这个函数的输入或预期输出应该是什么,但你应该尽量避免混淆 MATLAB。它有奇怪的范围规则。在第二个嵌套函数中使用不同的变量,也许j代替i.

于 2012-04-24T01:58:44.737 回答