我现在正在使用DocPolynom(如果不熟悉,请参阅此处:http://www.mathworks.co.uk/help/techdoc/matlab_oop/f3-28024.html)
我有一个多项式f = DocPolynom(v)
,其中v
是系数的向量。我真的希望能够将f
转换为对应于f(x-a)的多项式,其中a
是预定常量。有谁知道我是否可以这样做?
谢谢!
答案 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