# factors

fatoração numérica real

## Seqüência de Chamamento

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

## Parâmetros

pol

  polinômio real

rat

  razão de polinômios reais (`rat=pol1/pol2`)

lnum

  lista de polinômios (de graus 1 ou 2)

lden

  lista de polinômios (de graus 1 ou 2)

g

  número real

flag

  string `'c'` ou `'d'`

## Descrição

Retorna os fatores do polinômio `pol` na lista `lnum` e o "ganho" g.

Tem-se pol= g vezes o produto das entradas da lista `lnum` (se `flag` não for fornecido). Se `flag='c'` for dado, então tem-se `|pol(i omega)|` =`|g*prod(lnum_j(i omega)|`. Se `flag='d'` for dado, então tem-se `|pol(exp(i omega))|` =`|g*prod(lnum_i(exp(i omega))|`. Se o argumento de `factors` for uma razão `rat=pol1/pol2`, os fatores do numerador `pol1` e do denominador `pol2` são retornados nas listas `lnum` e `lden` respectivamente.

O "ganho" é retornado como `g`, i.e. tem-se: rat= g vezes (produto das entradas de lnum) / (produto das entradas de lden).

Se `flag` for `'c'` (respectivamente, `'d'`), as raízes `pol` serão refletidas em relação em relação ao eixo imaginário (respectivamente, ao círculo unitário), i.e. os fatores em `lnum` são polinômios estáveis.

A mesma coisa se `factors` for invocado com argumentos racionais: as entradas em `lnum` e `lden` são polinômios estáveis se `flag` for dado. `R2=factors(R1,'c')` ou `R2=factors(R1,'d')` com `R1` uma função racional ou lista `syslin` SISO, então a saída `R2` é uma transferência com com numerador e denominador estáveis e com a mesma magnitude de `R1` ao longo do eixo imaginário (`'c'`) ou do círculo unitário (`'d'`).

## Exemplos

    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)))

## Ver Também

- simp