You are on page 1of 25

INSTITUTO TECNOLÓGICO METROPOLITANO

INSTITUCIÓN UNIVERSITARIA

FACULTAD DE CIENCIAS

GUÍA No 11 DELABORATORIO DE MATEMATICAS

POR: Juan Carlos Molina García.

Fray Huber Campo S.

Docentes TC ITM

ELEMENTOS DE PROGRAMACIÓN CON MATLAB

Una de las características más sobresalientes del Matlab, está relacionada con la capacidad que
posee el programa como lenguaje de programación. El software tiene la gran ventaja de configurarse
como un lenguaje de alto nivel que integra, en un único ambiente rutinas de cálculo, visualización y
programación. El programa es de fácil uso ya que los problemas se pueden formular usando una
notación matemática estándar.

El programa dispone de sentencias o instrucciones útiles para realizar bifurcaciones y ciclos. Las
bifurcaciones permiten realizar una u otra operación según se cumpla o no una determinada
condición. Por su parte, los ciclos permiten repetir las mismas instrucciones u operaciones sobre
datos distintos.

COMPETENCIA:

Comprender y aplicar las principales estructuras de programación en Matlab para resolver problemas
de aplicación en matemáticas y diseñar modelos que permitan dar solución a problemas cotidianos.
INDICADORES DE LOGRO ASOCIADOS A LA COMPETENCIA

• Identifica los diferentes ciclos y estructuras de datos básicas que permiten realizar programas
en Matlab.

• Utiliza herramientas de programación para diseñar modelos que dan solución a problemas en
los que intervienen fórmulas matemáticas.

ESTRATEGIAS ORIENTADAS AL APRENDIZAJE Y A LA CONSECUCIÓN DEL LOGRO

• Interpretación de secuencias de código y algoritmos.


• Utilización de herramientas de programación en Matlab

RUTA DIDÁCTICA

Se centra en el análisis de algoritmos y secuencias de códigos de programación en Matlab que


describen de manera estructurada los pasos lógicos que permiten dar solución a problemas prácticos
en los que aplican diversos términos y conceptos matemáticos. Los ejercicios desarrollados y
propuestos buscan favorecer la activación de esquemas que le permiten al estudiante de una
manera dinámica la comprensión de las distintas estructuras de datos y procedimientos para la
utilización del computador como una herramienta de apoyo en la solución de problemas.

RED DE CONCEPTOS:
Funciones de entrada y salida de información, instrucciones de control de secuencias: instrucción
if, instrucción switch-case. Instrucciones de control de ciclos iterativos: Instrucción while,
instrucción for, instrucción break.

MATERIALES PARA REALIZAR EL LABORATORIO:

Guía de laboratorio: Ayudas en Aritmética y Algebra con Matlab, Texto de programación en Matlab.

DESCRIPCION DEL LABORATORIO.

De manera general, la guía proporciona a los estudiantes la oportunidad de aproximarse al lenguaje


de programación Matlab mediante la utilización de los comandos básicos para el manejo de las
principales estructuras de datos de que dispone el lenguaje de programación.

PROGRAMANDO EN MATLAB

Un programa en Matlab consiste en una serie de instrucciones o sentencias que se ejecutan de


manera secuencial, por tanto, una de las principales tareas al iniciar con la programación se
relaciona con la identificación de las formas correctas de escritura (sintaxis) de las instrucciones. La
elaboración de un programa en Matlab es un procedimiento sencillo, basta abrir un documento de
texto por lo general se utiliza el mismo editor de texto incorporado en el programa. Las instrucciones
se escriben tal y como se pondrían en la ventana de comandos, para luego guardar el documento o
script con la extensión (.m) por ejemplo: primerprograma.m. Matlab reconoce automáticamente
los archivos que tienen extensión (.m), de esta manera, si en la ventana de comandos se escribe
>>primerprograma, las instrucciones almacenadas en el archivo se ejecutarán secuencialmente,
una tras otra. Esta ejecución de las instrucciones o código se conoce con el nombre de flujo, y los
comandos de un programa se denominan sentencias.
ACTIVIDAD Nº1:

DISEÑO DE UN SCRIPT

Se desea desarrollar un programa que obtenga gráfica y analíticamente la solución del sistema
conformado por las ecuaciones y=-2x+4, y=x-5. Para esto, se procede a crear un nuevo archivo de
extensión (.m) en el cual se almacenarán el conjunto de instrucciones que dan solución al ejercicio.
Para esto, se oprimir File en el menú de ventanas de Matlab, luego se selecciona la opción New y
M-file conlo cual se entra al editor del programa.

El paso siguiente consiste en escribir las instrucciones como se muestra en el gráfico. Finalmente se
guarda el archivo con el nombre primerprograma.
Se debe tener en cuenta que el código o mensaje que aparece luego del símbolo % se toman como
comentarios en Matlab y no tienen ningún efecto al correr el programa, sin embargo, estos mensajes
son muy importantes a la hora de documentar la aplicación para guiar a cualquier lector sobre su
funcionamiento.

Para ejecutar la aplicación, se escribe en la ventana de comandos >>primerprograma, con lo cual


las instrucciones almacenadas en el archivo se ejecutarán secuencialmente, una tras otra,
mostrando los siguientes resultados en la ventana de comandos.

x =
3
y =
-2

Simultáneamente, se abre una ventana con la gráfica de las ecuaciones así


ACTIVIDAD Nº2:

Modifica las instrucciones del script anterior, de tal manera que permita obtener, gráfica y
analíticamente la solución del sistema conformado por las ecuaciones ; .
y  x 1 1 2
y x 3
2

OPERADORES LÓGICOS Y RELACIONALES

Dentro de la implementación del control de flujo, son muy útiles ciertas expresiones que permiten
comparar dos variables entre sí, o una variable con un valor fijo. Tales expresiones o condiciones,
denominadas expresiones lógicas, corresponden a preguntas básicas a las cuales se les puede
responder afirmativa o negativamente, esto es, se cumplen o no se cumplen. Las condiciones y el
manejo de las variables lógicas se da a través de los llamados operadores relacionales y lógicos. En
la siguiente tabla aparecen los operadores más utilizados en la programación con Matlab.

OPERADOR DESCRIPCIÓN
< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
== Igual
~= Diferente

Operadores relacionales en Matlab

& ‘y’ lógico


| ‘o’ lógico
xor ‘o’ exclusiva
~ negación

Operadores lógicos en Matlab

Los operadores relacionales en Matlab corresponden a: menor que (<), menor o igual que (<=),
mayor que (>), mayor o igual que (>=), igual que (==), diferente que (~=). Los operadores lógicos por
su parte, se definen y simbolizan como: ‘y lógica’ ( ), ‘o lógica’ ( ), ‘negación lógica’ ( ). Los valores

booleanos o lógicos de las expresiones lógicas se establecen como: (0) para falso y, (1) para
verdadero. De esta manera, con las expresiones relacionales o lógicas se pueden realizar preguntas
de respuesta unívoca (verdadero o falso). Una condición, como se ha indicado, sólo admite dos
respuestas: verdadera o falsa. Así por ejemplo, a la pregunta ¿es x mayor o igual que y?, que en el
lenguaje de Matlab se expresa x>=y, sólo caben dos respuestas posibles.

CONOCIENDO LAS PRINCIPALES ESTRUCTURAS DE PROGRAMACION…

FUNCIONES DE ENTRADA Y SALIDA DE INFORMACIÓN


Para mostrar en pantalla mensajes al usuario o valores de variables se utiliza la función disp. El
siguiente ejemplo muestra su estructura básica. Para mayor información sobre la instrucción se
puede digitar >>help disp en la ventana de comandos.

>>disp('MENSAJE DE SALIDA') % escribe En pantalla el texto:


% MENSAJE DE SALIDA

>>disp(t) % muestra el contenido de la variable t

OBSERVACION

Para mostrar los contenidos de más de una variable, se extiende el comando a la instrucción
disp([val1,val2,…])

EJEMPLO

>>x=2^7; z=sqrt(pi); disp([x,z])

128.0000 1.7725

Para capturar valores de variables desde el teclado, se utiliza la función input. Para la siguiente
instrucción por ejemplo, el sistema muestra en pantalla el mensaje y queda a la espera de que el
usuario digite un valor para ser capturado en la variable r.

>>r=input('MENSAJE DIGITE UN VALOR PARA LA VARIABLE r ')

Para capturar una cadena de texto se añade a la instrucción el parámetro 's' así:

>> nombre = input('¿Cuál es tu nomnbre?','s')


Si se quiere mostrar un texto y además el valor de una o varias variable con formato, se puede
utilizar la función fprintf,bajo la estructura fprintf('mensaje %formato',variable).

En el formato se puede especificar la cantidad de columnas que separan los resultados y las cifras
decimales a tener en cuenta.

EJEMPLO

Con la siguiente secuencia se muestra el número contenido en el campo sup, con 4 cifras
decimales, y una separación de 12 columnas. La instrucción \n, indica que, una vez ejecutada la
instrucción, el cursor se posiciona en el renglón siguiente

>> sup=7654/453
>> fprintf('SUPERFICIE = %12.4f\n',sup)
SUPERFICIE = 16.8962

ACTIVIDAD Nº3:

Digitar las siguientes instrucciones y describir las formas de operación de los comandos y sus
resultados:

>>x=(2^7)/100;
>>z=sqrt(pi);
>>fprintf('%2.3f %8.4f\n',x,z)
1.280 1.7725

>>v1=54321;
>>fprintf('el resultado es %3i\n',v1)
el resultado es 54321

>>v3='Salida Matlab';
>>fprintf('el resultado es %s',v3)
el resultado es Salida Matlab>>

>>v4='X';
>>fprintf('\n el resultado es %c\n',v4)
el resultado es X

>>x = 3;
>>fprintf('LA RAÍZ CUADRADA DE %g ES %8.6f\n',x,sqrt(x))
LA RAÍZ CUADRADA DE 3 ES 1.732051

>>x = 1:4;
>>y = sqrt(x);
>>fprintf('%9.4f\n',y)
1.0000
1.4142
1.7321
2.0000

ACTIVIDAD Nº4:
1. Desarrolle una secuencia de instrucciones que pida unatemperatura en grados Celsius y la
convierta a grados Fahrenheit mostrando en pantalla un mensaje del tipo
xxx.xx grados Celsius son yyy.yy grados Fahrenheit

2. Escribir un programa que lea el valor de un ángulo en radianes y muestre su valor en grados,
minutos y segundos

INSTRUCCIONES DE CONTROL DE SECUENCIAS

INSTRUCCIÓN if:

Se utiliza para chequear una determinada condición, simple o compuesta, permitiendo la ejecución
de cierto bloque de instrucciones de a cuerdo a la validez de la condición.

SINTAXIS INSTRUCCIÓN IF, FORMA SIMPLE

if (condición)
instrucciones
end

EJEMPLO

Las siguientes instrucciones permiten el cálculo de una raíz cuadrada siempre que el valor sea
positivo.

If x>0

r=sqrt(x);
end

La instrucción if permite también ramificaciones, es decir, dependiendo de la validez de una


condición el programa decide su curso

SINTAXIS GENERAL DE LA INSTRUCCIÓN IF

if (condición 1)
instrucciones 1
elseif(condición 2)
instrucciones 2
elseif (condición 3)
instrucciones 3

else %opción por defecto para cuando no se cumplan las

%condiciones 1,2,3. Si se omite el programa sigue

%su ejecución sin presentar problemas

instrucciones
end

EJEMPLO

La siguiente secuencia de código permite comparar respecto al número 7, cualquier número digitado
por un suario.
i=input('Escribe un numero cualquiera ');

if i>7
disp('El número digitado es mayor que 7')
elseif i==7
disp('El número es igual a 7')
else
disp('El número es menor que 7')
end

INSTRUCCIÓN switch - case:

Se utiliza para chequear si una expresion es igual a algún valor predeterminado. Se aplica para
ejecutar una determinada secuencia de instrucciones dependiendo del valor de la expresión. Cada
valor puede ser numérico o una cadena de texto. De igual forma, cada case puede tener uno o, mas
valores.

SINTAXIS DE LA INSTRUCCION SWITCH - CASE


switch (expresion)
case {valor 1}
instrucciones 1
case {valor 2}
instrucciones 2
case {valor 3}
instrucciones 3
.
.
.
otherwise
instrucciones
end

EJEMPLO

La siguiente secuencia de código permite comparar respecto al número 7, cualquier número entre 1
y 10 digitado por un usuario.

num=input('Escribe un numero cualquiera entre 1 y 10');

switch num
case {1,2,3,4,5,6}
disp('El número es menor que 7')
case {7}
disp('El número es igual a 7')

case {8,9,10}
disp('El número es mayor que 7')
otherwise
disp('El número está por fuera del rango specificado')
end

ACTIVIDAD Nº5

1. Crear un programa que calcule la caída de potencial producida por una resistencia según la
ley de Ohm V=IR a partir de la resistencia y la intensidad de corriente. El programa no debe
aceptar resistencias negativas, dado que no tienen sentido físico, ni resistencias mayores que
100Ω por requerimiento adicional del problema. En ambos casos el programa debe escribir un
mensaje de error en pantalla diciendo que el valor de la resistencia está fuera de límites
aceptables indicando la causa por la que dicho valor para la resistencia ha sido rechazado.
2. Leer desde el teclado las coordenadas (x,y) de un punto. Mediante un menú, el usuario
debe tener la opción de elegir una de las siguientes opciones:

• Comprobar si el punto pertenece a una circunferencia de radio 8 y centro en (0,0).


• Averiguar el cuadrante en el que se encuentra el punto.
• Cambiar el punto (x, y) de coordenadas cartesianas a polares.

INSTRUCCIONES DE CONTROL DE CICLOS ITERATIVOS

Estas instrucciones se utilizan para especificar que una acción o conjunto de acciones van a ser
ejecutadas en forma repetitiva. Para ver las ayudas que ofrece Matlab para el manejo de estructuras
de programación, se procede a digitar >>help lang

INSTRUCCIÓN while

La instrucción consta de un bloque o conjunto de instrucciones y de una condición de terminación de


ejecución del bloque de instrucciones. De esta manera, el bloque de instrucciones se ejecuta
mientras la condición sea verdadera.

SINTAXIS DE LA INSTRUCCION WHILE

while (condición)
instrucciones
end

EJEMPLO

Las siguientes instrucciones calculan el volumen de una esfera de radio entero, de r=1 hasta r=4

r=0;
while r<4
r=r+1;
vol=(4/3)*pi*r^3;
fprintf('El radio es %g y el volumen es %g.\n',r,vol)
end

Al ejecutar la secuencia de comandos se obtiene el siguiente resultado

El radio es 1 y el volumen es 4.18879.


El radio es 2 y el volumen es 33.5103.
El radio es 3 y el volumen es 113.097.
El radio es 4 y el volumen es 268.083.

EJEMPLO

La siguiente secuencia de instrucciones permiten calcular el área de una circunferencia de acuerdo a


un valor del radio digitado por el usuario. La ejecución del bloque termina cuando se digita un valor
para el radio de cero o negativo:

r=input('Digite el radio o cero para terminar ');


while r > 0
sup=pi*r^2;
fprintf('Area del círculo = %.2f\n',sup)
r=input('Digite un nuevo radio o cero para terminar ');
end

EJEMPLO

La siguiente secuencia de comandos permite hallar el menor número natural cuyo factorial está por
encima del valor dado por el usuario:
clc
n=input('Digite un valor n entero positivo \n')
k=1;
while factorial(k)<n
k=k+1;
end
fprintf('Primer natural con factorial superior a %g es %.0f\n',n,k)

EJEMPLO

Considere la serie armónica n=1∞1n . La suma de los n primeros términos de esta serie se pueden
obtener del siguiente conjunto de instrucciones:

n=input(' cantidad de términos ');


s=0;
while n>0
s=s+1/n;
n=n-1;
end
disp(s);

INSTRUCCIÓN for

La instrucción consta de dos partes, un bloque de instrucciones que se ejecutan iterativamente y de


una condición de terminación de la ejecución de dicho bloque. De esta manera, la instrucción repite
un número predeterminado de veces el conjunto de instrucciones
SINTAXIS DE LA INSTRUCCION FOR

for variable=valor_inicial:incremento:valor_final
instrucciones
end

O también,

for i=vectorValores
instrucciones
end

EJEMPLO

El siguiente código genera las seis primeras potencias pares de 3, iniciando con 30

for k = 0 : 2 : 10
disp(3^k)
end

EJEMPLO

El ejemplo anterior se puede ampliar a más valores de 3i , permitiendo que el usuario ingrese la
mayor potencia i a calcular

clc
p=input('Ingrese un valor entero positivo y par \n ');
for i = 0:2:p
fprintf('potencia para i = %.0f',i); disp(3^i);
end
Al ejecutar las instrucciones para un valor entero igual a cuatro, se obtiene el siguiente resultado

potencia para i = 0 1
potencia para i = 2 9
potencia para i = 4 81

EJEMPLO

Con la siguiente secuencia se obtiene la suma de los n primeros términos de la serie armónica
n=1∞1n . Esto se realizará utilizando el ciclo for.

clc
n=input('cantidad de términos n= ');
s=0;
for i=1:n
s=s+1/i;
end
disp(s);

INSTRUCCIÓN break:

Este comando termina la ejecución de un bloque de instrucciones

EJEMPLO:
La siguiente secuencia de comandos permite obtener el área de la circunferencia de radio r
especificado por el usuario. La ejecución del bloque de instrucciones termina cuando se ingresa un
valor del radio cero o negativo

while 1
r=input('Ingrese valor del radio [o cero para terminar] ');
if r <= 0;
break;
end;
sup=pi*r^2;
fprintf('Area Circunferencia = %.2f\n',sup)
end

EJEMPLO

Calcular y mostrar la raíz cuadrada de una serie de n valores ingresados por el usuario. Si se digita
un valor negativo, muestra un mensaje de error y termina la ejecución de la secuencia.

clc
n=input('cantidad de cálculos n= ');
for i=1:n
x=input('ingresar número para calcular su raíz ');
if x<0
disp('Error');
break;
else
r=sqrt(x);
disp([x,r])
end
end
Para detener la ejecución de un programa en algún momento de su estructura, se utiliza el comando
pause(n), donde n es el número de segundos de la pausa. Si se digita el comando pause
únicamente, el programa se detiene hasta que el usuario oprima cualquier tecla. Así mismo, con la
instrucción error se detiene la ejecución del programa. Por ejemplo al incluir la instrucción
error(‘Tenga cuidado’), en una secuencia, el sistema muestra el mensaje ??? Tenga
cuidado y se detiene la ejecución del programa.

ACTIVIDAD Nº6

Explica los resultados de las siguientes secuencias:

A.
for n=1:10
x(n)=sin(n*pi/10);
disp(n)
disp(x)
pause
end

B.
clc
for x = 0:pi/15:pi
fprintf('%8.2f %8.5f\n',x,sin(x));
end

C.
for n=1:5
for m=5:-1:1
a(n,m)=n+m;
end
end
disp(a)

D.
suma=0;
n=1;
while (suma)<=100
suma=suma+n;
n=n+1;
disp(suma)
end

ACTIVIDAD Nº7

1. Escribir un programa que pida una cantidad en dólares y la convierta en pesos, solicitando
primero cuántos pesos equivalen a un dólar.

2. Escribir un programa que pida una hora en segundos y la saque por pantalla en el formato
horas, minutos y segundos así: “hh:mm:ss”.

3. Escribir un programa para calcular el promedio de una lista de números positivos; la


secuencia de ingreso de los números termina cuando el usuario digite un número negativo.
Anexe las instrucciones necesarias para conocer cuántos de los números digitados están por
debajo de 50 y cuántos son mayores o iguales que 50.

4. Escribir un programa que lea una lista de números y determine cuantos son positivos, y
cuántos son negativos.

5. Escribir un programa que tome un número entero al azar entre el 0 y el 9, y le pregunte un


número al usuario hasta que acierte.

6. Eescribir un programa que lea diez números, los guarde en un vector y a continuación los
imprima en orden inverso al de su entrada

7. Escribir un programa que permita jugar a doble o nada: El jugador apuesta una cantidad y tira
una moneda. Si sale cara obtiene el doble de la cantidad apostada. Si sale cruz la pierde todo.
(Modificar el programa del juego de doble o nada para que permita ir jugando hasta que el
jugador decida abandonar el juego. El programa debe sacar por pantalla el número de
jugadas y el total ganado por el jugador (si ha perdido debe ser una cantidad negativa).

8. Desarrolle una secuencia de instrucciones en Matlab que simule la caída de un objeto desde
la parte más alta de un edificio de H metros de altura (donde H se pide por teclado). El
programa debe mostrar cada 0.1 segundos la altura de la pelota y su velocidad, esto es,
mostrar para cada instante de tiempo (cada 0.1 segundos) una línea de salida de información
así:

t=xx.x seg --distancia al suelo = xx.xx mts -- velocidad = xx.xx m/s

9. Escribir un programa que realice la descomposición en factores primos de un número n


introducido por teclado. El programa debe escribir la tabla de los factores primos a medida
que los va calculando, tal como muestra el ejemplo siguiente para n=126:

Nº | Factores primos
-- | ---------------
126| 2
63 | 3
21 | 3
7 | 7
1 |

10. Realice un programa en Matlab que calcule la siguiente sumatoria:

n=1N -1n-1n2π2cosnπx
Donde N es un número entero positivo introducido por teclado.

CONCLUSIONES GENERALES DEL DESARROLLO DE LA GUIA.


________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________

BIBLIOGRAFIA.

ALVAREZ R. Yolanda y DIAZ L. Gloria M. Funciones reales con MatLab. Serie Textos Académicos
Instituto Tecnológico Metropolitano. 2007.

ARBOLEDA Q. Dairon. ALVAREZ J. Rafael. MatLab Aplicaciones a las matemáticas básicas. Sello
Editorial Universidad de Medellín. 2006.

BAEZ L..David. Matlab con aplicaciones a la ingeniería, física y finanzas. Alfaomega. 2006

MATLAB. Edición del estudiante, Guía de Usuario. The Math-Works, inc., Prentice Hall

MATLAB Desktop tools and development environment, Version 7, The mathworks, Inc, 2004

MATLAB. Edición del estudiante, Guía de Usuario. The Math-Works, inc., Prentice Hall

MOLINA G. Juan y NASPIRAN H Luis E. Iintroducción al cálculo de varias variables con elementos
de programación en Matlab. Serie Textos Académicos Instituto Tecnológico Metropolitano. (Texto en
edición 2009).

PEREZ L. Cesar. Matlab y sus aplicaciones en las ciencias y la ingeniería. Prentice Hall

PRATAP Rudra. Getting Started With MatLab 7. New York- Oxford University Press. 2006.
ELABORADO POR:

Juan Carlos Molina García


Docente AuxiliarTC. ITM.
juanmolina@itm.edu.co
Ext: 440 52 90

Fray Huber Campo S


Docente OcasionalTC. ITM.
fraycampo@itm.edu.co
Ext: 440 52 91

You might also like