vpa

Avaliação em precisão variável de números e expressões simbólicas.

Categoria: Symbolic Computations in MATLAB > Conversion Between Symbolic and Numeric

Sintaxe

r = vpa(x)

Avalia x com digits dígitos decimais significativos (32 por padrão).

r = vpa(x, d)

Avalia com d dígitos somente nesta chamada.

Descrição

vpa transforma quantidades exatas como sqrt(sym(2)) ou sym(1)/3 em decimais com muito mais dígitos do que um double oferece, enquanto os símbolos continuam simbólicos: vpa(sin(x) + sym(pi), 5) dá sin(x) + 3.1416. A precisão global é definida por digits.

O resultado é da classe sym; converta para double com double quando precisar de aritmética comum.

Argumentos de entrada

x
Número, expressão simbólica ou array.
d
Número de dígitos significativos.

Argumentos de saída

r
Resultado simbólico em que as partes numéricas são decimais com a precisão pedida.

Exemplo

Precisões diferentes

vpa(sqrt(sym(2)), 20)
vpa(sym(1)/3, 5)
vpa(sym(pi))
syms x
vpa(sin(x) + sym(pi), 5)
Saída
ans = 1.4142135623730950488
ans = 0.33333
ans = 3.1415926535897932384626433832795
ans = sin(x) + 3.1416

Observações

No MatLivre, um d explícito maior que a configuração atual de digits não é respeitado; aumente digits antes. Um argumento double como vpa(pi) ou vpa(1/3) é tratado como a constante ou a fração exata, enquanto o MATLAB mostra os dígitos do double armazenado (por exemplo 0.33333333333333331483); use vpa(sym(...)) para resultados portáveis.

Veja também

digits sym double subs format