Documentos de Académico
Documentos de Profesional
Documentos de Cultura
An 03 Programacion Con Matlab PDF
An 03 Programacion Con Matlab PDF
Anlisis Numrico
(Aplicaciones con MATLAB)
Programacin
con MATLAB
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
Ejemplo 1: Suma de los 10 primeros nmeros enteros
suma = 0;
for i =1:10
suma = suma +i;
end
fprintf ('La suma es: %g',suma)
La suma es: 55
clear,clc
disp( ' N cuadrada cubica cuarta ' )
for N=1:10
fprintf(' \n %10.0f ',N)
for R=2:4
raiz(N)=N^(1/R);
fprintf(' %8.5f %8.5f %8.5f\n ',raiz(N))
end
end
while condicin
instrucciones
end
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
if condicin
instrucciones
End
If condicin
Instrucciones 1
else
Instrucciones 2
end
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
La sintaxis anidada anterior es equivalente a la sintaxis sin anidar siguiente:
if condicin1
instrucciones 1
else
if condicin2
instrucciones 2
else
if condicin3
instrucciones 3
end
end
end
Instruccin Return
function p = fun1(x)
p = x^3-2*x+cos(x);
% Funcin fact_rec.m
function x = fact_rec(n)
if n ~=1
x = n*fact_rec(n-1);
else
x = 1;
end
>> fact_rec(5)
ans =
120
Ejemplo 4: La funcin factorial(n) ahora puede ser parte de otro programa o
puede ser usada repetitivamente sin necesidad de reescribir el cdigo cada
vez que la usemos.
>> 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
Ejemplo 5: Solucin de una ecuacin de segundo grado: ax2 +
bx + c = 0; cuyas salidas son: x1 y x2:
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);
>> [x1,x2]=ecuacion2(1,2,3)
x1 =
-1.0000 + 1.4142i
x2 =
-1.0000 - 1.4142i
Ejemplo 6: Uso de una funcin para ver si un nmero es > 0 < 0:
% Programa principal2.m
x = input ('Dar valor de x: \n');
y = mayor_menor (x);
fprintf ('Termina la corrida. \n')
% Funcin mayor_menor.m
function y = mayor_menor (x)
if x < 0
fprintf ('x es menor a 0 \n')
y = x;
return
else
fprintf ('x es mayor o igual a 0 \n')
end
y = x;
>> 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
>> principal
Las variables del programa principal son:
a = 50
b = 60
c = 70
Entrando a la funcin prueba
Estoy dentro de la funcin prueba
Las variables de la funcin prueba son:
a = 10
b = 20
c = 30
Saliendo de la funcin prueba
Estoy de regreso en el programa principal
Las variables del programa principal son:
a = 50
b = 60
c = 70
Ejemplo 2: Paso de variables de un programa principal a una
funcin
%Funcin prueba1
function y = prueba1(a,b,c)
a = a*2;
b = b*3;
c = c*4;
y = 5;
fprintf ('Estoy dentro de la funcin prueba2 \n')
fprintf ('Las variables de la funcin prueba2 son: \n a=%g \n
b=%g \n c=%g \n',a,b,c)
fprintf ('Saliendo de la funcin prueba2 \n')
Ahora usamos esta funcin dentro del siguiente programa
principal1:
%Archivo principal1
a = 50;
b = 60;
c = 70;
fprintf('Las variables antes de la funcin prueba2:\n a=%g\n
b=%g \n c=%g\n', a, b, c)
p = prueba1(a,b,c);
fprintf('De regreso al programa principal \n');
fprintf('Las variables del programa principal son: \n a=%g \n
b=%g \n c=%g \n', a, b, c)
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.
Cuando se abre un archivo este identificador empieza con el valor 3 ya que
los identificadores de -1 a 2 tienen un significado especfico para MATLAB.
Cuando se cierra el archivo la variable status nos da otro identificador para
saber si el archivo se cerr correctamente; un status = 0 indica que se cerr
correctamente y un status -1 indica que no se pudo cerrar el archivo.
Para ver lo escrito en el bloc de notas, primero cerramos los archivos con:
>>fclose(3);fclose(4);
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')