matlab ejerc1

9
 EJERCICIOS DE MATLAB

Upload: july-andrea-gomez-camperos

Post on 08-Jul-2015

170 views

Category:

Documents


0 download

TRANSCRIPT

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 1/9

EJERCICIOS DE 

MATLAB

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 2/9

INTRODUCCIÓN AL MATLAB

1- Como primer ejercicio chequee el valor de algunas variables predefinidas. Para ello tecleelas siguientes líneas:

» i » j » pi » eps » 1 / 0 » 0 / 0

2- Defina en Matlab las siguientes matrices:

( ) A

i

i i

i

 B

i

i

=

+

+ +

=

+

=

+

4 5 3 6 12 2 8

7 082 0 14

6 3 23 18 7 4

15 4 8 2 03 9 2

5

0

63

4 8

19 3 2 23

75 3 5 14 3

4 5 887 9 11

2

0 7

. .

.

. . .

.. log .

. . .

 

π  

Compruebe que no es lo mismo teclear  A (mayúscula) que teclear a (minúscula).Pida ayuda de los comandos Who y Whos. Pruébelas.

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 AT =  

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 característico de A. Obtenga las raíces de este polinomio y compárelas

con el resultado del inciso anterior.

d) Revise el número de condición de A.

e) Realice la descomposición 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. Pruébelas.

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 números aleatorios de orden 8. Estos números deben seguir una

distribución normal de probabilidad con valor esperado 5.6.

k) Pida ayuda de la función size. Puébela.

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 -

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 3/9

INTRODUCCIÓN AL MATLAB

a a a a

a

a

a

=

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 33 8

 b) ( )q x x x= + +2 2 1

c) ( )r z z z z  = + + +5 22 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 función length y diga cómo puede ser empleada para hallar el grado de un

 polinomio.f) Obtenga el polinomio cuyas raíces son: -1, -3, 2+7.8j, 2-7.8j

g) Pida ayuda de la función polyval y utilícela para evaluar el polinomio q(x) para x igual a -1,2 y 6+5j

8- Dada las funciones:

( )( ) ( ) ( ) ( )    f x

 x

 x xg x x m x x( )

sencos log=

+

= =

2 1502 -1

a) Genere un vector linealmente espaciado con valor inicial -5, valor final 5 e incremento entreuno y otro elemento igual 0.1. Grafique  f(x) en el intervalo: -5 <=  x <= 5, empleando paraevaluar la función el vector anterior. Utilice max y min para hallar los extremos.

  b) Grafique f(x) y g(x) en un mismo gráfico en el intervalo anterior. Pida ayuda de  plot  y

cambie los colores y estilo de las líneas con que visualiza ambas funciones.c) Genere un vector de 100 elementos logarítmicamente espaciados entre 0.1 y 100. Evalúe

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 líneas 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 -

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 4/9

INTRODUCCIÓN 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 demostración de MatLab.

- 4 -

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 5/9

INTRODUCCIÓN AL MATLAB

1- Haga el Script File correspondiente al primer ejemplo, que trata sobre la programación del juego de adivinar un número entre 0 y 1000. Para ello:

a) En la Command Window de Matlab elija en la barra de menú la opción  File, y dentro de esta

la opción  New, y dentro de esta M-File. Note como automáticamente se abre el  Block de

 Notas en blanco, es decir listo para editar el fichero. b) Edite el fichero. A continuación se muestra el listado del mismo.

echo off clcdisp('Adivine un numero entre 0 y 1000')disp('')x=round(rand*1000);x1=x+1;c=0;while x1~=xx1=input('Entre un numero:');c=c+1;hist(c)=x1;

if x1>xdisp('El numero es MENOR que el que usted entro')endif x1<xdisp('El numero es MAYOR que el que usted entro')

endenddisp('')disp ('Felicidades... Adivino en:')cdisp('intentos')disp('Usted clasifico entre los:')if c<=5

disp('Buenos')elseif c<=10disp('Regulares')

elsedisp('Malos')

enddisp('')disp('Oprima una tecla para continuar...')pauseplot(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:

» numeroe) Cambie la primera línea por echo on  (si cerró la ventana del editor escoja en el menú

 File la opción 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 programación

del método de Cramer para resolver un sistema de ecuaciones lineales.

a) Realice los pasos necesarios para editar el fichero. A continuación se muestra el listado:

- 5 -

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 6/9

INTRODUCCIÓN 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 solución.% 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~=merror ('A debe ser cuadrada...')

end

[nb,mb]=size(B);if min([nb mb])~=1error('B debe ser un vector...')

endif max([nb mb])~=nerror('El numero de elementos de B debe ser igual al orden de A...')

endif mb~=1B=B';

endDj=zeros(n,1);x=zeros(n,1);D=det(A);

for j=1:nAj=A;Aj(:,j)=B;Dj(j)=det(Aj);x(j)=Dj(j)/D;

enda) 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 función usando las siguientes líneas.» 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) Añádale a la función la posibilidad de que genere un mensaje de error si A es singular.

3- Como trabajo independiente puede programar los siguientes ejercicios :

- 6 -

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 7/9

INTRODUCCIÓN AL MATLAB

a) Un programa que permita dedo un número n calcular su factorial.

  b) Un programademo (demostración) 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 -

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 8/9

INTRODUCCIÓN AL MATLAB

1- Solución de ecuaciones : f ( x)=0

a) Ecuaciones polinómicas (función del Matlab : ROOTS).Hallar las raíces de los siguientes polinomios :

• p x x x( ) = + +2 3 2 •  q x x x x( ) . .= + + +0 2 4 014 3

•w z z z  ( ) = + +

2

1•  r z z ( ) = −

3

1 b) Ecuaciones no lineales (función 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 (función del Matlab :

FMIN).

2- Solución de sistemas de ecuaciones lineales : Ax=b

Resolver los siguientes sistemas de ecuaciones lineales. En cada caso chequear el

condicionamiento del sistema (función del Matlab : COND), escribir el sistema en formaescalón producto de aplicar eliminación gausiana (función del Matlab : LU), y verificar el

error cometido en la solución (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 0 8 5

01 2 01 6 0 2 4 0 6 2

01 5 0 2 1 0 2 5 0 7 4

1 2 3

1 2 3

1 2 3

. . . .

. . . .

. . . .

  x x x

  x x x

  x x x

+ + =

+ + =

+ + =

Ejemplo de la página 74 de [1]. Sistema inestable.

a ) x x

 x x

 x x

 x x

1 2

1 2

1 2

1 2

2

10 12 0 1

2

10 0 2 0

+ =

+ =

+ =

+ =

. . . .Ejemplo 1 de la página 22 de [2]. Ejemplo 7 de la página 31 de [2].

- 8 -

Ejemplo de la página 77 de [1].

5/9/2018 Matlab Ejerc1 - slidepdf.com

http://slidepdf.com/reader/full/matlab-ejerc1 9/9

INTRODUCCIÓN 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 03 1

3 1

+ + =+ − =

− + + = −

Ejemplo 8 de la página 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) Interpolación y ajuste de curva polinomial (función 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 líneas. Los comentarios se

han incluidos para esclarecer las línea 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; % Comprobación: genera un vector  x1 y evalúa» 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 números

aleatorios de 100x100.2- Genere un vector b de números

aleatorios de 100x1.

3- Resuelva el sistema Ax=b, o sea, x=