Está en la página 1de 7

CAPITULO VII

ESTRUCTURAS DE CONTROL
CICLO WHILE Y SECANTE

7.1 OBJETIVOS

a) Manejar los operadores relacionales y los operadores lógicos de acuerdo a su


orden de precedencia.
b) Conocer y aprender el uso y manejo de las diferentes sentencias cíclicas de
MATLAB.
c) Dar aplicación a lo aprendido en la solución a ecuaciones.

7.2 BASES TEÓRICAS

7.2.1 Introducción
Como se explicó con anterioridad MATLAB posee un lenguaje de programación que
como cualquier otro lenguaje dispone de sentencias para realizar bifurcaciones y bucles.
Las bifurcaciones permiten realizar una u otra operación según se cumpla o no una
determinada condición. Las bifurcaciones pueden conducir a otras bifurcaciones y
crearse así anidaciones de estructuras condicionales, situación que ya se presentó en el
capítulo VI con el ciclo FOR. Los bucles permiten realizar las mismas operaciones de
manera repetida sobre datos distintos.
La estructura del bucle while es algo similar a la del bucle FOR. Su sintaxis es la
siguiente.

while condición
sentencias
end

donde; “condición” puede ser una expresión vectorial o matricial. Las “sentencias” se
siguen ejecutando mientras haya elementos distintos de cero en condición, es decir,
mientras haya algún o algunos elementos true. El bucle se termina cuando todos los
elementos de condición son false (es decir, cero).

1. Elabore un archivo m que resuelva lo siguiente: (Nombre: Pre7_1_ccd)


Nota: ccd, es la clave que tienes asignada en el centro de cómputo docente

Este programa despliega los números del 1 al 10 en columna.


2. Elabore un archivo m que resuelva lo siguiente: (Nombre: Pre7_2_ccd)
Este programa nos cuenta cuantos números son mayores a 30 del vector x

3. Elabore un archivo m que resuelva lo siguiente: (Nombre: Pre7_3_ccd)


Este programa calcula e imprime la circunferencia y el área de un círculo.
4. Elabore un archivo m que resuelva lo siguiente: (Nombre: Pre7_4_ccd)
Este programa genera una lista de personas con información variada.

5. Elabore un archivo m que resuelva lo siguiente: (Nombre: Pre7_5_ccd)


7.3 DESARROLLO DE LA PRACTICA

Estructura While
1. Elabore un archivo m que resuelva lo siguiente: (Nombre: Dprac7_1_ccd)
Nota: ccd, es la clave que tienes asignada en el centro de cómputo docente.

Este programa ordena un conjunto de 5 números entrados por el usuario.

APLICACIONES:
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:


𝒙 −𝒙
𝒙𝟐 = 𝒙𝟎 + 𝒇𝟎 ∗ 𝒇𝟏−𝒇𝟎
𝟎 𝟏
RESOLUCION DE FUNCIONES POR MEDIO DEL METODO DE LA SECANTE
Ejemplo. Dar solución a la ecuación

1. Definimos " X0" y “X1”;


Valores propuestos:
X0=0.5
X1=1

2. Dada una ecuación, tabulamos x contra f(x).


3. Una vez obtenidos los valores; x y f(x) aplicamos la fórmula de SECANTE para
obtener el tercer valor x2.

X2= nueva aproximación

x f(x)
x0 0 1 f(x0)
𝒙𝟏 − 𝒙𝟎
𝒙𝟐 = 𝒙𝟎 + 𝒇𝟎 ∗ x1 1 -3 f(x1)
𝒇𝟎 − 𝒇𝟏 x2 0.25 -0.060792885 f(x2)
0.234487427 0.004051533
0.235456666 -3.99906E-06

𝟏−𝟎 0.23545571 -2.61666E-10


𝒙𝟐 = 𝟎 + 𝟏 ∗ ( ) 0.23545571 0 Hasta obtener f(x)=0
𝟏 − (−𝟑)

Metodo de secante en matlab.

2. Elabore un archivo m que resuelva lo siguiente: (Nombre: Dprac7_2_ccd)


Nota: ccd, es la clave que tienes asignada en el centro de cómputo docente.

Dar solución a una ecuación dada utilizando el método de Secante. Desarrollar el


problema en Excel y luego en un archivo script en Matlab como se muestra.

PASOS A SEGUIR:
1) Después de clc y clear, el programa,..
2) Pide los valores x0 y x1 por medio de input
3) Solicita un error (variable de valor muy pequeño necesaria para comparar e
indicar cuándo se sale de la estructura while. Dado que se detendrá el programa
cuando se aproxime a la raíz (cero).
4) Calcula los valores f(0) y f(1)
Se puede hacer para una sola ecuación o pidiendo la entrada de la ecuación con
la función inline( ) lo cual vendría antes del cálculo de f(0) y f(1)
5) imprimir los primeros valores de x y f( ); usar fprintf( )
6) fijar un valor grande de f2 cualquiera
7) empezar el cálculo de x2 y f(x2) por medio de la estructura while. Este
terminará cuando el valor de f(x) sea mayor que el valor del error. Imprimir en
cada iteración los valores obtenidos.
7.4. POST-LABORATORIO

1. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_1_ccd)


Nota: ccd, es la clave que tienes asignada en el centro de computo
docente.

Elabore un programa que pida introducir números desde el teclado y los vaya
sumando internamente, el programa debe finalizar cuando se introduzca un cero. Y
mostrar el total de la suma.

2. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_2_ccd)


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 ]

3. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_3_ccd)


Una empresa le 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 millones 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 dos columnas, la primera
columna contendrá el valor de las ventas y la segunda el valor de la comisión.
Luego realizar un grafico de ventas contra comisiones:
ventas=[2000 5000 100 800 300 1000 2200 350 50 1300]

4. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_4_ccd)


Jorge a partir de su cumpleaños 25 depositará $ 5000 a principios de cada año en
una pensión de jubilación que paga 9% de interés compuesto anual. Él quiere
retirarse cuando su cuenta de ahorro alcance o supere $1 000 000 por primera vez.
¿En cuántos años será capaz de retirarse con este plan?

Encontrar la solución de las siguientes funciones utilizando el método de


la Secante. Desarrollar el problema en Excel y luego en un archivo script
en Matlab.

5. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_5_ccd)

6. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_6_ccd)


7. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_7_ccd)

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:

𝑥 2 (1 − 𝑐𝑜𝑠(𝑥)𝑐𝑜𝑠ℎ(𝑥)) − 𝛾𝑠𝑒𝑛(𝑥)𝑠𝑒𝑛ℎ(𝑥) = 0

El empuje, T, 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.

8. Elabore un archivo m que resuelva lo siguiente: (Nombre: Post7_8_ccd)

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 en atm-L/(gmol k)=0.08205
v= volumen molar del gas en L/gmol
a,b=constantes particulares de cada gas.

Para el siguiente gas, calcule v a 80°C para presión de 10 atm, a=3.599


b=0.04267.

También podría gustarte