The problem statement is slightly unclear, so first I will clarify my own interpretation of it: You have a polynomial function f(x) = C n x n C n-1 x n-1 C 0 I changed A, B, ... Z into C n C n-1 C 0 to more easily work with linear algebra below. Then you also have a transformation such as: z = ax + be that you want to use to find coefficients for the same polynomial, but in terms of z : f(z) = D n z n D n-1 z n-1 D 0 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 D 0 to last entry D n column vector c is similar for the C I coefficients, and matrix T has (i,j)-th I th row, j th column entry t ij given by t ij ( j choose I ) a I be j-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.
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 + be 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.
See my answer for a fast way of computing this matrix T. – Camille Oct 2 '08 at 15:31.
If I understand your question correctly, there is no guarantee that the function will remain polynomial after you change coordinates. For example, let y=x^2, and the new coordinate system x'=y, y'=x. Now the equation becomes y' = sqrt(x'), which isn't polynomial.
Tyler's answer is the right answer if you have to compute this change of variable z = ax+b many times (I mean for many different polynomials). On the other hand, if you have to do it just once, it is much faster to combine the computation of the coefficients of the matrix with the final evaluation. The best way to do it is to symbolically evaluate your polynomial at point (ax+b) by Hörner's method: you store the polynomial coefficients in a vector V (at the beginning, all coefficients are zero), and for I = n to 0, you multiply it by (ax+b) and add Ci.
Adding Ci means adding it to the constant term multiplying by (ax+b) means multiplying all coefficients by be into a vector K1, multiplying all coefficients by a and shifting them away from the constant term into a vector K2, and putting K1+K2 back into V. This will be easier to program, and faster to compute. Note that changing y into w = cy+d is really easy.
Finally, as mattiast points out, a general change of coordinates will not give you a polynomial. Technical note: if you still want to compute matrix T (as defined by Tyler), you should compute it by using a weighted version of Pascal's rule (this is what the Hörner computation does implicitely): ti,j = be ti,j-1 + a ti-1,j-1 This way, you compute it simply, column after column, from left to right.
You have the equation: y = Ax^(n-1) + Bx^(n-2) + ... + Z In xy space, and you want it in some x'y' space. What you need is transformation functions f(x) = x' and g(y) = y' (or h(x') = x and j(y') = y). In the first case you need to solve for x and solve for y.
Once you have x and y, you can substituted those results into your original equation and solve for y'. Whether or not this is trivial depends on the complexity of the functions used to transform from one space to another. For example, equations such as: 5x = x' and 10y = y' are extremely easy to solve for the result y' = 2Ax'^(n-1) + 2Bx'^(n-2) + ... + 10Z.
If the input spaces are linearly related, then yes, a matrix should be able to transform one set of coefficients to another. For example, if you had your polynomial in your "original" x-space: ax^3 + bx^2 + cx + d and you wanted to transform into a different w-space where w = px+q then you want to find a', b', c', and d' such that ax^3 + bx^2 + cx + d = a'w^3 + b'w^2 + c'w + d' and with some algebra, 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' therefore a = a'p^3 be = 3a'p^2q + b'p^2 c = 3a'pq^2 + 2b'pq + c'p d = a'q^3 + b'q^2 + c'q + d' which can be rewritten as a matrix problem and solved.
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? Update: Coordinate systems are linearly related.
Would have been useful info eh?
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.