计算积分时“矩阵尺寸必须一致”错误

时间:2018-05-31 17:54:36

标签: matlab numerical-integration

我在MATLAB中找出以下等式中的错误时遇到了问题:

a=@(z,q)(z.^2 + q.^2);
a1=@(q) integral(@(z) a(z,q),1,10);

首先,我想在a中仅对z进行有限积分,在数字限制内,让我们说110,然后我想绘制{关于a1,{1}}。 当我使用以下命令执行上述操作时:

q

我收到以下错误:

plot(linspace(0,3e8), a1(linspace(0,3e8)))

Here is a screenshot

任何人都可以指出错误。 注意:我希望同时将Matrix dimensions must agree. Error in untitled>@(z,q)(z.^2+q.^2) Error in untitled>@(z)a(z,q) 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); Error in untitled>@(q)integral(@(z)a(z,q),1,10) z作为向量

1 个答案:

答案 0 :(得分:1)

MATLAB函数integral默认计算单个积分,而不是积分数组。 option 'ArrayValued'将允许您集成一个返回多个值的函数,例如a

a = @(z,q)(z.^2 + q.^2);
x = linspace(0,3e8);
y = integral(@(z)a(z,q),1,10,'ArrayValued',true);
plot(x,y)