我很遗憾这个matlab代码。我将不胜感激任何帮助。
我需要在x
的支持下集成一个系列,它是变量x
的函数。
我运行以下内容:
m=10; % finite summation uptill m
%Step1: I create a series function: \sum_{1}_{m}(x^{n})
series=@(x,n)(sum(x.^(1:n)));
%Styep2: I call the function for m=10, however x is still undefined
ser=@(x)series(x,m);
% Step3: I integrate over x in a given space for x
h=integral(ser,1,2);
我明白了:
Error using .^
Matrix dimensions must agree.
Error in @(x,n)(sum(x.^(1:n)))
Error in @(x)series(x,m)
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 133)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 76)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 89)
Q = integralCalc(fun,a,b,opstruct);
Error in test (line 9)
h=integral(ser,1,2);
有什么建议吗?
答案 0 :(得分:1)
integral
要求集成函数以便能够处理向量参数,因此ser
必须能够评估ser([1 2 3])
。
要允许ser
处理向量输入,请使用arrayfun
分别将series
应用于输入x
的每个元素:
ser=@(x) arrayfun(@(z)series(z,m),x);