File: factors.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (57 lines) | stat: -rw-r--r-- 1,941 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
46
47
48
49
50
51
52
53
54
55
56
57
factors           Scilab Group           Scilab Function            factors
NAME
   factors - numeric real factorization
  
CALLING SEQUENCE
 [lnum,g]=factors(pol [,'flag'])
 [lnum,lden,g]=factors(rat [,'flag'])
 rat=factors(rat,'flag')
PARAMETERS
 pol  : real polynomial
      
 rat  : real rational polynomial (rat=pol1/pol2)
      
 lnum : list of polynomials (of degrees 1 or 2)
      
 lden : list of polynomials (of degrees 1 or 2)
      
 g    : real number
      
 flag : character string 'c' or 'd'
      
DESCRIPTION
   returns the factors of polynomial pol in the list lnum and the "gain" g.
  
   One has pol= g times product of entries of the list lnum (if flag is not
  given). If flag='c' is given, then one has |pol(i omega)| =
  |g*prod(lnum_j(i omega)|. If flag='d' is given, then one has |pol(exp(i
  omega))| = |g*prod(lnum_i(exp(i omega))|. If argument of factors is a 1x1
  rational rat=pol1/pol2,  the factors of the numerator pol1 and the
  denominator pol2  are returned in the lists lnum and lden respectively.
  
   The "gain" is returned as g,i.e. one has: rat= g times (product entries
  in lnum) / (product entries in lden).
  
   If flag is 'c' (resp. 'd'), the roots of pol  are refected wrt the
  imaginary axis (resp. the unit circle), i.e.  the factors in lnum are
  stable polynomials.
  
   Same thing if factors is invoked with a rational arguments: the entries
  in lnum and lden are stable polynomials if flag is given.
  R2=factors(R1,'c') or R2=factors(R1,'d') with R1 a rational function or
  SISO syslin list then the  output R2 is a transfer with stable numerator
  and denominator and with same magnitude as R1 along the imaginary axis
  ('c') or unit circle ('d').
  
EXAMPLE
 n=poly([0.2,2,5],'z');
 d=poly([0.1,0.3,7],'z');
 R=syslin('d',n,d);
 R1=factors(R,'d')
 roots(R1('num'))
 roots(R1('den'))
 w=exp(2*%i*%pi*[0:0.1:1]);
 norm(abs(horner(R1,w))-abs(horner(R,w)))
SEE ALSO
   simp