09.05.2013 Views

Métodos numericos: ecuaciones diferenciales ordinarias

Métodos numericos: ecuaciones diferenciales ordinarias

Métodos numericos: ecuaciones diferenciales ordinarias

SHOW MORE
SHOW LESS

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)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!