Escolar Documentos
Profissional Documentos
Cultura Documentos
Anlisis Numrico
(Aplicaciones con MATLAB)
Programacin
con MATLAB
Instruccin For
Esta sentencia permite ejecutar de forma repetitiva un comando o grupo
de comandos varias veces. La forma general de un bucle o lazo for es:
for variable = expresin
instruccin 1
instruccin 2
instruccin n
end
El bucle siempre empieza con la expresin for y termina con end, e incluye
en su interior un conjunto de instrucciones. Dentro de la instruccin for
puede incluirse otras instrucciones de for generndose un for anidado,
como puede verse a continuacin:
N=3;
for I = 1:N,
for J = 1:N,
A(I,J) = 1/(I+J-1);
end
end
1 2
suma aij 3 4
i 1 j 1
5 6
n
cuadrada cubica
1.00000 1.00000
1.41421 1.25992
1.73205 1.44225
2.00000 1.58740
2.23607 1.70998
2.44949 1.81712
2.64575 1.91293
2.82843 2.00000
3.00000 2.08008
3.16228 2.15443
cuarta
1.00000
1.18921
1.31607
1.41421
1.49535
1.56508
1.62658
1.68179
1.73205
1.77828
Instruccin While
Esta instruccin o sentencia permite ejecutar de forma repetitiva un comando
o grupo de comandos un nmero determinado de veces mientras se cumple
una condicin lgica especificada. La sintaxis general de este bucle es:
while condicin
instrucciones
end
El bucle siempre empieza con la sentencia while seguida de una condicin, y
termina con end, e incluye en su interior todo un conjunto de instrucciones.
Ejemplo: Volumen de esfera cuyo radio, r, vara de 1 a 5
r=0;
while r < 5
r = r +1;
vol = (4/3)*pi*r ^ 3;
fprintf ('El radio es %g y el volumen es %g. \n',r,vol)
end
Instruccin If-end
La declaracin if-end se usa para cambiar la secuencia en que se ejecutan
las instrucciones, satisfaciendo algunas condiciones los valores de las
variables generados durante el programa. Esta instruccin tiene la forma:
if condicin
instrucciones
End
La condicin del if tambin puede contener operadores lgicos. Si la
condicin no se cumple, el programa ejecuta la instruccin despus de end. A
continuacin se presenta un ejemplo del Uso de if y end:
% El programa pide la calificacin para indicar si aprob o reprob un curso
calif = input ('Dame la calificacin:\n');
if calif >=10.5
fprintf ('Felicidades, ests aprobado')
end
if calif<10.5
fprintf ('Lo siento. Ests reprobado')
end
Instruccin If-else-end
El uso de else permite al programador el uso de un solo if en muchos casos
para ejecutar dos conjuntos de instrucciones. La forma del if-else-end es:
If condicin
Instrucciones 1
else
Instrucciones 2
end
Las instrucciones 1 se ejecutan si la condicin es cierta, y las instrucciones 2
si la condicin es falsa. Se ve que el if-else-end sustituye a dos if-end. A
continuacin se presenta un ejemplo de uso de if, else y end
% El programa pide la calificacin para indicar si aprob o reprob un curso
calif = input ('Dame la calificacin:\n');
if calif >= 10.5
fprintf ('Felicidades, ests aprobado')
else
fprintf ('Lo siento, ests reprobado')
end
Instruccin Elseif
Las sentencias if, al igual que las sentencias for, pueden ser
anidadas. Cuando se anidan varias sentencias if se utiliza la
sentencia elseif, cuya sintaxis general es la siguiente:
if condicin 1
instrucciones 1
elseif condicin 2
instrucciones 2
elseif condicin 3
instrucciones 3
.
elseif condicin n
instrucciones n
end
Instrucciones Switch-Case
La instruccin switch-case se usa cuando queremos verificar si una expresin
es igual a algn valor determinado. No se puede usar para verificar una
condicin como a>5 o b3. Sin embargo, encuentra aplicaciones en muchas
situaciones donde se requiere ejecutar declaraciones distintas dependiendo
del valor de una expresin. La sintaxis es
switch expresin (escalar o cadena)
case valor 1
instruccin 1
case valor 2
instruccin 2
.
otherwise
instruccin (ejecuta si no cumple ningn caso)
end
A continuacin se presenta un ejemplo de una funcin que devuelve 1.0, 1 u
otro nmero segn sea la entrada:
FUNCIONES
Las funciones especficos se definen mediante el comando
function. La sintaxis es la siguiente:
function parmetros de salida = nombre de la funcin(parmetros de entrada)
>> programa
Dame un entero n
-6
El nmero que me diste es negativo
>> programa
Dame un entero n
5
El factorial de 5 es 120.
>> programa
Dame un entero n
1.4
El nmero que me diste no es entero
function[x1,x2]=ecuacion2(a,b,c)
d=b^2-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
Al correr esta funcin obtenemos, para la ecuacin x2 + 2x + 3 =
0, resulta:
>> [x1,x2]=ecuacion2(1,2,3)
x1 =
-1.0000 + 1.4142i
x2 =
-1.0000 - 1.4142i
>> principal2
Dar valor de x:
15
x es mayor o igual a 0
Termina la corrida.
>> principal2
Dar valor de x:
0
x es mayor o igual a 0
Termina la corrida.
>> principal2
Dar valor de x:
-10
x es menor a 0
Termina la corrida.
Variables de funciones
Las variables del programa principal y de una funcin son
independientes aunque tengan el mismo nombre. En
general pueden tener distintos valores, a menos de que
sean declaradas como argumentos de la funcin.
Ejemplo 1: Verificar cmo se pasan las variables entre
subrutinas. Las funciones no tienen declaradas todas las
variables como argumentos de entrada o salida.
Para ello se crean los archivos: primero de la funcin
prueba.m y del programa principal.m
En la siguiente transparencia se presentan los respectivos
archivos:
>> principal1
Las variables antes de la funcin prueba1 son:
a = 50
b = 60
c = 70
Estoy dentro de la funcin prueba1
Las variables de la funcin prueba1 son:
a = 100
b = 180
c = 280
Saliendo de la funcin prueba1
De regreso al programa principal1
Las variables del programa principal1 son:
a = 50
b = 60
c = 70
Notamos que los valores de a = 50, b = 60 y c = 70 se pasan a la funcin,
ah se modifican. Al regresar al programa se mantienen en los valores
originales. Esto quiere decir que podemos pasar valores de variables de
un programa principal a una funcin, pero no a la inversa.
MANEJO DE ARCHIVOS
Los archivos de datos pueden ser creados por MATLAB o por algn otro
programa, permitiendo intercambiar datos entre estos programas. Por
ejemplo, se pueden crear datos con Excel y luego usados por MATLAB para
realizar clculos y graficarlos y viceversa. Una ventaja de usar archivos con
los datos de entrada/salida es que pueden ser almacenados y usados
nuevamente.
Despus de terminar de usar los datos de un archivo, este debe cerrarse con
el comando fclose que tiene la sintaxis:
status = fclose(fid)
Donde fid es un identificador (handle) del archivo que se acaba de abrir o
cerrar.
Accin
Abre el archivo existente para leer
Abre el archivo existente para leer y escribir
Abre el archivo existente o crea uno nuevo para escribir
Abre el archivo existente o crea uno nuevo para leer y escribir
Abre el archivo para escribir, aadiendo los nuevos datos al final
Abre el archivo para leer y escribir.
Significado
Error al abrir un archivo no existente
Entrada estndar, teclado abierto para escribir (r)
Salida estndar, ventana de comandos abierta para aadir
datos Error estndar; abierto para aadir datos al final
Dado que tanto MATLAB como EXCEL pueden leer y escribir datos en
archivos, es posible que los datos de un archivo creado por MATLAB puedan
ser ledos por EXCEL y viceversa. Para ello MATLAB puede crear archivos
de datos separados por comas (separadores o delimitadores) para que
EXCEL pueda leerlos. Al ejecutar, EXCEL abre el archivo y lee los datos
reconociendo que estos datos no fueron creados por Excel y que estn
delimitados por separadores.
Para que Excel pueda leer, datos generados por MATLAB, seleccionamos
Delimited y presionamos Next y en la ventana de dilogo especificamos la
coma como delimitador (el delimitador por omisin es el Tab). Antes de
presionar el botn de siguiente seleccionamos todos los datos, presionamos
finalizar y Excel importa los datos para procesarlos como Excel.
Para leer con MATLAB datos creados en EXCEL, el formato csv permite el
intercambio de datos entre distintos programas. Excel permite crear archivos
con esta extensin que, por lo tanto, pueden ser ledos por MATLAB,
usando: csvread ('archivo.csv')