Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CLASE 3
Herramientas fundamentales
Leer TF
TC= (TF-32)*5/9
Visualizar Tc
FIN
EJEMPLO: DIAGRAMA
GENERALIZADO DE
BLOQUES
COMENZAR
Leer TF
TC= (TF-32)*5/9
Visualizar Tc
FIN
ESTRUCTURA DE
DIAGRAMACIN
a) Estructura secuencial
b) Estructura alternativa
c) Estructura repetitiva
Resolucin por estructura
secuencial
Resolviendo la ecuacin cuadrtica A X2 + B X + C = 0,
podremos dar ejemplos de DDB que incluyan cada tipo de
estructura. COMENZAR
Leer A, B, C
2
B + B 4 AC
X 1R =
2 A
2
B B 4 AC
X 2 R =
2 A
X1R, X2R
FIN
Resolucin por estructura
alternativa
Para una terna dada de coeficientes A, B, C, este DDB
considerar la posibilidad de que el discriminante pueda
tener cualquier valor.
Resolucin por estructura
repetitiva
En este caso, se considerarn N ternas de coeficientes, A,
B y C..
DIAGRAMAS DE BLOQUES UTILIZANDO
VECTORES O MATRICES
Los arreglos (vectores, matrices) contienen elementos relacionados,
designados con un nombre comn. Por ejemplo, el SMN podra proveer
diariamente las temperaturas mnimas y mximas de las Capitales Provinciales
y de la Ciudad de Bs As, con dos vectores Tmin, y Tmax, c/u de 24 elementos.
Si quisiramos sacar el promedio de esos valores, el DDB sera:
DIAGRAMAS DE BLOQUES CON LAZOS
REPETITIVOS ANIDADOS
Suponga Ud que las temperaturas de cada capital provincial de Argentina
vienen dadas en forma horaria. Tendremos entonces la matriz, T(i, j), donde i =
1..24, y j = 1..24. Si se quiere sacar un promedio general, que incorpore todos
los datos, podemos programar la siguiente estructura repetitiva:
ETAPAS DE LA RESOLUCION DE UN
PROBLEMA MEDIANTE COMPUTADORA
1. Anlisis del Problema
2. Obtencin del mtodo de resolucin
3. Diagramacin del mtodo (DDB)
4. Codificacin en lenguaje de alto nivel (Programacin
propiamente dicha)
5. Eliminacin de errores (debugging)
6. Ejecucin del programa y obtencin de resultados.
Representacin grfica
7. Anlisis de los resultados. Si hay errores conceptuales,
volver a 1) , 2 4) . Si no, seguir en 8)
8. Refinamiento del programa (Mejoras en el diseo,
legibilidad, documentacin, actualizacin)
PLATAFORMA COMPUTACIONAL
MATLAB
1) El sistema MATLAB consta de cinco partes principales:
Entorno de desarrollo. Este representa el conjunto de herramientas
y recursos que permiten el uso de las funciones y archivos MATLAB.
Incluye el escritorio MATLAB y la ventana de comandos (Command
Window), el historial de comandos, y ventanas de visualizacin
(browsers) para ver la ayuda (help), la carpeta de trabajo, los
archivos, y la ruta de acceso a informacin (search path).
E = [ 3, 5, 10, 0; 0, 0 , ...
0, 3; 3, 9, 9, 8 ] % COMA Y TRES PUNTOS PARA CONTINUAR
UNA LINEA.
T = [ 4, 24, 9 ]
Si se usa un signo de dos puntos para separar dos enteros, el operador de dos puntos
generara todos los enteros entre los dos enteros especificados.
tecle:
Tambin se usan los signos de dos puntos para separar tres nmeros, el operador de
dos puntos generar valores entre el primer nmero y el tercero, usando el segundo
nmero como incremento:
tecle:
Los vectores y las matrices se multiplican de acuerdo a las reglas del lgebra:
tecle:
b*c
Este resultado ilustra un error comn en Matlab. Las matrices deben ser
conmensurables para ser multiplicadas utilizando el operador *. La
premultiplicacin de un vector rengln de 1 por 3 como c por un vector rengln
de 1 por 3 como b no esta definida. Sin embargo si c se transpusiera a un
vector columna 3 por 1, se definira la multiplicacin. La transposicin se
efecta con el operador .
tecle: c
Operaciones elemento por
elemento
A menudo es muy til multiplicar dos vectores o matrices de la misma forma,
elemento por elemento en vez de utilizar las reglas usuales de la
multiplicacin de matrices. Ese tipo de multiplicacin se denomina
multiplicacin del arreglo en Matlab y se lleva a cabo utilizando el operador .*
Las operaciones elemento por elemento, u operaciones de arreglos, no slo
se aplican a operaciones entre dos matrices del mismo tamao, si no
tambin a operaciones entre un escalar y un no escalar.
A = [ 4, 3, 2, 4, 6 ];
C = 3.*A
G = A./5
Despus guarda este cdigo en el mismo block de notas en la parte superior ( file save
en el drive e: pendiente.m si es memoria USB) con el nombre pendiente.m, est nombre
de archivo se convierte en un comando de Matlab con el nombre pendiente.
Ejectalo en la pantalla de comandos llamndolo slo con su nombre pendiente sin la
extensin.m (antes de llamarlo recuerda cambiarte de directorio del C: al e: con la
instruccin cd e: si es el caso) .
Este archivo .m puedes llevarlo a otra computadora que tenga el programa matlab y
ejecutarlo .
FUNCIONES
MATLAB provee excelentes funciones para grficas en una y dos dimensiones.
Veamos un par de ejemplos sencillos. Suponga que queremos trazar la grfica
de la funcin
y=t^2*e(-t.^2);
Esto lo podemos lograr con las instrucciones:
Tecle:
t=[-10:.1:10]; % La primera instruccin divide el intervalo
[-10,10]en subintervalos de largo 0.1
y=t .^2 .*exp(-t.^2); % Esta lnea evala la funcin en los puntos.
plot(t,y,'linewidth',4),grid % Grafica la funcin.
FUNCIONES
Supongamos ahora que queremos dibujar una superficie:
Tecle:
x=-10:0.5:10; %Las primeras dos
instrucciones dividen los ejes de
x" y "y" en subintervalos de largo
0.5.
y=x;
[X,Y]=meshgrid(x,y); %la tercera instruccin genera
una rejilla en el conjunto [-10,10]
x [-10,10] con cuadraditos de
lados 0.5 ,
Z=X.^2.*exp(-Y.^2); % La cuarta instruccin evala la funcin
en los puntos de la rejilla, y finalmente
trazamos la superficie con surf.
surf(X,Y,Z),title('Grafica de superficie')
GRAFICAS LINEALES Y
LOGARTMICAS
La mayor parte de las grficas que generamos dan por hecho que los ejes x
vs. y se dividen en intervalos equiespaciados; estas grficas se llaman grficas
lineales. Una escala logartmica (de base 10) es til cuando una variable
abarca varios rdenes de magnitud.
Tecle
t=[-1:.005:1];
f=1;
w0=2*pi*f;
x=1.5*ones(size(t));
for i=1:100;
x=x+((-1)^(i+1))*(1/i)*sin(i*w0.*t);
end
plot(t,x,'r','linewidth',2), grid
Graficas usando bucles
Una ms
t=[-2:0.001:2];
x=0.25*ones(size(t));
for m=1:2:99
x=x+(-1)^((m-1)/2)*1/(m*pi)*exp(i*m*pi*t);
end
plot(t,x,'r','linewidth',2),grid