You are on page 1of 9

EJERCICIOS DE

MATLAB
INTRODUCCIN AL MATLAB
1- Como primer ejercicio chequee el valor de algunas variables predefinidas. Para ello teclee
las siguientes lneas:
i j pi eps 1 / 0 0 / 0
2- Defina en Matlab las siguientes matrices:
( ) A
i
i i
i
B
i
C
i

+
+ +

1
]
1
1
1
1

1
]
1
1
1
1

1
]
1
1
1
4 5 3 6 12 2 8
7 082 0 14
6 3 23 18 7 4
15 4 8 2 0 3 9 2
5
0
6 3
4 8
19 3 2 23
7 5 3 5 14 3
4 5 887 9 11
2
0 7
. .
.
. . .
.
. log .
. .
.

Compruebe que no es lo mismo teclear A (mayscula) que teclear a (minscula).


Pida ayuda de los comandos Who y Whos. Prubelas.
Pida ayuda del comando format y pruebe visualizar las matrices anteriores en varios formatos.
3- Realice las siguientes operaciones matriciales:
a)
D A B
3
b)
E A
T


c)
F A
1
d) G= A*F Es correcto el resultado?
e) H= F*C
f) I=C*C
g) J=C.*C
h) K= 7-A
4- A partir de las matrices anteriores:
a) Halle el determinante de A y F y C. Multiplique los determinantes de A y F y valide el
resultsdo.
b) Halle los valores propios de A y B.
c) Halle el polinomio caracterstico de A. Obtenga las races de este polinomio y comprelas
con el resultado del inciso anterior.
d) Revise el nmero de condicin de A.
e) Realice la descomposicin en valores singulares de A y C.
f) Obtenga la diagonal principal de la matriz A.
g) Pida ayuda de las funciones tril y triu. Prubelas.
h) Genere una matriz identidad de orden 5.
i) Genere una matriz de 4 filas y 5 columnas con todos sus elementos iguales a cero.
j) Genere una matriz de nmeros aleatorios de orden 8. Estos nmeros deben seguir una
distribucin normal de probabilidad con valor esperado 5.6.
k) Pida ayuda de la funcin size. Pubela.
5- A partir de la matriz A obtenga las siguientes matrices:
a) Un vector S que contenga la tercera fila de A.
b) Una matriz Z que contenga la segunda y cuarta fila de A.
c) Una matriz U dada por:
- 2 -
INTRODUCCIN AL MATLAB
U
a a a a
a
a
a

1
]
1
1
1
1
11 12 13 14
21
31
41
1 0 0
0 1 0
0 0 1
6- Defina los siguientes polinomios:
a)
( ) p x x x +
4 3
3 8
b)
( ) q x x x + +
2
2 1
c) ( ) r z z z z + + +
5 2
2 2 1
7- Realice las siguientes operaciones con los polinomios anteriores:
a) q(x)*p(x)
b) q(x)*r(z)
c) l(x)=p(x)*(x+1)
d) Escriba l(x) / p(x).
e) Pida ayuda de la funcin length y diga cmo puede ser empleada para hallar el grado de un
polinomio.
f) Obtenga el polinomio cuyas races son: -1, -3, 2+7.8j, 2-7.8j
g) Pida ayuda de la funcin polyval y utilcela para evaluar el polinomio q(x) para x igual a -1,
2 y 6+5j
8- Dada las funciones:
( )
( ) ( ) ( ) ( ) f x
x
x x
g x x m x x ( )
sen
cos log

+

2 1
50
2
- 1
a) Genere un vector linealmente espaciado con valor inicial -5, valor final 5 e incremento entre
uno y otro elemento igual 0.1. Grafique f(x) en el intervalo: -5 <= x <= 5, empleando para
evaluar la funcin el vector anterior. Utilice max y min para hallar los extremos.
b) Grafique f(x) y g(x) en un mismo grfico en el intervalo anterior. Pida ayuda de plot y
cambie los colores y estilo de las lneas con que visualiza ambas funciones.
c) Genere un vector de 100 elementos logartmicamente espaciados entre 0.1 y 100. Evale
m(x) en dicho intervalo grafique el resultado en escala lineal y luego en escala logaritmica
en las abscisas, en las ordenadas y en ambas.
9- Escriba las siguientes lneas para formar la matriz Z
Z=zeros(11);
Z(2:10,2:10)=ones(9);
Z(3:9,3:9)=2*ones(7);
Z(4:8,4:8)=3*ones(5);
Z(5:7,5:7)=4*ones(3);
Z(6,6)=5;
a) Teclee mesh (Z) y vea el resultado.
b) Teclee surf (Z) y vea el resultado.
- 3 -
INTRODUCCIN AL MATLAB
c) Teclee surfl (Z) y vea el resultado.
d) Teclee contour(Z) y vea el resultado.
10- Teclee demo y disfrute de la demostracin de MatLab.
- 4 -
INTRODUCCIN AL MATLAB
1- Haga el Script File correspondiente al primer ejemplo, que trata sobre la programacin del
juego de adivinar un nmero entre 0 y 1000. Para ello:
a) En la Command Window de Matlab elija en la barra de men la opcin File, y dentro de esta
la opcin New, y dentro de esta M-File. Note como automticamente se abre el Block de
Notas en blanco, es decir listo para editar el fichero.
b) Edite el fichero. A continuacin se muestra el listado del mismo.
echo off
clc
disp('Adivine un numero entre 0 y 1000')
disp('')
x=round(rand*1000);
x1=x+1;
c=0;
while x1~=x
x1=input('Entre un numero:');
c=c+1;
hist(c)=x1;
if x1>x
disp('El numero es MENOR que el que usted entro')
end
if x1<x
disp('El numero es MAYOR que el que usted entro')
end
end
disp('')
disp ('Felicidades... Adivino en:')
c
disp('intentos')
disp('Usted clasifico entre los:')
if c<=5
disp('Buenos')
elseif c<=10
disp('Regulares')
else
disp('Malos')
end
disp('')
disp('Oprima una tecla para continuar...')
pause
plot(hist)
title('Curva de aproximacion')
c) Guarde el fichero con el nombre numero.m
d) Ejecute el programa. Para ello active la Command Window y escriba en la linea:
numero
e) Cambie la primera lnea por echo on (si cerr la ventana del editor escoja en el men
File la opcin Open M-file. Guarde el cambio y ejecute nuevamente el programa. Qu
efecto tiene este cambio?
2- Haga el Function File correspondiente al segundo ejemplo, que trata sobre la programacin
del mtodo de Cramer para resolver un sistema de ecuaciones lineales.
a) Realice los pasos necesarios para editar el fichero. A continuacin se muestra el listado:
- 5 -
INTRODUCCIN AL MATLAB
function [x, D, Dj] = CRAMER (A, B)
% Solucion de sistemas de ecuaciones lineales Ax=B, por el metodo de CRAMER
% Sintaxis:
% [x, D, Dj] = CRAMER (A, B)
% Datos de entrada:
% A - Matriz cuadrada.
% B - Vector.
% Salidas:
% x - Vecor solucin.
% D - Determinante de la matriz A (escalar).
% Dj - Vector columna con los determinantes de A con la fila j sustituida por B.
if (nargin==0) | (nargin==1)
error ('Insuficientes dotos de entradas...')
end
[n,m]=size(A);
if n~=m
error ('A debe ser cuadrada...')
end
[nb,mb]=size(B);
if min([nb mb])~=1
error('B debe ser un vector...')
end
if max([nb mb])~=n
error('El numero de elementos de B debe ser igual al orden de A...')
end
if mb~=1
B=B';
end
Dj=zeros(n,1);
x=zeros(n,1);
D=det(A);
for j=1:n
Aj=A;
Aj(:,j)=B;
Dj(j)=det(Aj);
x(j)=Dj(j)/D;
end
a) Salve el fichero con el nombre CRAMER.M.
b) Defina las matrices A y B correspondientes a cualquier sistema de ecuaciones lineales.
c) Intente ejecutar la funcin usando las siguientes lneas.
help cramer
cramer(A)
cramer (A, A)
cramer (B, B)
cramer (A, B) Diga qu da como resultado y a qu variable se le asigna.
[sol, determ] = cramer (A, B)
[sol, determ, dj] = cramer (A, B)
d) Compruebe el resultado resolviendo el sistema como:
x A B
1
e) Adale a la funcin la posibilidad de que genere un mensaje de error si A es singular.
3- Como trabajo independiente puede programar los siguientes ejercicios :
- 6 -
INTRODUCCIN AL MATLAB
a) Un programa que permita dedo un nmero n calcular su factorial.
b) Un programa demo (demostracin) del trabajo con matrices.
c) Un programa que dado dos vectores que representan polinomios devuelva el vector
correspondiente a la suma de ambos.
El inciso b se sugiere hacerlo con un Script File. Los incisos a y c se sugieren hacerlo tanto con
Script File como con Function File.
- 7 -
INTRODUCCIN AL MATLAB
1- Solucin de ecuaciones : f(x)=0
a) Ecuaciones polinmicas (funcin del Matlab : ROOTS).
Hallar las races de los siguientes polinomios :

p x x x ( ) + +
2
3 2

q x x x x ( ) . . + + + 0 2 4 01
4 3

w z z z ( ) + +
2
1

r z z ( )
3
1
b) Ecuaciones no lineales (funcin del Matlab : FZERO).
Hallar los ceros de las siguientes funciones.

f x xe sen x
x
( ) ( ) ( ) 2

w z z z ( ) + +
2
1

[ ]
g x
sen x x x
x x
( )
( )
cos ( )

2 3
2 2
20
23

p x x x ( ) + +
2
3 2
c) Hallar todos los extremos locales de las funciones anteriores (funcin del Matlab :
FMIN).
2- Solucin de sistemas de ecuaciones lineales : Ax=b
Resolver los siguientes sistemas de ecuaciones lineales. En cada caso chequear el
condicionamiento del sistema (funcin del Matlab : COND), escribir el sistema en forma
escaln producto de aplicar eliminacin gausiana (funcin del Matlab : LU), y verificar el
error cometido en la solucin (e=Ax-b). Use el comando edit para editar las matrices.
x x x x
x x x x
x x x x
x x
x x x x x
1 2 3 5
1 2 3 5
1 2 3 5
2 4
1 2 3 4 5
0 2 6 2 1
4 2 6 3 1 1 0 2 5 0
3 5 1 2 4 6
8 4 4
4 7 5 5
+ + +
+ + +
+ + +
+
+ + + +

'

.
. .
0 2 4 0 3 6 01 2 08 5 2
01 2 01 6 0 2 4 0 6 2 0
01 5 0 2 1 0 2 5 0 7 4 0
1 2 3
1 2 3
1 2 3
. . . .
. . . .
. . . .
x x x
x x x
x x x
+ +
+ +
+ +

'

Ejemplo de la pgina 74 de [1]. Sistema inestable.


a ) b )
x x
x x
x x
x x
1 2
1 2
1 2
1 2
2
10 1 2 0 1
2
10 0 1 2 0 1
+
+

'

+
+

'

. . . .
Ejemplo 1 de la pgina 22 de [2]. Ejemplo 7 de la pgina 31 de [2].
- 8 -
Ejemplo de la pgina 77 de [1].
INTRODUCCIN AL MATLAB
x x x
x x x
x x
x x x
1 2 4
2 3 4
1 4
1 2 3
2 4
2
3
2
3
0

+ +

+ +

x x x
x x x
x x x x
1 2 4
2 3 4
1 2 3 4
2 0
3 1
3 1
+ +
+
+ +
Ejemplo 8 de la pgina 32 de [2].
x x x
x x x
x x x
x x
1 2 4
1 3 4
1 2 4
1 2
3
2 2
3
2 2
2
1
1
0
+
+ +

5- Ajuste de curva.
a) Interpolacin y ajuste de curva polinomial (funcin del Matlab: POLYFIT).
Buscar los polinomios de orden 3, 2, 1 y 0 que mejor ajustan los datos de la siguiente tabla.
X -1 -0.5 0 1
f(x) 0 0 1 4
En cada caso graficar los resultados utilizando las siguientes lneas. Los comentarios se
han incluidos para esclarecer las lnea de Matlab.
x=[-1 -0.5 0 1]; % Abscisas de los puntos a ajustar.
y=[0 0 1 4]; % Ordenadas de los puntos a ajustar.
p=polyfit (x, y, n ); % Ajuste al polinomio correspondiente de grado n.
y - polyval (p, x); % Vector del error cometido en cada punto.
x1=-1.5:0.1:1.5; % Comprobacin: genera un vector x1 y evala
y1=polyval (p,x1); % el polinomio resultante del ajuste en dicho
plot (x, y, r*, x1, y1, g-) % vector. Luego grafica los puntos originales
% y el ajuste.
- 9 -
Para probar la potencialidad del Matlab:
1- Genere una matriz A de nmeros
aleatorios de 100x100.
2- Genere un vector b de nmeros
aleatorios de 100x1.
3- Resuelva el sistema Ax=b, o sea, x=A\b

You might also like