0
$\begingroup$

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?

$\endgroup$
3
$\begingroup$

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} *)
$\endgroup$
1
$\begingroup$

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

$\endgroup$
  • $\begingroup$ 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. $\endgroup$ – seismatica Jun 27 '14 at 3:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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