Está en la página 1de 20

Universidad Laica Eloy Alfaro de Manab

PRACTICAS DE LABORATORIO
Facultad de ingeniera
Ingeniera elctrica

Anlisis Numrico - MATLAB

Practica N1
Introduccin a MATLAB
Prof. MSc. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

NDICE
1.

Introduccin a Matlab ............................................................................................................ 3


1.1.

Comandos bsicos en MATLAB .................................................................................... 3

1.2.

Vectores y matrices operaciones bsicas ........................................................................ 5

1.3.

Vectores complejos .......................................................................................................... 6

1.4.

Polinomios ........................................................................................................................ 8

1.5.

Scripts y funciones, el editor integrado ........................................................................ 11

1.6.

Representacin Grfica 2D ........................................................................................... 11

1.7.

Bucle FOR ...................................................................................................................... 15

2.

Introduccin a la Practica..................................................................................................... 18

3.

Objetivos de la practica ........................................................................................................ 18

4.

Equipos del puesto de trabajo .............................................................................................. 18

5.

Programas utilizados para las practicas .............................................................................. 18

6.

Normas de trabajo del laboratorio ....................................................................................... 18

7.

Ejercicios de evaluacin practica ......................................................................................... 19

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

1. Introduccin a Matlab
Matlab es un programa de clculo matemtico muy flexible y potente, con posibilidades
grficas para la presentacin de los datos, por lo que se utiliza en muchos campos de la
ciencia y la investigacin como herramienta de clculo matemtico.
Puede ser utilizado como simple calculadora matricial, pero su inters principal radica en
los cientos de funciones tanto de propsito general como especializadas que posee, as como
en sus posibilidades para la visualizacin grfica. MATLAB posee adems un lenguaje de
programacin propio, muy prximo a los habituales en clculo numrico (Fortran, C,) que
permite al usuario escribir sus propios scripts (conjunto de comandos escritos en un fichero,
que se pueden ejecutar con una nica orden) para resolver un problema concreto y tambin
escribir nuevas funciones con, por ejemplo, sus propios algoritmos. MATLAB dispone,
adems, de numerosas Toolboxes, que le aaden funcionalidades especializadas.
Los comandos y funciones que se describen a continuacin funcionan generalmente en
todas las versiones de MATLAB, aunque algunos slo lo hacen en las versiones ms
modernas y otros han quedado obsoletos. En este ltimo caso las versiones ms modernas
disponen de otros comandos o funciones que los sustituyen. Algunos de ellos estn
disponibles bajo botones o mens en las nuevas versiones.
NOTA: En este documento se recogen unos pocos ejemplos de entre las inmensas
posibilidades que ofrece Matlab. Se deben consultar las ayudas de Matlab u otros
documentos si se desea un conocimiento ms amplio. Se deben utilizar y modificar
los ejemplos aqu incluidos para adquirir las destrezas bsicas que permitirn
utilizar el programa como herramienta para la asignatura.
1.1.

Comandos bsicos en MATLAB


Realizar operaciones algebraicas es muy sencillo.

>> a=2
a= 2
>> b=3
b=3
>> suma=a+b
suma =
5

O simplemente:
>> 2+3
ans =
5

La variable ans contiene el resultado de la ltima operacin realizada y puede


consultarse en cualquier momento as como el resto de las variables que se vayan creando:
>> suma
suma =
5

>> ans
ans =
5

Si se quiere ver el nombre de todas las variables que se estn utilizando se pueden usar
los comandos whos.
Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

Con save se pueden guardar todas las variables que se estn utilizando en el
workspace para recuperarlas en cuanto se necesiten (>>save mydata). O se pueden guardar
solamente las variables que nos interesan seleccionndolas en el workspace, haciendo clic
derecho y seleccionando save as. Las variables guardadas aparecern en la parte derecha de
la pantalla en la ventana current forlder (mydata y mydata2).

Para borrar variables que estamos utilizando y que quizs ya no son tiles para el
propsito que perseguimos se utiliza el comando clear. En nuestro caso hemos borrado
las variables: suma y ans que guardamos anteriormente (>>clear suma y >>clear ans).
Para borrar todo el contenido solo se introduce el comando >>clear. Para recuperar nuestro
trabajo guardado >>load mydata.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

El comando help proporciona ayuda y combinado con otro comando, ayuda sobre ese
comando en concreto (p.ej. help who). Para abandonar el programa se pueden usar los
comandos quit o exit.
1.2.

Vectores y matrices operaciones bsicas


Matlab maneja vectores, los cuales los podemos crear de la siguiente manera:

Matlab maneja matrices, y como casos particulares de las mismas, vectores fila y vectores
columna. En la siguiente figura podemos observar la manera de representar una matriz y de
cmo conocer su dimensin:

Podemos realizar operaciones matemticas, como por ejemplo encontrar la matriz


traspuesta (matriz_2 = matriz), realizar multiplicaciones (matriz_3 = matriz_2*a), sumas,
restas, etc. Incluso podemos seleccionar parte de la matriz indexando fila y columna (matriz
Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

(2, 3)) o utilizar parte de la misma (matriz (1:3, 2: end)) o hacer que parte de nuestra matriz
sea cero (matriz_2 (1:2,:) =0 )

En caso de tener dos matrices 3x3, A y B, las operaciones que podramos realizar entre
ellas son: A+B, A*B, A^3, det (A) (encuentra el determinante de la matriz), entre otras.
1.3.

Vectores complejos

Los nmeros complejos se representan en Matlab de la siguiente manera (siendo a=2 y


b=3):

Obsrvese que la unidad imaginaria puede representarse tanto con i como con j. La
utilizacin del operador de multiplicacin * es necesaria casi siempre, caso contrario
recibiremos un error: Undefined function or variable 'bi' o Not enough input arguments.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

Tenemos varias funciones para trabajar con nmeros imaginarios dentro de Matlab, por
ejemplo: real (complejo) nos retornar la parte real de nmero o imag (complejo) nos
retornar el imaginario. Caso parecido tendremos con las instrucciones isreal ( ), pero en
este caso retornar 0 cuando sea complejo, caso contrara retornar un 1. Por otro lado para
encontrar su mdulo utilizamos el comando abs ( ) Supongamos que para este ejemplo a =
1 +3* i; b = 1; c = i

Para conseguir el argumento se aplica el comando angle ( ), el cual nos arroja el ngulo
en radianes. Aplicar este comando es lo mismo que hacer atan (imag(a)/real(a))

Si queremos el ngulo expresado en grados debemos utilizar rad2deg ( ). Hay que notar
que tambin existe la funcin inversa deg2rad ( ). Por tanto si queremos convertir un nmero
complejo a forma polar se puede realizar en dos pasos:

En este punto podra resultar interesante poder observar la representacin grfica de los
complejos en el plano. Mediante la funcin polar (angle ( ), abs ( ), *r). Esta funcin
recibe dos argumentos, el primero es el argumento del nmero complejo a representar, y el
segundo su mdulo. El tercer argumento es opcional, no obstante sirve para representar de
forma ms clara donde se encontrara el punto en cuestin, en este caso se representar
mediante un asterisco de color rojo.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

La siguiente tabla muestra las distintas posibilidades de representar graficas en Matlab,


en cuanto a colores y formas de trazado.

NOTA: obviamente "i", "j", "ans", "pi", "help", "sin", etc. son nombres que ya estn
definidos para variables, constantes, comandos o funciones de Matlab y no se deben usar
para nombrar nuevas funciones o variables del usuario. Matlab distingue entre
maysculas y minsculas!
1.4.

Polinomios

Matlab nos brinda una serie de funciones para trabajar con los polinomios. Estos son
introducidos al programa en forma de vector y siguiendo las siguientes reglas:
Tienen que estar ordenados en forma decreciente por su grado
Deben de estar presentes todos los coeficiente, aun cuando su valor es 0
>> a = [ 1 1 1 ] x2 + x +1
>> a = [ 2 0 1 3 ] 2x3 + 0 x2 + x + 3
Las funciones bsicas que encontramos para trabajar con polinomios se resumen a
continuacin:
1. roots (p): Obtiene races de un polinomio dado
Calcula las races de un polinomio cuyos coeficientes son elementos del vector p.
Ejemplo: q(x)=x2 -5x +6
Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

2. poly (v): Construye un polinomio a partir de sus races


Retorna un vector (polinomio) cuyos elementos son los coeficientes del polinomio cuyas
races son los elementos de v. Ejemplo: (x-3) (x-2)

3. polyval (p, x): Evala un polinomio en un punto dado


Si p tiene N+1 elementos, retorna el valor del polinomio al evaluarlo en x.
Ejemplo: q(x) = x2 -5x +6 f (6)= (6)2 5(6) +6 = 12

4. conv (p, q): Multiplicacin de polinomios


conv viene de convolucin, en el caso de los vectores convolucionar dos vectores es
equivalente a multiplicarlos. El resultado es un vector de longitud = longitud (p) + longitud
(q) 1. Ejemplo: p = 2x +1; q = 3x +4

5. Producto escalar: Multiplica los calores de dos vectores dados uno a uno.
Es importante recalcar el uso del . antes del vector a, ya que esto significa termino por
termino. Para obtener el producto escalar de estos dos vectores se realiza:

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

6. deconv (p, q): Divisin de polinomios [Q, R] = deconv (p, q)


El resultado de la divisin de q por p queda almacenado en la variable Q, y el resto
queda almacenado en la variable R. Ejemplo: p = 2x +1; r = 6x2 +11x +4

7. polyder (r): Deriva un polinomio dado - polyint (r): Integra un polinomio


Aqu tenemos que introducir el polinomio que queremos derivar o integrar dentro de la
funcin y automticamente obtendremos el resultado. No hay que olvidar las reglas
anteriormente mencionadas acerca de cmo introducir un polinomio. Ejemplo: polinomio r

8. Suma y Resta
Para poder sumar y restar polinomios tenemos que tener presente que ambos vectores
tienen que tener la misma dimensin, caso contrario el programa nos dar error. Por tanto
antes realizar estas operaciones tendremos que rellenar con ceros los vectores que no tengan
la misma dimensin.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

1.5.

Anlisis Numrico

Ingeniera Electrica

Scripts y funciones, el editor integrado

Un script es un conjunto de instrucciones (de cualquier lenguaje) guardadas en un


fichero (usualmente de texto) que son ejecutadas normalmente mediante un intrprete. Son
tiles para automatizar pequeas tareas. Tambin puede hacer las veces de un "programa
principal" para ejecutar una aplicacin. As, para llevar a cabo una tarea, en vez de escribir
las instrucciones una por una en la lnea de comandos de MATLAB, se pueden escribir una
detrs de otra en un fichero. Para ello se puede utilizar el Editor integrado: icono hoja en
blanco del men de herramientas, opcin New M-file del Men File o bien usando la
orden
>> edit

Los scripts de MATLAB deben guardarse en un fichero con sufijo .m para ser
reconocidos. Para ejecutar un script que est en el directorio de trabajo, basta escribir su
nombre (sin el sufijo) en la lnea de comandos.
Una funcin (habitualmente denominadas M-funciones en MATLAB), es un programa
con una "interfase" de comunicacin con el exterior mediante argumentos de entrada y de
salida. Las funciones MATLAB responden al siguiente formato de escritura (la clusula end
del final no es obligatoria, excepto en el caso de funciones anidadas, que se explica ms
adelante):
function [argumentos de salida] = nombre(argumentos de entrada)
% comentarios % ....
instrucciones (normalmente terminadas por ; para evitar eco en pantalla) ....
end (opcional salvo en las funciones anidadas)

Las funciones deben guardarse en un fichero con el mismo nombre que la funcin y sufijo
.m. Se pueden incluir en el mismo fichero otras funciones, denominadas subfunciones, a
continuacin de la primera, pero slo sern visibles para las funciones del mismo fichero.
Tambin es posible definir funciones anidadas, esto es, funciones insertadas dentro del
cdigo de otras funciones. (Se exponen aqu para conocer su existencia. Su utilizacin es
delicada.)
%**************************%
%Ejemplo de una funcin anudada%
%**************************%

funcion z = tresxcuadrado(x)
funcin [y]=cuadrado(x)
end
z=3*cuadrado(x);
end
1.6.

Representacin Grfica 2D

Matlab proporciona una variedad importante de funciones para representar grficamente


datos vectoriales tanto en 2D como en 3D. Adicionalmente pone a disposicin de los
usuarios otro grupo de funciones para manipulacin e impresin de los grficos creados.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

Graficas 2D:
Los grficos 2D que permite crear Matlab son curvas planas y superficiales, posibilitando
la agrupacin y la superposicin, adems de trabajar con colores, rejillas, marcos, etc.
Para realizar grficas de funciones de una variable del tipo y=f(x), primero tenemos que
crear una tabla de valores de la variable para despus dibujar la funcin. Por ejemplo,
queremos dibujar la grfica de la funcin y=sen(x).
Primero creamos una tabla vector (el vector x), en este caso creamos 200 puntos con
valores entre 0 y 2*pi mediante el comando linspace (xmin, xmax, n). Esta funcin nos
permitir definir un vector x con un rango de variacin que deseemos para pintar la funcin.
>>x=linspace (0, 2*pi, 200);
Ahora calculamos los valores de y
>> y = sin(x);
Y por ltimo dibujamos la figura:
>>plot (x, y)

Por defecto lo que hemos hecho es dibujar 200 puntos de la funcin en el intervalo [0,
2*pi], y posteriormente el programa los ha unido mediante segmentos. Si el nmero de
puntos es lo suficientemente grande, como es el caso, no se aprecian los vrtices.
Tambin es posible dibujar una funcin con el comando fplot (f(x), [xmin, xmax]).
As, este comando admite como argumento un nombre de funcin o de un fichero .m en el
que est definida la funcin. En el ejemplo evaluaremos la funcin sin(x) con valores que
van de 0 a 2*pi con una amplitud de -1 a 1.
>>fplot (sin(x)', [0, 2*pi, -1, 1])

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

Vamos a ver un ejemplo algo ms complicado. Queremos dibujar ahora la grfica de la


funcin y = xe-x^2. Primero tenemos que definir los valores para los cuales vamos a trazar
la grfica y para ello definimos un intervalo de [-3, 3] con un paso de longitud 0.01. Por
ultimo definimos la funcin y dibujamos la grfica.
>>x=-3: 0.01:3;
>>y=x. *exp (-x.^2);
>>plot(x, y, r*)
Para poner cuadricula al grfico utilizamos el comando >>grid on

Los ejes que aparecen por defecto en una grfica tambin se pueden modificar. Con el
comando >>axis ([-2 2 -1 1]), conseguiremos que la grfica aparezca en una regin acotada
por nosotros.
Se pueden dibujar tantas grficas como se quieran en una misma figura. Si ya tenemos
dibujada una, y generamos una nueva grfica, en principio la figura anterior es sustituida por
la nueva. Sin embargo, utilizando el comando >>hold on, se mantendr la anterior, con todas
sus propiedades, y se podr dibujar encima una nueva. Para desactivar el comando anterior
se usa el comando >>hold off. Otra forma de hacerlo es dibujar desde el principio dos

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

grficas juntas, por ejemplo, vamos a dibujar las grficas de las funciones y=sen(x) e y=sen(x
+ pi/3) en la misma grfica.
Generamos las tablas
>>x = linspace (0, 2*pi, 300);
>>y = sin (x);
>>z = sin (x + pi/3);
Y ahora dibujamos
>>plot (x, y, r-, x, z, g), grid on;

El comando subplot se utiliza para dividir una ventana en m particiones horizontales y


n verticales para representar para representar (m x n) figuras. Cada una de las particiones
tendr sus ejes aunque las propiedades sern comunes a todas ellas. La sntesis es: subplot
(m, n, i), donde m y n son el nmero de subdivisiones e i la subdivisin activa. Por
ejemplo:
>>x=0:0.1:2*pi;
>>y=sin(x);z=cos(x);t=exp(-x);v=x^2;
>>subplot (2, 2, 1), plot (x, y)
>>subplot (2, 2, 2), plot (x, z)
>>subplot (2 ,2, 3), plot (x, t)
>>subplot (2, 2, 4), plot (x, v)

Adems de esto existen diversas posibilidades para el etiquetado de las grficas. Vamos
a ver un ejemplo:
>>x = linspace (-3, 3, 500);
>>y = exp (-x. ^2);
>>z = 2*exp (-x. ^2)
>>plot (x, y, -, x, z, )
>>title (campana de Gauss)
>>xlabel (Eje de Abscisas)
>>ylabel (Eje de Ordenadas)
>>legend (exp(-x^2), 2*exp(-x^2))

Prof. MSc. Ing. Marcos Ponce Jara

% creamos 500 puntos entre -3 y 3


%declaramos las funciones
%dibujamos las grficas
%ttulo del grfico
%damos nombre al eje de las x
%damos nombre al eje de las x
%creamos la leyenda de la grfica

Universidad Laica
Eloy Alfaro de Manab

1.7.

Anlisis Numrico

Ingeniera Electrica

Bucle FOR

La sentencia for repite un conjunto de sentencias un nmero predeterminado de veces.


La sentencia for de MATLAB es muy diferente y no tiene la generalidad de la sentencia for
de C/C++/Java. La siguiente construccin ejecuta sentencias con valores de i de 1 a n,
variando de uno en uno.
for i=1:n
sentencias
end

o bien

for i=vectorValores
sentencias
end

donde vectorValores es un vector con los distintos valores que tomar la variable i.
En el siguiente ejemplo se presenta el caso ms general para la variable del bucle
(valor_inicial: incremento: valor_final); el bucle se ejecuta por primera vez con i=n, y luego
i se va reduciendo de 0.2 en 0.2 hasta que llega a ser menor que 1, en cuyo caso el bucle se
termina:
for i=n:-0.2:1
sentencias
end

En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles anidados.


La variable j es la que vara ms rpidamente (por cada valor de i, j toma todos sus posibles
valores):
for i=1:m
for j=1:n
sentencias

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

end
end

Una de las caractersticas principales de los bucles for, como hemos observado, la
constituye la variable del bucle (variable). Esta variable va tomando valores entre inicio y
final de paso en paso. Cada vez que se ejecuta el bucle, variable toma un valor diferente. Al
inicio del bucle, variable es igual a inicio. La segunda vez, variable es igual a inicio+paso, y
as sucesivamente, hasta que al final variable es igual a final. Si se omite el paso, MATLAB
entiende que el paso es igual a uno.
Es muy importante mantener unas ciertas cuestiones de estilo de programacin. Por eso,
deben sangrarse o indentarse adecuadamente todas las sentencias que se ejecuten dentro del
bucle, segn se ha hecho en el programa anterior. El editor de Matlab lo hace
automticamente.
Ejecucin del programa paso paso (Debuggin Points)
Muchas veces, cuando usamos el bucle for, queremos saber exactamente que estamos
calculando en cada momento para de esta manera comprobar que nuestro programa funciona
correctamente. Para ello hay un comando en llamado Set Breakpoint.
Creamos un script que nos calcule el factorial de un nmero mediante un bucle for.
n=4;
resultado=1;
for k=1:4
resultado=resultado*k;
end
disp(resultado)

Sealamos con el puntero del ratn la segunda lnea y pulsamos el botn derecho del ratn, en el
men que aparece elegimos Set Breakpoint.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

Corremos el script pulsando en el botn flecha de color verde, Run. El script se detiene
en la segunda lnea (establecida como breakpoint).

Se pulsa la tecla F10 (o en el men Debug->Step) para correr el programa paso a paso y
se sita el puntero del ratn sobre la variable resultado para ver los valores que va tomando.
La flecha horizontal de color verde nos indica la lnea que se est ejecutando
Cuando la flecha verde apunta hacia abajo, MATLAB termina la ejecucin del programa.

Alternativamente, eliminando el punto y coma del final de la cuarta lnea, podemos ver
en la ventana de comandos los valores que va tomando la variable resultado, a medida que
se ejecuta el bucle for.
resultado
resultado
resultado
resultado

=
=
=
=

1
2
6
24

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

2. Introduccin a la Practica
Matlab es una herramienta que se utilizar como eje transversal para la resolucin y
comprobacin de resultados tericos presentados en clase. De la misma manera nos ser de
vital importancia para la resolucin de las prcticas, las cuales irn creciendo en complejidad
a medida que se avance en la asignatura.
Una vez revisados e interiorizados todos los conceptos descritos en el apartado anterior,
se proceder a realizar una serie de ejercicios en los que intervendrn muchos de los
conceptos y comandos descritos.
Esta primera prctica es de carcter introductorio y busca sentar las bases para la
utilizacin de este programa informtico en prcticas posteriores de mayor complejidad. El
problema planteado se basa en la utilizacin del bucle FOR para el clculo del factorial de
un nmero cualquiera; para ello se tendr que utilizar un script donde guardaremos el cdigo
de nuestro programa. El archivo que se cree tiene que tener forma de funcin, de tal forma
que ese se pueda llamar desde el Command Windows y se pueda reutilizar de forma
anidada en cualquier otro programa que se cree.

3. Objetivos de la practica

Familiarizacin con los comandos bsicos del programa Matlab


Comprender la metodologa bsica para programar en este entorno
Saber graficar e interpretar funciones mediante los comandos descritos
Utilizacin del bucle FOR como mtodo iterativo para la resolucin de problemas
matemticos bsicos.
Entender el concepto de script (.m) y como crear una biblioteca de funciones
Crear funciones que se puedan anidar dentro de otros programas

4. Equipos del puesto de trabajo


Se utilizarn las computadoras del laboratorio de Controles o en su defecto las del
laboratorio de informtica.

5. Programas utilizados para las practicas


Se utilizara el software Matlab rb2013 o en su defecto la versin ms reciente instalada
en los laboratorios de la facultad de ingeniera.

6. Normas de trabajo del laboratorio

Cada grupo de estudiantes es responsable del correcto uso de los equipos informticos
presentes en los laboratorios.
En caso de detectar el funcionamiento defectuoso de algn equipo se debe comunicar al
profesor encargado para ser corregido lo ms pronto posible.

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

El trabajo es por grupos de mximo 3 personas.


Todas las computadoras tiene internet, no obstante es para uso exclusivo de la
asignatura. Si algn estudiante lo usa para otros medios puede afectar a su nota de
prcticas.
No est permitido el ingreso de bebidas o comidas a la clase
El uso del celular (llamadas o mensajes) no est permitido; si algn estudiante reincide
en este hecho, puede repercutir en su nota de prcticas.

7. Ejercicios de evaluacin practica


I.

En este primer ejercicio se ver una sencilla aplicacin de los bucles for: Clculo
del factorial de un nmero mediante un bucle FOR.

Como sabemos el factorial de un nmero natural n es el producto de todos los nmeros


naturales desde 1 hasta ese nmero n. El factorial de 5, por ejemplo, es 12345=120.
Adems el factorial de 0 es 1. La funcin factorial se representa con una admiracin: n!
Para escribir la funcin lo ms conveniente es utilizar un bucle FOR, donde
realizaremos todas las iteraciones automticamente para calcular el factorial.
Se pide:
Cree una carpeta que se llame factorial y site dentro del directorio de trabajo de
Matlab.
Para este programa se supondr que todos los nmeros que se introducen como
argumento es natural y positivo.
El programa principal tiene que ser una funcin: function resultado=fact(n), de forma
que este se pueda llamar desde el la ventana de comandos de MATLAB.
Antes de realizar el programa: realizar el cmputo manual para un alcance de 5
iteraciones y comprobar que los resultados coinciden
Comentarios
Primera iteracin

n
5

Resultado=

resultado

i
1

Segunda iteracin

Resultado=

Nota: para crear una funcin y poder llamarla desde la ventana Command Windows de
MATLAB el archivo .m tiene que tener el mismo nombre que la funcin. Para utilizarla,
se escribir por ejemplo: >> fact (3).
Se tomaran las siguientes variables para programar la funcin:

n es el nmero entero del que se quiere calcular el factorial


i es el ndice del bucle for
Resultado es el valor del factorial n (valor de retorno de la funcin
fact es el nombre de la funcin

Prof. MSc. Ing. Marcos Ponce Jara

Universidad Laica
Eloy Alfaro de Manab

Anlisis Numrico

Ingeniera Electrica

II.

Escriba el cdigo del mismo programa pero que realice el factorial desde n hasta 1,
de -1 en -1.
El programa principal tiene que ser una funcin: function resultado=factDec(n), de
forma que este se pueda llamar desde el la ventana de comandos de MATLAB.

III.

Utilice el cdigo facDec ( ).


a) Modifquelo (cree otra funcin facDec2( )) para que en el caso de pasarle la funcin
vaca nos muestre el siguiente mensaje y resultado:
>> facDec2( )
No se ha introducido ningn argumento en la funcin
ans =
1

Nota: para este caso se tiene que utilizar la condicin IF antes de entrar en el bucle
FOR. Tambin se tiene que utilizar la palabra reservada nargin como condicin del
comando IF; la cual indica el nmero de valores pasados a la funcin como parmetros.
(consultar >> help if / help nargin / help return)
b) Ampli el programa anterior (cree otra funcin facDec3( )) para que en el caso de
pasarle la funcin con valores negativos nos muestre el siguiente mensaje y nos de como
resultado -1:
>> facDec3(-10)
El parmetro a introducir tiene que ser estrictamente positivo
ans =
1

Prof. MSc. Ing. Marcos Ponce Jara