<< ceil Ponto flutuante double >>

Scilab Help >> Funções Elementares > Ponto flutuante > clean

clean

limpa matrizes (arredonda para zero entradas pequenas)

Seqüência de Chamamento

B = clean(A)
B = clean(A, epsa)
B = clean(A, epsa, epsr)

Parâmetros

A

número escalar, vetor, matriz ou hipermatriz de números decimais ou de números complexos, em codificação densa ou esparsa, ou de polinômios ou racionais com coeficientes reais ou complexos.

epsa, epsr

números reais positivos: tolerâncias de limpeza. Ambos os valores padrão são 10-10.

Descrição

Esta função ajusta para zero todos os coeficientes com valores absolutos< epsa e valores relativos< epsr (relativo em relação ao max(A), ignorando %inf e %nan valores de A) em um polinômio (possivelmente uma matriz de polinômios ou matriz de razões de polinômios).

Para uma matriz de constantes clean(A,epsa) ajusta para zero todas as entradas menores que epsa.

Exemplos

m = grand(3,5,"uin",1,9) .* 10.^grand(3,5,"uin",-16,1)
clean(m)
clean(m, 1e-7)
--> m = grand(3,5,"uin",1,9) .* 10.^grand(3,5,"uin",-16,1)
 m  =
   5.000D-08   5.          0.8         7.000D-08   4.000D-11
   0.00007     7.          4.000D-09   6.000D-13   2.000D-16
   2.000D-08   1.000D-14   1.          8.          0.7

--> clean(m)
 ans  =
   5.000D-08   5.   0.8         7.000D-08   0.
   0.00007     7.   4.000D-09   0.          0.
   2.000D-08   0.   1.          8.          0.7

--> clean(m, 1e-7)
 ans  =
   0.        5.   0.8   0.   0.
   0.00007   7.   0.    0.   0.
   0.        0.   1.    8.   0.7

For rationals:

x = poly(0,'x');
w = [3+2*x, 2+x; 3+x, 2-x]/5
r = w * inv(w)
clean(r)
--> w = [3+2*x, 2+x; 3+x, 2-x]/5
 w  =
   0.6 +0.4x   0.4 +0.2x
   0.6 +0.2x   0.4 -0.2x

--> r = w * inv(w)
 r  =
                                                                2
   -3.140D-16 + x                        -1.110D-15 + 3.331D-16x
   ---------------                       ------------------------
                                                           2
         x                                   1.3333333x + x
                                      2                             2
   1.110D-15 - 2.220D-16x - 5.551D-17x   -1.110D-15 + 1.3333333x + x
   ------------------------------------  ----------------------------
                           2                                 2
             1.3333333x + x                    1.3333333x + x

--> clean(r)
 ans  =
   1   0
   --  --
   1   1

   0   1
   --  --
   1   1

Ver Também


Report an issue
<< ceil Ponto flutuante double >>