Solution 11743: Algorithm for the dotP() Function on the TI-89 Family, TI-92 Family, and Voyage™ 200 Graphing Calculators.
How does the dotP() function work on the TI-89 family, TI-92 family, and Voyage 200 graphing calculators?
The dotP() command is implemented on the TI-89 Titanium, TI-92 family, and Voyage™ 200 calculators as an inner product of its arguments. The inner product is defined as follows
dotP(vec1, vec2) = vec2' * vec1,
where ' denotes the conjugate transpose and * represents standard matrix/vector multiplication. (Note that this definition reduces to the "usual" dot product if vec1 and vec2 are both real.) Inner products of complex vectors satisfy the following properties (Note: "dot" is used to represent the operation):
1) vec1 dot vec2 = conj(vec2 dot vec1)
2) (a*vec1 + b*vec2) dot vec3 = a*vec1 dot vec3 + b*vec2 dot vec3
3) vec1 dot (a*vec2 + b*vec3) = a*vec1 dot vec2 + b*vec1 dot vec3
4) vec1 dot vec1 is real, vec1 dot vec1 >= 0, and vec1 dot vec1 = 0 if and only if vec1 is the zero vector
Note that the "dot product" that may be expected for complex vectors violates several of these properties. (The "dot product" of v1 = [1 + i; 0; 0] with itself, using the user's definition, is non-real, and v1 dot v1 ~= conj(v1 dot v1), for example...)
Note also that there are other ways to define the inner product. One such definition is
innerProduct(vec1, vec2) = transpose(vec2)*conj(vec1),
This also reduces to the "usual" dot product if vec1 and vec2 are real.
Please see the TI-89 family, TI-92 family and Voyage 200 guidebooks for additional information.