Você está na página 1de 147

Ing.

Teddy Negrete Pgina 1




SEMINARIO DE MATLAB BSICO.
MANUAL DE PRCTICAS.
Marzo Abril 2011.
Polticas del Curso y Plan de Evaluacin:
Los participantes del seminario se comprometen a:
Asistir puntualmente al curso, con un atraso mximo de 15 minutos.
Asistir por lo menos al 50% del curso.
Participar y resolver las prcticas planteadas en el manual.
Utilizar correctamente el internet en el laboratorio.
Atender en todo momento las explicaciones del seminario.
No chatear, ni utilizar las redes sociales en las clases del seminario.
Las actividades realizadas se evaluarn as:
Asistencia puntual a clases 30%.
PRCTICAS desarrollada en clases 20%.
TALLERES en el Laboratorio 20%.
Deber FINAL del curso 30%.
Metodologa del seminario:
La modalidad del curso ser tericoprctico dictado a un mximo de 20
personas, con una duracin mnima total de 32 horas, haciendo uso de
herramientas de proyeccin, pizarra de tiza lquida y computadoras.
La parte terica se desarrollar en forma paralela con la prctica, puesto que se
elaboraran ejemplos y ejercicios prcticos. Parte de las tareas se desarrollarn
en el Laboratorio, en las horas correspondientes al curso, a manera de TALLER.
Se dispone de un Manual Digital de Prcticas y si la Direccin de Carrera
lo considera, ser impreso. En este manual se expone una ligera base
conceptual de cada tema, ejemplos para las prcticas y ejercicios para los
talleres a realizar.
El curso se desarrollar dando a conocer una visin global del software como un
soporte directo para la resolucin de problemas, las capacidades y los alcances
que tiene alrededor de varias ciencias, principalmente las de ingeniera.
Las bases conceptuales se proyectaran en un archivo de presentacin entregada
a los estudiantes en forma digital. Se proyectar, se explicar y se ejecutarn
algunos ejemplos que estn en el Manual de Prcticas y que ser
entregado a cada estudiante del curso.

Ing. Teddy Negrete Pgina 2


En general nos referiremos a una PRCTICA aquel programa o problema que
est desarrollado en el manual y el estudiante tiene que analizarlo, comentarlo
o confirmar los resultados que proporciona.
NORMA PARA LA EJECUCIN DE LAS PRCTICAS:
1. Si se hace referencia solo a un comando, operacin o funcin, esta debe
ser ejecutada en la lnea de comandos.
2. Si se hace referencia a un bloque, ejecute el bloque indicado, sealando
desde %inicio de bloque hasta %fin de bloque.
3. Algunas veces se deja una lnea con el smbolo % dentro del bloque para
entender la programacin, pero igualmente se ejecuta todo el bloque.
4. En algunos fragmentos de los programas se han colocado comentarios
para que los agregue en su archivo *.m, de tal manera que registre
definiciones, observaciones o detalles importantes sobre el tema.
5. Generalmente se asocia un NMERO a cada archivo *.m, el mismo que
tiene un NOMBRE CARACTERSTICO, que se refiere al tema tratado en
ese numeral.
NORMA PARA LA PRESENTACIN DE LAS PRCTICAS:
1. Cada estudiante debe realizar las prcticas diarias y sern presentadas
semanal o quincenalmente, en forma individual.
2. En el Cronograma de Actividades se establece la Fecha Mxima en la que
se receptarn las PRCTICAS.
3. Como una gua, se indica paso a paso lo que el estudiante debe realizar
para presentar y entregar una prctica. Por ejemplo, si el estudiante va a
desarrollar la PRCTICA_3, debe escribir:
PRCTICA # 3 MATLAB.
FECHA MXIMA DE ENTREGA: LUNES, 31 de FEBRERO del 2011.
1. Lea el Manual de Prcticas y consulte con la Ayuda de MATLAB lo que no ha
quedado claro. Con respecto a los temas de las pginas 11, 12, 13 y 14.
2. Del Manual de Prcticas, realizar los siguientes archivos:
a. #5 tiempo.m pgina 11 Tema: Tiempos de Ejecucin.
b. #6 logicas.m pgina 13 Tema: Variables Booleanas.
3. Ejecute en MATLAB, cada BLOQUE de instrucciones correspondientes a un
archivo *.m.
4. Comente lo que realiza cada BLOQUE de instrucciones de cada archivo, en el
mismo. Al finalizar el archivo realice un comentario o una conclusin general
sobre el tema tratado.

Ing. Teddy Negrete Pgina 3


5. Imprima y entregue en clases, los archivos comentados con la explicacin de
la ejecucin de cada bloque y de la conclusin general por archivo *.m.
6. Cree una carpeta llamada con SU_NOMBRE_PRCTICA_#, por ejemplo.
Creamos la carpeta con el nombre NEGRETE_TEDDY_Pn, esto significa que
son los archivos de la Prctica # n, del estudiante Teddy Negrete.
7. Dentro de la carpeta creada colocamos los archivos *.m que ha comentado
la ejecucin y los archivos o directorios que se crean en la CARPETA DE
TRABAJO DE MATLAB, durante la ejecucin, como constancia de haber
realizado las ejecuciones.
8. Al finalizar todas las ejecuciones y comentar todos los archivos ya guardados
en la carpeta de trabajo creada, proceda a EMPAQUETARLA, en cualquier
formato disponible en la internet. No cambie el nombre del archivo
empaquetado, por omisin el nombre es el mismo de la carpeta, es decir
SU_NOMBRE_PRCTICA_#.zip.
9. Enve adjuntando al mensaje el archivo empaquetado, a la direccin de
correo electrnico: tnegrete@ups.edu.ec, colocando como ASUNTO DEL
MENSAJE, la asignatura, paralelo, nmero de la prctica y si su correo usa
algn alias que no identifica su nombre, entoces debe colocarlo en el
ASUNTO, o en el contenido del mensaje envado.
10. Tanto el documento impreso como el archivo digital enviado al correo
deber ser entregado hasta la FECHA MXIMA DE ENTREGA.
NORMA PARA EL DESARROLLO Y PRESENTACIN DE LOS TALLERES:
1. Los TALLERES son Ejercicios Propuestos, planteados en el Manual de
Prcticas, que se deben realizar en forma individual o en equipos de dos
estudiantes.
2. En general son archivos *.m que satisface el requerimiento planteados en
los Ejercicios Propuestos.
3. Se debe adoptar la misma norma utilizada en las PRCTICAS para la
presentacin de este trabajo (TALLER), con la diferencia que debe
realizar un solo archivo *.m, por cada Taller Resuelto.
4. Si la ejecucin de los Ejercicios del Taller generan carpetas o archivos,
debe agregarlos a su carpeta empaquetada de trabajo.
5. Los archivos *.m que resuelven los Ejercicios del Taller tambin deben
ser impresos igualmente como se realiz con las Prcticas.
6. En el Cronograma de Actividades se establece la Fecha en la que se
receptaran los TALLERES.


Ing. Teddy Negrete Pgina 4


NORMA PARA EL DESARROLLO DEL DEBER FINAL:
Polticas de la Elaboracin:
Plantear un tema o problema que sea de su preferencia: matemtico,
estadstico, elctrico, electrnico o de otra rea del conocimiento.
En un documento impreso, coloque el nombre del tema o problema y
explique el objetivo de utilizar MATLAB para resolverlo. Justifique su
complejidad con un soporte terico sobre las soluciones del problema o
una base cientfica de tema relacionados.
Como gua del DEBER FINAL tenemos, (PROBLEMA): La elaboracin de
un programa que ingrese una funcin peridica f(t) y solicite el nmero
de armnicos N que utilizar para encontrar la representacin de
FOURIER. Mostrar una funcin con los N armnicos, su grafico en la
serie aproximada y su grfico en la variable continua real.
Como gua del DEBER FINAL tenemos, (TEMA): El tema tambin puede
ser de investigacin y desarrollo, por ejemplo: La utilizacin de TOOLBOX
diseados por MATHWORKS o terceros en la resolucin de un problema
particular, o la ejecucin de archivos *.m con la utilizacin de programas
realizados en GUIDE o SIMULINK.
Solicitar la aprobacin del tema o del problema hasta la segunda semana
de clases.
Polticas de la Presentacin:
Puede ser realizado en forma individual o entre dos estudiantes, despus
de la aprobacin del tema.
El formato de presentacin IMPRESA ser en documento anillado A4, lo
concerniente a los archivos *.doc, *.m, *.mdl y adicionales que considere
necesarios.
El formato de presentacin DIGITAL ser en DVD (no en PENDRIVE),
todos los archivos del trabajo, en su formato original, descomprimir si
alguno esta empaquetado.
Fecha mxima de entrega: El penltimo da de clases. Aunque la revisin
se la realizar en la ltima semana del seminario.
Polticas de la Evaluacin:
[5 puntos] Desarrollo y explicacin analtica del tema en un documento
en Ms Word, archivo *.doc
[10 puntos] Desarrollo (con documentacin del programa) utilizando
MATLAB o SIMULIMK, archivos *.m, *.mdl, u otro formato.
[10 puntos] Preparar una exposicin en Ms Power Point *.ppt del
contenido de los archivos anteriores.
[5 puntos] Puede incluir videos, grficos, imgenes y/o archivos
adicionales que completen su exposicin.


Ing. Teddy Negrete Pgina 5


MATLAB BSICO
INDICE:
1 SEMANA
PRELIMINARES. INTRODUCCION A MATLAB.
Caractersticas generales de MATLAB.
Editor de MATLAB.
Elementos bsicos para la programacin en MATLAB.
PRACTICA #1

TALLER # 1

2 SEMANA
CAPTULO # 1.
1 OPERACIONES NUMRICAS

1.1 Operaciones bsicas en MATLAB. (17)
1.2 Archivos utilizados en MATLAB. (28)

PRACTICA #2

TALLER # 2

3 SEMANA
3 SEMANA
1.3 Funciones y comandos bsicos en MATLAB. (36)
Funciones Matemticas
Funciones Estadsticas
1.4 Control de flujo de instrucciones en MATLAB. (37)
Condicional simple
Condicional mltiple

Ing. Teddy Negrete Pgina 6


Repeticin condicionada
Repeticin automtica
PRACTICA #3

TALLER # 3

4 SEMANA
CAPTULO # 2. FUNCIONES Y ARREGLOS
2 FUNCIONES DEL USUARIO, ARREGLOS, GRFICOS,
VARIABLE SIMBLICA

2.1 Funciones definidas por el usuario. (46)
2.2 Arreglos (Vectores, Matrices e HiperMatrices) en MATLAB.
Estructuras en MATLAB. (51)
PRACTICA #4

TALLER # 4

5 SEMANA
2.3 Funciones con variables simblicas en MATLAB. (71)
2.4 Grficos (72)
Grficos en 2D (bidimensionales)
Grficos en 3D (tridimensionales)

PRACTICA #5

TALLER # 5





Ing. Teddy Negrete Pgina 7



6 SEMANA
CAPTULO # 3.
3 SIMULINK

3.1 Caractersticas generales de SIMULINK (72)
3.2 Ejemplos de Simulaciones con SIMULINK (72)

PRACTICA #6

TALLER # 6

7 SEMANA
3.3 Ecuaciones Diferenciales (75)
3.4 Funciones de Transferencia (75)

PRACTICA #7

TALLER # 7












Ing. Teddy Negrete Pgina 8


1 SEMANA
Caractersticas generales de MATLAB.
Editor de MATLAB.
Elementos bsicos para la programacin en MATLAB.


MATLAB es una de las aplicaciones ms tiles que existen para poner a
punto mtodos numricos en distintas asignaturas de ingeniera. Por ser una
herramienta de alto nivel, el desarrollo de programas numricos con MATLAB
puede requerir hasta un orden de magnitud menos de esfuerzo que con
lenguajes de programacin convencionales, como Fortran, Pascal, C/C++, Java
o Visual Basic.
El escritorio de MATLAB, tiene 3 ventanas:
1. La ventana de comandos
2. El directorio actual
3. La historia de comandos


Ing. Teddy Negrete Pgina 9



Actualizacin de su directorio personal:

Ejecute los siguientes comandos en el PROMPT de la ventana de comandos:
dir
help dir
ls
clc
clear
clear all
close
close all
date
clock
help clock
3-2
15/6
3-1,4*5
3;
pi/4
sqrt(2)
5^3
8*9
flecha direccional
exit

Ing. Teddy Negrete Pgina 10



ARCHIVO M-File

Haga clic en el botn Pgina en Blanco
llamada New M-File del Toolbar, y se
mostrar el Editor de MATLAB, tal como
se muestra en la figura adyacente.
Escriba aqui las siguientes lneas:

%PRCTICA DE VARIOS COMANDOS
GENERALES

%inicio de bloque
help dir
3+5
3*5
clear all
date
clock
help clock
%fin de bloque
Este archivo se puede ejecutar de las siguientes formas:

Haga clic en el botn de Save and run, en el Toolbar, antes de la
ejecucin, el programa le pedir guardar el archivo, debe ponerle el nombre
comandos_generales.m. lo guarda e inmediatamente se ejecuta, debe
verificar la ejecucin regresando al escritorio de MATLAB, en la ventana de
comandos, si tiene errores el programa emitir un sonido.

Otra forma es: Seleccione todas las lneas de edicin y luego pulse la tecla
funcional [F9], en este caso se ejecuta y no se guarda. Para guardarlo debe dar
un clic en el botn Diskette, que es Save, escriba el nombre antes indicado.

NOTA:
Como una norma de programacin vamos a documentar los ejercicios indicando
que hacen o cul es el objetivo de la prctica, adems en la primera lnea de
cada programa se debe esribir su nombre, la fecha y el nmero del ejercicio.
Recuerde los comentarios en MATLAB empiezan con el smbolo %.

EJERCICIOS DE COMANDOS GENERALES:

1. Aumente los siguientes comandos al archivo anterior, a partir de la lnea 13 o
14, y comente el bloque de instrucciones despus de la ejecucin del mismo,
cada comentario debe empezar con el signo %.

(Se sugiere ejecutar cada uno de los bloques de instrucciones, analizar cuales
son los resultados y luego realizar el comentario por bloque).


Ing. Teddy Negrete Pgina 11


%inicio de bloque
rand
rand(1)
rand(2)
rand(3)
%fin de bloque

%inicio de bloque
realmin
realmax
intmin
intmax
roots([1 2 1])
roots([1 -2 1])
%fin de bloque

%inicio de bloque
dir *.mat
type matlab.mat
%Por que se presenta error?
%fin de bloque

%inicio de bloque
save
dir
type matlab.mat
%fin de bloque

%inicio de bloque
mkdir SU_NOMBRE
cd SU_NOMBRE
save archivo_texto.txt
save archivo_excel.xls
dir
pwd
cd ..
pwd
%fin de bloque

(Recuerde que tiene una ayuda usando el comando help + COMANDO, donde
COMANDO es la funcin de Matlab que usted quiere conocer).

2. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el
nombre constantes.m, usando el Editor de archivos M-File y ejecute las
siguientes lneas de programacin, comente cada lnea explicando el
significado del resultado:




Ing. Teddy Negrete Pgina 12


%inicio de bloque
%Nmeros reales
1/2 + 3/4
2+3*4-6/5^2+1
2e3
2*10^3
4e-1
4*10^-1
sqrt(3)/pi
exp(1)
%fin de bloque

%inicio de bloque
%Nmeros complejos
2i*(5-4i)
(2-i)/(6i-4)
sqrt(1-i)
(1-5i)^2
(1+5i)^3
3*exp(i)
2*exp(i*pi)
4*exp(i*pi/4)
%fin de bloque

%inicio de bloque
%Formas simblicas
1/0
-5/0
inf
Inf
inf+inf
0/inf
inf/0
%fin de bloque

%inicio de bloque
%Formas indeterminadas
nan
NaN
inf*0
0*inf
0/0
0^0
inf^0
inf/inf
inf-inf
1^inf
%fin de bloque


Ing. Teddy Negrete Pgina 13



%inicio de bloque
%Forma infinitesimal
eps
sin(0)/0
sin(eps)/eps
%fin de bloque

Recordemos la expresin de clculo diferencial
( ) , 0 f x L c c < >
En qu casos usaramos este valor real, que ms parece variable?
En matemticas, si escribimos x se acerca a cero pero no es cero.
En programacin, si escribimos , x toma el valor de cero.

Entonces en programacin podramos escribir que significara que x
tiende a cero pero no es cero, es decir estaramos utilizando una variable
infinitesimal (que aqui es una constante) para resolver un problema de
asignacin en programacin.

%IMPORTANTE: i es un nmero, que representa al igual que eps, pi, e, exp, un
valor, por lo tanto no pueden ser usados como nombres de variables. Adems los
nombres de formas simblicas o indeterminadas como inf, Inf, nan, NaN
tampoco pueden ser usados como variables.

%Formato de los nmeros

%inicio de bloque
format short
5/7
Format long
5/7
format short
1/2 + 3/4
format rat
1/2 + 3/4
%fin de bloque

%inicio de bloque
format short
10.239 + 23.89675
format bank
10.239 + 23.89675
%fin de bloque

format short
%dejemos este estndar de formato numrico



Ing. Teddy Negrete Pgina 14



NOTA IMPORTANTE: REPASE conceptos de aritmtica tales como: nmeros
decimales, nmeros racionales, nmeros irracionales, cifras significativas,
notacin cientfica y notacin punto flotante.

Ejercicios usando: clear, close, who, whos.

3. Elabore un archivo, verifique que se guarde en su carpeta personal, con el
nombre que_variable_limpiar_cerrar.m, usando el Editor de archivos M-
File, ejecute los siguientes comandos, interprete resultados:

%PRUEBAS CON CLOSE - CLOSE ALL

%inicio de bloque
clear all
who
whos
%fin de bloque

%inicio de bloque
a=2+3
b=2*3
date
who
whos
%fin de bloque

%inicio de bloque
clear b ans
who
whos
%fin de bloque

%inicio de bloque
sqrt(8)
8^(1/2)
who
whos
%fin de bloque

%inicio de bloque
clear all
nthroot(27,3)
who
whos
%fin de bloque

%PRUEBAS CON VENTANAS TTULOS, GRILLAS Y CERRAR


Ing. Teddy Negrete Pgina 15



%inicio de bloque
clc
figure
figure
close
figure(3)
close
figure
%fin de bloque

%inicio de bloque
close figure
%Por que se presenta error?
close figure(1)
%Por que se presenta error?
%fin de bloque

%inicio de bloque
close(1)
figure
close all
close all
clc
f1=figure(1)
f2=figure(2)
close(f1)
%fin de bloque

%inicio de bloque
close all
clear all
who
figure(10)
title('UPS - GUAYAQUIL')
grid
%fin de bloque
Los nombres de las variables no pueden ser comandos, funciones o nombres
de valores definidos en MATLAB. No se puede usar espacios en blanco. Los
nombres de variables se diferencian entre MAYSCULAS y minsculas. ans no
debe usarse como nombre de variable, ya que este nombre se asigna a la
respuesta de una operacin ejecutada.Los nombres de las variables deben
empezar con caracteres, es decir letras.

4. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el
nombre variables.m. Usando el Editor de archivos M-File, ejecute y comente
cada bloque de instrucciones:


Ing. Teddy Negrete Pgina 16



%Variables, nombres, tipo
%Tipos:
%Numricas o escalares
%Vectores numricos
%Matrices numricas

%inicio de bloque
a=4*5
A=2*3
aA=a+A
aB=a-A
v1=[1 2 3 4]
v2=[5 6 7 8]
v3=v1+v2
v4=v1-v2
Ma=[1 2;3 4]
MA=[5 6;7 8]
MaA=Ma+MA
MaB=Ma-MA
%fin de bloque

NOTA IMPORTANTE: En el editor de MATLAB, los caracteres o las cadenas de
caracteres deben estar encerrados entre los apstrofes (tecla [? ]). La cadena
toma, de un color ROJO (al abrirla) a un color VIOLETA (al cerrarla). Esta
indicacin le servir para aplicar el apstrofe correcto usado por MATLAB.

%Caracteres
%Cadena de caracteres, equivalente a vector de caracteres
%Matrices de cadenas

%inicio de bloque
clear all
a=34
a=a
a='a'
b='b'
a+b
%Que significa este resultado?
%
double(a)
double(b)
double(a+b)
%
%Este es el mismo resultado anterior, pero no se unen los caracteres
%fin de bloque




Ing. Teddy Negrete Pgina 17



%inicio de bloque
c='u'
d='p'
e='s'
strcat(c,d,e)
c+d+e
%fin de bloque

%inicio de bloque
f='matlab ups'
g=' oso'
h=' ups'
strcat(f,g,h)
f+g
%Por que se produce un error?
%fin de bloque

%inicio de bloque
f+h
%Por que se produce un error?
%fin de bloque

%inicio de bloque
g+h
%Por que NO sale error, ahora?
strcat(f,g)
strcat(f,h)
%fin de bloque

%inicio de bloque
Ma=['ab' 'cd';'ef' 'gh']
Mb=['teddy ' 'jhennse ';'negrete ' 'pea ' ]
%Por que se produce un error?
%fin de bloque

%inicio de bloque
Mc=['teddy ' 'jhenn ';'negre ' 'pea_ ' ]
%Por que no sale error, ahora?
%fin de bloque

NOTA IMPORTANTE: El estudio de caracteres cadenas ser ms profundo en
captulos posteriores, por ahora solo es una introduccin al concepto de
variables. As mismo tambin se analizar en detalle los conceptos de vectores y
matrices en otro captulo.




Ing. Teddy Negrete Pgina 18


EJERCICIOS PARA LOS TALLERES:
TALLER # 1
1.1 Usando el programa MATLAB, calcule EN LA LNEA DE COMANDOS:
1.1.1


1.1.2 Las raices del polinomio


1.1.3 En forma racional - +3/5 1/10
1.1.4 En forma monetaria 23,34 45,67 + 100,12
1.1.5 Presente con presicin de al menos 8 dgitos
1.1.6 log
2
(128)+log
3
(243)+ln(e
5
)+log(1000)-

+4
2

1.2 En un SCRIPT de MATLAB, genere diferentes operaciones con nmeros
reales y gurdelos en 4 variables, use el comando adecuado para limpiar 2
de las 4 variables cargadas, en la memoria.
1.3 En un SCRIPT de MATLAB, genere 2 matrices cuadradas de 5X5, con
valores aleatrorios entre 0 y 1, mustrelas, luego presente la suma y el
producto de las mismas.
1.4 En un SCRIPT de MATLAB, genere una matriz cuadrada 10x10 con
nmeros aleatorios. Utilice la funcin round para que los elementos de la
matriz generada tenga nmeros enteros entre 5 y 15.
1.5 En un SCRIPT de MATLAB, genere una matriz cuadrada 10x10 con
nmeros aleatorios. Utilice la funcin fix para que los elementos de la
matriz generada tenga nmeros enteros entre 1 y 10.
1.6 En un SCRIPT de MATLAB, genere una matriz cuadrada 10x10 con
nmeros aleatorios, tal que los elementos de la matriz generada tenga
nmeros enteros entre 5 y 10.
1.7 En un SCRIPT de MATLAB, utilice la constante matemtica infinitesimal
eps en un lmite para calcular la base del logaritmo natural.
1.8 En un SCRIPT de MATLAB, muestre una ventana que vizualice una
cuadrcula, con el ttulo "PULSE UNA TECLA PARA CERRAR ESTA VENTANA"
usando la funcin pause() lograr hacer una pausa al programa, y luego
automticamente cierre esta ventana generada.
1.9 En un SCRIPT de MATLAB, compruebe y comente lnea por lnea los pasos
que debe seguir un usuario para hallar el BLOCKSET de Comunicaciones
"Multipath Rician Fading Channel" (Start/Blocksets/Communications/Block
Library/Channels). Adems, en el FUNCTION BLOCK PARAMETERS, indique
los valores por omisin de los 3 primeros parmetros (K-factor/Doppler
shift(s)/Initial phase(s)).
1.10 En un SCRIPT de MATLAB, cree un vector fila y otro vector columna cuyos
elementos sean sus nombres o sus apellidos, si es necesario llene sus
nombres o apellidos con espacios en blanco.


Ing. Teddy Negrete Pgina 19


2 SEMANA

CAPTULO # 1.
1 OPERACIONES NUMRICAS
1.1 Operaciones bsicas en MATLAB.
5. Elabore otro archivo, verifique que se guarde en su carpeta personal, llmelo
tiempo.m, ejecute las siguientes lneas de programacin, comente cada
bloque y concluya con los resultados:

COMANDO etime
Analice la funcin etime, ejecutando las siguientes lneas:
exit %Pedimos que salga y lo primero que har es este ejemplo

%inicio de bloque
clear all
t0=clock
7-3
4*5
t1=clock
etime(t1,t0)
%Aproximadamente 30 40 milsimas de segundo
%fin de bloque

%inicio de bloque
format long e
t0=clock
7-3
4*5
t1=clock
etime(t1,t0)
%Aproximadamente 0 5 milsimas de segundo
%fin de bloque

%inicio de bloque
clc
clear all
t0=clock
Ma=rand(20)
Mb=rand(20)
Mc=Ma*Mb
t1=clock
etime(t1,t0)
%Aproximadamente 200 220 milsimas de segundo
format short
%fin de bloque


Ing. Teddy Negrete Pgina 20



%CUIDADO!!! En la siguiente ejecucin su PC podra
%parecer inhibida, despus de 15 20 segundos.
%Tenga paciencia y verifique que est trabajando
%y no est inhibida, accionando la tecla [Bloq Num]

%inicio de bloque
%EJECUCIN MOSTRANDO LAS MATRICES
clear all
t0=clock
Ma=rand(1000)
Mb=rand(1000)
Mc=inv(Ma*Mb)
t1=clock
etime(t1,t0)
%Aproximadamente 18 19 segundos
whos
%fin de bloque

%inicio de bloque
%EJECUCIN SIN MOSTRAR LAS MATRICES
clc
clear all
t0=clock
Ma=rand(1000);
Mb=rand(1000);
Mc=inv(Ma*Mb);
t1=clock
etime(t1,t0)
%Aproximadamente 3 4 segundos
whos
%fin de bloque

COMANDO cputime
Analice la funcin cputime, ejecutando las siguientes lneas:
exit %Pedimos que salga y lo primero que har es este ejemplo

%inicio de bloque
clear all
n=3
Ma=rand(n)
Mb=rand(n,1)
t0=cputime
Mc=Ma*Mb
t1=cputime-t0
%Aproximadamente 31 32 milsimas de segundo
%fin de bloque


Ing. Teddy Negrete Pgina 21



%inicio de bloque
%Note este resultado
clear Mc
t=cputime; Mc=Ma*Mb; cputime-t
%Exactmente 0 segundos
%fin de bloque

COMANDO tic toc
Analice la funcin tic; OPERACIONES; toc o tambin tic, OPERACIONES, toc
ejecutando las siguientes lneas:
exit %Pedimos que salga y lo primero que har es este ejemplo

%inicio de bloque
tic
4*5
sqrt(9)
toc
%Aproximadamente 16 milsimas de segundo
%fin de bloque

%inicio de bloque
tic; 4*5;sqrt(9); toc
%Exactamente 0 segundos
%fin de bloque

%inicio de bloque
clear all
tic, 4*5, sqrt(9), toc
%Exactamente 0 segundos

Los resultados de los tiempos que nos entregan las funciones etime
cputime tic toc dependern del hardware, sistema operativo y aplicaciones
cargadas en la PC al momento de solicitar estos tiempos. El espacio libre en el
WORKSPACE es fundamental, adems la configuracin del formato de las
variables en la asignacin de los tiempos nos permite mayor precision.


VARIABLES LOGICAS (BOOLEANAS)

6. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el
nombre logicas.m, comente cada lnea explicando el significado de la
ejecucin y concluya en forma general por cada bloque:

Es importante que usted revise y memorice las reglas de las operaciones lgicas
bsicas: Negacin, Conjuncin, Disyuncin. As como tambin propiedades y
leyes, por ejemplo Ley de "D'Morgan", la propiedad de la Identidad, etc.


Ing. Teddy Negrete Pgina 22


%inicio de bloque
clc
%El ASCII de ~ es 126, es decir debe pulsar las teclas [ALT]+[126]
~1
~0
0&0
1|0
%fin de bloque

%inicio de bloque
clc
La=5<4
Lb=6>1
Lc=3==(1+2)
%Explique la diferencia entre el operador = y el ==
%Revise lo que es un operador relacional, aritmtico y lgico
Ld=not(Lc)
Le=and(La,Lb)
Lf=or(La,Lb)
%fin de bloque

%inicio de bloque
clc
Lg=false
if(Lg)
ver='verdadero'
else
ver='falso'
end
%fin de bloque

%inicio de bloque
Lh=true
if(Lh)
anotar='verdadero'
else
anotar='falso'
end
%fin de bloque

%inicio de bloque
clc
n=input('ingrese un nmero positivo: ')
if(n<0)
display('POSITIVO DIJE...')
pause()
end
%fin de bloque

Ing. Teddy Negrete Pgina 23


NOTA: El estudio de funciones para las variables, vectores y matrices
lgicas ser desarrollado en unidades posteriores, por ahora solo es una
introduccin al concepto de variables.


ESCALAR - VECTOR MATRIZ:

MATLAB es el nombre abreviado de 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), con cadenas de caracteres y con otras estructuras de informacin
ms complejas.

Es con grandes matrices o grandes sistemas de ecuaciones como MATLAB
obtiene toda la potencia del ordenador. Por ejemplo, las siguientes instrucciones
permiten calcular la potencia de clculo del ordenador en Megaflops (millones
de operaciones aritmticas por segundo).


7. Elabore otro archivo, con el nombre vector_matriz.m, comente cada lnea
explicando el significado de la ejecucin y concluya en forma general por cada
bloque:

%Los ESCALARES son nmeros reales.
%Los ESCALARES son considerados vectores 1X1
%Los nmeros complejos son considerados vectores 1X2
%Los escalares son un caso particular de los vectores

%Los VECTORES
%Vector(1xn) = Vector(1-Fila x n-Columnas), n>1
%Vector(1xn) = Vector Fila
%Vector(nx1) = Vector(n-Filas x 1-Columna), n>1
%Vector(nx1) = Vector Columna

%Si n=1, entonces es un escalar
%En Algebra Lineal a estos arreglos los llamabamos
%Matriz Fila o Matriz Columna

%inicio de bloque
clc
clear all
Va=[0 1 2 3 4 5 6 7 8 9]
Vb=[0; 1; 2; 3; 4; 5; 6; 7; 8; 9]
Vc=Va*Vb
Vd=Vb*Va
Va'
Vb'
%fin de bloque


Ing. Teddy Negrete Pgina 24


%inicio de bloque
clc
clear all
Va=zeros(3,1)
Vb=zeros(1,3)
Vc=ones(5,1)
Vd=ones(1,5)
Vd=rand(6,1)
Ve=rand(1,6)
%fin de bloque

%inicio de bloque
clc
clear all
V1=[1 2 3 4];
dimension1=size(V1)
longitud1=length(V1)
V2=[1; 2; 3; 4];
dimension2=size(V2)
longitud2=length(V2)
%fin de bloque

%Las MATRICES son considerados como arreglos de ms
%de un vector que tienen la misma dimensin.
%Por ejemplo: La matriz M(3x4)
%La matriz M puede ser considerada por 3 vectores de (1x4) o
%La matriz M puede ser considerada por 4 vectores de (3x1)
%Las matrices son una extensin de los vectores.

%Las MATRICES
%Matriz(mxn) = Matriz(m-Filas x n-Columnas), n>1, m>1
%Si n=1 y m=1, entonces es un Escalar
%Si n=1 y m>1, entonces es un Vector Fila
%Si n>1 y m=1, entonces es un Vector Columna


%inicio de bloque
%Ingreso de Matrices en una Lnea: Filas separadas por (;)
clc
clear all
Ma=[1 2;3 4]
Mb=[5 6;7 8]
Mc=Ma*Mb
Md=Ma+Mb
Me=-3*Md
%Matriz INVERSA
Mi=inv(Me)
%fin de bloque


Ing. Teddy Negrete Pgina 25


%inicio de bloque
%Matriz TRANSPUESTA
%Use ' el apstrofe de las cadenas de caracteres
Mt1=(Me)'
Mt2=(Mt1)'
%DETERMINANTE de una matriz CUADRADA
det(Md)
%fin de bloque

%inicio de bloque
%Ingreso de Matrices en varias Lneas: Fila X Lnea
clear all
MA=[1 2 3
4 5 6
7 8 9]
MB=[1
2
3]
MC=[1 2 3]
MD=MA*MB
ME=MB*MC
%fin de bloque

%inicio de bloque
%NOTE QUE ESPECIAL TIENE ESTA OPERACION
MF=MD-7
%7 es tomado como una Matriz compatible con MD
MG=ME-7
%7 es tomado como una Matriz compatible con ME
%fin de bloque

%inicio de bloque
A=rand(3)
B=rand(3)
C=10*A
D=A*B
E=10+B
F=A+B
%fin de bloque

%inicio de bloque
x=[1 2 3 4 5]
y=x^2
%Por que se obtiene un error?
%Elevar al cuadrado es un operador asignado a escalares
%Ser necesario utilizar otro operador?
%fin de bloque



Ing. Teddy Negrete Pgina 26


OPERACIONES ARITMTICAS:

Con la tabla y los ejemplos dados a continuacin vamos a comprender las
operaciones de los vectores y matrices en MATLAB. Se definirn 2 operaciones
nuevas que no se conocan en algebra comn, la DIVISIN VECTORIAL. Esta
operacin ser analizada posteriormente como funciona matemticamente, pero
por ahora, con los ejemplo analizaremos la dimensin de los resultados y la
compatibilidad de los operandos.













%OPERACIONES ARITMETICAS: (ESCALARES, MATRICES Y VECTORES)

%inicio de bloque
%ESCALARES
2+3
5-6
8*7
2^3
9/3
9\3
9'
%fin de bloque

%inicio de bloque
%MATRICES (2X2)
[1 2;3 4]+[5 6;7 8]
[-1 6;4 5]-[0 2;-3 4]
2*[1 2;3 4]
[1 2]*[3;4]
[1; 2]*[4 5]
[1 2]*[3 4;5 6]
[1 2;3 4]^2
[1 2;3 4]^(1/2)
[1 2;5 6]/[1 0;0 1]
[1 0;0 1]\[3 4;7 8]
[1 2;3 4]'
%fin de bloque

ESCALAR MATRIZ VECTOR DESCRIPCIN
+ + + Adicin
- - - Sustraccin
* * .* Multiplicacin
^ ^ .^ Potencia
/ / . / Divisin hacia la derecha
\ \ .\ Divisin hacia la izquierda
. Transposicin

Ing. Teddy Negrete Pgina 27



%inicio de bloque
%VECTORES
%
%INTERVALOS (Arreglos horizontales Auto-Definidos)
clc
clear all
Vx=-10:2:10
Vy=linspace(-5,5)
Vz=linspace(-5,5,10)
Vu=linspace(-5,5,11)
Vv=Vu'
%SUMA, DIFERENCIA Y PRODUCTO
clc
clear all
Vx=-2:1:2
Vy=linspace(-2,2)
Vz=linspace(-2,2,10)
Vu=linspace(-2,2,5)
Vv=Vu'
%Dimensin de Vx es 1x5 y (Vx)' es 5x1
%Dimensin de Vv es 5x1 y (Vv)' es 1x5
Vx+Vu
Vx-Vu
Vx*Vv %(1x5)*(5x1)
(Vx)'*(Vv)' %(5x1)*(1x5)
%fin de bloque


%DIVISIN DE VECTORES
%En las fracciones tenemos p/q, p=numerador q=denominador
%En los vectores la divisin derecha / se define p/q
%En los vectores la divisin izquierda \ se define q\p
%La dimensin de los vectores p y q pueden ser IGUALES.
%Las operaciones / y \ son distintas.
%Las operaciones / y \ son NO CONMUTATIVAS.


%REGLA DE OPERACIN:
%Considerando a q en ambos casos, el denominador y
%manteniendo el orden p->q o el orden q->p, es el vector
%q el que intercambia su dimensin y p la mantiene.
%Recuerde que el PRODUCTO DE VECTORES no es conmutativo.
%En la divisin vectorial podemos aplicar como regla
%dimensional del resultado, la siguiente:
%nume/deno es equivalente en dimensin a nume*(deno)'
%deno\nume es equivalente en dimensin a (deno)'*nume



Ing. Teddy Negrete Pgina 28


%inicio de bloque
Vx/Vx %(1x5)/(1x5)=(1x5)*(5x1)
Vv/Vv %(5x1)/(5x1)=(5x1)*(1x5)
Vx\Vx %(1x5)\(1x5)=(5x1)*(1x5)
Vv\Vv %(5x1)\(5x1)=(1x5)*(5x1)
%fin de bloque

%inicio de bloque
[1 2]/[3 4]
[3 4]/[1 2]
[1 2]\[3 4]
[3 4]\[1 2]
%fin de bloque


VARIABLES VECTORIALES
Si se van a operar escalar y vectores asignando el resultado en vectores,
entonces no se olvide de incluir el . antes de los operadores (' * / ^ \) le indica
a MATLAB que es una operacin aritmtica de asignacin vectorial.

Revisemos ahora un ejemplo pendiente,


%inicio de bloque
x=[1 2 3 4 5]
y=x.^2
%Por que ahora NO se obtiene un error?
%Elevar al cuadrado es un operador asignado a escalares
%El operador .^ tambien eleva al cuadrado, pero asigna un vector
%fin de bloque


%inicio de bloque
clear all
Vx=0:1:10
Vm=Vx+Vx
Vn=Vx-Vx
Vo=2.*Vx+1
Vp=-3.*Vx-2
Vq=5*Vx.^2-2
Vr=3./Vx+2 %Note la divisin para CERO
Vs=Vx.\3 %Note la divisin para CERO
Vt=3.\Vx
Vu=Vx.'
Vw=Vx'
Vx=(2.*Vx+1).'
%fin de bloque


Ing. Teddy Negrete Pgina 29


%inicio de bloque
%Otra forma equivalente: Vectores Auto-Definidos (INTERVALOS)
clc
clear all
[Vx]=-10:2:10
[Vy]=linspace(-5,5)
[Vz]=linspace(-5,5,10)
[Vu]=linspace(-5,5,11)
[Vv]=[Vu]'
%fin de bloque
GRAFICOS EN EL PLANO XY
Considerando que la Graficacin de Funciones o relaciones matemticas son
tratadas como la graficacin de pares ordenados tomados de 2 vectores, en esta
parte ejecutaremos dos funciones utilizadas en MATLAB, para alcanzar este
objetivo.
8. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el
nombre vector_grafico.m, comente cada lnea explicando el significado de
la ejecucin y concluya en forma general por cada bloque:

%inicio de bloque
clear all
x=-10:0.1:10
y=x.*(2-x)
plot(x,y)
grid
%fin de bloque

%inicio de bloque
clear all
ezplot('x*(2-x)'), grid
%fin de bloque

%inicio de bloque
clear all
x=-10:0.1:10
y=x.*(2-x)
figure(10)
plot(x,y)
grid
%fin de bloque

%Graficos de Funciones Implcitas, o Relaciones Matemticas
%inicio de bloque
clear all
ezplot('x^2+y^2-1',[-2,2,0,2])
%fin de bloque


Ing. Teddy Negrete Pgina 30



%inicio de bloque
%Dos graficos en 2 ventanas diferentes
x=0:0.1:1
y1=2.*x+1
figure(10)
plot(x,y1)
grid
title('GRAFICO No. 1')
y2=2.*x-1
figure(11)
plot(x,y2)
grid
title('GRAFICO No. 2')
%fin de bloque

%inicio de bloque
%Dos graficos en la misma ventana
%USO DE LA FUNCION SUBPLOT
clc
close all
clear all
x=0:0.1:10
y1=sin(x)
subplot(2,1,1)
plot(x,y1)
grid
title('GRAFICO No. 1')
y2=cos(x)
subplot(2,1,2)
plot(x,y2)
grid
title('GRAFICO No. 2')
%fin de bloque

%inicio de bloque
%Dos graficos en los mismos ejes de la misma ventana
clear all
x=0:0.01:2
y1=x.^2
plot(x,y1)
hold on
y2=x.^(1/2)
plot(x,y2)
grid
hold off
%fin de bloque


Ing. Teddy Negrete Pgina 31


1.2 Archivos utilizados en MATLAB.

TIPOS DE ARCHIVOS:
En muchas ocasiones puede resultar interesante interrumpir el trabajo con
MATLAB y poderlo recuperar ms tarde en el mismo punto en el que se dej (con
las mismas variables definidas, con los mismos resultados intermedios, etc.).
Hay que tener en cuenta que al salir del programa todo el contenido de la
memoria se borra automticamente.

ARCHIVO DE DATOS Y DE EJECUCIN:
Los archivos *.mat son archivos de DATOS
Los archivos *.m son archivos de EJECUCIN

9. Elabore otro archivo, con el nombre archivos_varios.m, comente cada lnea
explicando el significado de la ejecucin y concluya en forma general por cada
bloque:

%inicio de bloque
%GUARDADO DE UNA VARIABLE z EN UN ARCHIVO vector_z.mat
z=[1 2 3 4 5 6 7 8 9 0]
save vector_z.mat z
clear z
x=z*2
%Por que se produce error?
%fin de bloque

%inicio de bloque
%CARGADO DE UN ARCHIVO vector_z.mat A UNA VARIABLE z
load vector_z.mat z
x=z*2
%Por que NO se produce error, ahora?
%fin de bloque

%inicio de bloque
%TIPOS DE ARCHIVOS: TEXTO Y
HOJA DE CLCULO
y=[1 3 5 7 9]'
save texto.txt y ASCII
save hoja.xls y ascii
%fin de bloque

%Desde el NOTEPAD DE WINDOWS abra
el archivo texto.txt
%El archivo texto.txt se guardo en su
carpeta personal
%
%Luego vaya ARCHIVO / GUARDAR del Notepad
%INTERPRETE EL CONTENIDO DE ESTE ARCHIVO


Ing. Teddy Negrete Pgina 32



%Recuerde que en el formato de MATLAB
%El . equivale a la , decimal en formato MS-WINDOWS LA
%La , equivale a la . millar en formato MS- WINDOWS LA




%
%Desde el MS-EXCEL abra el archivo hoja.xls
%El archivo hoja.xls se guardo en su carpeta personal
%
%MS-EXCEL 2007 presenta una ADVERTENCIA
%Leala con cuidado, la pregunta final dice Desea abrir el archive ahora?
%SI
%
%La importacin es por omisin
%Proceda con la IMPORTACIN de texto a hoja desde MS-EXCEL
%
%Siga los siguientes pasos:
%





Ing. Teddy Negrete Pgina 33


%
%VENTANA: PASO 1 de 3
%Tipos de los datos originales: DELIMITADOS
%Comenzar a importar en la fila: 1
%Origen del archivo: MS-DOS(PC-8)
%
%SIGUIENTE
%
















%
%VENTANA: PASO 2 de 3
%Separadores: TABULACIN
%Calificador de texto: "
%
%SIGUIENTE
%



















Ing. Teddy Negrete Pgina 34



%
%VENTANA: PASO 3 de 3
%Formato de datos en columna: GENERAL
%
%IMPORTANTE: Aqu, s despus de los nmeros enteros 1, 3, ...
%le sigue el punto(.), entonces va tener un error, ya que la
%cantidad a importar ser 10 millones (10 000 000) y no 1
%tal como haba sido definido el vector z, entonces deber
%realizar el siguiente ajuste, caso contrario (si tiene una ,)
%es decir, el nmero se muestra 1,0 000 000 dle
%
%FINALIZAR
%

Esta parte ser efectuada siempre y cuando el resultado obtenido sea
INCORECTO, puesto que la configuracin del MS Windows LA difiere a la
configuracin anglosajona de MATLAB.






%
%Teniendo (.) dle:
%AVANZADAS
%En la nueva ventana de dilogo verifique:
%Separador decimal: . (PUNTO)
%Separador de miles: , (COMA)
%Esta es la configuracin del texto a importar
%Por omisin aparecer la configuracin de MS-WINDOWS LA
%es decir: (,) decimal y (.) millar, por lo tanto deber
%intercambiar la configuracin.
%
%FINALIZAR
%


Ing. Teddy Negrete Pgina 35




RESULTADO INCORRECTO
Debido a la configuracin de (.) para miles y (,) para decimales



RESULTADO CORRECTO
Aqui podemos ver que (,) es decimal y se sobreentiende que (.) es miles



Ing. Teddy Negrete Pgina 36





%
%Luego vaya ARCHIVO / GUARDAR del MS EXCEL 2007
%Se presentara un cuadro de confirmacin para mantener el formato
%del libro
%
%SI
%
%INTERPRETE EL CONTENIDO DE ESTE ARCHIVO


ARCHIVO STARTUP.M

El archivo startup.m es un archivo de ejecucin automtica y debe ser
creado dentro de la carpeta unidad:\matlab_root\toolbox\local, si usted desea
establecer configuraciones automticas.

10. Elabore otro archivo, verifique que se guarde en la carpeta especifica
unidad:\matlab_root\toolbox\local con el nombre especfo startup.m,
comente cada lnea explicando el significado de la ejecucin y concluya en
forma general por cada bloque

%inicio de bloque
%
%====TEDDY NEGRETE=======
dir
date
3*6
%fin de bloque

Note que si usted guarda este archivo, con el mismo nombre en:
unidad:\matlab_root\work. El resultado es el mismo.

NOTA: Otros archivos de MATLAB, tales como: *.mex, *.mdl, *.fig, sern
estudiados en prximas unidades, ya que forman parte de los mdulos como
MatLab Compiler, Simulink y MatLab GUIs.


Ing. Teddy Negrete Pgina 37


CLCULO DE EXPRESIONES NUMRICAS:
Considerando:
(. punto) como un SEPARADOR DECIMAL,
(, coma) como un SEPARADOR DE INSTRUCCIONES con salida por pantalla
(; punto coma) como un SEPARADOR DE INSTRUCCIONES sin salida por
pantalla, (esta es la configuracin por omisin del MATLAB):
Para clarificar la diferencia entre . , ; y la notacin numrica, utilizados en
MATLAB, efectuaremos las siguientes prcticas.

11. Elabore otro archivo, verifique que se guarde en la carpeta personal con el
nombre calculo_expresion_num.m, calcule el valor de las siguientes
expresiones aritmticas, en formato corto y extendido.

23.45 6
5.67 45/ 26
12
2000.345 45.3456
2 4.45*10
10 345.67*3
3456.234 2.4321*10
+
=

=
+
A
B



5
4 45/12
23/ 45
34.23
cos( 256 34'12")
(2345.2*3.56 )
23456.1234*
(12 / 25) ln(10 )

=
=
+
C
e
D
tg t


12. Elabore otro archivo, verifique que se guarde en la carpeta personal con el
nombre en_una_linea.m, indique cul es el resultado y que se muestra
durante la ejecucin.

%inicio de bloque
x=1:3,x*x
%fin de bloque

%inicio de bloque
A=rand(10);
B=rand(10);
C=A*B
%fin de bloque


Ing. Teddy Negrete Pgina 38





EJERCICIOS PARA LOS TALLERES:
TALLER # 2
2.1 Realice un programa que muestre por pantalla, 2 matrices de 1000 x 1000
con nmeros aleatorios reales entre 1 y 5. Calcule y muestre el producto
de las 2 matrices y el determinante de este resultado. Optimcelo,
calculando cunto tiempo se demora su ejecucin (comente el tiempo
aproximado en ms).
2.2 Realice un programa que muestre por pantalla la Tabla de Multiplicar Del
20, es decir que en la 1 Fila y la 1 Columna tenga los nmeros del 1 al
20, y en las posiciones interiores el resultado del producto. Use el
concepto de vectores. Optimcelo, calculando cunto tiempo se demora su
ejecucin (comente el tiempo aproximado en ms).
2.3 Realice un programa que muestre 6 ventanas diferentes enumeradas del 1
al 6, cada una debe presentar en un dominio 0 < t < 10, los grficos de
funciones bsicas de una variable: t
3
,

, sen(t), ln(t), e
t
, arctg(t).
2.4 Usando la funcin SUBPLOT realice un programa que muestre en una sola
ventana TODAS los grficos del ejercicio anterior.
2.5 Realice un programa que ejecute y pruebe las siguientes funciones bsicas
con vectores y matrices. Primero defina varios vectores o matrices luego
obtenga el resultado de una de las operaciones aritmticas (+ - * ^ / \ )
compatibles con los vectores o matrices definidos, luego sobre este
resultado aplique la function indicada. Comente el resultado obtenido en
cada funcin, despus de la ejecucin de cada bloque.
2.5.1 norm
2.5.2 sumsqr
2.5.3 minmax
2.5.4 fix
2.5.5 round
2.6 Realice un programa que genere una matriz de 20X2 con nmeros enteros
aleatorios del 1 al 20, el resultado lo guarde en un archivo tipo hoja
electrnica, llamado temp.xls para posteriormente convertir el texto en
columna de este archivo, en informacin vlida para Microsoft Excel.
Guarde el archivo convertido con el nombre LISTAS.xls. Desde Microsoft
Excel, cambie el formato de las 2 columnas de datos, De Cientfica a
Normal, luego inserte un grfico LINEA 2D, tipo Lnea, en el mismo
archivo LISTAS.xls y confirme que son 20 datos, con valores entre 1 y 20.
2.7 Realice un archivo StartUp.m que realice las siguientes instrucciones
cuando inicie el programa: limpie la pantalla, guarde en una variable la

Ing. Teddy Negrete Pgina 39


hora de inicio de trabajo, muestre un mensaje de bienvenida con su
nombre, la fecha y la hora de inicio de trabajo.

3 SEMANA
1.3 Funciones y comandos bsicos en MATLAB.
Funciones Matemticas
Funciones Estadsticas
Para cada asignatura estudiada a continuacin, elabore un archivo *.m con el
nombre de la asignatura, analice los resultados obtenidos de las funciones
ejecutados en la lnea de comandos o la ejecucin de los bloques en un script y
conteste las preguntas planteadas en cada seccin.
13. ARITMTICA
MXIMO COMN DIVISOR MNIMO COMN MLTIPLO
Ejecute en el PROMPT las siguientes instrucciones:

>>gcd(24, 64) %greatest common divisor
>>lcm(10,100) %least common multiple
>>factor(24)
>>factorial(5)
>>mod(5,2)
>>rem(7,3)

En un archivo SCRIPT ejecute las siguientes lneas:

%inicio de bloque
format rat
1/2+3/4
0.1+3.4+3/5
format short
%fin de bloque

14. ALGEBRA BSICA
PRODUCTOS ALGEBRAICOS:
Dadas las expresiones
1 (2 1)(4 3 )
2 (2 1)( 3)
y x x
y x x
=




Ing. Teddy Negrete Pgina 40


Al efectuar el producto tenemos:
2
2
1 6 11 4
2 2 7 3
y x x
y x x
= +

= +

,

ahora probemos una funcin de MATLAB:



%inicio de bloque
%MULTIPLICACION ALGEBRAICA
syms x y1 y2
y1=expand((2*x-1)*(4-3*x))
y2=expand((2*x-1)*(x-3))
%fin de bloque
FACTORIZACIN:
Dada la expresin
7
x x
Al realizar la factorizacin de esta expresin tenemos:
7 6
7 3 3
7 2 2
( 1)
( 1)( 1)
( 1)( 1)( 1)( 1),
x x x x
x x x x x
x x x x x x x x x
=
= +
= + + + +

ahora probemos una funcin de MATLAB:
%inicio de bloque
%FACTORIZACION
syms x, factor(x^7-x)
%fin de bloque
SIMPLIFICACIN ALGEBRAICA:
Dada la expresiones algebraicas:
1 2 4
,
4 3 1 x x x
+
+
procedamos a la
simplificacin natural:
2
2 2 2
3 2 2
2
3
2
3
( 3)( 1) 2( 4)( 1) 4( 4)( 3)
( 4)( 4 3)
4 3 2 6 8 4 4 48
4 3 4 16 12
2 43
13 12
2 43
,
13 12
x x x x x x
x x x
x x x x x x
x x x x x
x x
x x
x x
x x
+ + +
+ +
+ + + +
+ + +
+
+
+

+

ahora probemos otras funciones de MATLAB:
%inicio de bloque
%SIMPLIFICACIN ALGEBRAICA

Ing. Teddy Negrete Pgina 41


syms x f g
f=1/(x+4)+2/(x-3)-4/(x-1)
g=simplify(f)
pretty(g)
expand((x+4)*(x-3)*(x-1))
%fin de bloque


DESCOMPOSICIN ALGEBRAICA:
Dada la expresin
2
3
2 43
.
13 12
x x
x x
+

+

Al efectuar el proceso de la descomposicin en fracciones parciales,
2
3
2 43
13 12 ( 4) ( 3) ( 1)
x x A B C
x x x x x
+
= + +
+ +

donde los coeficientes buscados son: 1 ; 2 ; 4 A B C = = =

ahora probemos una funcin de MATLAB:
% inicio de bloque
[numerador denominador entero]=residue([-1 -2 43],[1 0 -13 12])
%fin de bloque
% inicio de bloque
clear all
[numerador, denominador, entero]=residue([-1 -2 43],[1 0 -13 12])
%fin de bloque
Analicemos los datos:
2
3
2 43
.
13 12
x x
x x
+

+

En la funcin residue:
[-1 -2 43]; es el vector de los coeficientes del polinomio del numerador,
[1 0 -13 12]; es el vector de los coeficientes del polinomio del denominador.

| |
| |
1 1 2 43
2 min 1 0 13 12
valor numerador
valor deno ador
= =
= =

Analicemos los resultados:
1 2 4
,
4 3 1 x x x
+
+

En el resultado, numerador, denominador, entero son vectores que representan:
numerador; los coeficientes de los numeradores de cada fraccin parcial,
denominador; los polos de cada uno de los factores lineales de los
denominadores de cada fraccin parcial,

Ing. Teddy Negrete Pgina 42


entero; los coeficientes del polinomio entero, si la fraccin es impropia.
| |
| |
| |
1 2 4
min 4 3 1
numerador
deno ador
entero
=
=
=

Dado el siguiente bloque de instrucciones en MATLAB:



%inicio de bloque
%DESCOMPOSICIN EN FRACCIONES PARCIALES
clear all
num=[1 1 -6]
den=[1 -1]
[a b c]=residue(num,den)
%fin de bloque
Analice los resultados y escriba la igualdad de la funcin racional dada e
ingresada a la funcin residue y compruebe el equivalente de la suma de
fracciones parciales resultantes.

Dado el siguiente bloque de instrucciones en MATLAB:
%inicio de bloque
%DESCOMPOSICIN EN FRACCIONES PARCIALES
clear all
num=[0 11/6 -7/6 1/5];
den=[1 -31/30 1/3 -1/30];
[R,P,K]=residue(num,den)
%fin de bloque
Analice los resultados y escriba la igualdad de la funcin racional dada e
ingresada a la funcin residue y compruebe el equivalente de la suma de
fracciones parciales resultantes.
ECUACIONES POLINMICAS:
Resolucin de una Ecuacin Polinmica:
La funcin de MATLAB que halla las n-raices de un polinomio de grado n es
roots() donde se requiere ingresar los coeficientes del polinomio, ejecute estas
instrucciones en el PROMPT:

>>roots([1 1 -6])
>>roots([1 0 0 -1])

Uso de la funcin solve() de MATLAB para resolver una ecuacin. Ejecute
las siguientes instrucciones en el PROMPT:


Ing. Teddy Negrete Pgina 43


>>solve('x^2+x-6')
>>solve('x^2+x-6=0')
>>solve('x^2+x-6=1')
>>solve('x^3-1=0')

Resolucin de varias Ecuaciones Polinmicas:

Hallar la interseccin de la circunferencia x
2
+y
2
=1 y la recta x+y=1
En el PROMPT, ejecutamos:




>>solve('x^2+y^2=1','x+y=1')

Note que no se muestran resultados, sino 2 vectores:

x: [2x1 sym]
y: [2x1 sym]

esto se debe que el resultado se presenta en 2 vectores, entonces lo correcto es:


>>[x y]=solve('x^2+y^2=1','x+y=1')

Interprete correctamente los resultados, ya que son 2 puntos y en cada vector se
expresan los resultados de cada variable.
SISTEMAS DE ECUACIONES LINEALES (SEL):
Resuelva analticamente el SEL:
2 3 7
3 2 8
x y
x y
+ =

+ =



Verifiquemos los resultados con MATLAB:

En el PROMPT, escriba:

>>[x y]=solve('2*x+3*y-7','3*x+2*y-8')

En un SCRIPT, escriba:

%inicio de bloque
clear all
s=solve('2*x+3*y-7','3*x+2*y-8','x','y')
x1=s.x
y1=s.y
%fin de bloque


Ing. Teddy Negrete Pgina 44


Resuelva analticamente el SEL:
0
1
1
x y z
x y z
x y z
+ =

+ =



Verifiquemos los resultados con MATLAB:

En el PROMPT, escriba:

>>[x y z]=solve('x-y+z','x+y-z-1','x-y-z-1')



En un SCRIPT, escriba:

%inicio de bloque
clear all
s=solve('1*x-1*y+1*z=0','1*x+1*y-1*z=1','1*x-1*y-1*z=1','x','y','z')
x1=s.x
y1=s.y
z1=s.z
%fin de bloque

Analice ambas resoluciones, obtenga conclusiones sobre el formato, note la
redundancia del coeficiente 1 en las ecuaciones, y la indiferencia de igualar a
cero y obviar esta igualdad a cero, en ambos formatos.

GRAFICOS BSICOS DE FUNCIONES DE UNA VARIABLE:
Realice el grfico de la funcin
2
( ) , 10 10 f x x x = < <
Dominio definido
%inicio de bloque
%GRAFICACIN DE FUNCIONES
%
clc
clear all
x=-10:0.1:10
y=x.^2
figure(1)
plot(x,y),grid
%fin de bloque
Realice el grfico de la funcin
24
( ) , 2 2, 0 f x x x x
x
= + < < =
Note que la funcin est indefinida cuando x=0
Dominio con un valor indefinido en el intervalo

Ing. Teddy Negrete Pgina 45


%inicio de bloque
% GRFICA Y = X + 24/X
% GRAFICA DE UNA FUNCIN QUE NO EXISTE EN X=0
% NO HAY NINGN PROBLEMA
%
clc
clear all
x=-2:0.1:2
y=x+24*x.^(-1)
plot(x,y)
grid
%fin de bloque



%inicio de bloque
% GRFICA Y = X + 24/X
% AUNQUE NO HACE FALTA, SE HA EXCLUDO DEL DOMINIO EL VALOR X=0
% Y SE HA DIVIDIDO EL DOMINIO DE X
%
clc
clear all
x=0.1:0.1:20
y1=x+24*x.^(-1)
plot(x,y1)
hold on
x2=-20:0.1:-0.1
y2=x2+24*x2.^(-
1)
plot(x2,y2)
grid
hold off
%fin de bloque

%inicio de bloque
% GRFICA Y = X
+ 24/X, FORMA
RPIDA
ezplot('x+24/x',[-
20 20])
%fin de bloque

Grficos de dos
curvas:
%inicio de bloque
%GRAFICOS DE 2 CURVAS
%USO DE LA FUNCION PLOT

Ing. Teddy Negrete Pgina 46


clear all
x=-10:0.1:10
y1=x.*(2-x)
plot(x,y1)
hold
y2=(x-3).*(x+1)
plot(x,y2)
grid
hold off
%fin de bloque
Comparemos estos resultados con un grfico elaborado en un software de
aplicacin muy utilizado llamado GRAPHMATICA. En este programa solo debemos
indicar cuales son las funciones a graficar.




%inicio de bloque
%GRAFICOS DE 2 CURVAS
%USO DE LA FUNCION EZPLOT
close all
clear all
syms x
A = 9-x^2
B = 2*x^2
a = ezplot('(9-x^2)')
hold on
b = ezplot('(2*x^2)')
hold off
%fin de bloque
Grficos de funciones IMPLCITAS:
%inicio de bloque
%Una funcion implicita
%
close all
clear all
ezplot('(x^2+y^2-1)')
grid
%fin de bloque

%inicio de bloque
%Una funcion implicita
%
clear all
ezplot('(x^2+y^2-4)')
hold
ezplot('(x^2-y^2-1)')

Ing. Teddy Negrete Pgina 47


grid
hold off
%fin de bloque
Grficos con dominio o conjunto de llegada definidos en intervalos:
%inicio de bloque
clear all
ezplot('x^2+y^2-1',[-2,2,0,2])
%fin de bloque

%inicio de bloque
clear all
ezplot('x^2-x+3', [-5 10])
%fin de bloque


15. TRIGONOMETRA
Ejecute en el PROMPT las siguientes instrucciones:
>>sin(pi/4)
>>sinh(1/4)
>>sind(45)
>>atan(1)
>>atand(1)
>>atanh(1/2)
Identifique cada una de las funciones utilizadas en el ejemplo anterior.
Para la simplificacin de las expresiones trigonomtricas utilizamos en MATLAB
las funcines simple() o la funcin simplify() las mismas que se aplican sobre
variables simblicas.
%SIMPLIFICACIN TRIGONOMTRICA
%inicio de bloque
syms A B C
B=(sin(A))^2+(cos(A))^2+(tan(A))^2
C=simplify(B)
pretty(C)
%fin de bloque

%inicio de bloque
N=(sin(120*pi/180))^2-3*(cos(210*pi/180))^2
D=5*(tan(315*pi/180))^2+cot(135*pi/180)
R=N/D
format rat
R

Ing. Teddy Negrete Pgina 48


format short
%fin de bloque

%inicio de bloque
syms x a b
a=((cos(x))^2-(sin(x))^2)/(cos(3*x)-sin(x))
b=simplify(a)
pretty(b)
%fin de bloque

%inicio de bloque
syms x a b
a=((cos(x))^2-(sin(x))^2)/(cos(3*x)+cos(x))
b=simplify(a)
pretty(b)
%fin de bloque


%inicio de bloque
syms x a b
a=((cos(x))^2-(sin(x))^2)/(cos(3*x)+2*(cos(x))^3)
b=simplify(a)
pretty(b)
%fin de bloque

%inicio de bloque
syms x a b
a=(sin(x)+sin(3*x))/(cos(x)+cos(3*x))
b=simplify(a)
pretty(b)
%fin de bloque

%inicio de bloque
f=inline('((cos(x))^2-(sin(x))^2)/(cos(3*x)-sin(x))')
fa=inline('2*csc(x)')
fb=inline('2*sin(x)')
fc=inline('2*cos(x)')
fd=inline('2*cot(x)')
fe=inline('2*sec(x)')
x=pi/3
f(x)
fa(x),fb(x),fc(x),fd(x),fe(x)
%fin de bloque
%GRFICOS DE LAS FUNCIONES TRIGONOMTRICAS
%inicio de bloque
clc
clear all

Ing. Teddy Negrete Pgina 49


subplot(2,3,1)
ezplot('sin(x)')
subplot(2,3,2)
ezplot('cos(x)')
subplot(2,3,3)
ezplot('tan(x)')
subplot(2,3,4)
ezplot('cot(x)')
subplot(2,3,5)
ezplot('sec(x)')
subplot(2,3,6)
ezplot('csc(x)')
%fin de bloque

%inicio de bloque
ezplot('atan(x)')
%fin de bloque


16. ALGEBRA LINEAL
%OPERACIONES CON MATRICES

%inicio de bloque
clc
A=[1 2;3 4]
B=inv(A)
C=A*B
%fin de bloque

%inicio de bloque
clc
clear all
A=[1 2;3 4]
B=A'
%fin de bloque

%inicio de bloque
clear all
A=rand(3)
B=rand(3)
C=A*B
%fin de bloque

%inicio de bloque
clear all
A=rand(1000)
B=rand(1000)
C=A*B

Ing. Teddy Negrete Pgina 50


%fin de bloque

Ejecute esta en la "LNEA DE COMANDOS":

>>det([-1 2 0 1;0 -1 0 1;-3 2 0 0;1 1 2 1])
>>det([1 -2 3 4 5;0 -1 0 2 0;0 0 1 1 0;-1 0 0 0 2;3 0 -2 0 0])
>>A=[1 0 1 2 -1;2 1 2 0 0;3 -1 1 1 1;4 0 0 0 -1;5 0 0 1 0], det(A)

Analice y comente los resultados obtenidos.

%POTENCIA DE MATRICES

%inicio de bloque
clear all
A=[1 0 0;2 -1 0;0 0 -2]
B=A^2
C=A^3
%fin de bloque



%inicio de bloque
clear all
A=[1 2;-1 0]
B=3*A^2
C=-2*A
D=[1 0;0 1]
E=B+C+D
%fin de bloque

Evaluacin polinmica de matrices: FUNCIN poly val m
%Evaluacin de un polinomio, utilizando una matriz
%inicio de bloque
A=[1 2;-1 0]
p=[3 -2 1]
b=polyvalm(p,A)
c=polyval(p,2)
syms x
d=polyval(p,'x')
fp=inline('3*x^2-2*x+1')
fp(2)
%fin de bloque

%inicio de bloque
clear all
A=rand(5)
p=[3 0 0 -2 1]

Ing. Teddy Negrete Pgina 51


b=polyvalm(p,A)
%fin de bloque

Resolucin de un SEL: Sistema de Ecuaciones Lineales
%RESOLUCIN DE SEL 2X2
%inicio de bloque
s=solve('2*x+3*y-8','-1*x-4*y-14','x','y')
x1=s.x
y1=s.y
%fin de bloque
%RESOLUCIN DE SEL con COEFICIENTES COMPLEJOS:
%inicio de bloque
s=solve('2*i*x+3*i*y-7+2*i','3*x+2*y-8*i','x','y')
x1=s.x
y1=s.y
%fin de bloque

%RESOLUCIN DE SEL 3X3
%inicio de bloque
s=solve('1*x+4*y+5*z-11','3*x-2*y+1*z-5','4*x+1*y-3*z+26','x','y','z')
x1=s.x
y1=s.y
z1=s.z
%fin de bloque

%inicio de bloque
s=solve('-4*x-3*y-1*z-19','2*x-3*y+2*z+26','-3*x-4*y-5*z-32','x','y','z')
x1=s.x
y1=s.y
z1=s.z
%fin de bloque

MATRICES ESPECIALES EN MATLAB.

Ejecute en la "Lnea de comandos" las siguientes instrucciones:

>>ones(2,3)
>>zeros(4,5)
>>eye(2,3)
>>eye(3,2)
>>rand(2,3)
>>magic(5)

Ing. Teddy Negrete Pgina 52


>>diag([1 2 3])
>>tril([1 2 3;4 5 6;7 8 9]) %lower triangular
>>triu([1 2 3;4 5 6;7 8 9]) %upper triangular
>>[1 2 3;4 5 6;7 8 9],rot90([1 2 3;4 5 6;7 8 9])

Comente y registre los resultados obtenidos en la ejecucin anterior.
Memorice estas funciones de MATLAB, para aplicarlas en futuros ejercicios.

Ejecute en la "Lnea de Comandos" las siguientes instrucciones:

>>eig([0 2;3 5])
>>A=fix(10*rand(2)),eig(A)

Recordemos la ecuacin polinmica caracterstica ( ) det( ) 0, p A I = = en donde
los valores se conocen como EIGENVALORES.

%inicio de bloque
syms x
p=det([0 2;3 5]-x*[1 0;0 1])
solve(p)
%fin de bloque



Ing. Teddy Negrete Pgina 53



UNIVERSIDAD POLITCNICA SALESIANA
FACULTAD DE INGENIERAS
ALGEBRA LINEAL
EXAMEN DEL PARCIAL
DICIEMBRE 2009


Alumno : ______________________ Paralelo # ___________
Firma : ______________________ Cdula # ____________



TEMA #1 (4 Puntos)
Dados los vectores resuelva los siguientes literales.
V
1
= 7i - 5j
V
2
= -2i + 7j

a) Grafique los vectores en el espacio y obtenga su magnitud.
b) Determine la direccin de cada vector.
c) Determine el ngulo entre los vectores aplicando producto punto.
d) Determine la proyeccin escalar y vectorial de (V
1
+2V
2
) en la direccin de -3V
2
.

Tema #2 (4 Puntos)

Dado el sistema de ecuaciones lineales no homogneo adjunto:

10X
1
-4X
2
+2X
3
=48
2X
1
+5X
2
-2X
3
=-14
3X
1
-12X
2
+9X
3
=78

a) Exprese en forma matricial el sistema AX=B
b) Obtenga el determinante de A
c) Obtenga la matriz aumentada B A
d) Resuelva el sistema aplicando el mtodo de eliminacin Gaussiana.



TEMA #3 (4 Puntos)

Dadas las matrices:
A=
(


7 11
2 5
B=
(

8 4
17 3

Obtenga:
a) (A-B)
2

b) A
2
y B
2





Ing. Teddy Negrete Pgina 54




%EXAMEN PARCIAL 09_02 LGEBRA LINEAL
%inicio de bloque
%Tema_2
det([10 -4 2;2 5 -2;3 -12 9])
%fin de bloque

%inicio de bloque
%Tema_3
([5 -2;11 7]-[3 17;4 -8])^2
[5 -2;11 7]^2
[3 17;4 -8]^3
%fin de bloque

%inicio de bloque
%Tema_4
det([-3 -5 4;2 -3 -5;1 -1 2])
%fin de bloque


TEMA #4 (4 Puntos)

Dada la matriz


A=
(
(
(



2 1 6
5 3 2
4 5 3


Obtenga:

a) El determinante de A.
b) La matriz de los cofactores o matriz adjunta.
c) Obtenga la inversa de A (A
-1
).
d) Realice la comprobacin (A)(A
-1
)= I.

TEMA #5 (4 Puntos)

Dados los vectores:

V
1
(-11,20)
V
2
(13,-17)
V
3
(5,8)

Obtenga:

a) Los escalares h y k tales que hV
1
+kV
2
=V
3

b) Los escalares h y k tales que V
2
=hV
3
-kV
1



Ing. Teddy Negrete Pgina 55



17. CLCULO DIFERENCIAL
%GRAFICOS DE FUNCIONES

%inicio de bloque
clear all
x=-5:.1:0
y1=x+2
plot(x,y1)
hold on
x=0:.1:3
y2=x.^3-1
plot(x,y2)
hold on
x=3:.1:5
y3=1-heaviside(x+3)
plot(x,y3)
grid
%fin de bloque

%inicio de bloque
% GRFICA Y = X + 24/X
% GRAFICO SIMPLIFICADO, EN INTERVALO DE DOMINIO PARA X
% GRAFICA DE UNA FUNCIN QUE NO EXISTE EN X=0
% NO HAY NINGN PROBLEMA
%
%
ezplot('x+24/x',[-20,20])
grid
%fin de bloque

%inicio de bloque
clear all
x=-20:0.5:20
y=x+24./x
plot(x,y)
grid
%fin de bloque

%inicio de bloque
%GRAFICA Y=sen(X)/X
%LA FUNCIN NO SE DETERMINA PARA X=0
%
ezplot('sin(x)/x',[-15,15])
grid
%fin de bloque



Ing. Teddy Negrete Pgina 56


%inicio de bloque
clear all
x=-15:0.5:15
y=sin(x)./(x)
plot(x,y)
grid
%fin de bloque

%inicio de bloque
clear all
x=-15:0.5:15
y=sin(x+eps)./(x+eps)
plot(x,y)
grid
%fin de bloque

%FUNCIONES ESPECIALES DE UNA VARIABLE

Ejecute en la "Lnea de Comandos" las siguientes instrucciones:

>>ezplot('heaviside(x)',[-1 1 -0.5 1.5])
>>ezplot('abs(x)')
>>ezplot('sign(x)',[-1 1 -1.5 1.5])

Comente y registre los resultados obtenidos en la ejecucin anterior.

%LMITES DE UNA FUNCIN

Ejecute en la "Lnea de Comandos" las siguientes instrucciones:

>>syms x,limit('sin(x)',x,0)
>>limit('(x-1)/(x^2-1)',x,1)
>>limit('tan(3*x)/x',x,0)

Comente y registre los resultados obtenidos en la ejecucin anterior.

%DERIVACIN DE FUNCIONES DE UNA VARIABLE

Ejecute en la "Lnea de Comandos" las siguientes instrucciones:

>>diff(sin(x))
>>syms a, diff(sin(a*x),x)
>>syms x, diff(sin(a*x),a)
>>diff(x^3,2)
>>diff(log(x),3)

Comente y registre los resultados obtenidos en la ejecucin anterior.



Ing. Teddy Negrete Pgina 57


%inicio de bloque
clear all
syms a x
y=a^3*exp(x)-a^2*sin(x);
y_prima=diff(y) %Obtiene la derivada de una funcion y
y3_prima=diff(y,3) %Deriva y TRES veces con respecto a x
y_prima_a=diff(y,a)
y2_prima_a=diff(y,a,2)
%fin de bloque

%GRFICO DE FUNCIN TRIGONOMETRICA

%inicio de bloque
clear all
x=(-6*pi:6*pi)
y=sin(x/3)
figure(4)
plot(x,y)
grid
title('La onda seno, y=sin(x/3)')
%fin de bloque

%La DERIVADA de un POLINOMIO

%inicio de bloque
%El polinomio es: x^4+x^2+1
polyder([1 0 1 0 1])
%fin de bloque

%inicio de bloque
p=polyder([1 0 1 0 1])
polyval(p,1)
%fin de bloque

%EXAMEN PARCIAL 09_01 CLCULO DIFERENCIAL

%Analice tema por tema de este EXAMEN PARCIAL:
%Si es posible desarrolle los grficos usando matlab,
%Determine graficamente los puntos y las caractersticas que piden los temas.

%El los temas de lmites
%Utilicre MATLAB para calculas los valores.
%En los lmites unilaterales utilice:

>> syms x, limit(heaviside(x),x,0,'right')
>> syms x, limit(heaviside(x),x,0,'left')


Ing. Teddy Negrete Pgina 58




UNIVERSIDAD POLITCNICA SALESIANA.
REA DE CIENCIAS EXACTAS
CLCULO DIFERENCIAL
EXAMEN PARCIAL ATRASADO
04/AGOSTO/2009
Alumno : ______________________ Paralelo # _______

1. [5 Puntos] Dada la ecuacin 4y
2
9 x
2
+ 54x + 16y 29 = 0, determinar:
a) Ecuacin ordinaria.
b) Nombre completo de la cnica.
c) Parmetros de la cnica.
d) Ecuaciones de las asntotas.
e) Bosquejo del grfico.
2. [4 Puntos] Dada la inecuacin, determine y grafique el conjunto solucin:
a) ,
3
x
2 x
4
3
3 x
R x >
+

+
e
b) , x 1 x 2 R x s e
3. [2 Puntos] Sea f: RR cuya regla es

t > t
t <
=
x sen x
x x 2
x f
), ( .
), cos(
) ( , determinar:
a) El bosquejo grfico.
b) Los intervalos de monotona.
4. [5 Puntos] Sea f: RR y dado su grfico, determinar:

a) Rg f
b) Intervalos donde f es estrictamente creciente
c)
(

) ( ) (
) ( ) (
) (
2 f 3 4 f
4 f 0 f 2
3 f
5. [4 Puntos] Determine los siguientes lmites:
a)
1 x
1 x
3
9
1 x
+
+

lim
b)
) (
) (
lim
x 3 sen
x 2 sen
x t



Ing. Teddy Negrete Pgina 59



18. CLCULO INTEGRAL
%DESCOMPOSICIN EN FRACIONES PARCIALES
%inicio de bloque
syms x y
y=simplify(1/x^2+3/x-4/(x-1))
pretty(y)
%fin de bloque

%inicio de bloque
syms x y
y=simplify((x^4-x)/(x*(x^2-4)))
pretty(y)
%fin de bloque

%inicio de bloque
num=[3 -1]
den=[1 1 -6]
[a b c]=residue(num,den)
%fin de bloque

%inicio de bloque
num=[1 0 0 -1 0]
den=[1 0 -4 0]
[a b c]=residue(num,den)
[n d]=residue(a,b,c)
%fin de bloque

%inicio de bloque
syms x y
y=simplify(x+1.75/(x-2)+2.25/(x+2))
pretty(y)
%fin de bloque

%inicio de bloque
syms x y
y=simplify((-4/15)/(x+3)+(1/10)/(x-2)+(1/6)/x)
pretty(y)
%fin de bloque

Ejecute en el PROMPT las siguientes instrucciones:
>>[a b c]=residue([-1 1],[-1 -1 6 0])
>>[a b c]=residue([1 1],[1 0 1 0])
>>[a b c]=residue([4 -3 23 -11 32],[1 0 8 0 16 0])
Comente y registre los resultados obtenidos en la ejecucin anterior.


Ing. Teddy Negrete Pgina 60


%inicio de bloque
syms x y z
y=(1/x)+simplify((-1/2-1/2i)/(x-i)+(-1/2+1/2i)/(x+i))
pretty(y)
z=simplify(y)
pretty(z)
%fin de bloque

%inicio de bloque
[a b c]=residue([1 0 0 1],[1 0 4 0 4 0])
syms x y
y=simplify(2/x+(2*x-3)/(x^2+4)+(-x+1)/(x^2+4)^2)
pretty(y)
%fin de bloque

%INTEGRACIN DE FUNCIONES DE UNA VARIABLE

Ejecute en el PROMPT las siguientes instrucciones:

>>int('cos(x)')
>>int('x^2+x-2')
>>int('sec(x)')
>>int('sqrt(sec(x))')
>>int('cos(a*x)',x)
>>syms x,int('cos(a*x)',x)
>>syms a,int('cos(a*x)',a)

Comente y registre los resultados obtenidos en la ejecucin anterior.

%INTEGRACIN INDEFINIDA

%inicio de bloque
clear all
syms x y1 y2
y1=int(-1*(exp(x))*cos(2*x))
y2=int(-1*(exp(x))*sin(2*x))
pretty(y1)
pretty(y2)
%fin de bloque

%La INTEGRAL de un POLINOMIO

%inicio de bloque
%El polinomio es: x^5+1
polyint([1 0 0 0 0 1])
%La integral es el polinomio: x^6/6+x
%En formato vectorial: [1/6 0 0 0 0 1 0]
%fin de bloque


Ing. Teddy Negrete Pgina 61



%INTEGRAL DEFINIDA

Ejecute en el PROMPT las siguientes instrucciones:

>>syms x
>>int(cos(x),0,pi/4)
>>int(x,1,2)
>>int((1+x^2)^(-1),0,+inf)
>>int(1/sqrt(1-x^2),0,1)

Comente y registre los resultados obtenidos en la ejecucin anterior.

%inicio de bloque
syms x
f=x^2+x+2
A=int(f,0,1)
%fin de bloque

%inicio de bloque
clear all
syms x s m n
f1=sin(x);
f2=sin(s+2*x);
integral_1=int(f1)
integral_2=int(f2)
integral_3=int(f2,s) %integra respecto a s
int_definida1=int(f1,pi/2,pi)
%fin de bloque

%GRFICO EN COORDENADAS POLARES

%inicio de bloque
theta=linspace(0,2*pi)
rho=2*sin(4*theta);
figure(5)
polar(theta,rho)
title('Rosa de 8 petalos 2*sin(4*theta)')
%fin de bloque

%inicio de bloque
clear all
t=linspace(0,2*pi)
r=4*cos(t)
polar(t,r)
title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE
POLAR')
%fin de bloque


Ing. Teddy Negrete Pgina 62



%inicio de bloque
clear all
t=linspace(0,2*pi)
r=-4*cos(t)
polar(t,r)
title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE PI')
%fin de bloque

%inicio de bloque
clear all
t=linspace(0,2*pi)
r=4*sin(t)
polar(t,r)
title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE PI')
%fin de bloque

%inicio de bloque
clear all
t=linspace(0,2*pi)
r=-4*sin(t)
polar(t,r)
title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE PI')
%fin de bloque

%inicio de bloque
clear all
t=linspace(0,2*pi)
r1=4*cos(t)
polar(t,r1)
hold on
r2=-4*cos(t)
polar(t,r2)
hold on
r3=4*sin(t)
polar(t,r3)
hold on
r4=-4*sin(t)
polar(t,r4)
hold off
%fin de bloque

%inicio de bloque
clear all
t=0:0.1:2*pi
r1=2*sec(t)
polar(t,r1)
%fin de bloque


Ing. Teddy Negrete Pgina 63


%inicio de bloque
clear all
t=0:0.1:2*pi
r1=1+cos(t)
polar(t,r1)
title('LIMAZON CARDIOIDE')
%fin de bloque

%inicio de bloque
ezpolar('4*cos(t)')
%fin de bloque

%inicio de bloque
t=linspace(0,2*pi)
r=4*cos(t)
figure(2)
polar(t,r)
title('CIRCUNFERENCIA POLAR')
%fin de bloque

%inicio de bloque
syms x, V=int((2*pi*(10-x)*(x+9-x^2+3)),-3,4)
%fin de bloque
%METODOS DE INTEGRACIN NUMRICA
Hallar la integral
/ 4
0
sec( ) , x dx
t
}
utilice el Mtodo de Simpson con una
aproximacin de 1e(-6).

Resuelva con el mtodo analtico, aplicando la frmula:
| |
( )
2
0
5
4
2 0
0 1 2 1 0
( ) ( ) 4 ( ) ( ) ( ),
3 90 2
x
x
x x h h
f x dx f x f x f x f h x x h q

= + + = = +
}

Compruebe estos resultados con los obtenidos utilizando MATLAB:

%inicio de bloque
%METODO DE SIMPSON CON ERROR DE 1e(-6)
quad('sqrt(sec(x))',0,pi/4)
%fin de bloque

%inicio de bloque
%METODO DE CUADRATURA DE LOBATO CON ERROR DE "tol"
tol=1e-6
quadl('sqrt(sec(x))',0,pi/4,tol)
%fin de bloque



Ing. Teddy Negrete Pgina 64



%inicio de bloque
%METODO DE CUADRATURA DE LOBATO CON ERROR DE "tol"
tol=1e-16
q=quadl('sqrt(sec(x))',0,pi/4,tol)
vpa(q,16) %respuesta con 16 digitos de precision
%fin de bloque


%EXAMEN PARCIAL 09_02 CLCULO INTEGRAL
%inicio de bloque
ezpolar('3*sin(2*t)'), hold on
ezpolar('(9*sin(2*t))^(1/2)'), hold off
%fin de bloque

UNIVERSIDAD POLITCNICA SALESIANA.
REA DE CIENCIAS EXACTAS
CLCULO INTEGRAL
EXAMEN FINAL
26/ENERO/2010
Alumno : ______________________ Paralelo # 01i DIURNO

1. [4 Puntos] Hallar el rea encerrada por y=x
2
; xy=1; y=2.
2. [4 Puntos] Calcule el volumen del Slido de Revolucin formado al rotar la
regin encerrada por x=y
2
; x=y, alrededor del eje x=2.
3. [4 Puntos] Determine la longitud del arco de
2cos
,
4 4 2
x t
t
y sent
t t =
< <


4. [4 Puntos] Grafique las siguientes curvas polares:
a) r=6cos
b) r=3sen
5. [4 Puntos.] Determine y grafique los puntos de interseccin de las curvas
polares r=3sen2 y r
2
=9sen2.


Ing. Teddy Negrete Pgina 65



19. CLCULO VECTORIAL
Recordemos los lmites de funciones de 2 3 variables:
( ) ( )
( )
( ) ( )
( )
( ) ( ) ( ) ( ) ( ) ( )
( )
, 1,2 , / 4, /3
2 2 2 2
, 1,1 , 1,1 , , 1,2,3
lim lim cos
2
lim lim lim
x y x y
x y x y x y z
x y xy
x y x y
x y z
x y x y
t t

+

+ +


%LMITES DE FUNCIONES DE UNA O MAS VARIABLES
Ejecute en el PROMPT las siguientes instrucciones:

>>syms x y
>>limit(limit(x+y,x,1),y,2)
>>limit(limit(cos(x*y),pi/4),y,pi/3)
>>limit(limit((x^2-y^2)/(x-y),1),1)
>>limit(limit((x^2-2*y^2)/(x-y),1),1)
>>limit(limit(limit(x+y+z,x,1),y,2),3)
>>syms z,limit(limit(limit(x+y+z,x,1),y,2),3)
Comente y registre los resultados obtenidos en la ejecucin anterior.
Recordemos las derivadas de funciones de 2 3 variables:
( ) ( )
2 3 2 2
3
2 2 2
2
cos( ) 3 2
xy
xy xy
e xy y x
x y x y x y x x z z

| | c c c c | |
+
| |
c c c c c c c
\ . \ .

%DERIVACIN DE FUNCIONES DE UNA O MAS VARIABLES
Ejecute en el PROMPT las siguientes instrucciones:

>>syms x y z
>>diff(diff(2*x*y/(x-y),x),y)
>>diff(diff(exp(-x*y)+cos(x*y),y,2),x)
>>diff(3*y-2*x^3,x,2)
>>diff(diff(x*y/z^2,z),x)
Comente y registre los resultados obtenidos en la ejecucin anterior.
%inicio de bloque
syms x y
z=diff(diff(2*x*y/(x-y),x),y)
pretty(simplify(z))
%fin de bloque



Ing. Teddy Negrete Pgina 66



%inicio de bloque
clear all
syms a x
y=a^3*exp(x)-a^2*sin(x);
y_prima=diff(y) %Obtiene la derivada de una funcion y
y3_prima=diff(y,3) %Deriva y TRES veces con respecto a x
ya_prima=diff(y,a) %Deriva y respecto a la variable a
ya3_prima=diff(y,a,3) %Deriva TRES veces y con respecto a a
%fin de bloque

%inicio de bloque
clear all
syms x y z
f=z*x^2+y*x+2
A=int(f,y,z)
%fin de bloque

%inicio de bloque
clear all
syms x y z
f=sin(x)
A=int(f,y,z)
%fin de bloque

%inicio de bloque
clear all
syms x y z
f=sin((x^2)*y)
A=int(f,y,x,z)
%fin de bloque

%inicio de bloque
clear all
syms x y z
f=x+y+z
A=int(int(int(f,z,0,1),y,0,1),x,0,1)
%fin de bloque

%inicio de bloque
clear all
syms x y z
f=1
A=int(int(int(f,z,-sqrt(9-x^2-y^2),sqrt(9-x^2-y^2)),y,-sqrt(9-x^2),sqrt(9-
x^2)),x,-3,3)
%fin de bloque


Ing. Teddy Negrete Pgina 67



%inicio de bloque
clear all
syms r t a b
a=(r^3)*int((sec(t))^3,t,pi/4,atan(3/r))
b=simplify(a), pretty(b)
%fin de bloque

%inicio de bloque
clear all
syms r z b c
c=2*pi*int(int(r*sqrt(r^2+z^2),z,r,3),r,0,3)
b=simplify(c), pretty(b)
%fin de bloque

%inicio de bloque
clear all
syms r z b c
c=2*pi*int(int(r*sqrt(r^2+z^2),r,0,z),z,0,3)
b=simplify(c), pretty(b)
%fin de bloque


%SUPERFICIE EN SISTEMA RECTANGULAR

Recordemos algunas superficies cudricas y cilndricas estudiadas:
2 2
2 2
2 2 2
: 1 (0,0); 1
: (0,0,0)
: 2 1 (0,0,0)
Cilindro x y C r
Paraboloide z x y V
Elipsoide x y z C
+ = =
= +
+ + =

Utilicemos SUPERFICIES, para obtener el lugar geomtrico de las ecuaciones:
Cilndro Paraboloide Elipsoide



Ing. Teddy Negrete Pgina 68



Ejecute en el PROMPT las siguientes instrucciones:

>>syms x y
>>cylinder
>>cylinder(3)
>>ezsurf('x^2+y^2')
>>ezsurf('x^2+y^2',[-3 3 -3 3])
>>ellipsoid(0,0,0,1,1/sqrt(2),1,20)
>>ellipsoid(0,0,0,1,1/sqrt(2),1,30)
>>ellipsoid(0,0,0,1,1/sqrt(2),1,10)
>>sphere
>>sphere(20)
Comente y registre los resultados obtenidos en la ejecucin anterior.
Superficie CILNDRICA en Z, apartir de Curva PARAMETRIZADA:

%inicio de bloque
%Cilindro elptico
t=(0:0.1:2*pi)'
h=-2:0.1:2
x=2*cos(t)*ones(size(h))
y=3*sin(t)*ones(size(h))
z=ones(1,size(t))'*h
surf(x,y,z)
%fin de bloque

Superficies de FUNCIN EXPLCITA:

%inicio de bloque
clc
close all
x=-7.5:0.5:7.5;
y=x;
[X,Y]=meshgrid(x,y) %El agregar eps elimina la divisin por cero cuando x=y=0.
R=sqrt(X.^2+Y.^2)+eps %La matriz R contiene el radio de cada punto en [X,Y].
Z=sin(R)./R;
%La matriz Z contiene el seno del radio dividido por el radio para cada
%punto del plano. Con el comando mesh se genera la grfica.
figure(16)
surf(X,Y,Z)
%Grafica de superficie
hold
title('Superfice de la ecuacin z=[sen(x^2+y^2)]/(x^2+y^2)')
%fin de bloque



Ing. Teddy Negrete Pgina 69



%inicio de bloque
close all
x=-1:0.1:1;
y=x;
[X,Y]=meshgrid(x,y)
Z=4-X.^2-Y.^2
figure(17)
surf(X,Y,Z)
hold
Z=X.^2+Y.^2-4
surf(X,Y,Z)
%fin de bloque


%inicio de bloque
h=@(x,y)x.*y - x;
ezsurf(h)
ezsurf(@peaks)
%fin de bloque


%inicio de bloque
clear all
f=@(x,y)(x^2+y^2)
ezsurf(f)
%fin de bloque


%inicio de bloque
close all
ezsurf('x^2+y^2')
%fin de bloque


%inicio de bloque
ezsurf('y^2+y+2')
%fin de bloque


%inicio de bloque
ezsurf('sqrt(x^2+y^2)')
%fin de bloque

%inicio de bloque
ezsurf('x*y-x')
%fin de bloque



Ing. Teddy Negrete Pgina 70



%inicio de bloque
%Superficie de la parte Real de un Funcin de Variable Compleja
ezsurf('real(atan(x+i*y))')
%fin de bloque


%inicio de bloque
%Superficie Clindrica Inclinada
ezsurf('x^2-y')
%fin de bloque


%inicio de bloque
%Superficie Cilndrica PARALELA AL EJE Y
ezsurf('x^2')
%fin de bloque


%inicio de bloque
ezsurf('x^2+y^2-z^2')
%Por qu se produce un error?
%fin de bloque


%inicio de bloque
ezsurf('6-3*x-2*y')
%fin de bloque


%Usando Funcin Potencia

%inicio de bloque
ezsurf('(x^2+y^2-1)^(1/2)',[-10,10],[-10,10])
hold on
ezsurf('-(x^2+y^2-1)^(1/2)',[-10,10,-10,10])
hold off
%fin de bloque

%Usando Funcin Raz Cuadrada SQRT

%inicio de bloque
ezsurf('sqrt(x^2+y^2-1)',[-10,10],[-10,10])
hold on
ezsurf('-sqrt(x^2+y^2-1)',[-10,10,-10,10])
hold off
%fin de bloque



Ing. Teddy Negrete Pgina 71



%inicio de bloque
ezsurf('4-(x^2+y^2)')
hold on
ezsurf('x^2+y^2')
hold off
%fin de bloque


GRAFICOS DE CURVAS PARAMETRIZADAS ES EL ESPACIO:

Ejecute en el PROMPT las siguientes instrucciones:

>>ezplot3('t-1','2-3*t','1')
>>ezplot3('t','t^3-t^2+2','t+1')
>>ezplot3('3*cos(t)','3*sin(t)','2*t')
>>ezplot3('3*cos(t)','3*sin(t)','2*t',[0,5*pi])
Comente y registre los resultados obtenidos en la ejecucin anterior.

CURVAS DE NIVEL
%inicio de bloque
[x y]=meshgrid(-1:0.1:1,-1:0.1:1)
z=x.^2+y.^2
contour(z)
%fin de bloque

ECUACIN DE LAPLACE:
Dada la funcin
( )
2 2
2
2 2
x y
z
x y

=
+
comprobar que satisface la EDP
2 2
2 2
0
z z
x y
c c
+ =
c c

%inicio de bloque
clear all
syms x y z u
z=(x^2-y^2)/(x^2+y^2)^2
zx2=diff(z,x,2)
zy2=diff(z,y,2)
u=zx2+zy2
%
simplify(u) %simplifica la expresin
%
pretty(zx2) %mejora la presentacin de la expresin algebraica
pretty(zy2) %mejora la presentacin de la expresin algebraica
%fin de bloque


Ing. Teddy Negrete Pgina 72




%EXAMEN PARCIAL 2009_01 CLCULO VECTORIAL
%Si es posible utilizando las funciones y comandos de MATLAB, elabore los
graficos correspondientes:
%Calcule los lmites y derivadas planteadas en este examen.
UNIVERSIDAD POLITCNICA SALESIANA.
REA DE CIENCIAS EXACTAS
CLCULO VECTORIAL
EXAMEN PARCIAL DIURNO
___/JULIO/2009
Alumno : ______________________ Paralelo # _____

1. [4 Puntos.] Dar el nombre y bosquejar el grfico de:
a) x
2
y
2
+ z
2
+ 1= 0
b) x
2
z
2
+ y 2 = 0
c) x + y + z = 5
d) x
2
+ y
2
+ z
2
= 1
2. [4 Puntos.] Determinar en t=2: k, a
T
, si
2 3
( ) , , ( 1) r t t t t =< + >.
3. [4 Puntos.] Calcular los lmites, si existen:

a)
2 2
4 4
) 1 , 0 ( ) , (
) 1 (
) 1 (
lim
+

y x
y x
y x

b)
z y
yz xy
z y x
sec
sec sec
lim
) , 1 , 3 / ( ) , , (

+
t t

4. [4 Puntos.] Dada la ecuacin
2 2 2
2 2 2
0,
u u u
x y z
c c c
+ + =
c c c
verifique si la funcin
2 2 2 1/ 2
( ) u x y z

= + + satisface esta ecuacin.
5. [4 Puntos.] Dada la funcin
1
tan ; ln ; .
t
y
u x t y e
x

| |
= = =
|
\ .
Hallar u
t
sin
realizar la composicin de las funciones.


Ing. Teddy Negrete Pgina 73


20. ECUACIONES DIFERENCIALES
%RESOLUCIN DE EDO DE 1 ORDEN

%inicio de bloque
dsolve('Dy=y/t+(y/t)^(1/2)')
%fin de bloque

%inicio de bloque
dsolve('D2y=exp(2*t)+5*Dy-4*y,y(0)=1,Dy(0)=0')
%fin de bloque

%inicio de bloque
dsolve('D3y=sin(t)+Dy')
%fin de bloque

%inicio de bloque
dsolve('D2y=exp(-t)*cos(3*t)+Dy-2*y')
%fin de bloque

%inicio de bloque
dsolve('D2y=y+exp(2*t)*cos(3*t)')
%fin de bloque


%TRANSFORMADA DE LAPLACE

%inicio de bloque
syms A s t
F=int((exp(-s*t)*(A-t)),t,0,A)+int((exp(-s*t)),t,A,inf)
simplify(F)
pretty(F)
%fin de bloque

%inicio de bloque
syms t a
a=laplace(exp(-3*t)*t*cos(2*t))
b=simplify(a)
pretty(b)
%fin de bloque

%ANTITRANSFORMADA DE LAPLACE

%inicio de bloque
syms s t
r=ilaplace(s/((s^2+4)*(s^2+9)))
%fin de bloque



Ing. Teddy Negrete Pgina 74



%inicio de bloque
syms s t
r1=ilaplace(3*s/((s^2+1)*(s^2+9)))
r=inline(r1)
t=pi/4
r(t)
while t<pi/3
t=t+pi/(10*12)
r(t)
end
save r.mat r
%fin de bloque

%LA INTEGRAL CONVOLUCIN

%inicio de bloque
%f(t)=exp(2*t)*heaviside(t)
%g(t)=exp(-3*t)*heaviside(t)
%Hallar f*g(t)
syms t z
convolucion=int(exp(2*(t-z))*exp(-3*z),z,0,t)
%fin de bloque

%inicio de bloque
%
%PROPIEDAD CONMUTATIVA
%
%f(t)=exp(2*t)*heaviside(t)
%g(t)=exp(-3*t)*heaviside(t)
%Hallar g*f(t)
syms t z
convolucion=int(exp(2*z)*exp(-3*(t-z)),z,0,t)
%fin de bloque

%inicio de bloque
%f(t)=cos(t)*heaviside(t)
%g(t)=sen(t)*heaviside(t)
%Hallar f*g(t)
syms t z
convolucion_1=int(cos(t-z)*sin(z),z,0,t)
%
%PROPIEDAD CONMUTATIVA
%
%Comprobar g*f(t)
convolucion_2=int(cos(z)*sin(t-z),z,0,t)
%fin de bloque


Ing. Teddy Negrete Pgina 75




Nota: Todos los temas tienen igual valor

TEMA 1.
Encuentre la solucin de la ecuacin diferencial
y'''+y''+4y'+4y=0; y(0)=0, y'(0)=-1, y"(0)=5




TEMA 2.
Resuelva la ecuacin de Cauchy-Euler
3 2
x y'''-x y''-2xy'-2y 0 =




TEMA 3.
Resuelva la ecuacin diferencial y'''-7y'+6y=2sen(x). Utilice el Mtodo
de Variacin de Parmetros.




TEMA 4.
Determine:

a) L
t-
sen
4
t ( | |
| (
\ .
b)
1
L
( ) ( )
2
1
s+1 s-3
(
(
(






TEMA 5.
Resuelva el problema de valor inicial usando el Mtodo de la
Transformada de Laplace.

y''-2y'+10y=0; y(0)=3 , y'(0)=3
UNIVERSIDAD POLITCNICA SALESIANA
AREA DE CIENCIAS EXACTAS
EXAMEN FINAL DE ECUACIONES DIFERENCIALES (ELECTRICA)
Nombre: __________________________________________
Paralelo: _________________ Firma: ______________
Fecha: ____ de febrero del 2010




Ing. Teddy Negrete Pgina 76



%EXAMEN FINAL 2009_2 ECUACIONES DIFERENCIALES:


%inicio de bloque
%
%1
dsolve('D3y=-4*y-4*Dy-D2y, y(0)=0, Dy(0)=-1, D2y(0)=5')
%fin de bloque


%inicio de bloque
%
%2
dsolve('D3y=2*t^(-3)*y+2*t^(-2)*Dy+t*t^(-1)*D2y')
dsolve('D3y=4*t^(-3)*y+2*t^(-2)*Dy+t*t^(-1)*D2y')
%este resultado es una funcin de una hipergeometrica
%fin de bloque


%inicio de bloque
%
%3
dsolve('D3y=2*sin(t)-6*y+7*Dy')
%fin de bloque

%inicio de bloque
%
%4a
syms t
laplace(sin(t/4-pi/4))
%fin de bloque


%inicio de bloque
%
%4b
syms s
ilaplace(((s+1)^(-2))*((s-3)^(-1)))
%fin de bloque


%inicio de bloque
%
%5
dsolve('D2y=-10*y+2*Dy, y(0)=3, Dy(0)=3')
%fin de bloque



Ing. Teddy Negrete Pgina 77




21. MATEMATICAS AVANZADAS
%FUNCIN PERODICA DEFINICIN Y GRFICOS
%inicio de bloque
f=inline('sin(t)')
x=0:pi/100:pi
y=f(x)
plot(x,y)
%fin de bloque

%inicio de bloque
%Funcin Perodica
%
clc
clear all
x=-1:.1:1
y=x.*(1-x)
for n=-3:3
t=x+n*2
plot(t,y)
hold on
end
grid
hold off
%fin de bloque

%inicio de bloque
t=-1:.1:1
f=dirac(t)
plot(t,f)
%fin de bloque


%inicio de bloque
t=-1:.1:1
f=heaviside(t)
plot(t,f,'b+','linewidth',4)
%fin de bloque

%inicio de bloque
t=-1:.1:1
f=sign(t)
plot(t,f,'b+','linewidth',4)
%fin de bloque



Ing. Teddy Negrete Pgina 78



%inicio de bloque
t=-1:.1:1
f=rectpuls(t)
plot(t,f,'b+','linewidth',4)
t=-1:.1:1
g=rectpuls(t)
%f=int(g,-inf,inf)
plot(t,f,'b+','linewidth',4)
%fin de bloque


%inicio de bloque
t=-2*pi:.1:2*pi
f=sinc(t)
plot(t,f,'b+','linewidth',4)
%fin de bloque


%LMITE, TRANSFORMADA DE LAPLACE, CONVOLUCIN, CONVOLUCIN
DISCRETA

%inicio de bloque
syms x
L=limit((sin(x))/x,x,0)
%fin de bloque

%inicio de bloque
syms s
f=ilaplace(3*s/((s^2+9)*(s^2+16)))
pretty(f)
%fin de bloque

%inicio de bloque
syms t z fz gz
f=2*exp(-t)
g=3*exp(2*t)
fz=2*exp(-(t-z))
gz=3*exp(2*z)
fg=int(fz*gz,z,0,t)
simplify(fg)
pretty(fg)
%fin de bloque

%inicio de bloque
%y=conv(y1,y2)
%fin de bloque



Ing. Teddy Negrete Pgina 79



%inicio de bloque
syms t z fz gz
f=inline('2*exp(-t)')
g=inline('3*exp(2*t)')
fz=f(t-z)
gz=g(z)
fg=int(fz*gz,z,0,t)
simplify(fg)
pretty(fg)
%fin de bloque

%inicio de bloque
syms t z fz gz
f=inline('cos(2*t)')
g=inline('(1/3)*sin(3*t)')
fz=f(t-z), gz=g(z)
fg=int(fz*gz,z,0,t)
simplify(fg)
pretty(fg)
%fin de bloque

%TRANSFORMADA DE FOURIER

%inicio de bloque
syms t F
F=fourier((heaviside(t))*exp(-t))
pretty(F)
%fin de bloque

%inicio de bloque
syms t G
G=fourier(-(heaviside(t))*exp(-t))
pretty(G)
%fin de bloque

%inicio de bloque
syms t H
H=fourier((heaviside(-t))*exp(t))
pretty(H)
%fin de bloque

%inicio de bloque
syms t J
J=fourier(-(heaviside(-t))*exp(t))
pretty(J)
%fin de bloque



Ing. Teddy Negrete Pgina 80



%inicio de bloque
syms t,F=fourier(heaviside(t)),pretty(F)
%fin de bloque


%inicio de bloque
syms t,F=fourier(dirac(t)),pretty(F)
%fin de bloque


%inicio de bloque
syms t, F=fourier((sin(t))*heaviside(t)), pretty(F)
%fin de bloque

%ANTI-TRANSFORMADA DE FOURIER

%inicio de bloque
syms w f, f=ifourier(1/(1+w)),pretty(f)
%fin de bloque


%inicio de bloque
syms w f, f=ifourier(1/(1+i*w)),pretty(f)
%fin de bloque


%inicio de bloque
syms w f, f=ifourier(1/(-1+i*w)),pretty(f)
%fin de bloque


%inicio de bloque
syms w f, f=ifourier(1/(1-i*w)),pretty(f)
%fin de bloque


%inicio de bloque
syms w f, f=ifourier(1/(-1-i*w)),pretty(f)
%fin de bloque


%inicio de bloque
syms w f
f=ifourier(1/(-w^2+1))
pretty(f)
%fin de bloque



Ing. Teddy Negrete Pgina 81



%inicio de bloque
syms w f
f=ifourier(1/(2+i*3*w-w^2))
pretty(f)
%fin de bloque


%PARA MEMORIZAR LA FORMULA F[SGN(t)SEN(wot)]=2wo/((j*w)^2+wo^2)

%inicio de bloque
syms t f
f=fourier((2*heaviside(t)-1)*sin(3*t))
pretty(f)
%fin de bloque


%PARA MEMORIZAR LA FORMULA F[SGN(t)COS(wot)]=2jw/((jw)^2+wo^2)

%inicio de bloque
syms t f
f=fourier((2*heaviside(t)-1)*cos(3*t))
pretty(f)
%fin de bloque


%PARA MEMORIZAR LA FORMULA
F[EXP(at)H(t)SEN(wot)]=wo/((jw+a)^2+wo^2)

%USANDO PROPIEDAD DE PRODUCTO POR SENO

%inicio de bloque
syms t f
f=fourier(exp(-2*t)*heaviside(t)*sin(3*t))
pretty(f)
%fin de bloque


%PARA MEMORIZAR
%LA FORMULA F[EXP(at)H(t)COS(wot)]=(jw+a)/((jw+a)^2+wo^2)


%inicio de bloque
syms t f
f=fourier(exp(-2*t)*heaviside(t)*cos(3*t))
pretty(f)
%fin de bloque



Ing. Teddy Negrete Pgina 82


%PARA MEMORIZAR
%LA FORMULA F[SGN(t)SEN(wot)]=2wo/((j*w)^2+wo^2) CON
%DEZPLAZAMIENTO EN LA FRECUENCIA EL VALOR W=j(W-a), ES DECIR QUE
%F[EXP(jat)SGN(t)SEN(wot)]=2wo/(jw-ja)^2+wo^2)

%inicio de bloque
syms t f
f=fourier(exp(i*2*t)*(2*heaviside(t)-1)*sin(3*t))
pretty(f)
%fin de bloque


%PARA MEMORIZAR
%LA FORMULA F[SGN(t)COS(wot)]=2jw/((j*w)^2+wo^2) CON
%DEZPLAZAMIENTO EN LA FRECUENCIA EL VALOR W=j(W-a), ES DECIR QUE
%F[EXP(jat)SGN(t)COS(wot)]=2(jw-ja)/(jw-ja)^2+wo^2)

%inicio de bloque
syms t f
f=fourier(exp(i*2*t)*(2*heaviside(t)-1)*cos(3*t))
pretty(f)
%fin de bloque

%inicio de bloque
syms w f
f=ifourier(1/(2+i*3*w-2*w^2))
pretty(f)
%fin de bloque


%PARA MEMORIZAR
%LA FORMULA F[SGN(t)SEN(w0t)] CON DESPLAZAMIENTO EN EL
%TIEMPO CON FACTOR IMAGINARIO EXP(-jto)

%inicio de bloque
syms t f
f=fourier(exp(-4*i*t)*(2*heaviside(t)-1)*sin(3*t))
pretty(f)
%fin de bloque


%SIN EMBARGO LA FORMULA F[SGN(t)SEN(w0t)] CON DESPLAZAMIENTO EN EL
%TIEMPO CON FACTOR REAL EXP(-j*jto), NO ES POSIBLE TENER RESPUESTA
syms t f
f=fourier(exp(i*i*2*t)*(2*heaviside(t)-1)*sin(3*t))
pretty(f)
%fin de bloque



Ing. Teddy Negrete Pgina 83



%PERO USANDO LA ANTI TRANSFORMADA O TRANSFORMADA INVERSA

%inicio de bloque
syms w f
f=ifourier(6/((i*w+2)^2+(3)^2))
pretty(f)
%fin de bloque

%inicio de bloque
syms w f
f=ifourier(i*6*w/(w^2+4))
pretty(f)
%fin de bloque

%inicio de bloque
syms t f
f=fourier(2*heaviside(-4*t)-1)
pretty(f)
%fin de bloque

%inicio de bloque
syms w f
f=ifourier(exp(i*w*2)/(i*w+5))
pretty(f)
%fin de bloque

%inicio de bloque
syms w f
f=ifourier(5/(w^2+4))
pretty(f)
%fin de bloque

%inicio de bloque
syms t F
F=fourier((1/2)*cos(4*t)*(-1+2*heaviside(t)))
pretty(F)
%fin de bloque

%inicio de bloque
syms w f
f=simplify(((i*w-1)*(i*w+1))/((i*w+2)*(i*w-2)*(i*w+3)*(i*w-3)))
pretty(f)
%fin de bloque



Ing. Teddy Negrete Pgina 84



%inicio de bloque
syms t f
f=fourier(5*sin(2*t-4))
pretty(f)
%fin de bloque


%inicio de bloque
syms t f
f=fourier(5*sin(t-2))
pretty(f)
%fin de bloque


%inicio de bloque
syms t f
f=fourier(10*exp(4*t)*heaviside(-t)*cos(5*t))
pretty(f)
%fin de bloque

%inicio de bloque
syms t f
f=fourier(7*(2*heaviside(1-t)-1))
pretty(f)
%fin de bloque


%inicio de bloque
syms t f
f=fourier(exp(-abs(3*t)))
pretty(f)
%fin de bloque


%inicio de bloque
syms w f
f=ifourier(exp(i*4*w)*(1/(i*w+1)))
pretty(f)
%fin de bloque


%inicio de bloque
syms w f
f=ifourier(exp(i*2*w)*(1/(i*w+4)))
pretty(f)
%fin de bloque



Ing. Teddy Negrete Pgina 85



%inicio de bloque
syms w f
f=ifourier(dirac(w)*(1/(i*w+1)))
pretty(f)
%fin de bloque



%TRANSFORMADA Y ANTITRANSFORMADA Z

%inicio de bloque
syms t x y
x=ztrans(2^t)
y=simplify(x)
pretty(y)
%fin de bloque

%inicio de bloque
syms t x y z
x=iztrans(z/(z-3))
y=simplify(x)
pretty(y)
%fin de bloque

%inicio de bloque
syms z f g h
f=z*(3/(z+2)^2-2/(z-2)+3/(z+2))
g=simplify(f)
pretty(g)
h=iztrans(g)
pretty(h)
%fin de bloque

%inicio de bloque
clear
clc
ezplot('4*x*(2-x)',[-3,2,-4,5])
%fin de bloque

%inicio de bloque
clear all
clc
x=-1:0.1:3
y=4.*x.*(2-x)
plot(x,y)
%fin de bloque



Ing. Teddy Negrete Pgina 86







UNIVERSIDAD POLITCNICA SALESIANA.
REA DE CIENCIAS EXACTAS
MATEMTICAS AVANZADAS
EXAMEN FINAL
26/ENERO/2010
Alumno : ______________________ Paralelo # 01 NOCTURNO

1. [3 Puntos] Hallar F [(x)cos
2
2x 2sgn(x)sen
2
3x].
2. [3 Puntos] Calcule F
-1
[(w1)(w+2)
1
+ (w
2
+4)
1
].
3. [3 Puntos] Determine Z [(t)(2cost + sent 2t + e
4t
)].
4. [3 Puntos] Hallar Z
-1
[z/(z1) + (z2)
1
+ z/(z
2
+4)].
5. [4 Puntos.] Halle la solucin de la ecuacin
2 2
2 2
4
u u
t x
c c
=
c c
, con:
a) Condicin de frontera: (0, ) 0 ( , ) 0 0 u t u t t t = = >
b) Condicin inicial: ( ,0) 3 2 5 ( ,0) 0 0
t
u x sen x sen x u x x t = = < <
6. [4 Puntos.] Halle la solucin de la ecuacin
2
2
3
u u
t x
c c
=
c c
, con:
a) Condicin de frontera: (0, ) 0 ( , ) 0 0 u t u t t t = = >
b) Condicin inicial: ( ,0) 4 2 6 0 u x sen x sen x x t = < <



Ing. Teddy Negrete Pgina 87



%EXAMEN FINAL 2009_02 MATEMTICAS AVANZADAS:


%inicio de bloque
syms t
F=fourier((exp(-3*t))*heaviside(t))
%fin de bloque

%inicio de bloque
syms t a
F=fourier((exp(-a*t))*heaviside(t),t,w)
%NO MUESTRA EN FUNCIN DE A
%fin de bloque


%inicio de bloque
syms t
fourier(heaviside(t))
%fin de bloque

%inicio de bloque
syms t
F=fourier((2*heaviside(t)-1)*cos(t))
pretty(F)
%fin de bloque


%inicio de bloque
syms w
ifourier(1/(1+w))
%fin de bloque

%inicio de bloque
syms w
f=ifourier(1/(w^2+4))
pretty(f)
%fin de bloque


%inicio de bloque
syms t
F=fourier((1/2)*heaviside(t)-(2*heaviside(t)-
1)+(1/2)*(heaviside(t))*cos(4*t)+(2*heaviside(t)-1)*cos(6*t))
G=simplify(F)
pretty(G)
%fin de bloque



Ing. Teddy Negrete Pgina 88




%inicio de bloque
syms t
F=fourier((2*heaviside(t)-1)*cos(6*t))
pretty(F)
%fin de bloque

%inicio de bloque
syms w
ifourier(3/(2+w))
%fin de bloque

%inicio de bloque
syms w
f=ifourier(1)
%fin de bloque

%inicio de bloque
syms t
F=fourier(dirac(t))
%fin de bloque

%inicio de bloque
syms w
f=ifourier(1-3/(w+2)+1/(w^2+4))
pretty(f)
%fin de bloque

%inicio de bloque
syms z
f=iztrans(z/(z^2+4))
%fin de bloque











Ing. Teddy Negrete Pgina 89


22. MTODOS NUMRICOS
INTERPOLACIN POLINMICA
Dados K puntos P
i
(x
i
,y
i
), obtener una funcin polinmica de grado N, que
represente con la mejor aproximacin la funcin.

%inicio de bloque
x=[1 2 3]
y=[1 4 9]
polyfit(x,y,2)
%fin de bloque
La solucin es: 1 0 0, es decir p(x)=1x
2
+ 0x + 0
%inicio de bloque
x=[1 2 3 4]
y=[1 2 7 9]
polyfit(x,y,3)
%fin de bloque
La solucin es: -1.1667 9.0000 -17.8333 11.0000, es decir
3 2
( ) 1.1667 9 17.8333 11 p x x x x = + +
%inicio de bloque
x=[1 2 3 4]
y=[1 2 7 9]
format rat
polyfit(x,y,3)
%fin de bloque
La solucin es: -7/6 9 -107/6 11, es decir
3 2
7 107
( ) 9 11
6 6
p x x x x = + +
MTODO DE NEWTON PARA HALLAR LA RAZ APROXIMADA
Dada una funcin f(x) continua y derivable, y 2 valores xa, xb, tal que cumplan
con el Teorema del valor Intermedio. Usando el mtodo de Newton, hallar una
raz aproximada con N cifras de precisin.

Hallar una raz de la funcin ( )
x
f x x e

= en el intervalo [0, 1].


Use el Mtodo de Newton
1
( )
'( )
i i
f x
x x
f x
+
= con una precisin de 3 cifras decimales.
Probemos el Teorema del Valor Intermedio.
f(0)= 0 - e
0
= -1
f(1)= 1- e
-1
= 0.6321
Por lo tanto en el intervalo [0,1], hay una RAZ.



Ing. Teddy Negrete Pgina 90


Usemos un SCRIPT para encontrar la raz, y mostremos el resultado.


%inicio de bloque
clear all
syms x y
y=x-exp(-x)
dy=diff(y)
f=inline(y)
df=inline(dy)
x=0
N=3
E=10^(-1-N)
while(abs(f(x))>E)
x=x-f(x)/df(x)
end
x
f(x)
%fin de bloque

INTEGRACIN NUMRICA

Dada la funcin f(x)=x
2
, en el intervalo [a=0, b=10], elaborar un SCRIPT para
calcular aproximadamente la integral definida ( ) ,
b
a
f x dx
}
usando el mtodo:
1. TRAPECIOS (con N=5 trapecios, n=5)
2. SIMPSON (con N=5 parbolas, n=10)
Aplicando el mtodo analtico a esta integral definida, tenemos:
10
10
3
2
0
0
1000
333
3 3
x
x dx = = ~
}

Este es el valor EXACTO de la Integral Definida solicitada.
Recordemos la frmula de la REGLA DEL TRAPECIO:

Sabemos que este es un valor aproximado, realicemos el algoritmo con MATLAB.

Ing. Teddy Negrete Pgina 91



%METODO DE LOS TRAPECIOS

%inicio de bloque
a=0, b=10
n=5
h=(b-a)/n
x=a:h:b
y=x.^2
s=0
for(i=1:n-1)
s=s+(a+i*(b-a)/n).^2
end
resultado=h/2*(a.^2+2*s+b.^2)
%fin de bloque
Recordemos la frmula de la REGLA DE SIMPSON:

Sabemos que este es un valor aproximado, realicemos el algoritmo con MATLAB.
%METODO DE SIMPSON

%inicio de bloque
a=0,b=10,n=10,h=(b-a)/n
x=a:h:b,y=x.^2
s1=0,s2=0
for(i=1:n/2)
s1=s1+(a+(2*i-1)*(b-a)/n).^2
end
for(i=1:n/2-1)
s2=s2+(a+2*i*(b-a)/n).^2
end
resultado=h/3*(a.^2+4*s1+2*s2+b.^2)
%fin de bloque


Ing. Teddy Negrete Pgina 92


23. ESTADSTICA

%GRAFICOS UTILIZADOS EN ESTADISTICA DESCRIPTIVA

%inicio de bloque
clear all
x=linspace(-10,10,21);
y=exp(-x.*x);
bar(x,y)
title('CURVA DE GAUSS EN BARRAS')
%fin de bloque

%inicio de bloque
clear all
x=linspace(-10,10,21);
y=exp(-x.*x);
stairs(x,y,'s')
title('CURVA DE GAUSS EN ESCALERAS')
%fin de bloque

%inicio de bloque
clear all
x=linspace(-5,5,50)
y=randn(5000,1)
hist(y,x)
title('HISTOGRAMA DE LA CAMPANA DE GAUSS')
%fin de bloque

%inicio de bloque
t=fix(1+10*rand(1,5))
pie(t)
title('GRAFICO CIRCULAR')
%fin de bloque

%ANALISIS DE DATOS EN ESTADISTICA DESCRIPTIVA
%inicio de bloque
x=fix(1+20*rand(40,1))
display(' media; mediana; moda; desviacion; varianza; covarianza')
display(' ')
mean(x),median(x),mode(x),std(x),var(x),cov(x)
%fin de bloque


Ing. Teddy Negrete Pgina 93


24. SEALES Y SISTEMAS

%GRFICO DE UNA FUNCIN DISCRETA

%inicio de bloque
n=2:15
x=ones(1,5)
y=ones(1,10)
z=conv(x,y)
stem(n,z)
%fin de bloque


%ANLISIS EN FRECUENCIA USANDO LA FFT DE UNA SEAL
%y(t) contaminada con un ruido

%inicio de bloque
Fs = 1000;
T = 1/Fs;
L = 1000;
t = (0:L-1)*T;
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t))
plot(Fs*t(1:50),y(1:50))
%fin de bloque

%inicio de bloque
NFFT = 2^nextpow2(L)
Y = fft(y,NFFT)/L
f = Fs/2*linspace(0,1,NFFT/2+1)
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Espectro de y(t)')
xlabel('Frecuencia (Hz)')
ylabel('|Y(f)|')
%fin de bloque

%TRANSFORMADA Z

%inicio de bloque
clc
clear
syms k t
k=2^t+cos(3*t)-3*t^2
tz=ztrans(k)
%fin de bloque



Ing. Teddy Negrete Pgina 94


25. TEORA ELECTROMAGNTICA
%CONVERSION DE SISTEMAS COORDENADOS

Ejecute en la "LNEA DE COMANDOS":

>>[x y]=pol2cart(pi/3,1)
>>[x y]=pol2cart(-2*pi/3,-2)
>>[t r]=cart2pol(2,2)
>>pi/4
>>2*sqrt(2)
>>[t r]=cart2pol(-1,sqrt(3))
>>2*pi/3
>>[x y z]=sph2cart(0,0,1)
>>[x y z]=sph2cart(pi/2,0,1)
>>[x y z]=sph2cart(pi/2,pi,1)
>>[x y z]=sph2cart(pi/2,pi/2,1)
>>[x y z]=sph2cart(3*pi/2,0,1)
>>[t,f,r]=cart2sph(0,1,0)
>>pi/2
>>[t,f,r]=cart2sph(1,0,0)
>>[t,f,r]=cart2sph(0,0,1)
>>pi/2

Analice y comente los resultados obtenidos.

%GRFICOS EN EL PLANO COMPLEJO (FASORES)

%inicio de bloque
x=1
compass(x)
%fin de bloque

%inicio de bloque
close
y=-3*j
compass(y)
%fin de bloque

%inicio de bloque
close
z=1+i
compass(z)
%fin de bloque



Ing. Teddy Negrete Pgina 95




%inicio de bloque
close
x=2
feather(x)
%fin de bloque

%inicio de bloque
close
y=-4*j
feather(y)
%fin de bloque

%inicio de bloque
close
z=-2-4*i
feather(z)
%fin de bloque

%inicio de bloque
close
clc
clear
compass(eig(10*rand(5)))
%fin de bloque

%inicio de bloque
close
clear
clc
feather(eig(10*rand(5)))
%fin de bloque

%inicio de bloque
%exponente 0 o 1 para dar el signo
x=fix(2*rand(1,10))
y=1:10
%valores alternados, positivos o negativos
z=(-1).^x.*y
%diagrama de barras
bar(z)
%fin de bloque


Ing. Teddy Negrete Pgina 96


1.4 Control de flujo de instrucciones en MATLAB.
Condicional simple
Condicional mltiple
Repeticin condicionada
Repeticin automtica

CONTROL DE FLUJO DE INSTRUCCIONES
Como ya se ha dicho varias veces (incluso con algn ejemplo) MATLAB es
una aplicacin que se puede programar muy fcilmente. De todas formas, como
lenguaje de programacin pronto ver que no tiene tantas posibilidades como
otros lenguajes (ni tan complicadas). Se comenzar viendo las bifurcaciones y
bucles, y la lectura y escritura interactiva de variables, que son los elementos
bsicos de cualquier programa de una cierta complejidad.
Bifurcaciones y bucles:
MATLAB posee un lenguaje de programacin que (como cualquier otro
lenguaje) dispone de sentencias para realizar bifurcaciones y bucles. Las
bifurcaciones permiten realizar una u otra operacin segn se cumpla o no una
determinada condicin. La Figura No. 1 muestra tres posibles formas de
bifurcacin.


Figura No.1
26. Elabore otro archivo, con el nombre control_flujo.m, comente las lneas
de la estructura, explicando el significado de la ejecucin y concluya en forma
general por cada bloque:


Ing. Teddy Negrete Pgina 97


%FLUJO DE INSTRUCCIONES: ESTRUCTURAS DE CONTROL

%inicio de bloque
%CONDICIONAL: SI
clear all
disp('Es mayor de edad?')
x=input('ingrese su edad en nmero de aos: ');
if(x>18)
disp('SI es mayor de edad')
end
%fin de bloque

%inicio de bloque
%CONDICIONAL: SI .. SINO
clear all
x=input('ingrese un nmero entero, del 1 al 10: ');
if(x>=5)
disp('es mayor o igual que 5')
else
disp('es menor que 5')
end
%fin de bloque

%inicio de bloque
%CONDICIONAL: SI ANIDADO
clear all
x=input('ingrese una hora desde las 7h00 hasta las 22h00: ');
if x>=7 & x<12
disp('horario diurno')
elseif x>=12 & x<18
disp('horario vespertino')
elseif x>=18 & x<=22
disp('horario nocturno')
else
disp('ingreso mal la hora')
end
%fin de bloque

Bucles o Repeticiones:

%LAZO DE REPETICIN AUTOMTICA

%inicio de bloque
clear all
for i=1:0.5:10
disp('Hola')
end
%fin de bloque


Ing. Teddy Negrete Pgina 98


%inicio de bloque
%ndices con pasos predeterminado "1"
clear all
i=(1:10)
%o su equivalente
clear all
i=1:10
%
%fin de bloque

%inicio de bloque
clear all
t2=clock
for i=1:100000 end
t3=clock
etime(t3,t2)
%fin de bloque

%inicio de bloque
clear all
t2=clock
for i=1:100000
i*1
end
t3=clock
etime(t3,t2)
%fin de bloque

%inicio de bloque
clear all
t2=clock
for i=1:100000
i*1;
end
t3=clock
etime(t3,t2)
%fin de bloque

Figura No.2



Ing. Teddy Negrete Pgina 99



La Figura No.2 muestra dos posibles formas de bucle, con el control
situado al principio o al final del mismo. Si el control est situado al comienzo del
bucle es posible que las sentencias no se ejecuten ninguna vez, por no haberse
cumplido la condicin cuando se llega al bucle por primera vez. Sin embargo, si
la condicin est al final del bucle las sentencias se ejecutarn por lo menos una
vez, aunque la condicin no se cumpla. Muchos lenguajes de programacin
disponen de bucles con control al principio (for y while en C/C++/Java) y al
final (do while en C/C++/Java).

En MATLAB no hay bucles con control al final del bucle, es decir, no existe
construccin anloga a do while de Lenguaje C, o del repeat until de la
programacin en BASIC.

%Para quebrar un lazo enredado, presiona [Ctrl]+[C]

%LAZO DE REPETICION INFINITA
%inicio de bloque
clc
clear all
n=0
while((n<0)||(n==0))
n=input('INGRESE UN NUMERO POSITIVO: ')
n=-1 %esta linea convierte en lazo infinito esta estructura
end
%fin de bloque
%Presione [Ctrl]+[C]

%LAZO DE REPETICION CONDICIONAL
%inicio de bloque
clear all
x=1
while ~(x==0) % Con [Alt]+[126] representamos el character ~
x=input('ingrese el CERO para salir ');
for i=1:1:abs(x)
disp('hola')
end
end
%fin de bloque

%inicio de bloque
clear all
num=0.5
while~(fix(num)==num)
clc
num=input('ingrese un numero entero: ')
end
%fin de bloque


Ing. Teddy Negrete Pgina 100


%inicio de bloque
clc
clear all
num=1;
while~(num==fix(num)&(num>1))
num=input('ingrese un numero entero mayor que 1: ')
end
display('los factores del numero ingresado son: ')
factor=1;
while(factor<num)
if(mod(num,factor)==0)
factor
end
factor=factor+1;
end
num
%fin de bloque

EJERCICIO DE APLICACIN:

Realice un programa en MATLAB que ingrese un nombre (entre apstrofes y
minsculas) por teclado y muestre por pantalla cuantas vocales a, e, i, o, y u
tiene el mismo.

%inicio de bloque
clc
disp(' ')
disp('Ingrese un nombre en minuscula y entre apostrofes: ')
disp(' ')
nombre=input('======== ');
disp(' ')
vocal='aeiou';
%
for j=1:5
vocales(j)=0;
for i=1:length(nombre)
if nombre(i)==vocal(j)
vocales(j)=vocales(j)+1;
end
end
end
%
disp('su '),nombre
disp('tiene las siguientes: ')
vocales
display(' a e i o u')
%fin de bloque


Ing. Teddy Negrete Pgina 101


nombre
vocal=aeiou
j=1 to 5
vocales(j)=0
i=1 to length(nombre)
nombre(i)==vocal(j)
vocales(j)=vocales(j)+1
vocales

Figura No. 3. Diagrama de Flujo del ejercicio anterior

Ing. Teddy Negrete Pgina 102


Observe que el diagrama de flujo es la representacin grfica del algoritmo que
se ejecuta para alcanzar el objetivo de contar cuantas vocales a e i o y u tiene
el nombre. Ademas hemos utilizado una funcin propia de MATLAB, length que
nos ayuda a detener el segundo contador automtico i, la bifurcacin o desicin
de contar depende si la letra componente del nombre es o no una vocal. Aqu se
utiliza un concepto muy comn en programacin llamado contador.

NOTA: Con estos ejemplos y explicaciones no se alcanzar el
conocimiento de la programacin estructurada. Sin embargo los estudiantes que
si lo tienen o lo conocen pueden compararlo con otros lenguajes de alto nivel.

%MULTIPLEXOR O CONDICIONAL MLTIPLE
%INTERRUPTOR

%inicio de bloque
clear all
disp('Ingrese un nmero entero del 1 al 12')
disp('que represente un mes del ao')
m=input('digite el nmero: ');
switch m
case 1
disp('ENERO')
case 2
disp('FEBRERO')
case 3
disp('MARZO')
case 4
disp('ABRIL')
case 5
disp('MAYO')
case 6
disp('JUNIO')
case 7
disp('JULIO')
case 8
disp('AGOSTO')
case 9
disp('SEPTIEMBRE')
case 10
disp('OCTUBRE')
case 11
disp('NOVIEMBRE')
case 12
disp('DICIEMBRE')
otherwise
disp('NO CORRESPONDE A UN MES')
end
%fin de bloque


Ing. Teddy Negrete Pgina 103


EJERCICIOS PARA LOS TALLERES:
TALLER # 3
3.1 Elabore un programa, que usado las estructuras de CONTROL DE FLUJO
resuelva los siguientes problemas:
3.1.1 Ingrese por teclado 3 nmeros reales positivos los que representarn
lados de un tringulo cualquiera, por lo tanto, verifique que sean positivos
y que puedan ser lados de un tringulo cualquiera. Un ejemplo de 3
valores que no cumple con la condicin de ser lados de un tringulo
son los valores 1, 1, 4
3.1.2 Calcule y muestre por pantalla, el permetro del tringulo anterior.
3.1.3 Calcule y muestre por pantalla, el area del tringulo anterior.
3.1.4 Indique al usuario que finalice el programa ingresando los valores 0, 0, 0
que continu ingresando otro tringulo.
3.2 Dado el circuito elctrico adjunto:
3.2.1 Halle la Impedancia Equivalente,
para la frecuencia f dada
3.2.2 Halle la Admitancia Equivalente,
para la frecuencia f dada
3.2.3 Halle los valores del mdulo de la
Impedancia Equivalente |Z| para
frecuencias con valores desde
=1.000 hasta el valor de 20.000,
a pasos de 1.000. Guarde en dos
vectores los valores encontrados.
3.2.4 Con los valores del mdulo de la impedancia equivalente |Z| versus los
valores de la frecuencia , realice un grfico que llamaremos "Respuesta
de la frecuencia del Circuito" .
3.3 Recuerda la Libreta de Calificaciones de la Escuela, ingrese una
nota entera del 1 al 20, y muestre segn sea el caso: Sobresaliente, Muy
Bueno, Bueno, Regular, Insuficiente y Malo. Primero elabore una Tabla de
Equivalencias a mano y luego realice el programa.
3.4 Ingrese un nombre o una palabra en minsculas y entre apstrofes y
que muestre la cadena de caracteres al revs, por ejemplo: Si ingresa
teddy, deber mostrar la cadena yddet. Si el nombre y la cadena al
revs son iguales debe mostrar el mensaje PALNDROME, caso
contrario el mensaje NORMAL.

Ing. Teddy Negrete Pgina 104


+
-
Vs2
6V
+
-
Vs1
7V
R5
1k
R4
3k
R3
2k
R2
2k
R1
1k
3.5 Ingrese o genere aleatoriamente los coeficientes enteros de un SEL
3x3, homogneo o no homogneo y muestre los valores que son la
SOLUCIN. Valide la posibilidad que el Sistema NO TENGA SOLUCIN,
o que tenga INFINITAS SOLUCIONES.
3.6 Dado el circuito elctrico adjunto,
elabore un programa que: ingrese
los valores de las resistencias R
i
y
los valores de los voltajes V
i
de
las fuentes, luego:
Verifique que los valores de las R
i

ingresadas sean valores positivos
y reales.
Verifique que los valores de las V
i

ingresadas sean valores reales.
Calcule las corrientes de mallas I
i
.
Si hay incosistencia de los valores
o de los resultados debe mostrar
los "mensajes" correspondientes al
error.
3.7 Realice un programa que ingrese un valor xA y una funcin continua en
este valor f(x), determine la derivada de la funcin f(x) en el punto xA,
derf(xA). Utilice el concepto de la derivada de una funcin en un punto
por el clculo del lmite,
0
( ) ( )
lim
x
f xA x f xA
derfA
x
A
+ A (
=
(
A

.
3.8 Realice un programa que ingrese 2 valores reales xA y xB, los coeficientes
de un polinmio p(x) hasta 5to grado, tal que cumpla el Teorema del
Valor Intermedio en este intervalo, luego con un mtodo de Anlisis
Numrico (por ejemplo el Mtodo de Newton), halle xR que es una raz o
una aproximacin de la raz al menos con 4 dgitos de precisin. Si
despus de 10.000 iteraciones no converge, para la precisin solicitada
muestre el mensaje "MATLAB SE CANSO DE TRABAJAR".
3.9 Genere aleatroriamente un vector de 20 elementos, con valores enteros
entre 10 y 99, muestre el vector dado, luego el vector ordenado en forma
ASCENDENTE y DESCENDENTE, los 3 vectores como una Tabla. Muestre
la MEDIANA, el PROMEDIO, la VARIANZA y la DESVIACIN.
3.10 Realice un programa que ingrese o genere aleatoriamente un nmero
decimal con 2 dgitos decimales, pero menor que 1000. Muestre en letras
la cantidad ingresada o generada. Por ejemplo si se genera el nmero
123.43, deber mostrar "CIENTO VEINTE Y TRES CON CUARENTA Y
TRES CENTSIMAS". Se sugiere utilizar un condicional mltiple.



Ing. Teddy Negrete Pgina 105


4 SEMANA

CAPTULO # 2. FUNCIONES Y ARREGLOS
2 FUNCIONES DEL USUARIO, ARREGLOS,
GRFICOS, VARIABLE SIMBLICA
2.1 Funciones definidas por el usuario.
FUNCIONES EN MATLAB

La primera lnea de un archivo llamado nombre.m que define una funcin del
ususario tiene la forma:
function [lista de valores de retorno] = nombre(lista de argumentos)
donde nombre es la denominacin de la funcin. Entre corchetes y separados
por comas van los valores de retorno (siempre que haya ms de uno), y entre
parntesis tambin separados por comas los argumentos.

Puede haber funciones sin valor de retorno y tambin sin argumentos.
Recurdese que los argumentos son los datos de la funcin y los valores de
retorno son sus resultados. Si no hay valores de retorno se omiten los
corchetes y el signo igual (=); si slo hay un valor de retorno no hace falta
poner corchetes. Tampoco hace falta poner parntesis si no hay argumentos.

%FUNCIONES
%COMANDO: function
%
%function variable_salida=nombre_funcin(argumentos) o
%function [variables_salidas]=nombre_funcin(argumentos)
%
%Las lneas de comentario de ayuda correspondiente a la FUNCIN
%"nombre_funcin" debern ser incluidas en la cabecera de la
%funcin que estamos creando.
%
%El archivo de la FUNCIN deber ser guardado en el
%directorio_actual (Carpeta Personal) con un nombre
%nombre_archivo.m IGUAL al nombre_funcin (FUNCIN).
%
%La ejecucin de esta FUNCIN con nombre_funcin ser igual
%que cualquier otra funcin de MATLAB, es decir:
%1. Desde el prompt en el Command Window
%2. Desde una lnea de un script o archivo *.m
%En ambos casos los argumentos de la funcin deben ser
%ingresados correctamente.
%
%Los comentarios incluidos en nuestra FUNCIN nos servirn
%de ayuda mediante el uso del comando help "nombre_funcin"

Ing. Teddy Negrete Pgina 106


%nombre de la funcin definida por nosotros igual como si
%fuera una funcin propia del MATLAB, en al prompt
%
%Las variables de salida "variables_salida" podrn ser usadas en
%el programa que las creo, es decir en la FUNCIN, en el archivo
%"nombre_funcin", despus de la lnea que declar la funcin.
%%Para devolver el control al programa desde cualquier punto
%de una funcin basta con escribir la sentencia return

27. Elabore otro archivo, verifique que se guarde en la carpeta personal con el
nombre funciones.m, comente su funcionamiento explicando el significado
de la ejecucin y concluya en forma general por cada bloque:
%inicio de bloque
disp('HOLA')
%fin de bloque

%inicio de bloque
clc
disp('HOLA')
saludo
%Por que se produce error?

%inicio de bloque
clc
disp('HOLA')
saludo
saludos(3)
%Por que se produce error?
%fin de bloque

El error que se muestra es: ??? Undefined function or variable 'saludo'.

Funcin creada por el usuario: saludo
28. Cree un nuevo archivo llamado saludo.m que ser la funcin creada por el
usuario, gurdelo en unidad:\matlab_root\work :
%Formato: saludo
%Esta funcin no tiene parmetros ni argumentos
%Slo mostrar por pantalla el mensaje 'hola'
%
function y=saludo
disp('hola')
%
%"El autor es annimo"
%


Ing. Teddy Negrete Pgina 107



NOTA IMPORTANTE: Recuerde que este archivo no se ejecuta como los demas
*.m, es decir con [F9], lo debe ejecutar en el prompt (en la lnea de comandos),
o en una lnea de otro archivo *.m.

Vaya al Window command, en la lnea de comandos >> y escriba saludo, es
decir: >>saludo se ejecutar el programa que guardo en el archivo saludo.m

Regresemos al archivo pendiente de corregir, el archivo nmero 14
(funciones.m) ahora ejecutemos el segundo bloque, note que ahora NO se
presenta error, en la funcin saludo.

Si ejecuta el tercer bloque, notar que presenta un error en la funcin saludos. El
error que se muestra es: ??? Undefined command/function 'saludos'.


Funcin creada por el usuario: saludos()
29. Cree un nuevo archivo llamado saludos.m que ser la funcin creada por
el usuario, gurdelo en unidad:\matlab_root\work :
%
%Formato: saludos(nmero_ingresado)
%
%Esta es una funcin que Saluda tal que al ingresar un nmero
%entero positivo o negativo, presentar por pantalla el mensaje
%"hola" repetido tantas veces como sea el mdulo nmero, es decir
%abs(nmero_ingresado)
%
%
function y=saludos(x)
i=1;
for i=1:1:abs(x)
disp('hola')
end
%
%

NOTA IMPORTANTE: Recuerde que este archivo no se ejecuta como los demas
*.m, es decir con [F9], lo debe ejecutar en el prompt (en la lnea de comandos),
o en una lnea de otro archivo *.m.

Vaya al Window command, en la lnea de comandos >> y escriba saludos,
es decir: >>saludos se ejecutar el programa que guardo en el archivo
saludos.m, pero ahora se presentar el error ??? Input argument "x" is
undefined., esto se debe al formato de la funcin saludos(), esta necesita un
argumento para que se ejecute correctamente.



Ing. Teddy Negrete Pgina 108



Ahora en el prompt escriba saludos(10), note que se muestran 10 mensajes de
saludos hola, la ejecucin ahora es correcta.

Regresemos al archivo pendiente de corregir, el archivo nmero 14
(funciones.m) ahora ejecutemos el tercer bloque, note que ahora NO se presenta
error, en la funcin saludos.

30. Elabore un programa que contenga 3 nmeros A, B y C correspondientes
a los coeficientes de una Ecuacin Cuadrtica y que muestre por pantalla las
soluciones llamadas R1 y R2, verifique que se guarde en la carpeta personal
con el nombre raices.m, ejectelo varias veces con diferentes valores de A,
B, C y compruebe sus resultados.
%inicio de bloque
A=1
B=-2
C=1
%
disp('las raices son: ')
R1=(-B-sqrt(B^2-4*A*C))/(2*A)
R2=(-B+sqrt(B^2-4*A*C))/(2*A)
%fin de bloque

Note que para hallar los resultado para diferentes ecuaciones debemos modificar
continuamente 3 lneas del programa, lo cual no es muy prctico. Ahora vamos a
crear una funcin y la ejecutaremos varias veces, desde el PROMPT.

Funcin creada por el usuario: raices2

31. Cree un nuevo archivo llamado raices2.m que ser la funcin creada por
el usuario, gurdelo en unidad:\matlab_root\work :
Funcin: raices2
Cree otro archivo llamado raices2.m que ser la funcin creada:
%
%Formato: raices2(a,b,c)
%
%
%Permite hallar las races complejas de una ecuacin
%cuadrtica, si ingresamos los coeficientes a, b, c
%
function [r1 r2]=raices2(a,b,c)
disp('las raices son: ')
r1=(-b-sqrt(b^2-4*a*c))/(2*a);
r2=(-b+sqrt(b^2-4*a*c))/(2*a);


Ing. Teddy Negrete Pgina 109



Vaya al Window command, en la lnea de comandos >>, es decir el PROMPT
y escriba raices2(1, 2 , 1), se ejecutar la funcin y se obtendrn los
resultados de la ecuacin cuadrtica.


Es posible que el usuario no conozca esta funcin entonces puede escribir en el
PROMPT, >>help raices2 y recibir una gua de su uso, usted debe documentar
y explicar en forma clara y concreta su ejecucin y su formato.


Otra forma de ejecutar la funcin raices2, es desde un archivo tipo script *.m.
Agregue el siguiente bloque de instrucciones al archivo # 17, llamado raices.m,
ejectelo varias veces y comente su funcionamiento.


%inicio de bloque
%Ejecucin pidiendo los argumentos o parmetros
%Se presentan por pantalla los resultados
disp('Ingrese los coeficientes de una Ecuacin Cuadrtica')
A=input('Ingrese el coeficiente cuadrtico a: ');
B=input('Ingrese el coeficiente lineal b: ');
C=input('Ingrese el trmino independiente c: ');
raices2(A,B,C)
%fin de bloque

32. Elabore un programa que ingrese los coeficientes A, B, C de una Ecuacin
Cuadrtica, muestre la SUMA y el PRODUCTO de las races R1 y R2 utilizando
la funcin raices2.m, verifique que se guarde en la carpeta personal con el
nombre suma_producto.m Compare estos resultados con las frmulas
matemticas x1+x2 =b/a y x1*x2=c/a
%inicio de bloque
%Se fija el ingreso de los argumentos o parmetros
%Pero tambin pueden guardarse los resultados en variables
%Se presentan por pantalla los resultados de SUMA Y PRODUCTO
clear all
A=3
B=2
C=-1
[x1,x2]=raices2(A,B,C)
disp('La SUMA de las races son: ')
x1+x2
disp('El PRODUCTO de las races son: ')
x1*x2
%fin de bloque



Ing. Teddy Negrete Pgina 110



Recordemos que MATLAB tiene una funcin muy til que calcula las raices de un
polinomio, es decir que calcula las soluciones de una Ecuacin Polinmica
llamada roots. La Ecuacin Cuadrtica es el equivalente de la Ecuacin
Polinmica de 2 Grado. Hay una funcin asociada a este calculo pero se aplica a
nmero reales, esta funcin es nthroot


%inicio de bloque
%Funcin polinmica de MATLAB
%A, B, C son los coeficientes de la Ecuacin Cuadrtica
A=1,B=-2,C=1
roots([A B C])
%fin de bloque


%inicio de bloque
%Raz cuadrada de 49
nthroot(49,2)
%
%Raz cuarta de 81
nthroot(81,4)
%fin de bloque

Las siguientes son funciones tomadas de




2.2 Arreglos (Vectores, Matrices e HiperMatrices) en MATLAB.
Estructuras en MATLAB.

ARREGLOS (Vectores, Matrices, Hiper-matrices) EN MATLAB

MATLAB trabaja esencialmente con matrices de nmeros reales o complejos. Las
matrices 1x1 son interpretadas como escalares y las matrices fila o columna
como vectores.


Por defecto todas las variables son matriciales y nos podemos referir a un
elemento con dos ndices. An as, conviene saber que la matriz est guardada
por columnas y que nos podemos referir a un elemento empleando slo un
ndice, siempre que contemos por columnas. Insistiremos bastante en este
detalle, porque tiene fuertes implicaciones para entender el funcionamiento de
bastantes aspectos de MATLAB.


Ing. Teddy Negrete Pgina 111


33. Elabore otro archivo, verifique que se guarde en la carpeta personal con el
nombre arreglos.m, comente las lneas de la estructura, explicando el
significado de la ejecucin y concluya en forma general por cada bloque:


%VECTORES EN MATLAB

%inicio de bloque
x=[2 4 6 8];
y=[1;2;3;4];
z=x'
x(1)
y(4)
z(3)
%fin de bloque

%ESPACIAMIENTO LINEAL

%inicio de bloque
x=0:0.1:1
y=0:10
%
linspace(0,1)
%
%fin de bloque
%inicio de bloque
a=-1
b=4
n=50
u=linspace(a,b,n)
%
v=linspace(0,1,11)
%
%fin de bloque

%ESPACIAMIENTO LOGARTMICO

%inicio de bloque
%
logspace(-1,2)
%
%fin de bloque

%inicio de bloque
d1=-2.3
d2=2.1
n=30

Ing. Teddy Negrete Pgina 112


x=logspace(d1,d2,n)
%
y=logspace(-1,2,35)
%fin de bloque



%ELEMENTOS DE UN VECTOR

%inicio de bloque
%Un vector puede ser descompuesto en cada uno de sus elementos:
clear all
x=[1 2 3]
a=x(1,1)
b=x(1,2)
c=x(1,3)
d=a+b+c
y(1,1)=a+2
y(1,2)=b*3
y(1,3)=c/3
y
figure(1), plot(x,y), grid
title('Grfico')
%fin de bloque

WORKSPACE BROWSER Y ARRAY EDITOR

El espacio de trabajo de MATLAB (Workspace) es el conjunto de variables
y de funciones de usuario que en un determinado momento estn definidas en la
memoria del programa o de la funcin que se est ejecutando. Para obtener
informacin sobre el Workspace desde la lnea de comandos se pueden utilizar
los comandos who y whos. El segundo commando proporciona una informacin
ms detallada que el primero. Por ejemplo, una salida tpica del comando whos
es la siguiente:

%EXPLORADOR DEL ESPACIO-TRABAJO Y EDITOR DE ARREGLOS

%inicio de bloque
clear all
Ma=zeros(3,3)
Mb=ones(2,2)
Mc=rand(2,3)
whos
%fin de bloque

stas son las variables del espacio de trabajo base (el de la lnea de comandos
de MATLAB). Ms adelante se ver que cada funcin tiene su propio espacio
de trabajo, con variables cuyos nombres no interfieren con las variables de los
otros espacios de trabajo. Verifique que la ventana Current Directory este

Ing. Teddy Negrete Pgina 113


activa, sino haga clic en la Barra de Ttulo de esta ventana, fjese que en la Barra
de Estado se visualicen 2 pestaas (Current Directory / Workspace), sino
haga clic en el Men Desktop (de la Barra de Mens de MATLAB) y luego un clic
en la opcin Workspace.



En esta ventana visualizar las variables Ma, Mb y Mc, haga un doble clic en cada
una de las variables, observar que aparece a la derecha el Array Editor (Editor
de Arreglos). La ventana Workspace constituye un entorno grfico para ver las
variables definidas en el espacio de trabajo.

La Figura No. 3 muestra el aspecto inicial de la ventana Workspace cuando se
ejecuta una variable o se abre un archivo desde un determinado programa.
Haciendo doble clic por ejemplo, sobre la matriz Mc aparece una nueva ventana
(o pestaa, si la ventana ya exista) del Array Editor, en la que se muestra el
contenido de la variable (matriz Mc), ntese que pueden ser modificados los
elementos de dicha matriz o de una variable cualquiera que sea editada con este
programa (Array Editor).

Si se desean examinar otras matrices y/o vectores, al hacer doble clic sobre ellas
en el Array Editor, las muestra en la misma ventana como sub-ventanas con
una pestaa diferente. Clicando con el botn derecho sobre alguna de las
variables del Workspace Browser se abre un men contextual que ofrece
algunas posibilidades interesantes, como por ejemplo, la de representar
grficamente dicha variable.




















Figura No3.


Ing. Teddy Negrete Pgina 114


El Array Editor no slo permite ver los valores de los elementos de
cualquier matriz o vector definido en el programa: es tambin posible modificar
estos valores clicando sobre la celda correspondiente. La ventana del Array
Editor incluye una lista desplegable en la que se puede elegir el formato en el
que se desea ver los datos.



%ARREGLOS EN MATLAB

%inicio de bloque
Mg=[1 2 3 ; 4 5 6]
Mh=[1 2 3
4 5 6
7 8 9]
Mi=Mg-2
Mj=2*Mg-1
%fin de bloque


%inicio de bloque
Mx=[1 4 5; 3 1 6]
My=[1 2 3; 4 5 6]
Mz=My.*Mx %Multiplicacin termino a termino de matrices
Mu=My*Mx %Error de producto de matrices
Mv=Mg*Mx' %Si se cumple la condicin para el producto de matrices
%fin de bloque


%inicio de bloque
%Genere una Matriz de 3x3
%Guarde los valores de la diagonal en un vector
clear all
Ma=rand(3,3)
for (i=1:1:3)
Vd(1,i)=Ma(i,i);
end
Vd
%fin de bloque


%inicio de bloque
%Genere una matriz de 3x3, reemplace la 2 fila por ceros
clear all
Ma=rand(3,3)
Ma(2,:)=0
%fin de bloque

%inicio de bloque

Ing. Teddy Negrete Pgina 115


%Genere una matriz de 3x3, reemplace la 3 columna por unos
clear all
Ma=rand(3,3)
Ma(:,3)=1
%fin de bloque



%inicio de bloque
clear all
A=[1 2 3; 4 5 6; 7 8 9]
B=A
C=B(2:3,1:2) %C es la Menor (1,3) de B
%
B(:,2)=[] %Reduccin de una Matriz
%Se ha eliminado la 2 columna
B=A
B(1,:)=[] %Reduccin de una Matriz
%Se ha eliminado la 1 fila
%
D=B(:)
%
E=A(:)
F=A(1,:)
G=A(:)'
%Clculo del Determinante
det(C)
%
det(G)
%Por qu se produce error?
%
%fin de bloque

%inicio de bloque
%Generacin por el MANEJO DE NDICES
clear all
for (i=1:1:5)
for(j=1:5)
Ma(i,j)=i*j
end
end
Ma
%fin de bloque

%inicio de bloque
%Generacin por el PRODUCTO DE INTERVALOS
%
Mb=(5:-1:1)'*(5:-1:1)
%

Ing. Teddy Negrete Pgina 116


%fin de bloque

NOTA: Generalmente cuando se trabaja con arreglos complejos se
presentan cada uno de los elementos en forma rectangular, aunque se pueden
definir y operar arreglos complejos con elementos en forma exponencial.



%ARREGLOS CON NMEROS COMPLEJOS


%inicio de bloque
clear all
a=-1:2
Va=a+i*a
b=-2:1
Vb=b+i*b
Vc=(a+i*a)'
Mab=Vc*Vb
m=det(Mab)
%fin de bloque


%inicio de bloque
format short g
clear all
a=-1:2
Va=3*a+i*a
b=-2:1
Vb=b-i*2*b
Vc=Va'
Mab=Vc*Vb+2*i
mab=det(Mab)
%fin de bloque
%inicio de bloque
format short
%
clear all
Mx=10*rand(3,3)
My=10*rand(3,3)
Mz=Mx+i*My
Mi=int8(Mz)
mz=det(Mz)
re=real(mz)
im=imag(mz)
modu=abs(mz)
z1=int8(mz)
%Es correcto este valor?
z2=int16(mz)

Ing. Teddy Negrete Pgina 117


%
det(Mi)
%Por qu se produce error?
%
%fin de bloque




%inicio de bloque
format short g
clear all
Mx=[5*exp(i*pi/4) 2*exp(i*2*pi/3) ; -3*exp(i*pi/6) 2*exp(i*7*pi/6)]
My=[1 i -7*exp(i*5*pi/4) 9*exp(i*4*pi/3) ; 0 0 2-i 4*exp(i*5*pi/6)]
Mu=Mx*My
%
Mv=My*Mx
%Por qu se muestra error?
%
%fin de bloque

%DIMENSIN Y LONGITUD DE UN ARREGLO

%inicio de bloque
clear all
Vv=1:10
dimension=size(Vv)
longitud=length(Vv)
%fin de bloque

%inicio de bloque
clear all
Mm=magic(3)
dimension=size(Mm)
longitud=length(Mm)
%fin de bloque

%inicio de bloque
format short
clear all
Mn=rand(4,7)
dimension=size(Mn)
longitud=length(Mn)
%fin de bloque


OPERACIONES ARITMETICAS CON ARREGLOS

Recordemos las operaciones bsicas:

Ing. Teddy Negrete Pgina 118


SUMA,
DIFERENCIA,
PRODUCTO MATRICIAL,
PRODUCTO ELEMENTO A ELEMENTO (como producto escalar),
DIVISIN POR LA DERECHA Y POR LA IZQUIERDA.



Es importante que recordemos y entendamos las reglas dimensionales que
rigen estas operaciones aritmticas en MATLAB.


SUMA Y DIFERENCIA MATRICIAL:
Al sumar un arreglo a un escalar, a este ltimo MATLAB lo convierte en un
arreglo con la misma dimensin del arreglo que va a sumar o restar.

%inicio de bloque
clc
clear all
Ma=rand(2,5)
Mb=Ma+3
Mc=3-Ma
Md=Mb+Mc
%fin de bloque


PRODUCTO MATRICIAL:
Lo conocemos muy bien y conocemos la regla dimensional.
Es la misma regla aprendida por el lgebra Bsica.

%inicio de bloque
%ARREGLOS CUADRADOS
%
clc
clear all
Ma=rand(3,3)
Mb=magic(3)
Mc=Ma*Mb
Md=Mb*Ma
%fin de bloque

%inicio de bloque
%ARREGLOS NO CUADRADOS (RECTANGULARES)
%
clear all
Ma=ones(2,4)
Mb=1:4
Mc=Mb'
Md=Ma*Mc

Ing. Teddy Negrete Pgina 119


Me=Mb*Mc
%
Mf=Mb*Ma
%Por qu se produce error?
%fin de bloque




PRODUCTO ELEMENTO A ELEMENTO DEL ARREGLO:
(Como si fuera la suma de matrices, pero en su lugar es un producto escalar)
Este producto NO se aplica en el lgebra Bsica.
Este producto se aplica entre arreglos de la misma dimensin.
El resultado se obtiene multiplicando uno a uno los elementos de los arreglos.
El arreglo resultante tiene la misma dimensin de los arreglos.
En MATLAB se utiliza el operador .*

%inicio de bloque
%
clc
clear all
Ma=3*ones(2,3)
Mb=5*ones(2,3)
Mc=Ma.*Mb
%
Md=Ma*Mb'
Me=Ma'*Mb
%
Mf=Ma*Mb
%Por qu se produce error?
%
%fin de bloque


DIVISIN MATRICIAL: POR LA DERECHA Y POR LA IZQUIERDA.
Son reglas especiales aplicadas en MATLAB:
Considerando, matrices cuadradas
A*inv(B)=A/B
inv(A)*B=A\B

La regla del producto:
A(m,n)*B(n,p)=C(m,p)
Condicin: NDICES CENTRALES IGUALES
Dimensin del resultado:
NDICES DE LOS EXTREMOS.

REGLA DIMENSIONAL:
Divisin DERECHA (matrix right division)
A/B = mrdivide(A,B)

Ing. Teddy Negrete Pgina 120


A(m,n) / B(p,n) = C(m,p)
Condicin: NDICE DERECHA IGUALES
#COLUMNAS(A) = #COLUMNAS(B)
Dimensin del RESULTADO:
#FILAS(A) X #FILAS(B)



REGLA DIMENSIONAL:
Divisin IZQUIERDA (matrix left division)
A\B = mldivide(A,B)
A(m,n) \ B(m,p) = C(n,p)
Condicin: NDICE IZQUIERDA IGUALES
#FILAS(A) = #FILAS(B)
Dimensin del RESULTADO:
#COLUMNAS(A) X #COLUMNAS(B)

%ARREGLOS CUADRADOS
%
%Considerando la divisin una operacin imprctica, usamos la
%matriz IDENTIDAD, para que sea el divisor de la operacin

%inicio de bloque
%
clear all
Ma=[2 -2;3 1]
Mb=inv(Ma)
Mi=Ma*Mb
Mc=Ma/Mi
%
Md=Ma-Mc
%
%fin de bloque

%inicio de bloque
%
clear all
Ma=[4 -1;2 5]
Mb=inv(Ma)
Mi=Ma*Mb
Mc=Mi\Ma
%
Md=Ma-Mc
%
%fin de bloque

%inicio de bloque
%Podemos usar funciones definidas en MATLAB
%DIVISIN POR LA DERECHA Y POR LA IZQUIERDA

Ing. Teddy Negrete Pgina 121


%
%mldivide(A,B) A\B
%mrdivide(B,A) B/A
%
%fin de bloque



%MATRICES CUADRADAS (la misma dimensin)

%inicio de bloque
clear all
Ma=[1 2;3 4]
Mb=[5 6;7 8]
Mc=Ma/Mb
Md=Ma*inv(Mb)
Mdd=mrdivide(Ma,Mb)
Me=Ma\Mb
Mf=(inv(Ma))*Mb
Mg=inv(Ma)*Mb
Mgg=mldivide(Ma,Mb)
%fin de bloque

%ARREGLOS NO CUADRADOS (RECTANGULARES)
%
%Aunque no comprobemos los resultados numricos que se
%obtienen al realizar las estas operaciones, comprobaremos
%las REGLAS DIMENSIONALES que se establecen

%inicio de bloque
%
clear all
Ma=rand(3,2)
Mb=rand(4,2)
Mc=Ma/Mb
Md=Mb/Ma
%
Me=Ma*Mb
%Por qu se produce error?
%
%fin de bloque

%inicio de bloque
%
clear all
Ma=rand(2,3)
Mb=rand(2,4)
Mc=Ma\Mb
Md=Mb\Ma

Ing. Teddy Negrete Pgina 122


%
Me=Ma*Mb
%Por qu se produce error?
%
%fin de bloque



EJEMPLO DE APLICACIN:

Dados 2 o ms vectores concatnelos para formar una matriz. Presntela en
forma horizontal o vertical.

%inicio de bloque
%
%los vectores
A=[1 2 3 4]
B=[4 5 6 2]
C=[7 8 9 1]
%
%la matriz horizontal
D=[A;B;C]
%
%la matriz vertical
E=D'
%
%fin de bloque


FUNCIONES BSICAS DE LOS ARREGLOS:

Las siguientes funciones slo actan sobre vectores (no sobre matrices, ni
sobre escalares):

[xm,im]=max(x)
%mximo elemento de un vector.
%Devuelve el valor mximo xm y la posicin que ocupa im

[xm,im]=min(x)
%mnimo elemento de un vector.
%Devuelve el valor mnimo y la posicin que ocupa

sum(x)
%suma de los elementos de un vector

cumsum(x)
%devuelve el vector suma acumulativa de los elementos de un vector (cada
elemento del resultado es una suma de elementos del original)


Ing. Teddy Negrete Pgina 123


mean(x)
%valor medio de los elementos de un vector

std(x)
%desviacin tpica




prod(x)
%producto de los elementos de un vector

cumprod(x)
%devuelve el vector producto acumulativo de los elementos de un vector

[y,i]=sort(x)
%ordenamiento de menor a mayor de los elementos de un vector x.

Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x de
los elementos en el vector ordenado y.

En realidad estas funciones se pueden aplicar tambin a matrices, pero en
ese caso se aplican por separado a cada columna de la matriz, dando
como valor de retorno un vector resultado de aplicar la funcin a cada columna
de la matriz considerada como vector.

Si estas funciones se quieren aplicar a las filas de la matriz basta aplicar dichas
funciones a la matriz traspuesta.

%FUNCIONES BSICAS PARA ARREGLOS

%inicio de bloque
%
clear all
A=rand(2,2)
B=rand(2,2)
isequal(A,B)
%
%fin de bloque

%FILAS Y COLUMNAS DE UN ARREGLO

%inicio de bloque
%
clear all
a=[1 4 7; 3 5 8]
s=size(a)
filas=s(1)

Ing. Teddy Negrete Pgina 124


columnas=s(2)
%
[x_filas,y_columnas]=size(a)
ones(size(a))
%
%fin de bloque


%MATRICES MENORES DE OTROS ARREGLOS

%inicio de bloque
%
clear all
A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
B=A(1:3,2:4)
%B es la menor de A que se forma:
%Tomando los elementos desde la 1fila hasta la 3fila
%y los elementos desde la 2columna hasta la 4columna
%
A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
C=A(2:3,3:4)
%C es la menor de A que se forma:
%Tomando los elementos desde la 2fila hasta la 3fila
%y los elementos desde la 3columna hasta la 4columna
%
A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
D=A(:,3:3)
%
%Explique Cmo se forma D?
%
A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
E=[A(:,1) A(:,2)]
%
%Explique Cmo se forma E?
%
%fin de bloque

%INVERSIN POSICIONAL DE ARREGLOS

%inicio de bloque
%
%De arriba a bajo
%De izquierda a derecha
%
clear all
A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
B=flipud(A)
%invierte verticalmente una matriz
%

Ing. Teddy Negrete Pgina 125


A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
C=fliplr(A)
%invierte horizontalmente una matriz
%
%fin de bloque



%inicio de bloque
clear all
A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
B=flipud(A')
C=fliplr(B)
%Explique Cmo se forma B y C?
%fin de bloque

%inicio de bloque
clear all
a=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]
b=a
b(:,2)=0
c=b
c(:,:)=0
columna3_matriz_a=a(:,3)
columna3_matriz_a(1)
flipud(columna3_matriz_a)
%
%fin de bloque

%OPERACIONES CON RESULTADOS ESCALARES EN ARREGLOS

%inicio de bloque
%
clear all
B=[1 2 3;4 5 6;7 8 9]
C=B(2:3,1:2)
B(:,2)=[ ]
D=B(:)
length(D)
size(D)
%
%fin de bloque

%OPERACIONES CON RESULTADOS LGICOS EN ARREGLOS

%inicio de bloque
%
A=[1 2 3;4 5 6;7 8 9]
%B=[1 2 3;4 5 6;7 8 9]

Ing. Teddy Negrete Pgina 126


B=[1 5 7;4 9 6;3 2 1]
resul_compara=isequal(A,B)
ismember(A,B)
%
%fin de bloque



%OPERACIONES DE BUSQUEDA EN ARREGLOS

%inicio de bloque
A=magic(3)
indices=find(A>5)
%Si se convierte la matriz A[3x3] en un vector vertical A[9x1]
%equivalente al uso del comando A(:), luego find encontrar
%los ndices del vector que satisfacen la condicin.
%fin de bloque

Hipermatrices (arrays de ms de dos dimensiones)

MATLAB permite trabajar con hipermatrices, es decir con matrices de
ms de dos dimensiones (Figura No. 4). Una posible aplicacin es almacenar con
un nico nombre distintas matrices del mismo tamao (resulta una hipermatriz
de 3 dimensiones). Los elementos de una hipermatriz pueden ser nmeros,
caracteres, estructuras, y vectores o matrices de celdas. El tercer subndice
representa la tercera dimensin: la profundidad de la hipermatriz.

DEFINICIN DE HIPERMATRICES.

Las funciones para trabajar con estas hipermatrices estn en el sub-
directorio toolbox\matlab\datatypes. Las funciones que operan con matrices
de ms de dos dimensiones son anlogas a las funciones vistas previamente,
aunque con algunas diferencias. Por ejemplo, las siguientes sentencias generan,
en dos pasos, una matriz de 232:

Ejecute en la LNEA DE COMANDOS:

>> AA(:,:,1)=[1 2 3; 4 5 6] % matriz inicial
AA =
1 2 3
4 5 6
>> AA(:,:,2)=[2 3 4; 5 6 7] % se aade una segunda matriz
AA(:,:,1) =
1 2 3
4 5 6
AA(:,:,2) =
2 3 4
5 6 7


Ing. Teddy Negrete Pgina 127


FUNCIONES QUE TRABAJAN CON HIPERMATRICES.

Algunas funciones de MATLAB para generar matrices admiten ms de dos
subndices y pueden ser utilizadas para generar hipermatrices.
Entre ellas estn rand(), randn(), zeros() y ones(). Por ejemplo, vase la
siguiente sentencia y su resultado:


Ejecute en la LNEA DE COMANDOS:

>> BB=randn(2,3,2)
BB(:,:,1) =
-0.4326 0.1253 -1.1465
-1.6656 0.2877 1.1909
BB(:,:,2) =
1.1892 0.3273 -0.1867
-0.0376 0.1746 0.7258

La funcin cat() permite concatenar matrices segn las distintas dimensiones,
como puede verse en el siguiente ejemplo:

>> A=zeros(2,3); B=ones(2,3);
i
j
k
A(i,j,k)

Figura No. 4. Hipermatriz de tres dimensiones.


Ing. Teddy Negrete Pgina 128



Figura No. 4



EJERCICIOS PARA LOS TALLERES:

TALLER # 4
4.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m,
que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES
DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:
4.1.1 Ingrese un vector que represente 10 calificaciones enteras entre 1 y 100,
revise cada una de ellas, si son menores que 70, presente por pantalla la
palabra REPROBADO, caso contrario APROBADO. Tambin muestre
por pantalla cuntas calificaciones son mayores o iguales a 70.
4.1.2 Ingrese un nmero natural n de 2 dgitos, que represente la cantidad de
calificaciones enteras entre 1 y 100, generadas aleatoriamente. Muestre:
Cuntas son mayores o iguales a 70?
Cules son las mayores o iguales a 70?
Cul es la mnima calificacin?
Cul es la mxima calificacin?

Ing. Teddy Negrete Pgina 129


4.1.3 Ingrese el radio r, un nmero real positivo, y muestre: la longitud de la
circunferencia C, el dimetro D, el rea del crculo A, el rea de la suerficie
de la esfera S y el volumen de la esfera V, todos del radio r. El radio
puede ingresar en [cm] o en [pulg], valide el ingreso y solicite al usuario
la unidad de la cantidad ingresada. Solicite al usuario en que Sistema de
Unidades quiere ver los resultados, ya sea en el Sistema: Internacional,
Anglosajn o ambos. Mustrelos por pantalla.
4.1.4 Elabore un programa que llene automticamente una Tabla con valores del
radio (r) desde 5 hasta 10 a pasos de , y en 2 columnas diferentes llene
valores de Superficie de una Esfera (S) y del Volumen de la Esfera (V).
Presente una Tabla con las 3 columnas r, S, V. Se sugiere utilizar vectores
para la resolucin y mostrar una matriz como resultado.
4.1.5 Realice el mismo programa anterior construyendo 2 funciones llamadas
supesf(r) y volesf(r), las mismas que tienen como argumento el radio
(r). Su programa principal podra crear los vectores con un lazo, llamando
en cada iteracin a las funciones creadas y luego elabora la Tabla con los
vectores generados, y finalmente muestra la Tabla.
4.2 Elabore un programa en MATLAB, con el nombre problemas_fun.m, que
usando FUNCIONES DEFINIDAS POR EL USUARIO, resuelva los siguientes
problemas:
4.2.1 Ingrese un nmero natural n de 4 dgitos, valide su ingreso. Muestre todos
los factores o divisores de n, muestre un mensaje si es PRIMO.
4.2.2 Cree una funcin llamada primo.m que ingrese un nmero natural n y
muestre SI o NO, si el nmero n es o no es PRIMO.
4.2.3 Ingrese un nmero natural N de 2 dgitos, que represente la cantidad de
nmeros naturales, generados aleatoriamente de 3 dgitos, que se van
analizar para mostrar si son o no PRIMOS. Utilice la funcin definida en el
ejercicio anterior, para mostrar el nmero aleatorio y su condicin de ser o
no primo.
4.2.4 Ingrese un nmero natural NUM de 3 o 4 dgitos, utilizando la funcin
primo.m muestre todos los factores primos del nmero NUM y las veces
que son sus factores. Si su funcin primo no tiene variables de retorno o
salida, puede modificarla, tal que tenga una salida lgica, si es necesario.
Por ejemplo, probemos con 100: sus factores primos son 2 y 5, pero 2
veces est el 2 y 2 veces est el 5, entonces se puede mostrar como un
resultado vlido: 2X2X5X5 = 100.
4.2.5 Ingrese 2 nmeros naturales M y N de 2 dgitos cada uno y muestre si son
PRIMOS ENTRE S. Se dice que 2 nmeros son Primos entre si, si los 2
nmeros no tienen factores primos comunes.
Por ejemplo, probemos 45 y 98: los factores de 45 son; 3X3X5 y los de 98
son; 2X7X7, entonces 45 y 98 son Primos entre si.

Ing. Teddy Negrete Pgina 130


Por ejemplo, probemos 24 y 36: los factores de 24 son; 2X2X2X3 y los de
36 son; 2X2X3X3, entonces 24 y 36 NO son Primos entre si.
4.3 Elabore dos funciones definidas por el usuario de MATLAB, con los
nombres xy_rt.m y rt_xy.m, para la conversion de puntos del plano
rectangular al plano polar y viceversa.
4.4 Elabore un programa en MATLAB, con el nombre met_new.m, tal que
ingrese los coeficientes de una funcin polinmica fp(x), un valor cerca de
un cero llamado x
0
y la precisin c, por teclado.

Aplicando el Mtodo de
Newton para hallar las races de una funcin fp(x):


Presente una aproximacin del cero hasta c cifras decimales, o el cero
propiamente dicho llamado raiz, y el nmero de interacciones que realiz
para alcanzar esta raz, llamado iter. Si no se puede alcanzar el cero con
la precisin pedida c, detenga el proceso en las 100.000 iteraciones.
4.5 Elabore un programa en MATLAB, con el nombre edo_lh2.m, tal que
ingresando 3 nmeros reales resuelva la EDO Lineal Homognea
de 2 Orden (coeficientes constantes):


Tome en cuenta que las soluciones de la EDO pueden ser de 3 tipos, segn
se defina el discriminante de la Ecuacin Caracterstica:

.

LOS SIGUIENTES EJERCICIOS SON OPCIONALES:

Dada la funcin f(x) con varias reglas de correspondencia ingresar por teclado un
valor x
0
y luego presentar el correspondiente f(x
0
) indicar en que regla de
correspondencia est.

Con la base de este ejemplo resuelva los siguientes ejercicios:

Dada la funcin f(x) con varias reglas de correspondencia ingresar por teclado un
intervalo I=[a, b], tal que xI y luego presentar el grafico de la funcin f(x) en I.

Elabore otro archivo, con el nombre est_fun_problemas.m, que usando
estructuras de control y definicin de funciones, resuelva los siguientes
problemas:

Ingrese por teclado los coeficientes (a, b, c) de una funcin cuadrtica
f(x)=ax
2
+bx+c y un valor x
0
.

Aplicando el concepto de lmite defina una
funcin derf que reciba los coeficientes y el punto (A, B, C, X
0
) y entregue la
pendiente de la recta tangente (MT). Luego aplique a su programa principal la
llamada a la funcin derf para mostrar la pendiente de la recta NORMAL (m
N
) y
la recta TANGENTE (m
T
) en el punto P(x
0
, f(x
0
)).

Ing. Teddy Negrete Pgina 131



Aplicando el problema anterior presente un grfico de la funcin f(x), la recta
TANGENTE y la recta NORMAL en las cercanas del punto P(x
0
, f(x
0
)).
Aplicando condiciones similares a los problemas anteriores ingrese una funcin
polinmica fp(x) de hasta 7 grado y un valor x
0
(es decir el punto P(x
0
,
fp(x
0
))), defina la funcin derfp y presente un grfico de la funcin fp(x), la
recta TANGENTE y la recta NORMAL en las cercanas del punto P(x
0
, fp(x
0
)).

Elabore otro archivo, con el nombre arreglos_problemas.m, que usando
arreglos, resuelva los siguientes ejercicios o problemas:
Genere una matriz A, de 5x5 cuyos elementos son dgitos decimales del 0 9.
Evale el polinomio p(x)=3x
3
4x+5, muestre por pantalla A y p(A).
Con el resultado anterior p(A), muestre cuntos elementos son CERO, y cuntos
son NUEVE.
Con el resultado anterior p(A), muestre la menor M(2,3).
Con el resultado anterior p(A), muestre el cofactor o(2,3).
En el resultado anterior p(A), reemplace la fila 1 y la columna 4 con valores 10.

Elabore otro archivo, con el nombre arreglos_fun.m, elabore un simple ejemplo
de las siguientes funciones y documente las lneas del ejemplo, o realice la
ejecucin y concluya en forma general por cada bloque:

Disee un programa que resuelva el problema del circuito RLC paralelo o serie
sin fuentes. Ingresando R, L, C y valores iniciales i
L
(0), v
C
(0).


5 SEMANA

2.3 Funciones con variables simblicas en MATLAB.


Por asignatura:
ALGEBRA LINEAL

CLCULO DIFERENCIAL

CLCULO INTEGRAL

CLCULO VECTORIAL

ECUACIONES DIFERENCIALES

Ing. Teddy Negrete Pgina 132



MATEMATICAS AVANZADAS

MTODOS NUMRICOS

2.4 Grficos
Grficos en 2D (bidimensionales)
Grficos en 3D (tridimensionales)


EJERCICIOS PARA LOS TALLERES:

TALLER # 5

5.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m,
que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES
DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:
5.2
6 SEMANA

CAPTULO # 3.
3 SIMULINK
3.1 Caractersticas generales de SIMULINK
Simulink es una herramienta interactiva para modelar, simular, y analizar
dinmicamente, sistemas del multidominio. (del tiempo, la frecuencia, la
posicin, la energa, etc.) Le permite con precisin describir, simular, evaluar, y
definir el comportamiento de un sistema, a travs de un bloque de bibliotecas
tradicionales y normalizadas. Los modelos (*.mdl de Simulink) tienen acceso
listo a MATLAB, proporcionndole un flexible funcionamiento y un extenso rango
de herramientas de anlisis y diseo.

En pocas palabras, es un simulador integrado al MATLAB, que tiene
bibliotecas normalizadas que se aplican principalmente en Ingeniera.


Ing. Teddy Negrete Pgina 133




Figura No.1: Acceso al Simulink Library Browser

Desde el botn START, puede cargar SIMULINK, y lo primero que veremos es el
explorador de las librerias para una amplia gama de reas del conocimiento.


Simulink proporciona un entorno donde usted modela a su sistema fsico y
lo controla con un diagrama del bloque.
Usted crea el diagrama del bloque
usando el ratn para arrastrar y conectar
los bloques y el teclado para editar y
escribir parmetros del bloque.


Al dar un clic en el botn
Simulink de la ventana principal de
MATLAB obtenemos la ventana
Simulink Library Browser que es el
explorador de las Libreras de SIMULINK.
Sin embargo podemos llegar al mismo
explorador desde MATLAB ejecutando el
comando simulink en el prompt de
Command Window. Note que un
resultado equivalente tendremos por el

Ing. Teddy Negrete Pgina 134


botn START, siguiendo la va Start/Simulink/Library Browser.


Figura No.2: Libreras de Simulink

En la Figura No. 3 recordemos, el
entorno grfico de la ventana principal
del programa Matlab desde donde se
accede al programa Simulink de varias
formas; en el men File (marcado en
la figura como Archivo) se desprende
un listado de opciones donde en la
opcin New se debe elegir la sub-
opcin Model , inmediatamente se
abrir otra ventana correspondiente a la
Figura No. 4, la cual es la ventana
principal del programa Simulink.




Ing. Teddy Negrete Pgina 135


Figura No.3 Escritorio de MATLAB


Por otro lado tambin se puede acceder a dicho programa mediante la
librera de Simulink seleccionando el icono marcado en la Figura No. 3 como
Librera de simulink, se abre una ventana que corresponde a la Figura No. 4,
y desde esa ventana se debe seleccionar el men Archivo, la opcin New y
sub-opcin Model , o bien pinchar directamente el icono que representa una
pgina en blanco que se marca en la Figura No. 5 como Nuevo modelo.

Una vez que se llega al programa Simulink es importante tener claro cuales son
las opciones ms importantes para realizar correctamente las simulaciones.

La Figura No. 4 muestra la ventana principal de Simulink. En esta ventana
se encuentra el icono marcado como Librera de Simulink. Haciendo clic en
esta opcin se abre la librera (Figura No. 5) donde se encuentran los bloques
que permiten crear cualquier tipo de modelo o controlador que se desee simular.



Tambin son importantes las opciones marcadas como Activar
simulacin, Parar simulacin y Tiempo de simulacin que permiten
comenzar a simular cualquier archivo Simulinkr creado en esa misma ventana,
parar esa simulacin en cualquier momento o bien cambiar el tiempo que se
desea simular correspondientemente.


Ing. Teddy Negrete Pgina 136



Figura No.4: Ventana principal de Simulink o Editor de Simulink.

Debe ser aclarado que simular un sistema significa resolver unas
ecuaciones que describen un sistema real o un controlador durante un periodo de
tiempo, por lo que el tiempo de simulacin es el periodo total de tiempo para el
cual el programa resuelve las ecuaciones, siendo por lo tanto un parmetro que
debe ser elegido adecuadamente para poder analizar y representar
correctamente los resultados simulados.

Por otro lado la opcin marcada como Parmetros de simulacin en la
Figura No. 4 abre una ventana ms completa donde es posible configurar
parmetros ms avanzados y mejorar los resultados de las simulaciones. Los
parmetros bsicos de la configuracin de las simulaciones sern explicados
detalladamente en captulos posteriores.

Las opciones marcadas como Porcentaje simulacin y Mtodo de
integracin informan durante la simulacin del sistema, en concreto de cuanto
porcentaje de la simulacin ha sido realizada y el mtodon de integracin
seleccionado previamente en las opciones de la simulacin.


Ing. Teddy Negrete Pgina 137



Figura No.5: Explorador de Librerias de Simulink

LIBRERIAS DE SIMULINK

La Figura No. 5 muestra el Explorador de las libreras de Simulink donde se
encuentran los bloques que se utilizan para crear los archivos de Simulink.

Como se ha comentado anteriormente desde esta librera se pueden abrir
archivos Simulink y tambin crear nuevos archivos mediante las opciones
marcadas como Archivo y Nuevo modelo.

Cada uno de los bloques, algunos de los cuales sern detallados posteriormente,
tienen referenciado un nombre para poder ser buscados de forma ms rpida a
travs de la casilla marcada en la Figura No. 5 como Bsqueda de bloques,
donde escribiendo el nombre y haciendo clic en el icono que representa unos
binoculares se realiza la bsqueda del bloque que tenga el nombre especificado

Ing. Teddy Negrete Pgina 138


entre todos los toolboxes. Los resultados de la bsqueda se mostrarn en la
sub-ventana marcada en la Figura No. 5 como Listado bloques.

En la sub-ventana marcada como Libraries se encuentran listados todos los
toolboxes, Cajas de Herramientas de Simulink disponibles para la versin
instalada de Matlab. Si se hace clic en cada herramienta o toolbox se
desplegar en la sub-ventana Listado de bloques los bloques que estn
dentro de ese toolbox y que podrn ser utilizados para crear archivos de
Simulink. Por ltimo remarcar que la sub-ventana Descripcin de bloques
describe los bloques que se marquen en la sub-ventana Listado bloques y
ser de ayuda para entender el funcionamiento de estos mismos, describiendo la
funcionalidad, las entradas y las salidas.

Las opciones Help que aparecen en cada una de las ventanas descritas en este
captulo son de gran ayuda para profundizar en la programacin de Simulink.
Todas las ventanas mostradas en las figuras han sido obtenidas de la versin
Matlab/Simulink 7.1, puede que difieran un poco con otras versiones pero la
mayora de las opciones pueden ser encontradas con la misma apariencia.

En Simulink se han clasificado los bloques de acuerdo con las definiciones
tradicionales de las funciones y del tipo de variables que se van analizar o
modelar. A continuacin se presentan las Libreras de Simulink, que incluyen
algunos bloques que estudiaremos y analizaremos en los siguientes ejemplos.


LIBRERIAS BLOQUES
SISTEMAS LINEALES EN EL TIEMPO
CONTINUO
DERIVADOR
INTEGRADOR
FUNCIN DE TRANSFERENCIA
OPERACIONES MATEMTICAS
SUMA
PRODUCTO
FUNCIONES
FUENTES
CONSTANTE
ESCALON
RAMPA
SINUSOIDAL
RUTAS DE SEALES
MUX MANUAL
DEMULTIPLEXOR
MULTIPLEXOR
SUMIDERO (A LA SALIDA)
ALCANCE
PANTALLA
AL WORKSPACE


Ing. Teddy Negrete Pgina 139



Figura No.6: Algunas Librerias de Simulink y sus correspondientes Bloques

1. Elabore otro archivo, con el nombre simulink_bloques.m, tal que
documente la bsqueda (va de la LIBRERA donde se encuentren) los
siguientes BLOQUES de Simulink y haga una breve descripcin 'Block
Description' del mismo. Seleccione una sla va.

%BLOQUE: Resistor
%VA: Simscape/Foundation Library/Electrical/Electrical Elemens
%DESCRIPCIN:
%BLOQUE: Flip Flop
%VA: Simulink Extras/Flip Flops
%DESCRIPCIN:
%BLOQUE: QPSK
%VA: Communications Blockset/Digital Baseband Modulations/PM
%DESCRIPCIN:
%BLOQUE: Histogram
%VA: Signal Processing Blockset/Statistics
%DESCRIPCIN:
%BLOQUE: Gauss (Gaussian Filter)
%VA: Communications Blockset/Comm Filters
%DESCRIPCIN:
%BLOQUE: FFT
%VA: SimPowerSystems/Extra Library/Discrete Measuremensts
%DESCRIPCIN:

Ing. Teddy Negrete Pgina 140



2. Elabore otro archivo, con el nombre simulink_bloques_parametro.m,
tal que documente una breve descripcin y al menos 2 propiedades 'Block
Parameters' de uno de los bloques (a su eleccin, si hay ms de un
bloque) que se encuentra en la siguiente va de la LIBRERA dada.

%1_Simulink/Continuous
%Block Name
%Block Parameters

%2_Simulink/Math Operations
%Block Name
%Block Parameters

%3_Simulink/Sinks
%Block Name
%Block Parameters

%4_Simulink/Sources
%Block Name
%Block Parameters

%5_Communications Blockset/Equalizers
%Block Name
%Block Parameters

%6_Signal Processing Blockset/Statistics
%Block Name
%Block Parameters

%7_SimPowerSystems/Machines
%Block Name
%Block Parameters

%8_SimPowerSystems/Power Electronics
%Block Name
%Block Parameters

%9_Simscape/SimElectronics/Sensors
%Block Name
%Block Parameters

%10_Simulink Extras/Transformations
%Block Name
%Block Parameters





Ing. Teddy Negrete Pgina 141



3.2 Ejemplos de Simulaciones con SIMULINK



EJERCICIOS PARA LOS TALLERES:

TALLER # 6

6.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m,
que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES
DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:





7 SEMANA

3.3 Ecuaciones Diferenciales
3.4 Funciones de Transferencia


EJERCICIOS:
Resolver la siguiente EDO: y' + 2y =3, si y(0)=0.
En su cuaderno, si lo recuerda, resuelva esta ecuacin.

Clasificacin: Esta es una ecuacin diferencial ordinaria lineal no homognea de
coeficientes constantes de primer orden, con condicin inicial, se entiende que
y(t=0)=0.

Solucin: Matemticamente la solucin es y=y
H
+y
P
. Sabemos que se puede
transformar la EDO Homognea en Ecuacin Algebraica, con la solucin
y
H
=ce
t
as tenemos +2=0. La solucin particular de la ecuacin no
homognea, utilizando el mtodo de Coeficientes Indeterminados, por tener
f(t)=3, es y
P
=a
0
. Entonces la solucin general es:
y = ce
2t
+ 3/2
Con la condicin inicial y(t=0)=0, obtenemos c = 3/2, por tanto la solucin es:
y = 3/2(1 e
2t
).

Solucin: Desde MATLAB, podemos escribir las siguientes lneas:

3. Elabore otro archivo, con el nombre simulink_edo.m, ejecute y comente
los resultados obtenidos.
%
clc

Ing. Teddy Negrete Pgina 142


syms y t
y=dsolve('Dy=3-2*y, y(0)=0')
%
x=0:0.1:10
yr=3/2-3/2.*exp(-2.*x)
figure(1)
plot(x,yr)
title('EDO1')
%
Hemos usado variables SYMBOLICAS (sym), y la funcin principal dsolve que
fueron revisadas y estudiadas en el captulo de Programacin Simblica en
MATLAB esto es Solucin simblica de las ecuaciones del diferencial
ordinarias.

Solucin: Desde SIMULINK podemos configurar el siguiente modelo.

4. Elabore en Simulink el archivo EDO1.mdl, siguiendo el procedimiento:

Abra el Simulink Library Browser puede elaborar un archivo, que por
omisin se llama untitled.mdl que representar un modelo. En la barra de
mens, de un clic en el men File, arrastre a New y suelte el clic en Model, se
abre la Ventana de Edicin de archivos Model, esta ventana se llama untitled.
El mismo efecto tendr si aplica las teclas rpidas [Ctrl]+[N], si est activa la
ventana del explorador de las Libreras de Simulink.


Figura No.3: Archivo nuevo en el Simulink Library Browser



Ing. Teddy Negrete Pgina 143



Figura No.4: Archivo nuevo en la Ventana de Edicin untitled


En la Ventana de Edicin llamada untitled guarde el archivo siguiendo
con un clic en la barra de mens
File/Save o File/SaveAs (o su
equivalente en teclas rpidas
[Ctrl]+[S]), de aqu se abre una
ventana de dilogo llamada Save
As para guardar el archivo, (tipo
Simulink Models, *.mdl) en el
directorio actual, que es el directorio
personal, nmbrelo como EDO1.mdl,
en el campo Nombre de la ventana
Save As, y luego pulse el botn
Guardar.


Ubique a un costado de la pantalla Simulink Library Browser y en el
otro la Ventana de Edicin EDO1, a continuacin debe identificar varios
elementos u objetos que llamaremos bloques o Blocks los mismos que sern
arrastrados desde las Libreras hasta la Ventana de Edicin que es el archivo de
su modelo que simular o analizar dinmicamente ms adelante.


Ing. Teddy Negrete Pgina 144




Figura No. 5: Configuracin y conexin de bloques en un Modelo


DESCRICIN Y UBICACIN DE BLOQUES UTILIZADOS.

La siguiente tabla le guiar en la configuracin del archivo EDO1.mdl que
representar el modelo que encuentra la solucin de la Ecuacin Planteada como
problema inicial.

ICONO BLOQUE LIBRERA BREVE DESCRIPCIN
1 Step Simulink/Sources
El bloque STEP proporciona un paso entre
dos niveles definibles en un momento
especificado.
2 Integrator Simulink/Continuous
La salida del bloque INTEGRATOR es la
integral de su entrada al paso de tiempo
continuo.
3 Gain
Simulink/Math
Operations
El bloque GAIN multiplica la entrada por una
constante (o escalar) llamada ganancia.
4 Scope Simulink/Sinks
El bloque SCOPE muestra las seales de
salida que son generadas en la simulacin.
5 Sum
Simulink/Math
Operations
La salida del bloque SUM permite obtener la
suma de varias entradas.


Ing. Teddy Negrete Pgina 145


El explorador de las Libreras de Simulink tiene un buscador de Bloques.
Ubique los bloques y arrastre uno por uno a la ventana de edicin de
EDO1.mdl y luego conctelos como se muestra en la Figura No. 5 y realice los
siguientes ajustes.

En el bloque STEP, haga clic derecho a su icono, acceda la opcin Step
Parameters y visualizar la ventana de configuracin llamada Source
Block Parameters: Step cambie los valores por omisin en los Parmetros:
Step time: (0 por 1 default) y en Final Value: (3 por 1 default).

En el bloque GAIN, haga clic derecho a su icono, ejecute la opcin
Format/Rotate Block dos veces, luego con el clic derecho acceda la opcin
Gain Parameters y visualizar la ventana de configuracin llamada
Function Block Parameters: Gain en la pestaa Main cambie los valores
por omisin en la Ganancia: Gain: (2 por 1 default).

En el bloque SCOPE, haga clic derecho al icono, y active la opcin Open
Block se activar una ventana grfica llamada Scope, cuyas escalas y
parmetros grficos posteriormente sern modificados.

Lneas de unin, en realidad son Flechas de Unin (ya que expresan
una direccin desde el Bloque Inicial al Bloque Final), y son trazadas desde la
entrada del Bloque Final hacia la salida del Bloque Inicial, es decir al revs.

Al final cuando haya distribuido, conectado y configurado correctamente
los bloques de su modelo, haga un clic en el botn GRABAR de la barra de
comandos en la Ventana de Edicin EDO1, y estar listo para modelar.


SIMULACIN EN SIMULINK.

Simular o modelar un archivo en Simulink es equivalente a la ejecucin de
un archivo tipo script en MATLAB. En la ventana de edicin EDO1 inicie la
simulacin, siguiendo con un clic en la barra de mes Simulation/Start o su
equivalente con las teclas rpidas [Ctrl]+[T].

Muy prctico resulta comenzar la simulacin dando un clic en el botn con
la forma de un botn de PLAY, llamado Start simulation.

Al empezar la simulacin pareciera que no pasa nada, pero vamos a
observar los resultados en la salida de SCOPE y los avisos o los errores que
pueden aparecer en la ventana de comandos del MATLAB, observe y lea el
siguiente aviso:

Warning: Using a default value of 0.2 for maximum step size. The
simulation step size will be limited to be less than this value. You can disable this
diagnostic by setting 'Automatic solver parameter selection' diagnostic to 'none'
in the Diagnostics page of the configuration parameters dialog.


Ing. Teddy Negrete Pgina 146


Este mensaje lo traducimos:

Advertencia: Usando un valor predefinido de 0.2 para el tamao de paso
de mximo. El tamao de paso de simulacin ser limitado cuando su valor sea
menor que el indicado. Usted puede desactivar este diagnstico configurando la
opcin de dilogo Automatic solver parameter selection a none en la
pgina Diagnsticos de Configuracin de Parmetros.

Esta Configuration de Parameters la puede hallar en la opcin
Simulation de la barra de mens de EDO1, o puede pulsar las teclas rpidas
[Ctrl]+[E]


Figura No. 6: Configuracin de Parmetros del modelo EDO1



Ing. Teddy Negrete Pgina 147


Figura No. 7: Configuracin de Parmetros del modelo EDO1. Diagnsticos

Limpie la pantalla del MATLAB, ejecutando clc en el prompt. Finalmente simule
otra vez su modelo del archivo EDO1, verifique la ausencia del mensaje.
5. Elabore en Simulink el archivo EDO2.mdl,




EJERCICIOS PARA LOS TALLERES:

TALLER # 7

7.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m,
que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES
DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:

Você também pode gostar