Métodos numericos: ecuaciones diferenciales ordinarias
Métodos numericos: ecuaciones diferenciales ordinarias
Métodos numericos: ecuaciones diferenciales ordinarias
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Programación en Mathematica<br />
6.2.4 Do<br />
Esta sentencia es útil para la construcción de bucles o procesos repetitivos, como por ejemplo calcular<br />
la suma<br />
10X<br />
i 2 . (6.1)<br />
i=0<br />
Veamos como hacerla empleando esta sentencia. Para ello necesitamos en primer lugar saber como<br />
se comporta y cual es su sintaxis. Son las siguientes:<br />
Do[expresión, {i, imax}], (6.2)<br />
Do[expresión, {i, imin,imax,di}], (6.3)<br />
Do[expresión, {i}]. (6.4)<br />
La sentencia (6.2) evalúa la expresión desde el valor i =1hasta el valor i = imax, aumentando su<br />
valor de uno en uno. En la segunda sentencia (6.3) evaluamos la expresión desde un valor mínimo<br />
que nosotros escogemos, i = imin, hasta un valor máximo i = imax, pero ahora aumentamos el valor<br />
de i en cada paso de di en di unidades. Por último, (6.4) ejecuta la expresión i veces. Así, para<br />
obtener el valor de la suma (6.1) hemos de escribir<br />
In[1] := s =0;Do[s = s + iˆ2, {i, 0, 10, 1}]; s<br />
Out[1] = 385.<br />
Hemos de remarcar que la sentencia Do no escribe nada en pantalla, sólo ejecuta la operación que<br />
se le indica. Es por ello que al final escribimos s en In[1]. Para obtener la suma de los cubos de los<br />
números pares entre el uno y el 100 debemos escribir<br />
6.2.5 While<br />
In[2] := s =0;Do[s = s + iˆ3, {i, 2, 100, 2}]; s<br />
Out[2] = 13005000.<br />
Otra manera de construir bucles es empleando la sentencia While. A diferencia de la anterior, esta<br />
sentencia incorpora la posibilidad de toma de decisiones. La sintaxis es la siguiente:<br />
While[test, expresión],<br />
que produce la ejecución de la expresión mientras es test de un resultado positivo. Por ejemplo, para<br />
obtener la suma de (6.1) podríamos escribir<br />
In[1] := s =0;i =0;While[(i = i +1)