我想整合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不是函数句柄。
非常感谢帮助!
答案 0 :(得分: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)