Wuolah-free-leccion 0 - Notas Sobre Matlab Y Octave.pdf

  • Uploaded by: Alejandro Flores Vizcaya
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Wuolah-free-leccion 0 - Notas Sobre Matlab Y Octave.pdf as PDF for free.

More details

  • Words: 3,591
  • Pages: 12
anapasigl

www.wuolah.com/student/anapasigl 4299

Leccion 0 - Notas sobre Matlab y Octave.pdf temas de teoria 1-4

3º Métodos Matemáticos Grado en Ingeniería de las Tecnologías de Telecomunicación ETSI - Escuela Técnica Superior de Ingeniería US - Universidad de Sevilla

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

MÉTODOS MATEMÁTICOS (Curso 2012-2013) Grado en Ingeniería de Tecnologías de Telecomunicación (ETSI) Departamento de Matemática Aplicada II. Universidad de Sevilla

Lección 0: Notas sobre

Matlab y Octave

Índice 2

1.1.

Acceso a Matlab y Octave

. . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2.

Edición y variables

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3.

Formatos numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2. Datos

3

2.1.

Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.2.

Direccionamiento y manipulación de matrices

2.3.

Operaciones básicas con matrices

. . . . . . . . . . . . . . . . .

4

. . . . . . . . . . . . . . . . . . . . . . . .

5

3. Archivos y Programación

5

3.1.

Archivos de instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

3.2.

Archivos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

3.3.

Subfunciones

3.4.

Órdenes de control

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4. Grácas

7 8

9

4.1.

Grácas bidimensionales

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

4.2.

Grácas tridimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

1. Aspectos Generales

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Lección 0.- Notas sobre

2

Matlab

y

Octave

1. Aspectos Generales El material expuesto en esta lección debe entenderse solamente como una sencilla introducción a aquellos aspectos de los programas Matlab y Octave que van a ser utilizados repetidamente durante el curso. Puesto que la diferencia entre ambos entornos es realmente mínima, la exposición se desarrollará para Matlab, con algún que otro comentario sobre Octave si fuera preciso.

Sin duda, es muy recomendable profundizar en algunas de las cuestiones aquí tratadas, especialmente en todo lo relacionado con el manejo de archivos *.m y con la programación. Para ello, puede consultarse cualquiera de los textos mencionados en el proyecto docente de

1.1. Acceso a

Matlab y Octave

En las distintas aulas del Centro de Cálculo de la ETSI se puede acceder a las licencias (son un número limitado) de Matlab adquiridas por la Universidad de Sevilla. Casi todos los ordenadores del Centro de Cálculo permiten trabajar con Matlab y, para ello, basta seguir las correspondientes instrucciones del propio Centro de Cálculo de la Escuela. Octave es un entorno computacional altamente compatible con Matlab con la impor-

tante diferencia de que se distribuye como software libre. Puede ejecutarse bajo Windows,

Linux y MacOS entre otros sistemas operativos. Si bien inicialmente, el manejo de este programa es por línea de códigos, existen numerosas interfaces grácas de usuario, como

qtoctave, que permiten generar un entorno amigable de trabajo con este programa. En cualquier caso, para usuarios de Windows, se recomienda descargar GNU Octave-edición UPM de la página WEB

http://mat.caminos.upm.es/octave/ donde profesores de la Universidad Politécnica de Madrid han diseñado una plataforma realmente cómoda y sencilla para usar Octave.

1.2. Edición y variables Matlab nos indica que está a la espera de nuestras instrucciones cuando aparece el

símbolo

>>

(prompt ). Para salir de Matlab basta teclear

exit

o

quit

y para ejecutar

cualquier instrucción, pulsar la tecla Return . Hemos de tener en cuenta que una instrucción termina al cambiar de línea. Si necesitamos escribir más de una línea, debemos poner el símbolo ... (tres puntos) al nal de la misma y continuar en la siguiente línea. Si lo que queremos es escribir varias instrucciones dentro de la misma línea, basta separarlas por comas. El cursor se posiciona con las echas izquierda/derecha pueden usarse las teclas Backspace o Supr

.



,



y para borrar caracteres

Si lo que se desea es borrar toda la línea de

edición puede usarse la tecla Esc . También son accesibles otras posibilidades de edición en línea (de signicado completamente intuitivo) con las teclas opción muy útil es usar las echas arriba/abajo

↑,↓

Inicio ,

Fin

o

Insert . Otra

para recuperar las órdenes previas. De

esta manera, se puede recuperar una línea anterior de órdenes, editarla y ejecutarla revisada. Para limpiar completamente la pantalla se utiliza la orden

clc.

¿Quieres triunfar en tus estudios? Conoce el método para lograrlo

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

la asignatura.

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Datos

3

Conviene precisar que los paréntesis ( ) y los corchetes [ ] tienen signicados bien distintos en Matlab. Los primeros se utilizan para evaluar funciones y los segundos para denir vectores o matrices. El resultado de ejecutar en Matlab cualquier expresión matemática se guarda, caso de no asignarle ningún nombre, en una variable denominada

ans (de answer ), la cual se muestra

inmediatamente en pantalla y toma como valor el correspondiente resultado. Si deseamos que el resultado de nuestra operación no aparezca en pantalla, basta teclear al nal de la expresión el símbolo ; (punto y coma).

Ejercicio 1. Para este ejercicio, se recomienda usar las órdenes help y lookfor. Compruebe que Matlab permite determinar el máximo común divisor (greatest common divisor ) de dos







>> lookfor divisor >> gcd(30,24)

1.3. Formatos numéricos Para visualizar los resultados, Matlab ofrece numerosas posibilidades aunque, por defecto, representa los números en pantalla con redondeo a cuatro cifras decimales. También decide si representa un número en notación convencional (coma ja) o en notación cientíca (coma otante). La orden básica para la representación en pantalla es

format.

Es fundamental entender que Matlab no cambia la representación interna de un número cuando se escogen diferentes formatos, sólo modica su visualización.

Ejercicio 2.

Escriba el número

π

en varios formatos de Matlab.



>> >> >> >>

format format format format





short, pi long, pi shorte, pi longe, pi

2. Datos 2.1. Matrices En Matlab se trabaja fundamentalmente con matrices. De hecho, para Matlab, los números son simplemente matrices cuadradas de orden uno. Las matrices pueden denirse de diversas maneras. Las dos más usuales son: Escribir la matriz entre corchetes, colocando las las una a continuación de otra, separadas por el símbolo ;. Entre los elementos de una misma la podemos colocar una coma o dejar un espacio en blanco.

Sevilla Language Center – MY FRIEND THINKS YOU ARE PRETTY

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

enteros. Determine el máximo común divisor del par (30,24).

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Lección 0.- Notas sobre

4

Matlab

y

Octave

Escribir la matriz entre corchetes, colocando cada la en un renglón distinto. Matlab incluye una orden muy útil para generar vectores cuyas coordenadas están en

progresión aritmética. En concreto, la estructura

c,

incrementando cada coordenada con el número

a:b:c crea un vector entre los números a y b. Si sólo se escribe a:c se considera que b

Ejercicio 3.

Genere tres vectores cuyos elementos representen una partición del intervalo

[-1,1] en cinco, ocho y diez subintervalos iguales. Con las tres primeras coordenadas de cada uno de ellos, genere las tres las de una matriz

3×3

y calcule el determinante de dicha

matriz. 

>> >> >> >> >>





p5=-1:2/5:1; p8=-1:2/8:1; p10=-1:2/10:1; A=[p5(1:3);p8(1:3);p10(1:3)] det(A)

2.2. Direccionamiento y manipulación de matrices Para seleccionar un elemento determinado de una matriz se escribe el nombre de la matriz seguido del número de la y columna separados por una coma y entre paréntesis. Si se desea extraer una submatriz, basta colocar en vez de números, vectores cuyas componentes son los números de las correspondientes las y columnas. El símbolo dos puntos es muy útil para crear submatrices. Cuando no se le dan valores a derecha e izquierda recorre, por defecto, todas las las o columnas. Si colocamos datos fuera del rango actual de una matriz se rellenan con ceros las zonas no especicadas.

Ejercicio 4.

Obtenga de cuatro maneras distintas la submatriz formada por la segunda y

la tercera la de la siguiente matriz



1  1 A=  1 1 

>> >> >> >> >>

1 2 2 2 ⋄

1 2 3 3

 1 2  . 3  4



A=[1 1 1 1;1 2 2 2;1 2 3 3;1 2 3 4] A(2:3,1:4) A(2:3,:) A([2 3],:) A([1 4],:)=[] La última opción no debe emplearse si se desea conservar la matriz

A.

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

es igual a uno.

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Archivos y Programación

5

2.3. Operaciones básicas con matrices Para trabajar con matrices y vectores, Matlab cuenta con una serie de operaciones básicas que citamos a continuación. En todas ellas es fundamental el que las dimensiones sean las adecuadas. El símbolo + para sumar matrices y el - para restar matrices. El símbolo * para multiplicar matrices. Si el símbolo lo precedemos de un punto se obtiene la multiplicación coordenada a coordenada. El símbolo ^ para la potenciación de matrices. Con el punto delante se obtiene la operación coordenada a coordenada.

ellas es un número puede quitarse el punto. Funciones elementales sobre vectores/matrices (de signicado completamente intuitivo en inglés):

max, min, sort, sum, size,...

Además, Matlab incorpora funciones que permiten generar matrices que surgen con frecuencia en los cálculos:

Ejercicio 5.

eye, zeros, ones, diag, rand, randn, ...

Escriba las matrices

A

y

B

denidas por

A(i, j) = 10(i − j) + 1; i, j = 1, ..., 10. { 1, i−j =1 , i, j = 1, ..., 40. B(i, j) = 0, en otro caso 





>> A=[1:10]'*ones(1,10); A=10*(A-A')+1 >> B=[zeros(1,40);eye(39,40)]

3. Archivos y Programación Tanto para trabajar con datos de cierto tamaño, como para diseñar nuevas funciones en Matlab, es completamente imprescindible trabajar con M-archivos (archivos ASCII con extensión *.m). De hecho, una parte importante de cada sesión con Matlab es crear y renar este tipo de archivos. Atendiendo a su uso, los M-archivos suelen dividirse en dos grandes grupos: archivos de instrucciones o tipo script y archivos de funciones.

3.1. Archivos de instrucciones Un M-archivo de este tipo consiste en una sucesión de instrucciones de Matlab. Para ejecutarlas y ver el correspondiente resultado en pantalla, basta escribir el nombre del archivo (sin la extensión) y pulsar Return . Las variables en un archivo de instrucciones son globales y, por tanto, pueden afectar a los valores de las variables que se hayan creado durante la sesión de trabajo con Matlab.

¿Quieres triunfar en tus estudios? Conoce el método para lograrlo

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

El símbolo ./ para dividir dos matrices coordenada a coordenada. Cuando una de

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Lección 0.- Notas sobre

6

Matlab

y

Octave

Los archivos de instrucciones son utilizados, por ejemplo, para introducir datos en matrices de grandes dimensiones, pues en un archivo de este tipo es fácil corregir errores sin repetir todo el trabajo.

Ejercicio 6. Obtenga la matriz cuadrada de orden veinte tal que los elementos de su diagonal son todos iguales a 3 y las dos subdiagonales principales están formadas por unos. Calcule su determinante. Posteriormente cambie la diagonal por el vector cuyas coordenadas son los primeros veinte números naturales y vuelva a calcular el determinante de la nueva matriz. 





u=ones(20,1); A=3*diag(u)+diag(u(1:19),1)+diag(u(1:19),-1); det(A) >> prueba u=ones(20,1); v=1:20; A=diag(v)+diag(u(1:19),1)+diag(u(1:19),-1); det(A) >> prueba

3.2. Archivos de funciones Los M-archivos de funciones son los que permiten incrementar la colección de funciones que ejecuta Matlab. Es decir, se pueden crear funciones especícas para algún problema concreto y, a partir de su introducción, dichas funciones tienen el mismo rango que las funciones del sistema y se ejecutan de igual forma. Las variables en los archivos de funciones son locales, es decir, no afectan a los valores de las variables que se hayan creado durante la sesión de trabajo con Matlab. El nombre de un archivo de función debe ser el nombre de la función seguido, obviamente, de la extensión *.m. La primera línea de un archivo de este tipo debe ser como sigue: function [argumentos de salida]=nombre de la función(argumentos de entrada). A continuación, puede haber diversas líneas de comentario que han de estar precedidas necesariamente por el símbolo  %. Conviene decir que son precisamente estas líneas las que aparecerán en pantalla al usar la orden

help. Finalmente, aparece el programa, esto es, las

instrucciones necesarias para poder evaluar la función. Tanto los argumentos de entrada como los de salida no son obligatorios y, si no aparecen, no hace falta escribir los correspondientes corchetes o paréntesis. Para hacerse una idea de las órdenes que incorpora Matlab en un cierto área, puede usarse la orden

lookfor seguida de una cierta palabra. Por ejemplo, si esa palabra es eigen-

value, obtenemos un listado de aquellas órdenes relacionadas con el cálculo de autovalores.

Sevilla Language Center – MY FRIEND THINKS YOU ARE PRETTY

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

Trabajamos con un archivo de instrucciones denominado prueba.m

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Archivos y Programación

Ejercicio 7.

Rn .

7

Diseñe una función que devuelva el producto escalar de dos vectores

Los argumentos de entrada deben ser los vectores

x

e

y.

x

e

y

de

Además, el correspondiente

archivo debe incluir algunas líneas de comentario.





function p=L00_ejer_07(x,y) % Esta funcion calcula el producto escalar de dos vectores x e y x=x(:); y=y(:); p=x'*y; end

3.3. Subfunciones Cualquier función puede incluir subfunciones. Esto es, en un mismo chero se pueden incluir funciones adicionales (o subfunciones) con nombres diferentes del nombre de la función principal. Estas subfunciones sólo pueden ser llamadas por las funciones contenidas en ese archivo, resultando invisibles para otras funciones externas. Las subfunciones son particularmente útiles en el manejo de métodos numéricos que actúan sobre funciones. Por citar un ejemplo, mencionamos que el cálculo numérico de integrales en Matlab se realiza mediante la orden

quadl (QUADrature

of Lobatto ) y uno de

sus argumentos es la función a integrar.

Ejercicio 8.

Utilizando la orden

quadl y para a = 10, obtenga una tabla con los valores de

las siguientes quince integrales

∫ In = 0

1

xn dx, a+x





n = 1, 2, . . . , 15. 

function L00_ejer_08(a,n) for k=1:n Q=quadl(@(x)fun(x,a,k),0,1); fprintf('Int(%2.0f)=%16.15f\n',k,Q) pause(0.1) end function y=fun(x,a,k) y=(x.^k)./(a+x); end end

¿Quieres triunfar en tus estudios? Conoce el método para lograrlo

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.



a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Lección 0.- Notas sobre

8

Matlab

y

Octave

3.4. Órdenes de control Como cualquier lenguaje de programación, Matlab dispone de instrucciones de control para realizar (o romper) bifurcaciones, repeticiones y bucles. Las bifurcaciones permiten realizar distintas operaciones, según se cumpla o no una determinada condición lógica. Para su diseño, Matlab incorpora las órdenes

if y switch. Por otro lado, los bucles y repeticiones,

cierta condición lógica en el caso de los bucles y recorriendo unos ciertos valores previamente dados, en el caso de las repeticiones. Para generar repeticiones, Matlab dispone de la orden

for y para generar bucles de la orden while.

La orden for. La sintaxis para la utilización de esta orden de control es   

for variable=vector instrucciones sobre la variable end

El signicado es el siguiente: mientras la variable recorre los valores del vector, se realizan las instrucciones descritas, con la variable tomando dichos valores. Matlab permite anidar varias órdenes

for.

Ejercicio 9. Dada una matriz cuadrada de orden n, diseñe una función, usando la instrucción for, que sume los elementos de mayor módulo de cada una de las columnas de dicha matriz. 





function s=L00_ejer_09(A) [~,n]=size(A); s=0; for j=1:n [~,i]=max(abs(A(:,j))); s=s+A(i,j); end end

La orden if. La sintaxis habitual para la utilización de esta orden de control es           

P1  Q1 

if relación lógica instrucciones else instrucciones

Q2 

end

P1 es cierto se ejecutan las instrucciones Q1 y si P1 es Q2 . Las líneas tres y cuatro anteriores pueden suprimirse

El signicado es el siguiente: si falso se ejecutan las instrucciones y, en este caso, cuándo

P1

sea falso, no se ejecuta ninguna instrucción.

Ejercicio 10. Diseñe una función que calcule todos los divisores de un número natural dado. 





Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

permiten hacer las mismas o análogas operaciones sobre datos distintos; regidos por una

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Grácas

9

function d=L00_ejer_10(n) d=[]; for i=1:n if rem(n,i)==0 d=[d,i]; end end end

La orden while. La sintaxis para la utilización de esta orden de control es 

while relación lógica instrucciones end

El signicado de este esquema es que las instrucciones se irán ejecutando mientras la relación lógica sea cierta.

Ejercicio 11.

∑∞

1 π2 n=1 n2 = 6 . Obtenga el menor número de sumandos de la serie anterior, de modo que la correspondiente π2 −6 suma nita aproxime con un error menor o igual que 10 . 6 Un famoso resultado de L. Euler (1707-1783) arma que







function n=L00_ejer_11(tol) s=0; n=1; e=1; while e > tol s=s+1/n^2; e=abs(s-pi^2/6); n=n+1; end >> L01_ejer_11(1e-6)

4. Grácas Para mostrar las correspondientes grácas, Matlab abre una nueva ventana, la denominada ventana de gura. Si ya hubiera una, se borra la actual y se dibuja en ella la nueva

gure. La gure(n) muestra, o crea si no la hay, la ventana de gura n-ésima y ésta pasa a ser la ventana de gura activa. La orden close cierra la ventana gráca activa. gráca. Para utilizar dos o más grácas en diferentes ventanas, se usa la orden orden

Sevilla Language Center – MY FRIEND THINKS YOU ARE PRETTY

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

 

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-4500

Lección 0.- Notas sobre

10

Matlab

y

Octave

4.1. Grácas bidimensionales Para obtener grácas 2-D, Matlab admite cuatro opciones: grácas en coordenadas cartesianas, grácas en coordenadas polares, grácas de barras y grácas de escaleras. La

plot, para crear polar y, nalmente, los grácos de barras y escaleras se generan usando las órdenes bar y stairs, respectivamente. La orden plot escala los ejes para ajustar los datos, representa los puntos y, a continuaorden para representar datos bidimensionales en coordenadas cartesianas es grácas en coordenadas polares es

ción, conecta los puntos con una línea recta. También añade una escala numérica y coloca de forma automática marcas en ambos ejes.

Dibuje la gráca de la función exponencial en el intervalo [-2,2]. Obtenga una

segunda gráca donde a la curva anterior se le añada la recta tangente en 



x = 0.



function L00_ejer_12 x=-2:0.01:2; figure(1) plot(x,exp(x)); xlabel('x'); ylabel('y'); title('Curva y=e^x');shg pause figure(2) plot(x,exp(x),x,1+x,'r') xlabel('x'); ylabel('y'); title('Curva y=e^x y recta tangente y=1+x en x=0'); legend('y=e^x','y=1+x','Location','SouthEast');shg end

4.2. Grácas tridimensionales Para obtener grácas 3-D, Matlab admite tres opciones: grácas de líneas, grácas de supercies y grácas de contorno. La orden básica para realizar grácas de líneas es las órdenes para grácas de supercies son contorno es

contour.

mesh

y

surf

plot3,

y, nalmente, para grácas de

¿Quieres triunfar en tus estudios? Conoce el método para lograrlo

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

Ejercicio 12.

Related Documents


More Documents from ""