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
- References:
- Quadratic form: symbolic transformation
- From: "Dr. Wolfgang Hintze" <weh@snafu.de>
- Quadratic form: symbolic transformation