如何对 p(x)*f(x) 进行积分,其中 p(x) 是多项式,f(x) 是函数? MATLAB

问题描述 投票:0回答:1

我想对 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 不是函数句柄。

感谢帮助!

function matlab numerical-integration polynomials
1个回答
0
投票

是的,

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
转换为小数或浮点数)。
© www.soinside.com 2019 - 2024. All rights reserved.