schur

Syntax

schur(obj, [sort])

Arguments

obj is a square matrix.

sort is a string. It is used to reorder the factors according to a specified ordering of the eigenvalues. The value can be ‘lhp’ (eigenvalue is a negative real number), ‘rhp’ (eigenvalue is a positive real number), ‘iuc’ (the absolute value of a complex eigenvalue<=1.0), ‘ouc’ (the absolute value of a complex eigenvalue>1.0).

Details

Compute the Schur decomposition of a square matrix.

Suppose the input is the square matrix A:

  • If sort is not specified, return 2 matrices: T (Schur form of A, an upper triangular matrix) and an unitary matrix Z (the transpose matrix of Z is equal to its inverse matrix), so that A = Z*T*Z-1.

  • If sort is specified, the function will also return an integer indicating the number of eigenvalues that meet the sorting conditions.

Examples

$ m=matrix([[0,0,1],[2,1,0],[2,2,1]]);
$ T,Z=schur(m)
$ T;

#0

#1

#2

2.658967

1.424405

-1.929334

0

-0.329484

-0.490637

0

1.311789

-0.329484

$ Z

#0

#1

#2

0.727116

-0.601562

0.330796

0.528394

0.798019

0.289768

0.438294

0.035904

-0.898114

$ T,Z,s=schur(m, 'lhp');
$ T;

#0

#1

#2

-0.329484

1.570974

2.251318

-0.40969

-0.329484

-0.092398

0

0

2.658967

$ Z

#0

#1

#2

0.703818

-0.632169

0.324042

0.509043

0.766983

0.390655

-0.495495

-0.109999

0.861618

$ s
2
$ T,Z,s=schur(m, 'rhp');

$ s;
  1

$ m=matrix([[0,0,9],[-2,1,0],[2,2,1]]);
$ T,Z,s=schur(m, 'iuc');
$ s;
  0

$ T,Z,s=schur(m, 'ouc');
$ s;
1