Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Int Prog Matlab
Int Prog Matlab
=
1 1 2
1 4 5
2 0 1
A , y
=
8
4
12
B .
En el la ventana de comandos esto queda
>> A=[1,0,2;5,4,1;-2,1,-1]
IMPORTANTE
El nombre de la funcin debe coincidir con el nombre de archivo M con el cual se la
guarda. De no hacer esto, podran existir errores de directorio y/o de ejecucin.
Figura 5. Ejemplo de definicin de una funcin.
lgebra II Introduccin a la Programacin en MatLab
5 Ricardo Gustavo Miranda
A =
1 0 2
5 4 1
-2 1 -1
>> B=[12,4,-8]'
B =
12
4
-8
>> solucion(A,B)
ans =
0.5714
-1.1429
5.7143
Verificndose que:
>> A*ans
ans =
12
4
-8
Como puede verse, esta funcin siempre devuelve una solucin, la cul puede no ser
correcta si estamos ante un sistema incompatible.
Tampoco se consideran casos de indeterminabilidad.
Adems, y este es tal vez el error ms grande, no se toma en cuenta el hecho de que la
matriz A puede no ser ampliable con el vector de trminos independientes B.
Con estas consideraciones, se puede concluir que este programa no es til, o no est
completo.
Consigna:
Ejecutar el algoritmo con otras matrices y vectores de trminos independientes.
Investigar sobre el funcionamiento de la instruccin size.
Realizar algunos casos de prueba con sistemas de ecuaciones incompatibles e
indeterminados.
3. Comentarios
Una de las herramientas ms tiles para los programadores son los comentarios.
Mediante stos, se puede hacer ms legible el cdigo fuente, estructurado y mantenible.
Los comentarios se introducen con el smbolo %; cuando este smbolo aparece, todo
lo que sigue a partir de l hasta el final de la lnea se considera como un comentario.
Todo lo que sea un comentario dentro de un programa, es simplemente ignorado por el
intrprete.
lgebra II Introduccin a la Programacin en MatLab
6 Ricardo Gustavo Miranda
Adems de las utilidades antes mencionadas, los comentarios en MatLab se usan para
crear el archivo Help de una funcin.
El archivo Help de una funcin es una especie de Leme que indica el funcionamiento
bsico de la funcin, as como su definicin y los argumentos que puede recibir.
Para definir un archivo Help, o simplemente Help, de una funcin o un archivo de
comandos, se escribe como comentario todo lo que se quiere que este Help contenga,
justo despus de la definicin de la funcin, para el caso de los archivos de funcin; o al
inicio del archivo, en los archivos de comandos. El final del Help de un archivo se
marca con una separacin mediante una lnea en blanco.
Ejemplo: Vamos a modificar el programa antes escrito, e introduciremos un Help que
indique que es lo que el programa hace, y cul es la forma correcta de ser convocado.
En la figura 6 puede verse como en la lnea 7 se encuentra la separacin antes
mencionada (lnea en blanco), la cul establece el final del archivo Help de Solucin.m.
Consigna:
Convocar al archivo Help de la funcin modificada y extraer conclusiones sobre
su funcionamiento.
Figura 6. Uso de los comentarios para crear el Help para un archivo M.
lgebra II Introduccin a la Programacin en MatLab
7 Ricardo Gustavo Miranda
4. Valores, Operadores y Expresiones Booleanas
Las valores booleanos, en general, slo pueden tomar dos valores: Verdadero o Falso
(True y False en los lenguajes de programacin).
MatLab no maneja los valores True y False para este tipo de expresiones, sino que
representa a True con un 1, y a False con un 0.
Los operadores de comparacin son operadores que devuelven un valor booleano.
Estos operadores se listan a continuacin:
<: Menor que
>: Mayor que
<=: Menor o igual que
>=: Mayor o igual que
~=: Distinto que
==: Igual que
Existen tambin los operadores que trabajan directamente sobre los valores booleanos,
para devolver otro valor booleano. Estos se conocen como operadores booleanos, y
aparecen a continuacin:
&: y lgico (And)
|: lgico (Or)
~: no lgico (Not)
Consigna:
En la Command Window del MatLab escribir las siguientes lneas y sacar
conclusiones:
1. 23==23
2. 51~=51
3. 0&1
4. ~0
Las expresiones booleanas son expresiones cuyo resultado es un valor booleano. De
esto puede deducirse que en una expresin booleana intervienen operadores booleanos y
de comparacin.
Consigna:
En la ventana de comandos escribir las siguientes sentencias y extraer
conclusiones:
1. (23>25)|(23<25)
2. (23>22)&(23<25)
3. (29==71)|1
4. (29<71)|((31==30)&(25==26))
5. ((29<71)|(31==30))&(25==26)
Explicar la diferencia entre el punto 4 y el punto 5.
Investigar o desarrollar otra forma realizar las operaciones booleanas, definiendo
mediante el anillo de las clases residuales mdulo 2.
lgebra II Introduccin a la Programacin en MatLab
8 Ricardo Gustavo Miranda
5. Estructuras de control
5.1 Bifuracciones
La estructura bsica para la bifurcacin es el ifthenelseend. En MatLab, se escribe
if <condicin>
<acciones a realizar por respuesta afirmativa>
else
<acciones a realizar por respuesta negativa>
end
En donde <condicin> es un valor, expresin, o funcin booleana.
Una forma de ampliar esta estructura es haciendo uso del elseif. Esta palabra permite
hacer varias evaluaciones, y, por lo tanto, obtener ms de dos posibles alternativas.
Abajo se muestra la sintaxis para el uso del elseif.
if <condicin 1>
<acciones a realizar para condicin 1>
elseif <condicin 2>
<acciones a realizar para condicin 2>
else
<acciones a realizar si ninguna condicin se cumple>
end
Ejemplo:
Vamos a continuar mejorando la funcin solucin planteada haciendo uso de los
comandos if... thenelseend.
Puede verse claramente que en la funcin nunca se controla el hecho de que la matriz A
tenga la misma cantidad de filas que el vector de trminos independientes B; por lo
tanto agregamos un pequeo control que monitoree que se cumpla esta condicin.
Adems, tenemos que vigilar que el sistema sea compatible determinado para obtener la
solucin correcta.
Luego, pediremos que el rango de la matriz A coincida con el rango de la ampliada, as
como con el nmero de incgnitas.
Estas modificaciones sobre la funcin pueden apreciarse en la figura 5.
Consigna:
Ejecutar la funcin con la nueva modificacin desde la ventana de comandos para
valores vlidos e invlidos de matrices A y B. Extraer conclusiones:
1. Qu devuelve el programa al ingresar dos matrices con el mismo nmero de
filas?
2. Qu devuelve el programa el ingresar dos matrices con distinto nmero de
filas?
3. Qu devuelve el programa al ingresar una matriz de coeficientes
correspondiente a un sistema de ecuaciones incompatible?
4. Qu respuesta se obtiene ante un sistema que admite infinitas soluciones?
5. Cmo funciona el comando size dentro del programa?
6. Cmo funciona el comando error dentro del programa?
lgebra II Introduccin a la Programacin en MatLab
9 Ricardo Gustavo Miranda
5.2 Multifurcacin (Switch)
La sentencia switch se usa para crear una estructura Case de control como la que se
muestra en la figura 6.
Esta estructura puede entenderse como varios elseif anidados, con la diferencia de que
en la estructura case no se controlan expresiones booleanas, sino valores de una
determinada expresin.
Expresin a evaluar
Valor 1 Valor 2 Valor N
Sentencias 1 Sentencias 2 Sentencias N
Figura 8. Esquema de una estructura Case genrica.
Sentencias en
otro caso
Figura 7. Funcin Solucin con el control implementado
lgebra II Introduccin a la Programacin en MatLab
10 Ricardo Gustavo Miranda
Para llevar este esquema a MatLab, se utiliza la siguiente sintaxis:
switch <Expresin a evaluar>
case <Valor 1>
<Sentencias 1>
case <Valor 2>
<Sentencias 2>
case <>
<>
case <Valor N>
<Sentencias N>
otherwise
<Sentencias en otro caso>
end
5.3 Estructura For
En MatLab, la forma universal de la estructura for es:
for <Variable> = <Arreglo de elementos>
<Sentencias>
end
La variable tomar el valor de cada columna y ejecutar las sentencias definidas, hasta
llegar al final del arreglo.
En los casos particulares para los cuales ser usada esta instruccin, el arreglo de
elementos no es ms que un vector de una fila y N columnas; por lo tanto, la variable
slo tomar valores escalares, como en el ejemplo de cdigo que sigue:
for i=1:N
<Sentencias>
end
Aqu, el arreglo, o vector, est dado por 1:N, es decir, una matriz de la forma
[1, 2, 3,, N].
Ejemplo:
A continuacin se presenta un pequeo ejemplo del uso de esta instruccin. El
algoritmo busca un elemento dentro de un vector que recibe como parmetro.
Para este sencillo algoritmo no se consideraron todos los posibles casos, sino que se lo
presenta ms bien a modo de ilustracin del funcionamiento del comando For.
En la figura 9 aparece el programa, con su correspondiente Help, y algunos comentarios
que explican algunas variables.
lgebra II Introduccin a la Programacin en MatLab
11 Ricardo Gustavo Miranda
5.4 Estructura While
Para definir una estructura WhileDose usa la siguiente sintaxis:
while <Condicin>
<Sentencias>
end
Figura 9. Funcin Buscar.