,
_
6 4 9
1 8 3
5 2 1
M y determinar:
a)
T
M b)
1
M si existe. c) Verificar I M M
1
d) M
e) ) (M Tr f)
3 2
, M M g) Los Autovalores de M h) ) ( P
M=[1 -2 5;3 8 -1;9 -4 6]
M =
1 -2 5
3 8 -1
9 -4 6
Transpuesta_M=M'
Transpuesta_M =
1 3 9
-2 8 -4
5 -1 6
Inversa_M=inv(M)
Inversa_M =
-22/161 4/161 19/161
27/322 39/322 -8/161
6/23 1/23 -1/23
Identidad=M*Inversa_M
Identidad =
1 0 0
0 1 0
0 0 1
Determinante_M=det(M)
Determinante_M =
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 14 de 38 I ng. Alej andro Hayes
-322
Traza_M=trace(M)
Traza_M =
15
Potencia_2=M^2
Potencia_2 =
40 -38 37
18 62 1
51 -74 85
Potencia_3=M^3
Potencia_3 =
259 -532 460
213 456 34
594 -1034 839
Autovalores_M=eig(M)
Autovalores_M =
-2576/701
4622/495 +9553/14427i
4622/495 - 9553/14427i
Polinomio_Caracteristico_M=poly(M)
Polinomio_Caracteristico_M =
1 -15 19 322
Ejemplo 3.2:
Dadas las matrices
,
_
1 2 5
9 7 6
5 3 1
A
,
_
10 12 15
8 3 0
5 2 9
B determinar: a) B A+
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 15 de 38 I ng. Alej andro Hayes
b) B A c) B A d) A B e) A B B A f) A g) B
h) B A i) B A j) B A+ k) B A +
A=[1 3 -5 ; 6 -7 9 ; -5 -2 -1]
A =
1 3 -5
6 -7 9
-5 -2 -1
B=[9 2 -5 ; 0 -3 8 ; -15 -12 10]
B =
9 2 -5
0 -3 8
-15 -12 10
M_1=A+B
M_1 =
10 5 -10
6 -10 17
-20 -14 9
M_2=A- B
M_2 =
-8 1 0
6 -4 1
10 10 -11
M_3=A*B
M_3 =
84 53 -31
-81 -75 4
-30 8 -1
M_4=B*A
M_4 =
46 23 -22
-58 5 -35
-137 19 -43
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 16 de 38 I ng. Alej andro Hayes
M_5=M_4-M_3
M_5 =
-38 -30 9
23 80 -39
-107 11 -42
Determinante_A=det(A)
Determinante_A =
143
Determinante_B=det(B)
Determinante_B =
579
Determinante_M_3=det(M_3)
Determinante_M_3 =
82797
Determinante_A*Determinante_B
ans =
82797
Determinante_M_2=det(M_2)
Determinante_M_2 =
-196
Determinante_A+Determinante_B
ans =
722
Tabla 6
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 17 de 38 I ng. Alej andro Hayes
Ejemplo 3.3:
Dada la matriz
,
_
4 6 2 10
9 2 3 3
9 8 6 5
5 7 2 1
A . Llamar al elemento
23
a . Visualizar la fila 2 y la columna 2.
A=[1 2 7 5;-5 6 -8 9;3 -3 -2 9; 10 -2 6 -4]
A =
1 2 7 5
-5 6 -8 9
3 -3 -2 9
10 -2 6 -4
A(2,3)
ans =
-8
A(2,:)
ans =
-5 6 -8 9
A(:,2)
ans =
2
6
-3
-2
3.2.Algunas Matrices Especiales:
Matlab cuenta con algunos comandos que crean matrices especificas. Algunos de los mismos se dan en la
siguiente tabla:
Funciones Especificas
blkdiag(x1,x2,...,xn) Construye una matriz diagonal con los datos de
x1,x2,...,xn
eye(n) , eye(n,m) Genara una matriz identidad de nxn o de nxm
respectivamente.
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 18 de 38 I ng. Alej andro Hayes
ones(n) , ones(n,m) Genera una matriz de unos de nxn o nxm
respectivamente.
rand(n) , rand(n,m) Genera una matriz de elementos aleatorios
uniformemente distribuidos en el intervalo (0,1) de nxn
o nxm elementos
randn(n) , randn(n,m) Genera una matriz de elementos aleatorios
normalmente distribuidos en el intervalo (0,1) de nxn o
nxm elementos
zeros(n) , zeros(n,m) Genera una matriz de ceros de nxn o nxm
respectivamente.
magic(n) Genera una matriz de nxn de los enteros de 1 a n
2
Tabla 7
3.3. Aplicaciones a la resolucin de sistemas de ecuaciones lineales
Una aplicacin importante del lgebra de matrices esta en la resolucin de sistemas de ecuaciones lineales.
Veremos un ejemplo.
Ejemplo 3.4:
Dado el sistema lineal
'
+
+ +
+ +
4 3
9 3 2
11 2 4
z y x
z y x
z y x
. Resolverlo en forma matricial.
format rat
>>A=[4 2 1;-2 1 3;1 3 -1]
A =
4 2 1
-2 1 3
1 3 -1
>>B=[11;9;4]
B =
11
9
4
>>A_1=inv(A)
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 19 de 38 I ng. Alej andro Hayes
A_1 =
2/9 -1/9 -1/9
-1/45 1/9 14/45
7/45 2/9 -8/45
>>x=A_1*B
x =
1
2
3
>>
4.Funciones Escalares
La funcin como objeto de estudio es conceptualmente muy importante a la hora de trabajar con un software
matemtico pues la forma de manejar e implementar las funciones varia de un software a otro. Matlab nos
permite definir y manejar funciones de una forma muy simple, solo hay que acostumbrarse a la sintaxis y a las
Manias del programa en cuestin. Matlab al igual que la mayora de los paquetes de calculo simblico trae
funciones predefinidas asi como permite al usuario definir sus propias funciones. Algunas de las funciones
predefinidas con las que cuenta Matlab son las siguientes:
abs( x ) Calcula el modulo de x
sqrt( x ) Calcula la raz cuadrada de x
round(x) Redondea al entero mas cercano
fix(x) Redondea x al entero mas cercano a cero
floor( x) Redondea al entero mas cercano a -
ceil( x) Redondea al entero mas cercano a
exp( x) Calcula e
x
, Donde e es la base de los logaritmos naturales
log( x) Calcula ln x, el logaritmo natural de x con base e.
log10( x ) Calcula log
10
x
sin ( x ) Calcula el sen( x)
cos( x ) Calcula cos ( x ).
tan ( x ) Calcula tg( x ).
asin( x ) Calcula el arcoseno de x
acos( x ) Calcula el arcocoseno de x
atan( x ) Calcula el arcotangente de x.
atan2( y, x ) Cacula el arcotangente de y/x
sinh( x ) Calcula el seno hiperblico de x
cosh( x ) Calcula el coseno hiperblico de x
tanh ( x ) Calcula la tangente hiperblica de x.
Por supuesto Matlab cuenta con muchas otras funciones que no fueron contempladas en la tabla.
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 20 de 38 I ng. Alej andro Hayes
Veamos algunos ejemplos :
Ejemplo 4.1:
Definir las funciones x sen x f ) ( , x x g cos ) ( ,
x
e x h ) ( en el intervalo [ ] 10 , 0 .
x=0:0.01:10;
f1=sin(x);
f2=cos(x);
f3=exp(x);
Lo que muestra el ejemplo 1 es la forma de ingresar funciones en Matlab. Si trabajamos en forma numrica
debemos indicar los valores que toma la variable independiente, en el ejemplo x varia entre 0 y 10 en pasos de
0.01. Podemos observar que si no indicamos el valor de x Matlab nos dice que no conoce a la variable.
f=exp(x)
??? Undefined function or variable 'x'.
Ejemplo 4.2:
Definir una funcin trabajando con la variable definida en forma simblica.
syms x real
f=log(x);
El comando syms indica que la variable x es simblica y la palabra real indica que se trata de una variable
real. De no poner nada matlab la toma como una variable compleja.
Se pueden poner otros atributos a la variable por ejemplo.
syms x positive
Si queremos evaluar la funcin en un punto Matlab cuenta con una funcin llamada subs cuya sintaxis es la que
se indica abajo.
subs ( f ) Reemplaza todas las variables en la expresin simblica f
subs (f,n) Reemplaza la variable libre simblica en s con n
subs(f,o,n) Reemplaza o con n en la expresin simblica f.
Ejemplo 4.3 :
Dada la funcin escalar
x
e x sen x f
+ ) ( . Definirla con la variable dada en forma simblica y calcular la
imagen de 4.
syms x
f=sin(x)+exp(-x);
x=4;
subs(f)
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 21 de 38 I ng. Alej andro Hayes
ans =
-0.7385
format rat
subs(f)
ans =
-449/608
4.1.Grafica de Funciones en 2D.
Es notoria la calidad y capacidad de graficacin que tiene Matlab por lo que corresponde comenzar a aprender
los comandos necesarios para graficar distintas curvas y superficies dadas en forma Explicita, Implcita, y
Parametrica.
4.1.1.Grafica de funciones escalares dadas en forma explicita
Algunas de las sentencias para graficar son las que se detallan en la siguiente tabla.
plot (x, y) Dibuja el conjunto de puntos ( x, y ), donde x e y
son vectores fila.
plot(y) Grafica los elementos de Y contra sus ndices.
plot(x,y,s) Idem plot (x, y) pero con las opciones de s.
fplot( funcion, [ xmin,xmax ]) Grafica la funcin en el intervalo de variacin de x
dado.
fplot(funcion, [ xmax,xmin,ymax,ymin ], s) Grafica la funcin en el intervalo de variacin de x e
y dado. Con las opciones de S.
fplot([f1,f2,...,fn ], [ xmax,xmin,ymax,ymin ], s) Grafica las funciones f1,f2,..,fn sobre los mismos ejes
en los intervalos de variacin de x e y especificados y
con las especificaciones de s.
ezplot(funcion , [ xmin,xmax ]) Grafica la funcin en un intervalo de variacin x
dado.
Veamos algunos ejemplos en 2D:
Ejemplo 4.4:
Deseamos graficar el valor de los elementos de un vector en funcin de su ndice , escribimos lo siguiente.
x=0:0.01:5;
plot(x)
Podemos visualizar en la ventana de grficos la siguiente figura:
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 22 de 38 I ng. Alej andro Hayes
0 100 200 300 400 500 600
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
En esta grafica sobre el eje de abscisas figuran los ndices de cada elemento y sobre el eje de ordenadas el
valor de x para cada elemento. Entre elemento y elemento Matlab interpola.
Ejemplo 4.5:
Dada la funcin escalar ) 3 8 cos( 2 ) (
3 . 0
+
x e x f
x
realizar la grafica de la misma.
x=0:0.01:10;
f=2*exp(-0.3*x).*cos(8*x+3);
plot(x,f)
0 1 2 3 4 5 6 7 8 9 10
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Si queremos ver algunas opciones para la salida del grafico veamos otros ejemplos:
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 23 de 38 I ng. Alej andro Hayes
Ejemplo 4.6:
Idem anterior pero con distintas opciones de visualizacin.
x=0:0.01:10;
f=2*exp(-0.3*x).*cos(8*x+3);
plot(x,f,'*');
plot(x,f,'r *');
grid on.
0 1 2 3 4 5 6 7 8 9 10
-2
-1.5
-1
-0.5
0
0. 5
1
1. 5
2
Ejemplo 4.7:
Realizar en un mismo grafico las representaciones de las siguientes funciones
x sen x f 3 ) ( , ) 6 2 cos( ) ( + x x g , x x sen x h 2 cos ) ( + en el intervalo [ ] 10 , 0
fplot('[sin(3*x),cos(2*x+6),sin(x)+cos(2*x)]',[0,10])
Obtenemos la siguiente figura
0 1 2 3 4 5 6 7 8 9 10
-2
-1.5
-1
-0.5
0
0.5
1
1.5
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 24 de 38 I ng. Alej andro Hayes
Ejemplo 4.8:
Idem anterior pero con la opcin de escala establecida
fplot('[sin(3*x),cos(2*x+6),sin(x)+cos(2*x)]',[0,10,-4,2])
0 1 2 3 4 5 6 7 8 9 10
- 4
- 3
- 2
- 1
0
1
2
Ejemplo 4.9:
Graficar la funcin x x x sen x f cos 2 ) (
2
+ utilizando el comando ezplot
ezplot('sin(x)^2+2*x*cos(x)',[-10,10])
-10 -8 -6 -4 -2 0 2 4 6 8 10
-20
-15
-10
-5
0
5
10
15
20
x
sin(x)
2
+2 x cos(x )
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 25 de 38 I ng. Alej andro Hayes
Matlab cuenta con una serie de comandos que se utilizan para trabajar con ttulos , etiquetas, mallas y textos,
hemos utilizado algunos en los ejemplos anteriores pero daremos a continuacin una tabla con los mas
comunes.
title(texto) Aade el texto como titulo del grafico en la parte
superior del mismo .
xlabel(texto) Sita el texto al lado del eje x
ylabel(texto) Sita el texto al lado del eje y
zlabel(texto) Sita el texto al lado del eje z
text(x,y,texto) Sita el texto en el punto (x,y) dentro del grafico 2 D
text(x,y,z,texto) Sita el texto en el punto (x,y,z) dentro del grafico 3 D
gtext(texto) Permite situar el texto en un punto elegido con el
Mouse.
grid Sita rejillas en los ejes.
hold Permite mantener grficos para superponerlos.
Ilustraremos con algunos ejemplos la utilizacin de estos comandos.
Ejemplo 4.10:
Graficar las funciones x sen x x f 2 ) ( y ) 3 cos( 2 ) ( + + x x sen x g
x=0:0.1:10;
f1=x.*sin(2*x);
f2=sin(2*x)+cos(x+3);
plot(x,f1,'r');
ylabel('Variable Dependiente')
xlabel('Variable Independiente')
grid on
hold on
plot(x,f2,'g');
plot(x,f2+f1,'k +');
0 1 2 3 4 5 6 7 8 9 10
- 10
- 5
0
5
10
15
V
a
r
i
a
b
l
e
D
e
p
e
n
d
i
e
n
t
e
Var i abl e I ndependi ent e
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 26 de 38 I ng. Alej andro Hayes
Sobre la computadora se observa el efecto del hold on para dibujar cada grafica manteniendo la figura anterior.
Ejemplo 4.11
Definir la funcin
) 3 (
2
) (
+
x sen
e x f definiendo la variable en forma simblica. Graficarla en el intervalo [ ] 5 , 5
syms x real
f=exp(-sin(x.^2+3));
ezplot(f,[-5,5])
Obtenemos la siguiente salida:
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.5
1
1.5
2
2.5
x
e x p(-s i n(x
2
+3))
Matlab cuenta con una serie importante de comandos para la manipulacin de grficos algunos de ellos se dan
en la tabla.
axis ([xmin xmax ymin ymax]) Ubica los valores maximo y minimo para los ejes
coordenados respectivos.
axis(auto) Sita los ejes en la escala automtica por defecto.
axis(axis) Congela la escala en los limites corrientes de modo de
permitir situar otro grafico sobre los mismos ejes
V=axis Da un vector de 4 elementos conteniendo la escala del
grafico corriente.
axis(xy) Sita el origen en la parte inferior izquierda.
axis(ij) Sita el origen en la parte superior izquierda
axis(square) Convierte el rectangulo del grafico en un cuadrado.
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 27 de 38 I ng. Alej andro Hayes
axis(equal) Situa el mismo factor de escala en ambos ejes.
axis(normal) Elimina las ociones square y equal
axis(off) Elimina etiquetas y marcas y rejillas de los ejes.
axis(on) Coloca de nuevo las etuquetas, marcas y rejillas
Veamos algunos ejemplos:
Ejemplo 4.12:
Para el ejemplo 4.11 consideremos las siguientes modificaciones:
x=-5:0.01:5;
f=exp(-sin(x.^2+3));
plot(x,f);
V=axis
V =
-5 5 0 3
axis('square')
-5 -4 -3 -2 -1 0 1 2 3 4 5
-2
-1
0
1
2
3
4
5
axis('equal')
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 28 de 38 I ng. Alej andro Hayes
En muchos casos es importante poder visualizar varios graficas simultneamente pero no superpuestas y para
eso Matlab cuenta con una funcin que permite dividir la ventana grafica en nxm subventanas y coloca el
grafico en la ventana p-esima la sintaxis es:
subplot( m,n,p )
Ejemplo 4.13:
Visualizar simultneamente las graficas de:
x sen x f 3 ) ( , x x g 2 cos ) ( , ) 1 2 cos( ) ( + x x h ,
) 1 2 cos(
) (
+
x
e x k
x=(0:0.1:10);
f1=sin(3*x);
f2=cos(2*x);
f3=cos(2*x+1);
f4=exp(cos(2*x+1));
subplot(2,2,1);
plot(x,f1);
subplot(2,2,2);
plot(x,f2);
subplot(2,2,3);
plot(x,f3);
subplot(2,2,4);
plot(x,f4);
Obtenemos la siguiente salida:
-5 0 5
0
0.5
1
1.5
2
2.5
3
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 29 de 38 I ng. Alej andro Hayes
0 5 10
-1
- 0. 5
0
0. 5
1
0 5 10
-1
- 0. 5
0
0. 5
1
0 5 10
-1
- 0. 5
0
0. 5
1
0 5 10
0
1
2
3
En mltiples aplicaciones de ingeniera y ciencias se facilita la tarea usando grficos logartmicos o
semilogaritmicos las funciones que Matlab tiene para definir esto son las que se detallan a continuacin:
loglog(x,y) Realiza los mismos grficos que plot(x,y) pero con
escala logartmica.
semilogx(x,y) Realiza los mismos grficos que plot(x,y) pero con
escala logartmica x.
semilogy(x,y) Realiza los mismos grficos que plot(x,y) pero con
escala logartmica y.
Veamos un ejemplo combinando las funciones de grafica logartmica con subplot.
Ejemplo 4.14:
x=0:0.1:10;
f=exp(x)-1;
subplot(2,2,1);
plot(x,f);
subplot(2,2,2);
loglog(x,f);
subplot(2,2,3);
semilogx(x,f);
subplot(2,2,4);
semilogy(x,f);
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 30 de 38 I ng. Alej andro Hayes
Obtenemos la siguiente salida
0 5 10
0
0. 5
1
1. 5
2
2. 5
x 10
4
10
- 1
10
0
10
1
10
- 5
10
0
10
5
10
- 1
10
0
10
1
0
0. 5
1
1. 5
2
2. 5
x 10
4
0 5 10
10
- 5
10
0
10
5
4.1.2.Graficas de curvas dadas en coordenadas polares y
parametricas.
En muchos casos se hace necesario realizar graficas en forma Parametrica para lo cual lo nico que debemos
hacer es parametrizar la curva correspondiente como ilustra el ejemplo 17.
Ejemplo 4.15
Dada la curva definida en forma Parametrica por:
'
t sen t sen t y
t t t x
2 2 ) (
2 cos cos 2 ) (
con 10 0 t .
t=0:0.1:10;
x=2*cos(t)-cos(2*t);
y=2*sin(t)-sin(2*t);
plot(x,y,'r')
Obtenemos las siguiente salida:
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 31 de 38 I ng. Alej andro Hayes
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5
-3
-2
-1
0
1
2
3
Para realizar graficas en coordenadas polares Matlab cuenta con los siguientes comandos:
polar(a,r) Representa la curva en coordenadas polares
polar(a,r,S) Representa la curva en coordenadas polares con el
estilo de lneas especificado por S.
Ejemplo 4.16:
a=0:0.01:2*pi;
r=sin(2*a).*cos(2*a);
polar(a,r)
0. 1
0. 2
0. 3
0. 4
0. 5
30
210
60
240
90
270
120
300
150
330
180 0
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 32 de 38 I ng. Alej andro Hayes
Ejemplo 4.17:
a=0:0.01:2*pi;
r=4*(1+cos(a));
polar(a,r)
2
4
6
8
30
210
60
240
90
270
120
300
150
330
180 0
5.I ntroduccin a la Programacin
Hasta ahora hemos visto que todos los comandos de Matlab que pueden escribirse y ejecutarse desde la lnea
de comandos ingresndolos directamente desde el teclado. Esta forma de trabajar es muy simple pero en la
practica presenta limitaciones cuando de desarrollos grandes se trata y es en estos casos donde el usuario
necesita hacerse un programa propio y personalizarlo a sus necesidades.
Matlab permite desarrollar programas con archivos M los que pueden hacerse mediante el editor de texto que
viene con Matlab y luego para ser ejecutado se lo llama desde la ventana de comandos con el nombre del
archivo.
Por defecto Matlab guarda estos archivos en un directorio llamado work del directorio de Matlab.
Estudiaremos dos tipos de archivos-M:
5.1.Archivos-M Script
Supongamos que elegimos nuestro editor de texto favorito por ejemplo notepad para crear un archivo llamado
funcion.m conteniendo las lineas:
x=-15:0.01:15;
f=sin(x)+4*sin(3*x)-cos(10*x);
plot(x,f);
Luego lo guardamos en principio en el directorio work y lo ejecutamos desde la lnea de comandos y
obtenemos lo siguiente:
funcion
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 33 de 38 I ng. Alej andro Hayes
- 15 - 10 - 5 0 5 10 15
- 6
- 4
- 2
0
2
4
6
5.2.Archivos-M de Funcin
Los archivos de funcin provienen como una extensin de Matlab permitiendo al usuario crear funciones para
problemas especficos. Las funciones son como los Scripts, pero con el propsito de mejorar la velocidad del
computador se compilan en un bajo nivel de codigo de bytes cuando se los llama por primera vez. Los ejemplos
que desarrollaremos son todos de funciones-M para comenzar a familiarizarnos.
Ejemplom 5.1:
Supongamos que necesitamos determinar el volumen y la superficie de cilindros de distinto tamao para lo que
necesitamos una funcin que ingresndole el radio y la altura del cilindro nos de los datos requeridos.
Entramos en el editor de archivos M de Matlab y desarrollamos el siguiente programa.
%************************************************************************************************%
%Programa para determinar el volumen y la superficie de un cilindro ingresando
%el radio y la altura
%***********************************************************************************************%
function [volumen,superficie]=volumen_y_superficie_cilindro(radio,altura)
volumen=pi*radio.^2*altura;
superficie=2*pi*radio*altura+2*pi*radio.^2;
Luego salvamos el archivo con el nombre de cilindro_vol_sup.m en el directorio work de Matlab.
Ahora vamos a la linea de comandos y ejecutamos:
>cilindro_vol_sup(1,1)
ans =
3.14159265358979
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 34 de 38 I ng. Alej andro Hayes
>>cilindro_vol_sup(1,3)
ans =
9.42477796076938
>>cilindro_vol_sup(5,8)
ans =
6.283185307179587e+002
>>
Vemos como el programa calcula lo solicitado.
Ejemplo 5.2:
Supongamos que deseamos realizar un programa que nos cargue una matriz elemento a elemento. En el
ejemplo realizado armamos la matriz A tal que
2 2
) , (
k h
k h
k h a
+
donde le indicamos a la funcin la
dimensin de la matriz veamos el programa:
%**********************************************************************%
%Programa que ingresando como argumentos el numero de filas y el numero
%de columnas de la matriz requerida ubica en cada posicion de la misma
%lo solicitado.
%**********************************************************************%
function y=llenamatriz(num_fila,num_columna)
for k=1:num_fila
for h=1:num_columna
y(k,h)=h.*k/(h.^2+k.^2);
end
end
Veamos que obtenemos si vamos a la lnea de comandos y le pedimos una matriz de
format rat
>>A=llenamatriz(10,10)
A =
Columns 1 through 5
1/2 2/5 3/10 4/17 5/26
2/5 1/2 6/13 2/5 10/29
3/10 6/13 1/2 12/25 15/34
4/17 2/5 12/25 1/2 20/41
5/26 10/29 15/34 20/41 1/2
6/37 3/10 2/5 6/13 30/61
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 35 de 38 I ng. Alej andro Hayes
7/50 14/53 21/58 28/65 35/74
8/65 4/17 24/73 2/5 40/89
9/82 18/85 3/10 36/97 45/106
10/101 5/26 30/109 10/29 2/5
Columns 6 through 10
6/37 7/50 8/65 9/82 10/101
3/10 14/53 4/17 18/85 5/26
2/5 21/58 24/73 3/10 30/109
6/13 28/65 2/5 36/97 10/29
30/61 35/74 40/89 45/106 2/5
1/2 42/85 12/25 6/13 15/34
42/85 1/2 56/113 63/130 70/149
12/25 56/113 1/2 72/145 20/41
6/13 63/130 72/145 1/2 90/181
15/34 70/149 20/41 90/181 1/2
>>
Utilizamos el formato racional para obtener resultados exactos y vemos como se genero la matriz pedida.
Ejemplo 5.3:
Supongamos ahora que dada una matriz queremos recorrerla y modificar alguno de sus elementos en este caso
el programa que se muestra a continuacin.
%***********************************************************************%
%Programa que recorre la matriz ingresada y si e elemento hk es negativo
%o cero lo reemplaza por un cero de lo contrario lo reemplaza por un uno
%***********************************************************************%
function y=recorre_matriz(A)
num_fila=length(A(1,:));
num_columna=length(A(:,1));
for k=1:num_fila
for h=1:num_columna
if A(k,h)<=0
A(k,h)=0;
else
A(k,h)=1;
end
end
end
y=A;
Veamos que obtenemos cuando lo llamamos al programa por lnea de comando:
>>A=[1 2 -4 7;9 -6 -8 5;2 -1 -3 7;9 -6 -5 -3]
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 36 de 38 I ng. Alej andro Hayes
A =
1 2 -4 7
9 -6 -8 5
2 -1 -3 7
9 -6 -5 -3
>>recorre_matriz(A)
ans =
1 1 0 1
1 0 0 1
1 0 0 1
1 0 0 0
Ejemplo 5.4:
Supongamos que queremos construir una funcin que no se encuentra como predeterminada por Matlab por
ejemplo la funcin
1
) (
2
+
x
x
x f la hacemos de la siguiente forma:
%************************************************************************%
%Programa que crea una funcion racional%
%************************************************************************%
function f=func_racional_1(x)
f=x./ (x.^2+1);
Veamos que ocurre si vamos a la lnea de comandos y escribimos lo siguiente:
>> x=-10:0.1:10;
>> f=func_racional(x);
>> plot(x,f);
>> grid on
>>
Obtenemos el siguiente grafico:
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 37 de 38 I ng. Alej andro Hayes
Ejemplo 5.5:
Como ultimo ejemplo vamos a realizar un algoritmo que permita calcular la raz aproximada de una ecuacin
poli nmica mediante la aplicacin del mtodo de biseccin.
Supongamos que deseamos calcular el valor aproximado de 2 con un error menor que
6
10
para ello
consideremos la funcin 2 ) (
2
x x f en el intervalo [ ] 2 , 1 realicemos el siguiente programa:
%******************************************************************************************************************************%
%Programa que aplica el metodo de Biseccion a una funcion f que hay quer ingresarla entre comas 'f'%
%******************************************************************************************************************************%
function biseccion(f,x_max,x_min,error)
while abs(x_max-x_min)>error %El ciclo se ejecuta mientras x_max-x_min sea mayor que el error
deseado%
y_x_max=feval(f,x_max); %Evaluamos la funcion en x_max%
y_x_min=feval(f,x_min); %Evaluamos la funcion en x_min%
if y_x_max==0; %Vemos si es cero x_max%
disp('Una Raiz es:');
disp(x_max);
elseif y_x_min==0; %Vemos si es cero x_min%
disp('Una Raiz es:');
disp(x_min);
elseif y_x_max*y_x_min>0; %Vemos si el intervalo no cumple Bolzano%
disp('Intervalo Incorrecto')
else
x_medio=(x_max+x_min)/2; %Calculamos el punto medio%
y_x_medio=feval(f,x_medio); %Evaluamos la funcion en el punto medio%
if y_x_min*y_x_medio<0 %Vuelvo a probar Bolzano%
x_max=x_medio;
else
x_min=x_medio;
end
end
end
disp('El valor de la raiz es:')
Universidad Tecnolgica Nacional Facultad Regional Buenos Aires UDB Matemtica
Laboratorio de Matemtica Pgina 38 de 38 I ng. Alej andro Hayes
disp(x_medio)
Ahora vamos a la linea de comandos y lo ejecutamos lo siguiente:
biseccion('polinomio_1',1,2,0.000001)
El valor de la raiz es:
1.41421413421631
Para poder llamar a la funcin polinomio_1 esta tuvo que ser definida previamente por el usuario y esto se
logro haciendo el siguiente archivo.
function y=polinomio_1(x)
y=x.^2-2;
Referencias:
[1] Mark Austin, and David Chancogne : Engineering Programming C , MATLAB , JAVA.John Wiley & Sons.
Inc. 1999.
[2] Delores M. Etter: Solucion de Problemas de Ingeniera con Matlab 2da Edicin . Prentice Hall 1998.
[3] Cesar Perez: Anlisis Matemtico y lgebra Lineal con Matlab. Ra-Ma 1999.
[4] Shoichiro Nakamura: Anlisis Numerico y Visualizacion Grafica con Matlab. Prentice Hall 1999.