Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.2 - Português

Change language to:
English - Français - 日本語 - Русский

Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.
See the recommended documentation of this function

Ajuda do Scilab >> 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

  • %eps — epsilon (floating-point relative accuracy)
  • cond — número de condicionamento de uma matriz
  • nearfloat — get previous or next floating-point number
  • number_properties — determina parâmetros de ponto flutuante
Report an issue
<< ceil Ponto flutuante double >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:00:39 CET 2019