Re: Quadratic form: symbolic transformation
- To: mathgroup at smc.vnet.net
- Subject: [mg76878] Re: Quadratic form: symbolic transformation
- From: "Dr. Wolfgang Hintze" <weh at snafu.de>
- Date: Tue, 29 May 2007 04:57:54 -0400 (EDT)
- References: <f3bj37$40i$1@smc.vnet.net>
- Reply-to: "Dr. Wolfgang Hintze" <weh at snafu.de>
Thanks to you all. As I had expected, I have learned several new commands and constructs. Some are easy to understand (for me), like SolveAlways[q1 == q2, x], others like Solve[! Eliminate[! eqn, x], {u, v, w}] containing two Not-s work fine but I still don't know exactly why ... The most beautiful typo in the answers (much better than my stupid one) appeared in this sentence: "To get a case differentiation (r==0,r!=0) automagically, use Reduce." In the context of Mathematica it is almost Freudian, isn't it? Best regards, Wolfgang "Dr. Wolfgang Hintze" <weh at snafu.de> schrieb im Newsbeitrag news:f3bj37$40i$1 at smc.vnet.net... > 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 > >