Pregunta

Usando una matriz matricial surtida, he resuelto un sistema de ecuaciones que resultan en coeficientes para un polinomio de grado 'n'

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

Luego, evalúo el polinomio en un rango x dado, esencialmente estoy representando la curva polinomial. Ahora aquí está la trampa. He hecho este trabajo en un sistema de coordenadas al 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 el usuario final solo está interesado en 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 con forma en un sistema de coordenadas diferente?

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

Actualización: los sistemas de coordenadas están relacionados linealmente. Habría sido útil la información eh?

¿Fue útil?

Solución

La declaración del problema no está muy clara, por lo que primero aclararé mi propia interpretación:

Tienes una función polinomial

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

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

Entonces también tienes una transformación como: & nbsp; z = ax + b & nbsp; que desea utilizar para encontrar coeficientes para el polinomio mismo , pero en términos de z :

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

Esto se puede hacer con bastante facilidad con un poco de álgebra lineal. En particular, puede definir una matriz T (n + 1) & # 215; (n + 1) que nos permite realizar la multiplicación de matrices

& nbsp; d = T * c ,

donde d es un vector de columna con la entrada superior D0 , a la última entrada D n , el vector de columna c es similar para los coeficientes Ci , y la matriz T tiene ( i, j) -th [i th row, j th column] entrada tij dada por

& nbsp; tij = ( j elija i ) a i bji .

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

Esta es básicamente una buena forma de escribir la expansión y la compresión del polinomio cuando conectas z = ax + b con la mano y usas teorema del binomio .

Otros consejos

La respuesta de Tyler es la correcta si tienes que calcular este cambio de la 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 su polinomio en el punto (ax + b) por el método de H & # 246; rner:

  • almacena los coeficientes polinomiales en un vector V (al principio, todos los coeficientes son cero), y para i = n a 0, lo multiplica por (ax + b) y agrega C i .
  • agregar C i significa agregarlo al término constante
  • multiplicar por (ax + b) significa multiplicar todos los coeficientes por b en un vector K 1 , multiplicando todos los coeficientes por a y alejándolos del término constante en un vector K 2 , y poner K 1 + K 2 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 aún desea calcular la matriz T (como lo define Tyler), debe calcularla utilizando una versión ponderada de la regla de Pascal (esto es lo que el H & # 246; rner el cálculo lo hace implícitamente):

t i, j = b i, j-1 + a t i-1, j-1

De esta manera, lo computas simplemente, columna tras columna, de izquierda a derecha.

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, sea 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.

Tienes la ecuación:

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

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

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

5x = x' and 10y = y'

son extremadamente fáciles de resolver para el resultado

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

Si los espacios de entrada están relacionados linealmente, entonces sí, una matriz debería poder transformar un conjunto de coeficientes en otro. Por ejemplo, si tuvo su polinomio en su " original " espacio x:

ax ^ 3 + bx ^ 2 + cx + d

y querías transformarte en un espacio w diferente donde w = px + q

entonces quieres encontrar un ', b', c 'y d' tal que

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

y con un poco 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 reescribir como un problema de matriz y resolver.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top