Учитывая f (x) многочлен в формате DocPolynom, как найти f (x-1) как многочлен? (MatLab) - PullRequest
0 голосов
/ 30 марта 2012

В настоящее время я часто использую DocPolynom (смотрите здесь, если незнаком: http://www.mathworks.co.uk/help/techdoc/matlab_oop/f3-28024.html)

У меня есть многочлен f = DocPolynom(v), где v - вектор коэффициентов. Я действительно хотел быбыть в состоянии преобразовать f в полином, соответствующий f (xa), где a - предопределенная константа. Кто-нибудь знает, если / как я могу это сделать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Хотя это и не прямой ответ, поскольку вы знаете коэффициенты полинома, вы можете оценить полином по 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 - порядок вашего полинома.

0 голосов
/ 30 марта 2012

Я не уверен, что этот объект, который вы пишете, должен делать, но вы можете поиграть с моим набором инструментов 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...