Transformation of matrix into an arrow shape
Find parameters of four rotations in order to transform
a matrix with specific shape into a matrix with an arrow shape.
Related to a filter design problem.
For more information, contact Laurent.Baratchart@sophia.inria.fr
or Jean-Paul.Marmorat@sophia.inria.fr.
Characteristics:
- Number of variables: 8 (ou 4 if you use tangent variables).
- The number of complex roots is 1024.
Example 1:
with(linalg): alias(Id=*()):
F := matrix(6,6,
[ f11, f12, 0, 0, 0, 0,
f12, f22, f23, 0, 0, 0,
0, f23, f33, f34, 0, f36,
0, 0, f34, f44, f45, f46,
0, 0, 0, f45, f55, f56,
0, 0, f36, f46, f56, f66 ]):
# Change of basis
w1 := matrix(6,1,[0, c1, 0, s1, 0, 0]):
w2 := matrix(6,1,[0, 0, s3*c2, s3*s2, c3, 0]):
w3 := matrix(6,1,[0, 0, 0, c4, s4, 0]):
P1 := evalm(Id - 2 * w1* transpose(w1)) :
P2 := evalm(Id - 2 * w2* transpose(w2)) :
P3 := evalm(Id - 2 * w3* transpose(w3)) :
P := evalm( P1* P2* P3 ):
X := evalm( P* F* transpose(P) ):
A := matrix(6,6,
[ a11, a12, 0, a14, 0, 0,
a12, a22, a23, 0, 0, 0,
0, a23, a33, a34, 0, a36,
a14, 0, a34, a44, a45, 0,
0, 0, 0, a45, a55, a56,
0, 0, a36, 0, a56, a66 ]):
# Equations
S := c12 + s12 - 1,
c22 + s22 - 1,
c32 + s32 - 1,
c42 + s42 - 1:
for i to rowdim(X) do
for j to coldim(X) do
if (evalb(A[i,j]=0)) then
S := S, expand(numer(simplify(X[i,j]))) fi;
od:
od:
Parm:= [f11, f12, f22, f23,f33, f34, f36, f44, f45, f46, f55, f56, f66 ];
Var := [c1, s1, c2, s2, c4, s4, c3, s3];
S := remove(has,[S],0);
References
- [1]
-
D. Bini and B. Mourrain.
Polynomial test suite.
1996.
This document was translated from LATEX by HEVEA.