给定f(x)DocPolynom格式的多项式,如何找到f(x-1)作为多项式? (MatLab的)

时间:2012-03-29 21:28:53

标签: matlab

我现在正在使用DocPolynom(如果不熟悉,请参阅此处:http://www.mathworks.co.uk/help/techdoc/matlab_oop/f3-28024.html

我有一个多项式f = DocPolynom(v),其中v是系数的向量。我真的希望能够将f转换为对应于f(x-a)的多项式,其中a是预定常量。有谁知道我是否可以这样做?

谢谢!

2 个答案:

答案 0 :(得分:1)

虽然不是直接答案,但由于您知道多项式的系数,因此您可以在输入polyval处按x-a评估多项式,并使用结果输出您可以使用polyfit获取通过数据的多项式的系数。

v=[1 2 3];
x=1:3;
a=2;
y=polyval(v,x-a);
polyfit(x,y,2) % 2 here is the order of your polynomial (i.e. length(v)-1)
ans =

    1.0000   -2.0000    3.0000 

为此,您需要至少N + 1个数据点,其中N是多项式的阶数。

答案 1 :(得分:0)

我不确定你写的这个对象应该做什么,但你可以使用我的sympoly工具箱,它允许对多项式进行符号计算。它在文件交换中。

如果你只有简单的多项式,你总是可以使用conv来计算(x - a)的幂,将它们加在一起。因此,如果我们有多项式

P(x) = 3*x^2 + 2*x + 1

我们希望形成多项式Q(x)= P(x-3),它​​只需要几个操作。

Q = 3*conv([1 -3],[1 -3]) + 2*conv([0 1],[1 -3]) + 1*conv([0 1],[0 1])
Q =
     3   -16    22