如何积分 p(x)*f(x) 其中 p(x) 是多项式而 f(x) 是函数?软件
How to integrate p(x)*f(x) where p(x) is a polynomial and f(x) is a function? MATLAB
我想对 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
执行 数值 积分并且需要一个函数句柄 returns 浮点值。即使 p2
是一个函数句柄,乘法函数句柄(例如 funct*p2
)也是无效的。此外,funct
需要矢量化。
而不是像这样 poly2sym
, you can evaluate your integral numerically with 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
其中 returns 4.533333333333333
。或者您可以使用 int
:
象征性地计算这个特定的积分
p = [2,3,4,5];
syms x;
funct = x^2;
p2 = poly2sym(p,x);
int(funct*p2,x,-1,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 不是函数句柄。
感谢帮助!
是的,p2
不是一个函数句柄——它是一个符号表达式,但是 integral
执行 数值 积分并且需要一个函数句柄 returns 浮点值。即使 p2
是一个函数句柄,乘法函数句柄(例如 funct*p2
)也是无效的。此外,funct
需要矢量化。
而不是像这样 poly2sym
, you can evaluate your integral numerically with 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
其中 returns 4.533333333333333
。或者您可以使用 int
:
p = [2,3,4,5];
syms x;
funct = x^2;
p2 = poly2sym(p,x);
int(funct*p2,x,-1,1)