2012-03-29 13 views
0

Ich bin mit viel im Moment DocPolynom (siehe hier, wenn nicht vertraut: http://www.mathworks.co.uk/help/techdoc/matlab_oop/f3-28024.html)Gegeben f (x) ein Polynom im DocPolynom-Format, wie findet man f (x-1) als Polynom? (Matlab)

Ich habe ein Polynom f = DocPolynom(v) wo v ein Vektor von Koeffizienten ist. Ich möchte wirklich in der Lage sein, f in das Polynom zu konvertieren, das f (x-a) entspricht, wobei a eine vorbestimmte Konstante ist. Weiß jemand ob/wie ich das machen kann?

Danke!

Antwort

0

Ich bin nicht sicher, was dieses Objekt, das Sie schreiben, tun soll, aber Sie könnten mit meiner sympoly Toolbox spielen, die symbolische Berechnung auf Polynomen erlaubt. Es ist auf dem Dateiaustausch.

Wenn alles, was Sie haben, einfache Polynome sind, können Sie Conv immer verwenden, um Potenzen von (x - a) zu berechnen, indem Sie sie addieren. Wenn also haben wir das Polynom

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

und wir wollen das Polynom Q bilden (x) = P (x-3), ist es nur ein paar Operationen nimmt.

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

Obwohl keine direkte Antwort, da Sie die Koeffizienten des Polynoms kennen, können Sie das Polynom durch polyval an den Eingängen x-a und Verwendung des resultierenden Ausgangs bewerten Sie polyfit verwenden können, um die Koeffizienten des Polynoms zu erhalten, die durch Ihre gibt Daten.

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 

Um dies zu tun, müssen Sie mindestens N + 1 Datenpunkte, wobei N die Reihenfolge des Polynoms ist.

Verwandte Themen