Está en la página 1de 41

Programacin en

Ingeniera Elctrica
Rafael Guzmn Cabrera
E-mail:guzmanc@salamanca.ugto.mx
Para Tareas:
programacioniefimee@gmail.com

Horario
12:00-13:30 Lunes, Mircoles y
Viernes
Saln 206
Laboratorio de computo

IEI01.09 Programacin en Ingeniera


Elctrica
PRERREQUISITOS: Lenguaje de Programacin.

OBJETIVO
Al trmino del curso el alumno
deber dominar y conocer los
fundamentos bsicos de un lenguaje
de programacin de alto nivel,
orientado al tratamiento de clculo
matricial y visualizacin grfica de la
informacin como una herramienta
para todos los cursos de ingeniera.

Temario
1. Instalacin del programa.
2. Alcances y limitaciones.
3. Manejo de instrucciones bsicas.
4. Edicin de programas en lenguaje de alto nivel.
5. Utilizacin de funciones especiales.
6. Compilacin de archivos de bajo nivel y generacin
de libreras.
7. Uso de herramientas para la edicin de ventanas
para el manejo de archivos.
8. Ejemplos de aplicacin a la Ingeniera Elctrica.
9. Ejemplos de aplicacin a la simulacin.
10. Introduccin a las herramientas de aplicacin.

BIBLIOGRAFA:
Hanselman, D., Littlefield, Bruce, Mastering MATLAB:
A comprehensive Tutorial and Reference,
MATLAB Curriculum Series, Prentice-Hall, N. J., ISBN: 013-191594-0.Part-Enander, Eva, Sjoberg, Anders,
Meling, Bo, Isaksson, Pernilla,
The MATLAB Handbook, Addison-Wesley, 1996, ISBN:
0-201-877570.

Calificacin
Tareas y trabajo: 20%
Exmenes Parciales: 40 %
Proyecto final: 40
Es importante asistir PUNTUALMENTE a las
clases (se llevara un registro de asistencia)
Tareas:
programacioniefimee@gmail.com

INTRODUCCIN
Qu es Matlab?, MATrix LABoratory
MATLAB es un programa para realizar clculos
numricos con vectores y matrices. Como caso
particular puede tambin trabajar con nmeros
escalares, tanto reales como complejos. Una de las
capacidades ms atractivas es la de realizar una
amplia variedad de grficos en dos y tres
dimensiones. MATLAB.

Sitio Oficial
www.mathworks.com
Existe mucha informacin y
material.

De que se trata
Es un conjunto de productos
integrados para:

anlisis de datos
visualizacin
desarrollo de aplicaciones
simulacin
diseo
generacin de cdigo

Algunas caractersticas
Application
development
Tools
Toolboxes
Data Acquisition
and Access Tools

Simulink
Stateflow
Blocksets
Code Generation
Tools

Usos tpicos de Matlab


Clculo numrico
Desarrollo de algoritmos
Modelado, simulacin y desarrollo de
prototipos
Anlisis y visualizacin de datos
Construccin de grficas
Desarrollo de aplicaciones en distintas reas
cientficas y tecnolgicas

Caractersticas de
Matlab
Es un lenguaje de alto nivel
en un nico ambiente de
SistemaIntegra
abierto
software: rutinas de clculo,
visualizacin
y programacin
Permite
incorporar
nuevas
Posee extensiones
(Toolboxes)
funciones para su uso en
Colecciones
de
funciones
aplicaciones
particulares
Utiliza notacin
matemtica
standard
para resolver problemas
especficos

Introduccin_____________________________________

Los elementos bsicos del Matlab, como


cualquier otro lenguaje de programacin, son:
constantes, variables, operaciones, expresiones y
funciones.
Constante numricas:
Nmeros enteros: 2 35 -48
Nmeros reales: 2. -35.2 48.45
Mximo de 16 cifras significativas
Utilizando la letra E a continuacin de un
n con punto decimal [2.2250e-308
1.7e+308].
Nmeros complejos: 2+3i 4*j i,j=(-1)
Operaciones aritmticas elementales:
Suma: + Multiplicacin: * Exponenciacin: ^
Resta: Divisin: /
Primero exponenciaciones, luego divisiones y

Introduccin_____________________________________

Formatos: por defecto matlab tiene formato corto


pero se puede elegir entre los siguientes formatos.
>> format long (14 cifras significativas)
>> format short (5 cifras significativas)
>> format short e (notacin exponencial)
>> format long e (notacin exponencial)
>> format rat (aproximacin racional)
Variables predefinidas en Matlab:
i = (-1)
pi =
Inf=
NaN= clculos
indefinidos
eps = < n que + otro n=n coma flotante 2.22e16
date = valor de la fecha actual
rand = genera nmeros aleatorios [0 1]
realmin = <n+ realmax= >n+

Introduccin_____________________________________

Funciones de matlab:
nombre(argumento)
sqrt (x) raiz cuadrada
abs(x) mdulo de x
conj(z) conjugado de un complejo
real(z), imag(z) parte real e imaginaria de z
respectivamente
exp(x) calcula ex, siendo x real o complejo
sin(x) asin(x) [-/2 /2]
cos(x) acos(x) [0 ]
tan(x)
atan(x) [-/2 /2] angle(z) log(x) (en base e)
log10(x)
rats(x) rem(x,y) resto de x/y round(x) sign(x)
Comandos de ayuda:
help
lookfor
what ficheros .m y .mat del directorio actual

Introduccin_____________________________________

type nombre_fichero Muestra el contenido del


fichero
delete nombre_fichero Borra el fichero
cd cambia de directorio
pwd indica el directorio actual
which nombre_fichero india el directorio donde
esta
! Abre una ventana de MSDOS que se cierra
cuando volvemos a Matlab
startup.m fichero de arranque al ejecutar matlab.
Para guardar en un fichero los comandos que se
ejecutan en una sesin se pone
>> diary nombre_fichero
...
>> diary of

Introduccin_____________________________________

diary of
dir
type tema1.dia

VECTORES Y MATRICES
Las matrices son el tipo
fundamental de dato en Matlab.
A=[1 3 5; 6 9 2; 4 8 7]

A^2+3*A

A =

ans =
1
6
4

det(A)
ans =
5

3
9
8

5
2
7

42
86
92

79
142
164

61
68
106

MATrix LABoratory
-- datos son matrices
-- reglas del lgebra lineal

Vectores y matrices_______________________________

Funciones
vectores:

de

matlab

especficas

para

sum(v) suma
prod(v) producto
v` transposicin de vectores (filas columnas)
dot(v,w) producto escalar de vectores
cross(v,w) producto vectorial de vectores
[y,k]=max(v) valor mximo de las componentes de
un vector k indica la posicin, lo mismo para
min(v) valor mnimo

Vectores y matrices_______________________________

diag(A) Obtencion de la diagonal de una matriz.


sum(diag(A)) calcula la traza de la matriz A
diag(A,k) busca la k-sima diagonal.
norm(A) norma de una matriz, calcula el mximo de
los valores absolutos de los elementos de A
Generacin de matrices:
Generacin de una matriz de ceros, zeros(n,m)
Generacin de una matriz de unos, ones(n,m)
Inicializacin de una matriz identidad eye(n,m)
Generacin de una matriz de elementos aleatorios
rand(n,m)
Matrices con diagonal dada diag(v), diag(v,k)
[X Y] columnas, [X; Y] filas

Programacin en MATLAB
SENTENCIA IF
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else
bloque4
end

Programacin en MATLAB
SENTENCIA IF
Ejemplo:
if x==0
disp('x es igual a cero')
elseif x > 0
disp('x es mayor que cero')
else
disp('x es menor que cero')
end

Programacin en MATLAB
SENTENCIA FOR
for i=limiteInf:step:limiteSup
sentencias
end
o bien,
for i=vectorValores
sentencias
end

Programacin en MATLAB
SENTENCIA FOR
Ejemplo:
for i = 0:2:10
disp(2^i)
end

Programacin en MATLAB
SENTENCIA WHILE
while condicion
sentencias
end

Programacin en MATLAB
SENTENCIA WHILE
Ejemplo
r=input('Ingrese el radio o cero para
terminar ');
while r > 0
sup=pi*r^2;
fprintf('Superficie = %.2f\n',sup)
r=input('Ingrese el radio o cero para
terminar ');
end

Programacin en MATLAB
SENTENCIA BREAK
Hace termina la ejecucin del bucle ms
interno
Ejemplo
while 1
r=input('Ingrese el radio o cero para
terminar ');
if r <= 0; break; end;
sup=pi*r^2;
fprintf('Superficie = %.2f\n',sup)
end

Desde Matlab 5 se ha incorporado la estructura


switch que permite realizar bifurcaciones en un
programa atendiendo al resultado de una expersin
switch expresion
case expresion_0
comandos_0 que deben ejecutarse
case expresion_1
comandos_1 que deben ejecutarse
case expresion_2
comandos_2 que deben ejecutarse
otherwise
comandos escoba que deben ejecutarse
end

Lectura y escritura en ficheros externos


La lectura y escritura de informacin en ficheros
externos se lleva a cabo esencialmente con los
comandos
fread y fscanf para lectura
fprintf y fwrite para escritura
El procedimiento general en todos los casos es:
-Abrir el fichero del que se desea leer o en el cual
deseamos escribir.
-Colocar el puntero de lectura o escritura en la
posicin deseada.
-Leer o escribir las variables.
-Cerrar el fichero.

-Abrir el fichero el comando es fopen y su estructura


ident=fopen(nombre de fichero)
En ident se guarda un nmero de identificacin si es
-1 es que el fichero no se ha podido abrir.
-Cerrar ficheros el comando es fclose y su estructura
fclose(ident)
fclose(all)
verif=fclose(all)
-Posicionamiento del puntero.
1.-Posicionar el puntero al inicio del archivo con
nmero de identificacin ident:
frewind(ident)
2.-Posicionar el puntero dentro de un archivo
test=fseek(ident,posi,origen)

Comandos de entrada salida


input: nos permite introducir datos
variable=input(mensaje a pantalla);
disp: muestra un texto por pantalla
disp(El algoritmo no ha convergido)
menu: genera un men que permite al usuario
elegir entre distintas opciones
opcion=menu( titulo del
mensaje,opcion1,...opcionp )
error: informa de la existencia de un error y
detiene la ejecucin del programa devolviendo el
control al teclado

Archivos de extensin .m

Son archivos de textos que se utilizan


para definir funciones y scripts.
Puede utilizarse cualquier editor de
texto, pero MATLAB posee uno
especializado con facilidades para
depuracin.
Pueden invocarse desde la ventana de
comandos o desde otros scripts o
funciones.
Estarn accesibles aquellos scripts y
funciones de los directorios agregados
en el path de MATLAB y los del directorio
corriente.

Definicin de Scripts

Los scripts son archivos que contienen una


sucesin de comandos anloga a la que se
tecleara en la ventana de comandos.
Las variables definidas en los scripts son globales y
permanecen en memoria al terminar la ejecucin
del script

Crear el script prueba.m


x=[-pi:0.1:pi];
y1=sin(x); y2=cos(x);
plot(x,y1,x,y2);

Desde la ventana de comandos tipear


prueba <ENTER>

Verificar el workspace

Ejemplos

Ejemplo 1: Calcular la suma de


los n primeros trminos de la
sucesin 1, 2x, 3x^2, 4x^3, ...

Ejemplo 1: Calcular la suma de los n primeros


trminos de la sucesin 1, 2x, 3x^2, 4x^3, ...
n=input('Cuntos trminos quieres sumar? ');
x=input('Dame el valor del numero x ');
suma=1;
for i=2:n
suma=suma+i*x^(i-1);
end
disp('El valor pedido es')
disp(suma)

Ejemplo 2: Decidir si un nmero


natural es primo.

Ejemplo 2: Decidir si un nmero natural es primo.


n=input('Nmero natural que deseas saber si es primo ');
i=2;
primo=1;
while i<=sqrt(n)
if rem(n,i)==0 % Resto de dividir n entre i
primo=0;
break
end
i=i+1;
end
if primo
disp('El nmero dado es primo.')
else
disp('El nmero dado no es primo.')
disp('De hecho, es divisible por:')
disp(i)
end

Tarea (para el prximo


lunes):
Solucin a la ecuacin de segundo grado
rea de figuras geomtricas (circulo,
triangulo,.
Suma de los primeros 100 trminos de la
serie de Fibonacci
Convertir grados centgrados a
Fahrenheit y Fahrenheit a centgrados
Leer y hacer ejercicios de este archivo

También podría gustarte