Mostrando las entradas con la etiqueta software. Mostrar todas las entradas
Mostrando las entradas con la etiqueta software. Mostrar todas las entradas

2021-09-09

Orden de operaciones aritméticas

Un problema que apareció en Internet a principios de 2011 es: "¿Cuál es el valor de 48/2 (9 + 3)?" 

Dependiendo de si se interpreta la expresión como (48/2) (9 + 3) o como 48 / (2 (9 + 3)) se obtiene 288 o 2. No existe una convención estándar en cuanto a cuál de estas dos formas la expresión debe interpretarse, por lo que, de hecho, 48/2 (9 + 3) es ambiguo. 

En general, para cualquier expresión de la forma a / bc es necesario insertar paréntesis para mostrar si significa (a / b) c o a / (bc). Bajo la convención algebraica estándar, expresiones como ab + c son inequívocas: esa expresión significa solo (ab) + c; y de manera similar, a + bc significa solo a + (bc). 

La convención es que cuando no se usan paréntesis para mostrar lo contrario, la multiplicación precede a la suma. Para expresiones como a − b + c se dice que cuando se tiene una secuencia de sumas y restas se trabaja de izquierda a derecha. 

Probablemente otra razón por la que no existe una convención fija para el orden de multiplicación y división, como la hay para la suma y la resta, es que la gente con frecuencia hace cálculos que implican sumar y restar largas cadenas de números y los números de multiplicaciones y divisiones que vienen en los cálculos diarios tiende a ser menor; por lo que hay menos necesidad de una convención y ninguna ha evolucionado. 

En muchas escuelas de hoy, a los estudiantes se les enseña el orden de las operaciones: paréntesis, exponentes, multiplicación, división, suma, resta.

2011-02-17

flops in Matlab


Somebody asked how one may count the number of floating point operations in a MATLAB program.
Prior to version 6, one used to be able to do this with the command flops, but this command is no longer available with the newer versions of MATLAB.
flops is a relic from the LINPACK days of MATLAB (LINPACK has since been replaced by LAPACK). With the use of LAPACK in MATLAB, it will be more approrpiate to use tic andtoc to count elapsed CPU time instead (cf. tic,toc).
If you're interested to know why flops is obsolete, you may wish to read the exchanges in NA digest regarding flops.
Nevertheless, if you feel that you really do need a command to count floating point operations in MATLAB, what you can do is to install Tom Minka's Lightspeed MATLAB toolbox and use the flops counting operations therein.