Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can a transform a polynomial to another coordinate system?

Using assorted matrix math, I've solved a system of equations resulting in coefficients for a polynomial of degree 'n'

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

I then evaulate the polynomial over a given x range, essentially I'm rendering the polynomial curve. Now here's the catch. I've done this work in one coordinate system we'll call "data space". Now I need to present the same curve in another coordinate space. It is easy to transform input/output to and from the coordinate spaces, but the end user is only interested in the coefficients [A,B,....,Z] since they can reconstruct the polynomial on their own. How can I present a second set of coefficients [A',B',....,Z'] which represent the same shaped curve in a different coordinate system.

If it helps, I'm working in 2D space. Plain old x's and y's. I also feel like this may involve multiplying the coefficients by a transformation matrix? Would it some incorporate the scale/translation factor between the coordinate systems? Would it be the inverse of this matrix? I feel like I'm headed in the right direction...

Update: Coordinate systems are linearly related. Would have been useful info eh?

like image 513
basszero Avatar asked Sep 26 '08 19:09

basszero


People also ask

What is a transformation in the coordinate system?

A coordinate transformation is used to warp a source image to a transformed image to match a target brain (Figure 38.2). The regional nature of spatial normalization determines the complexity of the coordinate transformation.

Why do we transform polynomials?

This polynomial transformation is often used to reduce questions on algebraic numbers to questions on algebraic integers. , allows to reduce any question on the roots of a polynomial, such as root-finding, to a similar question on a simpler polynomial, which is monic and does not have a term of degree n − 1.


1 Answers

The problem statement is slightly unclear, so first I will clarify my own interpretation of it:

You have a polynomial function

f(x) = Cnxn + Cn-1xn-1 + ... + C0

[I changed A, B, ... Z into Cn, Cn-1, ..., C0 to more easily work with linear algebra below.]

Then you also have a transformation such as:   z = ax + b   that you want to use to find coefficients for the same polynomial, but in terms of z:

f(z) = Dnzn + Dn-1zn-1 + ... + D0

This can be done pretty easily with some linear algebra. In particular, you can define an (n+1)×(n+1) matrix T which allows us to do the matrix multiplication

  d = T * c ,

where d is a column vector with top entry D0, to last entry Dn, column vector c is similar for the Ci coefficients, and matrix T has (i,j)-th [ith row, jth column] entry tij given by

  tij = (j choose i) ai bj-i.

Where (j choose i) is the binomial coefficient, and = 0 when i > j. Also, unlike standard matrices, I'm thinking that i,j each range from 0 to n (usually you start at 1).

This is basically a nice way to write out the expansion and re-compression of the polynomial when you plug in z=ax+b by hand and use the binomial theorem.

like image 183
Tyler Avatar answered Oct 24 '22 03:10

Tyler