I want to use Mathematica to show that the inner product of a vector with itself is equal to the square of its norm.

This is what I tried:

$Assumptions = x ∈ Vectors[3, Reals];
expr = Dot[x, x] == Norm[x]^2;

(*x.x == Norm[x]^2*)

(*x.x == Norm[x]^2*)

I had expected at least one of the last two lines to return True.

Why couldn't Mathematica simplify expr to True in this case? Are there additional assumptions I should include so that it return True?

  • 2
    $\begingroup$ One important thing to know is that not every function is supported. I haven't used this functionality much, so I might be wrong, but I think that Norm is simply not (fully) supported. $\endgroup$ – Szabolcs Feb 3 '16 at 15:46
  • 1
    $\begingroup$ The strange thing is that the documentation for Norm explicitly says that For vectors, Norm[v] is Sqrt[v.Conjugate[v]]. expr = Dot[x, x] == Sqrt[Dot[x, Conjugate[x]]]^2 does yield true, so Norm is not considering x to be a vector. $\endgroup$ – rhermans Feb 3 '16 at 16:17

I think the closest you can get to what you looking for is

Assuming[{a, b, c} ∈ Reals, With[{x = {a, b, c}}, x.x == Norm[x]^2 // Simplify]]



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.