Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.

See the recommended documentation of this function

# factors

numeric real factorization

### Syntax

[lnum,g]=factors(pol [,'flag']) [lnum,lden,g]=factors(rat [,'flag']) rat=factors(rat,'flag')

### Arguments

- 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 reflected 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'`

).

### Examples

### See also

- simp — rational simplification

Report an issue | ||

<< diophant | Polynomials | hermit >> |