Está en la página 1de 20

CAPITULO VI

ESTRUCTURAS DE CONTROL
Ciclo for – end
Y
Ciclo while – end

6.1 OBJETIVOS

a) Conocer y aprender el uso y manejo del condicional switch de MATLAB.


b) Manejar los operadores relacionales y los operadores lógicos de acuerdo a su orden de
precedencia.
c) Conocer y aprender el uso y manejo de las diferentes sentencias cíclicas de MATLAB.
d) Conocer y aprender el uso de la función inline
e) Dar aplicación a lo aprendido en la solución a ecuaciones integrales por medio de la regla
de Simpson 1/3.
f) Dar aplicación a lo aprendido en la solución de ecuaciones no lineales, mediante el
cálculo de la raíz aproximada de una función por medio del método de la secante.

6.2 BASES TEÓRICAS

6.2.1 Introducción
Sentencia condicional switch - end.- El condicional switch ejecuta un bloque de condiciones o
selecciones varias, descritas en la parte case de su sintaxis. Al ejecutar la comparación con case
y hallar correspondencia; se ejecutarán una serie de comandos, en el caso de no haber
correspondencia, se tomarán otras alternativas descritas en el mismo condicional.

Bucles.- Los bucles o iteraciones son otro de los métodos utilizados para controlar el flujo de un
programa. En un bucle, la ejecución de uno o varios comandos se repite varias veces
consecutivamente. Cada una de estas repeticiones se denomina paso o iteración. MATLAB
permite definir dos tipos distintos de bucle:

La estructura for – end, permite definir bucles donde el número de iteraciones queda definido al
comienzo del bucle.

La estructura while – end, donde el número de iteraciones depende de que se cumpla o no una
condición determinada.

6.2.2 La estructura switch-case-end


La estructura switch/case se usa con frecuencia cuando existe una serie de opciones de ruta de
programación para una variable dada, dependiendo de su valor. Switch/case es similar a
if/else/elseif. De hecho, cualquier cosa que pueda hacer con switch/case se podría hacer con
if/else/elseif. Sin embargo, el código es un poco más fácil de leer con switch/case, una estructura
que le permite elegir entre múltiples salidas, con base en ciertos criterios. Ésta es una importante
distinción entre switch/case y elseif. Los criterios pueden ser un escalar (un número) o una
cadena.
1
En la práctica se usa más con cadenas que con números.

La estructura de switch/case es
switch variable
case option1
Código a ejecutar si la variable es igual a la opción 1
case option2
Código a ejecutar si la variable es igual a la opción 2
.
.
case option_n
Código a ejecutar si la variable es igual a la opción n
otherwise
Código a ejecutar si la variable no es igual a cualquiera de las opciones
end

6.2.3 La estructura for - end


La estructura del bucle for es simple. La primera línea identifica el bucle y define un índice o
variable, que es un número que cambia en cada paso a través del bucle.
Después de la línea de identificación viene el grupo de comandos que se quiere ejecutar.
Finalmente, la terminación del bucle se identifica mediante el comando end. En resumen, se
tiene.
for variable = [matriz]
Comandos a ejecutar
End

Ejemplo: Resultado:

for k = [1,4,9] k=1


k k=4
end k=9

6.2.4 La instrucción while - end


Los bucles while son similares a los bucles for. La gran diferencia es la forma en que MATLAB
decide cuántas veces repetir el bucle. Los bucles while continúan hasta que se satisface algún
criterio. El formato para un bucle while es

while criterio
Comandos a ejecutar
end

Ejemplo: Resultado:

k=0; k=2
while k <6 k=4
k=k+2 k=6
end
2
6.3 PRE-LABORATORIO

1. Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre6_1)

Con la finalidad de tener una figura geométrica cerrada compuesta de líneas rectas los ángulos
en la figura deben sumar

Suma= (n – 2) (180 grados)

Donde n es el número de lados.

Escriba un programa que pida al usuario ingresar uno de los siguientes polígonos:
Triángulo Cuadrado Pentágono Hexágono

Use la entrada para definir el valor de n mediante una estructura switch/case;


Luego use n para calcular la suma de los ángulos interiores de la figura.

Al correr el programa (Run) aparecerá un cuadro de


menú similar al mostrado.

Al dar clic en una de las opciones mostrara el resultado


de dicha selección.

TRIANGULO, la suma de sus ángulos internos es de 180


GRADOS

3
2. Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre6_2)

Calcular la suma de los primeros n términos de la siguiente serie numérica:


𝑛
𝑛(𝑛 + 1)
∑𝑖 =
2
𝑖=1

Corra el programa para valores de n=5 y n=50

Al correr el programa (run) pedirá el valor y al introducirlo, mostrará el resultado:

4
3. Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre6_3)
Realice un programa que calcule el promedio de las calificaciones de un alumno. El programa pedirá el
número de calificaciones y la calificación una por una.

Al correr el programa (run) pedirá los datos y al introducirlos, mostrará el resultado:

Correr el programa para los tres casos posibles. (APROBADO, EXTRAORDINARIO, TITULO)

5
4. Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre6_4)

Deseamos sumar todos los elementos aij de una matriz n x m. Esto se puede hacer realizando la
suma
𝑛 𝑚

𝑠𝑢𝑚𝑎 = ∑ ∑ 𝑎𝑖𝑗
𝑖=1 𝑗=1

6
6.4 DESARROLLO DE LA PRÁCTICA

6.4.1.-APLICACION: METODO DE SIMPSON 1/3


Método Simpson 1/3
Este método resulta de sustituir un polinomio de segundo orden en la ecuación

𝑥𝑓
𝐼 = ∫ 𝑓(𝑥)𝑑𝑥
𝑥𝑜

Para integrar la función, es necesario dar valores iniciales a x desde x0 hasta xf para obtener una
tabla de y en función de x. es requisito que los intervalos entre puntos sean iguales, es decir que
h tenga siempre el mismo valor; y el número de intervalos debe ser par.

Para obtener h, se utiliza la fórmula:


𝑥𝑓 − 𝑥0
ℎ=
𝑛
La ecuación general es:
𝑛−1 𝑛−2
𝑖=𝑖+2 𝑖=𝑖+2

𝐼= 𝑦 + 4 ∑ 𝑦𝑖 + 2 ∑ 𝑦𝑖 + 𝑦𝑛
3 𝑜
𝑖=1 𝑖=2
( )

La ecuación corregida para utilizar en Matlab:

𝑛 𝑛−1
𝑖=𝑖+2 𝑖=𝑖+2

𝐼= 𝑦 + 4 ∑ 𝑦𝑖 + 2 ∑ 𝑦𝑖 + 𝑦𝑛+1
3 1
𝑖=2 𝑖=3
( )

Calcular la siguiente integral:


6

∫(4𝑥 3 − 4𝑥 4 − 3)𝑑𝑥
1

Solución analítica:
6
4 5 4 4
𝐼 = [𝑥 − 𝑥 − 3𝑥] = (64 − ∗ 65 − 3 ∗ 6) − (14 − ∗ 15 − 3 ∗ 1)
4
5 1 5 5

𝑰 = −4942.8 + 2.8 = −𝟒𝟗𝟒𝟎

7
1. Elabore un archivo en Excel (Nombre del archivo: Carrera_ClaveUnica_Dpract6_1)
Elabore un archivo en Matlab (Nombre del archivo: Carrera_ClaveUnica_Dpract6_1)

Método de Simpson 1/3 para resolución de Integrales Definidas


6

∫(4𝑥 3 − 4𝑥 4 − 3)𝑑𝑥
1

a) Se define n=20, (Recomendado de 10 a 20 secciones y par.)


𝒙𝒇 −𝒙𝟏
Se calcula h (tamaño del intervalo) con la formula 𝒉 =
𝒏

Dada la ecuación, 𝒇(𝒙) = (𝟒𝒙𝟑 − 𝟒𝒙𝟒 − 𝟑) se tabula x contra f(x).

b) Una vez obtenidos los valores de los intervalos; x y f(x) aplicamos la fórmula de Simpson 1/3
para obtener la integral.

Excel - Método Simpson 1/3 Matlab - Método Simpson 1/3

8
Grafica de Excel

Método de Simpson 1/3


0.00000
0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00
-500.00000

-1000.00000

-1500.00000

-2000.00000
y=4x^3-4x^4-3

-2500.00000

-3000.00000

-3500.00000

-4000.00000

-4500.00000

-5000.00000
X

Grafica de Matlab

9
2. Elabore un archivo en Excel (Nombre del archivo: Carrera_ClaveUnica_Dpract6_2)
Elabore un archivo matlab (Nombre del archivo: Carrera_ClaveUnica_Dpract6_2)

Una partícula de masa m se mueve a través de un fluido, sujeta a una resistencia R que es función
de la velocidad 𝑣 𝑑𝑒 𝑚. La relación entre la resistencia R, la velocidad 𝑣 y el tiempo 𝑡 esta dada
por la ecuación.
𝑣𝑓
𝑚
𝑡=∫ 𝑑𝑣
𝑣0 𝑅(𝑣)

Supóngase que 𝑅(𝑣) = −𝑣√𝑣 + 0.0001 para un fluido particular. Si m=10 kg y 𝒗𝟎 = 𝟏𝟎 𝒎/𝒔 ,
aproxime el tiempo requerido para que la partícula reduzca su velocidad a 𝒗𝒇 = 𝟓 𝒎/𝒔
Usando el método de Simpson 1/3. (Proponer n=18 intervalos)

Excel - Método Simpson 1/3 Matlab - Método Simpson 1/3

10
6.5 PRE-LABORATORIO

Estructura While
Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre7_1)

Elaborar un programa que ordene un conjunto de n números introducidos por el usuario.

Ejemplo:

11
Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre7_2)

Dado el siguiente vector, hacer un programa que indique en que posiciones se encuentran
números negativos.

V=[1, 2, 25, -12, -8, 32, -4, 88, -7,-21 ]

Al ejecutar (Run) el programa debe aparecer el siguiente resultado

12
Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre7_3)

Crear un programa que realice lo siguiente:


Una empresa les paga a sus empleados una comisión según el valor de las ventas realizadas en
el mes, la comisión se paga de la siguiente manera:
Si vendió 400 millones o menos le paga 1% de comisión.
Si vendió más de 400 millones y menos de 1000 le paga 3%.
Si vendió 1000 millones o más le paga 5%.
Dado un vector con las ventas de los 10 vendedores de la empresa realizar un programa usando
ciclos que presente una tabla con tres columnas, la primera columna contendrá el valor de las
ventas la segunda el porciento y la tercera el valor de la comisión.

Ventas = [2000 5000 100 800 300 1000 2200 350 50 1300]

Al ejecutar (Run) el programa debe aparecer el siguiente resultado

13
Elabore un archivo m (Nombre del archivo: Carrera_ClaveUnica_Pre7_4)
Elaborar un programa que pida datos (nombre, edad, coeficiente) de n personas y genere una
lista de ellos

Ejemplo:

14
7.1 DESARROLLO DE LA PRACTICA

7.1. APLICACION: METODO DE LA SECANTE


MÉTODO SECANTE. Este método calcula la raíza aproximada de una función. Lo que hace
básicamente es ir tirando rectas secantes a la curva de la ecuación que se tiene originalmente, y
va chequeando la intersección de esas rectas con el eje de las “x” para ver si es la raíz que se
busca. Casi nunca falla ya que solo requiere de 2 puntos al principio, y después el mismo método
se va retroalimentando.

Para comenzar, se piden 2 valores iniciales de “x” y a partir de éstos x0 y x1, se calculará un tercer
valor x2 con la ecuación de la secante y así sucesivamente. El algoritmo deberá parar cuando |xn+1
– xn| sea menor que la precisión requerida.

El método de la secante se define por la ecuación:

𝒙𝟏 − 𝒙𝟎
𝒙𝟐 = 𝒙𝟎 + 𝒇𝟎 ∗
𝒇 𝟎 − 𝒇𝟏

Encontrar una raíz de x que satisfaga la función:

𝒇(𝒙) = 𝟐𝒙 − 𝟓𝒙
1. Se proponen valores iniciales de X0 y X1
Valores propuestos:
X0=0.5
X1=1

2. Se evalúa la función f(X0) para el valor de X0

𝑿𝟎 = 𝟎. 𝟓 𝑓0 = 20.5 − 5 ∗ 0.5 𝒇𝟎 = −𝟏. 𝟎𝟖𝟓𝟕𝟖𝟔

3. Se evalúa la función f(X1) para el valor de X1

𝑿𝟏 = 𝟏 𝑓1 = 21 − 5 ∗ 1 𝒇𝟏 = −𝟑. 𝟎𝟎𝟎𝟎𝟎

4. Una vez obtenidos los valores; X y f(x) se aplica la fórmula de Secante para obtener el siguiente
valor de X, que se llamara X2.

Secante:
𝑋1− 𝑋0 1 − 0.5
𝑋2 = 𝑋0 + 𝑓0 ∗ 𝑋2 = 0.5 + (−1.085786) ∗ 𝑿𝟐 = 𝟎. 𝟐𝟏𝟔𝟑𝟖𝟖
𝑓0 − 𝑓1 −1.085786 − 3.0

𝑿𝟐 = 𝟎. 𝟐𝟏𝟔𝟑𝟖𝟖 𝑓2 = 20.216388 − 5 ∗ 0.216388 𝒇𝟐 = 𝟎. 𝟎𝟕𝟗𝟖𝟖0

5. Con el valor obtenido X2, se evalúa nuevamente la función f(X2).


6. Se recorre el valor de X, haciendo X0=X1, X1=X2, y se vuelve a evaluar la función para estos
valores.
7. Se repite esta secuencia (5, 6, 7), hasta que el valor calculado de f(x) sea cero.

15
Solución por pasos.

Primera iteración:
𝑿𝟎 = 𝟎. 𝟓 𝑓0 = 20.5 − 5 ∗ 0.5 𝒇𝟎 = −𝟏. 𝟎𝟖𝟓𝟕𝟖𝟔

𝑿𝟏 = 𝟏 𝑓1 = 21 − 5 ∗ 1 𝒇𝟏 = −𝟑. 𝟎𝟎𝟎𝟎𝟎

Secante:
𝑋1− 𝑋0 1 − 0.5
𝑋2 = 𝑋0 + 𝑓0 ∗ 𝑋2 = 0.5 + (−1.085786) ∗ 𝑿𝟐 = 𝟎. 𝟐𝟏𝟔𝟑𝟖𝟖
𝑓0 − 𝑓1 −1.085786 − 3.0

𝑿𝟐 = 𝟎. 𝟐𝟏𝟔𝟑𝟖𝟖 𝑓2 = 20.216388 − 5 ∗ 0.216388 𝒇𝟐 = 𝟎. 𝟎𝟕𝟗𝟖𝟖0

Segunda iteración:
𝑿𝟎 = 𝑿𝟏 = 𝟏 𝑓0 = 21 − 5 ∗ 1 𝒇𝟎 = −𝟑. 𝟎𝟎𝟎𝟎𝟎

𝑿𝟏 = 𝑿𝟐 = 𝟎. 𝟐𝟏𝟔𝟑𝟖𝟖 𝑓1 = 20.216388 − 5 ∗ 0.216388 𝒇𝟏 = 𝟎. 𝟎𝟕𝟗𝟖𝟖0

Secante:
𝑋1− 𝑋0 0.216388 − 1
𝑋2 = 𝑋0 + 𝑓0 ∗ 𝑋2 = 1.0 + (−3.0) ∗ 𝑿𝟐 = 𝟎. 𝟐𝟑𝟔𝟕𝟏𝟐
𝑓0 − 𝑓1 −3.0 − 0.079880

𝑿𝟐 = 𝟎. 𝟐𝟑𝟔𝟕𝟏𝟐 𝑓2 = 20.236712 − 5 ∗ 0.236712 𝒇𝟐 = −𝟎. 𝟎𝟎𝟓𝟐𝟓𝟔

Tercera iteración:
𝑿𝟎 = 𝑿𝟏 = 𝟎. 𝟐𝟏𝟔𝟑𝟖𝟖 𝑓0 = 20.216388 − 5 ∗ 0.216388 𝒇𝟎 = 𝟎. 𝟎𝟕𝟗𝟖𝟖0

𝑿𝟏 = 𝑿𝟐 = 𝟎. 𝟐𝟑𝟔𝟕𝟏𝟐 𝑓1 = 20.236712 − 5 ∗ 0.236712 𝒇𝟏 = −𝟎. 𝟎𝟎𝟓𝟐𝟓𝟔

Secante:
𝑋1− 𝑋0 0.236712 − 0.216388
𝑋2 = 𝑋0 + 𝑓0 ∗ 𝑋2 = 0.216388 + (0.079880) ∗ 𝑿 = 𝟎. 𝟐𝟑𝟓𝟒𝟓𝟕
𝑓0 − 𝑓1 0.079880 − (−0.005256) 𝟐

𝑿𝟐 = 𝟎. 𝟐𝟑𝟓𝟒𝟓𝟕 𝑓2 = 20.235457 − 5 ∗ 0.235457 𝒇𝟐 = −𝟎. 𝟎𝟎𝟎𝟎𝟎𝟕

Cuarta iteración:
𝑿𝟎 = 𝑿𝟏 = 𝟎. 𝟐𝟑𝟔𝟕𝟏𝟐 𝑓0 = 20.236712 − 5 ∗ 0.236712 𝒇𝟎 = −𝟎. 𝟎𝟎𝟓𝟐𝟓𝟔

𝑿𝟏 = 𝑿𝟐 = 𝟎. 𝟐𝟑𝟓𝟒𝟓𝟕 𝑓1 = 20.235457 − 5 ∗ 0.235457 𝒇𝟏 = −𝟎. 𝟎𝟎𝟎𝟎𝟎𝟕

Secante:
𝑋1− 𝑋0 0.235457 − 0.236712
𝑋2 = 𝑋0 + 𝑓0 ∗ 𝑋2 = 0.236712 + (−0.005256) ∗ 𝑿 = 𝟎. 𝟐𝟑𝟓𝟒𝟓𝟔
𝑓0 − 𝑓1 −0.005256 − (−0.000007) 𝟐

𝑿𝟐 = 𝟎. 𝟐𝟑𝟓𝟒𝟓𝟔 𝑓2 = 20.235456 − 5 ∗ 0.235456 𝒇𝟐 = 𝟎. 𝟎𝟎𝟎𝟎𝟎𝟎

16
Elabore un archivo en Excel (Nombre del archivo: Carrera_ClaveUnica_Dpract7_1)
Elabore un archivo en Matlab (Nombre del archivo: Carrera_ClaveUnica_Dpract7_1)

Encontrar una raíz de x que satisfaga la función:


𝒇(𝒙) = 𝟐𝒙 − 𝟓𝒙
Para conocer el número y valor aproximado de las raíces se dibuja la gráfica de la función en
Matlab.
Por ejemplo:
>> fplot('2^x-5*x',[-2,4]), grid on

Excel - Método de la Secante Matlab – Método de la Secante

17
Elabore un archivo en Excel (Nombre del archivo: Carrera_ClaveUnica_Dpract7_2)
Elabore un archivo en Matlab (Nombre del archivo: Carrera_ClaveUnica_Dpract7_2)

La ecuación de estado de Van der Wall para un gas real es:


𝑎
(𝑃 + ) (𝑣 − 𝑏) = 𝑅𝑇
𝑣2
Donde:
P=presión en atm
T=temperatura en K
R= contante universal de los gases en atm-L/(gmol k)=0.08205
v= volumen molar del gas en L/gmol
a, b=constantes particulares de cada gas.
Calcular para el gas CO2 el Volumen Molar V, a T=80°C, P=10 atm, a=3.599 b=0.04267.
K=°C+273.20

Para conocer el número y valor aproximado de las raíces se dibuja la gráfica de la función en
Matlab.
Por ejemplo:
fplot('(10+3.599/x^2 )*(x-.04267)-.08205*353.2',[2,3]),grid on

Excel - Método de la Secante Matlab – Método de la Secante

18
7.2. POST-LABORATORIO

Aplicación: Método de Simpson 1/3. (Integrales definidas)

Elabore un archivo en Excel (Nombre del archivo: Carrera_ClaveUnica_Post7_1)


Elabore un archivo en Matlab (Nombre del archivo: Carrera_ClaveUnica_Post7_1)

Calcule el cambio de entropía ∆𝑺 , que sufre un gas ideal a presión constante al cambiar su
temperatura de 300 a 380 K. Utilice el Calcular el promedio de Cp, e introducirlo como una
constante en la formula.
Considere n=18
𝑻𝒔 𝑪
𝒑
∆𝑺 = ∫ 𝒅𝒕
𝑻𝟏 𝑻

T(k) 300 310 320 330 340 350 360 370 380 390 400
𝑐𝑎𝑙 4.87 5.02 5.06 5.11 5.16 5.19 5.22 5.25 5.26 5.28 5.30
𝐶𝑝 ( 𝐾)
𝑚𝑜𝑙

Excel - Método Simpson 1/3 Matlab - Método Simpson 1/3

Graficar en Excel y en Matlab.

19
Aplicación: Método de la Secante
Elabore un archivo en Excel (Nombre del archivo: Carrera_ClaveUnica_Post7_2)
Elabore un archivo en Matlab (Nombre del archivo: Carrera_ClaveUnica_Post7_2)

Cuando se lanza un proyectil se producen vibraciones que flexionan algunas de sus partes.
La magnitud de la flexión depende del empuje E. La ecuación que se asocia con las vibraciones
de un proyectil es la siguiente:

𝒙𝟐 (𝟏 − 𝒄𝒐𝒔(𝒙)𝒄𝒐𝒔𝒉(𝒙)) − 𝜸𝒔𝒆𝒏(𝒙)𝒔𝒆𝒏𝒉(𝒙) = 𝟎

El empuje E, se relaciona directamente con el parámetro 𝜸, que equivale a 0.002 kg/cm3, al


tiempo que las raíces positivas de la ecuación determinan las configuraciones y las frecuencias
naturales de oscilación de un proyectil de vuelo.

Determine las tres primeras raíces positivas, sin considerar la raíz 𝑥̅ = 0, por ser una solución
trivial.
fplot('x^2*(1-cos(x)*cosh(x))-0.002*sin(x)*sinh(x)',[-1,15]),grid on
axis([-1,15,-.1,.1])

Primera raíz:
Excel - Método de la Secante Matlab – Método de la Secante

20

También podría gustarte