Matlab - Matlab, calculo símbolico y precisión

 
Vista:
sin imagen de perfil

Matlab, calculo símbolico y precisión

Publicado por Randa (2 intervenciones) el 07/05/2014 21:52:24
Buenas a todos,

Tengo una duda sobre la precisión con la que hace los cálculos Matlab y el cálculo simbólico. Estoy usando la función eval para evaluar una ecuación simbólica.

Dan resultados disparatados. He estado haciendo pruebas y al trocear la función y evaluarla me he dado cuenta de que el problema viene en las funciones trigonométricas cuando el resultado es cercano a cero. Es decir, cuando evalúo por ejemplo cos(pi/2), me sale un número muy pequeño ej: 4*10 -16 Además Matlab lo representa como una fracción y luego al evaluarlo todo se desbarata.

Mi pregunta sería cómo hacer que ese resultado de cero.

Muchas gracias

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Matlab, calculo símbolico y precisión

Publicado por Jorge De Los Santos (213 intervenciones) el 08/05/2014 04:54:22
Hola Randa...

Puedes utilizar la constante de tolerancia predefinida "eps" para verificar si un valor es demasiado pequeño y asignarle el valor cero, por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
>> a=cos(pi/2)
 
a =
 
   6.1232e-17
 
>> a(a<eps)=0
 
a =
 
     0


Con lo anterior te aseguras que si el valor asignado a tu variable es menor que la tolerancia manejada por MATLAB, a esta se le asigne un valor igual a cero.


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Matlab, calculo símbolico y precisión

Publicado por Randa (2 intervenciones) el 08/05/2014 11:34:38
Muchas gracias.

Me han comentado otra forma de hacerlo:

cos(sym(pi/2))

Gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar