Sie sind auf Seite 1von 98

UNIVERSIDAD NACIONAL DEL CENTRO DEL PER

FFA
AC
CU
ULLTTA
AD
DD
DE
E IIN
NG
GE
EN
NIIE
ER
RA
AQ
QU
UM
MIIC
CA
A

TEXTO UNIVERSITARIO

LENGUAJE DE PROGRAMACION

ING. HELMER LOPEZ GUTIERREZ

HUANCAYO PERU

DEDICATORIA
El presente texto lo dedicamos a
nuestros estudiantes, quienes son el
motivo de nuestra existencia en la
UNCP.

PRESENTACION

En los momentos actuales en que la informacin es muy importante para la toma de


decisiones, el uso de las las herramientas de la informtica se hace imperativamente
necesaria, concientes de esa realidad en la Universidad nos mantenemos vigilantes de las
nuevas tendencias de la informtica.

El presente manual pretende ser una pequea gua para iniciarse dentro del fabuloso
mundo de la programacin como herramienta para los diferentes trabajos de investigacin
y aplicacin para la bsqueda de soluciones.
Este texto proporciona informacin para que el estudiante una base introductoria a la
informtica, algoritmos y diagramas de flujo, el programa MATLAB, como una poderosa
herramienta de clculo, simulacin y modelado matemtico, muy utilizada por estudiantes,
ingenieros y cientficos, en universidades, institutos de investigacin e industrias, en todo el
mundo, y muy fcil de usar.
MATLAB es un entorno de computacin y desarrollo de aplicaciones totalmente integrado
orientado para llevar a cabo proyectos en donde se encuentren implicados elevados
clculos matemticos y la visualizacin grfica de los mismos.
El lenguaje flexible e interactivo de MATLAB permite a ingenieros y cientficos expresar sus
ideas tcnicas con simplicidad. Los poderosos y amplios mtodos de cmputo numrico y
graficacin permiten la prueba y exploracin de ideas alternativas con facilidad, mientras
que el ambiente de desarrollo integrado facilita producir resultados prcticos fcilmente.

INDICE
Presentacin
Indice
Introduccin
pg.
CAPITULO I

Introduccin a la Computacin

CAPITULO II

Algoritmos y Diagramas de Flujo

21

CAPITULO III

Operaciones Matemtica con MATLAB

34

CAPITULO IV

Grficas con MATLAB

55

CAPITULO V

Programacin en Matlab

65

If end

69

For end

70

While end

72

Bibliografa

98

5
CAPITULO I
INTRODUCCION A LA COMPUTACIN
OBJETIVOS: Dar a conocer al estudiate la configuracin de parte fsica y lgica de un
sistema de computo y el entorno en el cual se va trabajar
CONTENIDOS: hardware y Software de un sistema de cmputo.

COMPUTADORA U ORDENADOR
Existen numerosas definiciones de una computadora, entre ellas las siguientes:
1) Una computadora es un dispositivo capaz de realizar clculos y tomar decisiones lgicas
a velocidades hasta miles de millones de veces ms rpidas que las alcanzables por los
seres humanos.
2) Un ordenador es una mquina capaz de aceptar datos a travs de un medio de entrada,
procesarlos automticamente bajo el control de un programa previamente almacenado,
y proporcionar la informacin resultante a travs de un medio de salida.
3) Una computadora es cualquier dispositivo en el que la informacin se representa en
forma numrica y que, mediante el recuento, comparacin y manipulacin de estos
nmeros (de acuerdo con un conjunto de instrucciones almacenadas en su memoria),
puede realizar una multitud de tareas: Realizar complejos clculos matemticos,
reproducir una meloda, etc.
4) Una computadora es un dispositivo electrnico capaz de recibir un conjunto de
instrucciones y ejecutarlas realizando clculos sobre los datos numricos.

COMPONENTES DE UNA COMPUTADORA


Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El
Hardware y el Software.
Hardware
Llamamos Hardware a la parte fsica de la computadora; corresponde a las partes que
podamos percibir con el sentido del tacto. En espaol la traduccin ms cercana es la de

6
soporte fsico. El hardware que compone a una computadora es muy complejo, pues una
pequea pieza puede contener millones de transistores.
Software
Para que el ordenador trabaje se necesita que le suministren una serie de instrucciones
que le indiquen qu es lo que queremos que haga. Estas rdenes se le suministran por
medio de programas. El software est compuesto por todos aquellos programas necesarios
para que el ordenador funcione apropiadamente. El software dirige de forma adecuada a
los elementos fsicos o hardware.

LAS PARTES DEL HARDWARE


El Hardware esta compuesto por cinco unidades o secciones bsicas: Entrada, Salida,
CPU, Memoria y Almacenamiento Secundario. Estas unidades se describen a
continuacin:

Unidades de Entrada y Salida


Es la parte del ordenador que le sirve para comunicarse con el exterior; es decir, para
recibir y emitir informacin. A las unidades de entrada y salida se le conoce tambin como
perifricos:

El monitor nos muestra la informacin.

El Teclado y el Mouse sirven para introducir los datos a la computadora.


El lector de CD-ROM sirve para leer la informacin almacenada
en un CD.

Mediante la impresora se obtiene una versin


papel de la informacin procesada por la
computadora.

en

Los parlantes sirven para escuchar los sonidos que emite la computadora a travs de una
tarjeta de sonido.
Unidad Central de Procesamiento (CPU)
La unidad central de proceso o CPU es la parte ms importante de un ordenador. Esta
unidad se encarga de realizar las tareas fundamentales y es por ello el elemento principal
de un sistema computarizado. Si hacemos un smil entre un ordenador y el cuerpo humano,
la CPU hara el papel del cerebro: atender las solicitudes, mandar y hacer controlar la
ejecucin.
Un microprocesador es un circuito integrado o chip que contiene
a la CPU. Su tamao es algo menor que el de una caja de
cerillos.

La unidad central de procesamiento se divide en dos partes: una


parte en la en la que se realizan las operaciones aritmticas y
lgicas (unidad aritmtico-lgica) y otra parte que controla todo
los proceso de ejecucin (unidad de control) en la computadora.

La unidad de control dirige todas las actividades del ordenador. Acta como el corazn
del sistema, enviando impulsos elctricos (seales de control) para secuenciar (poner en
orden) y sincronizar (establecer tiempos sucesivos de ejecucin) el funcionamiento de los
componentes restantes.
Unidad de Memoria
La Memoria Principal o Memoria Central es el dispositivo que sirve para almacenar los
programas (instrucciones) que se quieran ejecutar (cuando haya que cargar el programa) y
para almacenar los datos, los clculos intermedios y los resultados (cuando el programa ya
se est ejecutando). Slo los datos almacenados en la memoria son procesables por la
CPU. Los datos que estn contenidos en algn dispositivo de almacenamiento externo
deben ser previamente introducidos a la memoria, por medio de una unidad perifrica.
Dentro de la memoria principal, existen dos divisiones en funcin de las posibilidades de
lectura/escritura o solamente lectura: RAM y ROM.

Memoria RAM (Random Access Memory)


Es la memoria destinada a contener los programas
cambiantes del usuario y los datos que se vayan

8
necesitando durante la ejecucin de dichos programas. Es la memoria flexible y reutilizable.
La memoria RAM se llama tambin memoria de usuario, por ser la memoria con la que
trabaja el sistema para ejecutar los programas. Cuando se hace referencia a la capacidad
de memoria de un ordenador se est hablando de la memoria RAM del sistema.
Memoria ROM (Read Only Memory)
Memoria de solo lectura, llamada tambin memoria
residente o permanente. Son memorias que slo permiten la
lectura y no pueden ser re-escritas. Su contenido viene
grabado por el fabricante de la computadora y no puede ser
cambiado. Debido a estas caractersticas es que esta
memoria se usa para almacenar informacin vital para el funcionamiento del sistema. La
gestin del proceso de arranque, la verificacin inicial del sistema, la carga del sistema
operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las
tareas encargadas a los programas grabados en ROM. Los programas que constituyen la
informacin vital de una computadora forman la llamada BIOS (Basic Input Output System).
Unidad de Almacenamiento Secundario
Esta es el almacn de largo plazo y de alta capacidad de la
computadora. Los programas y datos que no estn siendo utilizados por
las otras unidades normalmente se colocan en dispositivos de
almacenamiento secundario hasta que necesiten, posiblemente horas,
das, meses o incluso aos despus. Ejemplo: Disco duro.

EL SOFTWARE
El ordenador, por s mismo, no puede realizar ninguna funcin; es necesario que algo le
dirija y organice. Este "algo" son las instrucciones que el programador escribe. Estas
instrucciones, agrupadas en forma de programas que son depositados en la memoria del
ordenador, forman lo que se denomina "software". El software es el nexo de unin entre el
hardware y el hombre.

Tal y como hemos definido el software, ste es un conjunto de programas. La pregunta


ahora es: Qu es un programa? Un programa es una secuencia de instrucciones que
pueden ser interpretadas por un ordenador, obteniendo como fruto de esa interpretacin un
determinado resultado.

Podemos clasificar en software en dos grandes grupos: software de sistema (Sistema


Operativo) y software de aplicacin.
Software del Sistema o Sistema Operativo
El sistema operativo es aquel conjunto de programas cuyo objeto es facilitar el uso
eficiente de la computadora. Este conjunto de programas administra los recursos del
sistema (hardware).
El sistema operativo se puede dividir en programas de control y programas de servicio.
Los programas de control son los que van orientados a facilitar, automatizar y mejorar el
rendimiento de los procesos en el ordenador (simultaneidad de operacin de perifricos,
tratamiento de errores, etc.); como ejemplo se tiene al administrador de tareas de windows.
Los programas de servicio o de proceso son los que van orientados a proporcionar
facilidades de comunicacin con el usuario (Ejemplo: aplicaciones como el explorador de
windows)
Software de Aplicacin
El software de aplicacin est constituido por aquello programas que hacen que el
ordenador coopere con el usuario en la realizacin de tareas tpicamente humanas, tales
como gestionar una contabilidad, escribir un texto, hacer grficos y diagramas, realizar
clculos repetitivos, etc. Algunos ejemplos de software de aplicacin son: procesadores de
texto (Word), hojas de clculo (Excel), sistemas de bases de datos (Access), etc.
La diferencia principal entre los programas de aplicacin y el sistema operativo estriba en
que los del sistema operativo suponen una ayuda al usuario para relacionarse con el
ordenador y hacer un uso ms cmodo del mismo, mientras que los de aplicacin son

10
programas que cooperan con el usuario para la realizacin de tareas que anteriormente
haban de ser llevadas a cabo nicamente por el hombre (sin ayuda de ordenador). Es en
estos programas de aplicacin donde se aprecia de forma ms clara la ayuda que puede
suponer un ordenador en las actividades humanas, ya que la mquina se convierte en un
auxiliar del hombre, liberndole de las tareas repetitivas.
LENGUAJES
Lenguaje es el empleo de notaciones, seales y vocales (voz, palabras) para expresar
ideas, comunicarse, y establecer relaciones entre los seres humanos. Un lenguaje no slo
consta de palabras, sino tambin de su pronunciacin y los mtodos para combinar las
palabras en frases y oraciones; los lenguajes se forman mediante combinaciones de
palabras definidas en un diccionario terminolgico previamente establecido. Las
combinaciones posibles deben respetar un conjunto de reglas sintcticas establecidas, a
ello se le conoce con el nombre de Sintaxis. Adems, las palabras deben tener
determinado sentido, deben ser comprendidas por un grupo humano en un contexto dado,
a ello se le denomina Semntica.

TIPOS DE LENGUAJES
Aunque existen muchas clasificaciones, en general se puede distinguir entre dos clases de
lenguajes: los lenguajes naturales (ingles, alemn, espaol, etc.) y los lenguajes
artificiales o formales (matemtico, lgico, computacional, etc.). Tanto el lenguaje natural
como el lenguaje artificial son humanos. El primero es natural porque se aprende (o
adquiere) inconsciente e involuntariamente. Ningn beb decide aprender o no la lengua
que hablan sus padres, y ningn padre sienta a su hijo y le ensea las reglas sintcticas de
su lengua. Las personas hablan y se entienden, pero generalmente no se cuestionan las
reglas que utilizan al hablar. Por otra parte, los lenguajes artificiales s se aprenden de
manera voluntaria y conscientemente. Un ejemplo de lenguaje artificial son los lenguajes
de programacin utilizados para desarrollar programas informticos.

TIPOS DE LENGUAJES
Un Lenguaje de Programacin es un conjunto de reglas, notaciones, smbolos y/o
caracteres que permiten a un programador poder expresar el procesamiento de datos y sus
estructuras en la computadora. Cada lenguaje posee sus propias sintaxis. Tambin se
puede decir que un programa es un conjunto de rdenes o instrucciones que resuelven un
problema especfico basado en un Lenguaje de Programacin.

11
Existen varias clasificaciones para los lenguajes de programacin.

Clasificacin de los Lenguajes de Programacin


Los programadores escriben instrucciones en diversos lenguajes de programacin. La
computadora puede entender directamente algunos de ellos, pero otros requieren pasos de
traduccin intermedios. Hoy da se utilizan cientos de lenguajes de computadora.

Los Lenguajes de Programacin pueden clasificarse de acuerdo con su uso en:


1. Lenguajes desarrollados para el clculo numrico. Tales como FORTRAN,
Mathematica y Matlab.
2. Lenguajes para sistemas. Como C, C++ y ensamblador.
3. Lenguajes para aplicaciones de Inteligencia Artificial. Tales como Prolog, y Lisp.

Tambin se pueden clasificar de acuerdo con el tipo de instrucciones de que constan.


En esta clasificacin se tiene al lenguaje mquina, al lenguaje ensamblador y al
lenguaje de alto nivel. Se presenta a continuacin una descripcin de cada uno de ellos.

Lenguaje mquina (Binario)


Una computadora slo puede entender el lenguaje mquina. El lenguaje de mquina
ordena a la computadora realizar sus operaciones fundamentales una por una. Dicho
lenguaje es difcil de usar para lar persona porque trabajar con nmeros no es muy cmodo
adems de que estos nmeros estn en formato binario.
Lenguajes de bajo nivel (ensamblador)
Para facilitar y agilizar su labor a los programadores, se buscaron nuevos lenguajes.
Cuando abstraemos los opcodes y los sustituimos por una palabra que sea una clave de su
significado, se tiene el concepto de Lenguaje Ensamblador. As, el lenguaje ensamblador
representa las acciones del ordenador mediante pequeas abreviaturas de palabras en
ingls. Podemos entonces definir al Lenguaje Ensamblador de la siguiente forma:
Lenguaje Ensamblador consiste en asociar a los opcodes palabras clave que faciliten su
uso por parte del programador
No obstante, el lenguaje ensamblador requiere de muchas instrucciones para realizar
simples operaciones.

Lenguajes de alto nivel


Para acelerar aun ms el proceso de programacin se desarrollaron los lenguajes de alto
nivel, en los que se puede escribir un slo enunciado para realizar tareas sustanciales. Los

12
lenguajes de alto nivel permiten a los programadores escribir instrucciones que asemejan
al ingls cotidiano y contiene notaciones matemticas de uso comn. El concepto de
lenguaje de alto nivel naci con el lenguaje FORTRAN (FORmula TRANslation) que, como
su nombre indica, surgi como un intento de traducir frmulas matemticas al lenguaje
ensamblador y por consiguiente al lenguaje de mquina. A partir de FORTRAN, se han
desarrollado innumerables lenguajes que siguen el mismo concepto: buscar la mayor
abstraccin posible y facilitar la vida al programador, aumentando la productividad.

EJEMPLOS DE TIPOS DE LENGUAJES


Lenguaje Mquina

100001010101010
100100101010100
100011100101110
Lenguaje de Nivel Bajo (Ensamblador)

LOAD R1, (B)


LOAD R2, (C)
ADD R1, R2
STORE (A), R1
Lenguaje de Alto Nivel

A = B + C;

HISTORIA DE LOS LENGUAJES DE PROGRAMACION


Se presentan a continuacin datos relevantes de algunos de los lenguajes de
programacin de mayor importancia histrica.
FORTRAN
FORTRAN es el ms viejo de los lenguajes de alto nivel. Fue diseado por IBM en 1950. El
idioma se hizo tan popular en los 60s que otros desarrolladores empezaron a producir sus
propias versiones y esto llev a una gran cantidad de dialectos (en 1963 haba 40
compiladores de FORTRAN diferentes). En 1972 se cre FORTRAN66, como una forma de
estandarizar la estructura del lenguaje. Luego, en 1980, se estableci una norma oficial
para el lenguaje avalada por la Organizacin de Normas Internacionales (ISO). Tal versin
es normalmente conocida como FORTRAN 77 (dado que el proyecto final se complet en
1977). En 1991 surge FORTRAN90, un desarrollo mayor del idioma pero que incluye todos

13
los elementos de FORTRAN77 para facilitar la compatibilidad. Finalmente, en 1997, surge
FORTRAN95 o High Performance Fortran (HPF).
BASIC
BASIC es la abreviacin de Beginners All-purpose Symbolic Instruction Code. Basic fue
desarrollado en la Universidad de Dartmouth en 1964 bajo la direccin de J. Kemeny y T.
Kurtz. Surgi como un idioma simple de aprender y fcil de traducir. En los 70s, cuando
se cre la computadora personal Altair, Bill Gates y Paul Allen implementaron su propia
versin de Basic en dicha computadora. Con ello comenz el futuro de BASIC y de la PC.
En ese tiempo, Gates era estudiante de Harvard y Allen era un empleado de Honeywell. La
versin BASIC de Gates ocupaba un total de 4KB de memoria incluyendo el cdigo y los
datos que se usaron para el cdigo fuente. Luego Gates implement BASIC en otras
plataformas (Apple, Comodor y Atari) y fue a partir de entonces que la corporacin de
Microsoft empez su reinado en el mundo de las PC. Ms tarde en los 70s, surgi el
sistema operativo MS-DOS de Bill Gates que inclua un intrprete de BASIC. La versin
distribuida con MS-DOS era GW-BASIC y poda ser ejecutada en cualquier mquina que
pudiera ejecutar DOS.
C
El lenguaje C rene caractersticas de programacin tanto de los lenguajes ensambladores
como de los lenguajes de alto nivel; este lenguaje posee gran podero basado en sus
operaciones a nivel de bits (propias de ensambladores) y la mayora de los elementos de
la programacin estructurada de los lenguajes de alto nivel. Por ello es que C ha sido el
lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales
de la programacin de computadoras.
En 1970 Ken Thompson de los laboratorios Bell cre la primera versin del lenguaje, la
cual poda ejecutarse en el sistema operativo UNIX; a este lenguaje se le llam lenguaje B
y tena la desventaja de ser lento. En 1971 Dennis Ritchie, con base en el lenguaje B,
desarroll NB que luego cambi su nombre por C. Su diseo incluy una sintaxis
simplificada, la aritmtica de direcciones de memoria (permite al programador manipular
bits, bytes y direcciones de memoria) y el concepto de apuntador. Adems, al ser diseado
para mejorar software de sistemas, se busc que generase cdigos eficientes y uno
portabilidad total, es decir el que pudiese correr en cualquier mquina. Logrados los
objetivos anteriores, C se convirti en el lenguaje preferido de los programadores
profesionales.
C++
En 1980 Bjarne Stroustrup, tambin de los laboratorios Bell, adicion al lenguaje C las
caractersticas de la programacin orientada a objetos (incluyendo la ventaja de una

14
biblioteca de funciones orientada a objetos) y lo denomin C con clases. Para 1983 dicha
denominacin cambi a la de C++.
MATLAB
Cleve Moler escribi el MATLAB original en FORTRAN, durante varios aos. Los
algoritmos matriciales subyacentes fueron proporcionados por los muchos integrantes de
los proyectos LINPACK y EISPACK. El MATLAB actual fue escrito en C por The
Mathworks. La primera versin fue escrita por:
Steve Bangert, que escribi el intrprete parser
Steve Kleiman que implement los grficos
John Little y Cleve Moler que escribieron las rutinas de anlisis, la gua de usuario y
la mayora de los ficheros .m.
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software
matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de
programacin propio (lenguaje M). Est disponible para las plataformas Unix, Windows y
Apple Mac OS X.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de
datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario
(GUI) y la comunicacin con programas en otros lenguajes y con otros dispositivos
hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus
prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de
interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MATLAB con
las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques
(blocksets).
Es un software muy usado en universidades y centros de investigacin y desarrollo. En los
ltimos aos ha aumentado el nmero de prestaciones, como la de programar
directamente procesadores digitales de seal o crear cdigo VHDL.

CODIGO ASCII
Existe una equivalencia en informtica entre los nmeros naturales entre 0 y 255 (posibles
valores de un byte) y los caracteres, de forma que a cada nmero le corresponde una letra,
smbolo o cdigo. La equivalencia ms utilizada es la tabla ASCII (American Standard
Code for Information Interchange). Cada caracter (por ejemplo la letra A) tiene asignado un
nmero por el ordenador de forma que podemos referenciarlo mediante dicho nmero. Por

15
ejemplo, la letra A tiene por cdigo de identificacin el nmero 65, la B el 66, el 2 el 50, etc.
Se proporciona aqu una copia de esta tabla para su referencia.
Para obtener un carcter a travs del teclado, presione la tecla Alt y, simultneamente (sin
soltar la tecla), presione el nmero de cdigo correspondiente.
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D

69 E
70 F

77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q

114 r
115 s

122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158

z
{
|
}
~

Pt

159
160

167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203

204
205

212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248

249
250

16
71
72
73
74
75
76

G
H
I
J
K
L

116
117
118
119
120
121

t
u
v
w
x
y

161
162
163
164
165
166

206
207
208
209
210
211

251
252
253
254

Note que los cdigos entre 0 y 31 son caracteres de control y se suelen llamar "no
imprimibles", pues su equivalencia no es un caracter sino una determinada accin. Por
ejemplo, el cdigo 13 es equivalente a la pulsacin de ENTER. Brevemente, los ms
interesantes son:

cdigo

equivale

cdigo equivale

07

beep (pitido del altavoz del PC) 27

ESC (tecla escape)

08

Backspace

28

cursor a la derecha

09

Tab (tabulacin)

29

cursor a la izquierda

10

line feed (avance de lnea)

30

cursor arriba

13

CR (retorno de carro)

31

cursor abajo

NOTA:
Los cdigos ASCII a partir del 127 son definibles y dependen de cada mquina. Los
representados aqu corresponden con los que son imprimibles desde HTML. En una IBM
PC en MS-DOS, por ejemplo, estos cdigos pueden ser distintos a los aqu representados.

17

EJERCICIOS PROPUESTOS

1. Destapar una computadora usada y describir sus partes principales.

2. Hacer un diagrama de rbol y describir los tipos de programas (software) que


actualmente se vienen usando en el centro de computo de la F.I.Q.

3. Hacer una decripcin de los perifricos de un equipo de computo.

4. Describa el Sistema Operativo instalado en las PC del centro de cmputo de


la FIQ?

5. Que es Software libre?

6. El Hardware puede funcionar sin el Software?

7. Describa la utilidad de un Sistema Operatvo

8. En una PC puede instalarse 2 sistemas operativos?

9. Si en mi teclado no encuentro un smbolo, como puedo obtenerlo?

10. Decriba 2 unidades de almacenamiento secundario.

18
EVALUACIN

1. Cuales son las partes principales de una computadora?

2. Describa los principales lenguajes de programacin

3. Hacer una decripcin de los perifricos de un equipo de computo.

4. Describa el Sistema Operativo LINUX.

5. Describa el sistema operativo que tienen las computadoras del centro de


computo dela FIQ.

6. En que tipo de memoria se almacenan cuando se realiza un trabnajo en la


com putadora? Describa.

7. Describa la utilidad de los antivirus

8. Que diferencia existe entre un Sistema Operativo, un procesador de textos


y un lenguaje de programacin?

9. Cul es la utilidad que tienen los cdigos ACCI?

10. Cul es la unidad de almacenamiento que utiliza?

19

Bibliografa Referencial
1. CHAPRA, STEVEN Mtodos Numricos para Ingenieros. Editorial Mc. Graw Hill.
Mxico. 2004.
2. NAKAMURA, SHOICHIRO Analisis Numrico y Visualizacin con Matlab. Editorial
Prentice may. Mxico. 1997.
3. MORALES MARCHENA, HERN. Mtodos numricos y Visualizacin Grfica
Editorial Megabit. Peru. 2005.
4. PEREZ, CESAR Matlab y sus Aplicaciones en las Ciencias y la Ingeniera Editores
Prentice. Espaa. 2002 .
5. VASQUEZ PARAGULLA, JULIO Diseo de Programacin Edit. San Marcos
PERU . 2000.
6. KERLINGER, F. N. Y LEE, H. B. Investigacin del Comportamiento: Mtodos de
Investigacin en ciencias sociales. Mc Graw Hill Interamericana Editores. Mxico.
2002.

20
CAPITULO II
ALGORITMOS Y DIAGRAMAS DE FLUJO
OBJETIVOS: Explicar los algoritmos y diagramas de flujo como parte de un proceso de
programacin para cualquier lenguaje de programacin.
CONTENIDOS: Pasos para resolver un problema, algoritmos, digramas de flujos.

PASOS PARA LA SOLUCION DE PROBLEMAS


El proceso de resolucin de un problema con una computadora conduce a la escritura de
un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es
esencialmente un proceso creativo, se pueden considerar tambin como una serie de fases
o pasos comunes que generalmente deben seguir todos los programadores.
Las siguientes son las etapas que se deben cumplir para resolver con xito un problema de
programacin:
1. Definicin del problema
2. Anlisis del problema
3. Seleccin de la mejor alternativa
4. Crear Diagrama de Flujo
5. Codificacin
6. Compilacin
7. Pruebas
8. Documentacin externa

Definicin del Problema


Est dada por el enunciado del problema, el cual debe ser claro y completo. Es importante
que conozcamos exactamente que se desea de la computadora; mientras que esto no se
comprenda no tiene caso pasar a la siguiente etapa.

Anlisis del Problema


Entendido el problema (que se desea obtener de la computadora), para resolverlo es
preciso analizar:
Los datos o resultados que se esperan.
Los datos de entrada que se deben suministrar.
El proceso al que se requiere someter dichos datos a fin de obtener los resultados
esperados.
Frmulas, ecuaciones y otros recursos necesarios.

21

Una recomendacin muy prctica es el que nos pongamos en el lugar de la computadora, y


analizar que es necesario que me ordenen y en que secuencia para poder producir los
resultados esperados.

Seleccin de la Mejor Alternativa


Analizado el problema posiblemente tengamos varias formas de resolverlo; lo importante
es determinar cual es la mejor alternativa. Esto es, la que produce los resultados
esperados en el menor tiempo y al menor costo.

Crear Diagrama de Flujo


Una vez que sabemos como resolver el problema, pasamos a dibujar grficamente la
lgica de la alternativa seleccionada. Eso es precisamente un Diagrama de Flujo: la
representacin grfica de una secuencia lgica de pasos a cumplir por la computadora
para producir un resultado esperado.
La experiencia nos ha demostrado que resulta muy til trasladar esos pasos lgicos
planteados en el diagrama a frases que indiquen lo mismo; es decir, hacer una codificacin
del programa pero utilizando instrucciones en Espaol, como si le estuviramos hablando a
la computadora. Esto es lo que se denomina Pseudocdigo. Cuando logremos habilidad
para desarrollar programas, es posible que no sea necesario elaborar ni el diagrama de
flujo ni el pseudocdigo del programa.

Codificacin
Una vez que hayamos elaborado el diagrama, codificamos el programa en el lenguaje de
programacin seleccionado. Esto es, colocamos cada paso del diagrama en una
instruccin o sentencia utilizando un lenguaje que la computadora reconoce. Este
programa es el que se conoce como Cdigo Fuente (Source Code).
Todos los lenguajes de programacin proveen facilidades para incluir lneas de
comentarios en los programas. Estos comentarios aclaran lo que se ordena a la
computadora y facilitan la compresin del programa. Puesto que estos comentarios no se
toman cuenta como instrucciones y aparecen en los listados del programa, resulta muy
conveniente agregar abundantes comentarios a todo programa que codifiquemos. Esto es
lo que se denomina Documentacin Interna.
Compilacin
Utilizamos ahora un programa Compilador, el cual analiza todo el programa fuente y
detecta errores de sintaxis ocasionados por fallas en la codificacin. Las fallas de lgica

22
que pueda tener nuestro programa fuente no son detectadas por el compilador. Cuando no
hay errores graves en la compilacin, el compilador traduce cada instruccin del cdigo
fuente a instrucciones propias de la mquina (Lenguaje de Maquina), creando el Programa
Objeto. Cuando hay errores, stos se deben corregir sobre el mismo programa fuente. El
paso de compilacin se repite hasta eliminar todos los errores y obtener el programa
ejecutable.

Pruebas
Cuando tenemos el programa ejecutable (en lenguaje de maquina) ordenamos al
computador que lo ejecute, para lo cual suministramos datos de prueba. Los resultados
obtenidos se analizan para identificar cualquiera de las siguientes situaciones:
La lgica del programa esta bien, pero hay errores sencillos, los cuales se corrigen
modificando algunas instrucciones o incluyendo unas nuevas; el proceso debemos
repetirlo desde el paso 5.
Hay errores muy graves ocasionados por fallas en la lgica, y lo ms aconsejable es
que regresemos al paso 2 para analizar nuevamente el problema y repetir todo el
proceso.
No hay errores y los resultados son los esperados. En este caso, el programa lo
podemos guardar permanentemente para usarlo cuando necesitemos ejecutarlo
nuevamente.

Documentacin Externa
Cuando el programa ya se tiene listo para ejecutar, es conveniente que hagamos su
documentacin externa. Una buena documentacin externa incluira, por ejemplo:
Enunciado del problema
Narrativo con la descripcin de la solucin
Descripcin de las variables utilizadas en el programa, cada una con su respectiva
funcin
Resultados de la ejecucin del programa

ALGORITMOS Y DIAGRAMAS DE FLUJO


Algoritmo
Un algoritmo es un conjunto de acciones que determinan la secuencia de los pasos a
seguir para resolver un problema especfico. Sus pasos deben estar definidos con precisin
de forma que no existan ambigedades que den origen a elegir una opcin equivocada.
Los algoritmos son finitos; es decir, su ejecucin termina en un nmero determinado de

23
pasos. La mayora de los algoritmos de utilidad al programador poseen 3 partes
principales:

Entrada de Datos

Algoritmo

Procesamiento de Datos

Salida de Resultados
Los algoritmos pueden representarse a travs de un conjunto de palabras por medio de las
cuales se puede representar la lgica de un programa. Este conjunto de palabras
constituyen lo que se conoce como pseudocdigo. Adems, los algoritmos se pueden
representar grficamente a travs de un diagrama de flujo. Ambas herramientas se
describen a continuacin.

Diagramas de flujo
Un diagrama de flujo es una representacin grfica de un algoritmo o de una parte del
mismo. La ventaja de utilizar un diagrama de flujo es que se le puede construir
independientemente del lenguaje de programacin, pues al momento de llevarlo a cdigo
se puede hacer en cualquier lenguaje. Dichos diagramas se construyen utilizando ciertos
smbolos de uso especial como son rectngulos, valos, pequeos crculos, etc.; estos
smbolos estn conectados entre s por flechas conocidas como lneas de flujo. A
continuacin se presentan estos smbolos y su significado.
Smbolos y su Significado
Terminal. Representa el inicio y fin de un programa.
Proceso. Son acciones que el programa tiene que realizar

Decisin. Indica operaciones lgicas o de comparacin.

Entrada. Nos permite ingresar datos.

Salida. Es usado para indicar salida de resultados

24

Selector mltiple. Representa una decisin con


mltiples alternativas.

Conector. Enlaza dos partes cualesquiera de un programa

Lnea de flujo. Indica direccin de flujo del diagrama. Las flechas de


flujo no deben cruzarse. Los diagramas se leen de arriba hacia abajo y de
izquierda a derecha.
Conector fuera de pgina. Representa conexin entre partes del algoritmo
representadas en pginas diferentes.
Pseudocdigo
A continuacin se muestran algunos ejemplos de palabras utilizadas para construir
algoritmos en pseudocdigo.

PALABRA
ABRE
CASO
CIERRA
ENTONCE
S
ESCRIBE
FIN
HASTA
HAZ
INICIO
LEER
MIENTRA
S
NO
O
O - BIEN
PARA
SI
USUAL
Y
{
}
<=

UTILIZACIN
Abre un archivo
Seleccin entre mltiples alternativas
Cierra un archivo
Complemento de la seleccin SI - ENTONCES
Visualiza un dato en pantalla
Finaliza un bloque de instrucciones
Cierra la iteracin HAZ HASTA
Inicia la iteracin HAZ HASTA
Inicia un bloque de instrucciones
Leer un dato del teclado
Inicia la iteracin mientras
Niega la condicin que le sigue
Disyuncin lgica
Complemento opcional de la seleccin SI - ENTONCES
Inicia un nmero fijo de iteraciones
Inicia la seleccin SI-ENTONCES
Opcional en la instruccin CASO
Conjuncin lgica
Inicio de comentario
Fin de comentario
Asignacin

25

PROGRAMACION ESTRUCTURADA
La programacin estructurada es un estilo con el cual el se busca que el programador
elabore programas sencillos y fciles de entender. Para ello, la programacin estructurada
hace uso de tres estructuras bsicas de control. stas son:
Estructura Secuencial
Estructura Selectiva
Estructura Repetitiva ( Iterativa)
La programacin estructurada se basa un teorema fundamental, el cual afirma que
cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado
utilizando nicamente las tres estructuras bsicas (secuencia, seleccin, iteracin).

DEFINICION DE LAS TRES ESTRUCTURAS BASICAS


Estructura Secuencial
Indica que las instrucciones de un programa se ejecutan una despus de la otra, en el
mismo orden en el cual aparecen en el programa. Se representa grficamente como una
caja despus de otra, ambas con una sola entrada y una nica salida.

Las cajas A y B pueden ser definidas para ejecutar desde una simple instruccin hasta un
mdulo o programa completo, siempre y cuando stos tambin sean programas
apropiados.

Estructura Selectiva
Tambin conocida como la estructura SI-VERDADERO-FALSO, plantea la seleccin entre
dos alternativas con base en el resultado de la evaluacin de una condicin; equivale a la
instruccin IF de todos los lenguajes de programacin y se representa grficamente de la
siguiente manera:

26

En el diagrama de flujo anterior, C es una condicin que se evala; A es la accin que se


ejecuta cuando la evaluacin de esta condicin resulta verdadera y B es la accin
ejecutada cuando el resultado de la evaluacin indica falso. La estructura tambin tiene
una sola entrada y una sola salida; y las funciones A y B tambin pueden ser cualquier
estructura bsica o conjunto de estructuras.
Estructura Repetitiva (Iterativa)
Tambin llamada la estructura HACER-MIENTRAS-QUE, corresponde a la ejecucin
repetida de una instruccin mientras que se cumple una determinada condicin. El
diagrama de flujo para esta estructura es el siguiente:

Aqu el bloque A se ejecuta repetidamente mientras que la condicin C se cumpla o sea


cierta. Tambin tiene una sola entrada y una sola salida; igualmente A puede ser cualquier
estructura bsica o conjunto de estructuras.

Ventajas de la Programacin Estructurada


Con la programacin estructurada, elaborar programas de computadora sigue siendo una
labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este
nuevo estilo podemos obtener las siguientes ventajas:

1. Los programas son ms fciles de entender. Un programa estructurado puede ser ledo
en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro
en la lgica, lo cual es tpico de otros estilos de programacin.

27
2. Se logra una reduccin del esfuerzo en las pruebas. El seguimiento de las fallas o
depuracin (debugging) se facilita debido a la lgica ms visible, de tal forma que los
errores se pueden detectar y corregir ms fcilmente.
3. Se crean programas ms sencillos y ms rpidos.

28
EJEMPLOS ILUSTRATIVOS

Estructura Secuencial
Calcular el rea de un rectngulo a partir de su altura y su base

Inicio

Base

Altura

Area = Base x Altura

rea

Fin

29

Estructura Selectiva
Convertir calificaciones numricas (0 al 10) a calificaciones de Aprobado Reprobado,
siendo 7.0 la calificacin mnima aprobatoria.

Inicio

Calificacin

Calificacin > 7.0


Falso

Verdadero

Resultado=Reprobado

Resultado=Aprobado

Resultado

Fin

30
Estructura Repetitiva (Iterativa)
Calcular el factorial de un nmero entero positivo

Inicio

Nmero

Factorial = 1

Contador = 1

Contador > Nmero


Falso

Verdadero

Factorial=Factorial * Contador

Contador=Contador + 1

Factorial

Fin

31
Realizar un diagrama de flujo para calcular las races de una ecuacin de segundo grado.

32
EJERCICIOS PROPUESTOS

1. Realizar un diagrama de flujo que te permita convertir una cantidad dada en metros
a pies y pulgadas.

2. Realizar un diagrama de flujo que te permita ingresar tres nmeros y


ordenarlos ascendentemente

3. Realizar un diagrama de flujo que te permita multiplicar entre s todos los nmeros
enteros entre n (el menor) y m (incluyndolos) si tales nmeros estn dados.

4.

Ingresar por teclado el Ph (entre 0 y 14) y determinar de que tipo de Ph se trata


(cido, bsico o neutro).

5.

Realizar un diagrama de flujo para determinar si un nmero es primo o n.

6. Realizar un diagrama de flujo para determinar si nmero es perfecto.

33
EVALUACIN
Dado la ecuacin de un movil X=5t3 + 10t2 10t, hacer el diagrama de flujo para obtener
el espacio recorrido, la velocidad y la aceleracin para los 10 primeros segundos de su
recorrido.

Realizar un diagrama de flujo para calcular el promedio aritmtico de cuatro notas, si el


promedio es

menor que 10.5 imprimir el promedio y desaprobado , caso contrario

imprimir el promedio y aprobado.

Realizar un digrama de flujo para determinar cuantos nmeros mltiplos de M hay en los N
primeros nmeros naturales , talque M sea menor o igual que N. Ejemplo. Cuantos
mltiplos de 3 hay en los primeros 20 nmeros naturales.

Bibliografa
1. CHAPRA, STEVEN Mtodos Numricos para Ingenieros. Editorial Mc. Graw Hill.
Mxico. 2004.
2. MORALES MARCHENA, HERN. Mtodos numricos y Visualizacin Grfica
Editorial Megabit. Peru. 2005.
3. PEREZ, CESAR Matlab y sus Aplicaciones en las Ciencias y la Ingeniera
Editores Prentice. Espaa. 2002 .
4. KERLINGER, F. N. Y LEE, H. B. Investigacin del Comportamiento: Mtodos de
Investigacin en ciencias sociales. Mc Graw Hill Interamericana Editores.
Mxico. 2002.

34
CAPITULO III
OPERACIONES MATEMTICAS CON MATLAB
OBJETIVOS: El participante manejar el Matlab para la obtencin de soluciones puntuales
de problemas matemticos.
CONTENIDOS:

Operaciones

algebraicas,

formatos

de

visualizacin,

funciones

matemticas, nmeros complejos, matrices y arreglos

Operaciones Algebraicas
De la misma forma que una calculadora Matlab realiza matemticas simples. Considere el
siguiente ejemplo sencillo:
>> 4*5+6*22+2*99
Ans= 430
Como otra posible alternativa el calculo, se puede resolver almacenando informaciones en
variables de matlab
>> A= 4;
>> B=2;
>>SUMA=A + B
SUMA = 6
El punto y coma al final de la lnea, le dice a matlab que evalu la lnea pero que no nos
diga la respuesta.
>> N1=12;
>> N2=14;
>>promedio=(N1+N2)/2
promedio = 13

>>3^2-5-6/3*2
>>3^2-5-6/(3*2)
OPERADORES ARITMETICOS Y LOGICOS
OPERADOR
+
*
.*
/
./
^
.^
-=
>

FUNCION QUE CUMPLE


Suma de escalares, vectores o matrices
Resta de escalares, vectores o matrices
Producto de escalares o matrices
Producto de escalares o de vectores
Cociente escalar o B/A=B*inv(A), donde A y B son matrices
A./B=[A(i,j)/B(i,j)], donde A y B son vectores [dim(A)=dim(B)]
Potencia de escalares o potencia escalar de matriz (Mp)
Potencia de vectores (A.^B)=[A(i,j)B(i,j)],donde A y B son vectores
a -= b Establece la condicin de a
b.
a > b Establece la condicion de a mayor que b

35
<
>=
<=

a < b Establece la condicion de a menor que b


a >= b Establece la condicion de a mayor o igual que b
a <= b Establece la condicion de a menor o igual que b
a b
Establece la disyuncion de a o b

==

A == b Establece la condicion de a igual a b

Las operaciones matemticas simples entre escalares y vectores aplican el escalar todos
los elementos del vector segn la operacin definida y las operaciones simples entre
vectores se realizan elemento a elemento, hay que tener presente que los vectores han de
ser de la misma longitud.
>>X=[4,2,6]; Y=[2,5,3];
>>a=X+Y
>>b=X-Y
>>c=X.*Y
Comandos de Ayuda
Help: Para saber el significado de un comando digite help, seguido del comando del cual se
desea obtener informacion.
>>help quit
>>help +
>>what
>>who
>>doc help

% nos permite visualizar caracteres y operadores especialesdel matlab.


% produce una lista de archivo.
% produce una lista de las variables del espacio de trabajo actual.
% permite visualizar el documento de ayuda.

FUNCIONES BASICAS
Variables
En Matlab como en cualquier leguaje de programacion se utilizan variables, bajo ciertas
reglas:
No pueden comenzar con un numero, aunque si pueden tener numeros en su estructura.
La mayusculas y minusculas se diferencian en los nombres de las variables.
Los nombres no pueden utilizar operadores ni punto. No es valido usar / * - + . ; :
Una variable puede tener hasta 31 caracteres.
>>V=5;
>>v=2;
>>producto=V*v
La variable V valdr 5 mientras no se le cambie su valor mediante una nueva asignacin,
una vez declarada la variable podemos utilizarla en los clculos.
>>r=5;
>>area=2*pi*r
area = 31.4159

36
>>clear r

% borra simplemente la variable r de la memoria de trabajo

>>clear r area

% borra ambos r y area.

>>clear

% borra todas las variables usadas de la memoria.

>>clc

% limpia la informacion de la pantalla de comandos

Matlab tiene variables especiales que son las siguientes:


Variables
Valor
Ans
Nombre por defecto de las variables usada por los resultados
Pi
Razn de una circunferencia a su dimetro
Eps
Nmero mas pequeo tal que, cuando se le suma 1, crea un numero
en coma flotante en el computador mayor que 1
Inf
Infinito, p. e.,1/0
NaN
Magnitud no numrica (Not-a-Number), p.e.,0/0
iyj
1
Imaginario i = j =
realmin
Realmax

El nmero real positivo ms pequeo que es utilizable 2-1022


El nmero real positivo ms grande que es utilizable (2-e) 2 1023

Formatos de visualizacin de nmeros


Es posible modificar el formato numrico por defecto especificando un formato numrico
diferente usando la opcin numerical format en el men option o escribiendo la orden
apropiada en matlab.
Orden de matlab
Format short
Format short e
Format long
Format long e
Format hex
Format bank
Format +
Format rat
vpaoperaciones n
digits(n)

Comentarios
Visualizacin por defecto con 4 cifras decimales
4 decimales + la potencia de 10 necesaria
Ofrece el resultado con 16 cifras decimales
16 decimales + la potencia de 10 necesaria
Hexadecimal
2 dgitos decimales
Positivo, negativo o cero
Aproximacin racional
Ofrece el resultado con n digitos decimales exactos
Ofrece los resultados con n digitos exactos

Es importante observar que matlab no cambia la representacin interna de un nmero


cuando se escogen diferentes formatos; solo se modifica la visualizacin del nmero.
>>pi
ans =
3.1416
>>format long
>>pi
ans =
3.14159265358979
>>170/13
>>format long; 174/13
>>format long e; 174/13

37
>>format short e; 174/13
>>format hex; 174/13
>>format bank; 174/13
>>format hex; 174/13
>>vpa 74/13 10 % muestra el resultado con 10 digitos decimales exactos
>>digits(20);vpa 74/13 % muestra el resultado con 20 dgitos decimales exactos
Comando de lectura y escritura
input .- Permite el ingreso de datos al programa a travez del teclado asignandole a una
variable, esta orden puede usarse con un mensaje en la linea de comandos.
>> x = input (' ');
>> n = input ('ingrese un numero:');
>> N = input ('ingrese un nombre:', 's')
teclado es una cadena

% s indica que la entrada que se hara por

fprintf .- Permite la visualizacion de un valor numerico o el resultado de una expresion


guardada por el usuario.
>> vol = 50;
>> fprintf (' el volumen de la esfera es : %12.0f \n', vol);
\n' indica que la impresin de la variable vol sera en la siguiente linea.
%12.0f formato de un numero entero.
%12.5f formato de un numero real con 5 decimales.
disp .- Permite la visualizar en pantalla un mensaje de texto o el valor de una matriz, pero
sin imprimir su nombre. En realidad, disp siempre imprime vectores y/o matrices, las
cadenas de caracteres se consideran un caso particular de vectores.
>> disp (' Esto es una prueba ' );
>> disp ( pi );
>> disp (' Programa terminado ' );
>> A = rand(4,4)
>> disp ( A )
Funciones Matemticas
Una lista parcial de las funciones comunes que posee Matlab se muestra en la tabla que
sigue. la mayora de estas funciones se utilizan de la misma forma en que ustedes las
escribe matemticamente:
>>a=3;
>>b=4;
>>hipot=sqrt(a^2+b^2)
hipot = 5
>>x=sqrt(2)/2
x = 0.7071
>> y=asin (x)
y = 0.7854

38
>> y_deg=y*180/pi
y_deg= 45.0000

2 /2
Estas ordenes encuentran el ngulo donde la funcin seno tiene un valor de
Mientras que su calculadora puede trabajar en grados o radianes, MATLAB solo opera en
radianes, donde 2 radianes es igual a 360 grados.
>> y=sqrt(3^2+4^2) % muestra que 3-4-5 son lados de un tringulo rectngulo
>> y=rem(23,4) % nos muestra el resto de 23/4
>>x=2.6, y1=fix(x), y2=floor(x), y3=ceil(x), y4=round(x)
x = 2.6000
y1 = 2
y2 = 2
y3 = 3
y4 = 3
Funciones Trigonometricas
sin(x)
Seno de x
asin(x)
Arco seno de x
abs(x)
Valor absoluto o magnitud de un numero complejo
sinh(x)
Seno hiperbolico de x
asnh(x)
Arcoseno hiperbolico de x
cos(x)
Coseno de x
acos(x)
Arcocoseno de x
cosh(x)
Coseno hiperblico de x
acosh(x)
Arco coseno hiperblico de x
tan(x)
Tangente de x
atan(x)
Arcotangente de x
tanh(x)
Tangente hiperbolico de x
atanh(x)
Arcotangente hiperbolico de x
cot(x)
Cotangente de x
sec(x)
Secante de x
csc(x)
Cosecante de x

>> x=[1,2,3 ; 9,8,7];


>> sin(x)
ans =
0.8415
0.4121

0.9093
0.9894

0.1411
0.6570

los corchetes se utilizan para definir una variable con multiples valores
>> x=[0.8, 0.9, 0.1; 0.8, 0.9, 0.1; 0.4, 0.9, 0.6];
>> z=asin(x)
>> y=sech(x)

Otras Funciones Matematicas


Abs(x)
Valor absoluto de x

39
sqrt(x)
real(x)
imag(x)
sign(x)
exp(x)
log(x)
log10(x)
log2(x)
min(x)
max(x)
sort(x)
Sum(x)
Num2str(x)
Str2double(x)
ceil(x)
conj(x)
angle(x)
Fix(x)
floor(x)
rem(x,y)
Round(x)

Ruiz cuadrada de x
Parte real de un numero complejo x
Parte imaginaria de un numero complejo x
Funcin signo: devuelve el signo del argumento ,
p.e.,sign(1.2)=1, sing(-23.4)=-1, sing(0)=0
Exponencial ex
Logaritmo natural de x
Logaritmo decimal de x
Logaritmo en base 2 de x
Devuelve el valor minimo de un arreglo x
Devuelve el valor maximo de un arreglo x
Ordena elementos del arreglo x ascendentemente
Suma de todos los elementos de un arreglo x
Convierte en cadena el numero x
Convierte en numero real la cadena x
Redondea hacia mas infinito
Complejo conjugado
Angulo de un numero complejo
Redondea hacia cero
Redondea hacia menos infinito
Restos despus de la divisin: rem (x,y) da resto de x/y
Redondea hacia el entero mas prximo

>> x=[-1,5,-3, - 9];


>> abs(x)
>> x=3 + 2i;
>> imag(x)
>> real(x)
>> x=[2,1,7, 0];
>> sort(x)
>> sort([2,1,7, 0]')
Nmeros complejos
Para ilustrar los nmeros complejos, considere la ecuacin cuadrtica ax2 +bx+c=0.
Los valores de x donde esta ecuacin es cierta, i.e.. las races de estas ecuaciones vienen
dadas por:

x1,x2 =

b2
2a

4ac

si a=1, b=5 y c=6, la solucin se puede encontrar utilizando MATLAB como:


>>a=1; b=5; c=6;
>>x1 =(-b+sqrt(b^2-4*a*c))/(2*a)
x1 =
-3
>>x2 =(-b-sqrt(b^2-4*a*c))/(2*a)
x2 =
-2
>>a*x1 ^2+b*x1 +c %sustituir x1 para comprobar respuesta
ans=

40
0
>>a*x2 ^2+b*x2 +c %sustituir x2 para comprobar la respuesta
ans=
0
Las dos ltimas rdenes se utilizaron para confirmar los resultados. En este caso el termino
de la raz cuadrada es positivo y las dos races son nmeros reales. Sin embargo, si a=1,
b=4, c=13 las soluciones son:
x1= -2+3
x2= -2-3

1
1

1 no se puede simplificar ms y como resultado de esto se dice que las


El trmino
soluciones son complejas. Los trminos -2 en x1 y x2 son las partes real de la solucin. Los
trminos 3 y -3 son las partes imaginarias de la soluciones.
>>a=1; b=4; c=13;
>>x1 =(-b+sqrt(b^2-4*a*c))/(2*a)
x1 =
-2.0000 + 3.0000i
>>x2 =(-b-sqrt(b^2-4*a*c))/(2*a)
x2 =
-2.0000 - 3.0000i
>>a*x1 ^2+b*x1 +c %sustituir x1 para comprobar respuesta
ans=
0
>>a*x2 ^2+b*x2 +c %sustituir x2 para comprobar respuesta
ans=
0

1 , se puede emplear
En ingeniera normalmente se asocia la letra j en lugar de la i con
tambin esta para representar la parte imaginaria. Ejemplos de los nmeros complejos son:
>>c1=1-2i
>>c1=1-2j % j tambin funciona
>>c2=3*(2-sqrt(-1)*3)
>>c3=sqrt(-2)
>>c4=6+sin(.5)*i
>>c5=6+sin(.5)*j
>>c6= (c1+c2)/c3 % de los datos anteriores
c6=
-7.7782 -4.9497i
>>check_it_out=i^2 %sqrt(-1) al cuadrado debe ser -1!
Check_it_out=
-1.0000 + 0.0000i
>>check_it_out=real(check_it_out) %muestra la parte real
check_it_out=
-1
En general, operaciones sobre nmeros complejos conduce a nmeros complejos. As
pues, incluso aunque i2 = -1 es estrictamente real, MATLAB mantiene la parte imaginaria
igual a cero. Tal como se muestra en la, la funcin real, MATLAB extrae la parte real de un
nmero complejo.
Funciones Reales

41

Funcin
eval(f)
fplot(f, [a,b] )
fzero(f, a )
trapz(x,f)

Descripcin
Evala una funcin en los valores de x.
Grafica la funcin en el intervalo [a,b]
Calcula la raiz de la funcin f, partiendo del valor a.
Calcula el are de la regin plana limitada por f en el intervalo [a,b], donde
a es el primer valor de x y b el ltimo valor de x, x debe ser una variable
con mltiples valores ordenados en orden creciente.

>>funcion= '3*x.^2-5';
>>x=[1 2 4];
>>eval(funcion)
ans = -2

43

>>fplot(funcion,[0,4]); % grafica la funcin


>>z=fzero(funcion,2) % calcula la raiz partiendo de 2
ans =

1.2910

>> x=[0 0.2 0.4 0.6 0.8 1] % tambien puede ser x=[0:0.1:1]
>> funcion= x.^2
>> area=trapz(x,funcion)
area =

0.3400

>> funcion= 'x.^2'


>>fplot(funcion,[0,1]); % grafica la funcin

MATRICES Y ARREGLOS
Arreglo.- Es un conjunto de nmeros, ordenados en filas y columnas.
>> x = [1,4,5,8; 5,0,0,2; 0,1,-7,3] % crea un arreglo de 3 filas por 4 columnas
x=
1
5
0

4
0
1

5
0
-7

8
2
3

>> x = [1,2,10,3] % crea un arreglo unidimensional


>> x (3) % nos devuelve el elemento ubicado en la tercera posicin.
>> x = [1; 8; 3; 4] % crea un arreglo en una columna.
>> x = 1 : 0.5: 4 % crea un arreglo de una razon constante.
>> x(8) = 6 % adiciona un elemento a la matriz x en la octava posicin.
Arreglos Bidimensionales

42

>> x = [1,4,5,8; 5,0,0,2; 0,1,-7,3] % crea un arreglo de 3 filas por 4 columnas


>> x(2,3) % visualiza el elmento de la segunda fila y tercera columna.
>> x(1,:) % visualiza todos los elementos de la primera fila.
>> x(:,3) % visualiza todos los elementos de la tercera columna.
Operadores Aritmeticos de Arreglos
Adicin de Arreglos.- Realiza la suma de los elementos de los arreglos de acuerdo a su
posicin.
>> a = [1,4; 5,2]
>> b = [2,1; 3,4]
>> c = a + b
c=

3
8

5
6

>> b = a +2 % suma 2 unidades a cada elemento del arreglo.


Sustraccin de Arreglos
>> a = [1,4; 5,2]
>> b = [2,1; 3,4]
>> d = a - b
Multiplicacin de Arreglos
>> a = [1,4; 5,2; 3,7]
>> b = [2,1; 3,4; 2,6]
>> e = a .* b
Multiplicacin de un Arreglos por un nmero
>> a = [1,4; 5,2; 3,7]
>> f = -2 * a
Divisin de Arreglos.- realiza el cociente de cada elemento de los arreglos de acuerdo a su
posicin.
>> a = [1,4; 5,2; 3,7]
>> b = [2,1; 3,4; 2,6]
>> g = a . / b
Matriz.- Es un arreglo rectangular de nmeros reales o complejos ordenados en filas y
columnas.
Producto de Matrices
>> F=[3 -2 7; 6 5 4; 0 4 9] % matriz de orden 3x3
F=
3 -2 7

43
6
0

5
4

4
9

>> G=[1 7; 0 4; 2 9] % matriz de orden 3x2


G=
1 7
0 4
2 9
>> H=F*G
H=
17 76
14 98
18 97
3(1)-2(0)+7(2)=17
3(7)-2(4)+7(9)=76

6(1)+5(0)+4(2)=14
6(7)+5(4)+4(9)=98

0(1)+4(0)+9(2)=18
0(7)+4(4)+9(9)= 97

otro ejemplo
>> A=[2 3 1; 1 -1 1; 0 2 2]
>> B=[1 2 1; -1 2 -1; 2 0 2]
>> C=A*B
C=
1 10 1
4 0 4
2 4 2
Transpuesta de una Matriz .- La matriz transpuesta se obtiene intercambiando filas por
columnas.
>> A=[1 -3 0 -2; 3 -12 -2 -6; -2 10 2 5; -1 6 1 3]
A=
1 -3
3 -12
-2 10
-1
6

0
-2
2
1

-2
-6
5
3

>> Y=A'
Y=
1 3 -2 -1
-3 -12 10 6
0 -2 2 1
-2 -6 5 3
>> I=[1 0 0; 0 1 0; 0 0 1] % matriz identidad de tercer orden
Inversa de Matrices
>> B=[22 -6 -26 17; -17 5 20 -13; -1 0 2 -1; 4 -1 -5 3]
B=
22
-17
-1

-6 -26 17
5 20 -13
0
2 -1

44
4

-1

-5

>> Y=inv(B)
Y=
1.0000 2.0000 3.0000 4.0000
2.0000 3.0000 1.0000 2.0000
1.0000 1.0000 1.0000 -1.0000
1.0000
0
-2.0000 -6.0000

Determinante de una Matriz


>> a=[4 -3; 1 2];
>> d=det(a)
d = 11
>> A=[3 -1 0 2; -1 -2 3 4; 7 4 4 0; 1 0 0 5];
>> D=det(A)
D = -401

>> a=[28 25 38; 42 38 65; 56 47 83]


>> det(a)
ans = 770
>> a=[1/2 1/2 1 1/2; -1/2 1/2 0 1/2; 2/3 1/3 1/3 0; 1/3 1 1/3 0]
>> det(a)
ans = 0.1667
Rango de un Matriz: .- El rango de una matriz es igual al nmero de filas no nulas que
quedan en la ltima iteracin de las sucesivas transformaciones elementales que se hacen
con la matriz.
>> C=[0 -2 4;1 4 -5;3 1 7;0 1 -2;2 3 0]
>> Z=rank(C)
Z= 2
Matrices especiales:
eye(m): Genera una matriz identidad de orden m x m.
>> A=eye(3)
A=
1 0 0
0 1 0
0 0 1
zeros(m,n): Genera una matriz m x n.
>> B=zeros(3,2)
B=
0 0
0 0
0 0
ones(m,n): Genera una matriz de unos de orden m x n.

45
>> A=ones(2,3)
A=
1 1 1
1 1 1
magic(n): Genera una matriz cuya suma de los elementos de sus filas, columnas y
diagonales da como resultado un mismo valor.
>> A=magic(3)
A=
8 1 6
3 5 7
4 9 2
>> A=magic(4)
A=
16 2 3 13
5 11 10 8
9 7
6 12
4 14 15 1
Funciones en Matrices :
diag(A).- Devuelve los elementos de la diagonal de una matriz cuadrada.
>> A=[1 -3 0;3 -2 -6;10 2 5]
A=
1 -3 0
3 -2 -6
10 2 5
>> B=diag(A)
B=
1
-2
5
sum(A).- Devuelve la suma obtenida en cada una de las columnas de la matriz A.
>> A=[1 -3 0;3 -2 -6;10 2 5]
A=
1 -3 0
3 -2 -6
10 2 5
>> H=sum(A)
H=
14 -3 -1
rand(n).- Genera una matriz de orden n x n en forma aleatoria, donde sus cuyos
elementos son uniformemente distribuidos en el intervalo (0,1).
>> Y=rand(3)
Y=
0.0196 0.8318
0.6813 0.5028
0.3795 0.7095

0.4289
0.3046
0.1897

46
rref(A).- Devuelve en forma cannica la matriz A.
>> A=[1 -3 0;3 -2 -6]
A=
1 -3 0
3 -2 -6
>> S=rref(A)
S=
1.0000
0 -2.5714
0 1.0000 -0.8571

find(A).- Devuelve los ndices de los elementos de la matriz A que no son cero,
enumerndolos en forma vertical.
>> A=[12 -31 0;13 0 -16]
A=
12 -31 0
13 0 -16
>> G=find(A)
G=
1
2
3
6
cross(u,v).- Calcula el producto vectorial entre dos vectores u y v de R3.
>> u=[2 -5 1]
>> v=[3 1 -4]
>> cross(u,v)
ans = 19 11

17

eig(A).- Calcula los valores y vectores propios de la matriz A.


>> A=[1 2; 3 4]
>> [V, D]= eig(A)
V=
-0.8246 -0.4160
0.5658 -0.9094

D=
-0.3723
0
0
5.3723
Donde V es una matriz que contiene a los vectores propios ordenados en columnas y D es
una matriz diagonal que contiene los valores propios.
length(u).-Calcula la dimensin del vector u.
>> u=[13 -5 1]
>> length(u)
ans =
3

47

size(A).- Calcula la dimensin de la matriz A.


>> A=[4 1 3;-5 2 1]
>> size(A)
ans = 2 3
>> D=[3;1;0;15;8]
>> size(D)
ans = 5 1
GRAFICA DE UNA MATRIZ:
>> b=[3 4 5 6 8 6 5 6 7]
>> plot(b)
>> grid on
>> title('Grafico de una matriz')

Concatenacion de Matrices: Es un proceso para generar un matriz nueva uniendo uno


o mas matrices con el operador [ ].
>> A=[1 2 -5; 2 1 7]
>> B=[3 9; 0 1]
>> C=[A,B] % concatena horizontalmente las matrices D y E
C=
1
2

2
1

-5
7

3
0

9
1

>> D=[6 -1 5;0 1 12]


>> E=[3 2 2; 6 1 7; 5 2 -8]
>> F=[D; E] % concatena verticalmente las matrices D y E
F=
6 -1 5
0 1 12
3 2 2
6 1 7
5 2 -8
Funciones de concatenacin de matrices:
horzcat.- Concatena matrices horizontales.
>> A=[8 1 6;3 5 7];;
>> B=[4 13 2 1;6 7 0 11];
>> horzcat(A,B)
ans =
8 1 6 4 13 2 1
3 5 7 6 7 0 11
vercat.- Concatena matrices verticalmente.
>> A=[8 1 6;3 5 7;4 9 2];

48
>> B=[4 13 1;6 0 11];
>> C=vertcat(A,B)
C=
8 1 6
3 5 7
4 9 2
4 13 1
6 0 11

49
EJEMPLOS ILUSTRATIVOS
1. Presentacin de la matriz de Hilbert de orden 2 con cinco dgitos decimales.
>> vpa(hilb(2),5)
ans =
[ 1., .50000]
[ .50000, .33333]
2. Definimos una matriz simbolia y calculamos su determinante.
>> syms a x
>> A=[cos(a*x),sin(a*x);-sin(a*x),cos(a*x)]
A=
[ cos(a*x), sin(a*x)]
[ -sin(a*x), cos(a*x)]
>> det(A)
ans =
cos(a*x)^2+sin(a*x)^2
3. Calculamos la inversa de la matriz anterior.
>> inv(A)
ans =
[ cos(a*x)/(cos(a*x)^2+sin(a*x)^2), -sin(a*x)/(cos(a*x)^2+sin(a*x)^2)]
[ sin(a*x)/(cos(a*x)^2+sin(a*x)^2), cos(a*x)/(cos(a*x)^2+sin(a*x)^2)]
4. Resolvemos la ecuacin x4+1=0 y presentamos el resultado en escritura matemtica
habitual.
>> solve('x^4+1=0')
ans =
1/2*2^(1/2)+1/2*i*2^(1/2)
-1/2*2^(1/2)+1/2*i*2^(1/2)
1/2*2^(1/2)-1/2*i*2^(1/2)
-1/2*2^(1/2)-1/2*i*2^(1/2)
>> pretty(solve('x^4+1=0'))
[
1/2
1/2
[ 1/2 2 + 1/2 i 2
[
[
1/2
1/2
[- 1/2 2 + 1/2 i 2
[
[
1/2
1/2
[ 1/2 2 - 1/2 i 2
[
[
1/2
1/2
[- 1/2 2 - 1/2 i 2

]
]
]
]
]
]
]
]
]
]
]

5. Calcular mediante los mtodos aproximados de Simpson y lobato la integral siguiente

50
Para la solucin mediante el mtodo de Simpson tenemos:
>> quad(inline('2+ sin(2*sqrt(x))'),1,6)
ans = 8.1835
Para la solucin mediante el mtodo de lobato tenemos:
>> quadl (inline('2+ sin (2*sqrt (x))'),1,6)
ans = 8.1835

6. Calcular el rea comprendida bajo la curva normal (0,1) entre los limites -1.96 y 1.96

Se trata de calcular el valor de la integral


El clculo se realiza mediante matlab utilizando el mtodo aproximado de lobato como
sigue:
>> quadl(inline('exp(-x.^2/2)/sqrt(2*pi)'),-1.96,1.96)
ans = 0.9500

7. Calcular el volumen del hemisferio definido en [-1,1] x[-1,1]


f(x,y)=
>> dblquad(inline('sqrt(max(1-(x.^2+y.^2),0))'),-1,1,-1,1)
ans =
2.0944
El clculo tambin pudo haberse hecho asi:
>> dblquad(inline('sqrt(1-(x.^2+y.^2)).*(x.^2+y.^2<=1)'),-1,1,-1,1)
ans =
2.0944
8. Evaluar la integral doble siguiente:

>> dblquad(inline('1./(x+y).^2'),3,4,1,2)
ans = 0.0408
9.

Calcular los lmites de las funciones siguientes:

>> syms x a
>> limit((x-1)/(x^(1/2)-1),x,1)

por la funcin

51
ans = 2
>> limit((x-(x+2)^(1/2))/((4*x+1)^(1/2)-3),2)
ans = 9/8
10. Calculamos la derivada de la function log(sen(2x)).
>> pretty(diff('log(sin(2*x))','x'))
cos(2 x)
2 -------sin(2 x)
>> pretty(simple(diff('log(sin(2*x))','x')))
2
-------tan(2 x)

EJERCICIOS PROPUESTOS
1. Resuelva el sistema:
2x + 3y = 4
5x 2y = 6
2. Resuelva la ecuacin cbica 5x3 + 2x2 - 3x + 1 = 0;

3. Obtenga la solucin de la ecuacin diferencial ordinaria: y-x-y = 0, y(0)=1

4. Integre la funcin f(x) = x sen(x)

5. Con cuantos decimales muestra el resultado el comando :


>> format long

6. Con cuanto decimals se muestra el resultado?


>> vpa(sqrt(2), 100)
7. Cual es el resultado de lo sigiente?
>> 2/0
8. Indique el tipo de variable en cada caso:
>> x=3

52
>> x='mensaje'
>> syms x
>> x=[2 7 4]
>> x=2+3i

9. Indique que realiza cada uno de estos comandos:


>> clear a b c
>> clc
>> pwd

10. Indique el tipo de variable en cada caso:


>> save prueba
>> load prueba
>> delete prueba.m
>> quit

53
EVALUACION
1. Indique le tipo de matriz:
>> a=ones(5)
2. Indique le tipo de matriz:
>> a=eye(5)
3. Indique lo que genera cada comando:
>> x=rand
b=rand(4,5)
4. Que nos muestra los siguientes comsndos?
>> a=[3, 2; 1, 4];
>> b=[8, 6; 5, 7];
>> c=a'

5. Que evala los siguientes comandos?


>> a=[2, -3, 0, 5]
>> y=polyval(a,4)
6. Que realiza los siguientes comandos?
>> x=[1 2 4 5 7];
>> y=[5 3 6 7 4];
>> a=polyfit(x,y,2);
7. Que realiza el siguiente comando?
>> u=diff(f)

8. Que realiza el siguiente comando?


>> v=int(f)

9. Que realiza el siguiente comando?


>> r=int(f, 0, 2)

10. Dar un ejemplo de aplicacin con cada uno de los siguientes comandos?
>>input
>>disp

54

Bibliografia Referencial
1. NAKAMURA, SHOICHIRO Analisis Numrico y Visualizacin con Matlab. Editorial
Prentice may. Mxico. 1997.
2. MORALES MARCHENA, HERN. Mtodos numricos y Visualizacin Grfica Editorial
Megabit. Peru. 2005.
3. PEREZ, CESAR Matlab y sus Aplicaciones en las Ciencias y la Ingeniera Editores
Prentice. Espaa. 2002 .

55
CAPITULO IV
GRAFICAS CON MATLAB
OBJETIVOS: El participante aprender a hacer grficos con el Matlab

CONTENIDOS: Graficos en el plano, graficos bidimensioanles y grficos tridimensionales.

Matlab ofrece una gama amplia de opciones a la hora de realizar representaciones


grficas. Permite realizar grficos de curvas planas y superficies, posibilitando la
agrupacin y superposicin.
Grficos en el Plano
Comandos
plot(x,y)
bar(x,y)
barh(x,y)
stem(x,y)
stairs(x,y)
polar(x,y)
pie(x)
rose(x)

Descripcin
Grafica el conjunto de puntos (x,y) en un sistema
cartesiano
Grafico de barras vertical, donde y representa la
frecuencia y x define los espacios en el eje x.
Grafico de barras horizontal.
Grafico de bastones verticales.
Grafica una curva escalonada.
Dibuja una curva en coordenadas polares. y=y(x)
Realiza el grafico de sectores relativo al vector x.
Dibuja el histograma angular relativo al vector x.

Los grficos son una poderosa forma visual de interpretar datos. Realizar la grfica de una
funcin seno durante un perodo, por ejemplo:
y = sin(x) para 0<=x<=2pi.
En primer lugar, creamos 30 puntos entre 0 y 2pi.

1
0.8
0.6
0.4

>> x = linspace(0,2*pi,30) ; % crea 30 puntos entre 0 y 2pi.


>> y = sin(x);
% calcula el seno de los puntos en x.
>> plot(x,y)
% la orden plot genera una grafica :

0.2
0

-0.2
-0.4
-0.6
-0.8
-1

Se pueden graficar al mismo tiempo muchas curvas suministrando parejas adicionales de


argumentos a plot.

1
0.8
0.6
0.4

>> x = linspace(0,2*pi,30) ;
>> y = sin(x);
>> z = cos(x) ;
>> plot(x,y,x,z)

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

56

El siguiente ejemplo ilustra la identidad trigonomtrica 2sin(a)cos(a) = sin2(a). La grfica de


2sin(a)cos(a) se representa utilizando lneas i trazos.
>> plot(x,y,x,2*y.*z,'r*')
>> grid % para colocar una rejilla en los puntos marcados sobre los ejes
>> xlabel(Variable Independiente x) % para colocar una etiqueta sobre el eje x
>> ylabel ( Variable dependiente) % para colocar una etiqueta sobre el eje y
>> title ( 2sin(x)cos(x) = sin(2x) ) % para colocar un titulo sobre la grafica actual
2sin(x)cos(x) = sin(2x)
1
0.8
0.6

Variable Dependiente

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

3
4
Variable Independiente X

Estilo de lneas, marcadores y colores


Con MATLAB se puede especificar los colores y los estilos de lnea que necesita dando un
argumento adicional a plot despus de cada pareja de arrays de datos. El argumento
opcional adicional es una cadena de caracteres formada por 1, 2 3 caracteres de la tabla
siguiente:
Smbolo
y
m
c
r
g
b
w
k

Color
amarillo
magenta
turquesa
rojo
verde
azul
blanco
negro

>> plot(x,y,'bo',x,z,'r--',x,y,'k*',x,z,'c.')

Smbolo
.
o
x
+
*
*
:
-.
--

Estilo de lnea
punto
crculo
marca - x
ms
estrella
lnea slida
lnea punteada
lnea punto-raya
lnea de trazos

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

57

Para aadir una etiqueta identificando


la curva del seno en la localizacin (2.5,0.7):

sine and cosine curves


1
0.8
sin(x)
0.6

dependent variable y and z

>> text (2.5,0.7,sin(x))

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

3
4
indepent variable x

grafico de y=sin(x. 2
1
0.8
0.6

>> x=-1 :0.1 :5;


>> y=sin(x.^2);
>> plot(x,y)
>> grid on
>> title('grafico de y=sin(x.^2)')

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1

histograma de una curva en forma de campana de datos gausianos:


grafico de Barras
1
0.9

>> x=-3 :0.2 :3;


>> y=exp(-x.^2);
>> bar(x,y)
>> grid on
>> title('grafico de Barras')

0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-4

-3

>> x=-2.9:0.2:2.9;
% especifica los elementos a usar
>> y=randn(5000,1); % crea 5000 puntos aleatorios
>> hist(y,x)
% dibuja el histograma
>> title('Histograma de Datos Gausianos')

-2

-1

Histograma de Datos Gausianos


450
400
350
300
250
200
150
100

grafico Barras Horizontal

4
50

>> x=-3 :0.2 :3;


>> y=cos(-x.^3)-2*x+1;
>> barh(x,y);
>> grid on
>> title('grafico Barras Horizontal')

0
-3

-2

-1

2
1
0
-1
-2
-3
-4
-6

-4

-2

58

grafico tipo stairs


1
0.8
0.6

>> x=0 :0.2 :10;


>> y=sin(x);
>> stairs(x,y);
>> grid on
>> title('grafico tipo stairs')

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10

grficos en coordenadas polares utilizando la orden polar (t, r), donde t es el vector de
ngulos en radianes, r es el radio vector
Polar Plot of sin(2t)cos(2t)

>> t=0 : .01 : 2*pi;


>> r=sin(2*t).*cos(2*t);
>> polar(t,r)
>> title('Coordenadas Polares de: sin(2t)cos(2t))

90

0.5

120

60
0.4
0.3

150

30
0.2
0.1

180

210

330

240

300
270

>> y=randn(50,1); % crea algn dato aleatorio


>> stem(y,':')
% dibuja una grfica stem con lnea punteada
>> title('Grafico Stern de datos aleatorios')

Ploteo de la Barra de Error


1.2

Ploteo Stern de Datos Aleatorios


3
1

0.8

0.6

0.4

0.2

-1
0

-2
-0.2
-0.5 puntos.
0
0.5
1
2.5
Una grfica puede incluir barras de error en los
errorbar
(x,1.5 y, e)2 representa.
la

-3

0
5
10
15
20
30
35
40
45
50
grfica
del
vector
x 25frente
al vector
y con barras de error especificadas por el vector e.

Todos los vectores deben tener la misma longitud. Para cada punto (xi,yi), se dibuja una
barra de error una distancia ei por encima y ei por debajo del punto.
>> x=0:0.1:2; % crea un vector
>> y=erf(x); % y es la funcin error de x
>> e=rand(size(x) )/10; % genera valores de error aleatorios
>> errorbar(x,y,e) % crea la grfica
>> title('Errorbar Plat')

59

Se pueden representar datos complejos usando compass y feather. Compass (z) dibuja
una grfica que visualiza el ngulo y la magnitud de los elementos complejos de z como
flechas que emanan del origen. Feather (z) representa los mismos datos usando flechas
que emanan de puntos igualmente espaciados sobre una lnea horizontal.
compass (x,y) y feather (x,y) son equivalentes a compass (x+i*y) y feather (x+i*y).
>> z=eig(randn(20,20));
>> compass (z)
>> title('Compass Plot of the Eigenvalues of a Random Matrix')

>> feather (z)


>> title (Feacther Plot of Eigenvalues of a Random Matrix)
Feacther Plot of Eigenvalues of a Random Matrix
4

Compass Plot of the Eigenvalues of a Random Matrix


90

120

60
4

150

30
1

180

0
-1
-2

210

330
-3

240

300

-4
-5

10

15

20

25

270

La orden subplot (m, n, p) subdivide la ventana de la figura actual en una matriz mxn de las
reas de representacin grfica y escoge como activa el rea p-sima. Las subgrficas se
numeran de izquierda a derecha a lo largo de la lila superior, luego la segunda fila, etc. por
ejemplo:

% ejemplo de Grafico en multiples ejes

>> x=linspace(0,2*pi,30);
>> y=cos(x);
>> z=sin(x);
>> a=y.*z+58;
>> f=tan(x);
>> g=z+a+f;
>> u=y.*z.*a;
>> subplot(3,2,1), plot(x,y,'r-'), title( 'Grafico No 1' );
>> subplot(3,2,2), plot(x,z,'mo'), title( 'Grafico No 2' );
>> subplot(3,2,3), plot(x,a,'g*'), title( 'Grafico No 3' );
>> subplot(3,2,4), plot(x,f,'b+'), title( 'Grafico No 4' );
>> subplot(3,2,5), plot(x,g,'k--'), title( 'Grafico No 5' );
>> subplot(3,2,6), plot(x,u,'c:'), title( 'Grafico No 6' );

60

Grafico No 1

Grafico No 2

-1

-1

Grafico No 3
20

58

-20

Grafico No 5
50

50

Grafico No 6

100

Grafico No 4

58.5

57.5

-50

Grfica de Superficies
Plot3(x,y,z) : Realiza una grafica de un conjunto de puntos x,y,z en un sistema de 3
dimensiones.
El ejemplo siguiente genera una grafica 3-D con una rejilla.
>> x = linspace(0,2*pi,30) ; % crea 30 puntos entre 0 y 2pi.
>> y = sin(x);
% calcula el seno de los puntos en x.
>> z = cos(x) ;
>> plot3(y,z,x), grid

>> t = -8:0.2:8 ; % crea puntos entre -8 y 8.


>> x = t;
>> y = 3-t ;
>> z=cos(t);
>> plot3(x,y,z), grid

0.5

-0.5

-1
15
10

10
5

-5
-5

-10

mesh(x,y,z) : Grafica una superficie explicita z=f(x,y) con los arreglos x, y e z.

61

Z=X.*exp(-x. 2 y. 2)

>> [x,y] = meshgrid(-2:0.2:2);


>> z = x.*exp(-x.^2-y.^2)
>> mesh(x,y,z)
>> title('Z=X.*exp(-x. ^2 y.^2)');

0.5

-0.5
2
1

2
1

-1

-1
-2

-2

cylinder('f') : Grafica una superficie de revolucin generada por la rotacin de la funcin


f=f(t) en el intervalo definido para t.
2 + sin( t )

explicita z=f(x,y) con los arreglos x, y e z.


1
0.8
0.6
eje z

>> t = 0:0.2:7 ;
>> cylinder(2+sin(t));
>> title(' 2 + sin( t )');
>> xlabel('eje x') ; ylabel('eje y') ; zlabel('eje z')

0.4
0.2
0
4
2

4
2

-2
eje y

-2
-4

-4

eje x

62
EJERCICIOS PROPUESTOS

1.

Realizar el siguiente grfico.


function y=prueba(x)
y = 1./((x-.3).^2+.01)+1./...
((x-.9).^2+.04)-6;

>> x=-1:0.1:2;
>> plot(x,prueba(x))

2.

Realizar el siguiente grfico con los datos que Ud. sugiera.

3.

Ingrese los datos para realizar el siguiente grfico.

90

120

60
1.5
1

150

30

0.5

180

210

330

240

300
270

63
EVALUACION
1. Realizar el grafico en coordenadas polares de la siguiente ecuacin:

r2

cos2

2. Grfica la circunferencia con centro en el origen:


x2

y2

16

3. Grafica la siguiente hiprbola con eje focal en el eje x:

x2
4

y2
9

4. Grfica la siguiente parbola con el eje focal en x:


x

1 / 4( y 2 )

5. Grfica la elipse con el eje focal x:

x2
20

y2
6

6. Grfica la siguiente funcin:

7. Grfica la siguiente funcin:


f(z) = z2

8. Grfica los resultados de unas elecciones con 5 participantes en un


grfico tipo pastel.

9. Realiza con los datos anteriores un diagrama de sectores 3D.

10. Realizar un grfico para generar un histograma con 1000 nmeros aleatorios
siguiendo la normal N(0; 1)

64
Bibliografa Referencial

1. PEREZ, CESAR Matlab y sus Aplicaciones en las Ciencias y la Ingeniera Editores


Prentice. Espaa. 2002 .
2. NAKAMURA, SHOICHIRO Analisis Numrico y Visualizacin con Matlab. Editorial
Prentice may. Mxico. 1997.
3. MORALES MARCHENA, HERN. Mtodos numricos y Visualizacin Grfica
Editorial Megabit. Peru. 2005.

65
CAPITULO V
PROGRAMACION EN MATLAB
OBJETIVOS: El participante aprender a hacer programas en el Matlab
CONTENIDOS: Estructuras de control secuencial, bucles, bifurcaciones, sentencia if
end, for end, while end, case end,

PROGRAMACIN INFORMTICA
Programacin informtica, accin de programar, es decir, de establecer una serie de
instrucciones para que el ordenador o computadora ejecute una tarea.
Previamente hay que realizar una serie de trabajos que tienen por objeto la definicin de la
tarea, el anlisis de la informacin que se quiere obtener (informacin de salida) y de los
datos que se precisan para ello (informacin de entrada), y el establecimiento del algoritmo,
o procedimiento de clculo, que va a permitir transformar una informacin en otra. Para
esta labor de anlisis, el programador utiliza una serie de herramientas, entre las que
destacan los diagramas de flujo y las tablas de decisin.
Resuelto del problema desde el punto de vista lgico, se utiliza un lenguaje de
programacin para codificar la secuencia de instrucciones que el ordenador debe ejecutar
para realizar la tarea.
Escrito el programa, hay que verificarlo, es decir, someterlo a pruebas que determinen si
puede realizar la tarea prevista, lo que se consigue simulando situaciones que se puedan
comprobar; a esto se le denomina depuracin. Una vez verificado, el programa se debe
optimizar, con el fin de utilizar los recursos del sistema del modo ms eficiente.

PROGRAMACIN EN MATLAB
MATLAB es una aplicacin que se puede programar muy fcilmente. De todas formas,
como lenguaje de programacin pronto ver que no tiene tantas posibilidades como otros
lenguajes (ni tan complicadas...). Se comenzar viendo las bifurcaciones y bucles, y la
lectura y escritura interactiva de variables, que son los elementos bsicos de cualquier
programa de una cierta complejidad, previo a ingresar a esta este capitulo se considera
que ya se cuenta con los conocimientos bsicos del matlab.

Bifurcaciones y bucles

66

MATLAB posee un lenguaje de programacin que como cualquier otro lenguaje dispone
de sentencias para realizar bifurcaciones y bucles.

Las bifurcaciones permiten realizar una u otra operacin segn se cumpla o no una
determinada condicin.
La Figura muestra tres posibles formas de bifurcacin.

Los bucles permiten repetir las mismas o anlogas operaciones sobre datos distintos. el
Matlab utiliza la palabra end para finalizar el bucle.

La Figura muestra dos posibles formas de bucle, con el control situado al principio o al final
del mismo. Si el control est situado al comienzo del bucle es posible que las sentencias no
se ejecuten ninguna vez, por no haberse cumplido la condicin cuando se llega al bucle por
primera vez.

Sin embargo, si la condicin est al final del bucle las sentencias se ejecutarn por lo
menos una vez, aunque la condicin no se cumpla. Muchos lenguajes de programacin
disponen de bucles con control al principio (for y while en C/C++/Java) y al final (do
while en C/C++/Java).
En MATLAB no hay bucles con control al final del bucle, es decir, no existe la construccin
anloga a do... while.

67

Las bifurcaciones y bucles no slo son tiles en la preparacin de programas o de ficheros


*.m. Tambin se aplican con frecuencia en el uso interactivo de MATLAB, como se ver
ms adelante en algunos ejemplos.

FUNCIN INPUT
La funcin input permite imprimir un mensaje en la lnea de comandos de MATLAB y
recuperar como valor de retorno un valor numrico o el resultado de una expresin
tecleada por el usuario.
>> n = input('Teclee el nmero de ecuaciones:' )
Teclee el nmero de ecuaciones: 5
n= 5
Otra posible forma de esta funcin es la siguiente (obsrvese el parmetro 's'):
>> nombre = input('Cmo te llamas?','s') %s indica que la entrada que se hara
por teclado es una cadena.
Cmo te llamas? Walter Fuentes Lopez
nombre = Walter Fuentes Lopez
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo
que se almacena en la cadena nombre. As pues, en este caso, si se teclea una frmula,
se almacena como texto sin evaluarse.
FUNCIN DISP
La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz,
pero sin imprimir su nombre.
En realidad, disp siempre imprime vectores y/o matrices: Las cadenas de caracteres son
un caso particular de vectores. Considrense los siguientes ejemplos de cmo se utiliza:
>> disp(' El programa ha terminado ')
>> A= rand(4,4)
>> disp(A)
Ejectense las sentencias anteriores en MATLAB y obsrvese la diferencia entre las dos
formas de imprimir la matriz A.
>> a=[1:10];
>> b=[-10:-1];
>> disp([a;b])

68
Da como salida:
1
-10

2
-9

3
-8

4
-7

5
-6

6
-5

7 8 9 10
-4 -3 -2 -1

SENTENCIA IF ELSE END


En su forma ms simple, la sentencia if se escribe en la forma siguiente:
if condicin
sentencias
end
Existe tambin la bifurcacin mltiple, en la que pueden concatenarse tantas condiciones
como se desee, y que tiene la forma:
if condicin1
bloque de instrucciones 1
else if condicin 2
bloque de instrucciones 2
else if condicin n
bloque de instrucciones n
else % opcin por defecto para cuando no se
% cumplan las condiciones 1,2,n
bloque de instrucciones final
end
end
end

En esta estructura se ejecuta solamente el primer bloque de instrucciones cuyo valor lgico
sea uno. Si ninguno de los valores lgicos que aparecen es uno entonces MATLAB ejecuta
el bloque de instrucciones final.

Donde la opcin por defecto else puede ser omitida: si no est presente no se hace nada
en caso de que no se cumpla ninguna de las condiciones que se han chequeado.

Una observacin muy importante: la condicin del if puede ser una condicin matricial, del
tipo A==B, donde A y B son matrices del mismo tamao. Para que se considere que la
condicin se cumple, es necesario que sean iguales dos a dos todos los elementos de las
matrices A y B (aij = bij, 1

m, 1

n).

Basta que haya dos elementos aij y bij diferentes para que las matrices ya no sean iguales,
y por tanto las sentencias del if no se ejecuten. Anlogamente, una condicin en la forma
A-=B exige que todos los elementos sean diferentes dos a dos (aij bij, 1
n).

m, 1

69
Basta que hubiera dos elementos aij y bij iguales para que la condicin no se cumpla. En
resumen:
if A == B exige que todos los elementos sean iguales dos a dos.
if A ~= B exige que todos los elementos sean diferentes dos a dos.
Como se ha dicho, MATLAB dispone de funciones especiales para ayudar en el chequeo
de condiciones matriciales. Por ejemplo, la funcin isequal (A, B) devuelve un uno si las
dos matrices son idnticas y un cero en caso de que difieran en algo.

Ejemplo con If End


1) Programa que determina si el nmero ingresado por teclado es positivo, negativo o cero.
n=input(' ingresa un numero :');
if n==0;
' el numero es CERO '
else
if n>0
' el numero es POSITIVO '
else
' el numero es NEGATIVO '
end
end
2) Programa que determina si el nmero ingresado por teclado es par o impar.
n=input(' ingresa un numero :');
if n==0;
fprintf (' el numero ingresado es CERO ')
else
if rem(n,2)==0; %obtiene el resto de dividir n entre 2
fprintf (' el numero es PAR ')
else
fprintf (' el numero es IMPAR ')
end
end

4. SENTENCIA FOR END


La sentencia for repite un conjunto de sentencias un nmero predeterminado de veces. La
siguiente construccin ejecuta sentencias con valores de i de 1 a n, variando de uno en
uno.
for i = 1 : n
sentencias
end

70

for i = vector valores


sentencias
end
Donde vector valores es un vector con los distintos valores que tomar la variable i.

for a = 0 : 1 : t

v=[a, a^2,a^3]

for var = vector


sentencia 1
sentencia 2
...
sentencia n
end

for a=0 : 1 : t
v=[a, a^2,a^3]
end

En el siguiente ejemplo se presenta el caso ms general para la variable del bucle (valor _
inicial: incremento: valor _ final); el bucle se ejecuta por primera vez con i =n, y luego i se
va reduciendo de 0.2 en 0.2 hasta que llega a ser menor que 1, en cuyo caso el bucle se
termina:
for i = n : -0.2:1
sentencias
end
En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles
anidados. La variable j es la que vara ms rpidamente (por cada valor de i, j toma todos
sus posibles valores):
for i = 1 : m
for j = 1 : n
sentencias
end
end
Una ltima forma de inters del bucle for es la siguiente (A es una matriz):
for i = A
sentencias
end
En la que la variable i es un vector que va tomando en cada interaccin el valor de una de
las columnas de A.
Cuando se introducen interactivamente en la lnea de comandos, los bucles for se ejecutan
slo despus de introducir la sentencia end que los completa.

71

El siguiente ejemplo creara un bucle que despus realizar una suma de los 5 primeros
nmeros.
En un archivo m-file:
s=0;
for n=1:5
s=n+s;
disp([n s ])
end

salida

1
2
3
4
5

1
3
6
10
15

Realizar un programa haciendo uso de la instruccin for... end, para que presente en
pantalla la tabla de la suma de un nmero que se ingrese por teclado.
En un archivo m-file:

ingrese n:1

n=input('ingrese n:');
for i=0:12;
s=n+i;
disp([n,i,s])
end

1 0 1
1 1 2
1 2 3
1 3 4
1 4 5
1 5 6
1 6 7
1 7 8
1 8 9
1 9 10
1 10 11
1 11 12
1 12 13

En un archivo m-file: para presentar la tabla de la resta

clc
n=input('ingrese el numero:');
for m=n:n+12;
d=m-n;
disp([m n d])
end

ingrese el numero:5
5 5 0
6 5 1
7 5 2
8 5 3
9 5 4
10 5 5
11 5 6
12 5 7
13 5 8
14 5 9
15 5 10
16 5 11
17 5 12

72
5. SENTENCIA WHILE
El bucle while o bucle mientras es una estructura de la mayora de los lenguajes de
programacin estructurados cuyo propsito es repetir un bloque de cdigo mientras una
condicin se mantenga verdadera.
Java. Su sintaxis es la siguiente:
While condicin
Sentencias
end

Donde condicin puede ser una expresin vectorial o matricial.


Las sentencias se siguen ejecutando mientras haya elementos distintos de cero en
condicin, es decir, mientras haya algn o algunos elementos true.
El bucle se termina cuando todos los elementos de condicin son false (es decir, cero).

EJEMPLOS ILUSTRATIVOS
Programa que te permite obtener un tabla de multiplicacin

clc
n=input('ingrese el nmero:');
while n<=0; %restringe negativos y 0
n=input('ingrese el nmero:');
end
for f=1:12;%crea el factor multiplicador
p=n*f; %creacion de los productos
disp([n f p])
end

Programa para determinar el nmero de divisores


clc
n=input('ingrese valor:');

ingrese el nmero:5
5 1 5
5 2 10
5 3 15
5 4 20
5 5 25
5 6 30
5 7 35
5 8 40
5 9 45
5 10 50
5 11 55
5 12 60

73
c=0;%contador para el numero de divisores
for g=(1:n);
if mod(n,g)==0%bucle solo para resto 0
d=n;
c=c+1;
end
end
'el numero de divisores es'
disp([c])

ingrese valor:7
ans =
el numero de divisores es
2

Programa para hallar el factorial de un nmero


%programa para sacar el factorial de un nmero
clc
n=input('ingrese el numero:');%ingreso del nmero
fa=1;
while n<0;%restriccin para los negativos'
'el numero que ingreso es negativo no tiene factorial'
n=input('ingrese el numero:');
end
if n==0;%restriccin para el 0
Factorial=fa
else
for i=1:n;%bucle de multiplicacin hasta n
fa=fa*i;
if i==n;
Factorial=fa%resultado final
end
end
end
ingrese el numero:-5
ans =
el numero que ingreso es negativo no tiene factorial
ingrese el numero:5
Factorial =
120

Program para realizar un tabla de divisin


clc
n=input('ingrese el nmero:');
while n<=0
'el numero ingresado debe ser mayor que cero'
n=input('ingrese el nmero:');
end
for r=1:12;

74
D=n*r;
disp([D n r])
end
ingrese el nmero:-6
ans =
el numero ingresado debe ser mayor que cero
ingrese el nmero:5
5
5 1
10 5 2
15 5 3
20 5 4
25 5 5
30 5 6
35 5 7
40 5 8
45 5 9
50 5 10
55 5 11
60 5 12

Programa para convertir de grados Celsius a grados kelvin

%Programa para convertir grados celsius a kelvin


clc
n=input('ingrese n:');%grados celsius
d=n-5;
for n=d:n+5;
kelvin=n+273;%grados kelvin
disp([n kelvin])
end

ingrese n:10
5 278
6 279
7 280
8 281
9 282
10 283
11 284
12 285
13 286
14 287
15
288

Programa para hallar el tiempo de encuentro de dos mviles a una cierta distancia
clc
da=0;%distancia inicial del movil 1
db=0;%distancia inicial del movil 2
t=0;%contador para el tiempo
v1=input('ingrese velocidad del movil 1:');
while v1 <= 0%restringe velocidades negativas y 0
'ingrese velocidad positiva'
v1=input('ingrese velocidad del movil 1:');
end
v2=input('ingrese velocidad del movil 2:');
while v2 <= 0%restringe velocidades negativas y 0
'ingrese velocidad positiva'

75
v2=input('ingrese velocidad del movil 2:');
end
d=input('ingrese la distancia de separacion:');
while d <= 0%restringe distancias negativas y 0
'ingrese valores positivos'
d=input('ingrese la distancia de separacion:');
end
disp([t da db d])
while da+db<%Bucle hasta el encuentro
t=t+1;%creador del tiempo
da=v1*t;
db=v2*t;
disp([t da db d])%imprime los datos correspond.
end

ingrese velocidad del movil 1:20


ingrese velocidad del movil 2:30
ingrese la distancia de separacion:500
0 0 0 500
1 20 30 500
2 40 60 500
3 60 90 500
4 80 120 500
5 100 150 500
6 120 180 500
7 140 210 500
8 160 240 500
9 180 270 500
10 200 300 500

Programa para hallar la grfica de cualquier ecuacin con una sola variable
En un archivo m-file:
clc
x=linspace(-10,10,200);
a=input('ingrese ecuacion:','s')
fplot(a ,[-100 100])
El grfico que sale es:
ingrese ecuacion:x^2-5
a=
x^2-5

76

10000

8000

6000

4000

2000

-2000
-100

-80

-60

-40

-20

20

40

60

80

100

Programa para ordenar 3 nmeros en forma ascendente


%programa para ordenar 3 nmeros en forma ascendente
clc
n1=input('ingrese el primer nmero:');
n2=input('ingrese el segundo nmero:');
n3=input('ingrese el tercer numero:');
if n1 ~= n2 & n2 ~= n3;%restriccin para nmeros iguales
if n1>=n2 & n2>=n3;
disp([n3 n2 n1])
end
if n1>=n2 & n3>=n2 & n1>=n3;
disp([n2 n3 n1])
end
if n2>=n1 & n1>=n3;
disp([n3 n1 n2])
end
if n2>=n1 & n3>=n1 & n2>=n3;
disp([n1 n3 n2])
end
if n3>=n1 & n1>=n2;
disp([n2 n1 n3])
end
if n3>=n1 & n2>=n1 & n3>=n2;
disp([n1 n2 n3])
end
else
disp([n1 n2 n3])%en caso contrario si son iguales
end

Programa para hallar y mostrar los divisores de un nmero


%programa para hallar los divisores de un nmero
clc
n=input('ingrese el nmero :');%ingreso del nmero
while n<=1;%restriccin para el cero y negativos
'ingrese numeros mayores que 1'
n=input('ingrese el nmero:');
end
for g=1:n;

77
if rem(n,g)==0;%resto d divisin cero
disp([g])
end
end
Programa para saber si un nmero es primo mostrando sus divisores
%programa para hallar los divisores de un nmero
n=input('ingrese el nmero :')
c=0;%contador de los divisores
while n<=1;%restriccin para el cero y negativos
n=input('ingrese el nmero:');
end
for g=1:n;
if rem(n,g)==0;%resto d divisin cero
c=c+1;
disp([g])
end
end
if c==2
'primo'
else
'divisible'
end
Programa para saber si un nmero es perfecto mostrando sus divisores
n=input('ingrese el numero:');
while n<=1
n=input('ingrese el numero:');
end
D=n;
sum=0;
for d=1:n;
resto=rem(D,d);
if resto==0
sum=sum+d;
disp([d])
end
end
if sum==2*d;
'perfecto'
else
' no es perfecto'
end
Programa para promediar un nmero determinado de notas.
n=input('cuantas notas se va a promediar:');
while n<1;
'el numero de notas no es promediable'
n=input('cuantas notas se va a promediar:');
end
sum=0;
c=0;

78
nota=1;
while nota>-1 & nota<=20
while c<n
nota=input('ingrese nota:');
if nota>=0 & nota<=20
sum=sum+nota;
c=c+1;
end
end
nota=100;
end
p=sum/c;
'promedio:'
disp(p)
Programa para la divisin de nmeros hasta el 12
%programa para hallar la tabla de dividir hasta el 12
n=input('ingrese el nmero:');
while n<=0
'el numero ingresado debe ser mayor que cero'
n=input('ingrese el nmero:');
end
for r=1:12;
D=n*r;
disp([D n r])
end
Programa que ejecuta sentencias con valores de: x de 1 hasta 9.
for x=1:2:9
y=x.^2 - 1;
disp([x , y ]);
end

clear all
clc
for n = 1 : 5
x(n) = sin ( n*pi / 10 )
end

Programa funcin que devuelve una sola variable


Guardar en un archivo con el nombre: cubica.m
function [y]=cubica(x)
y=2*x^3+8;

para utilizar esta funcin digitar desde la ventana de comandos:


>> cubica(5)

79

ans =

258

Programa funcin que devuelve multiples variables


Guardar en un archivo con el nombre: media_ds.m
function [M,S]=media_ds(x)
n=length(x);
M=sum(x)/n
S=sqrt(( sum(x.^2/n)-M^2 ))

para utilizar esta funcin digitar desde la ventana de comandos:


>> x= [1 2 ]
>> media_ds(x);
M=

1.5000

S=

0.5000

Programa funcin con varias opciones, guardar en un archivo con el nombre:


numero.m
function numero(x)
if x > 0
opcion = 1;
end
if x < 0
opcion = 2;
end
if x == 0
opcion = 3;
end
switch opcion
case 1
disp('x un numero positivo' );
case 2
disp('x un numero negativo' );
otherwise
disp('x es nulo' );
end
clear all

para utilizar esta funcin numero digitar desde la ventana de comandos:


>> numero(-1)
programa con el commando CASE END

80

clc
clear all
x=0;
while x<=0 | x>=8
x=input('ingrese un nmero entre 1 y 7: ');
end
if x==1
opcion=1;
end
if x==2
opcion=2;
end
if x==3
opcion=3;
end
if x==4
opcion=4;
end
if x==5
opcion=5;
end
if x==6
opcion=6;
end
if x==7
opcion=7;
end
switch opcion
case 1
disp('DIA DOMINGO');
case 2
disp('DIA LUMES');
case 3
disp('DIA MARTES');
case 4
disp('DIA MIERCOLES');
case 5
disp('DIA JUEVES');
case 6
disp('DIA VIERNES');
otherwise
disp('DIA SABADO');
end
Programa para obtener las races de polinomios
P(x)= x3 -2x -5
>> p=[1 0 -2 -5];
>> r= roots(p)
r=

81
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
Programa para obtener la derivada de un polinomio
P(x)= 2x4 x3 +3x2 +5x +9
>> P=[2 -1 3 5 9 ];
>> polyder(P)
ans =
8 -3 6

esto es: P(x)= 8x3 3x2 +6x +5


Programa para obtener la derivada de un producto de polinomios
P(x)= x2 +5x +9

Q(x)=x2 +x -1

>> P=[1 -5 9];


>> Q= [1 1 -1];
>> polyder(P,Q)
ans = 4 -12

14

esto es: P(x)= 4x3 12x2 +6x +14


Realizar un programa para el ajuste de datos a un modelo lineal, polinomial
cuadrtico, polinomial cbico y cuarto grado.
Se realiza una prueba de funcionamiento de un equipo en la cual se toman datos de la
temperatura en grados Fahrenheit durante los 5 primeros segundo y se obtienen los
siguientes datos
Tiempos
Temperaturas

0
0

1
20

2
60

3
68

4
77

5
110
REGRESION LINEAL
120

Coef = 20.8286

TEMPERATURA EN oF

100

x = 0:5;
y = [0, 20, 60, 68, 77, 110];
coef = polyfit(x, y, 1)
m=coef(1);
b=coef(2);
y1 = m.*x+b;
plot(x, y1, x, y, 'ms'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
Ylabel ('TEMPERATURA EN oF')

80

60

40

20

0.5

1.5

3.7619 % con este dato se obtiene la ecuacin:

Se observa que el modelo lineal ajustado tiene la ecuacin:

2
2.5
3
3.5
TIEMPO EN SEGUNDOS

4.5

82

Y = 20.8286

x + 3.7619

Para realizar un mejor ajuste de datos usaremos un modelo polinomial cuadrtico,


para lo cual se utilizar el siguiente programa.
x = 0:5;
y = [0, 20, 60, 68, 77, 110];
coef = polyfit(x, y, 2)
a=coef(1);
b=coef(2);
c=coef(3);
y2 = a*x.^2 + b * x + c;
plot(x, y2, x, y, 'r*'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
Ylabel ('TEMPERATURA EN oF')

REGRESION LINEAL
120

TEMPERATURA EN oF

100

80

60

40

20

coef = -1.0536 26.0964

0.5

1.5

2
2.5
3
3.5
TIEMPO EN SEGUNDOS

4.5

0.2500 % con estos coeficientes se obtiene la ecuacin:

Se observa que el polinomio de segundo grado ajustado tiene la ecuacin:


y = -1.0536 x2 + 26.0964 x + 0.2500
Para realizar un mejor ajuste de datos usaremos un modelo polinomial cbico, para
lo cual se utilizar el siguiente programa.
REGRESION LINEAL

120

Coef = 1.1019
ecuacin.

-9.3175

41.1918

100

TEMPERATURA EN oF

x = 0:5;
y = [0, 20, 60, 68, 77, 110];
coef = polyfit(x, y, 3)
a=coef(1);
b=coef(2);
c=coef(3);
d=coef(4);
y3 = a*x.^3 + b*x.^2 + c * x + d;
plot(x, y3, x, y, 'oc'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
Ylabel ('TEMPERATURA EN oF')

80

60

40

20

-20

0.5

1.5

2
2.5
3
3.5
TIEMPO EN SEGUNDOS

4.5

-3.0556 % con estos coeficientes se obtiene la

Se observa que el polinomio de tercer grado ajustado tiene la ecuacin:


y = 1.1019 x3 -9.3175x2 + 41.1918x -3.0556

Para realizar el mejor ajuste de datos usaremos un modelo polinomial de cuarto


grado, para lo cual se utilizar el siguiente programa.

83

REGRESION LINEAL
120

100

TEMPERATURA EN oF

x=[0 1 2 3 4 5 ];
y = [0 20 60 68 77 110];
coef = polyfit(x, y, 4)
a=coef(1);
b=coef(2);
c=coef(3);
d=coef(4);
e=coef(5);
y4 = a*x.^4 + b*x.^3 + c*x.^2 + d*x + e;
plot(x, y4, x, y, 'o'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
Ylabel ('TEMPERATURA EN oF')

80

60

40

20

-20

0.5

1.5

2
2.5
3
3.5
TIEMPO EN SEGUNDOS

coef = 1.5625 -14.5231 38.6736 -3.4511 -0.3770

Se observa que el polinomio de cuarto grado ajustado tiene la ecuacin:


y = 1.5625x4 -14.5231x3 + 38.6736x2 -3.4511x -0.3770

4.5

84
EJERCICIOS PROPUESTOS
1. Revisar y analizar el siguiente programa en matlab

clc,clear all
%ESTE PROGRAMA SIRVE PARA DETERMINAR EL VECTOR, MODULO Y LOS
ANGULOS EN
%TRES DIMENSIONES, YA QUE INGRESANDO POR EL TECLADO EL PROGRAMA SE
DETERMINA
%INMEDIATAMENTE
disp('=================================================================
==========')
disp('&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&')
disp('
HALLANDO EL VECTOR, MODULO Y LOS ANGULOS EN TRES
DIMENSIONES')
disp('&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&')
disp('=================================================================
==========')
format short
x1=input('"==> ingrese x1" : ');
y1=input('"==> ingrese y1" : ');
z1=input('"==> ingrese z1" : ');
x2=input('"==> ingrese x2" : ');
y2=input('"==> ingrese y2" : ');
z2=input('"==> ingrese z2" : ');
v=x2-x1;
v1=y2-y1;
v2=z2-z1;
m=sqrt((x2-x1)^2+(y2-y1)^2+(z2-z1)^2);
A=(v/m);
B=(v1/m);
C=(v2/m);
alfa=acos(v/m);
beta=acos(v1/m);
ganma=acos(v2/m);
a=acos(v/m)*180/pi;
b=acos(v1/m)*180/pi;
g=acos(v2/m)*180/pi;
disp('---------------------------------------------------------------------------')
disp(' el vector es: ')
%Concatenando con i,j y k para una mejor presentacion
v=num2str(v);%Por Ebc
v1=num2str(v1);
v2=num2str(v2);
v=strcat(v,'i');
v1=strcat(v1,'j');
v2=strcat(v2,'k');
fprintf('%1s\t','');fprintf('%0s\t',v);
fprintf('%1s\t','');fprintf('%0s\t',v1);
fprintf('%1s\t','');fprintf('%0s\t',v2);fprintf('\n\n');
disp('---------------------------------------------------------------------------')
disp(' el modulo es: ')

85
disp([m])
disp('---------------------------------------------------------------------------')
disp(' VECTOR UNITARIO: ')
%Concatenando con i,jyk para una mejor presentacion
A=num2str(A);
B=num2str(B);
C=num2str(C);
A=strcat(A,'i');
B=strcat(B,'j');
C=strcat(C,'k');
fprintf('%1s\t','');fprintf('%0s\t',A);
fprintf('%1s\t','');fprintf('%0s\t',B);
fprintf('%1s\t','');fprintf('%0s\t',C);fprintf('\n\n');
%Por Ebc
%En una forma mas Ordenada...Ebc
disp('---------------------------------------------------------------------------')
fprintf('%4s\t','');fprintf('LOS ANGULOS EN RADIANES%10d\t','');
fprintf('%12s\t','');fprintf('LOS ANGULOS EN SEXAGESIMAL%d\n','');fprintf('\n\n');
fprintf('%1s\t','');
fprintf('Alfa%s\t');fprintf('%4s\t','');
fprintf('Beta%s\t');fprintf('%4s\t','');
fprintf('Gama%s\t');fprintf('%4s\t','');
fprintf('%1s\t',' ');
fprintf('Alfa%s\t');fprintf('%4s\t','');
fprintf('Beta%s\t');fprintf('%4s\t','');
fprintf('Gama%s\t');fprintf('%4s\n','');
fprintf('%1s\t','');
fprintf('%0.2f\t',alfa);fprintf('%3s\t','');
fprintf('%0.2f\t',beta);fprintf('%3s\t','');
fprintf('%0.2f\t',ganma);fprintf('%3s\t','');
fprintf('%1s\t','');
fprintf('%0.2f\t',a);fprintf('%3s\t','');
fprintf('%0.2f\t',b);fprintf('%3s\t','');
fprintf('%0.2f\t',g);fprintf('%3s\t','');;fprintf('\n\n');
disp('---------------------------------------------------------------------------')
%disp('LOS ANGULOS EN SEXAGESIMAL')
%disp(' alfa
beta
ganma')
%disp([a b g])
disp('FIN DEL PROGRAMA')
disp('=================================================================
==========')
disp('=================================================================
==========')

2. Determinar que realiza lnea a lnea el siguiente programa.


%programa para graficar tiempo espacio, velocidad, aceleracion
clc
clear all
%x(x)= t^4 +2t^2 -200
%x=[1 0 2 0 -200 ];
%polyder(x)
%polyval(x,t)
x=[1 0 2 0 -200 ];

86
v=polyder(x);
a=polyder(v);
for t=1:10
m(t)=polyval(x,t);
n(t)=polyval(v,t);
k(t)=polyval(a,t);
hold on;grid on;
subplot(2,2,1);plot(t,m(t),'m*');title('Tiempo - Espacio');xlabel('tiempo');ylabel('esapcio');
hold on;grid on;
subplot(2,2,2);plot(t,n(t),'kx');title('Tiempo - Velocidad');xlabel('tiempo');ylabel('Velocidad');
hold on;grid on;
subplot(2,2,3);plot(t,k(t),'bo');title('Tiempo Aceleracion');xlabel('tiempo');ylabel('Acelecracion');
hold on;grid on;
end
disp('')
disp('
Tiempo - Espacio - Velocidad - Aceleracion')
disp('')
fprintf('tiempo%d\t');fprintf(' %5s\t','');
fprintf('Espacio%d\n');fprintf(' %5s\t','');
fprintf('Velociad%d\t');fprintf(' %5s\t','');
fprintf('Aceleracio%s\n','n');
disp('------------------------------------------------------------')
for h=1:10
fprintf('%s\t','');
fprintf('%d\t',h);
fprintf('%15.0f\t',m(h));
fprintf('%15.0f\t',n(h))
fprintf('%15.0f\n',k(h))
end
disp('')

3. Determinar que realiza lnea a lnea el siguiente programa.


%PROGRAMA DE UNA PRUEBA EXPERIEMENTAL CON LA CINETICA QUIMICA DE
UN
%CONTAMINANTE TENIENDO COMO DATOS EL TIEMPO(EN
HORAS),CONCENTRACIOIN FINAL
%DEL CONTAMINANTE ASI COMO LAS INICIALES
clc
clear all
fprintf('\n\n');
fprintf('\n\n');
fprintf('\n\n');
fprintf('\n\n');
disp('')
disp(' PROGRAMA PARA PRUEBA EXPERIMENTAL CON CINETICA QUIMICA')
disp('')
fprintf('\n\n');
fprintf('\n\n');
fprintf('
Esta Cargando...%12.0f\n');
a=0;
while a==0
tic;

87
for i=1:1000
for u=1:10000
for o=1:50
end
end
end
a=toc;
end
fprintf('\n\n');
fprintf('\n\n');
fprintf('
Presione Cualquier Tecla...%12.0f\n');
pause
clc
clear all
S0=500;%es la concentracin final del contaminante
t=[2.6 5.22 7.85 10.51 13.19 15.91 18.7 21.61 24.8 31.16]; %tiempo(horas)
DQO=[450 400 350 300 250 200 150 100 50 1]; %concentraciones iniciales del
contaminante (DQO mg/L)
%grfico de los puntos experimentales para probar una cintica de orden = 0
plot(t, DQO,'o-')
title('Datos experimentales (orden cero, grafica cinetica de orden cero)')
xlabel('tiempo (h)')
ylabel('DQO (mg/L)')
grid
pause
x=t;
y=log(S0./DQO);
plot(x,y,'o-k')
title('datos experimentales (cinetica de primer orden)')
xlabel('tiempo(h)')
ylabel('ln(Se /S0)(mg/L)')
grid
pause
%prueba para cintica de orden variable
x1=t./( S0-DQO);
y1=log(S0./DQO)./( S0-DQO);
plot(x1,y1,'o-k');
title('calculo de k1 y k2 (orden variable)')
xlabel('t/( S0- Se)(Lh/mg)')
ylabel('ln((S0 /Se)/( S0 -Se)(L/mg)')
text(0.06, 0.0077,'o experimentales')
grid
hold on
pause
%obtencion de la recta que se ajusta mejor a los datos experimentales
A=polyfit(x1,y1,1);
K1=A(1); %pendiente k1
K2e=A(2);
K2=-A(2); %ordenada al origen k2
%grafica de la recta que se ajusta a los datos expermientales
Resta=x1.*K1+K2e;
plot(x1,Resta,'--k');
text(0.06, 0.007, '---ajuste')

88
4. Determinar lnea a lnea lo que realiza el siguiente programa.
%LEY DE GAY -LUSSAC(1802):PROCESO ISOCORICO O ISOMETRICO
%GAY -LUSSAC cientfico francs realizo trabajos similares a Charles
%fue el que descubri la ley estequiometrica de la combinacin de los gases
%en una relacin volumtrica sencilla y constante; la ley:"SI EL VOLUMEN DE UN GAS
%PERMANECE CONSTANTE (proceso isocorico)PAR UNA CIERTA MASA DE UN GAS
,SU PRESION ABSOLUTA VARIA DIRECTAMENTE
%PROPORCIONAL A LA TEMPERATURA"
%PARA ESTA LEY SE CUMPLE: P/T=Kv(donde Kv es la constante de gay lussac)..........(1)
%como bien sabemos por los gases ideales:
%PV=nRT; DONDE:(n=1,R=0.08205(atm*lts)/k*mol,T=298k)...........(2)
%este programa nos ayudara a determinar las curvas de la ley gay -lussac
clc;
hold off ;clear all ;clear memory; clear command history
for V=100:100:500
K=(1.*0.08205)./V;
P=1:0.1:10;
T=P./K;
switch V
case 100
q='-r';
case 200
q='-b';
case 300
q='-m';
case 400
q='-R';
case 500
q='-k';
end
hold on,grid on
subplot(2,2,1), plot(T,P,q), title('LEY DE GAY LUSSAC'),ylabel('presion(atm)'),xlabel('temperatura(k)')
h=legend('V=100 Lts','V=200 Lts','V=300 Lts','V=400 Lts','V=500 Lts')
hold on,grid on
subplot(2,2,2),plot((1./T),P,q), title('LEY DE GAY LUSSAC'),ylabel('presion(atm)'),xlabel('temperatura(k^(-1))')
h=legend('V=100 Lts','V=200 Lts','V=300 Lts','V=400 Lts','V=500 Lts')
hold on,grid on
subplot(2,2,3), plot(T,(P./T),q), title(' LEY DE GAY LUSSAC'),ylabel('presion(atm/K)'),xlabel('temperatura(k)')
h=legend('V=100 Lts','V=200 Lts','V=300 Lts','V=400 Lts','V=500 Lts')

89
5. Analizar los resultados del siguiente programa aplicado a la elaboracin de
vino

clc
clear all
disp('---------------------------------------------------------------------')
disp('
ELABORACION DE VINO')
disp('---------------------------------------------------------------------')
disp('
')
disp('- Este programa nos ayudara de una manera facil y rapida detenerinar ')
disp(' la adicion de azucar, levadura, etc y un balance de materia para la ')
disp(' aboracion del vino dependiendo de la cantidad de materia prima con ')
disp(' que contamos. ')
disp('
')

x=input('Ingrese Materia Prima (Kg): ');


merma1=0.05*x
disp(' kg')
productoi=0.95*x;%es el porcentaje de materia prima que sigue el flujo
y=input('Ingrese Grados Brix: ');
k=input('Ingrese Densidad del Mosto: ');
j=x/k;%es el volumen de la materia prima
if y<14
('Grados Brix que me faltan:')
a=14-y;
disp([a])
disp(' brix')
z=(j*10)/100;%Es el 10% del volumen de la materia prima que sigue el flujo
disp('Cantidad azucar a agregar')
azucar=z*a
disp('
Kg')
disp('Cantidad de levadura')
levadura=0.0002*productoi
disp('
Kg')
merma2=0.03*(productoi+azucar)
disp('
Kg')
disp('BALANCE DE MATERIA')
mermato=merma1+merma2
disp('
Kg')
pesofinal=productoi+azucar+levadura
disp('
Kg')
mlprofinal=pesofinal/1.02
disp('
ml')
else
if y>=14
disp('Cantidad de levadura')
levadura=0.0002*productoi
disp('
Kg')
merma2=0.03*(productoi)
disp('
Kg')
disp('BALANCE DE MATERIA' )
mermato=merma1+merma2

90
disp('
Kg')
pesofinal=productoi+levadura
disp('
Kg')
mlprofinal=pesofinal/1.02
disp('
ml')
end
end
disp('=========================================')
disp('PROCESOS DE LA FERMENTACION (Esto se saca de datos experimentales)')
disp('NOTA: -Ingresar los datos en forma de vector ')
disp('
-Siendo la misma cantidad de datos para todos ')
disp('Ejemplo [0 2 4 6 8 10 12] ')
dias=input('Ingresar el numero de dias: ');
disp('
')
disp('Ejemplo [12 30 65 80 90 98 100] ')
gxlalcohol=input('Ingresar g/l de alcohol producido: ');
disp('
')
disp('Ejemplo [200 140 70 30 15 8 3] ')
gxlazucar=input('Ingresar g/l de azucar: ');
disp('
')
disp([dias])
disp([gxlalcohol])
disp([gxlazucar])
cla
disp('DECREMENTO DEL AZUCAR')
disp('LA ECUACION LINEALIZADA ES:')
disp('y3 = a*x.^3 + b*x.^2 + c * x + d')
x = dias;
y = gxlazucar;
coef = polyfit(x, y, 3);
a=coef(1);
b=coef(2);
c=coef(3);
d=coef(4);
y3 = a*x.^3 + b*x.^2 + c * x + d;
subplot(2,2,1),plot(x, y3, 'bo'), title('DECREMENTO DEL AZUCAR')
xlabel ('Dias')
ylabel ('g/l de Azucar')
disp('
a
b
c
d')
disp([a b c d])
disp('INCREMENTO DE ALCOHOL')
disp('LA ECUACION LINEALIZADA ES:')
disp('y3 = a*x.^3 + b*x.^2 + c * x + d')
x = dias;
z = gxlalcohol;
coef = polyfit(x, z, 3);
a=coef(1);
b=coef(2);
c=coef(3);
d=coef(4);
ya3 = a*x.^3 + b*x.^2 + c * x + d;

91
subplot(2,2,2),plot(x, ya3, 'ro'), title('INCREMENTO DE ALCOHOL')
xlabel ('Dias')
ylabel ('% de Alcohol')
disp('
a
b
c
d')
disp([a b c d])
subplot(2,2,3),plot(x, y,'b+', x, z, 'r+'), title('GRAFICO 1 y 2 LINEALIZADOS')

6. Ejecutar el siguiente programa y analizar los resultados.

%PROGRAMA PARA HALLAR DERIVADAS PARCIALES y SU GRAFICA


clc;
disp('=================================================')
disp('---------------------OBTENCION DE LA DERIVADA-------------------')
disp('----------------------PARCIAL RESPECTO A X e Y----------------------')
disp('=================================================')
syms x y z

%la funcion syms define como variables a X e Y

A=input('ingrese funcion:');
B=diff(A,x)
C=diff(A,y)
disp('la derivada respecto a x es:'),;
disp(diff(A,x))
%calcula la derivada parcial respecto a X
disp('la derivada respecto a y es:');
disp(diff(A,y))
%calcula la derivada parcial respecto a y
subplot(1,2,1), ezplot(z-B) %la funcion ezplot muestra el grafico panoramico de la funcion
subplot(1,2,2), ezplot(z-C) %El ezplot muestra el titulo por defecto
SALIDA:
===================================================
---------------------OBTENCION DE LA DERIVADA--------------------------------------------PARCIAL RESPECTO A X e Y-----------------------===================================================
ingrese funcion:x^2+y^3
la derivada respecto a x es:
2*x
la derivada respecto a y es:
3*y^2

92
7. Ejecutar el siguiente programa y analizar los resultados.
%METODO de NEWTON RAPHSON mas rpido converge la funcin(llega a la solucion)
clc;
disp('===========================================')
disp('-------------* METODO DE NEWTON RAPHSON *---------')
disp('===========================================')
nombre_f=input(' ingrese funcin asociada f(x)=','s');
x0=input(' ingrese valor inicial:');
fprintf('\n');
fprintf('iter aproximacin g(x) error\n');
i=1;e=1;delta=0.001;
while e>=3E-12 & i<=18
x=x0;
fx0=eval(nombre_f);
x=x0-delta;
df1=eval(nombre_f);
x=x0+delta;
df2=eval(nombre_f);
dfx0=(df2-df1)/(2*delta);
r=x0-(fx0/dfx0);
e=abs((r-x0)/r);
fprintf('%3.0f %10.6f %10.6f %10.6f\n',i,x0,r,e);
x0=r;
i=i+1;
end
disp('-----------------------------------------')
fprintf('
la raiz es:%10.9f\n',x0);
disp('-----------------------------------------')

SALIDA:

===================================================
-------------------*METODO DE NEWTON RAPHSON*-----------------===================================================
ingrese funcion asociada f(x)=5*x - x^3
ingrese valor inicial:2

iter aproximacin g(x) error


1 2.000000 2.285714 0.125000
2 2.285714 2.237640 0.021484
3 2.237640 2.236070 0.000702
4 2.236070 2.236068 0.000001
5 2.236068 2.236068 0.000000
---------------------------------------------la raiz es:2.236067977
----------------------------------------------

93
8. Ejecutar el siguiente programa y analizar los resultados.
%PROGRAMA PARA INTEGRALES DEFINIDAS POR EL METODO DE SIMPSON
clc;
disp('===================================================')
disp('---------------------------* METODO DE SIMPSON *-----------------------')
disp('===================================================')
syms x
A=input('ingrese funcin:')
B=input('ingrese primer limite:')
C=input('ingrese segundo limite:')
D=subs(A,B);
%Evala la funcin A para el valor de B
E=subs(A,C);
%Evala la funcin A para el valor de C
D=(B+C)/2;
F=subs(A,D);
%Evala la funcin para la semisuma de valores
G=(C-B)*(D+E+4*F)/6;
disp('-------------------------------')
fprintf('La solucin es: %10.6f\n',G);
disp('-------------------------------')
SALIDA:
===================================================
---------------------------* METODO DE SIMPSON *-----------------------===================================================
ingrese funcion:log(x/2)-x^3+x
A=
log(1/2*x)-x^3+x
ingrese primer limite:4
B=
4
ingrese segundo limite:2
C=
2
---------------------------------La solucin es: 32.459380
----------------------------------

9. Ejecutar el siguiente programa y analizar los resultados.

%este programa sirve para hallar el siguiente la siguiente integral definida :

sen(ln x)dx
%ingresando por teclado el lmite superior (a) y el limite inferior (b):
clc;

94
disp('=====================================================')
disp('--------PROGRAMA PARA HALLAR LA INTEGRAL DE sen(ln x)-------- ')
disp('=====================================================')
a=input('ingrese el limite superior:');
b=input('ingrese el limite inferior:');
if a>b
r=cos(log(a))-cos(log(b));
disp('el resultado de la integral es:')
disp(r)
else
r=tan(a)-tan(b);
disp('el resultado de la integral es:')
disp(r)
end
disp('=====================')
disp('FIN DEL PROGRAMA')
disp('=====================')

SALIDA:
=================================================
----PROGRAMA PARA HALLAR LA INTEGRAL DE sen(ln x)--=================================================
ingrese el limite superior:5
ingrese el limite inferior:8
el resultado de la integral es:
3.4192
=====================
FIN DEL PROGRAMA
=====================

10. Ejecutar el siguiente programa y analizar los resultados.


%Programa para integrar por el mtodo del trapecio
clc,
disp('================================================')
disp('------------------------* METODO DEL TRAPECIO *----------------------')
disp('================================================')
fprintf('\n');
f=input('Ingrese la funcin a integrar f(x) =','s');
a=input('Ingrese limite inferior :');
b=input('Ingrese limite superior :');
n=input('Ingrese nmeros de trapecios a considerar en la integracin :');
xmin=a-1;xmax=b+1;
h=(b-a)/n;
x=a:h:b;
fx=eval(f);y=abs(fx);
A=y(1)+y(n+1);
B=2*sum(y(2:n));
integral=(h/2)*(A+B);
fprintf('el rea es:%10.9f\n',integral);
%grafica

95
xp=xmin:0.2:xmax;
x=xp;
yp=eval(f);
plot(xp,yp,'g');
hold on
x=a:0.05:b;
y=eval(f);
bar(x,y,'r');
grid

SALIDA:
==============================================
--------------------* METODO DEL TRAPECIO *------------------==============================================
Ingrese la funcin a integrar f(x) =sqrt(1+x.^2)
Ingrese limite inferior :2
Ingrese limite superior :3
Ingrese nmeros de trapecios a considerar en la integracin :8
el rea es:2.694824624

96

EVALUACIN
Describir lnea por lnea lo que hace el programa y luego indicar el resultado de la
ejecucin de dicho programa.
clc,clear all
%ESTE PROGRAMA SIRVE PARA xxxxxx xxxxx xxxxxxx xxxxxx
disp('================================================================')
disp('&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&')
disp('
xxxxx xxxxx xxxxx xxxxxxx xxxxxxx')
disp('&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&')
disp('================================================================')
format short
x1=input('"==> ingrese x1" : ');
y1=input('"==> ingrese y1" : ');
z1=input('"==> ingrese z1" : ');
x2=input('"==> ingrese x2" : ');
y2=input('"==> ingrese y2" : ');
z2=input('"==> ingrese z2" : ');
v=x2-x1;
v1=y2-y1;
v2=z2-z1;
m=sqrt((x2-x1)^2+(y2-y1)^2+(z2-z1)^2);
A=(v/m);
B=(v1/m);
C=(v2/m);
alfa=acos(v/m);
beta=acos(v1/m);
ganma=acos(v2/m);
a=acos(v/m)*180/pi;
b=acos(v1/m)*180/pi;
g=acos(v2/m)*180/pi;
disp('---------------------------------------------------------------------------')
disp(' el vector es: ')
%Concatenando con
para una mejor presentacion
v=num2str(v);%Por Ebc
v1=num2str(v1);
v2=num2str(v2);
v=strcat(v,'i');
v1=strcat(v1,'j');
v2=strcat(v2,'k');
fprintf('%1s\t','');fprintf('%0s\t',v);
fprintf('%1s\t','');fprintf('%0s\t',v1);
fprintf('%1s\t','');fprintf('%0s\t',v2);fprintf('\n\n');
disp('---------------------------------------------------------------------------')
disp(' el modulo es: ')
disp([m])
disp('---------------------------------------------------------------------------')
disp(' xxxxxxx xxxxxxxxx: ')
%Concatenando con i,jyk para una mejor presentacion
A=num2str(A);%Por Ebc
B=num2str(B);
C=num2str(C);
A=strcat(A,'i');

97
B=strcat(B,'j');
C=strcat(C,'k');
fprintf('%1s\t','');fprintf('%0s\t',A);
fprintf('%1s\t','');fprintf('%0s\t',B);
fprintf('%1s\t','');fprintf('%0s\t',C);fprintf('\n\n');
%Por Ebc
%En una forma mas Ordenada...Ebc
disp('---------------------------------------------------------------------------')
fprintf('%4s\t','');fprintf('LOS xxxxxxx EN xxxxxx%10d\t','');
fprintf('%12s\t','');fprintf('LOS xxxxxxx EN xxxxxx%d\n','');fprintf('\n\n');
fprintf('%1s\t','');
fprintf('Alfa%s\t');fprintf('%4s\t','');
fprintf('Beta%s\t');fprintf('%4s\t','');
fprintf('Gama%s\t');fprintf('%4s\t','');
fprintf('%1s\t',' ');
fprintf('Alfa%s\t');fprintf('%4s\t','');
fprintf('Beta%s\t');fprintf('%4s\t','');
fprintf('Gama%s\t');fprintf('%4s\n','');
fprintf('%1s\t','');
fprintf('%0.2f\t',alfa);fprintf('%3s\t','');
fprintf('%0.2f\t',beta);fprintf('%3s\t','');
fprintf('%0.2f\t',ganma);fprintf('%3s\t','');
fprintf('%1s\t','');
fprintf('%0.2f\t',a);fprintf('%3s\t','');
fprintf('%0.2f\t',b);fprintf('%3s\t','');
fprintf('%0.2f\t',g);fprintf('%3s\t','');;fprintf('\n\n');
disp('---------------------------------------------------------------------------')
%disp('LOS xxxxxxxx EN xxxxxxx ')
%disp(' alfa
beta
ganma')
%disp([a b g])
disp('FIN DEL PROGRAMA')
disp('================================================================')
disp('================================================================')

98

Bibliografa referencial
5. CHAPRA, STEVEN Mtodos Numricos para Ingenieros. Editorial Mc. Graw Hill.
Mxico. 2004.
6. NAKAMURA, SHOICHIRO Analisis Numrico y Visualizacin con Matlab.
Editorial Prentice may. Mxico. 1997.
7. MORALES MARCHENA, HERN. Mtodos numricos y Visualizacin Grfica
Editorial Megabit. Peru. 2005.
8. PEREZ, CESAR Matlab y sus Aplicaciones en las Ciencias y la Ingeniera
Editores Prentice. Espaa. 2002 .
9. VASQUEZ PARAGULLA, JULIO Diseo de Programacin Edit. San Marcos
PERU . 2000.
10. KERLINGER, F. N. Y LEE, H. B. Investigacin del Comportamiento: Mtodos de
Investigacin en ciencias sociales. Mc Graw Hill Interamericana Editores.
Mxico. 2002.