Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I have this expression

-0.433284-0.758719 x+0.00289158 x^2-0.443672 y+0.00149027 y^2

I want to express it in terms of $$\frac{(x-h)^2}{b^2}+\frac{(y-k)^2}{a^2}$$. Using Solve gave me a big mess:

Solve[-0.433284-0.758719 xP+0.00289158 xP^2-0.443672 yP+0.00149027 yP^2==(xP-h)^2/b^2+(yP-k)^2/a^2,{a,b,h,k}]

Solve

What can I do to get it in the form I wanted?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

There are two problems. One is that you want SolveAlways to find values for the parameters for which the expressions are equivalent. The second is that, as stated, it's not possible because the system is overdetermined. You'll want to allow for a constant term in your second expression.

expr1 = -0.433284 - 0.758719 x + 0.00289158 x^2 - 0.443672 y + 
   0.00149027 y^2;
expr2 = (x - h)^2/b^2 + (y - k)^2/a^2 - c;

Now we find the parameter sets that work.

solns = SolveAlways[expr1 == expr2, {x, y}];
viable = Select[solns, 
   FreeQ[{a, b, c, h, k} /. #, a | b | c | h | k] &];

(* Out[337]= {-83.2248525772 + 0.00289158 (-131.194537243 + x)^2 + 
  0.00149027 (-148.856247526 + y)^2, -83.2248525772 + 
  0.00289158 (-131.194537243 + x)^2 + 
  0.00149027 (-148.856247526 + y)^2, -83.2248525772 + 
  0.00289158 (-131.194537243 + x)^2 + 
  0.00149027 (-148.856247526 + y)^2, -83.2248525772 + 
  0.00289158 (-131.194537243 + x)^2 + 
  0.00149027 (-148.856247526 + y)^2} *)
share|improve this answer

This particular problem can dealt with algebraically by completing squares, equating coefficients and subtracting constants. (I am making the assumptions this is a left hand side whose right hand side is 0).

pol = -0.433284 - 0.758719 x + 0.00289158 x^2 - 0.443672 y + 
   0.00149027 y^2;
cr = CoefficientRules[pol, {x, y}]
{p, q, r, s, t} = cr[[All, 2]];
{h, k} = 0.5 {-q/p, -s/r}
cons = p h^2 + r k^2

This yields for {h,k}:=

{131.195, 148.856}

The rearranged polynomial:

trp[x_, y_] := p (x - h)^2 + r (y - k)^2 - cons + t

enter image description here

and note:

Expand[trp[x, y]] == pol

yields True.

If the aim is to get to $\frac{(x-h)^2}{a^2}+\frac{(y-k)^2}{b^2}=1$

{a, b} = Sqrt[
  1/Coefficient[(trp[x + h, y + k] + cons - t)/(cons - t), {x^2, 
     y^2}]]

This yields:

{169.652, 236.316}

The boolean is hampered by numericals but to show the rearrangement is equivalent:

stf[x_, y_] := (x - h)^2/a^2 + (y - k)^2/b^2 - 1

Column[{TraditionalForm[pol], 
  TraditionalForm[Expand[(cons - t) stf[x, y]]]}]

enter image description here

Putting it all together:

TraditionalForm[
 StringForm[
  "\!\(\*FractionBox[SuperscriptBox[\((x - `1`)\), \(2\)], \
SuperscriptBox[\(`2`\), \
\(2\)]]\)+\!\(\*FractionBox[SuperscriptBox[\((y - `3`)\), \(2\)], \
SuperscriptBox[\(`4`\), \(2\)]]\)=1", h, a, k, b]]

enter image description here

Visualizing:

Grid[{{TraditionalForm[pol == 0], 
   TraditionalForm[stf[x, y] == 0]}, {ContourPlot[
    pol == 0, {x, -500, 500}, {y, -500, 500}, ImageSize -> 300],
   ContourPlot[stf[x, y] == 0, {x, -500, 500}, {y, -500, 500}, 
    ImageSize -> 300]}}, Frame -> All]

enter image description here

share|improve this answer
    
Thank you for this. I will look into your answer in more detail tomorrow since I'm studying for a test but it seems a very intuitive way to solve this problem at first glance. Also thank you for using CoefficientRules since I've been using very clunky ways to separate coefficients as seen in this Q&A (mathematica.stackexchange.com/questions/51654/…). I hope you could help me over there as well as it seems like an extension of this question. –  seismatica Jun 27 at 3:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.