determine if two Matrices are similar
IsSimilar(A, B, out, options)
(optional) equation of the form output = obj where obj is one of 'query' or 'C', or a list containing one or more of these names; selects result objects to compute
(optional); constructor options for the transformation Matrix 'C'
The IsSimilar(A, B) function returns true if A and B are similar.
Two Matrices, A and B, are said to be similar if there exists an invertible Matrix C such that C·A=B·C.
Floating-point entries in either of the Matrices are converted to rationals before proceeding.
If out is included in the calling sequence, then only those objects specified are returned, as an expression sequence. The returned objects may be the Boolean response to the query and/or the similarity transformation Matrix C. If both objects are requested, they are returned in the order specified in the output list.
If A and B are not similar and the Matrix C is requested, then the returned Matrix C is not a similarity transformation Matrix for A and B and the query, if requested, returns false.
The options option provides additional information (readonly, shape, storage, order, datatype, and attributes) to the Matrix constructor that builds the result. These options may also be provided in the form outputoptions['C']=[...], where [...] represents a Maple list. If a constructor option is provided in both the calling sequence directly and in an outputoptions['C'] option, the latter takes precedence (regardless of the order).
Assignment to Normalizer of a stronger normalization routine can provide better zero recognition during this calculation than is provided by the default normal routine. Such an assignment to Normalizer or Testzero may be necessary for input which is not of type ratpoly.
A ≔ DiagonalMatrix⁡5,12,13
B ≔ 5,0,0|3,12,0|4,−4,13
q,P ≔ IsSimilar⁡A,B,output='query','C'
A ≔ Matrix⁡−1,0,0,0,−22,−22,0,−22,22
B ≔ Matrix⁡1,0,0,0,−1,0,0,0,−1
Normalizer ≔ radnormal
Download Help Document