File: pencan.cat

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (45 lines) | stat: -rw-r--r-- 831 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

pencan(1)                      Scilab Function                      pencan(1)
NAME
  pencan - canonical form of matrix pencil

CALLING SEQUENCE
  [Q,M,i1]=pencan(Fs)
  [Q,M,i1]=pencan(E,A)

PARAMETERS

  Fs      : a regular pencil s*E-A

  E,A     : two real square matrices

  Q,M     : two non-singular real matrices

  i1      : integer

DESCRIPTION
  Given the regular pencil Fs=s*E-A, pencan returns matrices Q and M such
  than M*(s*E-A)*Q is in "canonical" form.

  M*E*Q is a block matrix
  [I,0;
   0,N]
  with N nilpotent and i1 = size of the I matrix above.

  M*A*Q is a block matrix:
  [Ar,0;
   0,I]

EXAMPLE
  F=randpencil([],[1,2],[1,2,3],[]);
  F=rand(6,6)*F*rand(6,6);
  [Q,M,i1]=pencan(F);
  W=clean(M*F*Q)
  roots(det(W(1:i1,1:i1)))
  det(W($-2:$,$-2:$))

SEE ALSO
  glever,  penlaur, rowshuff

AUTHOR
  F. D.