我想对 p(x)*f(x) 进行积分,其中 p(x) 是多项式,f(x) 是函数。我在 MATLAB 工作。 我有向量中多项式的系数。
p=[2,3,4,5];
funct=@(x) xˆ2;
我知道如何对函数进行自积分,以及如何对多项式进行自积分。但是,我只是找不到任何有关如何获取产品积分的信息。
这是我尝试过的:
p2=poly2sym(p)
integral(funct*p2,-1,1)
但是 p2 不是函数句柄。
感谢帮助!
是的,
p2
不是函数句柄——它是一个符号表达式,但integral
执行数字积分,并且需要一个返回浮点值的函数句柄。即使 p2
是函数句柄,乘法函数句柄(例如,funct*p2
)也是无效的。此外,funct
需要矢量化。
poly2sym
来计算积分,如下所示:
polyval
返回p = [2,3,4,5];
funct = @(x)x.^2; % use element-wise power to vectorize
p2 = @(x)polyval(p,x);
integral(@(x)funct(x).*p2(x),-1,1) % evaluate two handles into one
。或者您可以使用
4.533333333333333
int
返回 p = [2,3,4,5];
syms x;
funct = x^2;
p2 = poly2sym(p,x);
int(funct*p2,x,-1,1)
的精确有理值(分别使用
68/15
vpa
转换为小数或浮点数)。