我有一个给定多项式的点。我想整合,最好使用一个定积分,但我相信使用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的新手,对不起,如果这是一个愚蠢的问题。
答案 0 :(得分:0)
polyint在这里不起作用,因为它期望一系列多项式系数,但是你提供的是一系列数字,这些数字是前一次计算的输出,并且与任何多项式系数无关。您得到的错误是因为pint
的形状错误。但即使它是对的,你也无法得到你想要的答案。
如果需要,您可以选择以数字方式整合pint
。如果您的点之间的步长足够小,那么在pint
值上使用simpson规则肯定可以让您得到正确的答案。或者,您可以返回执行符号多项式除法以获得绝对积分。我不确定你究竟是在追求什么,或者你的要求是什么。