       • 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:=
> q = R*x^2 + S*x + T == u*(x + v)^2 + w
> Out=
> 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:=
> eq1 = q /. {x -> 0}
> Out=
> T == u*v^2 + w
> In:=
> eq2 = D[q, x] /. {x -> 0}
> Out=
> S == 2*u*v
> In:=
> eq3 = D[q, {x, 2}] /. {x -> 0}
> Out=
> 2*R == 2*u
> In:=
> t = First[Solve[{eq1, eq2, eq3}, {u, v, w}]]
> Out=
> {w -> (-S^2 + 4*R*T)/(4*R), u -> R, v -> S/(2*R)}
>
> (* writing down the result explicitly *)
> In:=
> q /. t
> Out=
> T + S*x + R*x^2 == (-S^2 + 4*R*T)/(4*R) + R*(S/(2*R) + x)^2
> In:=
> Simplify[q /. t]
> Out=
> True
>
> Thanks in advance for any hints.
> Regards,
> Wolfgang
>
>

```

• Prev by Date: Re: Manipulate (from Wolfram Demonstrations)
• Next by Date: using Orestis Vantzos OOP package