【发布时间】:2017-07-21 01:10:05
【问题描述】:
我正在尝试使用以下算法执行多维积分:
y= @(a,b,c) a+b+c; %function - 3 dim
y1=@(a,b) integral(@(c) y(a,b,c),-20,20); % L,H - limits for c`
y2=@(a) integral(@(b) y1(a,b),-20,20); % L,H - limits for b
y3=integral(@(a) y2(a),-20,20); % L,H - limits for a
但这会产生以下错误:
Error using integralCalc/finalInputChecks (line 515)
Output of the function must be the same size as the input.
If FUN is an array-valued integrand, set the 'ArrayValued' option to true.
Error in integralCalc/iterateScalarValued (line 315)
finalInputChecks(x,fx);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
Error in @(a)integral(@(b)y1(a,b),-20,20)
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
有人可以帮助我理解和纠正我的错误,或者提出更好的方法吗?
附注 integral3函数我知道,但是我需要这个方法,因为我以后要尝试4,5,6....维度。
【问题讨论】:
-
供将来参考:如果您需要调试帮助,请在问题中添加比“它不起作用”更多的信息。添加所需的行为或错误;)
标签: matlab integration anonymous-function