ejercicios 1 octave

14
CURSO ON-LINE DE INTRODUCCIÓN A OCTAVE- MATLAB PRÁCTICA 1 D. Enrique Hernández Hernández D. Antonio Ortega Tello

Upload: enhernan

Post on 14-Aug-2015

135 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Ejercicios 1 Octave

 

 

 

 

 

 

 

CURSO ON-LINE DE INTRODUCCIÓN A OCTAVE-

MATLAB  

 

 

 

PRÁCTICA 1  

 

 

 

 

D. Enrique Hernández Hernández

D. Antonio Ortega Tello

Page 2: Ejercicios 1 Octave

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 3: Ejercicios 1 Octave

 

1. DESCRIPCIÓN DEL ESCRITORIO DE MATLAB.

En la figura 1 se muestra el escritorio de Octave al arrancar el programa. En este apartado se va a hacer una descripción de dicho escritorio con el que se debe familiarizar el alumno.

 

Figura 1. Escritorio de Octave.

En él se pueden distinguir, de arriba abajo, una “Barra de Menús”, que contiene los menús de comandos disponibles (File, Edit, View y Help).

Debajo de la barra de menús, una toolbar (barra de herramientas) en la que aparecen, en forma de iconos (es decir, en forma gráfica), las herramientas utilizables directamente sin necesidad de acudir a los comandos existentes que aparecen al desplegar los elementos de la barra de menús.

En el centro de la toolbar se encuentra una “ComboBox” con la ruta del directorio en el que se va a trabajar. Esta ComboBox muestra aquella carpeta que contiene los ficheros con los que se puede trabajar, es decir, es el directorio activo. Los ficheros de esta carpeta aparecen en la ventana “Current Directory”, como se comenta en el párrafo siguiente.

Debajo de la toolbar aparecen varias ventanas grandes. La del centro es la principal, a través de la cual se introducen los distintos comandos que se quieren ejecutar. Es la que habitualmente se usa para trabajar. En ella se ve, arriba a la izquierda, el símbolo “>>” (prompt, aviso) que utiliza Matlab para indicar donde está el cursor.

Page 4: Ejercicios 1 Octave

A la izquierda de esta ventana, aparece una ventana (Current Directory) que muestra todo el contenido de la “Carpeta Actual”, es decir, muestra los ficheros del directorio activo.

Finalmente a la derecha de la ventana de comandos hay otras dos ventanas. La superior es el “Workspace” o “Espacio de Trabajo” y muestra las variables que están disponibles en un determinado instante junto son sus características: tipo de variable y tamaño.

La inferior es la ventana “Command History”, que muestra el histórico de Comandos que se han ejecutado. Cada vez que se ejecuta un comando se escribe en esta ventana para poder consultarlos.

En la figura 1, se muestran cada uno de estos elementos que se acaban de describir.

Se puede personalizar Octave para variar las ventanas que aparecen en pantalla. Esto se hace desde el menú despegable “View” de la barra de menús. Basta seleccionar las ventanas que se quiere que aparezcan o deseleccionar las que se quieran quitar. En la figura 2 se muestra el menú View.

Figura 2. Menú View.

Con el menú “Edit” se tiene acceso a los comandos de hacer y deshacer así como de copiar y pegar y a los de borrado de las ventanas de comando (la ventana de trabajo o principal), histórico y del espacio de trabajo. En la figura 3 se muestran estos comandos.

Page 5: Ejercicios 1 Octave

Figura 3. Comandos del menú Edit.

Con las flechas del cursor: ↑ y ↓ , se pueden recuperar los comandos anteriores, sin tener que volver a teclearlos. Esto resulta útil en el caso de una equivocación o cuando se quiere repetir un comando con alguna pequeña modificación.

Los comandos se pueden ir escribiendo y ejecutando uno a uno, es decir, un comando por línea, y también se pueden escribir uno a continuación de otro en una misma línea, en cuyo caso deben ir separados por comas. Si el comando o la cantidad de comandos es demasiado larga para que aparezca en una línea, se puede romper la cadena y seguir en la siguiente línea, escribiendo tres puntos suspensivos. Por ejemplo,

>>x=sin(10),y=cos(10),... >>z=tan(10)

x= -0.5440

y= -0.8391

z= 0.6484

Page 6: Ejercicios 1 Octave
Page 7: Ejercicios 1 Octave

EJERCICIOS DE LA LECCIÓN 1.

A continuación se enuncian una serie de ejercicios muy elementales para familiarizarse con cálculos elementales de Matlab. Tras resolver cada uno de ellos, usar el comando who y luego los comandos clear, para borrar el valor de las variables que se han utilizado (comprobando después que se han borrado las variables) y clc para borrar todo lo que se ha escrito en la ventana de trabajo.

En estos ejercicios únicamente se van a utilizar los operadores aritméticos:

Suma: + Resta: - Producto: * División: / División inversa: \ Potencia: ^

1. Paso de grados a radianes.

Es bien sabido que en trigonometría se opera normalmente con radianes. Por ejemplo, para saber cuánto vale la longitud de un arco de circunferencia se aplica:

𝑎𝑟𝑐𝑜 = 𝑟𝑎𝑑𝑖𝑜 ∙ á𝑛𝑔𝑢𝑙𝑜

En esa expresión el ángulo tiene que estar expresado en radianes. El arco tendrá las mismas unidades que el radio. Un caso particular de sobras conocido es la longitud de la circunferencia. Como una circunferencia abarca 2𝜋 radianes, aplicando la expresión anterior, la longitud de una circunferencia de radio “r” será:

𝑙 = 2𝜋𝑟.

Precisamente 𝜋 es la constante de proporcionalidad que relaciona el diámetro de una circunferencia con su longitud. Es un número irracional y una de las constantes matemáticas mas importantes. El escriba egipcio Ahmes ya documentó un valor aproximado para el número 𝜋 el año 1800 antes de Cristo.

En la medida de ángulos también se emplean otras dos unidades: los grados sexagesimales y los grados centesimales. Existe proporcionalidad entre ellos,

Page 8: Ejercicios 1 Octave

por lo que mediante una sencilla regla de tres se obtienen los radianes correspondientes a 𝛼° (sexagesimales).

𝜋   𝑟𝑎𝑑    →    180°

𝑥 𝑟𝑎𝑑 →  𝛼°

Por tanto, la expresión para pasar de grados sexagesimales a radianes será:

𝑥 𝑟𝑎𝑑 = !!"#

 𝛼

con el ángulo 𝛼 expresado en grados sexagesimales.

Escribir en Octave-Matlab las expresiones que nos permitan calcular:

• Cuántos radianes corresponden a 30, 60, 90 y 120 grados sexagesimales. Para ello, se puede utilizar una variable “rad” a la que se asigna el resultado y una variable “grdsex” a la que se dan los valores de los grados anteriores.

• Cuántos grados sexagesimales corresponden a 1,5 radianes. • Determinar la longitud de un arco de circunferencia de 20 cm de radio,

correspondiente a un ángulo de 30 grados.

Tras hacer este ejercicio, escribir:

>> who

>> clear all

para borrar todas las variables den entorno de trabajo, y de nuevo:

>> who

¿Qué diferencia hay?. ¿porqué?.

Escribir ahora:

>>clc

para borrar todo lo escrito en la “Ventana de Comandos”.

Uso del comando help. El comando help (ayuda), se puede utilizar para informarnos del cometido de una cierta función o de un comando. Por ejemplo, teclear:

>> help who

Page 9: Ejercicios 1 Octave

2. Progresiones aritméticas.

Dada la progresión aritmética: 3, 6, 9, 12, 15, …

a. Encontrar el término 20 escribiendo en Octave-Matlab la expresión que permite su cálculo. Resolverlo calculando sobre el papel la expresión del término n-ésimo de la progresión aritmética en función del primer valor y de la razón. Escribir en Octave-Matlab la expresión obtenida para encontrar en valor de ese término.

b. Calcular la suma de los “n” primeros números de la progresión. Particulalizar para n=30 y para n=50. Realizarlo de la misma fórmula que el apartado anterior, deduciendo la expresión general de la suma de los n primeros términos de una progresión aritmética.

Nota: En recuerdo de Gauss y como testimonio de amistad y gratitud al profesor D. José Garay, que siendo yo joven me lo enseñó: Para calcular la suma se puede observar que la suma del primer término y el último es igual a la suma del segundo y el penúltimo, etc. Leer el Apéndice I antes de seguir.

3. Utilizando Octave-Matlab, interpolar tres términos entre 2 y 14 de forma que queden uniformemente espaciados, es decir, que formen una progresión aritmética.

4. Utilizando Octave-Matlab, interpolar tres términos entre 3 y 42 de forma que entre uno de ellos y el siguiente haya el doble que entre ese mismo y el anterior.

5. Utilizando Octave-Matlab, encontrar la suma de la sucesión formada por los 1000 primeros números naturales (sin contar el cero). Para ello, pensar cual es la suma del primero y el último, el segundo y el penúltimo, el tercero y el antepenúltimo, etc. ¿Curioso?.

6. Matlab no se puede utilizar para calcular límites cuando su resultado es NaN. Un ejemplo para ver esto consiste en tomar una sucesión de la forma:

!!, !!, !!, !!,…

cuyo término general tiene la forma: !

!!!

Page 10: Ejercicios 1 Octave

Su límite cuando 𝑛 → ∞ es igual a 1. Sin embargo, si se escribe en Matlab:

>> n=inf;

>>m=n/(n+1)

el resultado que sale es:

m =

NaN

ya que considera que infinito dividido entre infinito es indeterminado.

¿Podríamos obtener el límite dividiendo un número grande entre su siguiente número?.

7. Calcular el límite cuando n tiende a infinito de la sucesión 2*n+3. Para ello, dar valor infinito a la variable “n” y aplicar la expresión anterior.

8. Calcular el valor del lado de un cuadrado que tenga el mismo área que una circunferencia de radio r. Expresarlo en Octave-Matlab probándolo con algún valor concreto.

9. Cambio del formato de presentación de resultados.

Escribir la siguiente sentencia de asignación:

>> a=1/3

a=

0.3333

Escribir el comando:

>> format short e

>>a

¿Cuál es el resultado?.

Nota: No olvidar que “e” representa, “10 elevado a”. Es decir: 𝑒 − 001 = 10!!.

Page 11: Ejercicios 1 Octave

10. a. Dados los siguientes nombres de variables, ¿cuáles son correctos?. Probarlo en Octave-Matlab.

aA Aa s_oria 54zaragoza Rf56 Zara67goza

b. ¿Son iguales las dos primeras variables?

c. ¿Cómo se puede hacer que Octave-Matlab tome las dos primeras variables como la misma variable?.

11. Escribir y las siguientes sentencias y analizar los resultados obtenidos:

>> a=5;

>> b=7;

>> c=a+i*b

>> d=a==b

>> e=a~=b

>> div=a/b

>> divInv=a\b

>> cuad=a^2

>> cub=a^3

>> k=2^10

>> x=exp(-1)

Comentar los resultados.

12. Supongamos que la variable “n” representa que “hay nubes”, la variable “ll” que “está lloviendo”, la variable “sol” que “hace sol” y la variable “mo” que “me estoy mojando”. Si:

>> n=1; % ¿Qué representan estas expresiones?

Page 12: Ejercicios 1 Octave

>> ll=0;

>> mo=0;

Expresar las variables

• solNubes, que representa el predicado “Hace sol” Y “hay nubes” • llueve, que representa el predicado “No hace sol” Y “Está nublado” Y

“Llueve”

Comprobar y justificar el resultado.

13. Operaciones con complejos. Justificar y comprobar las siguientes expresiones complejas.

>> x=5+3*i;

>> y=8-2*i;

>> x+y

>> x*y

>> x/y

>> x/(y-8)

Uso del comando save.

Para guardar el estado de una sesión de trabajo se usa el comando save. Si se escribe:

>> save

antes de salir del programa, se crea en el directorio actual (el que aparece en el Current Folder) un fichero binario llamado “matlab.mat”, que contiene todo el estado de la sesión excepto los gráficos. Se puede ver en la ventana Current Directory.

Dicho estado se puede recuperar la próxima vez que se use Octave mediante el comando load.

Esta es la forma más básica de utilizar estos comandos. Se pueden utilizar para almacenar variables en ficheros cuyo nombre se puede especificar. Mas adelante se detallarán.

Page 13: Ejercicios 1 Octave

APÉNDICE I

Érase una vez, un niño alemán llamado Carl Friedrich Gauss. Cuando tenía diez años, en 1787, su profesor de la escuela, enfadado porque sus alumnos se portaban mal, le puso un problema matemático al pequeño Carl y a sus compañeros. Los niños debían sumar todos los números del 1 al 100. El profesor se sentó en su silla a leer el periódico, confiando en que tendría mucho tiempo hasta que los niños sumaran todos los números. Sin embargo, el pequeño Gauss no tardó ni cinco minutos en ir hacia el profesor y darle el resultado: 5050. ¿Cómo lo había hecho? Veamos como resolvió Gauss el problema planteado por su profesor: Gauss tenía que sumar la siguiente serie: 1 + 2 + 3 + 4 + ... + 98 + 99 + 100 No obstante, se dio cuenta de que el primero y el último sumaban 101, lo mismo que el segundo y el antepenúltimo, etc.

(1 + 100) = 101 (2 + 99) = 101 ... (49 + 52) = 101 (50 + 51) = 101

Así, todas las sumas de simétricos daban 101 y como había un total de 50 posibles pares, el resultado era de 50 x 101, o sea, 5050. De esta forma se deduce fácilmente la expresión de la suma de los “n” términos de una progresión aritmética, conocidos el primero, el último y el número de términos a sumar: 𝑆! =

!!!!! !!

 

Page 14: Ejercicios 1 Octave