Sunteți pe pagina 1din 352

Segunda Edicin I

Solucin de problemas
de ingeniera con MATLABO
Solucin de problemas
de ingeniera con MATLAB~
Segunda edicin

Delores M. Etter
Department
of ElectricalandComputer
Engineering
Universityof Colorado,
Boulder

Traduccin

Roberto Luis Escalona Garca

Revisin tcnica

M. en C. Juan Carlos del Valle

PRENTICE

NUEVA YORK BOGOT LONDRES SYDNEY


PARS MUNICH TORONTO NUEVA DELHI TOKIO
SINGAPUR RO DE JANEIRO ZURICH
MATLAB~,

I
9 P

ILPRSORIWIM EADL C.V.


4 TOMISVKW m. 1%
WEO, D I .
wmm
19m
970-17-01 11-9 um
m m

0-13-397688-2
Prlogo

Ustedtiene
ensusmanos, lector,
un texto
interesante
y peculiar. Interesant
querepresenta
un nuevo enfoque
deun aspectoprimordial
delaeducacin
enin-
Y peculiar,
geniera. porquecombinatemasde loquetradicionalmente
sontres
o
cuatro
cursosdistintos formar
para un solo
curso introductorio.
nuevoEste
curso,
dirigido a estudiantes
deprimerosegundo
o aodecarreras
eningeniera
y ciencias,
abarca:

Matemticas elementales
aplicadas.
Mtodos numricos
bsicos.
Programacin
decomputadoras.
Metodologa
paralaresolucin
deproblemas.

Dndeseven por primera


vezlosnmeroscomplejos?
Dndeseestudian
por primera
vezlasmatrices 3?Cundo
de3 por comenzamosa efectuar clcul
Cmocombinamos
matemticos tiles? estas ideasla
para
resolucin
deproblemas
prcticos
deingeniera
y ciencias?
Estelibro
ofrece
respuestas
tales
apreguntas en
unaetapatempranadelacarrera
universitaria.
Elsiguiente
ejercicio
del libro ilustra
este
enfoque
multifactico:
Escriba u n a e x p r e s i n M para
~ ~ ~calcular
~~ la resistencia de tres resistores e n paralelo.
Aqu,en un solo problema, tenemos ingeniera bsica,
elctrica
matemticas
elementalesy un pocodeprogramacindecomputadoras.
Hace13 aos,Delores
Etter escribi
dostextos
muy populares
sobreprograma-
cindecomputadoras y mtodosnumricos. Decidi
usar Fortran,
queentonces
era
ellenguajems ampliamente utilizado computacin
para tcnica.Casualmente,
en
esa misma poca comenza usarseMATLABfuera
delacomunidad decmputode
matricesdondese origin.
Hoy da,existeuna amplia variedad y entornos
delenguajes paralacompu-
tacin tcnica. Ciertamente,
Fortran sigue siendo importante,
tambin pero
son
lo
C yC++.Hay, asimismo,
Pascal, calculadoras programables hojas
avanzadas,
declcu-
loy sistemasbasados enratn mens,
y ascomo varios lenguajes matemti
co-
merciales.
En nuestra opinin,
MATLABeslaopcin correcta
paracursos como st
porque es:

Fcil
deaprender
y usar.
Potente,
flexible
y extensible.
Exacto, robusto y rpido.
.
Prefacio

Losingenieros
y cientficos se devalen
lacomputadora para resolver diversos pro-
blemas,
desdelaevaluacin deunafuncin sencilla
hasta laresolucin deunsistema
deecuaciones.
MATLABse ha convertidoenelentorno de computacin tcnica prefe-
rido de
muchos ingenierosy cientficos
porque esun sistema interactivo quenic
cmputo numrico, cmputo simblico y visualizacin cientfica.
incluye
En vista
delaalta probabilidad
de que uningeniero recin graduado se encuen-
treen sutrabajo elconentorno
decomputacin MATLAB, constituye
ste unabuena
opcinpara introducir lacomputacin
a estudiante
al de ingeniera. Estelibro
es
apropiadocomo textointroductorio ingeniera
para o como texto complementario
un cursoavanzado, ademsdequeresulta til como referencia profesi
Porotra parte, el contenido deles presente
unaintroduccin
librolaresolu-
a
cindeproblemas deingeniera
quepersigue los siguientesobjetivos:

unametodologa slida para resolver problemas de ingeniera.


Presentar
Describir
las
excepcionales capacidades de cmputo y visualizacin de MATLAB.
Ilustrar
el procesoderesolucin deproblemas mediante una variada diversi-
ejemplos y aplicaciones de ingeniera.
dad de

Con este propsito,


en el captulo
1se presentaun proceso
de cinco
pasos que
se
empleademanera consistente
pararesolver
losproblemas.
Elresto
deloscaptulos
presentan las capacidades
deMATLABpararesolver problemas
deingeniera median
te ejemplosespecficos
delasdiversas
disciplinas
deingeniera.
Eltexto se basa
la en
Versin 4 deMATLAB.

Este verstil libro dise se para usarse


endiversos cursos deingeniera y ciencias,
ya sea como texto primario para estudiantesde cursos introductorios comoosu-
plemento para cursos intermedios o avanzados.Eltexto divide
se entres partes. Par-
te1:Fundamentos decomputacin eningeniera,
Parte 11:
Tcnicas numricas, y Parte
111:Temas especiales.En laParte1sepresenta material deMATLAB que es fundamen-
talparacomputacin y visualizacin bsicas
eningeniera. Loscuatro captulos dela
Parte 1secentran enelentorno MATLAB y lasfunciones MATLAB. La Parte IIcontiene
cuatro captulosque tratan tcnicas
numricas comunespara determinar soluciones
de sistemas de ecuaciones lineales, parainterpolacin y ajuste de curvas, para
integracin y diferenciacin numricas y para resolver ecuaciones diferenciales
ordinarias. Estos captulossonindependientes s, entre
peroenellos da seporsenta-
do que se ha cubiertoelmaterial delaParte 1.Por ltimo, laParte11contiene tres
x PREFACIO

temas especiales que son muy tiles para resolver problemas de ingeniera ms espe-
cializados: y
Es posible abarcar los captulos 1 al 9 en un curso de un semestre para una
presentacin completa de las capacidades de MATLAB. Si se desea una introduccin
ms breve a MATLAB, sugerimos estudiar los captulos 1 a 3 junto con temas selectos
de los captulos 5 a 8. Tambin hemos escrito otro libro, Infroducfion fo M A T L A B ~ O Y
Engineers and Scienfisfs(Prentice Hall, 1996, 0-13-519703-l), diseado especialmente
para ofrecer una introduccin breve (de tres a seis semanas) a las capacidades de
MATLAB. LOScaptulos sobre procesamiento de seales y sistemas de control (inclui-
dos en la Parte 111)son captulos especializados que requieren conocimientos adicio-
nales, y se incluyen con el fin de proporcionar material de referencia para cursos
avanzados.

No se presupone una experiencia previa con la computadora. Los conocimientos


matemticos requeridos para los captulos 1al 6 son y
se necesitan matemticas ms avanzadas para algunas porciones del mate-
rial de captulos posteriores.

El es una parte
importante de este texto. En el captulo 1 se presenta un
usando una computadora, que consisten en lo si-
guiente:

1. Plantear el problema con claridad.


2. Describir la informacin de entrada y de salida.
3. Resolver manualmente un ejemplo sencillo.
3. Crear un algoritmo y traducirlo a MATLAB.
5. Verificar la solucin con diversos datos.

A fin de reforzar la adquisicin de habilidades para resolver problemas, se identifica


cada uno de estos pasos cada vez que se desarrolla una solucin completa para un
problema de ingeniera.

A lo largo del texto, se hace hincapi en la incorporacin de ejemplos y problemas


cientficos y de ingeniera del mundo real con soluciones y cdigo utilizable. Esta
orientacin se centra en un tema de los cuales incluyen:
Prediccin del clima y cambios globales.
Comprensin computarizada del habla.
PREFACIO xi

Creacinde mapas delgenomahumano.


Mejorasen el desempeode los vehculos.
Mejorasenla recuperacindepetrleoy gas.

Cada captulo comienza conuna fotografay un anlisisde algnaspectodeuno de


estosgrandesdesafosy ofreceunamirada a algunas delas interesantes
y estimulan-
tes reas
en las quelos ingenierospodrantrabajar. Tambin se hace referencia
a los
grandesdesafosen muchosdelos otros ejemplos y problemas.

La visualizacindela informacin relacionada con un problema es unaventaja clave


del usodeMATLAB paradesarrollary entenderlas soluciones. Por tanto, es importan-
te aprender a generargrficas en diversos
formatospara usarlas al analizar,interpretar
y evaluar datos.Comenzaremos a usargrficas con elprimer programaMATLAB pre-
sentadoenel captulo1,y seguiremosampliandolas capacidades de graficacin en
el restode los captulos.

CONCEPTOS DE INGENIERA DE SOFTWARE

Tambinse espera delos ingenierosquecreene implementen solucionespor compu-


tadoraamables con el usuario y reutilizables. Por tanto,aprendertcnicasde in-
genierade softwarees crucial para desarrollar con xito tales soluciones.
Sehace
hincapien la comprensibilidad y la documentacin enel desarrollode los progra-
mas. Conla ayudade MATLAB, los usuariospuedenescribir cdigoporttil que se
puedetransferirdeunaplataformadecomputadoraa otra.A lo largodel texto setratan
temasadicionales relacionados con aspectos deingenieradesoftware,queincluyen
el ciclo de vida del software, mantenimiento, modularidad, abstraccin y prototi-
pos de software.

LA INTERNET Y LA WORLD WIDE WEB

En una de las secciones nuevasde esta edicin se aborda la Internet, el correo elec-
trnico, los tableros electrnicos de noticias y la World Wide Web. Selistan varios
sitios de Web quecontienen informacin relacionada con estetexto y conMATLAB.

EJERCICIOS Y PROBLEMAS

El aprendizajede cualquieraptitud nuevarequiere prctica en distintosnivelesde


dificultad. Los problemas de la seccin "iPractique!" son preguntas con respuestas
cortas relacionadas con la seccindel materialque se acaba de presentar.La mayor
partedelassecciones vanseguidas inmediatamente deuna seriedeproblemas"iPrac-
tique!" para queel lector puedadeterminar si yaest listopara continuarcon la
siguienteseccin.Al final del texto se incluyen soluciones completasa todoslos pro-
blemas.
R4h
Resumen de contenido

Parte I Computacin bsica para ingeniera


1 Resolucin
deproblemas
deingeniera
2 Elentorno
MATLAB
3 Funciones
deMATLAB
4 y matrices
lgebra lineal

Parte ll Tcnicas numricas


5 Soluciones
desistemas
deecuaciones lineales
6 y ajuste
Interpolacin decurvas
7 y derivacin
Integracin numricas
8 Ecuaciones diferenciales
ordinarias

Parte lll Temas especiales


9 Matemticas simblicas
10 Procesamiento
deseales
11 Sistemas
decontrol

Apndice
A Resumendefunciones
deMATLAB

Soluciones completas
a losproblemas
Practique!

ndice
Contenido

Parte I Computacin bsica para ingeniera


1 Resolucin de problemas de ingeniera
Gran desafio: Prediccin del clima

El entorno MATIAB
Gran desafio: Funcionamiento de vehculos
xvi CONTENIDO

Opciones desalida
Formato deexhibicin
Exhibicin detexto y valores
Salidas conformato
Grficas xy sencillas
Archivos de datos
2.3 Operaciones conescalares y arreglos
Operaciones con escalares
Operaciones conarreglos
Precedencia deoperaciones aritmticas
Limitaciones encomputacin
2.4 Capacidades degraficacin adicionales
Grficas lineales y logaritmicas
Grficas mltiples
Estilodelneas y marcas
Escala delosejes
Subgrficas
2.5 Resolucin aplicada de problemas:
Motor turbohe7ice avanzado
Resumendelcaptulo, Trminos clave,
Resumen
deMATLAB, Notasdeestilo, Notasdedepuracin,
Problemas

3 Funciones de MATLAB
Gran desafio: Reconocimiento del habla
Funciones matemticas
Funciones matemticas comunes
Funciones trigonomtricas e hiperblicas
Funciones
denmeros complejos
Coordenadas y polares
rectangulares
FrmuladeEuler
Grficas polares
Funciones polinmicas
Evaluacin
depolinomios
Operaciones
depolinomios
Races
depolinomios
Funciones
dedosvariables
Evaluacin
defunciones
Grficas tridimensionales
Grficas
decontorno
Funciones
deanlisis
dedatos
Anlisis
simple
CONTENIDO xvii

Mximo y mnimo
Sumasy productos
Media y mediana
Ordenamientode valores
Varianzay desviacin estndar
Histogramas
3.3 Instruccionesde seleccin y funciones de seleccin
Instruccinif sencilla
Operadoresrelacionalesy lgicos
Instruccionesif anidadas
Clusulaseise y elseif
Funciones lgicas
3.4

3.5 Funciones escritaspor el usuario


3.6 Funciones de generacinde nmerosaleatorios
Nmeros aleatorios uniformes
Nmeros aleatorios gaussianos
3.7 Funciones paramanipularmatrices
Rotacin
Inversin
Reconfiguracin
Extraccin
3.8 Ciclos
Ciclo for
Ciclo while
Resumen del captulo,Trminosclave, Resumen
de MATLAB, Notas de estilo, Notas de depuracin,
Problemas

4
4.1 Operacionescon matrices
Transposicin
Productopunto
Multiplicacinde matrices
Potencias de matrices
Polinomios de matrices

4.3 Funciones matriciales


Inversoy rango de una matriz
xviii CONTENIDO

Determinantes
Vectores
propiosy valorespropios
Descomposiciones
Factorizacin
triangular
Factorizacin
QR
Descomposicin valor
de singular
Resumen del captulo, Trminos
clave,Resumen
deMATLAB,Notasdeestilo,Notasdedepuracin,
Problemas
Parte 11 Tcnicas numricas
5 Soluciones de sistemas de ecuaciones lineales
Gran desafo: Funcionamientode vehculos
5.1 Interpretacin grfica 150
5.2 Soluciones empleando operaciones
dematrices 154
Divisindematrices 155
Inversindematrices 156
5.3 Resolucin aplicada de problemas:
Anlisis de circuitos elctricos 157
Resumendel captulo,
Trminos
clave,ResumendeMATLAB,
Notasdeestilo,Notasde depuracin,
Problemas 160

Interpolacin y ajuste de curvas


Gran desafo: Funcionamientode vehculos
6.1 Interpolacin
Interpolacin lineal
Interpolacin de splines cbicas
6.2 Resolucin aplicada de problemas:
Manipuladoresde brazo robtica
6.3 Ajustede curvas de
mnimoscuadrados
Regresin lineal
Regresinpolinmica
Funcinpoiyf it
Resumen del captulo, Trminos
clave,Resumen
deMATLAB, Notasdeestilo,Notasdedepuracin,
Problemas

7 Integracin y derivacin numricas 184


Gran desafo: Recuperacinmejoradade petrleo y gas
7.1 Integracin numrica
y regladeSimpson
Regladelostrapecios
aiff

ode

9
xx CONTENIDO

1 0 Procesamiento de seales
Gran desafio: Comprensincomputarizadadel habla
10.1Anlisis del dominiode frecuencias
10.2Anlisis de filtros
Funcionesde transferencia analgicas
Funcionesde transferencia digitales
Expansiones de fraccionesparciales
10.3 Implementacin de filtros digitales
10.4Diseode filtros digitales
Diseode filtros IIR usando prototipos analgicos
Diseodirectode filtros IIR
Diseodirectode filtros FIR
10.5Resolucin aplicada de problemas:
Filtros de separacinde canales
Resumendel captulo,Trminosclave,Resumen
de MATLAB, Notas de estilo,Notasde depuracin,
Problemas
1 1 Sistemas de control
Gran desafo: Funcionamientode vehculos
11.1Modeladode sistemas
Funcionesde transferencia
Modelosde espaciode estados
Sistemasde tiempo discreto
11.2 Conversinde modelos
11.3Funcionesde diseoy anlisis
Grficasde Bode
Grficasde Nyquist
Grficasde lugargeomtricode las races
Respuesta a un escaln
11.4Resolucin aplicada de problemas:
Control de espejosde direccin por rayo lser
Resumendel captulo,Trminosclave,Resumen
de MATLAB, Notasde estilo,Notasde depuracin,
Problemas
Apndice A Resumen de funciones de MATLAB
Soluciones completas a los problemas Practique!
ndice
Captulo
1 Resolucin
deproblemas
deingeniera

2
Captulo Elentorno MATLAB

Captulo Funciones
deMATLAB

Captulo
4 lgebra
lineal
y matrices

Despusdecompletar los cuatro de captulos


laParte usted podr MATLAB
usar para
resolver
muchosdelos problemasqueencontrar
ensuscursos y laboratorios.
Elcaptulo
1define
una metodologa
deresolucin
deproblemas quese usarentodoeltexto,
mientras
queelcaptulo
2 explora
elentornoMATLAB. y 4 presentaremos
En los captulos
muchasfunciones
tiles
que van desde
funciones matemticas hastapara funciones
anlisis
dedatos funciones
y matriciales. aprenderemos
Tambin escribir
a nuestras
propias
funciones
y agenerarnmerosaleatorios.
A lo largo
detodaslas explicaciones
y
ejemplos,
sepresentarn
tcnicas
devisualizacin cuyo quefin
usted
es
adquiera soltura
enelusodeMATLABpararealizar
clculos
y exhibir informacin visualmente.
Resolucin deproblemas

XXI
XXI.

diez logros sobresalientes


eningeniera 25

microprocesador,

alunizaje
6 CAP. 1 RESOLUCINDE PROBLEMASDE INCENIERA

JumboJet Cortesa deUnitedParcel Service.

vezimpulsael compresory el abanicograndeenla partefrontal delmotor.El abanico,


al girar, proporcionala mayor partedel empujedel motor.
La industria de la aviacin tambinfue la primeraen desarrollary usar mate-
Materiales riales compuestos avanzados, quemateriales
son quesepuedenpegardemodoque
compuestos uno refuerzalas fibrasdel otro.Los materialescompuestos avanzados se crearon
avanzados para contar con materialesmsligeros,fuertes yresistentesa la temperatura para
avionesy naves espaciales. No obstante, ahoraexistennuevos mercados para los
materialescompuestos para uso enequipodeportivo.Por ejemplo, capas defibrasde
Kevlar tejidasaumentanla resistenciay reducenel pesode los esqus para descenso
en nieve,y los palosde golf degrafito/epoxysonms fuertes yligerosquelos palos
de acero convencionales. Los materialescompuestos tambin seusanenel diseode
prtesis.
Tomografa Lasreasdemedicina, bioingeniera y cienciasdela computacin hicieron
equipo
axial parael desarrollode la mquina exploradora de CAT (tomografa axialcomputari-
computarizada zada).Esteinstrumento puede generarimgenes tridimensionaleso cortesbidimen-

MATERIALES
COMPUESTOS AVANZADOS Cortesa de
Mike Valeri.
SEC. 1.1 LA INGENIER~AEN EL SIGLO XXI 7

EXPLORACI~N
CAT INGENIER~A
GENTICA

sionales de un objeto usando rayos X que se generan desde diferentes ngulos alre-
dedor del objeto. Cada rayo X mide una densidad desde su ngulo, y algoritmos
computarizados muy complejos combinan la informacin de todos los rayos X para
reconstruir una imagen clara del interior del objeto.Las exploraciones CAT se usan
rutinariamente paraidentificar tumores, cogulos sanguneos y anomalas en el cere-
bro. El ejrcito de Estados Unidos est desarrollando un explorador CAT ligero y
robusto que se puede transportar aestaciones mdicas en zonas de combate.
Ingeniera La ingeniera gentica, el trabajo de genetistas e ingenieros, ha dado origen a
gentica muchos productos nuevos que van desde la insulina hasta hormonas parael crecimien-
to y vegetales resistentes a infecciones. Un producto de ingeniera gentica se crea
insertando un gen que produce una sustancia valiosa de un organismo en otro or-
ganismo que se multiplica, multiplicando al mismo tiempo el gen ajeno. El primer pro-
ducto comercial de ingeniera gentica fue la insulina humana, que apareci con el
nombre comercial de Humulin. Los trabajos actuales incluyen investigacionesde mi-
crobios alterados genticamente para limpiar desechostxicos y degradarpesticidas.
Lseres Los lseres son ondas de luz que tienen la misma frecuencia y viajan en un haz
angosto que puede dirigirse y enfocarse. Se usan lseresde CO, para taladrar agujeros
en materiales que van desde cermicas hasta materiales compuestos.Los lseres tam-
bin se usan en procedimientos mdicos para soldarel desprendimiento de la retina
ocular, sellar lesionesen vasos sanguneos, vaporizar tumores cerebrales y realizar
ciruga delicada del odo interno.Las imgenes tridimensionales llamadas hologramas
tambin se generan con lser.
Fibras pticas Las comunicaciones de fibra ptica, utilizan esta fibra compuesta de hilos de vi-
drio transparentems delgados que un cabello humano. Una fibra ptica puede trans-
portar ms informacin que las ondas de radio o las ondas elctricasen los alambres
telefnicos de cobre, y no produce ondas electromagnticas que pueden causar inter-
ferencia en las lneas de comunicacin. Los cables transocenicosde fibra ptica pro-
veen canales de comunicacin entre los continentes. La fibra ptica tambin se usa en
instrumentos mdicos que permiten a los cirujanosintroducir luz en el cuerpo huma-
no para realizar exmenes y ciruga con lser.
8 CAP. 1 R E S O L U C I ~ N
DE PROBLEMASDE INGENIERA

LSERES FIBRAS PTICAS


Cortesa de Perkin-Elmer. Cortesa de Photo Researchers. Inc.

Aunquelos logros recientes de losingenieros hanproducido resultados impresio-


nantes, todava quedan muchos problemas importantes por resolver.Enestaseccin
Grandes presentamos un grupode problemas fundamentales deciencias e
desafos ingeniera conunimpactopotencial muyamplio.Losgrandes desafos fueron iden-
tificados por la Oficinade Polticasde Cienciay Tecnologaen Washington, D.C.
comopartedeuna estrategia de investigacin y desarrollo de computacin de alto
rendimiento. Hemos seleccionado cincode estos grandes desafosparael presente
texto. Dichos desafos se comentarn en las aplicaciones que abren cada captulo,
y
en los ejemplos se resolvern problemas relacionados Los conprrafos
ellos. que
siguen presentan brevemente estos grandes desafos y bosquejan los tiposdebenefi-
ciosqueseobtendrn de sussoluciones. As como lacomputadora desempe un
papelimportante enlosdiezlogrosms importantes dela ingeniera, tambin desem-
pearun papelanmayoren la resolucin de problemas relacionados con estos
grandes desafos.
Prediccindel La requiere una com-
tiempo, elclima prensin del sistema acoplado dela atmsfera y la biosfera ocenica. Estoincluyela
Y loscambios comprensin de la dinmicadel CO, en la atmsfera y el mar, elagotamiento del
globales
ozono ylos cambios climatolgicos debidos laa liberacin desustancias qumicaso
energa. Estacompleja interaccin tambin incluye interacciones solares.
Unaerupcin
importante deunatormenta solar cercade unagujero enla corona(unpunto de des-
cargadelvientosolar) puede expulsar enormes cantidades degases calientesdesde
la superficie delSolhaciala superficie terrestre a velocidades demsdeun milln
demillas porhora.Estos gases calientes bombardean la TierraconrayosX y pueden
interferir las comunicacionesy causar fluctuaciones en las lneasde transmisin de
SEC. 1.1 LA INGENIERA EN EL SIGLO XXI 9

electricidad. Para aprendera predecir alteraciones en el tiempo, elclima y cambios


globales es preciso recabar grandes cantidades dedatosy desarrollar nuevos mode-
los matemticos capaces de representarla interdependencia de muchasvariables.
Comprensin La comprensin computarizada del habla podrarevolucionarnuestrossiste-
computarizada mas de comunicacin,pero se debensuperarmuchosproblemas.Actualmentees
del habla posibleensear a una computadora a entender palabras deun vocabulariopequeo
habladaspor la misma persona. Sin embargo, es difcil crearsistemasindependientes
del hablante que entiendan palabras de vocabulariosgrandesy de diferentesidio-
mas.Por ejemplo, cambios sutilesen la voz de las personas, como los causados por
un resfriadoo el estrs,puedenafectarel desempeo delos sistemas dereconocimiento
del habla. Adems, suponiendo que la computadorapuedareconocer las palabras,
no essencillodeterminarsu significado. Muchas palabras dependen del contextoy no
puedenanalizarsepor separado;adems,la entonacin, como cuandoalzamosla
voz, puedetransformarunaafirmacin enunapregunta.Aunquetodavahay muchos
problemas difcilesque debenresolverseen el readel reconocimientoy compren-
sin automticosdel habla, abundanlas posibilidadesestimulantes. Por ejemplo,
iimagineun sistematelefnicoque determinalos idiomas que se estnhablando y
traducelas seales del hablade modo quecada persona escuche la conversacin e
su idioma materno!
Proyectodel La metadel proyecto del genoma humano es localizar, identificar y determinar
genoma la funcin de cadauno delos 50,000a 100,000genescontenidosen el ADN (cido
humano desoxirribonucleico)humano,el material genticode que se componen lasclulas.
Descifrarel cdigogenticohumano dar pie a muchos avances tcnicos,incluida la
capacidadpara detectar la mayorpartedelas msde4 000 enfermedades genticas
humanasconocidas, como la anemiade clulas falciformes y la fibrosis qustica.Sin
embargo,el descifrado delcdigo se complica por la naturalezade la informacin
gentica.Cada genesun hilo dedoblehlicecompuesto por pares debases(adenina
unida atimina o citosinaunida a guanina) dispuestas en forma de escalonescon
gruposfosfatoa los lados. Estos paresdebasespuedenocurrir en cualquierordeny
representanla informacinhereditariadel gen.Ei nmerode paresde basesen el
ADN humanoseha estimadoen cercade3 000 millones.Dado queel ADN dirige la
produccinde protenas para todaslas necesidades metablicas,las protenas pro-
ducidaspor unaclula puedenconstituir una clavepara entenderla secuenciade
paresdebasesen el ADN.
Mejorasen el Un mejoramiento sustancial del funcionamiento de los vehculos requiere
funcionamiento modelos fsicos mscomplejosenlas reasde comportamiento dinmico defluidos
delos vehculos en campos deflujo tridimensionalesy flujo dentrodela turbomaquinaria y ductos de
los motores.La turbulenciaenlos flujos defluidos afecta laestabilidady el control,las
caractersticas trmicas y el rendimiento delcombustiblede vehculosaeroespacia-
les;esnecesariomodelar este flujo parapoderanalizar nuevas configuraciones. Los
anlisisdel comportamiento aeroelsticode los vehculos tambin afectan los nue-
vos diseos.La eficienciade los sistemasde combustintambinest relacionada
conlo anterior,porquepara lograrmejoras significativas enla eficienciade combus-
tin esprecisoentenderlas relacionesentre losflujos de las diversas sustanciaslay
qumicaquehacequedichas sustancias reaccionen.El funcionamientodelos vehcu-
los tambinestsiendo investigado conla ayudade computadoras microprocesa-
y
dores a bordo.Seestnestudiandosistemasdetransporteenlos quelos automviles
CAP. 1 R E S O L U C I ~ N
DE PROBLEMASDE INGENIERA

tienen computadorascon pequeas pantallasde video montadasen el tablero. El


conductorintroducela posicin de su destino, y la pantalla de video muestralos
nombresde las callesy el camino que debe seguirsepara llegarde la posicin actual
a la de destino.Una redde comunicaciones mantienea la computadoradel coche al
tanto de cualquier embotellamiento de trnsito,a fin de que el auto puedaseguir una
ruta alternativasi es necesario. Otrasinvestigaciones sobretransporteestudianla
conduccintotalmente automatizada, con computadoras y redes manejando todo el
intercambiode control informacin.
Recuperacin La recuperacin mejorada de petrleo y gas nos permitir encontrar las reser-
mejoradade vas de petrleoque se estiman en300 mil millones de barriles en Estados Unidos. Las
petrleoy gas tcnicas actualesparaidentificarestructurascon posibilidades de contener petrleo
y gas empleanprocedimientos ssmicos capacesde evaluar estructuras hasta 20,000
pies por debajode la superficie. Estas tcnicas
empleanun grupode sensores (deno-
minado arreglode sensores) quese coloca cercadel reaque se desea probar.Una
seal de choque enviadahacia elinteriorde la tierraes reflejadapor las fronterasde
las diferentes capas geolgicasy Iuego es recibidapor los sensores.Empleandopro-
cesamiento de seales avanzado, se pueden crear mapas de las capas de frontera
y hacer estimacionesacercade los materialesque contienen, como arenisca,pizarra y
agua.Las seales de choque se pueden generarde diversasformas.Se puede hacer
un agujeroy detonaren su interior unacarga explosiva; sepuede detonaruna carga
en la superficie;o se puede usarun caminespecial provistode un martillo hidrulico
para golpear el suelo varias veces porsegundo. Se requieren investigaciones con-
tinuadaspara mejorar la resolucinde la informaciny encontrarmtodos de pro-
duccin y recuperacinque sean econmicosy ecolgicamente aceptables.
Estos grandesdesafos son slo unos cuantosde los numerososproblemas inte-
resantes que estn en espera de ser resueltos por los ingenierosy cientficos. Las
soluciones a problemasde esta magnitudsernel resultadode enfoquesorganizados
que combinanideas y tecnologas. Las computadoras ylas tcnicas de solucinde
problemassernelementos claveen el proceso de resolucin.

El ingeniero del siglo XXI trabajaren un entorno querequieremuchas habilidades y


capacidadesno tcnicas. Aunque la computadora ser la herramientade clculopri-
mariade la mayorade los ingenieros, tambinser til para adquirir capacidadesno
tcnicas adicionales.
Habilidadesde Los ingenieros requieren firmes habilidades de comunicacin tanto para pre-
comunicacin sentaciones oralescomo para preparar materiales escritos.Las computadoras propor-
cionan software queayuda a escribir sinopsisy elaborar materialesy grficaspara
presentacionese informes tcnicos. Elcorreo electrnico (email)y la World Wide
Web (WWW)tambinson importantescanales de comunicacinque veremos ms
adelanteen este captulo.
Ruta dediseo/ La ruta de diseo/proceso/fabricacin, queconsisteen llevarunaideade concepto
proceso/ a producto,es algo que los ingenieros deben entender porexperienciapropia.Cada
fabricacin paso de este proceso utilizacomputadoras:anlisis de diseo, control de mquina,
ensambladocon robots,aseguramientode la calidad y anlisis de mercados.Varios
problemas del texto tienenque ver con estos temas. Por ejemplo, en el captulo 6
SEC. 1.2 SISTEMAS DE C ~ M P U T O 11

desarrollaremosun programa para determinarel movimiento de un brazo robot uti-


lizado para ensamblartarjetas de circuitos.
Equipos Los equipos de ingeniera del futuro van a ser equiposinterdisciplinarios, igual
interdiscipli- que los actuales. La presentacin de los diez logros culminantes en ingeniera pone
narios de manifiesto la naturaleza interdisciplinariade dichos logros. Aprender a interactuar
en equipos y desarrollarestructurasorganizativas parala comunicacin eficaz dentro
de los equipos es una habilidad importante de los ingenieros.
Mercado Los ingenieros del siglo XXI necesitan entender el mercadomundial.Esto im-
mundial plica entender diferentes culturas, sistemas polticos y entornos de negocios. Los cur-
sos sobre estos temas y de idiomas extranjeros ayudan a adquirir estacomprensin, y
los programasde intercambio con experiencias internacionalesproporcionan conoci-
mientos valiosos para desarrollarun entendimiento ms amplio del mundo.
Los ingenieros resuelven problemas, pero los problemas no siempre se formu-
lan con cuidado. Un ingeniero debe ser capaz de extraer un enunciado de problema
de un anlisis del mismo y luego determinar las cuestiones importantes relacionadas
con l. Esto implica no slo crear un orden, sino tambin aprender a correlacionarel
Analizar caos; no slo significa analizarlos datos, sino tambin sintetizaruna solucin. La
Sintetizar integracin de ideas puede ser tan importante como la descomposicin del problema
en fragmentos manejables. La solucin a un problema podra implicar no slo un
razonamiento abstracto sobreel problema, sino tambin aprendizaje experimental a
partir del entorno del problema.
Contexto Las soluciones a los problemas tambin deben considerarseen su contextoso-
social cial.Es preciso abordarlas cuestiones ambientales mientras se consideran soluciones
alternativas alos problemas. Los ingenieros tambin deben estar conscientes de las
implicaciones ticas al proporcionar resultadosde pruebas, verificacionesde calidad
y limitaciones de diseo. Es una lstima que tragediascomo la explosin del Challenger
sean a veces el mvil para traeral primer plano cuestionesde responsabilidad y obli-
gaciones. Las cuestiones ticas nunca son fciles de resolver, y algunos de los nuevos
y excitantes logros tecnolgicos traern de la mano ms consideraciones ticas. Por
ejemplo, la creacinde mapas del genoma humano tendr implicaciones ticas, lega-
les y sociales. La terapia gentica que permite a los doctores combatir la diabetes,
deberusarse tambin para aumentarla capacidad atltica?Debe darse alos futuros
padres informacin detallada acerca de las caractersticasfsicas y mentales de un
nio que an no ha nacido?Qu grado de confidencialidad debe tener un individuo
respecto a su cdigo gentico? Surgen cuestiones complicadas con cualquier avance
tecnolgico porque las mismas capacidades que pueden hacer mucho bien tambin
se pueden aplicar a menudo en formas que resultan dainas.
A continuacin iniciamos nuestro estudio de MATLAB con una introduccin a la
gama de sistemas de cmputo de que disponen los ingenieros y una introduccin a
la metodologa de resolucin de problemas que se usar en todo este texto para resol-
ver problemas de ingeniera con la ayuda de MATLAB.

1.2 Sistemasde cmputo

Antes de comenzar a hablarde MATLAB,


resulta til explicar brevemente en qu consiste
la computacin, sobre todo para quienes no han tenido experiencia previa con las
Computadora computadoras. La computadoraes una mquina diseada pararealizar operaciones
12 CAP. 1 R E S O L U C I ~ NDE PROBLEMAS DE INGENIER~A

externa

I I
I I
I CPU I
1 _ _ - - - _ _ _ _ _ _ _ _ _ _ _ _ 1

Figura 1.1
que se especifican con un conjunto de instrucciones llamado El de
computadora se refiere al equipo, como el teclado, el ratn, la terminal, el disco duro
y la impresora. El de computadora se refiere a los programas que describen
los pasos que queremos que la computadora realice.

EQUIPO DE CMPUTO

Todas las computadoras tienen una organizacin interna comn, como se aprecia en
la figura 1.1. El controla todas las dems partes; acepta valores de entra-
da (de un dispositivo como el teclado) y las almacena en la El procesador
tambin interpreta las instrucciones de los programas de computadora. Si queremos
sumar dos valores, el procesador recuperar los valores de la memoria y los enviar
a la o ALU. La ALU realizar la suma, y el procesador
almacenar despus el resultado en la memoria. La unidad de procesamiento y la
ALU utilizan memoria interna compuesta por memoria slo de lectura (ROM) y
memoria de acceso aleatorio (RAM)en su procesamiento; la mayor parte de los datos
se almacenan en memoria externa o memoria secundaria usando unidades de disco
duro o de disco flexible que se conectan al procesador. El procesador y la ALU juntos
Unidad central reciben el nombre de o CPU. Un es una
de Proceso CPU contenida en un solo chip de circuitos integrados que contiene millones de com-
ponentes en un rea ms pequea que un sello de correo.
Por lo regular le indicamos a la computadora que imprima los valores calcu-
lados en la pantalla de la terminal o en papel usando una impresora. Las impresoras
de matriz de puntos usan una matriz (o retcula) de agujas para producir la figura de
un carcter en papel, en tanto que las impresoras de lser usan un rayo de luz para
transferir imgenes al papel. La computadora tambin puede escribir informacin en
disquetes, que la almacenan magnticamente. La reproduccin en papel de la infor-
macin se denomina y la reproduccin magntica de la informacin
se denomina
Hay computadoras de todos los tamaos, formas y estilos. (Vea las fotografas
de la figura 1.2.)Las computadoras personales (PC) son pequeas, de bajo costo, y se
usan comnmente en oficinas, hogares y laboratorios. Las PC tambin se conocen
,For ejemplo, pueden
SEC. 1.2 SISTEMASDE C ~ M P U T O 13

1.2 Hardware de computadoras.(Crditos de fotografas: a Cortesade JohnsonSpace


Cer~ter. b Cortesade Thelmage Works. c Cortesade Apple Computerlnc. d Cortesade The
Inlage Works. e Cortesade Cray research. f Cortesade IBM.)
14 CAP. 1 RESOLUCI~N
DE PROBLEMASDE INGENIERA

como microcomputadoras,y su diseo se centra en un microprocesador, como el


Intel 486, capaz de procesar millones de instruccionespor segundo (mips). Las
minicomputadorasson mspotentesque las microcomputadoras; las mainframes son
computadorasan ms potentes que suelen usarse en empresas y laboratoriosde
investigacin. Unaworkstation (estacindetrabajo)es una minicomputadora ouna
mainframe lo bastante pequea como para tener cabidaen u n escritorio. Las
supercomputadoras son las ms rpidasde todas las computadoras, ypuedenpro-
cesar miles de millones de instruccionespor segundo.Graciasa su velocidad, las
supercomputadoras pueden resolverproblemasmuy complejosque no sera factible
resolveren otrascomputadoras.Las mainframes y las supercomputadoras requieren
instalaciones especiales ypersonal especializadopara operar y mantenerlos siste-
mas de cmputo.
El tipo de computadora quese necesitapararesolverun problemaen particular
dependede las exigenciasdel problema.Si la computadoraformapartede un siste-
ma de seguridaddomstico,bastarcon un microprocesador;si la computadoraest
controlandoun simuladorde vuelo, probablementese necesitaruna mainframe. Las
Redes redespermiten a las computadoras comunicarseentre s para compartir recursose
informacin. Por ejemplo, Ethernet es una red de rea local (LAN)de uso comn.

SOFTWARE PARA COMPUTADORA

El software para computadora contienelas instruccioneso comandosque queremos


que la computadoraejecute.Hay variascategorasimportantesde software, inclui-
dos sistemas operativos,herramientasde software y compiladoresde lenguajes.La
figura 1.3 ilustrala interaccinentre estascategorasde softwarey el hardwarede
computadora. Acontinuacin describiremos con mayor detalle cada una de dichas
categoras.

1.3 Interfaz de software con la computadora.


SEC.1.2 SISTEMASDE C ~ M P U T O 15

Sistema Sistemas operativos.Ciertos tipos de software, comoel sistema operativo,


operativo normalmente viene conel hardwaredela computadoracuandoseadquieresta.El
sistemaoperativo provee unainterfazentreusted(el usuario)y el hardwareestable-
ciendoun entornocmodoy eficientequepermiteseleccionary ejecutar elsoftware
del sistema.
Los sistemas operativos tambin contienenun grupo de programas llamados
utileras que permitenrealizar funciones como imprimir archivos, copiar archivosde
un disquete aotro y listar los archivosquesehan guardado enun disquete.Si bien la
mayor partedelos sistemasoperativos cuentan con estas utileras, los
comandosen
s varan de una computadora a otra. Por ejemplo,para listar los archivosusando
DOS (un SistemaOperativode Disco que seusa principalmente con las PC),el co-
mandoesdir; paralistar los archivos conUNIX (unpotentesistemaoperativoquese
emplea amenudocon estaciones de trabajo), elcomandoes 1s. Algunos sistemas
operativos, como elentornoMacintoshy el entornoWindows, simplifican la interfaz
conel sistemaoperativo.
Dadoquelos programasMATLABsepueden ejecutar en muchasplataformas o
sistemasdehardwaredistintos,y dadoqueuna computadoraespecficapuedeusar
diferentes sistemasoperativos,no podemosanalizaraqula amplia variedadde sis-
temas operativos queel lectorpodrausarmientrastomaestecurso.Suponemos que
el profesorproporcionarla informacin sobre el sistema operativoespecficoqueel
lector necesitarpara usarlas computadoras disponiblesen suuniversidad; esta in-
formacintambinest contenida en los manuales del sistemaoperativo.

Herramientas de software.Lasherramientas desoftwaresonprogramasquese


Procesadores hanescritopararealizar operaciones comunes.Por ejemplo, losprocesadores detextos
de textos como Microsoft Wordy WordPerfect,sonprogramasqueayudanal usuario aintro-
ducir texto y darle formato.Los procesadores de textospermitencambiarde lugar
frasesy prrafos y amenudocuentancon capacidades para introducir ecuaciones
matemticasy revisar la ortografao la gramtica.Los procesadores de textos tam-
bin sirvenparaintroducir programas de computadora yalmacenarlosen archivos.
Los procesadores detextos msavanzados permiten producir pginas bien
diseadas
quecombinandiagramasy grficoselaboradoscon texto y ttulos.Estosprogramas
usan unatecnologallamadaautoedicin,quecombinaun procesadordetextos po-
tenteconunaimpresoradealta calidadpara producir documentos deaspecto profe-
sional.
Hoja d e clculo Los programasdehoja de clculosonherramientasdesoftware quefacilitan el
trabajocondatos quesepuedenexhibir enunaretculadefilas y columnas.Lashojas
de clculo seusabaninicialmentepara aplicaciones financieras y de contabilidad,
pero muchos problemas cientficosy de ingeniera sepueden resolvercon facilidad
usandohojasde clculo.La mayor partede los paquetesde hoja de clculocuenta
con funcionesdegraficacin,por lo quepuedenserdeespecialutilidad para analizar
y exhibir informacin.Excel,QuattroProy Lotus1-2-3son paquetes dehojadeclculo
populares.
Otro grupomuy utilizado deherramientasde softwarelo constituyenlos pro-
Administracin gramasdeadministracin debasesde datos,comodBaseIV y Paradox.Estosprogra-
de basesde maspermiten al usuario almacenaruna grancantidaddedatos,recuperarelementos
datos de esosdatosy darles formato para presentarlos en informes.Las organizaciones
diseo asistido por computadora

declcu-
los matemticos,

Lenguajes de computadora.

lenguaje de mquina

binario,

lenguaje ensamblador

programas en tiempo real.

lenguajes de alto nivel


TABLA 1.1 Com~aracinde instrucciones de software
Software Ejemplo de instruccin
area = ~ i * ( ( d i a m e t e r / 2 ) ~ 2 ) ;
area = 3.141593*(diameter/2)*(diameter/2);
area = 3.141593*(diameter/2.0)**2
Ada area : = 3.141593*(diameter/2)**2;
area := 3.141593*(diameter/2)*(diameter/2)
let a = 3.141593*(d/2)*(d/2)
c o m ~ u t earea = 3.141593*diameter/2)*(diameter/2).

sintaxis

generaciones.

4GL,

Fortran

Basic

Pascal

Ada
18 CAP. 1 RESOLUCI~NDE PROBLEMAS DE INGENIERA

del siglo XIX. C es un lenguaje de propsito general que evolucion a partir de dos
lenguajes, BCPL y B, desarrolladosen los Be11 Laboratories a finales de la dcada de
1960. En 1972, Dennis Ritchie desarroll e implement el primer compilador de C en
una computadora DEC PDP-11 en los Be11 Laboratories. El lenguaje se populariz
mucho para el desarrollo de sistemas porque era independiente del hardware. A
causa de su popularidad tanto en la industria como en los crculos acadmicos, se
hizo evidente que se necesitaba una definicin estndar. En 1983 se cre un comit
del American National Standards Institute (ANSI) para crear una definicin inde-
pendiente de la mquina y sin ambigedades de C. En 1989 se aprob el estndar
ANSI. C++ es una evolucin del lenguaje C desarrolladaen 10s Be11 Laboratories de
AT&T a principios de la dcada de 1980 por Bjarne Stroustrup. Las extensiones del
lenguaje C proporcionaron nuevos operadores y funciones que apoyan un nuevo
paradigma llamado diseo y programacin orientados aobjetos.
Ejecucin de un programa de computadora. Un programa escritoen un lenguaje
de alto nivel como C debe traducirse alenguaje de mquina antes de que la compu-
tadora pueda ejecutar las instrucciones. Se usa un programa especial llamado
Com~ilador compilador para llevar a cabo dicha traduccin. As, para poder escribir y ejecutar
programas en C en una computadora, el software de esta ltima debe incluir un
compilador de C.
Si el compilador detecta errores(conocidos como bugs [bichos])durante la com-
pilacin, imprime los mensajes de error correspondientes. Debemos corregir las ins-
trucciones del programa y luego realizar otra vez elpaso de compilacin. Los errores
identificados durante esta etapa se llaman errores de compilacin o errores de tiem-
po de compilacin. Por ejemplo, si queremos dividir el valor almacenado en una
variable llamada suma entre 3, la expresin correcta en C es suma/3; si escribimos
incorrectamente esa expresin usando la diagonal invertida, como en suma\ 3, ob-
tendremos un error de compilacin. El proceso de compilar, corregir instrucciones(o
depuracin) y recompilar a menudo debe repetirse varias veces antes de que el pro-
grama se compile sin errores de compilacin. Si ya no hay errores de compilacin, el
compilador genera un programa en lenguaje de mquina que ejecuta los pasos espe-
cificados en el programa original en C. Llamamos a este programa original programa
fuente, y la versin en lenguaje de mquina se denomina programa objeto. As, el
programa fuente y el programa objeto especificanlos mismos pasos, pero el programa
fuente se especifica en un lenguaje de alto nivel, y el programa objeto se especifica en
lenguaje de mquina.
Una vez que el programa se ha compilado correctamente, se requieren pasos
Ejecucin adicionales para prepararel programa parasu ejecucin. Esta preparacin implica
vincular otras instrucciones en lenguaje de mquina con el programa objeto y luego
cargar el programa en la memoria. Despus de esta virculacinlcarga, la computadora
ejecuta los pasos del programa. En esta etapa podran identificarse nuevos errores,
llamados errores de ejecucin, errores de tiempo de ejecucin o errores de lgica;
stos tambin son bugs del programa. Los errores de ejecucin con frecuencia hacen
que se detenga la ejecucin del programa. Por ejemplo, las instrucciones del progra-
ma podran intentar realizar una divisin entre cero, lo que genera un error de ejecu-
cin. Algunos erroresde ejecucin no hacen que el programa deje de ejecutarse, pero
s que se produzcan resultados incorrectos. Estos tipos de errores pueden deberse a
equivocaciones del programador al determinar los pasos correctos de las soluciones
SEC.1.2 SISTEMASDE C ~ M P U T O

Compilacinlvinculacinlejecucin

y a erroresen los datosprocesados por elprograma.Cuandoocurren errores deeje-


cucina causade erroresen las instruccionesdel programa,espreciso corregirlos
erroresenel programa fuenteiniciar
e otra vezconel pasodecompilacin.Aun si un
programaal parecer se ejecuta correctamente, debemosverificar lasrespuestas con
cuidadopara asegurarnos deque seancorrectas.La computadoraejecutarlos pasos
precisamente como los especifiquemos; si especificamos los pasos indebidos (pero
correctosencuanto asu sintaxis),la computadoralos ejecutar y por tanto producir
una respuesta incorrecta.
Los procesosdecompilacin, vinculacincargay ejecucinse bosquejan enla
figura 1.4.El procesode convertir un programaescritoen lenguajeensamblador a
binario correa cargodeun programaensamblador, y los procesos correspondientes
sedenominanensamblado,vinculacin/cargay ejecucin.
Ejecucinde un programaMATLAB. En el entornoMATLAB, podemoscrear y
ejecutarprogramas, o"guiones", que contienencomandosde MATLAB. Tambin
podemosejecutarun comandode MATLAB, observar los resultados,y ejecutarotro
comandodeMATLAB queinteracteconla informacinqueestenla memoria,obser-
Entorno
interactivo
Esteentorno interactivo
var susresultados,y assucesivamente. no requiereel pro-
cesoformal decompilacin,vinculacin/cargay ejecucinquese describiparalos
lenguajesdecomputadoradealto nivel. Sin embargo, los erroresenla sintaxisdeun
comandode MATLAB se detectancuandoel entornoMATLAB intenta traducirel co-
mando, ylos erroresdelgicapuedencausarerroresdeejecucincuandoel entorno
MATLAB intentaejecutar el comando.
Ciclo devida del software. En 1955,el costodeuna solucinpor computadora
tpica se estimabaenun 15%parael desarrollodesoftware yun 85%parael hardwa-
re de computadoracorrespondiente. Con el tiempo, el costo del hardwareha dis-
minuidodrsticamente, mientras que el costodel softwareha aumentado. En 1985se
estimquelos nmerosmencionados prcticamentehaban se invertido, con el 85%
del costoparael software yel 15%parael hardware.Ahora quela mayor partedel
costode una solucinpor computadorase invierteen el desarrollo delsoftware, se
ha enfocado la atencin enentenderla creacindeuna solucinpor software.
El desarrollode unproyectodesoftware generalmente sigue pasoso ciclosde-
Ciclo de vida finidos, llamadoscolectivamenteel ciclode vida del software.Estospasos porlo
del software regular incluyenla definicindel proyecto,la especificacin detallada, codificacin
y
pruebasmodulares,pruebas integradas y mantenimiento. Los datos indicanquelos
porcentajesde esfuerzo invertido correspondientes sona grandesrasgos losque se
20 CAP. 1 RESOLUCIN DE PROBLEMASDE INGENIERA

TABLA 1.2 Fases del ciclo de vida del software


Ciclo de vida Porcentaiede esfuerzo
Definicin 3%
Especificacin 15%
Codificaciny pruebas modulares 14%
Pruebas integradas 8%
Mantenimiento 60%

muestranen la tabla 1.2. A la luz de estas estimaciones,es evidente queel manteni-


miento del software representauna partesignificativa del costo de un sistema de
software.Este mantenimientoincluye agregarmejoras al software, corregir los erro-
res identificadosal usar elsoftware,y adaptarel software paratrabajarcon hardware
o software nuevo.La facilidadparadareste mantenimiento estrelacionada directa-
mente con la definiciny especificacin originalesde la solucin, porqueestos pasos
sientanlas bases para elresto del proyecto. El proceso para resolver problemasque
presentamosen la siguiente seccin destacala necesidad de definir y especificarla
solucin cuidadosamente antesde comenzara codificarlao a probarla.
Una de las tcnicasque ha resultadoefectiva para reducirel costo del desarro-
Prototipos 110 de software tantoen tiempo como en dineroes la creacinde prototiposde soft-
de software ware. En lugar de esperar hastaque el sistema de software est terminado y luego
dejarque los usuariostrabajen conl, se crea un prototipodel sistema en una fase
tempranadel ciclo de vida. Este prototipo notiene todas las funcionesrequeridas del
softwarefinal, pero permiteal usuariohacerlas modificacionesque deseea las especifi-
caciones. Hacer los cambiosms temprano que tarde en el ciclo de vida es eficaz
tantoen costo comoen tiempo.En virtudde sus potentes comandosy sus capacidades
de grficos, MATLAB resulta especialmente eficaz para crearprototiposde software.
Una vez que el prototipo MATLAB est realizando lasoperaciones deseadas correc-
tamentey los usuaros estnsatisfechoscon la interaccinusuario/software,la solucin
final puede ser el programaMATLAB; O la solucin finalpuede convertirsea otrolen-
guaje para implementarse con una computadora o instrumento especfico.
Como ingeniero, esmuy probableque el lector necesite modificarel software
existenteo agregarle capacidades. Estasmodificacionessern mucho mssencillas si
el softwareexistente estbien estructurado y es comprensible,y si la documentacinest
actualizaday redactadaclaramente.Aun con herramientaspotentes como MATLAB,
es importanteescribir uncdigo bien estructuradoy comprensible.Por estas razo-
nes, hacemos hincapien la adquisicin de buenos hbitos que haganal software
ms comprensibley autodocumentable.

Internet La Internet es unared de computadorasque evolucion a partirde un pequeo pro-


yecto de investigacin experimentalfinanciado porla ARPA (AdvancedResearch
ProjectsAgency), una dependencia delgobierno estadounidense, amediados de la
dcadade 1980. Diez aos despus,la Internet erala red ms grandedel mundo, en
conexin con ms de un milln de computadoras.
Correo Un sistema de es software que permite a los usuarios de una
electrnico red de computadoras enviar mensajes a otros usuarios de la red. Los usuarios de
Internet pueden enviar mensajes electrnicos a usuarios en todo el mundo. El
envo de correo electrnico y su contestacin se ha convertido en el modo de comunica-
cin estndar en muchas universidades y compaas. Si bien el uso de correo electrnico
simplifica muchas interacciones, tambin introduce algunas cuestiones interesantes
que es preciso resolver. Por ejemplo, la gente con frecuencia supone que cuando bo-
rran un mensaje de correo electrnico ste desaparece. Sin embargo, en muchos casos
el mensaje se almacen en otras computadoras o puede recuperarse de la memoria
de la computadora original, as que podra estar todava accesible. Aqu entra tam-
bin una cuestin de confidencialidad: El correo electrnico es correspondencia pri-
vada, o una compaa tiene derecho a leer el correo electrnico de sus empleados?
Tableros Ya estn disponibles en Internet que nos permi-
electrnicos ten participar en grupos de discusin. Estos tableros no slo permiten leer las notas
de noticias publicadas en los tableros, sino tambin publicarlas en ellos. Hay muchos tableros de
noticias con diversos temas que van desde reas tcnicas a deportes y pasatiempos.
Una vez ms, el potencial de beneficios lleva consigo un potencial de explotacin. Se
han presentado varias demandas legales respecto al acceso a tableros de noticias con
temas para adultos por parte de nios que usan la Internet.
Se han creado varios servicios de consulta de informacin para facilitar la loca-
World Wide lizacin y recuperacin de informacin en la Internet. La (WWW)
Web es un sistema que vincula informacin almacenada en muchos sistemas. Esta infor-
macin contiene no slo texto, sino tambin datos como archivos de
sonido, imgenes y animacin. Para consultar informacin en la WWW es preciso
tener acceso a software que pueda exhibir esos tipos de informacin. Algunos siste-
mas de software de "navegacin" de uso comn son Mosaic, Netscape y Java. Para
Localizador acceder a un sitio WWW, se necesita un (URL). Si
uniforme de usted tiene acceso a la WWW, tal vez desee acceder al sitio Web de MATLAB en http
recursos /www mathworks com. Tambin est disponible informacin relativa a este texto
enhttp://www.prenhall.com y enhttp:;/ece-www-colorado. edu/
faculty/etter.html.

Una metodologa para resolver problemas de ingeniera

La resolucin de problemas es una parte clave de los cursos de ingeniera, y tambin


de los de ciencias de la computacin, matemticas, fsica y qumica. Por tanto, es
importante tener una estrategia consistente para resolver los problemas. Tambin
es conveniente que la estrategia sea lo bastante general como para funcionar en todas estas
reas distintas, para no tener que aprender una tcnica para los problemas de mate-
mticas, una tcnica diferente para los problemas de fsica, etc. La tcnica de resolucin
de problemas que presentaremos funciona para problemas de ingeniera y puede adap-
tarse para resolver tambin problemas de otras reas; sin embargo, da por hecho que
vamos a usar una computadora para ayudarnos a resolver el problema.
para resolver La que usaremos en todo este texto tiene
problemas cinco pasos:
--
13 i 21' 1 l<l c l ) t l ' l < < ) ~ ~t l\ I t \ \ )E , t \ l t 1<1 \

,\

cie de
\t.

1. PLANTEAMIENTO DEL PROBLEMA

diagrama d

3. EJEMPLO A MANO
Tiempo (minutos) Temperatura (grados F)

+ +

algoritmo:

% Calcular la temperatura media (o promedio)


% y graficar los datos de temperatura.
4,

tiempo = L0.0, 0.5, 1.01;


temps = [105, 126, 1191;
promedio = mean(temps)
plot(time,temps),title(~Mediciones de temperatura'), ...
xlabel('Tiempo, minutos'), ...
ylabel('Temperatura, grados F'),grid

tiempo temps
Elpaso final
deriuestro
procesoderesolucin
deproblemas es probar
la solucin.
Primero
debemos probar
lasolucin
con los
datosdel ejemplo
a mano porque
ya
calculamos
lasolucin antes.
Alejecutarse las instrucciones
anteriores,
lacomputadora
exhibe
lasiguiente
salida:
promedio =
116.6667
Tambin se genera
unagrfica
delospuntos
dedatos.
Elpromediocoincide
con el
delejemplo
a mano,asqueahorapodemossustituir
esosdatos
porlos
delexperimento
datos defsica,
dandoelsiguiente programa:
% Calcular la temperatura media (o promedio)
% y graficar los datos de temperatura.
/o

tiempo = [O.O. 0.5, 1.0, 1.5, 2.0, 2.5, 3.0 ,...


3.5, 4.0, 4.5, 5.01;
temps = [105, 126, 119, 129, 132, 128, 131 ,...
135, 136, 132, 1371;
promedio = mean(temps)
plot(time,temps),title('~ediciones de temperatura'),.
xlabel('Tiempo, minutos'), ...
ylabel('Temperatura, grados F'),grid

Cuandoseejecutan
estos comandos,
lacomputadora
exhibe
lasiguiente salida:
promedio =
128.1818
La grfica 1.5
delafigura tambin aparece
enlapantalla.
Mediciones de temperatura
7 7 7 - 7 7 7 - 7 - - T -

Tiempo, mlnutos

Figura 1 .5Tempernturns
rccolecta~iac
cil t l texpertm~rrto
i defszcn.
SEC. 1.4 RECOLECCIN DE DATOS PARA LA PREDICCIN DEL CLIMA 25

Los pasos que demostramos en este ejemplo se usan para desarrollar los pro-
gramas de las secciones de "Resolucin aplicada de problemas" de los siguientes
captulos.

En cada uno de los captulos que siguen incluiremos secciones de "Resolucin aplicada
de problemas" que usan las nuevas instrucciones MATLAB presentadas en el captulo
para resolver un problema relacionado con el gran desafo .presentado en la intro-
duccin al captulo. Aunque ya mostramos un programa MATLAB, todava no tene-
mos los conocimientos necesarios para crear un programa nuevo relacionado con la
prediccin del clima (el gran desafo que presentamos en la introduccin a este cap-
tulo), pero podemos comentar los tipos de datos meteorolgicos que se recaban y los
anlisis preliminares que acompaan a la bsqueda de una solucin.
El primer paso para tratar de desarrollar una ecuacin o un modelo para prede-
cir el clima es estudiar la historia climtica anterior. Por fortuna, varias dependencias
nacionales estn interesadas en recabar y almacenar informacin meteorolgica. La
NOAA (National Oceanic and Atmospheric Administration) es una organizacin
orientada hacia la investigacin que estudia los ocanos y la atmsfera; adems, financia
investigaciones ambientales sobre anlisis de datos, modelado y trabajos experimen-
tales relacionados con los cambios globales. El National Environmental Satellite, Data
and Information Service recaba y distribuye informacin relativa al clima. El National
Centro Climatic Data Center recaba y compila informacin climatolgica de las oficinas del
Nacional National Weather Service en todo Estados Unidos. Estas oficinas tambin interactan
de Datos con los pronosticadores del clima estatales y locales para proporcionar al pblico en
el Clima
general informacin meteorolgica actualizada.
El National Climatic Data Center de Carolina del Norte se encarga de mantener
datos climatolgicos de oficinas del National Weather Service. Estos datos estn dis-
ponibles en muchas formas, incluidos datos de climatologa locales por mes, por es-
tado y para el mundo. El centro tambin mantiene datos climatolgicos histricos a
partir de 1931. La figura 1.6 muestra un resumen mensual de datos de climatologa
locales recabados por la oficina del National Weather Service del Aeropuerto Inter-
nacional Stapleton en Denver, Colorado, para el mes de enero de 1991. El resumen
contiene 23 elementos de informacin meteorolgica dferentes recabados para cada
da, incluidos temperaturas mximas y mnimas, cantidad de precipitacin pluvial,
rfagas de viento mximas y minutos de insolacin. Estos datos se analizan para
generar la informacin resumida mensual que aprece en la parte inferior del forma-
to, y que incluye temperatura media, precipitacin total de lluvia, precipitacin total
de nieve y el nmero de das que estuvieron parcialmente nublados.
Para analizar los datos de un mes, podramos graficar primero algunos de los
diferentes elementos de informacin para ver si observamos tendencias visibles en
los datos. Por ejemplo, deberemos poder observar si la temperatura mxima se man-
tiene ms o menos constante, aumenta, disminuye o flucta alrededor de un punto
comn. La figura 1.7 es una grfica de las temperaturas mximas para enero de 1991.
Podemos ver que la temperatura tiene algunas fluctuaciones o variaciones amplias, pero
no hay un aumento o una disminucin constante. Tambin podramos analizar datos
de temperatura para un ao del mismo modo; la figura 1.8 contiene las temperaturas
26 CAP. 1 RESOLUCINDE PROBLEMASDE INGENIERA

JAN 1 9 9 1
OENVCR. CO
N A I ' L WEA SER 01C
10210 s a l l n R O ~ O

SIAPLCIOH I Y I E R N A ~ ~ O N A LAP

MllWL MllOUL
DEEffllC C N V I R W E N I N SAIELLIIC. D I I R CLllVlllC MI1 CCNIER DlRtClOR
n A l l o N A L t L l n A l l t OAIA CENIER

1.6 Datos climatolgicoslocales.


27

Temperaturas mximas, enero de 1991


60 -
LL
-
% 50-
u
2 -
?' 40-
-$
2
3
30-
-

E
,g 2 0 -
-

I 1 I I I
1o
I

O 5 10 15 20 25 30 35
Da del mes
Figura 1.7Temperaturas mximas para enero de

Temperaturas mximas, enero-diciembre de 1991


1 O0
LL
8 80
u
e
?' 60
-
2
3
2 40
w
E
gil 20

o
O 50 1 O0 150 200 250 300 350 400
Da del ao
Figura 1.8 Temperaturas mximas para
28 CAP. 1 R E S O L U C I ~ N
DE PROBLEMASDE INGENIERA

Temperaturas mximas y medias, enero de 1991

o I 1 I I 1

O 5 1O 15 20 25 30 35
Da del mes
mximasy mediaspara enerode 1991.
Figura 1.9 Temperaturas

Lasgrficas nosdanuna idea rpida e intuitiva


delastendencias delos datos,
peronecesitamos mtodos msanalticos si
queremos usar la historiapara predecir
el futuro.Losmtodos analticos
queseusan comnmente paramodelardatosinclu-
yenla creacin de modelos lineales
o polinmicosquerepresenten los datos. Estu-
diaremos estos tiposde clculos
msadelante enel texto.MATLAB proporciona fcil
acceso tanto ala visualizacin como
a losmtodos analticos paraexaminardatosen
buscadetendencias. Describiremos estasdoscapacidades deMATLAB enunaseccin
posteriordeeste texto.

Sepresent ungrupodelogros sobresalientes recientes


eningeniera para demostrar
la diversidaddelasaplicaciones deingeniera. Luegopresent
se una
seriedegran-
desdesafos conobjetodeilustrar algunosdelosexcitantes
y difcilesproblemasque
los ingenieros
y cientficos
enfrentan
actualmente.
Tambinexaminamos algunas delas
habilidades notcnicas queserequieren para
tener xito comoingeniero. Dadoque
la resolucin
dela mayorpartedelos problemas deingeniera,incluidos losgrandes
desafos, utilizarcomputadora,
la tambinpresentamos un resumen deloscompo-
nentesde un sistemade cmputo,desdeel hardware hasta el software. Tambin
hicimosla presentacin deunametodologadecincopasospararesolverproblemas
que usaremos para desarrollarunasolucinpor computadoraun aproblema. Estos
cincopasossonlossiguientes:
1. Plantearel problema claramente.
2. Describirla informacin
deentraday desalida.
3. Resolverel problemaa mano (oconunacalculadora)paraunconjunto
dedatos
sencillo.
4. Desarrollarun algoritmoy convertirlo en
unprogramadecomputadora.
5. Probarla solucincondiversos datos.
Este proceso usar
se en todoel textopara desarrollar
las soluciones
de los
problemas.
RESUMEN DEL CAPTULO 29

TRMINOS
CLAVE

algoritmo Internet
bug lenguajeensamblador
cargador/ vinculador lenguajede alto nivel
ciclo de vida del software lenguajedemquina
compilador mantenimientode software
computadora memoria
computadora personal (PC) metodologapararesolverproblemas
correo electrnico microprocesador
depurar procesador
diagramadeE / S procesadorde textos
ejecucin programa
ensamblador programa fuente
entornointeractivo programaobjeto
error de compilacin prototipo de software
error de lgica red
grandesdesafos sistemaoperativo
hardware software
herramientaparaadministrar unidadde aritmticay lgica (ALU)
basesde datos unidadcentraldeproceso (CPU)
hoja de clculo World WideWeb

Las siguientes tareas


ofrecenuna oportunidad para aprender ms acercade uno de
los temasdeestecaptulo.Cadainforme deberincluir por lo menosdosreferencias.
Un buenpuntodepartidapara encontrar referenciassonlas lecturas recomendadas
quesiguena estegrupo de problemas, as comola World Wide Web.

1. Escribaun informe cortosobreuno deestoslogros sobresalientes


eningeniera:

Alunizaje Materialescompuestos
Satlitesde aplicacin Jumbojets
Microprocesadores Lseres
CAD/ CAM ptica de fibras
ExploracionesCAT Productosdeingenieragentica
30

Si desealeer mssobre losdiez msgrandeslogros, los grandesdesafos, olos sistemasde cmputo,recomenda-


moslos siguientes artculosdel ScientificAmerican.

A.
RESUMEN DEL CAPTULO 31

Capecchi,Mario. "Targeted Gene Replacement." Hess,


Wilmot, etal."TheExploration oftheMoon."
March1994. October 1969.
Charlson,
Robert.and J.Tom M. L.Wigley. "Sulfate Hutcheson,G. Dan andJerry D.Hutcheson. "Tech-
AerosolandClimatic Change." February 1994. nologyand Economics intheSemiconductor
Chou,Tsu-Wei, Roy L.McCullough, andR.Byron Industry."January 1996.
Pipes. "Composites."
October1986. Jewell,
Jack L.,JamesP.Harbison, andAxelScherer.
Cohen,JackS.,andMichael E.Hogan."TheNew "Microlasers."November1991.
GeneticMedicines." December1994. Mahowald, MishaA.andCarver Mead. "TheSilicon
Cooper,
George A."Directional
Drilling."May 1994. Retina."May 1991.
Davies-Jones,
Robert. "Tornadoes."
August1995. Matthews, Dennis L.andMordecai Rosen.
D. "Soft-
DeCicco,
JohnandMarcRoss. "Improving Automo- X-Ray Lasers."December 1988.
tive
Efficiency."
December 1994. Paabo,
Svante. "Ancient DNA." November1993.
Desurvire,Emmanuelf. "Lightwave Communica- Psaltis, Demetri
and FaiMok. "Holographic Memo-
tions: The Generation."
Fifth January 1992. ries."
November 1995.
Doolittle,
RussellF.andPeerBork."Evolutionarily Rennie,
John. "Grading theGeneTests." June1994.
MobileModules inProteins." October1993. Richelson,
Jeffrey
T."TheFuture ofSpace Reconnais-
Drexhage,Martin G. andCoinelius T.Moynihan. sance."January 1991.
"Infrared Optical
Fibers."
November1988. Ross,
Philip E."Eloquent Remains." May 1992.
Elitzur,
Moshe."Masers intheSky." February 1995. Schiller,
Jeffrey1."Secure Distributed Computin
Gasser,
CharlesS.andRobert T.Fraley. "TransgenicNovember1994.
Crops."June1992. Steinberg, Morris A. "MaterialsforAerospace."
Farmelo,Graham."The Discovery of X-Rays." October 1986.
November1995. S.andGeorgeS.Triantafyl-
Triantafyllou, Michael
Gibbs,W. Wayt. "Software's Chronic Crisis." lou."An Efficient SwimmingMachine." March
September 1994. 1995.
Greenberg,
Donald P."ComputersandArchitecture."Veldkamp, Wilfrid B. and ThomasJ.McHugh.
February 1991. "Binary Optics."May 1992.
Halsey,
ThomasC.andJames E.Martin. "Electrohe- Wallich,
Paul. "Silicon Babies."
December1991.
ological
Fluids."October1993. Wallich,
Paul. "WirePirates." March1994.
Herring,
Thomas. "TheGlobal Positioning System." Welsh, MichaelJ.andAlanE.Smith. "CysticFibro-
February 1996. sis."
December1995.
2.1 delentornoMATLAB
Caractersticas

2.2 Escalares, y matrices


vectores

2.3 Operaciones y arreglos


conescalares

2.4 Capacidades
degraficacin adicionales

2.5 Resolucinaplicada de problemas:Motor turbohe7iceavanzado

Resumendelcaptulo, Trminos
clave,Resumen
deMATLAB,
Notasdeestilo,Notasdedepuracin,
Problemas

En estecaptulopresentamos el entornodeMATLAB, que esun entorno interactivoparaclculosnu-


mricos,anlisisde datosy grficos. Despusde unaintroduccin a lostrestiposde ventanas de
exhibicinde MATLAB, explicaremos cmo puedenrepresentarse los datos en formade escalares,
vectoreso matrices.
Sepresentan y calcular informacin
variosoperadores para definir nueva.Tam-
binsepresentan comandos para imprimirinformaciny generargrficascon losdatos.Porltimo,
presentaremosun ejemploquecalculay graficala velocidady aceleracindeunavinconunm o t o ~
turbohliceavanzado.
34 MATLAB

2.1 Caractersticas MATLAB


del entorno

"Laboratorio de matri-
ces".

VENTANA DE MATLAB

matlab. indicador (>a o EDU>>),

quit exit.

+ MATLAB,
SEC.2.2 ESCALARES, VECTORESY MATRICES 35

Ventanas MATLAB usatresventanasde exhibicin:la ventanade comandos sirve para in-


de exhibicin troducir comandos y datose imprimir resultados;la ventanade grficos sirvepara
exhibir curvasy grficas, yla ventanade edicinsirve paracrear y modificar archi-
vos M, que sonarchivosquecontienenun programao guin de comandos MATLAB
En cuanto entraa MATLAB, la ventanaactivaesla ventanadecomandos. Para ejecutar
un archivo M (comotarea-i .m), simplementetecleeel nombre delarchivo sinsu
extensin (como en tarea-1).Al ejecutarse los comandos, aparecern automticamen
las ventanas apropiadas; se puedeactivar una ventana haciendo clic con el ratn
dentrode ella.
Hay varios comandos para despejar ventanas. El comandotic despejala venta-
na decomandos, y el comando c i f borrala figura actual ypor tanto despeja la ventana
degrficos.El comandociear no afecta a las ventanas, perosborra todas las varia-
bles de la memoria.En general,esaconsejable iniciar los programascon los coman-
dos c i e a ry c l f para tenerla seguridadde quela memoriaest despejada y quela
ventanade grficos estenblanco y restablecida.
Si deseaver algunasdelas capacidades deMATLAB, introduzcael comandoaemo,
EXPO queinicia el MATLAB EXPO,un entornogrfico de demostracinqueilustra algunos
de los tiposde operacionesque se pueden realizar con MATLAB. Si introduceel co-
mandohelp, aparecer un mende ayuda.
Abortar Es importantesaber cmointerrumpir o abortarun comandoen MATLAB. Por
ejemplo,puedehaber ocasionesen que suscomandoshagan quela computadora
imprima listas aparentemente interminables de nmeros, opodra parecerque la
computadora entr en un ciclo infinito. En estoscasos,mantenga presionada la tecla
de control y oprima c para generar una interrupcinlocal dentrode MATLAB. La se-
cuencia control-c a veces se escribe "c, pero la secuenciano incluye el carcter /\.

2.2 Escalares, vectores y matrices

Al resolverproblemasde ingeniera, esimportantepoder visualizarlos datosrela-


cionadoscon elproblema.A veces losdatosconsistenen un solo nmero,como el
radio deun crculo.En otrasocasiones, los datospodranser una coordenada en un
plano,quepuederepresentarse comoun par denmeros,unodelos cualesrepresen-
ta la coordenada x, y el otro, la coordenada y. En otro problema,podramostenerun
c/
conjuntodesuatro coordenadas xyz, representando los cuatrovrticesde una pir-
mide con base triangularen un e s c i otridimensional.Podemosrepresentar todos
Matriz estosejemplosusandoun tipo especialde estructurade datosllainado matriz, un
conjuntodenmeros dispuestos enunaretcula rectangular defilas y columnas.As,
un solopuntopuedeconsiderarse comouna matrizconuna fila y una columna,una
coordenadaxy puedeconsiderarseuna matriz con una fila y dos columnas, yun
conjuntodecuatro coordenadas xyz puedeconsiderarse como unamatriz concuatro
filas y trescolumnas.He aquejemplosdeesto:
A = [3.5] B = [1.5
r-1 o o 1
36 CAP. 2 EL ENTORNO MATLAB

Observequelos datoscontenidosen una matriz seescribendentrode corche-


Escalar tes.Si una matriz tiene una filay una columna,podemosllamar escalar al nmero.
Vector De forma similar,si una matriz tiene una fila o una columna,la llamamosvector;
parasermsespecficos,usamosel trminovector fila o vector columna.
Al usaruna matriz, necesitamos una forma de referirnos a loselementoso n-
merosindividualesque contiene. Unmtodosencillopara especificarun elemento
deuna matriz usa el nmerodefila y el decolumna.Por ejemplo, sinosreferimos al
valor de la fila 4 y la columna3 de la matriz C del ejemplo anterior,no habrambi-
gedad:nos estamos refiriendo al valor2. Usamoslos nmerosdefila y decolumna
Subndices comosubndices;as,C,, representael valor 2. Parareferirnosa toda la matriz usa-
mos el nombre sinsubndices, como en C. Aqu usaremosun tipo de letra especial
para lasmatricesy comandosde M~TLAB. LOSsubndices se indican en MATLABcon pa-
rntesis, como en4 4 . 3 ) .
El tamaodeunamatriz se especifica con nmero el defilas y decolumnas.En
nuestroejemploanteror,C esuna matrizcon cuatrofilas y trescolumnas, osea,una
matriz 4 x 3. Si una matrizcontiene m filas y n columnas, entoncescontieneun total
Matriz dem por nvalores;as,C contiene12valores.Si unamatriz tiene el mismo nmerode
cuadrada filas y de columnas, decimos queesuna matriz cuadrada.

ipractique!

Conteste las
siguientespreguntasacercade esta matriz:

1. QutamaotieneG?
2. D las referenciasde subndicesde todaslas posicionesque c,,..,,.,~n el
valor 0.5.

En los programasMATLAB, asignamos nombres a los escalares,


vc
cesqueusamos. Las siguientesreglas aplican estos
a nombres de variable>.
Los nombresde variablesdebencomenzarcon una letra.
Los nombresde variablespuedencontener letras,
dgitosy el carcterde sub-
rayado
Los nombresdevariablespuedentener cualquier longitud, pero deben ser ni-
cosdentrodelos primeros19 caracteres.*
MATLAB essensible ala diferenciaentre maysculas y minsculas,asquelos nom-
bresTiempo, TIEMPO y tiempo representan tres
variablesdistintas.
W,&J d oyx/czGe A ~ d t d

Esto significaque,paraMATLAB,dosvariablessonidnticassi tienen losprimeros19caracteresiguales


aunquelos restantesseandistintos. (N. del R.T.)
SEC. 2.2 ESCALARES, VECTORES Y MATRICES 37

Presentamos cuatro mtodos paraasignar valoresiniciales a matrices en ~ ~ A T L A BEl. pri-


mer mtodo lista explcitamente los valores, el segundo usa el operador de dos pun-
tos, el tercero usa funciones MATLABy el cuarto lee datos del teclado.

Listas La forma ms sencilla de definir una matriz es usar una lista


explcitas.
de nmeros, como se muestra en el siguiente ejemplo, que define las matrices A, B y c
que usamos en nuestro ejemplo anterior:

Instruccin Estas instrucciones son ejemplos de la instruccin de asignacin, que consiste


de asignacin en un nombre de variable seguido de un signo igual y de los valores de datos que se
asignarna la variable. Dichos valoresse encierran en corchetes en orden por fila; las
filas se separan con signos de punto y coma, y los valores de cada fila se separan
mediante comas o espacios. Un valor puede contener un signo ms o menos y un
punto decimal, pero no puede contener una coma.
Cuando definimos una matriz, MATLABimprime el valor de la matriz en la pan-
talla a menos que suprimamos la impresin con un signo de punto y coma despus
de la definicin. En nuestros ejemplos, generalmente incluiremos el signo de punto y
coma para suprimir la impresin. Sin embargo, mientras est aprendiendo a definir
matrices, le resultar til ver los valores de esas matrices. Por tanto, tal vez desee
omitir el signo de punto y coma despus de una definicin de matriz hasta estar
seguro de que sabe definir correctamente las matrices.Los comandos y tam-
bin son muy tiles al usar MATLAB.El comando lista las matrices que se han
definido, y lista las matrices y sus tamaos.
Tambin puede definirse una matriz listando cada fila en una lnea aparte,como
en la siguiente serie de comandos MATLAB:

Si hay demasiados nmeros en una fila de una matriz para que quepan en una
lnea, podemos continuar la instruccin en la siguiente lnea, pero se requiereuna coma
Puntos y tres puntos (puntos suspensivos) al final de la lnea para indicarque la fila debe
sus~ensivos continuar. Por ejemplo, si queremos definir un vector de fila F con 10 valores, pode-
mos usar cualquiera de las siguientes instrucciones:
38 CAP. 2 EL ENTORNO MATLAB

MATLABtambin nos permite


definirunamatrizusando otra matriz que
ya se
defini.Porejemplo,considere
las siguientes
instrucciones:

B = [l.S, 3.11;
S = 13.0 Bl;

Estoscomandos
equivalenlo
a siguiente:

Tambin
podemos modificar los
valores
deunamatrizo agregar valores adicionales
usando
unareferencia
a unlugarespecfico.
As, el siguiente
comando,

cambiael segundovalordela matriz de1.5a -1.0.


Tambinpodemos extender una matrizdefiniendo nuevos
elementos.
Siejecu-
tamosel siguiente
comando,

la matriz tendr cuatro


valoresenlugardetres.Siejecutamos
el siguiente
comando,

la matriz tendrocho valores,


y los valores
de (5),S( 6 ) y ( 7) sepondrn
encero
automticamente porque no
sedieronvalores paraellos.

D lostamaosdelas siguientes matrices.


Compruebe susrespuestas introducien-
dolos comandosenMATLABy usando luego el comandowhos. Enestos problemas,
una definicin
dematriz puedereferirsea unamatrizdefinidaenun problema
anterior.
SEC.2.2 ESCALARES, VECTORES
Y MATRICES 39

Operador Operador de dos puntos. El operador de dos puntos esunoperador muy potente
dedospuntos paracrear matrices
nuevas.Por ejemplo, puedeusarse dicho operador paracrear
vectores partir
a deunamatriz.Siseusaunsignodedospuntos enunareferencia de
matrizenlugardeun subndice especfico,el signodedos puntos representa a toda
la fila o columna.
Por ejemplo,despus dedefinirunamatrizc, los siguientes
coman-
dosalmacenan la primeracolumnadec enel vectordecolumna X, la segunda
colum-
na dec enel vector columna y, y la tercera columnadec enel vector columna z:

El operador
dedos puntostambin puedeservirparagenerar matrices nuevas.
Si
se usaunsignodedos puntos para separar enteros,
dos el operadordedospuntosgene-
rar todoslos enteros entre dos
los enteros
especificados. Por ejemplo, la siguie
notacingeneraunvectorllamadoH quecontiene los nmeros del1 al 8.

Si seusansignosdedos puntos para separartres nmeros,


el operador dedos
puntosgenerarvaloresentreel primernmeroy eltercero,usando el segundo n-
merocomoincremento. Por ejemplo, la
siguiente notacin genera
un vectorde fila
llamadotiempoquecontiene los nmeros de0.0 a 5.0 enincrementosde0.5:
t i e m p o = 0.0:0.5:5.0;

El incremento
tambinpuedeser negativo, comomuestra
se enel siguiente
ejemplo,
quegeneralosnmeros 10,9,8,...
O enel vectordefila llamadovalores:
valores= 1 0 : - 1 : O ;

Submatriz El operadordedospuntostambinpuedeservirparaseleccionar
unasubmatriz
deotramatriz. Por ejemplo,
suponga quese definic enMATLAB comola siguiente
matriz:

\JPJb es
C"

Si ejecutamos los
siguientes
comandos,
cgartial-1= C(:,2:3); (aib, C:J)
cgartial-2 = C(3:4,1:2);

habremos definido
lassiguientes
matrices:
r 0 01
matriz

operador de transponer.

x y.
x i Y x (2
y (2
SEC. 2.2 ESCALARES, VECTORESY MATRICES 41

Valores especiales y matrices especiales. MATLABincluye varias constantespre-


definidas, valores especialesy matrices especialesque podemos usaren nuestros
programasy que se definen en la siguientelista:

pi Representan
ir j Representa el valor
inf Representainfinito, que normalmente ocurre al dividirentrecero. Se
imprimirun mensajede advertenciacuandose calculeeste valor;si se
exhibe una matrizque contiene estevalor, el valor aparecercomo m.
NaN Representa No-es-un-nmero y suele ocurrircuandouna expresin
no est definida, comola divisin de cero entrecero.
ciock Representala hora actualen un vector de fila de seis elementos que
contiene ao,mes, da, hora,minutoy segundos.
date Representala fecha actualen formatode cadena de caracteres, como
20-jun-96.

eps Representa la precisinde puntoflotante de la computadora quese


est usando.Esta precisin psilones la cantidad ms pequeaen
que puedendiferirdos valores en la computadora.
ans Representaun valor calculadopor una expresinpero no almacenado
en un nombrede variable.

Se puede usar unaserie de funciones especialespara generarmatrices nuevas.


La funcin zeros genera una matrizque contiene slo ceros. Si el argumentode la
funcin es un escalar, como en zeros (6 ), la funcin generaruna matriz cuadrada
usando el argumento comonmero de filas y nmero de columnas. Si la funcin
tiene dos argumentosescalares,como en zeros (m, n), generar una matriz con m filas
y n columnas. Dado que la funcin size devuelve dos argumentosescalaresque re-
presentanel nmerode filas y el nmerode columnasde una matriz,podemos usar
size para generar una matriz de ceros que tenga el mismotamaoque otra matriz.
Las siguientesinstruccionesilustranlos diversos casos:

A = zeros(3);
B = zeros(3.2);
C = [1 2 3; 4 2 51;
D = zeros (size(C));
ones
zeros
ones zeros.

B =

eye.
eye a zeros ones.
SEC.2.2 ESCALARES, VECTORESY MATRICES 43

No esaconse'able nombrara una matrizde identidadi porqueentoncesi no repre-


8
sentara -1 en las instruccionesque sigan.(Veremoslos nmeroscomplejoscon
detalleen el siguientecaptulo.)
Entradas delusuario. Losvaloresparaunamatriz tambinpuedenintroducirse
a travs deltecladousandoel comandoinput, que exhibe una cadenade texto y
luego espera entradasdel usuario.Despus, el valor introducidose almacena en la
variable especificada.Si el usuariova aintroducir msdeun valor, debeencerrarlos
encorchetes. Si el usuario pulsala teclaEnter(Intro) sin introducirvalores, se devol-
ver una matriz vaca.Si el comandono terminacon un signode punto y coma,se
imprimen losvaloresintroducidos parala matriz.
Considereel siguientecomando:
z = input('1ntroduzca valores para z en corchetes: ');

Cuandose ejecuta este comando, se exhibe enla pantalladela terminalla cadenade


texto Introduzca valores para z en corchetes: . El usuariopuedeintroducir enton-
cesuna expresin como[5 . 1 6 . 3 - 18. o 1, que especifica valorespara Z. Como este
comandoinput terminaconun signodepuntoy coma,no se exhiben los valores cuan-
do terminade ejecutarseel comando.

OPCIONES DE SALIDA

Hay varias formas depresentarel contenidodeuna matriz. La mssencillaesintro-


ducir el nombrede la matriz. Se repetir el nombrede la matriz y a partir de la
siguientelnea seexhibirnlos valoresde la matriz. Tambinhay varios comandos
que puedenservir para exhibir matrices
conun mayor control sobre el formatodela
salida.Tambinpodemosgraficar los valores deunamatriz para tener unarepresen-
tacin visual.A continuacinpresentamos algunos de los detallesdel usode estas
diferentesformasde exhibir informacin.

Formatode exhibicin. Cuandose exhibenlos elementosde una matriz, los


enteros siempre se exhiben como enteros.Los valoresno enteros siemprese exhiben
Formato usandoun formato poromisin (llamado formatocorto)quemuestracuatrodgitos
por omisin decimales.MATLAB permiteespecificarotrosformatos(vasela tabla 2.1)quemues-
tran ms dgitossignificativos. Por ejemplo,
para especificarque queremosquelos
valores se exhiban enun formato digitalcon 14dgitosdecimales,usamosel coman-
do format iong. Podemosregresar alformatodecimalcon cuatro dgitosdecimales
empleandoel comandoformat short. Seexhibendos dgitosdecimalescuando se
especificael formatocon format bank.
Si un valor es muy grandeo muy pequeo, la notacin decimal noes sa-
tisfactoria. Porejemplo, un valor que se usacon frecuenciaen qumica es la
44 CAP. 2 EL ENTORNO MATLAB

TABLA 2.1 Forrnatos de exhibicin de nmeros


Comando MATLAB Exhibe Eiemplo
poromisin
14 decimales
2 decimales
4 decimales
15 decimales
+ +, -, espacio +

constante de Avogadro, cuyo valor con cuatroposiciones significativas es


602,300,000,000,000,000,000,000. Esobvioquenecesitamos unanotacinmsmane-
jableparavaloresmuy grandes comola constante de Avogadroo muy pequeos
Notacin como0.0000000031. La notacin cientfica expresa unvalor como unnmero entre 1
cientfica y 10 multiplicadopor unapotenciade 10. Ennotacincientfica, laconstante de
Avogadro se convierte en6.023x lP3.Estaforma tambin recibeel nombre demantisa
(6.023)y exponente (23).EnMATLAB,se exhiben valores ennotacin cientficausando
la letra epara separarla mantisa y el exponente, como en Siqueremos que
MATLAB exhiba valoresennotacin cientficaconcincodgitossignificativos,usamos
el comando Para especificar notacin cientfica con 16
dgitossigni-
ficativos,usamos el comando Tambinpodemos introducir valores
en unamatrizusandonotacincientfica,peroesimportante no escribir espacios
entrela mantisa ely exponente, porque MATLAB interpreta comodosvalo-
res y mientras que seinterpreta comoun solo valor.
Otro comando deformatoes +. Sise exhibeunamatrizconeste formato,
losnicos caracteres quese imprimen sonsignos demsy menos. Si un valor espo-
sitivo, se exhibeun signoms;si un valoresO, se dejar un espacio; siun valores
negativo, se exhibir un signomenos.Esteformato permite visualizaruna matriz
grande en trminosdesussignos, cosaquedeotro modo tal vezno podramos ver
fcilmente porquepodra haber demasiados valoresenunafila paratenercabidaen
unasola lnea.
En el casodelosformatos largos y cortos, se aplica
unfactordeescala comn a
todala matrizsi los elementos llegan ademasiado
ser grandes.
Estefactordeescala
seexhibe junto conlos valores escalados.
Por ltimo, elcomando suprime muchos delos saltosdelnea
que aparecen entre las representaciones dematrices y permitever mslneasdein-
formacin juntas en la pantalla.En las salidas de nuestrosejemplos, supondremos
queseha ejecutado este comando. El comando regresaal modode
exhibicin menos compacto.

Exhibicin d e texto y valores. Podemosusarla funcin paraexhibir texto


encerrado en apstrofos; tambin podemos usarla exhibir
para elcontenidodeuna
matriz sin
exhibir elnombredela matriz.Por ejemplo, un si escalar contiene
un
valordetemperatura en grados Fahrenheit,
podramos exhibir el valor
en unalnea y
lasunidades en la siguiente lnea con estos comandos:
SEC.2.2 ESCALARES, VECTORES Y MATRICES 45

disp(temp); disp('grados F')

Sielvalor
detempes78,lasalida
ser
lasiguiente:

78
grados F

Observe
quelosdoscomandos
disp se introdujeron
la misma
en lnea
paraquese
ejecutaran
juntos.

Salidas
conformato.Elcomandofprintf nospermite
tenertodava
ms con-
trol sobre
las salidas elque
quetenemoscon elcomandodisp. Ademsdeexhibir
tanto
texto
comovaloresdematrices,
podemos especificar
elformato que seal usar
exhibir
los y tambin saltos
valores, delnea.
La formageneral
deeste comando
esla
siguiente:

Elformato contieneeltextoy lasespecificaciones


deformato para las y va
salidas,
seguidodelosnombres delasmatrices exhibir.
por Dentro del formatoseusanlos
Especificadores %e, %f y %opara
especificadores indicardnde seexhibirn los valores
delamatriz.
Siseusa%e, los valoresseexhiben enunanotacin exponencial;si se
usa%f, los
valores
seexhiben enunanotacin depuntofijo siseusa%g, losvalores
o decimal;
usarn
%e o bien%f, elquesea ms corto.
Siaparece lacadena \n enel formato,
se
exhibir
lalnea especificada
hasta y elresto
esepunto, delainformacinseexhibir
enlasiguiente lnea.
Lo usual esqueelformato terminecon\n.
Un ejemplo sencillodelcomandofprintf es:

fprintf('La temperatura es %f grados F \nl,temp)

La salida
correspondiente
es:

La temperatura es 78.000000 grados F

Simodificamos
elcomandoas:

fprintf('La temperatura es \n %f grados F \n',temp)

lasalida
ser:

La temperatura es
78.000000 grados F

Losespecificadores
deformato%f, %e y %g tambin
puedencontener informa
cin
paraespecificar
nmero
el deposiciones decimales y elnmero
quese exhibirn
deposiciones
quesedestinarn
alvalor correspondiente.
Considere
este
comando:
46 EL

fprintf('La temperatura es %4.lf grados F \n'.temp)

temp se

La temperatura es 7 8 . 0 grados F

fprintf

xy xy
xy

se y.
piot, x Y

Sa&+&~&~m+&&&&~-t&.

plot(x,y),title('Experimento de laboratorio l'),. ..


xlabel('Ensayo'),ylabel('Dietancia, ft'),grid
pause

pause (n) ,
print

ARCHIVOS DE DATOS

archivo de datos.
48 CAP. 2 EL ENTORNO MATLAB

Figura

Los archivos MAT se generandesde un programa MATLAB usando el comando


save, que contiene un nombre de archivo y
las matricesque se van a almacenaren el
archivo. Se agrega automticamentela extensin .mat al nombre del archivo. Por
ejemplo, el siguiente comando:

save data-1 x y;

guarda las matrices y y en u n archivo llamado data-i .mat. Para recuperar estas
matrices en un programa MATLAB, usamos el comando:

load data-1;

Un archivo ASCII que vaya a ser utilizado por un programa MATLAB deber
contener slo informacin numrica, y cadafila del archivo deber contener el mis-
mo nmero de valores de datos. El archivo puede generarseusando un procesador
de textos o un editor; tambin puede generarse ejecutandoun programa escrito en
un lenguaje para computadora,como C, o mediante un programaMATLAB usando la
siguiente forma del comando save:

save data-2.dat z /ascii;


SEC. 2.3 OPERACIONESCON ESCALARESY ARREGLOC 49

Este comandohace que cada filade la matrizz se escribaen una lnea individualdel
archivo dedatos. No se agrega la extensin .mat a los archivosASCII.
COI/@& N99tp*-
p m & e i d a t ~F3.a~d&&de&d~&&y&&

Suponga que un archivo ASCII llamado data-3 .dat contiene un conjunto de


valores que representan el tiempo y la distanciacorrespondientede un corredordes-
de la lnea de salida en una carrera.Cada tiempoy su valor de distancia correspon-
diente estn en unalnea individualdel archivode datos.As, las primeraslneas del
archivode datos podrantener lasiguienteforma:

El comandoload seguidopor el nombre delarchivolee la informaciny la coloca en


una matrizcon el mismo nombreque el archivo dedatos. Por ejemplo, considerela
instruccin:
load data-3.dat;

Los valores de datos sealmacenarn automticamente


en la matrizdata-3, que tiene
dos columnas.

23
. Operaciones con escalares y arreglos

Los clculos aritmticosse especifican con matricesy constantes combinadascon


operaciones aritmticas.
En esta seccin veremos primerooperacionesen las que slo
intervienenescalares;luego extenderemoslas operacionesparaincluir operaciones
de elemento porelemento.

OPERACIONES CON ESCALARES

Las operaciones aritmticasentre dos escalares semuestranen la tabla 2.2. Las ex-
presiones que contienen escalaresy operaciones escalares sepuedenevaluary alma-
cenar en una variable especificada, comoen la siguiente instruccin,que especifica
que los valores de a y b se sumen y la suma se almaceneen x:

Esta instruccinde asignacin debe interpretarse as: el valor que est en a se


sumaal valorqueesten b y la sumase almacenaen x. Si interpretamoslas instrucciones
de asignacinde esta manera,no nos extraarla siguiente instruccinMATLAB vlida:
cuenta cuenta 1;

Es evidente que esta instruccinno es una expresin algebrica vlida,pero en


MATLABespecifica que se debe sumar1 al valor que est en cuenta y el resultadose
50 CAP. 2 EL ENTORNO MATLAB

suma a+b
resta a-b
multiplicacin axb
divisin
exponenciacin ab aAb

debealmacenar
otra vezencuenta. Portanto,
lainstruccin equivale a es
decuenta se incremente
queel valor en1.
Esimportantetener presente
queunavariable puede
slo almacenar
unvalor a
lavez. Por ejemplo, quese ejecutaran las siguientesMATLAB
suponga instruc
una tras otra:

tiempo = 0.0;
tiempo = 5.0;

Cuandose ejecutalaprimera
instruccin 0.0enlavariable
sealmacena el valor tiem-
y es
po, sustituido 5.0cuando
por el valor se ejecuta
lasiguienteinstruccin.
Siseintroduce expresin
una sinespecificar
unavariable paraalmacenarel
resultado, resultado
el o respuesta se almacenar
automticamente en una
variable
llamadaans. Cadavezque sealmaceneun nuevovalorenans, seperder valor
el
anterior.

OPERACIONES CON ARREGLOS

Elemento
a Lasoperaciones elementopor elemento.
dearreglos se ejecutan Porejemplo,
supon-
elemento gaque esun vector
defila
concincoelementosy B esun vectordefila
concinco
elementos. forma
Una degenerarun nuevovector defilac cuyos valores
seanlos
productos
delos valores correspondientes
de y deB esla siguiente:

Estos
comandos son
enesencia
comandos
escalares
porque cada
unomultiplica
un solo valor
porotroy almacena
el producto
enun tercer valor.indicar
Paraque
queremosrealizar
unamultiplicacin elemento porentre
elemento
dosmatrices de
mismo tamao,
usamosun asterisco
precedido un
por
punto.
As,
lascinco
instruc-
ciones anteriores
puedensersustituidas
lasiguiente:
por
SEC. 2.3 OPERACIONES CON ESCALARES Y ARREGLOS 51

No ponerel punto antes delasteriscoesuna omisingrave porque en tal casola


instruccinespecificauna operacinde matrices,no una operacin elemento por
elemento. Estudiaremos las operacioness de matricesenel captulo4.
En el casodela sumay la resta, las operacionesdearreglosy lasdematricesson
iguales,asque nonecesitamos distinguir entreellas.En cambio;lasoperaciones de
arreglos paramultiplicacin,divisiny exponenciacin sondiferentesdelasoperacio-
nesdematricesparamultiplicacin,divisiny exponenciacin, as quenecesitamos
incluir un punto paraespecificarunaoperacindearreglos.Estasreglasse resumen
enla tabla2.3.

TABLA 2.3 Operaciones elemento por elemento


Operacin Forma algebraica MATLAB

suma a+b
resta a-b
multiplicacin a.*b
divisin a./b
exponenciacin a.Ab

Las operaciones elemento porelemento,u operaciones de arreglos,no slose


aplicana operaciones entredosmatricesdel mismotamao,sinotambina opera-
cionesentreun escalary un no escalar.As, lasdosinstruccionesde cadauno de los
siguientesjuegosde instruccionesson equivalentes para una matrizA:

Lasmatricesresultantes B y c tendrnel mismotamao que


A.
A fin de ilustrar lasoperacionesde arreglosparavectores, considere los
dos
siguientesvectoresdefila:

Si calculamosel productode arreglosdeA y B usandola siguienteinstruccin:

c contendrlos siguientesvalores:

El comandode divisin de arreglos,


52 CAP. 2 EL ENTORNOMATLAB

generaun nuevovectoren el quecada elemento


de se divide entre
el elemento
correspondiente
deB. As,c contendr
lossiguientes
valores:

La exponenciacin
dearreglos tambin es una operacin elemento por e
to.Por ejemplo,
considere
las siguientes
instrucciones:

c y D sonlossiguientes:
Losvectores

Tambinpodemos usar una base


escalar
conun exponente
vector, como
en:

quegeneraunvectorconlossiguientes
valores:

Estevectortambinpodrahaberse calculado
conla instruccin:

Si noestseguro dehaber escritola expresin


correcta,
siempre prubela
conejem-
plossencillos
comolosque hemos usado aqu.
Losejemplos anteriores
utilizaronvectores, pero
las mismas reglas
seaplicana
matricesconfilasy columnas,comose ilustra conlassiguientes
instrucciones:

Losvaloresdeestas
matrices
son:
SEC.2.3 OPERACIONES CON ESCALARES Y ARREGLOS 53

TABLA 2.4Precedencia
de operaciones
aritmticas
Precedencia Operacin
parntesis,
primerolosms internos
2 exponenciacin
deizquierdaa derecha
3 y divisin,izquierda
multiplicacin de a derecha
4 suma y resta,
deizquierda
a derecha

PRECEDENCIA DE OPERACIONES ARITMTICAS

En vista de que es posible combinarvariasoperacionesen una sola expresin aritm-


tica, es importantesaberen qu ordense realizanlas operaciones.La tabla2.4 indica
la precedenciade las operaciones aritmticas en MATLAB.Observeque esta preceden-
cia sigue la precedencia algebraicaestndar.
Suponga que queremos calcularel reade un trapezoide;la variable con-
tienela longitudde la basey y contienen lasdos alturas.El reade
un trapezoide puedecalcularsecon la siguienteinstruccinMATLAB:

Supongaque omitimoslos parntesisen la expresin:

Esta instruccinse ejecutaracomo si fuerala instruccin:

Observeque si bien se calcul larespuestaincorrecta,no se imprimenmensajes


de error para alertarnos.
Por tanto, es muyimportantetener muchocuidadoal con-
vertir ecuacionesen instruccionesMATLAB.Agregarparntesisextra es una forma
fcil de asegurarsede que los clculos se harnen el orden deseado.
SUB 6 &m -3. Porejemplo,considere
la siguienteecuacin:

de usando las siguientesinstruccionesMATLAB,


Podra calcularse el valor suponien-
do que es un escalar:

Es mejorusar variasinstruccionesfciles de entender que usaruna instruccinque


requiere meditarcon cuidadoel ordenen que debenejecutarselas operaciones.
CAP. EL ENTORNOMATLAB

Escribacomandos paracalcularlos siguientesvalores. Suponga


que las
variablesde las ecuaciones
sonescalares
y quese lesasignaronvalores.
Factorde correccinenclculosdepresin:
b c
factor = +-
v
+-
v2
2. Pendiente entre dos puntos:

-
pendiente= -
-
Resistencia
de un circuitoenparalelo:
I
resistencia=
-+-+-
4. Prdidade presin porfriccin en untubo:

prdida=f . p--.-
d 2

D los valorescontenidos en
el vector c despusde ejecutarse las
siguientes ins-
trucciones,donde y B contienen los valores
indicados.Verifique susrespuestas
usandoMATLAB.

Lasvariables almacenadas en una computadora pueden asumirvaloresdeunagama


muy amplia.En la mayorpartedelas computadoras, el intervalo seextiendede
a que deber ser suficiente
paramanejarcasicualquierclculo.No obstante, es
z
desbordamiento
deexponente

m.

desbordamiento
negativoexponente
de

divisin
entre
cero
M.

xy.

x y.
x
x, x y
A

GRFICAS LINEALES Y LOGAR~TMICAS

escala logartmica
56 CAP. EL MATLAB

MATLAB
x

x y.

Y.

se grficas.
se

MATLAB

Polinomio- linealllineal Polinomio- logllineal

Polinomio- linealllog Polinomio- logllog

Figura 2.3Grficas lineales y logartmicas.


SEC.2.4 CAPACIDADESDE GRAFICACI~NADICIONALES

Una formasencilladegenerar curvas mltiples


enla misma grficaesusarmltiples
argumentosen un comandode graficacin, como en

dondelas variablesX,y, w y z sonvectores.Al ejecutarse estecomando,setrazala


curva correspondientexaversusy, y luego se traza en la misma grfica lacurva
correspondientewaversusZ . La ventajade estatcnicaesqueel nmerode puntos
de las dos curvas notiene que ser el mismo. seleccionaautomticamente
diferentestiposde lneaspara poder distinguir entre
las doscurvas.
Otra forma de generar mltiples curvasen la misma grficaesusaruna sola
matriz con mltiplescolumnas. Cada columna segraficar contraun vector X.Por
ejemplo,lassiguientes instrucciones
generan una grficaquecontienedosfunciones
comose muestra en la figura 2.4:

Mltiples funciones

Figura 2.4 Grfica con dos funciones.


58 CAP. 2 EL ENTORNOMATLAB

=
= - +
= + -
...
( ) ,
Si la funcin no tiene un vector aparte, comoen las columnasde se
graficarnusando los subndices de fila como valoresx.

El comando generauna grficade lneasque conectalos puntosrepresenta-


dos porlos vectores y con segmentosde lnea. Tambinpodemos seleccionarotros
tipos de lneas:de guiones, de puntosy de puntosy guiones, y tambinuna grficade
puntosen lugarde una de lneas.Eneste caso, los puntosrepresentados por los vectores
se marcarncon un puntoen vez de conectarse consegmentosde lnea. Asimismo,
podemosescoger caracteresdistintos delpuntoparaindicar lospuntos:signos ms, es-
trellas, crculoso marcasx.La tabla2.5 lista estasdiferentes opcionesde lneasy marcas.
El siguiente comandoilustra eluso de los estilos de lnea y marca; generauna
curva de Inea continuacon los puntos representados porlos vectores y luego
marca lospuntosmismos con crculos:

Este tipo de grfica semuestraen la figura

TABLA 2.5 O~ciones de lneas v marcas


Tipo de lnea Indicador Tipo de punto Indicador
continua - punto
guiones - ms
punteada estrella
guiones-puntos - . crculo
marca

MATLAB fija automticamentela escala de los ejes ajustndolaa los valores de datos.
Sin embargo,podemos supeditaresas escalas con el comando Hay variasfor-
mas de este comando:
Mantienela escala del eje actualparagrficas subsecuentes. Una
segundaejecucin del comandoregresa el sistemaal escalado
automtico.
Especifica la escaladel eje usandolos valores de escala que estn
en el vector el cual debe contener -,
%&
t c o / , d P@&M~C~ L~&Jd F / e / / & & &-
& d / d ec a z ~ ~ cm &A-
FP&J+. El comando precede alcomando correspondiente.
subventanas.

n,
n

2.3

%
%

-
=

2.5 Resolucin aplicada de problemas: Motor turbohlice avanzado

aba-
nicosin ductos unducted fan)
60 CAP. 2 EI. ENTORNO M A I IAL%

rutascortasporqueno son tan rpidosni tan potentes como los motoresde aspasa
reaccinqueseempleanen losavionesde pasajeroscle mayor tamao.El motor UDF
aprovecha avances significativos en la tecnologacle hklices que se probaroncuida-
dosL~niente en tnelesde viento y quehan angostadola brechade rendimiento entre
los motores turbohlice y los de aspasa reaccicn.Nuevosmateriales,formasde as-
pas ymayores velocidades de rotacicnpermiten a los avionescon motoresUDF vo-
lar casi con la misma rapidezque los provistosde motoresde aspasa reaccin,con
mayor eficiencia de combustible.Adems,el UDF es considerablemente mssilen-
ciosoqueel motor turbohlice convencional.
Duranteu n vuelo de pruebade un avin con motor UDF, el piloto de prueba
ajustcel nivel de potencia delmotor en 40,000newtons,lo clue hacequeel avicn de
20,000 kg alcanceuna velocidad de crucero de 180 m / s (metros porsegundo).A
continuacin,las gargantasdel motor se ajustana un nivel de potencia de 60,000
newtonsy el avin comienzaa acelerar.Al aumentarla velocidaddel avicn,el arras-
tre aerodininiicoaumentaen proporcincon el cuaciradod ela velocidad respecto al
aire.Despuesde cierto tiempo,el avi611alcanzauna nuevavelocidadde crucerocn la
que el empuje de los motores UDF es equilibrado porel arrastre.Las ecuaciones
empleadas para estimar la velocidad y aceleracin delavin desdeel momentoen
quese reajustan las gargantashastaqueel avicn alcanzasu nuevavelocidadde cru-
cero (aproximadamente 120S despus)sonlas siguientes:
velocidad= 0.00001tiempo" 0.00488tiempo2
+ 0.75795tiempo + 181.3566
aceleracin= 3 -0.000062velocidad2
Escribaun programaM A ILAII quepida al usuario introducirun tiempo inicial y
un tiempo final (ambos ensegundos) quedefinanun intervalodetiempoparael cual
deseamosgraficar la velocidad y la aceleracin delavin. Supongaque el tiempo
cero representael punto en el que se aumentcel nivel de potencia.El tiempo final
deberser 120segundoso menos.

1. PLANTEAMIENTO DEL PROBLEMA

Calcular lanuevavelocidady aceleracindel avindespusde u n cambioen el


nivel de potencia.

El siguientediagrama muestra que las entradas delprogramason los tiempos


inicial y final y quelas salidasson grficasde los valoresde velocidady acelera-
cin dentrod e estelapso.
3. EJEMPLO A MANO

Dado que el progrania est generarido una grtica para un intervalo de tieiiipo
especficc), supoiidremos que el intervalo esde 0 a 5 segundos. Luego calcu1,iino~
unos cuantos valores con una calculadora para poderlos comparar coi1 10s valores
d e las curvas generadas por el progrania.

Tiempo(S) Velocidad(mis) Aceleracin


(mlsA2)
0.0 181.3566 0.9608
3.0 183.5868 0.9103
5.0 185.0256 0.8775

4. DESARROLLO DEL ALGORITMO

La generncicn de las curvas con los valores cie velocidad y aceleraci<nrequiere los
siguientes pasos:

1. Leer los lmites del intervalo de tiempo.


2. Calcular los valores de velocidad y aceleracin correspondientes.
3. Graficar la nueva velocidad y aceleracin.

Puesto que el intervalo d e tiempo depende de los valores de entrada, puede ser
muy pequeo o muy grande. Por tanto, en lugar d e calcular valores de velocidad
y aceleracicii en los puntos especificados, calc~ilaremos100 puntos dentro del iii-
tervalo especificado.

% Estos comandos generan y grafican valores de velocidad


% y aceleracin en un intervalo especificado por el usuario.
%
star-time = input('Tec1ee tiempo inicial (en segundos): ');
end-time = input('Tec1ee tiempo final (mx. 120 segundos): ');

time-incr = (end-time - start_time)/99;


time = start-time:time-incr:end-time;
velocity = 0.00001*time.A3 - 0.00488*time ."2...
+ 0.75795*time + 181.3566;
acceleration = 3 - 0.000062*velocity.A2;

subplot(2,l,l),plot(time,velocity),title'Velocidad'), ...
5. PRUEBA

Primero
probamos
elprograma
usando
losdatos
delejemplo
a mano. Esto genera
lasiguiente
interaccin:

Teclee tiempo inicial (en segundos): O


Teclee tiempo final (mx. 120 segundos): 5

La grfica
generada por elprograma muestra
se enlafigura En vista
2.5. deque
los valores calculados coinciden
elejemploamano,
con podemosprobar progra-
el
ma conotros valores
detiempo.Silos
valores
no hubieran concordado
con el ejem-
plo,habramos tenido
quedeterminar si el
errorestuvo
en el ejemplo
o en el
programa. 2.6semuestran
En lafigura las
grficas
generadas para
elintervalo
de
tiempodeO a 120segundos.Observe
quelaaceleracin
se acerca
a cero conforme
lavelocidadacerca
se a lanuevavelocidad de crucero.

Velocidad
186- m I I I I I I I

, 185-
u
-
.
2
S?
184-

183- -
+-

l l I l I I I 1 l
181
O 0.5 1 1.5 2 2.5 3 3.5 4.5

Aceleracin
1 I l I l I I I I I

.
m
a,

09-

0.85l I I I I I I I I I 1
O 0.5 1 1.5 2 2.5 3 3.5 4.5 5
Tiempo,

Figura 2.5 y 5
Velocidad

Aceleracin

Tiempo, S

Figura
2.6K~locidnd dc n

En este c,lptulc)presentamos elentorno M ~ i , i .La


, ~estructur'i
ic. d e datos primaria en
M ~ r ii \es
~ lam,itrir, q u epuecle seru11solopunto (un escal,ir), una lista de valores
(unvector) o unareticula rectangular clevalores confil'is y c o l u r n nLos
, ~ ~valort~s
. se
puedenintroducir e n una matriz usandouna lista explcita d e losvalores o usando
L I I operador
~ d edosp ~ i n tque
o s 110spermite especificar u n valor inicial,un i n ~ r ~ m e i i -
toy urivcllor finalpara generar lasucesicn d e valores. Los valores tanibi61i p~ieclen
cargarse en una rnatrir a partird e archivos MAT o archivos ASCII.Exploramos las
ciiversas operaciones n1,itemticas q u eserealizan elemento porelemt~nto. -l~,inibi'n
mostrarnos ccmogenerar grficas s y seiicillas convalores d e d;itos, iliistraiiclo
esto
conu n aaplicacin q u egrafic datos d eu n aprueba d emotorsinductos.
64 CAP. 2 EL ENTORNO MATLAB

abortar matriz vaca


archivo de datos notacin cientfica
desbordamiento de exponente operacin de arreglos
desbordamiento negativo de exponente operador de dos puntos
diagonal principal operador de transponer
escalar P-
puntos suspensivos
guin subndice
indicador submatriz
matriz vector
matriz cuadrada ventana de exhibicin
matriz identidad

Este resumen de MATLABlista todos los smbolos especiales, comandos y funciones que
definimos en este captulo. Tambin incluimos una descripcin breve de cada uno.

CARACTERES ESPECIALES

forma matrices
forma subndices
separa subndices o elementos de matrices
separa comandos o filas de matrices
indica comentarios
genera matrices
suma de escalares y arreglos
resta de escalares y arreglos
multiplicacin de escalares
multiplicacin de arreglos
divisin de escalares
divisin de arreglos
exponenciacin de escalares
exponenciacin de arreglos
transponer

COMANDOS Y FUNCIONES

ans almacena valores de expresiones


axis controla la escala de los ejes
RESUMEN DEL CAP~TULO 65

genera
un aborto local
despeja
lapantalla decomandos
despeja
elespacio detrabajo
borra
una figura
representalahora actual
representalafecha actual
ejecuta
demostraciones
exhibe matrizo texto
representalaprecisin depunto flotante
terminaMATLAB
genera
una matriz identidad
establece
formato deslo signosy menosms
establece
formato deformacompacta
establece
formato decimal largo
establece
formato exponencial largo
establece
formato deforma nocompacta
establece
formato decimal corto
establece
formato exponencial corto
imprime informacin formateada
inserta retcula
una enunagrfica
invoca el recurso
deayuda
representael valor
representaelvalor
acepta
entradas tecladodel
representael valor
carga matrices
deun archivo
genera
unagrfica log-log 1
representa
elvalor No-es-un-nmero
genera
una matriz deunos
detiene temporalmente unprograma
representael valor7~:
genera
unagrfica xy lineal
imprime laventana degrficos
MATLAB
termina
guardavariables enun archivo
genera unagrfica log-lineal
genera
unagrfica lineal-log
determinalas dimensiones defilasy columnas
divide
laventana degrficos ensubventanas
agrega
un ttulo agrfica una
lista las variables
enmemoria
lista las variables
y sustamaos enmemoria
agrega
unaleyenda deeje x a una grfica
agrega
unaleyenda deeje y a una grfica
genera
unamatriz deceros
66 CAP. 2 EL ENTORNO MATLAB

1. Escoja nombres que le ayuden a recordar lo que se est almacenando en la va-


riable.
2. Siempre incluya unidades y un titulo en las grficas para fines de documen-
tacin.
3. Use la extensin dat en los archivos de datos para distinguirlos de los archivos
MAT y los archivos M.
4. Use mltiples instrucciones para calcular expresiones largas, hacindolas ms
comprensibles.
5. Para comparar informacin de diferentes grficas, use el comando axis para
especificar que las grficas tengan los mismos ejes.

1. Hasta que se sienta cmodo asignando valores a una matriz, omita el signo de
punto y coma despus de una definicin de matriz a fin de que se exhiban los
nmeros.
2. No use los nombres i o j para variables en un programa que maneje nmeros
complejos.
3. Pruebe una expresin complicada con valores sencillos para asegurarse de que
entiende cmo se evala.
4. Agregue parntesis extra, si es necesario, para asegurarse de que los clculos se
efecten en el orden deseado.
5. Recuerde que el logaritmo de un valor negativo o de cero no existe.

Tablas de conversin. En los problemas 1-10, exhiba las tablas especificadas


usando el operador de transponer si es necesario. Incluya una cabecera de tabla y
cabeceras de columna. Escoja un nmero apropiado de posiciones decimales para los
valores.

1. Genere una tabla de conversiones de grados a radianes. La primera lnea debe-


r contener los valores para 0, la segunda deber contener los valores para lo0,
etc. La ltima lnea deber contener los valores para 360". (Recuerdeque radianes
180.)
Genere una tabla de conversiones de centmetros a pulgadas. Comience la co-
lumna de centmetros en 0, con incrementos de 2 cm. La ltima lnea deber
contener el valor de 50 cm. (Recuerde que 1pulg 2.54 cm)
3. Genere una tabla de conversiones de mi h a ft s. Inicie la columna de mi h en
0, con incrementos de 5 mi/h. La ltima lnea deber contener el valor de 65
milh. (Recuerde que 1mi 5280 ft)
67

7.

8.
3.1 Funciones
matemticas

3.2 Funciones
deanlisis
de datos

3.3 Instrucciones y funciones


deseleccin deseleccin

3.4

3.5 Funciones
escritasel
por
usuario

3.6 Funciones
degeneracin
denmeros
aleatorios

3.7 Funciones
para manipular
matrices

/ 3.8 Ciclos

!t Resumendelcapitulo, Trminos
clave,
ResumendeMATLAB,
[ Notas
deestilo,
Notas
dedepuracin,
Problemas

Lasoperaciones y dividir
desumar, restar, multiplicar
sonlas bsicas
entre que
las usan
los ingenie-
rosy cientficos.
Sin embargo,
tambin
necesitamos realizar
otras
operaciones
rutinarias,
como calcu-
lar
larazcuadradadeunvalor, obtener
latangente
deun nguloo generar
unnmeroaleatorio. Po
ello,
aqu presentaremos funciones
variaspararealizar
clculos,
trabajar y
convalores complejos
generarnmeros aleatorios.
Tambin y funciones
estudiaremos instrucciones quenos permiten anali
o modificar valores dentro
selectos
deunamatriz.AunqueMATLABcontiene varios de cientos
fun-
ciones,habrocasiones
en quequerremos usar
unafuncin en MATLAB;por
queno est incluida
tanto,mostraremos los apasos
seguir para escribir
unafuncin
definida el por
usuario.
70 CAP. 3 FUNCIONES DE MATLAB

3.1 Funcionesmatemticas

Las expresiones aritmticas a menudo requieren clculos distintos de la suma, resta,


multiplicacin, divisin y exponenciacin.Por ejemplo, muchas expresiones requie-
ren el empleo de logaritmos, funciones trigonomtricas, polinomios y nmeros com-
plejos. MATLAB contiene varias funciones para realizar estosclculos adicionales.Por
ejemplo, si queremos calcular el seno de un ngulo y almacenar el resultado en b,
podemos usar el siguiente comando: T

La funcin sin supone que el argumento est en radianes.Si el argumento contiene


un valor en grados,podemos convertir los grados a radianesdentro de la referencia
a la funcin:

Tambin podramos haber hecho la conversin en una instruccin aparte:

Estas instrucciones son vlidas si anguio es un escalaro una matriz; si anguio es una
matriz, la funcin se aplicar elemento por elementoa los valores de la matriz.
Ahora que hemos visto un ejemplo del uso de una funcin, resumiremos las
Funcin reglas que lo rigen. Una funcin es una referencia que representa una matriz.Los
argumentos o parmetrosde una matriz se colocan entre parntesisdespus del nom-
bre de la funcin. Una funcin puede tener cero, uno o muchos argumentos, depen-
diendo de su definicin. Por ejemplo, pi es una funcin que no tiene argumentos;
cuando usamos la referencia de funcin pi, el valor de n: sustituye automticamente
la referencia a la funcin. Si una funcin contiene ms de un argumento, es muy
importante dar los argumentos en el orden correcto. Algunas funciones tambin re-
quieren que los argumentosestn en unidades especficas. Por ejemplo, las funciones
trigonomtricas suponen que los argumentos estn en radianes.En MATLAB, algunas
funciones usan el nmero de argumentos para determinarel resultado de la funcin.
Adems, los nombres de funciones deben estar en minsculas.
No podemos colocar una referencia de funcin a la izquierda de un signo de
igual porque representaun valor y no una variable.Las funciones pueden aparecera
la izquierda de un signo de igual y en expresiones. Las referencias de funcin tam-
bin pueden formar parte del argumentode otra referenciade funcin. Por ejemplo,
la siguiente instruccin calcula el logaritmo del valor absoluto de x:

Si se usa una funcin para calcular el argumento de otra funcin, hay que
asegurarsede que el argumento de cada funcin est encerradoen su propio juego de
parntesis.Este anidamiento de funciones tambin se llama composicin de funciones.
SEC. FUNCIONES MATEMATICAS 71

continuacin veremos varias categoras de funciones que se usan comn-


mente en clculos de ingeniera. Presentaremos otras funciones en los captulos res-
tantes cuando tratemos los temas pertinectes. En el apndice A hay tablas de las
funciones comunes, lo mismo que en las dos ltimas pginas del texto.

Las funciones matemticas comunes incluyen funciones para calcular el valor abso-
luto de un valor o la raz cuadrada de un valor o para redondear un valor. He aqu
una lista de estas funciones junto con descripciones breves.

abs (x) Calcula el valor absoluto de x


sgrt (x) Calcula la raz cuadrada de X.
round (x) Redondea x al entero ms cercano.
fix(x) Redondea (o trunca) x al entero ms cercano a O.
f loor (x) Redondea x al entero ms cercano a -m.
ceil (x) Redondea x al entero ms cercano a m.
sign(x) Devuelve un valor de -1 si x es menor que 0, un valor de O si x
es igual a O y un valor de 1si x es mayor que 0.
Devuelve el residuo de Por ejemplo, rem( 25,4) es 1, y
rem l o o, 2 i es 16. Esta funcin tambin se llama funcin

Calcula ex, donde e es la base de los logaritmos naturales


(aproximadamente 2.718282).
Calcula ln X, el logaritmo natural de x con base e.
Calcula log,, x, el logaritmo comn de x con base 10.

Evale las siguientes expresiones, y luego verifique sus respuestas introduciendo


las expresiones en MATLAB.

1. round (-2.6
3. f loor (-2.6)
5. sign(-2.6)
7. floor(ceil(lO.8))
9. abs(-5:5)
72 CAP. 3 FUNCIONES DE MATLAB

Funciones Lasfuncionestrigonomtricas suponen que


los
ngulosserepresentan
enradianes.
Para
trigonomtricas convertir
radianesa grados o grados
radianes,
a uselas
siguientes
conversiones
enelhechodeque1800= n radianes:
quesebasan

He aqu una
lista
delas
funciones trigonomtricas
condescripciones breve

Calcula elsenode donde est enradianes


Calcula elcosenode donde est enradianes
Calcula latangentede donde est enradianes.
Calcula elarcosenoo seno inverso
de donde debe estar
entre -1y 1.La funcin devuelve
un ngulo enradianes
entre
-n/2y n12.
Calculaelarcocoseno o coseno
inversode donde debe estar
entre-1y 1. La funcindevuelve
un ngulo
enradianesentre
O y n.
Calculaarcotangente
la o tangente inversa
de La funcin
devuelve un nguloenradianesentre-n/2y n/2.
Calculalaarcotangente o tangente valor inversa
ylx. del
La funcin devuelveun ngulo
enradianesqueestentre
-n
y n,dependiendo delossignosde y de

Lasdemsfunciones trigonomtricas
puedencalcularse
usando las siguie
ecuaciones:

1 1
sec(x)
= =-
csc(x) =-
cot(x)
cos(x) sen(x) tan(x)

arcsec =(x) - paraI x 2 1


arcos

arccsc
(x) - paraI x 1 2 1
= arcsen

arccot
(x)= arccos
-
(&)
vi2 2 a x
2.

E
3.

2vi2
8

Jv
4.

0.8333 -2
27cx2
41. y 41.~1
6.

38.1972 (r3 s3)


(r2 s2) a

Funciones funciones hiperblicas e;


hiperblicas
x.

sinh(x) X,
74 CAP. 3 FUNCIONES DE MATLAB

COB~(X) Calcula
elcoseno hiperblico
deX, que es
igual
a:
ex + e-X
2
tanh(x) Calculatangente
la hiperblica
deX, que es
igual
a:
senh
-. x
coshx
asinh(x) Calcula
el seno
hiperblico
inverso
deX, que es
igual
a:
+
in(x m).
acosh ( x ) Calcula el coseno hiperblico
inverso
deX, que es
igual
a:
+
ln(x parax mayor igual
o que1.
atanh(x) Calculatangente
la hiperblica
inversa
deX, que es
igual
a:
ln I X
para 161.
1-x

Lasdemsfunciones hiperblicas e hiperblicas


inversas
sepuedencalcular
usando
las
siguientes
ecuaciones:

cosh x
x=-
coth se* parax + 0

1
sechx = -
coshx
1
cschx = -
senhx

x = 1ntd
acoth paraI x l 1
x-1

x = lnf + i m ) p a r a ~ < x < ~


asech

1 + G 2
acsch
x = ln- -
1x1 )

Escriba MATLABparacalcularsiguientes
expresiones los valores. (Suponga
quex
y quesu valor est
esun escalar en elintervalo
de valores
correcto
paralos
clculos.)
1. cothx 2. secx
3. cscx 4. acoth x

5. asechx 6. acsc x
SEC.3.1 FUNCIONESMATEMATICAS 75

TABLA 3.1 Operaciones aritmticas con nmeros complejos


Operacin Resultado
C1 + C2 (a,+ a,)+ i(b,
+ b,)
C1 - C2 (a,- a2)+ i(b1
- b2)

' c2 (ala2- b,b,)


+ i(a,b,
+ a$,)

-
C2

m ( m a g n i t uodvalorabsoluto
d e c,)
a,- ib,(conjugado d e c,)
s u p o n g aquec,= a,+ ib,y c,= a,+ ib,.)

FUNCIONES DE NMEROS COMPLEJOS

Los nmeroscomplejossonnecesarios pararesolver muchos problemas encienciase


Nmero ingeniera. Recuerde queun nmero complejo tienela formaa + ib, dondei es
complejo a es la partereal del valor y b es la parteimaginariadel valor. La tabla 3.1 es un
repasodelos resultados delas operaciones aritmticas entre dos nmeros complejos.
Una de las ventajasde usar MATLAB paraclculosde ingeniera essu facilidad
paramanejarnmeroscomplejos.Un nmerocomplejose almacena comodosnme-
ros reales(querepresentan la parterealy la parte imaginaria) ~ ~ M A T LLOS
A Bcoman-
.
dosMATLAB tambinsuponen que i representa4-1,a menos que sehayadadoa i
un valor distinto. (MATLAB tambinreconoce eluso de j para representar & Esta
notacines de usocomnen ingeniera elctrica.) As, el siguientecomando define
una variablecomplejaX:

Cuandorealizamos operaciones complejos,MATLAB


entre dos nmeros auto-
mticamente realizalos clculos necesarios,comosebosquejaen la tabla3.1. Si se
realizauna operacinentreun nmeroreal y uno complejo,MATLAB supone quela
parteimaginaria del nmeroreal esO. Tengacuidadodeno usarel nombre i o j para
otrasvariablesen un programa enel que tambinseusennmeroscomplejos;los
nuevosvaloressustituirnal valor de y podrancausar muchos problemas.

Coordenadas rectangulares y polares. Podemos visualizar el sistemadenme-


ros complejos como un planocon un eje real y uno imaginario.Los nmerosreales
(los queno tienen parte imaginaria) representan el ejex; los nmeros imaginarios
(los
que notienenparte real) representan el eje y; y los nmeros que tienentanto parte
realcomoimaginariarepresentan el restodel plano.As, el sistemadenmeros reales
FUNCIONESDE

eje imaginario

eje real

Figura Planocomplejo.

(con el que estamos msfamiliarizados)es un subconjuntodel sistema de nmeros


complejos. Cuando representamos un nmero complejo con una partereal y una
parteimaginaria,como en 2 + i3, estamosusando En la figura
vemos que un nmerocomplejopodradescribirse tambincon un ngulo8y un
radior relativoal origen.Esta formade denomina y el punto 2 +
puede representarse en notacin polarcon un ngulode .98 radianesy un radiode
Estudiando lafigura es fcil determinar las siguientesrelacionespararealizar
conversionesentre coordenadas rectangulares y polares.
Conversinrectangular apolar:

Conversin polara rectangular:

a = r cos 8, b = r sen 8

incluye varias funcionesque sonespecficaspara nmeroscomplejosy


MATLAB
SUS conversiones:

conj (x) Calculael complejodel nmerocomplejo x. Portan-


to, si x es igual aa + ib, conj (x) es igual a a -ib.
real (x) Calculala porcinreal del nmerocomplejoX.
imag (x) Calcula laporcinimaginaria del nmero complejox.
abs x) Calculael valor absolutoo del nmerocomplejox.
angie (x) Calculael ngulo usandoel valor de atan2 (imag (x) ,
real (x) );as, el valor del nguloest entre-K y .n.
Frmula
deEuler. Para
deducir algunas propiedades de importantes
los
nme-
ros complejos
necesitamos
las siguientes
representaciones
de serie deMaclaurin,
queporlo regular
vense
enlos cursos
declculo:

ib. Entonces,
seax elvalor imaginario
Ahora, porlaEc.(3.3)tenemos:

Ahoraseparamos delaEc.(3.4)en dos


lasumainfinita partes, obteniendo:

Porltimo,
sustituimos
sumas delas
lasinfinitas (3.1)y (3.2)enlaEc.(3.5)para
Ecs.
obtener:
elb cosb + i senb. (3.6)
Frmula La Ec.(3.6)esuna frmula
muy importante llamada frmula
Euler.
Esta
de
frmula
de Euler seusacon frecuencia,
as
comoestasdosfrmulas adicionales
quesepueden deducir
deella:
-
sene=-
2i (3.7)

Usandolafrmula deEuler, podemosexpresar


unnmerocomplejo
enforma
decoordenadas rectangulares enforma opolar.
Esta
relacin
se deduce
comosigue:
a + ib = (rcos8)+ i (rsen0)
= r(cos8+ i sen8). (3.9)
Ahorausamos las Ecs. (3.7)y (3.8)enlaEc.(3.9)
paraobtener:

donde,

As,
podemos representar
unnmerocomplejo (a + ib) o
yaseaenformarectangular
enforma exponencial (reie).
78 CAP. 3 FUNCIONESDE MATLAB

Convierta los valores


complejos 1-4a la forma polar.
delosproblemas Luegoveri-
fiquesusrespuestas usando funciones
MATLAB.

Convierta los valores exponenciales


complejos
de los problemas
5-8 a forma
rectangular.
Verifiquesusrespuestas usando
funciones
MATLAB.

Grficas polares. Losdatos a vecesserepresentan convalorescomplejos, que


puedenconsiderarse comoun nguloy una magnitud. Por ejemplo, si medimos la
intensidad deluz alrededor
deuna fuente deluz,podramos representar la informa-
cinconun ngulo desde un ejefijo y unamagnitud que representa la intensidad
Grficapolar Para graficar datoscomplejos,talvez querramos usar una grfica polar enlugarde
graficarla informacin demagnitud y faseporseparado. El comando MATLAB para
generar una grficapolardelosvectores theta y r esel siguiente:

polar (theta,r) Generaunagrficapolardelosngulos


theta (en radia-
nes) versus las magnitudes
r.

El comandopolar (r) Generaunagrficausando los ndices


delvectorr como los
valoresde
A fin de ilustrarel usode la funcinpoiar, suponga que deseamos gen
puntosenunacurvaconradiocreciente. Podramos generar valores dengulo desd
O hasta2% y el radio correspondiente que aumenta deO a 1.La figura3.2 contiene
unagrficapolargenerada conlas siguientes
instrucciones:

theta 0:2*pi/100:2*pi;
r theta/(2*pi);
polar(theta,r),title('Grfica polar')

Polinomio Un polinomio esunafuncinde unasolavariablequesepuedeexpresar


enla si-
guienteforma general,
f(x) a,xN alxN-l a Z ~ N - 2 aN-2~2
270

Figura3.2 Gr3ca polar con radio creciente.

donde la variablees x y los coeficientes del polinomio se representancon los valores


Grado de a, a,, etc. El grado de un polinomio es igual al valor ms alto empleado como
exponente. Por tanto, la forma general de un polinomio cbico (grado 3) es:

y un ejemplo especfico de un polinomio cbico es:

Observe que, en la forma general,la suma del subndice del coeficiente y el exponen-
te de la variable da el grado del polinomio.
Los polinomios ocurren con frecuencia en aplicacionesde ciencias e ingeniera
porque suelen ser buenos modelos para representar sistemasfsicos. En esta seccin
veremos la evaluacin de polinomios y los clculos con polinomios. Si a usted le
interesa modelar un conjunto de datos empleando un modelo polinmico, consulte
el captulo 6, donde hablamos de ajuste de curvas.
= - + -

X.
SEC.3.1 FUNCIONESMATEMATICAS 81

polinomios son lassumasde los coeficientesdelos dospolinomios.Cabesealarque


los vectoresque contienen loscoeficientesde los polinomiosdeben ser del
mismo
tamao parapoderlossumar.Comoilustracin,suponga que deseamos efectuarla
siguiente suma depolinomios:

LasinstruccionesMATLAB
pararealizar estasumason:

Comoesperbamos, el valor de es[l, 4, -5,4, -13.61.


Los coeficientesdelpolinomioquerepresenta la diferenciaentre dospolinomios
sepuedencalculardeforma similar.El vectordecoeficientesdela diferencia se calcula
restandolos dosvectoresde coeficientesde polinomios.Una vez ms, el tamaode
los dosvectoresde coeficientestendra queser el mismo.
Podemos especificarun mltiploescalardeun polinomiomultiplicandoel vector
de coeficientesdel polinomio por elescalar.As, si queremosespecificarel siguiente
polinomio,

podemos representarg(x) conla matrizdecoeficientesqueesun escalar multiplica-


do por elvectordecoeficientesdef(x). Sif(x) = 3x2- 6x + 1,el vectordecoeficientes
podrcalcularsecomosigue:

Desde luego, el escalar


puede ser positivoo negativo.
Multiplicar dos polinomios es ms complicadoque sumar o restar dos
polinomios porque segenerany combinanvariostrminos.De formasimilar,dividir
dospolinomios esun procesotediosoporquedebemos multiplicar y restar polinomios.
MATLAB contiene funcionespararealizar multiplicaciny divisinde polinomios:

Calculaun vectorde coeficientesquecontiene los


coeficientesdel productode los polinomios representa-
dospor loscoeficientescontenidos en y en Los
vectores y no tienenquetenerel mismo tamao.
cg. = Devuelvedosvectores.El primerocontienelos coefi-
cientesdel cocientey el segundocontienelos coeficien-
tesdel polinomioqueesel residuo.
A fin de ilustrarel usodelasfunciones y parala multiplicaciny
divisin de polinomios,consideremos el siguiente producto
de polinomios:
82 CAP. 3 FUNCIONES DE MATLAB

Podemos multiplicar estos polinomios usando la funcin de esta manera:

Los valores que estn en son [3,4, -9, 13, -1, 1.5, -10.5, 15, -51, que representan el
siguiente polinomio:

Podemos ilustrar la divisin de polinomios usando los plinomios anteriores:

Esta divisin polinmica se especifica con estos comandos:

Como esperbamos, el vector de coeficientes del cociente es [3, -5, 6, -21, que
representa el polinomio cociente 3x3 5x2 6x 2, y el vector del residuo contiene
ceros.
Varias aplicaciones de ingeniera requieren expresar el cociente de dos polino-
mios como una suma de fracciones polinmicas. En el captulo 10 veremos tcnicas
para la expansin de fracciones parciales de un cociente de dos polinomios.

Suponga que se han dado los siguientes polinomios:

Grafique cada una de las siguientes funciones en el intervalo [0,4]. Use funciones
MATLAB con vectores de coeficientes de polinomios para evaluar las expresiones.
SEC. 3.1 FUNCIONESMATEMATICAS 83

Races de polinomios. La resolucinde muchos problemasde ingeniera im-


plica obtener lasraces de una ecuacinde la forma:

Races donde lasraces son los valoresde x paralos quey = O. Entre losejemplosde aplica-
ciones en las quenecesitamos obtenerlas racesde ecuacionesincluyenel diseo del
sistema de controlparaun brazorobtico,el diseo de resortesy amortiguadores
paraautomviles,el anlisisde la respuestade un m0tor.yel anlisisde la estabili-
dad deun filtrodigital.
Si la funcinf(x) es un polinomiode gradoN, entoncesJx)tieneexactamenteN
races.Esas N races pueden contenerraces mltiples o races complejas, como se
mostrar enlos siguientesejemplos.Si suponemos quelos coeficientes(a, a,, . . .) del
polinomio son valores reales, todas lasraces complejassiempre ocurrirn en pares
conjugadoscomplejos.
Si un polinomio se factorizaobteniendotrminos lineales, es fcil identificar
las races del polinomio igualandocada trminoa O. Por ejemplo,considerela si-
guienteecuacin:

Entonces,sif(x) = 0, tenemoslo siguiente:

Las racesde la ecuacin,que son losvaloresde x paralos quef(x) = 0, son x =2


y x = -3. Las races tambincorrespondenal valorde x donde el polinomio cruzael
eje x, como se muestraen la figura3.3.
Un polinomiocbico tiene la siguienteforma general:

Comoel polinomiocbicotiene grado3, tiene exactamentetresraces.Si suponemos


que los coeficientesson reales, las posibilidades paralas races son las siguientes:

3.3
3
1 3
1 1 2
1 y

f,(x) = ( x - 3)(x + l ) ( x - 1 )
=x3-3x2-x+3
f2(x)= ( x - 2)3
=X3-6x2+121c-8
f,(x) = ( x + 4 ) ( x- 2)2
=x3-12x+16
f,(x) = ( x + 2)(x- (2+i))(x- (2- i))
=X3-2x2-3~+10
3.4
x.

50 7 'O0 7

Polinomios cbicos.
3.1

ecuacin
cuadrtica
3

MATLAB

(a)
a.

+ 2-

(r)

3
86 CAP. 3 FUNCIONES DE MATLAB

El vector de fila a es igual a 11, -3, -1,3], como esperbamos, porque sta es una de
las funciones de ejemplo que ya vimos en esta seccin.

Determine las races reales de los siguientes polinomios. Luego grafique cada po-
linomio en un intervalo apropiado afin de verificar que cruza el eje x en las posi-
ciones de las races reales.

FUNCIONES DE DOS VARIABLES

MATLABcontiene varias funciones diseadas especficamente para evaluar ygraficar


funciones de dos variables. Primeroestudiaremos la evaluacin de funciones de dos
variables;luego veremos las grficastridimensionalesy de contorno de las funciones
resultantes.

Evaluacin funciones.
de Recuerde que la evaluacin de una funcin de una
variable, comof(x), implica calcularun vector de valoresx, y luego calcularun vector
correspondientede valores de la funcin como se ilustra con las siguientes instruc-
ciones:
=
= - +

Retcula Para evaluar una funcin f(x,y) de dos variables, primero definimos una retcula
bidimensional bidimensional en el planoxy. A continuacin evaluamos la funcin en los puntos de
la retcula para determinar puntosen la superficie tridimensional. Este proceso se
ilustra en la figura 3.5 que muestra una retcula subyacente de valores xy con los
correspondientesvalores de z que representanlos valores de la funcin.
Definimos una retcula bidimensional en el plano xy en MATLAB usando dos
matrices. Una matriz contiene las coordenadasx de todos los puntos de la retcula, y
la otra contiene las coordenadas y de todos los puntos de la retcula. Por ejemplo,
SEC. 3.1 FUNCIONES

Figura 3.5 Funcin


tridirnensional.

supongamos que queremos definir una retcula en la que la coordenada vare de -2 a


2 en incrementos de 1 y la coordenada y vare de -1 a 2 en incrementos de 1. Esta
retcula es similar a la retcula subyacente de la figura La matriz correspondiente
de valores de la retcula es la siguiente:

La matriz correspondiente de valores y de la retcula es esta matriz:

As, el punto de la esquina superior izquierda de la retcula tiene coordenadas (-2, -1)
y el punto de la esquina inferior derecha de la retcula tiene coordenadas (2,2).
La funcin meshgrid genera las dos matrices que definen la retcula subyacente
para una funcin bidimensional.

[x-grid, y-gridl = meahgrid(x,y) Genera dos matrices de tamao n x


m, con base en los valores de los
vectores x y y que contiene m-valores
y n-valores, respectivamente.
La matriz X-gris contiene los valores
de x repetidos en cada fila, y la
matriz y-grid contiene los valores
de y repetidos en cada columna.
z

X-gridl,
y-grid
Z.

x y,
X-gris y-grid.

mesh(xgts,ygts,z)
Z.

xsts y ~ t s

surf (xsts, ~ g t s , z)
Z.

xgts ysts
SEC.3.1 FUNCIONES MATEMATICAS 89

Grficade malla para una funcinde dosvariables.

Grfica de superficiepara unafuncinde dosvariables.

Lasinstrucciones
que generaron
las
grficas 3.6 y 3.7sonstas:
delas figuras

Observe
quelosargumentos x-grid Y y-grid podran
haber
sido
sustituidos porx y y.
Una vez
quesienta quehaadquirido solturalos usando
comandosmesh y surf,
utilice
lafuncin
help para conocer las opciones adicionales
deestos comandos y
tambin las funciones
view (para especificarelpunto de y coiormap (para espe-
vista)
cificar
las escalas
decolor).
2).
contour mesh:

contour(x,y,z)
Z. x y
\,$'

$ $
contour (x, y, 2.v)
z. x Y

meshc ( x ~ t s , y ~ t s , Z)
Z.
xsts ysts

-,

x, y, x-grid, y-grid y z

Grficade contorno
2

- -

l$$j>-
>.
o

-1
-2 -1.5 -1 -0.5 xO 0.5 1 1.5 2

Figura3.8
SEC.3.2 FUNCIONESDE ANALISIS DE DATOS

-1 -2
Y

Figura

subplot (2,l, 1). contour (x, y, z) , ...


title('Grfica de contorno'),xlabel('x'), ...
ylabel('y'),grid,pause,clf
meshc(x-grid,y-grid,~), ...
title('Grfica de malla/contorno'),xlabel('x'),
ylabel('y'),zlabel('z')

Unavezquehayaadquirido ciertodominio usandoel comando


contour, usela
funcinhelp para aprender a usar otras
opcionesde estos comandos
y la funcin
contour3 (para trazar
grficas
decontornotridimensionales).

MATLABcontiene
variasfunciones
quefacilitanla evaluaciny anlisis
dedatos.
Pri-
meropresentaremos
variasfunciones
deanlisis sencillas,
y luego veremosfuncio-
Mtricas nesquecalculan
medidas ms complejas,
o mtricas, relacionadasconun conjunto
dedatos.

ANLISIS SIMPLE

Lossiguientes grupos
defunciones
seutilizanconfrecuencia
para evaluar
un con-
juntodedatosrecabados
deunexperimento.
max min

max(x) x. x

[y,kI = max(x) x

X.
rnax(x,y) x y.

x y.
min(x) x. x

[y,k] = min(x) x
x.
min(x,~) x y.

x Y.

sum(x) X. x

proa ( x ) x. x

cumsum( x ) i" x
x. x

x
x.
cumprod ( x ) x
x. x

x
x.

p
93

(3.11)

N
Ex, x, x, x,.
k=l

mediana

mean ( x )
x. x

median ( x ) X. x

Ordenamiento de valores. MATLAB

sort ( x ) x
x

MATLAB W, x Y

1. max(w) 2. min(y)
3. min(w,x) 4. mean(y)
5. median(w) 6. cumprod ( y )
7. sort 2*w+x) 8. sort(y)
94 CAP. 3 FUNCIONESDE MATLAB

Dosmedidas estadsticas
importantes para unconjunto dedatos son su varianzay su
desviacin estndar.Antesdedarlas definiciones matemticas, resulta til adquirir
un entendimiento intuitivo de estos valores. Considere los valoresde los vectores
y quese grafican en la figura3.10.Si tratramos de trazarunalnea
rectaa travsdeestos valores,
la lnea serahorizontaly estara aproximadamente en
3.0enambas grficas. Portanto,supondramos que ambos vectores tienen aproxima-
damente el mismo valormediode3.0.Sin embargo, esevidentequelosdatosdelos
dosvectores tienencaractersticasdistintivas.Losdatosde varan ms res-
pecto ala media, o sedesvan ms dela media.As, lasmedidas devarianzay des-
viacinparalos valores de sern mayores queparalosde Portanto,
Varianza entendemos intuitivamente quelavarianza (o desviacin) tiene
quever conqutan-
tovaranlos valores respecto la media.
a Cuantomayor sea la varianza, msamplia-
mente fluctuarn los valores respectoal valor medio.
Matemticamente, la varianzas? deun conjuntodevaloresde datos (que su-
pondremos estnalmacenados enunvectorx ) sepuedecalcularusando la siguiente
ecuacin, dondeo esel smbolo griego sigma:

-
6

Sucesiones aleatorias.
SEC. 3.2 FUNCIONESDE ANALISIS DE DATOS 95

Esta ecuacin podra parecer un tanto intimidanteal principio, pero si se


examina de cerca resulta mucho ms sencilla. El trmino x, es la diferenciao
desviacin de respecto a la media. Este valor se elevaal cuadradopara que siem-
pre tenga un valor positivo. Luegose sumanlas desviaciones al cuadradode todos
los puntosde datos.Esta sumase divide entoncesentreN 1, o sea que es aproxima-
damenteun promedio.(La ecuacinde la varianza aveces tiene N como denomina-
dor, perola forma de la ecuacin 3.12 tiene propiedadesestadsticas que la hacen
ms deseable generalmente.)Por tanto,la varianzaes el promediode las desviacio-
nes de los datos respecto a la media, elevadas al cuadrado.
Desviacin La desviacinestndarse define comola raz cuadradade la varianza,o
estndar

MATLAB
incluye una funcin paracalcularla desviacin estndar
Calculala desviacin estndarpara los valores contenidos
en Si es una matriz, sedevuelve un vector de fila que
contiene la desviacin estndarde cada columna.
Para calcularla varianza, simplemente eleve
al cuadradola desviacinestndar.

HISTOGRAMAS

Histograma Un histograma es un tipo especial de grficaque tiene especial importanciaparalas


mediciones estadsticasque tratamosen esta seccin porquemuestrala distribucin
de un conjuntode valores. En MATLAB,el histograma calcula elnmerode valores
que caen en 10 intervalos espaciados equitativamente entre los valores mnimoy
mximo del conjuntode valores. Por ejemplo, si graficamos los histogramasde los
valores de datos de los vectores y de la figura3.10, obtenemos loshis-
togramasde la figura3.11. Observeque la informacinde unhistogramaes diferente
de la que se obtiene de la media o de la varianza.El histogramano slo nos muestra
la gama de valores, sino tambinla formaen que estn distribuidos.Por ejemplo, los
valores de tienden a estardistribuidos equitativamente dentrode la gama
de valores.(En la seccin3.7 veremos que estos tiposde valores sedenominanvalores
uniformemente distribuidos.) Los valores de no estn distribuidos equitativa-
mente dentrode la gama de valores. De hecho, la mayor partede los valores estn
centradosen la media. (En la seccin3.7 veremos que este tipo de distribucines una
distribucin gaussiana o normal.)
El comandoMATLAB para generary trazarun histograma es
Generaun histogramade los valores de usando10 intervalos.
Generaun histogramade los valores de usando intervalos.
Los histogramasde los vectores y usando25 intervalosse muestranen
la figura 3.12.
96 CAP. 3 MATLAB

Histograma de data-1

Histograma de data-2
150 I I I I I I I I I

Figura 3.1 1 Histogramas


con10 intervalos.

3.3 Instrucciones de seleccin y funciones de seleccin

seleccin

if-

if:

if g < 50
count= count+ 1;
disp(g
;)
end

g count
g g
count g
g
SEC.3.3 INSTRUCCIONES DE S E L E C C I ~ NY FUNCIONES DE S E L E C C I ~ N 97

Histogramascon25 intervalos.

La forma general
delainstruccin
if sencilla
eslasiguiente:
if expresin lgica
instrucciones
end

Sila expresin es lgicaverdadera, ejecutamos las instrucciones queestn entre la


instruccin if y la instruccin end. Si la expresines lgica
falsa, saltamos deinme-
diato a lainstruccinquesiguela ainstruccin end. / / / F / < f m ~ d o T / , n ~ A~ ~ ~ t r / [ c -
r/hnx?d hnf,f,(> u
- ~ d f r c c c f r @//)Az/w
~ ~ W JPCZ
P /(di,&/& P ~ P ~ P ' , .

Puesto quelas expresiones se lgicas


generan a partir deoperadores relacionales
y operadores lgicos,
a continuacin veremos estos nuevos operadores.

MATLABcuenta con operadores


seis relacionales para comparar
dosmatricesdeigual
tamao, comomuestra
se enlatabla 3.2.Seusanmatrices o expresiones
dematrices
enambos lados
deun operador relaciona1paradarotra matriz delmismotamao.
Cadaentradadelamatriz resultante
contiene un 1silacomparacin esverdadera
cuandose aplica
a los valores
delas posiciones correspondientes
delas matrices;
de
locontrario,
laentradade lamatriz un O. Una expresin
resultante contiene que
TABLA 3.2 Operadoresrelacionales
Operador relaciona1 Interpretacin

c
C=

>
>=
--
-=

matriz

operadores
lgicos

1,

&,

& c

TABLA 3.3Operadoreslgicos
O ~ e r a d o lgico
r Smbolo

S-ar putea să vă placă și