2008-09-26 11 views
6

Usando matemáticas matriz surtido, he resuelto un sistema de ecuaciones resultantes en los coeficientes de un polinomio de grado 'n'¿Cómo se puede transformar un polinomio a otro sistema de coordenadas?

Ax^(n-1) + Bx^(n-2) + ... + Z 

entonces evaulate el polinomio en un intervalo de x dada, esencialmente estoy haciendo que el curva polinómica Ahora aquí está el truco. He hecho este trabajo en un sistema de coordenadas que llamaremos "espacio de datos". Ahora necesito presentar la misma curva en otro espacio de coordenadas. Es fácil transformar la entrada/salida hacia y desde los espacios de coordenadas, pero al usuario final solo le interesan los coeficientes [A, B, ...., Z] ya que pueden reconstruir el polinomio por sí mismos. ¿Cómo puedo presentar un segundo conjunto de coeficientes [A ', B', ...., Z '] que representan la misma curva en un sistema de coordenadas diferente?

Si ayuda, estoy trabajando en espacio 2D. Llanamente viejas x e y. También siento que esto puede implicar multiplicar los coeficientes por una matriz de transformación. ¿Algunos incorporarían el factor escala/traducción entre los sistemas de coordenadas? ¿Sería el inverso de esta matriz? Siento que voy en la dirección correcta ...

Actualización: los sistemas de coordenadas están relacionados linealmente. Hubiera sido información útil eh?

+0

¿Están sus espacios de coordenadas de entrada linealmente relacionados? – Jamie

+0

Los sistemas de coordenadas están linealmente relacionados – basszero

Respuesta

4

El planteamiento del problema es poco claro, por lo que primero voy a aclarar mi propia interpretación de la misma:

Usted tiene una función polinómica

f (x) = C n x n + C n-1 x n-1 + ... + C

[I cambió A, B, C ... Z en n, C n-1, ..., C para trabajar más fácilmente con el álgebra lineal a continuación.]

A continuación, también tener una transformación, tales como:   z = ax + b   que desea utilizar para encontrar coeficientes para el misma polinomio, pero en términos de z:

f (z) = D n z n + D n-1z n-1 + ... + D

Esto se puede hacer muy fácilmente con un poco de álgebra lineal.En particular, se puede definir una matriz de (n + 1) × (n + 1) T que nos permite hacer la multiplicación de matrices

  d = T * c,

donde d es un vector columna con entrada superior D, a la última entrada D n, vector columna c es similar para la C i coeficientes, y la matriz T tiene (i, j) -ésimo [i º fila, j º columna] entrada t ij dada por

  t ij = (j elegir i) un ib j-i.

Donde (j elegir i) es el coeficiente binomial, y = 0 cuando i>j. Además, a diferencia de las matrices estándar, estoy pensando que, j cada rango de 0 a n (por lo general, empiezas en 1).

Esta es básicamente una buena forma de escribir la expansión y la compresión del polinomio cuando conecta a mano z = ax + b y usa binomial theorem.

+1

Vea mi respuesta para una manera rápida de calcular esta matriz T. – Camille

+0

Hola Tyler. No conseguí que tu fórmula funcionara, así que la volví a extraer de cero. Obtengo ** _ t ij = (j elijo i) a^(- j) * (-b)^(j-i) _ **. He probado tanto el tuyo como el mío con una ecuación lineal simple. Tal vez podría actualizar su respuesta para el beneficio de los demás? ¿O quizás me haya perdido algo? ... Lo siento, el mini-Markdown es un poco feo. – Floris

+0

Hola Tyler. Recién probado con polinomio cuadrático. La misma historia – Floris

0

Usted tiene la ecuación:

y = Ax^(n-1) + Bx^(n-2) + ... + Z 

En el espacio xy, y desea que en algún espacio x'y'. Lo que necesita son funciones de transformación f (x) = x 'yg (y) = y' (o h (x ') = x y j (y') = y). En el primer caso, necesitas resolver x y resolver y. Una vez que tenga x e y, puede sustituir esos resultados en su ecuación original y resolver para y '.

Si esto es trivial o no depende de la complejidad de las funciones utilizadas para transformar de un espacio a otro. Por ejemplo, las ecuaciones como:

5x = x' and 10y = y' 

son extremadamente fáciles de resolver para el resultado

y' = 2Ax'^(n-1) + 2Bx'^(n-2) + ... + 10Z 
-1

Si los espacios de entrada están relacionadas linealmente, entonces sí, una matriz debe ser capaz de transformar un conjunto de coeficientes a otro.Por ejemplo, si usted tenía su polinomio en su "original" espacio x:

ax^3 + bx^2 + cx + d

y que quería transformarse en un espacio w diferente donde w = px + q

entonces usted quiere encontrar a 'b', c 'y d' tal que

ax^3 + bx^2 + cx + d = a'w^3 + b' w^2 + c'w + d'

y con algo de álgebra,

a'w^3 + b'w^2 + c'w + d '= a'p^3x^3 + 3a'p^2qx^2 + 3a'pq^2x + a'q^3 + b' p^2x^2 + 2b'pqx + b'q^2 + c'px + c'q + d '

por lo tanto

a = A'p^3

b = 3a' p^2q + b'p^2

c = 3a'pq^2 + 2b'pq + C'P

d = a'q^3 + b'q^2 + c'q + d '

que se puede volver a escribir como un problema de matriz y olved

+0

¿No hay comentarios? ¿Esto no es correcto? – Jamie

2

Si entiendo su pregunta correctamente, no hay garantía de que la función seguirá siendo polinomial después de cambiar las coordenadas. Por ejemplo, supongamos que y = x^2 y el nuevo sistema de coordenadas x '= y, y' = x. Ahora la ecuación se convierte en y '= sqrt (x'), que no es polinomial.

3

La respuesta de Tyler es la respuesta correcta si tiene que calcular este cambio de variable z = ax + b muchas veces (me refiero a muchos polinomios diferentes). Por otro lado, si tiene que hacerlo solo una vez, es mucho más rápido combinar el cálculo de los coeficientes de la matriz con la evaluación final. La mejor manera de hacerlo es evaluar simbólicamente el polinomio en el punto (ax + b) por el método de Horner:

  • se almacenan los coeficientes del polinomio en un vector V (al principio, todos los coeficientes son cero), y para i = n a 0, multiplíquelo por (ax + b) y agregue C i.
  • la adición de C i medio de añadir a la término constante
  • multiplicando por (ax + b) medios multiplicando todos los coeficientes por b en un vector K , multiplicando todos los coeficientes por A y desplazamiento lejos de la término constante en un vector K , y poner K + K de nuevo en V.

Esto será más fácil de programar y más rápido de calcular.

Tenga en cuenta que cambiar y en w = cy + d es realmente fácil. Finalmente, como señala Mattiast, un cambio general de coordenadas no le dará un polinomio.

Nota técnica: si todavía desea calcular la matriz T (como se define por Tyler), se debe calcular mediante el uso de una versión ponderada de la regla de Pascal (esto es lo que hace el cálculo Hörner implícitamente):

t i, j = bt i, j-1 + en i-1, j-1

de esta forma, calcular de manera simple, columna tras columna, de izquierda a derecha.

Cuestiones relacionadas