在MATLAB中集成和绘制多项式

时间:2014-04-15 16:00:19

标签: matlab polynomial-math

我有一个给定多项式的点。我想整合,最好使用一个定积分,但我相信使用polyint的语法,这是不可能的,没有一些操作。无论如何,如果我能够将其整合,我将能够从那里获取它。

 dpt=coeffvalues(fitresult{4});
 ppval=polyval(dpt,xx)

 cpdt=coeffvalues(fitresult{2});
 cpval=polyval(cpdt,xx)

 pint=(ppval./cpval);
 intp=polyint(pint);

我尝试过两种方式......一种是拟合品脱曲线的结果,找到系数然后使用polyint函数。但无论我采用哪种方式,我总会得到同样的三个错误:

 Error using  ./ 
 Matrix dimensions must agree.

 Error in polyint (line 16) 
 pi = [p./(length(p):-1:1) k];

 Error in ptintegrate97 (line 61)
 intp=polyint(ptint);

通常是导致问题的第一个错误,但是当我执行大小(ppval)和大小(cpval)时,它们都是837x1。所以我有点失落。我是MATLAB的新手,对不起,如果这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

polyint在这里不起作用,因为它期望一系列多项式系数,但是你提供的是一系列数字,这些数字是前一次计算的输出,并且与任何多项式系数无关。您得到的错误是因为pint的形状错误。但即使它是对的,你也无法得到你想要的答案。

如果需要,您可以选择以数字方式整合pint。如果您的点之间的步长足够小,那么在pint值上使用simpson规则肯定可以让您得到正确的答案。或者,您可以返回执行符号多项式除法以获得绝对积分。我不确定你究竟是在追求什么,或者你的要求是什么。