Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ii
iii
iv
INFORME FINAL
Proyecto: LIBRO DE INVESTIGACIN
Ttulo:
Cdigo UNESCO
: 1203 17 INFORMTICA
Fecha de inscripcin
: 10 de junio de 2015
Investigador1
Participacin2
Facultad /Dependencia
/Institucin
Docente
Responsable
FIEE
Docente
Corresponsable
FIEE
Docente
Colaborador
FIEE
vi
vii
viii
ix
LISTA DE FIGURAS
Figura 1.1. Pantalla del escritorio donde est el cono del MATLAB.
Figura 1.2. Pantalla principal del MATLAB versin R2015a.
Figura 1.3. Opciones para activar las ventanas Workspace y Command History.
Figura 1.4. Pantalla principal del MATLAB con la Ventana de comandos, ventana de trabajo y la
ventana de historia de comandos.
Figura 1.5. Modo de uso de la ventana de comandos.
Figura 1.6. Ventana del rea de trabajo.
Figura 1.7. Ventana de historia de comandos.
Figura 1.8. Ventana de ayuda de la sentencia sqrt.
Figura 1.9. conos que permiten guarda y recuperar variables de trabajo.
Figura 3.1. Representacin grfica de un arreglo unidimensional.
Figura 3.2. Representacin de una matriz de mxn.
Figura 4.1. Pantalla principal del MATLAB que muestra los botones para crear archivos M-Ficheros.
Figura 4.2. Pantalla principal del MATLAB en el que se muestra la ventana de editor de programas.
Figura 4.3. Ventana de grabacin de archivos.
Figura 4.4. Estructura secuencial.
Figura 4.5. Ventana de editor de programas del MATLAB.
Figura 4.6. Estructura condicional simple.
Figura 4.7. Estructura condicional doble.
Figura 4.8. Estructura condicional mltiple.
Figura 4.9. Estructura de decisin mltiple.
Figura 4.10. Estructura repetitiva mientras.
Figura 4.11. Ventana que muestra la parbola con 8 puntos.
Figura 4.12. Ventana que muestra la parbola con 100 puntos.
Figura 5.1. Ventana grfica del MATLAB.
Figura 5.2. Grafico que muestra la unin de los puntos (3;1), (5;3), (2;-1) y (4;3).
Figura 5.3. Grfica de una recta conociendo dos puntos.
Figura 5.4. Grfica de la recta de la Figura 5.3 en MATLAB con ejes iguales.
Figura 5.5. Grfica de la recta de la Figura 5.3 en MATLAB con rea definida.
Figura 5.6. Grfica de la recta de la Figura 5.3 en MATLAB con rejilla.
Figura 5.7. Grfico que representa a la recta y=2x-3.
Figura 5.8. Grfico que representa a la recta y=2x-3 con rejillas ms pequeas.
Figura 5.9. Grfico que representa a la parbola y=2x2-4x+5.
Figura 5.10. Grfico que representa a la funcin cbica y=x3-6x2+2x-3.
Figura 5.11. Grfico que representa a la funcin de la forma y=x4+x3-5x2-3.
Figura 5.12. Grficas de funciones racionales de la forma y=1/p(x).
Figura 5.13. Grfico que representa a la funcin de la forma y=1/(2-x).
Figura 5.14. Grfico que representa a la funcin de la forma y=1/(x2+x-12).
Figura 5.15. Grfica tradicional de la funcin y=sen(x).
Figura 5.16. Grfico que representa a la funcin de la forma y=sind(x).
Figura 5.17. Grfico que representa a la funcin de la forma y=2+sind(x).
Figura 5.18. Grfico que representa a la funcin de la forma y=sind(x+90).
Figura 5.19. Grfico que representa a la funcin de la forma y=3sind(x).
x
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
xi
INTRODUCCIN
MATLAB es el nombre abreviado de MATriz LABoratory, es un lenguaje de programacin
especialmente diseado para el uso con fines cientficos o de ingeniera, por tanto, nos permite
programar todo tipo de clculos numricos con matrices, vectores, nmeros escalares (tanto con
nmeros reales como con nm eros complejos) y cadenas de caracteres; de una manera ms
sencilla y eficiente que otros lenguajes de programacin. Dicho de otro modo, MATLAB te brinda las
herramientas necesarias con las que t construyes el programa que te permitir resolver los clculos
necesarios para t anlisis, trabajo o proyecto.
Antes de que empieces a leer esta entrada queremos hacerte una advertencia. MATLAB (como
cualquier otro programa de clculo cientfico) no es una excepcin a la regla de que slo se aprende
con prctica, esfuerzo y muchas horas de estudio y dedicacin, como tantas otras cosas en la vida.
Por supuesto, si utilizas material de apoyo y alguien que gue tus primeros pasos, las muchas horas
sern tan slo unas cuantas horas y ya podrs utilizar el software para los propsitos que desees.
Todo esto suena un poco complicado, pero los principios que rigen MATLAB son sencillos,
especialmente si conoces otros lenguajes de programacin como C++, Visual Basic, FoxPro entre
otros. MATLAB es un lenguaje de alto rendimiento para clculos tcnicos, uno de sus puntos
importantes es que permite construir nuestras propias herramientas reutilizables. Podemos crear
fcilmente nuestras propias funciones y programas especiales (conocidos como M-archivos) en
cdigo Matlab, los podemos agrupar en Toolbox (tambin llamadas libreras): coleccin especializada
de M-archivos para trabajar en clases particulares de problemas. Matlab, a parte del clculo
matricial y lgebra lineal, tambin perm ite hacer clculos con polinomios, funciones, lmites,
derivadas, integrales, ecuaciones diferenciales ordinarias, grficos, aplicaciones GUI (Interfaz Grfica
de Usuario) y simulaciones con el SIMULINK.
Quiz la parte ms difcil, es que modifiques tu modo de pensar de humano a mquina, diseando
un algoritmo que el software y t comprendas.
Los autores.
xii
xiii
NDICE
INTRODUCCIN
xi
13
13
13
14
17
18
20
21
34
47
47
50
53
57
61
67
72
78
81
xiv
93
93
95
95
b) Salida de datos.
95
97
98
99
99
100
101
103
105
108
a) Contador.
108
b) Acumulador.
108
108
110
112
113
114
117
121
121
122
122
127
128
129
131
133
137
139
141
xv
142
e) Curvas en polares.
145
f) Funciones logartmicas.
149
150
152
a) Curvas en el espacio.
152
155
162
165
166
BIBLIOGRAFA
179
xvi
BIBLIOGRAFA
FIEE UNCP
CAPTULO I
CARACTERSTICAS BSICAS DEL MATLAB
1.1 EL ESPACIO DE TRABAJO DEL MATLAB.
Usar MATLAB por primera vez es fcil, dominarlo puede tomar aos. En este captulo se
introducir al lector al ambiente de MATLAB y se le mostrar cmo efectuar clculos m atemticos
bsicos.
Dado que el procedimiento para instalar MATLAB depende de su sistema operativo de la
computadora, se supone que el lector tiene instalado MATLAB en su computadora o que trabaja
en un laboratorio de computacin donde tiene instalado el MATLAB.
Para iniciar MATLAB en el ambiente Windows se debe hacer doble clic en el cono del escritorio
que se muestra en la Figura 1.1, recordando al lector que la versin que estudiaremos en la
presente edicin es el MATLAB R2015a
Figura 1.1. Pantalla del escritorio donde est el cono del MATLAB.
Una vez abierto el MATLAB debe salir la pantalla principal delMATLAB R2015a que se muestra
en la Figura 1.2, en el cual se muestra la ventana de comando (Command Window) con el prompt
del MATLAB (>>) el cual indica que el MATLAB est listo para que ingrese un comando.
FIEE UNCP
Otro ejemplo.
>> cos(pi/3)
ans =
0.5000
Figura 1.3. Opciones para activar las ventanas Workspace y Command History.
Luego de activar dichas ventanas, la pantalla principal se ver tal como se muestra en la Figura
1.4, en el cual se puede apreciar las tres ventanas ms importantes del MATLAB.
FIEE UNCP
Figura 1.4. Pantalla principal del MATLAB con la Ventana de comandos, ventana de trabajo y la
ventana de historia de comandos.
a) Ventana de comandos (command window).
Esta ventana ofrece un ambiente similar a una memoria de trabajo, en el cual se realiza las
operaciones matemticas, se almacena valores y resultados calculados en variables, se invoca
a las funciones que tiene el MATLAB, etc.; esta ventana es la ms importante del MATLAB y
siempre debe estar visible.
Como ejemplo se puede ingresar los datos que se muestran en la Figura 1.5, en el cual se
almacena el valor de 12 en la variable a, el valor de 5 en la variable b y luego se calcula la
suma de a+b y se almacena en la variable c.
Si se desea limpiar la pantalla de la ventana de comandos se debe utilizar la sentencia clc.
>>clc
Para salir del MATLAB se debe utilizar la sentencia quit.
>>quit
Para hacer comentarios en MATLAB se debe utilizar el smbolo de porcentaje (%).
>>X=12;
>>A=[2,1,3,6,9,4];
FIEE UNCP
10
FIEE UNCP
BIBLIOGRAFA
11
12
FIEE UNCP
13
CAPTULO II
OPERACIONES Y FUNCIONES BSICAS CON MATLAB
2.1 VARIABLES EN MATLAB.
En MATLAB como en cualquier otro lenguaje de programacin se utilizan variables, estas deben
tener un nombre segn ciertas reglas que se enumeran a continuacin:
* Necesariamente tienen que empezar por una letra y pueden estar seguidos de letras, dgitos y
o el smbolo subguin ( _ ). Por ejemplo: A, b1, suma, altura, suma1, suma_edad son variables
vlidos, mientras que 1suma, 2b, suma-edad no se pueden utilizar como variables.
* Las maysculas y minsculas se diferencian en los nombres de variables. Por ejemplo A y a
son dos variables diferentes, de igual manera Suma y suma son dos variables diferentes.
* Los nombres de variables no pueden contener ningn smbolo, no es vlido usar los smbolos:
+, -, *, /, \, >, <, @, %, &, #, etc.
* Es recomendable no usar como nombre de variables las sentencias predefinidas del MATLAB,
por ejemplo no se debe usar for, if, while, close, end, pi, sin, cos, etc.
A diferencia de otros lenguajes de programacin en MATLAB no es necesario declarar las
variables. En el siguiente ejemplo se muestra el uso de las variables base, altura y area.
>> base=12
base =
12
>> altura=5
altura =
5
>> area=base*altura
area =
60
2.2 CONSTANTES EN MATLAB.
El MATLAB tiene predefinido algunas constantes que es recomendable no volverlos a definir con
otros valores, dichas constantes se muestran en el Cuadro 2.1.
14
FIEE UNCP
Por ejemplo:
>> pi
ans =
3.1416
>> i
ans =
0 + 1.0000i
>> realmax
ans =
1.7977e+308
Constante
ans
pi
eps
inf
nan
iyj
realmin
realmax
Valor
???
3.1416
2.2204e-016
infinito
NaN
0 + 1.0000i
2.2251e-308
1.7977e+308
Operacin
aritmtica
+
*
/
\
^
15
En el siguiente ejemplo se muestra los resultados de las operaciones aritmticas con MATLAB.
>> a=12.5678954
a=
12.5679
>> b=5.987654332
b=
5.9877
>> suma=a+b
suma =
18.5555
>> resta=a-b
resta =
6.5802
>> multiplicacion=a*b
multiplicacion =
75.2522
>> division=a/b
division =
2.0990
>> divinversa=a\b
16
FIEE UNCP
divinversa =
0.4764
>> potencia=a^b
potencia =
3.8195e+06
Como se dijo anteriormente, el MATLAB tambin trabaja con nmeros complejos tal como se
muestra a continuacin.
>> a=3+2i
a=
3.0000 + 2.0000i
>> b=5.67-3.87654i
b=
5.6700 - 3.8765i
>> suma=a+b
suma =
8.6700 - 1.8765i
>> resta=a-b
resta =
-2.6700 + 5.8765i
>> multiplicacion=a*b
multiplicacion =
24.7631 - 0.2896i
>> division=a/b
division =
0.1962 + 0.4869i
>> divinversa=a\b
divinversa =
0.7121 - 1.7669i
17
>> potencia=a^b
potencia =
-9.3838e+02 - 1.4028e+04i
2.4 VISUALIZACIN DE DATOS EN LA VENTANA DE COMANDOS.
Un aspecto importante a tener en cuenta en MATLAB, es el uso del punto y coma (;) al final de
las sentencias que se escriben en la ventana de comandos; como se puede observar en los
ejemplos anteriores no hemos usado el punto y coma, lo que significa que el resultado de una
variable se muestra en pantalla mientras que si pondramos el punto y coma, el resultado solo se
podra ver en la ventana de trabajo (Workspace) en los siguientes ejemplos analizaremos ambos
casos.
Cuando no se usa el punto y coma.
>> a=12.56
a=
12.5600
>> b=2.213
b=
2.2130
>> c=a+b
c=
14.7730
>> d=a-b
d=
10.3470
Cuando se usa el punto y coma.
>> a=12.56;
>> b=2.213;
18
FIEE UNCP
>> c=a+b;
>> d=a-b;
>> suma=a+c;
>> q=a*b;
2.5 FORMATOS DE SALIDA EN MATLAB.
Todos los clculos que se realizan en MATLAB se hacen en doble presin, sin embargo por
defecto slo se muestran los resultados con 4 cifras decimales, pero cuando se desea ver los
resultados con dos decimales o con 15 decimales se utiliza la sentencia format, cuyos formatos
de salida se muestran en el Cuadro 2.3 para el valor de pi.
Cuadro 2.3. Valores de la constante pi en varios formatos que acepta el MATLAB.
Tipo
format short
format long
format short e
format long e
format short g
format long g
format bank
format hex
format rat
Resultado
Ejemplo: >> pi
3.1416
3.14159265358979
3.1416e+000
3.141592653589793e+000
3.1416
3.14159265358979
3.14
400921fb54442d18
355/113
En los siguientes ejemplos podemos darnos cuenta sobre el uso de la sentencia format.
>> format long
>> a=12.5678954
a=
12.567895399999999
>> b=5.987654332
b=
5.987654332000000
>> suma=a+b
suma =
18.555549731999999
>> resta=a-b
resta =
6.580241067999999
>> multiplicacion=a*b
multiplicacion =
75.252213335932865
>> division=a/b
division =
2.098968093871588
>> divinversa=a\b
divinversa =
0.476424583546423
>> potencia=a^b
potencia =
3.819479772876211e+06
Y si ponemos format bank, sera:
>> format bank
>> a=12.5678954
a=
12.57
>> b=5.987654332
b=
5.99
>> suma=a+b
19
20
FIEE UNCP
suma =
18.56
>> resta=a-b
resta =
6.58
>> multiplicacion=a*b
multiplicacion =
75.25
>> division=a/b
division =
2.10
>> divinversa=a\b
divinversa =
0.48
>> potencia=a^b
potencia =
3819479.77
Para regresar a su estado por defecto solo se debe utilizar la sentencia format.
>>format
21
ans =
10
>> 2*(3+4)
ans =
14
>> 2/3+4
ans =
4.6667
>> 2/(3+4)
ans =
0.2857
Hay que tener cuidado a la hora de realizar las operaciones, ya que a veces podemos obtener un
resultado distinto al esperado, al no estar acostumbrados a escribir las operaciones en una sola
lnea y no utilizar de modo adecuado los parntesis.
2.7 FUNCIONES INTERNAS O PREDEFINICAS EN MATLAB.
La versin R2015a del MATLAB posee un gran nmero de funciones implementadas, a las cuales
se invoca escribiendo el nombre de la funcin junto con el parmetro o parmetros necesarios. A
continuacin desarrollaremos solo las principales funciones predefinidas en MATLAB, sin
embargo si el lector quiere saber ms sobre alguna funcin en especial, lo nico que tiene que
hacer es usar la opcin help nombre de la funcin, por ejemplo:
>> help sqrt % se mostrar toda la ayuda referente a la funcin sqrt (ver Figura 1.8).
Funcin
ceil(x)
fix(x)
floor(x)
mod(x,y)
rem(x,y)
round(x)
rand()
22
FIEE UNCP
6
>> floor(-6.7)
ans =
-7
>> floor(20/6)
ans =
3
>> floor(2.4-9.6i)
ans =
2.0000 -10.0000i
>> mod(20,6)
ans =
2
>> mod(49,7)
ans =
0
>> rem(20,6)
ans =
2
>> rem(49,7)
ans =
0
>> rand()
ans =
0.9649
>> rand()
23
24
FIEE UNCP
Funcin
sin(x)
sind(x)
asin(x)
asind(x)
sinh(x)
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
sinh(x)=(e x-e-x)/2
asinh(x)
cos(x)
cosd(x)
acos(x)
acosd(x)
cosh(x)
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
cosh(x)=(ex+e-x)/2
acosh(x)
tan(x)
tand(x)
atan(x)
atand(x)
atan2(x,y)
atan2d(x,y)
tanh(x)
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
tanh(x)=sinh(x)/cosh(x)
atanh(x)
cot(x)
cotd(x)
acot(x)
acotd(x)
coth(x)
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
coth(x)=cosh(x)/sinh(x)
acoth(x)
sec(x)
secd(x)
asec(x)
asecd(x)
sech(x)
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
sech(x)=1/cosh(x)
asech(x)
csc(x)
cscd(x)
acsc(x)
acscd(x)
csch(x)
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
Calcula el
csch(x)=1/sinh(x)
acsch(x)
25
26
FIEE UNCP
2.0000
>> sin(3-2i)
ans =
0.5309 + 3.5906i
Funcin
exp(x)
expm1(x)
log(x)
log10(x)
log1p(x)
log2(x)
nthroot(x,n)
sqrt(x)
27
>> sqrt(25.78)
ans =
5.0774
>> sqrt(2-2i)
ans =
1.5538 - 0.6436i
Funcin
abs(x)
angle(x)
complex(a,b)
conj(x)
imag(x)
real(x)
28
FIEE UNCP
3.0000 - 4.0000i
>> i=imag(A)
i=
4
>> r=real(A)
r=
3
Cuadro 2.8. Funciones de matemtica discreta.
Descripcin
Calcula los factores primos de x.
Calcula el factorial de x.
Calcula el mximo comn divisor de a y b.
Calcula el mnimo comn mltiplo.
Determina si x es primo o no. Devuelve cero si x no es primo y uno si x es
primo
nchoosek(n,k) Calcula el nmero de combinaciones de n tomados de k en k.
perms(n,k)
Calcula el nmero de permutaciones de n..
primes(x)
Calcula todos los nmero primos menores o iguales a x.
Funcin
factor(x)
factorial(x)
gcd(a,b)
lcm(a,b)
isprime(x)
>> factorial(5)
ans =
120
>> gcd(18,12)
ans =
6
>> lcm(18,12)
ans =
36
>> isprime(11)
ans =
1
>> isprime(12)
ans =
0
>> nchoosek(5,3)
ans =
10
>> perms(5)
ans =
5
>> primes(30)
ans =
2
11
13
17
19
23
29
29
30
FIEE UNCP
teta =
0.9273
r=
5
[teta,r,z]=cart2pol(3,4,7)
teta =
0.9273
r=
5
z=
7
>> [x,y]=pol2cart(0.9273,5)
x=
3.0000
y=
4.0000
>> [x,y,z]=pol2cart(0.9273,5,7)
x=
3.0000
y=
31
4.0000
z=
7
>> [teta,phi,r]=cart2sph(3,5,7)
teta =
1.0304
phi =
0.8763
r=
9.1104
>> [x,y,z]=sph2cart(1.0304,0.8763,9.1104)
x=
3
y=
5
z=
7
Cuadro 2.10. Funciones de cambios de base numricos y de cadena.
Funcin
Descripcin
bin2dec()
Convierte una cadena en binario a un nmero decimal entero
dec2bin()
Convierte un nmero decimal entero a una cadena en binario.
base2dec
Convierte una cadena en base B a nmero decimal entero.
dec2base
Convierte un nmero decimal entero a una cadena en base B.
str2double
Convierte una cadena de nmeros a un nmero de doble precisin.
num2str()
Convierte un nmero a una cadena.
A continuacin se desarrolla algunas formas de utilizar las funciones de cambios de base
numricos y de cadena.
32
FIEE UNCP
>> bin='1001011'
bin =
1001011
>> dec=bin2dec(bin) %convierte la cadena en binario a nmero decimal.
dec =
75
>> bin1=dec2bin(dec) %convierte nmero decimal a binario tipo cadena.
bin1 =
1001011
>> b6='40521'
b6 =
40521
>> dec1=base2dec(b6,6)
dec1 =
5377
>> b1=dec2base(dec1,6)
b1 =
40521
>> b2=dec2base(dec1,8) %convierte un nmero en base 10 a cadena en base 8.
b2 =
12401
>> cad='425.78'
cad =
425.78
>> n=str2double(cad) %convierte una cadena de dgitos a nmero decimal.
n=
425.7800
>> cad1=num2str(n)
cad1 =
425.78
33
34
FIEE UNCP
Solucin en MATLAB.
>> r=pi/6;
>> S=180*r/pi
S=
30.0000
Por lo tanto diremos que pi/6 radianes es equivalente a 30 sexagesimales.
2.2. Calcular el volumen del cilindro que se muestra en la siguiente figura, sabiendo que el radio es
de 50 cm y la altura es de 2 m.
Figura 2.1
Solucin en MATLAB. Antes de solucionar se debe tener cuidado con las unidades, en este
ejemplo r=50 cm y h=2 m, por lo tanto se debe uniformizar de la siguiente manera:
r=50 cm =0,5 m y h=2 m, entonces en MATLAB sera.
>> r=0.5;
35
>> h=2;
>> V=pi*r^2*h
V=
1.5708
Por lo tanto diremos que el volumen del cilindro es 1,5708 m 3.
2.3. Calcular el valor de la componente vertical (Ay) y la componente horizontal (Ax) del vector A cuyo
mdulo es 12 newton que se muestra en la Figura 2.2, sabiendo que =35.
Figura 2.2
Solucin en MATLAB.
>> A=12;
>> alfa=35;
>> Ax=A*cosd(alfa)
Ax =
9.8298
>> Ay=A*sind(alfa)
Ay =
6.8829
Por lo tanto diremos que la componente Ax=9,8298 N y Ay=6,8829 N.
36
FIEE UNCP
2.4. Determinar las tensiones sobre las cuerdas AC y BC que se muestra en la figura; sabiendo que
=25, =55 y el peso del bloque es de 50 N.
Solucin matemtica.
= 0
=
. cos = . cos
cos
(1)
cos
= 0
+ =
. sen = . sen =
.cos
. cos +cos . sen
(2)
Solucin en MATLAB.
>> clc
>> alfa=25;
>> beta=55;
>> W=50;
>> TA=W*cosd(beta)/(sind(alfa)*cosd(beta)+cosd(alfa)*sind(beta)) %ecuacin 2.
TA =
29.1212
>> TB=TA*cosd(alfa)/cosd(beta)
%ecuacin 1.
TB =
46.0145
Por lo tanto diremos que la tensin en A es TA=29,1212 N y la tensin en B es TB=46,0145 N.
37
2.5. Se tiene una temperatura de 20 C, convertir dicha temperatura a las escalas en grados Kelvin
(K), Fahrenheit (F) y Rankine (R) usar la siguiente frmula:
Solucin en MATLAB.
>> clc
>> C=20;
>> K=C+273
K=
293
>> F=9*C/5+32
F=
68
>> R=9*C/5+492
R=
528
Por lo tanto diremos: 20 C = 293 K = 68 F = 528 R.
2.6. Considere el aparato de joule que se muestra en la figura. La masa de cada uno de los dos
bloques es de 1,5 kg y el tanque aislado se llena con 200 g de agua. Determina el aumento de la
temperatura del agua despus que los bloques caen una altura de 3 m.
38
FIEE UNCP
Solucin:
El recipiente est aislado trmicamente, por lo que no fluye energa por calor, es decir:
=0
= + = 0 + = 2
El trabajo por la cada de los bloques es igual al trabajo realizado sobre el agua en el recipiente
por las cuchillas giratorias. Este trabajo se traduce en un aumento de la energa interna del
agua.
2 = = . .
=
2
.
39
Solucin en MATLAB.
>> clc
>> k=9e9; %cte de Coulomb
>> q1=1e-6;
>> q2=2.5e-6;
>> r=5/100; %distancia en metros.
>> F=k*q1*q2/r^2
F=
9
Por lo tanto diremos que la fuerza de repulsin es de 9 N.
2.8. Determinar la altura h de la torre de alta tensin y el ngulo que se muestra en la siguiente
figura.
Solucin matemtica.
Para hallar la altura en este caso se aplica la siguiente frmula:
= 22 21 .2
y el ngulo se calcula con:
= atan ( )
2
40
FIEE UNCP
Solucin en MATLAB.
>> d1=50;
>> d2=200;
>> h=sqrt(d2^2-2*d1*d2)
h=
141.4214
>> theta=atand(h/d2)
theta =
35.2644
Por lo tanto diremos que la altura h de la torre es de 141,4214 m y el ngulo =35,2644.
2.9. Determinar el rea del tringulo que se muestra en la siguiente figura sabiendo que los lados a,
b y c miden 10, 12 y 15 cm respectivamente.
Solucin matemtica.
- Clculo del semipermetro:
++
2
y el rea sera:
= ( )( )( )
Solucin en MATLAB.
>> a=10;
>> b=12;
>> c=15;
>> p=(a+b+c)/2;
>> area=sqrt(p*(p-a)*(p-b)*(p-c))
41
area =
59.8117
Por lo tanto diremos que el rea del tringulo es 59,8117 cm 2.
2.10. Determinar el coeficiente del octavo trmino del desarrollo del siguiente binomio (2x+3y) 10.
Solucin matemtica.
Para hallar el coeficiente del trmino k+1 del desarrollo de un binomio de la forma (ax+by)n se
utiliza la siguiente frmula:
+1 = ( ) .
Solucin en MATLAB.
>> a=2;
>> b=3;
>> n=10;
>> k=8-1;
>> T8=nchoosek(n,k)*a^(n-k)*b^k
T8 =
2099520
Por lo tanto diremos que el coeficiente del octavo trmino es 2 099 520.
2.11. Determinar las races de una ecuacin cuadrtica de la forma Ax2+Bx+C=0 cuando A=2, B=3 y
C=-12, para el cual se utiliza la siguiente frmula:
+ 2 4
1 =
2
2 =
2 4
2
Solucin en MATLAB.
>> clc
>> A=2;
>> B=3;
>> C=-12;
>> x1=(-B+sqrt(B^2-4*A*C))/(2*A)
x1 =
1.8117
>> x2=(-B-sqrt(B^2-4*A*C))/(2*A)
42
FIEE UNCP
x2 =
-3.3117
Por lo tanto diremos que x1=1,8117 y x2=-3,3117.
Este mismo problema podemos calcular para A=2, B=5 y C=25;
>> clc
>> A=2;
>> B=5;
>> C=25;
>> x1=(-B+sqrt(B^2-4*A*C))/(2*A)
x1 =
-1.2500 + 3.3072i
>> x2=(-B-sqrt(B^2-4*A*C))/(2*A)
x2 =
-1.2500 - 3.3072i
En este caso se observa que los resultados son nmero complejos, es decir x1=-1,25+3,3072i
y x2=-1,25-3,3072i.
2.12. Determinar la altura h de la figura que se muestra sabiendo que =60, Vo=60 m/s y dx=400 m.
Solucin matemtica.
= . cos ( )
. cos( )
43
= . sen( ). 22
Solucin en MATLAB.
>> clc
>> vo=60;
>> theta=60;
>> dx=400;
>> t=dx/(vo*cosd(theta));
>> h=vo*sind(theta)*t-9.81*t^2/2
h=
-179.1797
Por lo tanto diremos que h=-179.1797 m (negativo porque est debajo del eje x de referencia).
2.13. El pez arquero caza insectos lanzndoles un chorro de agua (ver siguiente figura). Determinar
la velocidad inicial (Vo) del chorro de agua y la distancia horizontal (d) para que el pez pueda
dar sobre un escarabajo que se encuentra a una altura h=1,2 m sobre la superficie del agua,
adems el ngulo de disparo es 70.
Solucin matemtica.
2 . 2 ()
==
2
2 . (2)
= 2 =
2
()
2. (2)
=
2
44
FIEE UNCP
Solucin en MATLAB.
>> clc
>> h=1.2;
>> theta=70;
>> vo=sqrt(2*h*9.81)/sind(theta)
vo =
5.1636
>> d=vo^2*sind(2*theta)/(2*9.81)
d=
0.8735
Por lo tanto diremos que para que el pez de en el escarabajo debe estar ubicado a una distancia
de 0,8735 m y enviar con una velocidad inicial de 5,1636 m/s.
BIBLIOGRAFA
45
46
FIEE UNCP
47
CAPTULO III
ARREGLOS VECTORES Y MATRICES CON MATLAB
Un arreglo es una estructura que MATLAB utiliza para almacenar y manipular datos. Un arreglo es
una lista de nmeros dispuestos en filas y/o columnas, si estn dispuestos en filas se llaman arreglos
unidimensionales (lista o vector) y si estn dispuestos en filas y columnas se llaman arreglos
bidimensionales (matrices) y si se tiene ms de dos dimensiones se llama hipermatrices.
3.1 ARREGLO UNIDIMENSIONAL (LISTA O VECTOR).
Un arreglo unidimensional en MATLAB es un conjunto de elementos dispuestos uno a
continuacin de otros, donde cada elemento conserva su mismo espacio y tienen su propio ndice
de identificacin que viene a ser la numeracin consecutiva de cada espacio que ocupa un dato
en el arreglo, esta numeracin en MATLAB empieza en uno (1) a diferencia de otros lenguajes
de programacin como el C++ que empieza en cero (0). En la Figura 3.1 se ilustra el concepto de
arreglo unidimensional.
6.0000
8.0000 -1.0000
8.9000
6.0000
8.0000 -1.0000
8.9000
48
FIEE UNCP
A=
10.0000 12.0000
6.0000
8.0000 -1.0000
8.9000
Para acceder a los elementos individuales de una lista o vector A se hace utilizando los subndices
entre parntesis, as A(n) sera el n-simo elemento del vector X y si queremos acceder al ltimo
elemento podemos indicarlo usando end como subndice.
>> A(5)
ans =
-1
>> A(2)
ans =
12
>> A(end) %ltimo elementos del vector A
ans =
8.9000
Un vector puede cambiar su tamao, si tiene n elementos, basta aadir nuevos valores para las
posiciones n+1, n+2 y as sucesivamente. Si es necesario MATLAB asigna ceros a los elementos
entre el ltimo del vector original y el aadido. Por ejemplo el vector A tiene 6 elementos pero se
pueden aadir elementos de la siguiente manera:
>> A(7)=4
A=
10.0000 12.0000
6.0000
8.0000 -1.0000
8.9000
4.0000
6.0000
8.0000 -1.0000
8.9000
4.0000
2.0000
Tambin es posible aadir nuevos elementos a un vector ya existente a partir de otros vectores.
49
-2
-7
>> z2=[x(1),y,x(4)]
z2 =
3
-7
Para acceder a un bloque de elementos a la vez, se usa la notacin de dos puntos (:), as x(m:n)
nos muestra desde el m-simo hasta el n-simo elemento del vector x.
>> x=[3 -2 6 -7 4 5];
>> x(2:5) %devuelve desde el elemento 2 hasta el elemento 5 del vector x
ans =
-2
-7
Tambin es posible eliminar elementos de un vector existente mediante la asignacin del vaco []
al elemento o rango de elementos que se deseen eliminar.
>> x=[3 -2 6 -7 4 5];
>> x(2)=[ ] % se elimina el segundo elemento del vector x
x=
3
-7
Si introducimos un nmero entre el primero y el segundo tambin separado por dos puntos (:) se
mostrarn los elementos del primero al ltimo indicado, incrementados segn el nmero que
aparece en el centro (o decrementados si el nmero es negativo).
>> x=[3 -2 6 -7 4 5 -8 -3 2];
50
FIEE UNCP
-7
Otra forma de obtener un conjunto concreto de elementos del vector es indicando entre corchetes
[] las posiciones de los elementos que queremos obtener poniendo parntesis fuera de los
corchetes.
>> x=[3 -2 6 -7 4 5 -8 -3 2];
>> x([3 5 1 6]) % devuelve los elementos 3, 5, 1 y 6 del vector x
ans =
6
>> y=(5:9)
y=
5
10
51
>> y=(2:4:11)
y=
2
10
>> z=(50:-7:1)
z=
50
43
36
29
22
15
linspace (a,b) genera un vector linealmente espaciado entre los valores a y b con 100 elementos.
>> x=linspace(-5,5) %genera el vector x con 100 elementos desde -5 hasta 5
x=
Columns 1 through 10
-5.0000 -4.8990 -4.7980 -4.6970 -4.5960 -4.4949 -4.3939 -4.2929 -4.1919 -4.0909
Columns 11 through 20
-3.9899 -3.8889 -3.7879 -3.6869 -3.5859 -3.4848 -3.3838 -3.2828 -3.1818 -3.0808
Columns 21 through 30
-2.9798 -2.8788 -2.7778 -2.6768 -2.5758 -2.4747 -2.3737 -2.2727 -2.1717 -2.0707
Columns 31 through 40
-1.9697 -1.8687 -1.7677 -1.6667 -1.5657 -1.4646 -1.3636 -1.2626 -1.1616 -1.0606
Columns 41 through 50
-0.9596 -0.8586 -0.7576 -0.6566 -0.5556 -0.4545 -0.3535 -0.2525 -0.1515 -0.0505
Columns 51 through 60
0.0505
0.1515
0.2525
0.3535
0.4545
0.5556
0.6566
0.7576
0.8586
0.9596
1.3636
1.4646
1.5657
1.6667
1.7677
1.8687
1.9697
Columns 61 through 70
1.0606
1.1616
1.2626
52
FIEE UNCP
Columns 71 through 80
2.0707
2.1717
2.2727
2.3737
2.4747
2.5758
2.6768
2.7778
2.8788
2.9798
3.3838
3.4848
3.5859
3.6869
3.7879
3.8889
3.9899
4.3939
4.4949
4.5960
4.6970
4.7980
4.8990
5.0000
Columns 81 through 90
3.0808
3.1818
3.2828
4.1919
4.2929
linspace (a,b,c) genera un vector linealmente espaciado entre los valores a y b con c elementos.
>> y=linspace(-5,5,20) %genera el vector y con 20 elementos desde -5 hasta 5
y=
Columns 1 through 10
-5.0000 -4.4737 -3.9474 -3.4211 -2.8947 -2.3684 -1.8421 -1.3158 -0.7895 -0.2632
Columns 11 through 20
0.2632
0.7895
1.3158
1.8421
2.3684
2.8947
3.4211
3.9474
4.4737
5.0000
logspace (a,b) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b
con 50 elementos.
>> x=logspace(0.2,4)
x=
1.0e+04 *
Columns 1 through 10
0.0002
0.0002
0.0002
0.0003
0.0003
0.0004
0.0005
0.0006
0.0007
0.0008
0.0016
0.0019
0.0023
0.0028
0.0033
0.0039
0.0047
Columns 11 through 20
0.0009
0.0011
0.0014
Columns 21 through 30
0.0056
0.0067
0.0081
53
0.0096
0.0115
0.0138
0.0165
0.0197
0.0235
0.0281
0.0574
0.0687
0.0821
0.0981
0.1173
0.1403
0.1677
0.3425
0.4095
0.4895
0.5853
0.6997
0.8365
1.0000
Columns 31 through 40
0.0336
0.0402
0.0480
Columns 41 through 50
0.2005
0.2397
0.2865
logspace (a,b,c) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con
c elementos.
>> x=logspace(0.2,4,10)
x=
1.0e+04 *
0.0002
0.0004
0.0011
0.0029
0.0077
0.0205
0.0541
0.1431
0.3782
1.0000
Descripcin
Suma a cada elemento del vector x el escalar k.
Resta a cada elemento del vector x el escalar k.
Multiplica a cada elemento del vector x el escalar k.
Divide a cada elemento del vector x el escalar k.
Potenciacin del escalar k a cada elemento del vector x.
Potenciacin de cada elemento del vector x elevado a la k.
Suma de los vectores x e y con el mismo nmero de elementos.
Resta de los vectores x e y con el mismo nmero de elementos.
Multiplicacin elemento a elemento de los vectores x e y.
Divisin elemento a elemento.
Potenciacin elemento a elemento
54
FIEE UNCP
x=
3
-2
-1
12
11
10
-2
25
16
>> z1=x+7
z1 =
10
>> z2=2*x
z2 =
6
-4
>> z3=x.^2
z3 =
9
-2
-1
10
>> y=(1:6)
y=
1
>> z1=x+y
z1 =
4
>> z2=x-y
55
z2 =
2
-4
-1
-6
-2
20
-5
24
>> z3=x.*y
z3 =
3
-4
>> z4=x./y
z4 =
3.0000 -1.0000
0.6667
1.2500 -0.2000
0.6667
>> z5=x.^y
z5 =
3
625
-1
4096
56
FIEE UNCP
y=
0.0000 + 1.0000i -1.0000 + 3.0000i 2.0000 + 0.0000i 2.0000 + 2.0000i
>> z1=3+2i+x
z1 =
5.0000 + 1.0000i 4.0000 + 4.0000i 7.0000 + 4.0000i 1.0000 + 3.0000i
>> z2=x-2
z2 =
0.0000 - 1.0000i -1.0000 + 2.0000i 2.0000 + 2.0000i -4.0000 + 1.0000i
>> z3=2*x
z3 =
4.0000 - 2.0000i 2.0000 + 4.0000i 8.0000 + 4.0000i -4.0000 + 2.0000i
>> z4=x+y
z4 =
2.0000 + 0.0000i 0.0000 + 5.0000i 6.0000 + 2.0000i 0.0000 + 3.0000i
>> z5=x.*y
z5 =
1.0000 + 2.0000i -7.0000 + 1.0000i 8.0000 + 4.0000i -6.0000 - 2.0000i
>> z5=x./y
z5 =
-1.0000 - 2.0000i 0.5000 - 0.5000i 2.0000 + 1.0000i -0.2500 + 0.7500i
>> z6=x.^y
z6 =
1.1023 + 1.1457i 0.0042 + 0.0156i 12.0000 +16.0000i 0.0183 + 0.0149i
57
-4
>> n=length(x)
n=
8
>> suma=sum(x)
suma =
18
>> p=prod(x)
-2
58
FIEE UNCP
p=
10080
>> maximo=max(x)
maximo =
7
>> minimo=min(x)
minimo =
-4
>> ordenado=sort(x)
ordenado =
-4
-2
u=
-6
-5
-4
-3
>> i=intersect(x,y)
-2
10
i=
-2
>> d=setdiff(x,y)
d=
-4
5
% Calcula la diferencia de los conjuntos x e y.
>> d1=setdiff(y,x)
59
d1 =
-6
-5
-3
10
60
FIEE UNCP
AxB =
4
11
10
>> AB=dot(A,B)
AB =
-1
Tambin es necesario indicar que la mayora de las funciones matemticas que hemos
desarrollado en el captulo II tambin funcionan con vectores. A continuacin desarrollaremos
algunos ejemplos de aplicacin.
>> x=[3.2,-2.3,5,3,6.8,4.1]
x=
3.2000 -2.3000
5.0000
3.0000
6.8000
4.1000
0.1411
0.4941 -0.8183
>> y1=sin(x)
y1 =
>> y2=ceil(x)
y2 =
4
-2
>> y3=round(x)
y3 =
3
-2
>> y4=sqrt(x)
y4 =
Columns 1 through 4
1.7889 + 0.0000i 0.0000 + 1.5166i 2.2361 + 0.0000i 1.7321 + 0.0000i
61
Columns 5 through 6
2.6077 + 0.0000i 2.0248 + 0.0000i
>> y5=log(x)
y5 =
Columns 1 through 4
1.1632 + 0.0000i 0.8329 + 3.1416i 1.6094 + 0.0000i 1.0986 + 0.0000i
Columns 5 through 6
1.9169 + 0.0000i 1.4110 + 0.0000i
3.2 ARREGLO BIDIMENSIONAL (MATRIZ).
Un arreglo bidimensional en MATLAB es un conjunto de elementos dispuestos en filas y columnas
uno a continuacin de otros, donde cada elemento conserva su mismo espacio y tienen dos
ndices de identificacin (fila,columna), la primera representa al nmero de fila que se inicia con
uno (1) y la segunda representa al nmero de la columna que tambin se inicia con uno (1). En
la Figura 3.2 se ilustra el concepto de arreglo bidimensional, donde la matriz A tiene m filas y n
columnas.
62
FIEE UNCP
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
Para acceder a los elementos individuales de una matriz A se hace utilizando los subndices de
filas y columnas entre parntesis, as A(n,m) sera la n-sima fila y la m-sima columna de la
matriz A y si queremos acceder al ltimo elemento podemos indicarlo usando end como
subndice.
>> A(1,4)
ans =
0
>> A(2,3)
ans =
6
>> A(end) %ltimo elemento de la matriz.
ans =
-3
63
Una matriz puede cambiar su tamao, si tiene n elementos, basta aadir nuevos valores para las
posiciones m+1, m+2 y as sucesivamente. Si es necesario MATLAB asigna ceros a los elementos
que faltan para completar la matriz. Por ejemplo la matriz A tiene 6 columnas, si queremos
aumentar una columna se hace de la siguiente manera:
>> A
A=
2
3
-1
1
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
8
0
0
0
0
Tambin es posible aadir nuevas filas o columnas a una matriz ya existente a partir de otras
matrices, pero la condicin es que si deseamos aadir ms columnas las dos matrices deben
tener el mismo nmero de columnas y si deseamos aadir ms filas las dos matrices deben tener
el mismo nmero de filas.
>> A
A=
2
3
-1
1
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
8
0
0
0
0
>> B=[1 2 3 4 5 6 7]
B=
1
64
FIEE UNCP
>> C=[A;B]
C=
2
3
-1
1
0
1
4 -1
5 6
0 2
2 -2
3 4
2 3
0
-1
1
3
1
4
1
2
1
1
5
5
-1
0
2
-1
-3
6
8
0
0
0
0
7
Para acceder a una fila o a una columna, se usa la notacin de dos puntos (:), as A(m,:) nos
muestra todos los elementos de la fila m y si ponemos A(:,n) nos muestra todos los elementos de
la columna n.
>> A
A=
2
3
-1
1
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
8
0
0
0
0
65
A=
2
3
-1
1
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
8
0
0
0
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
8
0
0
0
0
4
5
2
3
-1
6
-2
4
0
-1
3
1
1
2
1
5
8
0
0
0
Tambin es posible intercambiar filas de una matriz existente, cuyo procedimiento es la siguiente:
>> A=[2 4 -1 0 1 -1;3 5 6 -1 2 0;-1 0 2 1 1 2;1 2 -2 3 1 -1;0 3 4 1 5 -3]
A=
2
3
-1
1
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
0 2
5 6
4 -1
1
-1
0
1
2
1
2
0
-1
66
FIEE UNCP
1
0
2
3
-2
4
3
1
1
5
-1
-3
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
1
2
1
1
5
-1
0
2
-1
-3
0 -1
-1 6
1 2
3 -2
1 4
4
5
0
2
3
1
2
1
1
5
-1
0
2
-1
-3
Tambin es posible renombrar una fila haciendo operaciones aritmticas y sumando a nuevas
filas, cuyo procedimiento es la siguiente:
>> A=[2 4 -1 0 1 -1;3 5 6 -1 2 0;-1 0 2 1 1 2;1 2 -2 3 1 -1;0 3 4 1 5 -3]
A=
2
3
-1
1
0
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
>> A(2,:)=-2*A(2,:)
A=
4 8 -5
-6 -10 -12
-1 0 2
1 2 -2
0 3 4
1
2
1
1
5
-1
0
2
-1
-3
3
2 -4
1 1
3 1
1 5
-3
0
2
-1
-3
>> A(1,:)=A(1,:)+2*A(4,:)
A=
4
3
-1
1
0
8 -5
5 6
0 2
2 -2
3 4
6
-1
1
3
1
3
2
1
1
5
67
-3
0
2
-1
-3
Descripcin
Suma a cada elemento de la matriz A el escalar k.
Resta a cada elemento de la matriz A el escalar k.
Multiplica a cada elemento de la matriz A el escalar k.
Divide a cada elemento de la matriz A el escalar k.
Potenciacin del escalar k a cada elemento de la matriz A.
Potenciacin de cada elemento de la matriz A elevado a la k.
Suma matricial de las matrices A y B (debe cumplir propiedad de suma de
matrices).
Resta matricial de las matrices A y B (debe cumplir propiedad de resta de
matrices).
Multiplicacin matricial de las matrices A y B (debe cumplir con propiedad
de multiplicacin de matrices).
Divisin matricial de las matrices A y B (debe cumplir con la propiedad de
divisin de matrices)
Multiplicacin elemento a elemento de las matrices A y B que deben ser del
mismo orden.
Divisin elemento a elemento de las matrices A y B que deben ser del
mismo orden.
Potenciacin elemento a elemento de las matrices A y B que deben ser del
mismo orden.
68
FIEE UNCP
2
3
-1
1
0
4 -1 0
5 6 -1
0 2 1
2 -2 3
3 4 1
1 -1
2 0
1 2
1 -1
5 -3
>> Z1=A+2
Z1 =
4
5
1
3
2
6
7
2
4
5
1
8
4
0
6
2
1
3
5
3
3
4
3
3
7
1
2
4
1
-1
>> Z2=A-3
Z2 =
-1
0
-4
-2
-3
1 -4 -3 -2 -4
2 3 -4 -1 -3
-3 -1 -2 -2 -1
-1 -5 0 -2 -4
0 1 -2 2 -6
>> Z3=2*A
Z3 =
4 8 -2
6 10 12
-2 0 4
2 4 -4
0 6 8
0
-2
2
6
2
2
4
2
2
10
-2
0
4
-2
-6
>> Z4=A/2
Z4 =
1.0000
1.5000
-0.5000
0.5000
0
2.0000
2.5000
0
1.0000
1.5000
-0.5000
0
0.5000 -0.5000
3.0000 -0.5000 1.0000
0
1.0000 0.5000 0.5000 1.0000
-1.0000 1.5000 0.5000 -0.5000
2.0000 0.5000 2.5000 -1.5000
69
>> Z5=2.^A
ans =
4.0000 16.0000 0.5000 1.0000
8.0000 32.0000 64.0000 0.5000
0.5000 1.0000 4.0000 2.0000
2.0000 4.0000 0.2500 8.0000
1.0000 8.0000 16.0000 2.0000
2.0000
4.0000
2.0000
2.0000
32.0000
0.5000
1.0000
4.0000
0.5000
0.1250
>> Z6=A.^2
Z6 =
4
9
1
1
0
16 1
25 36
0 4
4 4
9 16
0
1
1
9
1
1
4
1
1
25
1
0
4
1
9
4 -1
5 6
0 2
2 -2
3 4
>> B
B=
0
-1
1
3
1
1 -1
2 0
1 2
1 -1
5 -3
>> Z1=A+B
Z1 =
70
FIEE UNCP
2
2
0
4
1
5
7
1
3
8
-2
6
4
-3
1
>> Z2=A-B
Z2 =
2
4
-2
-2
-1
3 0
3 6
-1 0
1 -1
-2 7
>> A
A=
2
3
-1
4 -1
5 6
0 2
>> B
B=
0
-1
1
1 -1
2 0
1 2
>> Z3=A*B
Z3 =
-5 9 -4
1 19 9
2 1 5
>> Z4=A/B
Z4 =
3.8000 -0.6000
1.4000
71
4 1
10 0
0 4
>> Z6=A./B
Z6 =
Inf
4.0000 1.0000
-3.0000 2.5000
Inf
-1.0000
0
1.0000
>> Z7=A.^B
Z7 =
1.0000 4.0000 -1.0000
0.3333 25.0000 1.0000
-1.0000
0 4.0000
A continuacin desarrollaremos ejemplos de aplicaciones aritmticas con matrices de nmero
complejos.
>> A=[2-i,1+2i;4+2i,-2+i]
A=
2.0000 - 1.0000i 1.0000 + 2.0000i
4.0000 + 2.0000i -2.0000 + 1.0000i
>> B=[1+2i,-2;2+3i,-1+i]
B=
1.0000 + 2.0000i -2.0000 + 0.0000i
2.0000 + 3.0000i -1.0000 + 1.0000i
>> Z1=A+B
72
FIEE UNCP
Z1 =
3.0000 + 1.0000i -1.0000 + 2.0000i
6.0000 + 5.0000i -3.0000 + 2.0000i
>> Z2=2-j+A
Z2 =
4.0000 - 2.0000i 3.0000 + 1.0000i
6.0000 + 1.0000i 0.0000 + 0.0000i
>> Z3=A*B
Z3 =
0.0000 +10.0000i -7.0000 + 1.0000i
-7.0000 + 6.0000i -7.0000 - 7.0000i
>> Z4=A/B
Z4 =
-0.6538 - 0.7308i 0.4231 - 0.1154i
1.1923 + 0.0385i 0.3462 - 0.7308i
b) Funciones que trabajan con matrices.
En el Cuadro 3.4 se muestra las funciones ms importantes que trabajan con matrices.
Funcin
size(A)
sum(A)
prod(A)
sort(A)
max(A)
min(A)
mean(A)
median(A)
mode(A)
std(A)
var(A)
trace(A)
det(A)
inv(A)
diag(A)
tril(A)
triu(A)
rot90(A)
fliplr(A)
flipud(A)
transpose(A)
73
4 -1
5 6
0 2
2 -2
3 4
0
-1
1
3
1
>> [f,c]=size(A)
1
2
1
1
5
-1
0
2
-1
-3
f=
5
c=
6
>> S=sum(A)
S=
5
14
10
>> S1=sum(sum(A))
S1 =
39
>> P=prod(A)
-3
74
FIEE UNCP
P=
0
96
10
>> or=sort(A)
or =
-1
0
1
2
3
0 -2
2 -1
3 2
4 4
5 6
-1
0
1
1
3
1 -3
1 -1
1 -1
2 0
5 2
>> mayor=max(A)
mayor =
3
-3
>> menor=min(A)
menor =
-1
-2
-1
>> prom=mean(A)
prom =
1.0000
2.8000
1.8000
>> mediana=median(A)
mediana =
1
-1
-1
>> moda=mode(A)
moda =
-1
-2
>> ds=std(A)
0.8000
2.0000 -0.6000
ds =
1.5811
1.9235
3.3466
1.4832
1.7321
1.8166
3.7000 11.2000
2.2000
3.0000
3.3000
>> varianza=var(A)
varianza =
2.5000
4 -1
5 2
2 1
-2 3
0
0
2
1
>> t=trace(B)
t=
9
>> d=det(B)
d=
-71.0000
>> I=inv(B)
I=
0.5211 -0.1972 -0.1831 0.3662
-0.1268 0.1831 0.0986 -0.1972
-0.4648 0.3380 0.0282 -0.0563
0.6197 -0.4507 0.2958 0.4085
>> di=diag(B)
di =
2
75
76
FIEE UNCP
5
1
1
>> Bs=tril(B)
Bs =
2
3
-1
1
0
5
2
-2
0
0
1
3
0
0
0
1
>> Bi=triu(B)
Bi =
2
0
0
0
4
5
0
0
-1
2
1
0
0
0
2
1
>> R=rot90(B)
R=
0
-1
4
2
0 2
2 1
5 2
3 -1
1
3
-2
1
>> H=fliplr(B)
H=
0
0
2
1
-1 4
2 5
1 2
3 -2
2
3
-1
1
>> V=flipud(B)
V=
1
-1
-2
2
3
1
1
2
3
2
5
4
2
-1
77
0
0
>> T=transpose(B)
T=
2
4
-1
0
3 -1
5 2
2 1
0 2
1
-2
3
1
>> T1=B'
T1 =
2
4
-1
0
3 -1
5 2
2 1
0 2
1
-2
3
1
Tambin es necesario indicar que la mayora de las funciones matemticas que hemos
desarrollado en el captulo II tambin funcionan con matrices. A continuacin desarrollaremos
algunos ejemplos de aplicacin.
>> A=[3.2,-2.3,5;3,6.8,4.1]
A=
3.2000 -2.3000
3.0000 6.8000
5.0000
4.1000
>> Z1=sin(A)
Z1 =
-0.0584 -0.7457 -0.9589
0.1411 0.4941 -0.8183
>> Z2=ceil(A)
Z2 =
4
3
-2
7
5
5
>> Z4=round(A)
78
FIEE UNCP
Z4 =
3
3
-2
7
5
4
>> Z5=sqrt(A)
Z5 =
1.7889 + 0.0000i 0.0000 + 1.5166i 2.2361 + 0.0000i
1.7321 + 0.0000i 2.6077 + 0.0000i 2.0248 + 0.0000i
>> Z6=log(A)
Z6 =
1.1632 + 0.0000i 0.8329 + 3.1416i 1.6094 + 0.0000i
1.0986 + 0.0000i 1.9169 + 0.0000i 1.4110 + 0.0000i
c) Construccin rpida de matrices.
En el Cuadro 3.5 se muestra las funciones ms importantes que sirven para construccin de
matrices rpidas.
Cuadro 3.5. Funciones relacionados con la construccin de matrices en MATLAB.
Funcin
Descripcin
zeros(n)
Genera una matriz nula (de ceros) de nxn.
zeros(m,n)
Genera una matriz nula (de ceros) de mxn.
ones(n)
Genera una matriz de nxn, donde cada elemento es 1.
ones(m,n)
Genera una matriz de mxn, donde cada elemento es 1.
rand(n)
Genera una matriz de nxn con nmeros aleatorios entre 0 y 1.
rand(m,n)
Genera una matriz de mxn con nmeros aleatorios entre 0 y 1.
eye(n)
Genera una matriz identidad (diagonal de unos) de nxn.
Genera una matriz mgica (suma de filas, columnas y diagonales son
magic(n)
iguales) de nxn.
pascal(n)
Genera una matriz de nxn con el tringulo de Pascal.
Construye una matriz cuya diagonal son a, b, c, . El orden de la matriz
blkdiag(a,b,c,)
depende del nmero de elementos a, b, c,
0
0
0
0
0
0
>> Z1=zeros(3,4)
Z1 =
0
0
0
0
0
0
0
0
0
0
0
0
>> On=ones(4)
On =
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
>> On=ones(4,2)
On =
1
1
1
1
1
1
1
1
>> R=rand(3)
R=
0.8147
0.9058
0.1270
0.9134
0.6324
0.0975
0.2785
0.5469
0.9575
>> R=rand(2,3)
R=
0.9649
0.1576
0.9706
0.9572
>> X=eye(3)
X=
1
0
0
0
1
0
0
0
1
>> M=magic(3)
M=
8
0.4854
0.8003
79
80
FIEE UNCP
3
4
5
9
7
2
>> M1=magic(5)
M1 =
17
23
4
10
11
24 1 8 15
5 7 14 16
6 13 20 22
12 19 21 3
18 25 2 9
>> P=pascal(4)
P=
1
1
1
1
1
2
3
4
1 1
3 4
6 10
10 20
>> C=blkdiag(2,4,1,-2)
C=
2
0
0
0
0
4
0
0
0
0
1
0
0
0
0
-2
81
>> A=[1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36]
A=
1
>> B=13:24
12
14
16
18
19
21
23
25
27
30
32
34
36
82
FIEE UNCP
B=
13
14
15
16
17
18
19
20
21
22
23
24
>> C=3:3:36
C=
3
12
15
>> AoB=union(A,B)
18
21
24
>> AoC=union(A,C)
33
36
14
15
16
17
18
19
18
19
21
>> ByC=intersect(B,C)
12
14
15
16
BoCyA =
3 9 12
23
14
16
>> A_B=setdiff(A,B)
18
19
21
27
30
12
25
27
30
12
14
16
>> AyByC=intersect(intersect(A,B),C)
AyByC =
18 21
23
24
23
24
25
27
30
33
34
36
36
% Solucin e.
32
34
>> AoC_ByC=setdiff(union(A,C),intersect(B,C))
AoC_ByC =
1 3 5
22
24
% Solucin d.
21
% Solucin c.
>> BoCyA=intersect(union(B,C),A)
A_B =
1 3
20
% Solucin b.
AoC =
1 3 5 6 7
32 33 34 36
21
30
% Solucin a.
AoB =
1 3 5 7 9 12 13
25 27 30 32 34 36
ByC =
15 18
27
19
23
36
% Solucin f.
25
27
% Solucin g.
30
32
83
Solucin en MATLAB.
>> a=[2 3 4]
a=
2
>> b=[3 1 2]
b=
3
>> axb=cross(a,b)
axb =
2 8
-7
84
FIEE UNCP
Solucin en MATLAB.
>> h=[2 1 3 2 2 1 0 5 2 4 6 0 0 1 1 2 1 1 1 2 3 2 4 3 1 0 2 4 2 2]
h=
Columns 1 through 18
2
Columns 19 through 30
1
>> media=mean(h)
media =
2
>> mediana=median(h)
mediana =
2
>> moda=mode(h)
moda =
2
>> destandar=std(h)
destandar =
1.4856
>> varianza=var(h)
varianza =
2.2069
Por lo tanto diremos que:
Media=2
Mediana=2
Moda=2
Desviacin estndar=1,4856
Varianza=2,2069
anxn+an-1xn-1+an-2xn-2++ao=0
Como ejemplo hallaremos las races de la ecuacin:
X2 + 3x 10 = 0
Solucin en MATLAB.
>> c=[1,3,-10]
c=
1
3 -10
>> x=roots(c)
x=
-5
2
Entonces podemos concluir que:
x1 = -5 y x2=2.
Otro ejemplo sera para hallar las races de la ecuacin:
-5
>> x=roots(c)
x=
1.7206 + 0.6507i
1.7206 - 0.6507i
0.0421 + 1.1997i
0.0421 - 1.1997i
-1.0253 + 0.0000i
-1
10
85
86
FIEE UNCP
Solucin en MATLAB.
>> A=[1 3 5 2;0 -1 3 4;2 1 9 6;3 2 4 8]
A=
1
0
2
3
3
-1
1
2
5
3
9
4
2
4
6
8
>> d=det(A)
d=
160
La determinante de la matriz A es 160.
87
Como ejemplo hallaremos las transpuestas de las matrices A1, A2 y A3 que se muestran en la
siguiente figura:
Solucin en MATLAB.
>> A1=[3 -1;-2 4]
A1 =
3 -1
-2 4
>> A2=[2 4 3;5 -1 2;-2 6 -3]
A2 =
2 4
5 -1
-2 6
3
2
-3
1
4
7
-2
9
88
FIEE UNCP
>> A1t=transpose(A1)
A1t =
3 -2
-1 4
>> A2t=transpose(A2)
A2t =
2 5 -2
4 -1 6
3 2 -3
>> A3t=transpose(A3)
A3t =
2 -1
0 3
1 4
-3 -5
5 -4
7 -2
8
6
9
Por lo tanto podemos decir que las transpuestas de las matrices A1, A2 y A3.
Solucin en MATLAB.
>> A=[1 -1 3 0;2 1 0 2;0 -1 1 0;0 1 1 -1]
A=
1
2
0
0
-1
1
-1
1
3
0
1
1
0
2
0
-1
>> A_1=inv(A)
A_1 =
5.0000 -2.0000 -11.0000 -4.0000
-2.0000 1.0000 4.0000 2.0000
-2.0000 1.0000 5.0000 2.0000
-4.0000 2.0000 9.0000 3.0000
Por lo tanto podemos decir que la inversa de la matriz A.
89
90
FIEE UNCP
BIBLIOGRAFA
91
92
FIEE UNCP
93
CAPTULO IV
PROGRAMACIN EN MATLAB
Antes de ingresar a la programacin en MATLAB, es necesario sugerir que el lector tenga alguna
experiencia de programacin en otros lenguajes tales como C++, Visual Basic, Visual FoxPro, etc.
MATLAB puede utilizarse como un lenguaje de programacin que tiene la gran ventaja de poder
incorporar a los programas propios del usuario todas las aplicaciones que ya tiene implementadas, lo
cual facilita y simplifica en muchos casos la programacin. Tambin ser de gran utilidad tener en
cuenta la estructura vectorial y matricial del programa. Todos los programas en MATLAB se escriben
en archivos (*.m) llamados M-fichero, el cual se explicar con mayor detalle durante el presente
captulo.
4.1 CREACIN DE ARCHIVOS M-FICHEROS EN MATLAB.
Para crear un archivo M-Fichero y poder disear un programa, en la versin R2015a del
MATLAB, existe bsicamente tres maneras:
1) Presionar Ctrl+N.
2) Hacer clic en el botn New Script que se muestra en la Figura 4.1
3) Hacer clic en el botn New que se muestra en la Figura 4.1 y seleccionar la opcin Script.
Figura 4.1. Pantalla principal del MATLAB que muestra los botones para crear archivos M -Ficheros.
Con cualquiera de las tres formas mencionadas, inmediatamente se visualizar la ventana Editor
en el cual se puede disear los programas correspondientes, tal como se muestra en la Figura 4.2.
94
FIEE UNCP
Figura 4.2. Pantalla principal del MATLAB en el que se muestra la ventana de editor de programas.
Luego de terminar el diseo del programa se debe grabar o guardar el archivo, para ello se debe
hacer clic en el botn Save que se muestra en la Figura 4.2 y saldr la ventana que se muestra
en la Figura 4.3, en el cual se debe ingresar el nombre del archivo y hacer clic en el botn
Guardar y el programa estar listo para su ejecucin.
95
Para ejecutar un programa grabado se debe hacer clic en el botn Run que se muestra en la
Figura 4.2 o simplemente presionar la tecla de funcin F5, luego el programa se ejecuta en la
ventana Command Windows que se muestra en la Figura 4.2.
4.2 OPERACIONES DE ENTREDA Y SALIDA DE DATOS EN MATLAB.
Todo lenguaje de programacin, para que sea prctico debe tener procedimientos para entrada
y salida de datos. En este caso en MATLAB existen varios procedimientos para entrada y salida
de datos los cuales, desarrollaremos a continuacin.
a) Entrada de datos (lectura de datos).
Para ingresar datos a un programa en MATLAB se utiliza la funcin input de la siguiente
manera:
>>X=input( );
>>Y=input(Ingrese dato: );
96
FIEE UNCP
decimal, la letra o para visualizar el resultado en base octal o la letra x para ver el resultado en
base exadecimal), luego viene otro comentario ms seguido de %8.2f lo que significa que
en un espacio de 8 caracteres y con 2 decimales se imprimir el valor de la variable b que es
del tipo real (letra f de float tambin se puede usar las letras e y E que expresan en formato
exponencial y de ingeniera) y luego viene el comentario es seguido de %10.2f\n lo que
significa que en un espacio de 10 caracteres y con 2 decimales se imprimir el valor de la
variable suma, adems \n significa que para el siguiente fprintf se har un salto de lnea,
por ltimo se visualiza a,b,suma que es el orden de impresin del fprintf, es decir cada
smbolo porcentaje (%) que se encuentra dentro del fptinf corresponde a una variable que se
imprimir; en el ejemplo anterior la expresin 10i corresponde a la variable a, %8.2f
corresponde a la variable b y finalmente %10.2f\n corresponde a la variable suma seguido
del salto de lnea.
En el resultado que muestra el fprintf anterior se observan espacios en blanco, eso es debido
a que se ha impreso con anchos de 8 y 10 espacios para las variables b y suma, entonces
para evitar que salgan espacios innecesarios es mejor asigna un espacio de 1 y el MATLAB
se encarga de autoespaciarlos, entonces el ejemplo anterior quedara as:
>> a=5;
>> b=5.4;
>> suma=a+b;
>> fprintf('La suma de %1i ms %1.2f es %1.2f\n',a,b,suma)
La suma de 5 ms 5.40 es 10.40
%Ya no se muestran espacios.
A continuacin presentamos algunos ejemplos adicionales del fprintf con nmeros enteros.
>> N=3675;
>> fprintf('N=%1d\n',N) %N en base 10
N=3675
>> fprintf('N=%1o\n',N) %N en base 8 (octal)
N=7133
>> fprintf('N=%1x\n',N) %N en base 16 (exadecimal)
N=e5b
%en este caso e=14 y b=11, es decir N=3675=(14)5(11) 16.
A continuacin presentamos algunos ejemplos adicionales del fprintf con nmeros reales.
>> N=5678.893;
>> fprintf('N=%1.4f\n',N)
N=5678.8930
>> fprintf('N=%1.4e\n',N)
N=5.6789e+03
>> fprintf('N=%1.7E\n',N)
N=5.6788930E+03
97
4 3
=
3
Para disear el programa presione ctrl+N para abrir la ventana de edicin de programas y luego
digite el siguiente programa secuencial.
clc;
r=input('Ingrese radio: ');
v=4*pi*r^3/3;
fprintf('volumen=%1.2f\n',v);
Luego grbelo con el nombre volesfera.m haciendo clic en el botn Save (ver Figura 4.2), y se
debe observar tal como se muestra en la Figura 4.5.
98
FIEE UNCP
clc;
r=input('Ingrese radio (cm): ');
v=4*pi*r^3/3;
fprintf('volumen=%1.2f m3\n',v);
El resultado que se muestra sera:
Ingrese radio (cm): 4
volumen=268.08 m3
Lo que significa que el volumen de una esfera de radio=4 cm es de 268,08 cm 3.
4.4. ESTRUCTURAS CONDICIONALES.
En la mayor parte de los problemas - por no decir todos - que se presentan en la vida cotidiana y
que se pueden solucionar mediante un programa computacional, siempre presentan algunas
condiciones que harn cambiar una estructura secuencial.
99
Las estructuras condicionales se utilizan para tomar decisiones lgicas, por eso muchas veces,
se les llaman estructuras selectivas, porque se tienen que seleccionar una determinada accin
de acuerdo al valor de la condicin planteada.
Las condiciones se especifican usando los operadores de relacin (menor, mayor, igual, etc.) y
los operadores lgicos (y, o, negacin), adems se debe tener en cuenta que las condiciones
pueden ser simples o complejas pero siempre tendr un nico valor que puede ser VERDADERO
(V) o FALSO (F).
a) Operadores de relacin en MATLAB.
Los operadores de relacin, se utilizan para expresar condiciones simples y describe una
relacin entre dos valores; a travs de los operadores de relacin se construyen condiciones
que sern evaluadas como VERDADERO (1) o FALSO (0).
En un programa se puede hacer comparaciones tanto con datos numricos (enteros y reales)
como con datos de tipo carcter o del tipo cadena. En el Cuadro 4.1 se observa los operadores
de relacin que se usan en MATLAB.
Cuadro 4.1. Operadores de relacin en MATLAB.
Operador de
Equivalente
relacin en
Significado
matemtico
MATLAB
>
Mayor que
>
<
Menor que
<
>=
Mayor o igual que
<=
Menor o igual que
==
Igual que
=
~=
Diferente que (No igual que)
100
FIEE UNCP
En el Cuadro 4.3 se muestra los valores que devuelve despus de trabajar con los operadores
lgicos.
Variables del tipo lgico
A
B
V
V
V
F
F
V
F
F
Instruccin
end
1;
2;
3;
N;
Antes de continuar es necesario aclarar que a diferencia del C++, en MATLAB la condicin no
necesariamente tiene que estar entre parntesis, sin embargo se recomienda que la condicin
est entre parntesis.
101
102
FIEE UNCP
Instruccin
else
Instruccin
Instruccin
Instruccin
Instruccin
end
1;
2;
3;
N;
a;
b;
c;
z;
103
Ingrese un nmero: 6
6! = 720
Cuando se ejecuta y se ingresa el nmero -6, sale lo siguiente:
Ingrese un nmero: -6
En nmero ingresado debe ser mayor o igual que cero
e) Estructura condicional mltiple (if elseif elseif else ... end)
Este es un caso muy especial, pero muy utilizado en la prctica ya que muchas veces es
necesario evaluar ms de dos condiciones a la vez tal como se muestra en la Figura 4.8.
104
FIEE UNCP
las condiciones son falsas llega a evaluar la condicin N, si es verdadera ejecuta el grupo
de instrucciones N y salta a la siguiente sentencia del programa y si dicha condicin es falsa
ejecuta el grupo de instrucciones otro y contina el programa.
Una estructura condicional mltiple en MATLAB tiene la siguiente estructura:
if (condicin 1)
Grupo de instrucciones 1;
elseif (condicin 2)
Grupo de instrucciones 2;
elseif (condicin 3)
Grupo de instrucciones 3;
elseif (condicin N)
Grupo de instrucciones N;
else
Grupo de instrucciones otro;
end
A continuacin desarrollaremos una aplicacin de una estructura condicional mltiple, para
ello se pide elaborar un programa que ingrese desde el teclado el valor de x y luego debe
calcular el valor de y de acuerdo al siguiente detalle:
( )
= {
2 + ln( )
< 0
0 <1
1
105
106
FIEE UNCP
107
5 3
= {2 2 + 6
+
= 1
= 2, 3, 4
108
FIEE UNCP
b) Acumulador.
Un acumulador es una variable cuya misin es almacenar cantidades variables de valores en
la misma variables. Este tipo de variable es muy comn utilizar para totalizar por ejemplo en
sumas, promedios, etc.. Las siguientes sentencias son ejemplos de acumuladores en
MATLAB.
suma=10;
suma=suma+5;
suma=suma+25;
109
Instruccin N;
end
A continuacin desarrollaremos una aplicacin de la estructura repetitiva mientras, en este
caso desarrollaremos un programa para determinar la suma de N nmeros enteros que se
ingresan desde el teclado.
110
FIEE UNCP
clc
N=input('Ingrese nmero de datos: ');
i=1;
suma=0;
while (i<=N)
dato=input('Ingrese nmero: ');
suma=suma+dato;
i=i+1;
end
fprintf('Suma=%1d\n',suma);
Cuando se ejecuta para un valor de N=5 e ingresamos los datos 12, 17, 8, 30 y 18; sale lo
siguiente:
Ingrese nmero de datos: 5
Ingrese nmero: 12
Ingrese nmero: 17
Ingrese nmero: 8
Ingrese nmero: 30
Ingrese nmero: 18
Suma=85
d) Estructura repetitiva para (for --- end).
La estructura repetitiva para se inicia con un contador que tiene un valor inicial (Vi) y un
valor final (Vf) y que en cada iteracin se incremente generalmente de uno en uno; pero en
MATLAB se puede incrementar de dos en dos o de tres en tres, etc.; entonces la cantidad de
veces que se ejecuta el bucle ser mientras que el valor actual del contador sea menor o
igual al valor final (Vf). En la estructura repetitiva para el incremento en cada iteracin es
automtico. El diagrama de flujo de esta estructura es similar al de la estructura repetitiva
mientras (ver Figura 4.10).
La estructura repetitiva para en MATLAB tiene la siguiente estructura:
for (contador=Vi:Vf)
Instruccin 1;
Instruccin 2;
Instruccin 3;
Instruccin N;
end
En el caso mostrado el contador se incremente de uno en uno desde el valor inicial (Vi) hasta
llegar al valor final (Vf), si se quiere que el incremento sea de n en n la estructura sera:
111
for (contador=Vi:n:Vf)
Instruccin 1;
Instruccin 2;
Instruccin 3;
Instruccin N;
end
En el caso que Vi sea mayor que Vf el valor de n debe ser negativo, y en este caso diremos
que el valor del contador se decrementa de n en n.
Para poder mostrar la diferencia, a continuacin desarrollaremos la misma aplicacin de la
estructura repetitiva mientras, en este caso desarrollaremos un programa para determinar
la suma de N nmeros enteros que se ingresan desde el teclado pero utilizando la estructura
repetitiva para.
clc
N=input('Ingrese nmero de datos: ');
suma=0;
for (i=1:N)
dato=input('Ingrese nmero entero: ');
suma=suma+dato;
end
fprintf('Suma=%1d\n',suma);
Cuando se ejecuta para un valor de N=5 e ingresamos los datos 24, 8, 12, 5 y 12; sale lo
siguiente:
Ingrese nmero de datos: 5
Ingrese nmero entero: 24
Ingrese nmero entero: 8
Ingrese nmero entero: 12
Ingrese nmero entero: 5
Ingrese nmero entero: 12
Suma=61
Un caso especial del uso de la estructura repetitiva para, que ningn lenguaje de
programacin lo tiene, es que MATLAB puede utilizar de la siguiente manera:
for (i=k)
Instruccin
Instruccin
Instruccin
Instruccin
end
1;
2;
3;
N;
112
FIEE UNCP
113
Instruccin N;
variables_retorno;
end
Donde:
[variables_retorno]
nombre_funcion
(lista_parametros)
Como ejemplo de aplicacin disearemos una funcin que calcule el logaritmo en base b de
cualquier nmero N a esta funcin lo llamaremos logbN, para ello utilizaremos la siguiente
frmula:
=
Entonces el cdigo de programacin sera:
function [y]=logbN(N,b)
y=log10(N)/log10(b);
end
log ()
log()
114
FIEE UNCP
Nota: Las funciones se disean en la misma ventana donde se desarrollan los programas, es
decir, para empezar a disear una funcin se presionar ctrl+N (ver tme 4.1) y para usar una
funcin en MATLAB se debe grabar con el mismo nombre de la funcin respetando minsculas
y maysculas (ver Figura 4.3), entonces en este caso debemos grabar con el nombre
logbN.m, luego para probar el funcionamiento se debe ingresar los siguiente:
>> x=logbN(8,2) %calcula el logaritmo de 8 en base 2.
x=
3
>> y=logbN(20,4) %calcula el logaritmo de 20 en base 4.
y=
2.1610
b) Funciones sin entrada o salida.
Normalmente, las funciones necesitan por lo menos una variable como parmetro de entrada
y retornan al menos un valor de salida, sin embargo en algunas situaciones no se necesitan
ningn valor de entrada, y en algunos otros no se necesitan ningn valor de salida, este ltimo
caso se conoce como procedimiento en otros lenguajes de programacin, la estructura de
una funcin con estas caractersticas sera. Generalmente este caso se usa para definir
constantes como el valor de pi (3,141592).
function [ ]=nombre_funcion( )
Instruccin 1;
Instruccin 2;
Instruccin 3;
Instruccin N;
end
Por ejemplo si deseamos crear una funcin que devuelva el valor de la velocidad de la luz,
sera:
function [y]=velocluz()
y=3e8;
end
Cuando se llama a la funcin el resultado que se muestra sera:
>> velocluz
ans =
300000000
115
Otra aplicacin de un procedimiento que es una funcin que no devuelve ningn valor sera
para graficar una parbola de la forma ax2+bx+c, entonces el cdigo sera:
function []=parabola(a,b,c,puntos)
x=linspace(-5,5,puntos);
y=a*x.^2+b*x-c;
plot(x,y);
grid on
end
Entonces para graficar una parabola de la forma y=x2+4 con 8 puntos sera:
>> parabola(1,0,4,8)
En este caso el resultado que se obtendra sera el que se muestra en la Figura 4.11.
116
FIEE UNCP
117
1 =
+ 2 4
2
2 4
2 =
2
El programa en MATLAB sera:
% races de una ecuacin de la forma Ax2+Bx+C=0
clc;
A=input('Ingrese A: ');
B=input('Ingrese B: ');
C=input('Ingrese C: ');
x1=(-B+sqrt(B^2-4*A*C))/(2*A);
x2=(-B-sqrt(B^2-4*A*C))/(2*A);
fprintf('x1 =');disp(x1);
fprintf('x2 =');disp(x2);
Cuando se ejecuta el programa para valores de A=1, B=5 y C=-20 se obtiene lo siguiente:
Ingrese A: 1
Ingrese B: 5
Ingrese C: -20
x1 = 2.6235
x2 = -7.6235
4.2. Elaborar un programa para determinar el rea del tringulo cuyos lados se deben ingresar desde
el teclado; tener en cuenta que si los lados ingresados no corresponden a un tringulo debe salir
el mensaje Los lados no corresponden a un tringulo.
118
FIEE UNCP
BIBLIOGRAFA
119
120
FIEE UNCP
121
CAPTULO V
GRFICOS EN MATLAB
La representacin grfica de cualquier serie de datos es uno de los aspectos muy importantes que
tiene el MATLAB. Dispone de funciones para representar series de puntos, lneas, superficies, curvas
de nivel, permite agrupar y superponer grficos, realizar grficos estadsticos, etc.; prcticamente
cualquier cosa puede representarse grficamente en MATLAB, ya que permite crear complejos
grficos bidimensionales y tridimensionales.
Para hacer grficos se utiliza una ventana especial para la creacin de los grficos que se llama
ventana grfica o de dibujo (ver Figura 5.1) en dicha ventana existen una barra de mens y la barra
de herramientas con conos que sirven para editar y mejorar los grficos. Un cono muy importante es
para guardar los grficos en ficheros de extensin .fig y con el cono de abrir archivos se puede
recuperar los grficos guardados, adems existe otro cono para imprimir grficos. Para poder copiar
un grfico y llevarlo al Word o Excel simplemente se debe ingresar al men Edit/Copy Figure y pegarlo
en la aplicacin correspondiente utilizando ctrl-V.
122
FIEE UNCP
Para hacer grficos bidimensionales en MATLAB se utiliza la funcin plot(x,y); donde x e y son
vectores que tienen el mismo nmero de elementos, de tal manera que cada elemento de x
corresponde al mismo elemento de y, por lo que se van formando pares ordenados de la forma
(xi;yi) donde i represente el ndice del vector correspondiente y la funcin plot va juntando los
puntos a travs de una lnea en el sistema de coordenadas x,y, por ejemplo
>> x=[-2,-1,2,4];
>> y=[-3,2,4,-1];
>>plot(x,y);
% une los puntos (-2;-3), (-1;2), (2;4) y (4;-1)
Luego sale el grfico que se muestra en la Figura 5.2.
Figura 5.2. Grafico que muestra la unin de los puntos (3;1), (5;3), (2;-1) y (4;3).
a) Grficas de funciones de la forma y = f(x).
- Grfica de una recta de la forma y=ax+b.
Para graficar una recta slo es necesario conocer dos puntos en el plano cartesiano como
se muestra en la Figura 5.3, para graficar esta recta que pasa por los puntos (0;-3) y (2;1)
en MATLAB se procede de la siguiente manera:
>> x=[0 2];
>> y=[-3 1];
>> plot(x,y)
El resultado de esta operacin se muestra en la Figura 5.4.
123
124
FIEE UNCP
>> plot(x,y)
>> axis equal
Figura 5.4. Grfica de la recta de la Figura 5.3 en MATLAB con ejes iguales.
Otra observacin es que el MATLAB auto ajusta sus escalas al tamao necesario, pero
muchas veces, este detalle hace que los grficos no sean tan explcitos por ello MATLAB
tiene la sentencia axis([x1 x2 y1 y2]) que define el rea de la zona grfica desde el punto
(x1;y1) hasta el punto (x2;y2), es decir, la extensin del eje x es desde x1 hasta x2 y del eje
y es desde y1 hasta y2. Entonces las nuevas sentencias seran:
>> x=[0 2];
>> y=[-3 1];
>> plot(x,y)
>> axis equal
>> axis([-5 6 -5 4])
125
Figura 5.5. Grfica de la recta de la Figura 5.3 en MATLAB con rea definida.
>> x=[0 2];
>> y=[-3 1];
>> plot(x,y)
>> axis equal
>> axis([-5 6 -5 4])
>>grid on;
126
FIEE UNCP
Despus de este pequeo prembulo muy necesario para comprender mejor los grficos que
genera MATLAB, desarrollaremos las sentencias necesarias para graficar una recta de la
forma y=ax+b, donde los literales a y b representan a cualquier nmero real, entonces
como se dijo anteriormente se debe generar dos vectores para x e y, por ello las sentencias
graficar una recta sera la siguiente:
>>x=linspace(-5,5,11); %genera 11 puntos desde el -5 al 5
>>y=2.*x-3;
%genera 11 puntos para y=2x-3
>>plot(x,y);
>>axis equal;
>>axis([-6 6 -15 10]);
>>grid on;
Entonces se obtiene el grfico que se muestra en la Figura 5.7.
127
Figura 5.8. Grfico que representa a la recta y=2x-3 con rejillas ms pequeas.
- Grfica de una funcin cuadrtica de la forma y=ax2+bx+c (parbola).
La ecuacin de segundo grado, tambin llamada ecuacin cuadrtica, se puede escribir de
la forma y=ax2+bx+c, en donde las literales a, b y c representan a cualquier nmero real. El
grfico de este tipo le corresponde a una parbola.
Si el coeficiente del trmino cuadrtico es positivo, o sea a>0, la parbola se abre hacia
arriba; si el coeficiente del trmino cuadrtico es negativo, o sea a<0, la parbola se abre
hacia abajo.
A continuacin desarrollaremos las sentencias necesarias para graficar una parbola de la
forma y=2x2-4x+5.
>> x=linspace(-4,6,100);
>> y=2*x.^2-4*x+5;
>> plot(x,y)
>> axis([-5 7 0 60])
>> grid on
>> grid minor
128
FIEE UNCP
129
Figura 5.11.
130
FIEE UNCP
En la Figura 5.11 hay dos puntos mximos (puntos A y C) y dos puntos mnimos (puntos B y
D), por lo tanto, en total hay cuatro puntos entre mximos y mnimos. En un polinomio de
tercer grado hay dos mximos y mnimos (ver Figura 5.10); en un polinomio de cuarto grado
existen tres mximos y mnimos, en un polinomio de quinto grado hay cuatro mximos y
mnimos, etc.. Es decir, la grfica de un polinomio de grado n debe tener n-1 mximos y
mnimos.
Otra caracterstica de una grfica polinomial es saber para dnde apuntan sus extremos. Si
el polinomio es de grado par sus dos extremos se abren hacia el mismo lado; ambos hacia
arriba si el coeficiente del primer trmino del polinomio es positivo (ver Figura 5.11) o ambos
hacia abajo si dicho coeficiente es negativo.
A continuacin desarrollaremos las sentencias necesarias para graficar una funcin de cuarto
grado de la forma y=x4+x3-5x2-3.
>> x=linspace(-2.5,2,100);
>> y=x.^4+x.^3-5*x.^2-3;
>> plot(x,y)
>> axis([-3 2.5 -16 2])
>> grid on
>> grid minor
Entonces se obtiene el grfico que se muestra en la Figura 5.11.
131
132
FIEE UNCP
133
134
FIEE UNCP
135
136
FIEE UNCP
137
En resumen podemos hacer una aplicacin en MATLAB tomando en cuenta todo lo tratado
con respecto a la funcin sinusoidal de la forma y=a+b.sen(cx+). Por ejemplo
y=2+3sen(3x+90) cuya grfica en MATLAB se muestra en la Figura 5.21, en el intervalo de
0 a 360.
>> x=linspace(0,360,100);
>> y=2+3*sind(3*x+90);
>> plot(x,y)
>> axis([0 370 -1.50 5.50]);
>> grid on
>> grid minor
2
= { ()
7
< 0
0<1
1
138
FIEE UNCP
clc
clear x y
x=linspace(-2,10,100);
n=length(x);
for (i=1:n)
if (x(i)<0)
y(i)=x(i)^2;
elseif (x(i)<7)
y(i)=sin(x(i));
else
y(i)=x(i)-7;
end
end
plot(x,y);
axis([-3,11,-2,5]);
grid on
grid minor
Cuando se ejecuta el programa sale la grfica que se muestra en la Figura 5.22.
139
140
FIEE UNCP
141
142
FIEE UNCP
>> plot(x,y1,x,y2,':r',x,y3,'--g','linewidth',1.5);
>> axis([0,7,-1.2,1.2])
>> grid on
>> grid minor
El resultado se muestra en la Figura 5.26, en el cual se distingue las curvas por el estilo de
lnea y color de lnea.
143
Vf=Vo+a.t
Entonces digitaremos lo siguiente:
>> t=0:20;
%tiempo de 0 a 20 segundos
>> vfA=0+3*t;
%Velocidad final del mvil A.
>> vfB=0+5*t;
%Velicidad final del mvil B.
>> plot(t,vfA,'-xr','linewidth',2)
>> hold on
>> plot(t,vfB,'-ok','linewidth',2)
>> grid on
>> title('Cinemtica - MRUV');
144
FIEE UNCP
Figura 5.28. Grfico utilizando todas las caractersticas de los grficos en MATLAB.
d) Grfica en mltiples ventanas (subgrficas).
MATLAB permite graficar mltiples curvas en diferentes ventanas, pero en una sola pantalla,
utilizando el comando subplot(m,n,k) que permite subdividir la ventana de graficacin en m
filas y n columnas; el parmetro k identifica el nmero de ventana donde se graficar la
curva. Por ejemplo:
>> x1=linspace(0,2*pi,100);
>> y1=sin(x);
>> y2=cos(x);
>> x2=linspace(-5,5,100);
>> y3=x2.^2-4;
>> y4=x2.^3-4*x2-10;
>> y5=-x2.^2+1;
145
>> y6=abs(x2);
>> subplot(3,2,1),plot(x1,y1),title('Funcin seno'),grid on
>> subplot(3,2,2),plot(x1,y2),title('Funcin coseno'),grid minor
>> subplot(3,2,3),plot(x2,y3),title('Funcin parbola'),grid minor
>> subplot(3,2,4),plot(x2,y4),title('Funcin cbica'),grid minor
>> subplot(3,2,5),plot(x2,y5,'-.r'),title('Funcin parbola')
>> subplot(3,2,6),plot(x2,y6),title('Funcin valor absoluto')
El resultado se muestra en la Figura 5.29 donde se observan 6 grficos ya que con la sentencia
subplot se ha indicado de 3x2 figuras.
146
FIEE UNCP
147
Figura 5.32. Representacin de los puntos (2.5,30), (6,45) y (4,70) en el plano polar.
En forma similar a la sentencia plot, la sentencia polar tambin tiene las mismas
caractersticas especiales que se muestran en el Cuadro 5.1. Para aplicar estas
caractersticas, graficaremos la funcin polar r=e0.25t con color rojo con lneas punteadas y
con una marca x.
>> t=linspace(0,2*pi,100);
>> r=exp(0.25*t);
>> polar(t,r,'--r')
%con lneas punteadas y lnea de color rojo.
El resultado de estas caractersticas especiales se muestra en la Figura 5.33.
Otro ejemplo sera para determinar la curva de la funcin r=sen(0.8t) cuyas sentencias seran:
>> t=linspace(0,10*pi,1000);
>> r=sin(0.8*t);
>> polar(t,r,'-b'); %grafica con lneas continuas de color azul.
El resultado de estas caractersticas especiales se muestra en la Figura 5.34.
148
FIEE UNCP
149
f) Funciones logartmicas.
Normalmente cuando se grafican funciones, los ejes x e y se dividen en intervalos igualmente
espaciados, sin embargo muchas veces en aplicaciones de ingeniera, se utiliza escalas
logartmicas en uno o en ambos ejes, estos ejes fundamentalmente se utilizan para representar
datos que varan exponencialmente; para ello MATLAB dispone de las funciones:
semilogx(x,y). Genera una grfica de valores x e y, con una escala logartmica para x y una
escala lineal para y.
semilogy(x,y). Genera una grfica de valores x e y, con una escala logartmica para y y una
escala lineal para x.
loglog(x,y).
Genera una grfica de valores x e y, con una escala logartmica para x e y.
Para ver la diferencia entre cada una de las funciones mencionadas graficaremos la funcin
y=3.5x2 con 100 puntos para x desde 0 hasta 50.
>> x=linspace(0,50,100);
>> y=3.5*x.^2;
>> subplot(2,2,1);plot(x,y);grid minor;title('funcin plot');
>> subplot(2,2,2);semilogx(x,y);grid minor;title('funcin semilogx');
>> subplot(2,2,3);semilogy(x,y);grid minor;title('funcin semilogy');
>> subplot(2,2,4);loglog(x,y);grid minor;title('funcin loglog');
El resultado del uso de las funciones logartmicas se muestra en la Figura 5.35.
150
FIEE UNCP
151
0 0]);
0 0]);
1 0]);
0 1]);
%rellena
%rellena
%rellena
%rellena
152
FIEE UNCP
Entonces variando los tres nmeros desde 0 hasta 1 se puede combinar los colores rojo, verde
y azul para obtener nuevos colores, por ejemplo:
>> fill(x,y,[0.9 0.9 0.9];
153
154
FIEE UNCP
Otro ejemplo es para graficar un resorte, para ello se utiliza las siguientes sentencias:
>> x=linspace(0,10*pi,2000);
>> y=sin(x);
>> z=cos(x);
>> plot3(x,y,z);
>> grid on
>> grid minor
>> xlabel('Eje x')
>> ylabel('Funcin sen(x)')
>> zlabel('Funcin cos(x)')
El resultado se muestra en la Figura 5.41.
155
>> grid on
>> grid minor
El resultado se muestra en la Figura 5.42.
156
FIEE UNCP
x y otro para y, y con dichas matrices se genera un mallado sobre un rectngulo del plano XY
con la funcin meshgrid. Por ejemplo para graficar la siguiente funcin:
2
2
= ( + ) En la regin del plano D={(x,y)/ -2 x 2, -2 y 2)
Se debe realizar los siguientes pasos.
>> [x,y]=meshgrid(-2:0.5:2);
Con la funcin meshgrid internamente se han generado dos matrices x e y cuyos valores se
muestran a continuacin.
157
Ahora como ya tenemos los valores de x, y y z; utilizaremos las funciones plot3, mesh y surf
en una misma grfica utilizando la funcin subplot, tal como se muestra a continuacin.
>> subplot(2,2,1);plot3(x,y,z);grid minor
>> subplot(2,2,2);mesh(x,y,z);grid minor
>> subplot(2,2,3);surf(x,y,z);grid minor
>> subplot(2,2,4);surf(x,y,z),shading flat;grid minor
El resultado se muestra en la Figura 5.43.
158
FIEE UNCP
>> mesh(x,y,z);
>> grid minor
>> xlabel('Eje x');
>> ylabel('Eje y');
>> zlabel('Eje z');
El resultado se muestra en la Figura 5.44.
159
160
FIEE UNCP
Figura 5.46. Uso de la funcin surf con shading flat con un mejor acabado.
Una funcin importante es la funcin contour y contour3 que sirve para hacer curvas de nivel.
A continuacin desarrollaremos una aplicacin de cada uno.
>> [x,y]=meshgrid(linspace(-2,2,50));
>> z=exp(-(x.^2+y.^2));
>> contour(x,y,z,25); %Genera 25 curvas de nivel en el plano xy.
>> axis equal
Y para la funcin contour3 sera:
>> [x,y]=meshgrid(linspace(-2,2,50));
>> z=exp(-(x.^2+y.^2));
>> contour3(x,y,z,25);
Los resultados de las funciones contour y contour3, se muestran en las Figuras 5.47 y 5.48
respectivamente.
161
162
FIEE UNCP
163
164
FIEE UNCP
Figura 5.51. Uso de la funcin cylinder con r=1 y n=20 (por defecto).
Si probamos con r=5 y n=10 se obtiene lo siguiente:
>> cylinder(5,10);
>> grid minor;
El resultado se muestra en la Figura 5.52.
165
166
FIEE UNCP
x1: 2
y1: 5
x2: 10
y2: -2
5.2. Disear una funcin para graficar una recta cuyas coordenadas (x1;y1) y (x2;y2) se deben
ingresar como parmetros de la funcin.
La funcin sera.
function []=recta(x1,y1,x2,y2)
x=[x1,x2];
y=[y1,y2];
plot(x,y);
end
167
Cuando se ejecuta la funcin para graficar una recta desde (2;5) a (10;-2), sera:
>> recta(2,5,10,-2)
168
FIEE UNCP
5.3. Elaborar un programa para graficar una parbola con vrtice en el punto (h;k) y el foco est
ubicado a una distancia p del vrtice (ver siguiente figura); los valores de h, k y p se deben
ingresar desde el teclado.
El programa sera.
clc;
clear x y;
h=input('Ingrese la abscisa del vrtice (h): ');
k=input('Ingrese la ordenada del vrtice (k): ');
p=input('Ingrese distancia del vrtice al foco (p): ');
x=linspace(h-5,h+5,100);
y=(x-h).^2/(4*p)+k;
%se despeja y de la forma general
plot(x,y);
grid on;
grid minor;
axis([min(x)-1,max(x)+1,min(y)-1,max(y)+1]);
Cuando se ejecuta el programa para graficar una parbola con vrtice en el punto (3;-1) y el foco
ubicado a una distancia 3 del vrtice, el resultado sera:
Ingrese la abscisa del vrtice (h): 3
Ingrese la ordenada del vrtice (k): -1
Ingrese distancia del vrtice al foco (p): 3
169
5.4. Disear una funcin para graficar una parbola del ejemplo anterior con vrtice en el punto (h;k)
y el foco est ubicado a una distancia p del vrtice; los datos h, k y p deben ser .
La funcin sera.
function []=parabola(h,k,p)
x=linspace(h-5,h+5,100);
y=(x-h).^2/(4*p)+k;
plot(x,y);
end
Cuando se ejecuta la funcin parbola con vrtice(3;-1) y foco igual a 3, sera:
>> parabola(3,-1,3)
170
FIEE UNCP
5.5. Elaborar un programa para graficar una circunferencia de color rojo con centro en el origen de
coordenadas, cuyo radio se debe ingresar desde el teclado.
El programa sera.
clc;
radio=input('Ingrese radio: ');
x=linspace(-radio,radio,100);
y=sqrt(radio.^2-x.^2);
plot(x,y,x,-y,'color','r')
axis equal;
axis([-radio-1,radio+1,-radio-1,radio+1]);
grid on;
grid minor;
Cuando se ejecuta el programa con radio=10, el resultado es el siguiente.
Ingrese radio: 10
171
axis([-radio-1,radio+1,-radio-1,radio+1]);
grid on
grid minor
5.6. Disear una funcin para graficar una circunferencia del ejemplo anterior con centro en el punto
(0;0) cuyo radio y color se debe ingresar como parmetros de la funcin. (Nota: el color se debe
ingresar con los mismos caracteres de la funcin plot que se muestra en el Cuadro 5.1).
La funcin sera.
function []=circunferencia(radio,color)
t=linspace(0,2*pi,100);
x=radio*cos(t);
y=radio*sin(t);
plot(x,y,color);
axis equal;
end
5.7. Disear una funcin para graficar una circunferencia del ejemplo anterior pero con centro en el
punto (xc;yc) cuyos valores de xc, yc, radio y color se debe ingresar como parmetros de la
funcin. (Nota: el color se debe ingresar con los mismos carac teres de la funcin plot que se
muestra en el Cuadro 5.1).
La funcin sera.
function []=circunferenciaxy(xc,yc,radio,color)
t=linspace(0,2*pi,100);
x=xc+radio*cos(t);
y=yc+radio*sin(t);
plot(x,y,color);
end
172
FIEE UNCP
Cuando se ejecuta la funcin con centro en (3;1), radio=10 y color rojo, sera:
>> circunferenciaxy(3,1,10,'r')
>> axis equal
>> grid on
>> grid minor
5.8. Disear una funcin para graficar un crculo con centro en el punto (xc;yc) cuyos valores de xc,
yc, radio y color se debe ingresar como parmetros de la funcin. (Nota: un crculo es una
circunferencia rellenada y se usa la funcin fill).
La funcin sera.
function []=circuloxy(xc,yc,radio,color)
t=linspace(0,2*pi,100);
x=xc+radio*cos(t);
y=yc+radio*sin(t);
fill(x,y,color);
end
Cuando se ejecuta la funcin con centro en (3;1), radio=10 y color rojo, sera:
>> circuloxy(3,1,10,'r')
>> axis equal
>> grid on
>> grid minor
173
5.9. Disear una funcin para graficar una elipse con relleno con centro en el punto (xc;yc) cuyos
valores de xc, yc, radio horizontal y radio vertical y color se debe ingresar como parmetros de la
funcin.
La funcin sera.
function []=elipsexy(xc,yc,radiox,radioy,color)
t=linspace(0,2*pi,100);
x=xc+radiox*cos(t);
y=yc+radioy*sin(t);
fill(x,y,color);
axis equal;
end
Cuando se ejecuta la funcin con centro en (3;3), radiox=10, radioy=5 y color amarillo, sera:
>> elipsexy(3,3,10,5,'y');
>> grid on;
>> grid minor;
174
FIEE UNCP
5.11. Disear una funcin para graficar una rosa con n ptalos en un plano polar.
La funcin sera.
function []=rosa(n)
t=linspace(0,2*pi,1000);
r=2+cos(n*t);
polar(t,r);
end
Cuando se ejecuta la funcin con 5 ptalos sera:
5.12. Disear una funcin para simular la grfica de cerros con n cerros.
La funcin sera.
function []=cerros(n)
t=linspace(-n,n,100);
[x,y]=meshgrid(t);
z=n.*sin(x).*sin(y);
surf(x,y,z);
xlabel('Eje x');
ylabel('Eje y');
zlabel('Eje z');
grid minor
end
Cuando se ejecuta la funcin con 4 cerros sera:
175
176
FIEE UNCP
5.13. Disear una funcin para graficar un paraboloide con radio en la base (rmenor) y radio en la
salida (rmayor) dichos valores se deben ingresar como parmetros de la funcin.
La funcin sera.
function []=paraboloide(rmenor,rmayor)
t=linspace(rmenor,rmayor,20);
r=sqrt(t);
cylinder(r);
end
Cuando se ejecuta la funcin con radio menor=0 y radio mayor=5 sera:
>> paraboloide(0,5);
Cuando se ejecuta la funcin con radio menor igual=1 y radio mayor=10 sera:
>> paraboloide(1,10);
177
5.14. Disear una funcin que devuelva el tiempo y la altura del cual se debe lanzar un objeto, adems
la funcin debe graficar el movimiento de una partcula que se lanza con una velocidad inicial
(vo), el ngulo (ang) y a una distancia (dx) cuyos datos deben ser los parmetros de la funcin.
La funcin sera.
function [tiempo,h]=lanzamientoproyectil(vo,ang,xd)
g=9.81;
%gravedad
tiempo=xd/(vo*cosd(ang));
t=linspace(0,tiempo,100);
x=vo*cosd(ang)*t;
y=vo*sind(ang)*t-g*t.^2/2;
h=y(end);
for (i=1:100)
plot(x,y,x(i),y(i),'or');
pause(0.025);
end
end
Cuando se ejecuta la funcin con vo=25 m/s, ang=75 y xd=30 m sera:
>> [t,h]=lanzamientoproyectil(25,75,30)
t=
4.6364
h=
6.5206
Y el grfico se muestra en la siguiente figura.
178
FIEE UNCP
BIBLIOGRAFA
179
BIBLIOGRAFA.
1. Schilling, R. y Harris, S. (2012). Fundamentals of digital signal processing using MATLAB. USA.
Editorial RPK.
2. Moore, H. (2007). MATLAB para ingenieros. Mxico. Editorial Pearson.
3. Arboleda, D. y lvarez, R. (2006). Matlab, aplicaciones a las matemticas bsicas. Medelln.
Editorial Universidad de Medelln-Colombia.
4. Escalante, R. (2006). Curso introductorio de MATLAB. Venezuela. Editorial Equinoccio.
5. Gilat, A. (2005). Matlab, una introduccin con ejemplos prcticos. Barcelona. Editorial Revert S.A.
6. Hunt, B. y Lipsman, R. y Rosenberg, J. (2002). A Guide to MATLAB for beginners and experienced
users. USA. Editorial Cambridge.
7. Quintela, P. (2000). Matemticas en Ingeniera con MATLAB. USA. Editorial de la Universidad de
Santiago de Compostela.
PGINAS WEB.
http://www.sc.ehu.es/sbweb/energias-renovables/MATLAB/basico/portada/portada.html
http://arantxa.ii.uam.es/~iama/graficos.pdf
file:///C:/Users/Admin/Downloads/tema_2_graficos_en_matlab-5150.pdf
http://www.fic.umich.mx/~lcastro/4%20graficas.pdf
http://minisconmatlab.blogspot.pe/2010/10/como-dibujar-circulos-y-poligonos.html