Scilab-Branch-6.1-GIT
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
sfact
fatoração espectral em tempo discreto
Seqüência de Chamamento
F = sfact(P)
Parâmetros
- P
matriz quadradade polinômios reais.
Descrição
Acha F
, um fator espectral de
P
. P
é uma matriz de polinômios tal
que cada raiz de P
possui uma imagem simétrica em
relação ao círculo unitário. O problema é singular se uma raiz estiver no
círculo unitário.
sfact(P)
retorna uma matriz de polinômios
F(z)
que é anti-estável e tal que
P = F(z)* F(1/z) *z^n
Para polinômios escalares um algorimto específico é implementado. Os algoritmos são implementados do livro de Kucera.
Exemplos
//exemplo polinomial p = (%z -1/2) * (2 - %z) w = sfact(p); w*(horner(w, 1/%z)).num
//exemplo matricial z = %z; F1 = [z-1/2, z+1/2, z^2+2; 1, z, -z; z^3+2*z, z, 1/2-z]; P = F1*gtild(F1,'d'); // P é simétrica F = sfact(P) roots(det(P)) roots(det(gtild(F,'d'))) // as raízes estáveis roots(det(F)) // as raízes anti-estáveis clean(P-F*gtild(F,'d'))
// exemplo de uso de tempo contínuo s = %s; p = -3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i)); p = real(p); // p(s) = polinômio em s^2 , procura por f estável tal que p=f(s)*f(-s) w = horner(p,(1-s)/(1+s)); // transformação bilinear w=p((1-s)/(1+s)) wn = w.num; // tomando o numerador fn = sfact(wn); // fator e .. f = horner(fn,(1-s)/(s+1)).num; // transformação de volta f = f/sqrt(horner(f*gtild(f,'c'),0)); f = f*sqrt(horner(p,0)); // normalização roots(f) //f é estável clean(f*gtild(f,'c')-p) // f(s)*f(-s) é p(s)
Report an issue | ||
<< rowcompr | Polinômios | simp >> |