MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Quadratic form: symbolic transformation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg76808] Re: [mg76801] Quadratic form: symbolic transformation
  • From: Carl Woll <carlw at wolfram.com>
  • Date: Mon, 28 May 2007 00:49:11 -0400 (EDT)
  • References: <200705270907.FAA03614@smc.vnet.net>

Dr. Wolfgang Hintze wrote:

>Hello,
>
>this is a simple question but perhaps I can get here some information
>towards a more apropriate way of using Mathematica.
>
>I take a very simple example: I would like to write the quadratic form
>
>q1 = R*x^2 + R*x + T
>
>in the form
>
>q2 = u*(x+v)^2 + w
>
>How can I find u, v, and w from R, S, and T?
>
>I'm sure there must be some symbolic way (using a sufficient amount of 
>_'s) to answer this question.
>
>My (cumbersome) procedure compares coefficients and looks like this
>
>(* writing down lhs == rhs)
>In[112]:=
>q = R*x^2 + S*x + T == u*(x + v)^2 + w
>Out[112]=
>T + S*x + R*x^2 == w + u*(v + x)^2
>
>(* as q must be an identiy in x, i.e. must hold for all x, I compare 
>coefficients at x=0 *)
>In[113]:=
>eq1 = q /. {x -> 0}
>Out[113]=
>T == u*v^2 + w
>In[114]:=
>eq2 = D[q, x] /. {x -> 0}
>Out[114]=
>S == 2*u*v
>In[115]:=
>eq3 = D[q, {x, 2}] /. {x -> 0}
>Out[115]=
>2*R == 2*u
>In[119]:=
>t = First[Solve[{eq1, eq2, eq3}, {u, v, w}]]
>Out[119]=
>{w -> (-S^2 + 4*R*T)/(4*R), u -> R, v -> S/(2*R)}
>
>(* writing down the result explicitly *)
>In[120]:=
>q /. t
>Out[120]=
>T + S*x + R*x^2 == (-S^2 + 4*R*T)/(4*R) + R*(S/(2*R) + x)^2
>In[122]:=
>Simplify[q /. t]
>Out[122]=
>True
>
>Thanks in advance for any hints.
>Regards,
>Wolfgang 
>
>  
>
SolveAlways seems like it should do the trick, but I don't know how to 
control which variables are solved for. Looking at the version 6 help 
for this function, we discover the following possibilities to accomplish 
what you want:

eqn = R x^2 + S x + T == u (x + v)^2 + w;

In[18]:= Solve[! Eliminate[! eqn, x], {u, v, w}]
Out[18]= {{w->(4 R T-S^2)/(4 R),u->R,v->S/(2 R)}}

In[19]:= Solve[Resolve[ForAll[{x}, eqn]], {u, v, w}]
Out[19]= {{w->(4 R T-S^2)/(4 R),u->R,v->S/(2 R)}}

In[20]:= Reduce[ForAll[{x}, eqn], {u, v, w},  Backsubstitution -> True]
Out[20]= (S == 0 && R == 0 && u == 0 && w == T) || (u == R && R != 0 &&
    v == S/(2 R) && w == (4 R T - S^2)/(4 R))

Carl Woll
Wolfram Research


  • Prev by Date: Re: Ellipse equation simplification on Mathematica:
  • Next by Date: Re: Integrate bug
  • Previous by thread: Re: Quadratic form: symbolic transformation
  • Next by thread: Re: Quadratic form: symbolic transformation