• No se han encontrado resultados

Unidad 1: Introducción y conceptos básicos

N/A
N/A
Protected

Academic year: 2021

Share "Unidad 1: Introducción y conceptos básicos"

Copied!
33
0
0

Texto completo

(1)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(2)

Introducción

NOTA: Para la realización del curso se requieren conocimientos básicos de Windows, OS o linux.

MATLAB/GnuOctave/Scilab

http://www.mathworks.es/products/matlab/

MATLAB® es un lenguaje de alto nivel y un entorno interactivo para el cálculo

numérico, la visualización y la programación. Mediante MATLAB, es posible analizar datos, desarrollar algoritmos y crear modelos o aplicaciones. El lenguaje, las herramientas y las funciones matemáticas incorporadas permiten explorar diversos enfoques y llegar a una solución antes que con hojas de cálculo o lenguajes de programación tradicionales, como pueden ser C/C++ o Java™.

http://www.mathworks.es/videos/matlab-overview-61923.html?type=shadow&language=es Matlab: o entorno interactivo, o editor, o lenguaje de programación, o compilador, o ejecución de programas, o debuger, o …

(3)

Operaciones elementales MATLAB como una calculadora

>>

help

>>

doc

http://www.maths.dundee.ac.uk/~ftp/na-reports/MatlabNotes.pdf http://www.mathworks.es/academia/student_center/tutorials/launchpad.html http://www.octave.org

Operaciones elementales:

+

-

*

/

^

Ejercicio 1.1: Realiza una serie de cálculos elementales, por ejemplo:

>> 4+2 >> 2*pi

>> 10+43/2 >> 6*1.0004e20/9^9

>> (10+43)/2 >> 103^2.4+4*3.7-1.2/4^1.2 >> 3.1416^3.1416 >> -2^0.5

(4)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(5)

Variables MATLAB como una calculadora

Ejercicio 1.2: Repetir ejercicio 1.1 usando variables.

Matlab puede almacenar números en varibles y operar con ellas:

>> a = 4

>> b = 7

>> c = a + b

>> milesima = a – b + 3.001

>> a = 0.032

>> c = a + b

a

b

c

4

7

11

El ordenador guarda en una parte de su RAM un valor y le asigna un nombre. Ese valor se puede sobrescribir.

a

0.032

Nombre de las variables:

Cualquier combinación de letras (excepto ñ) y números empezando por una letra.

También se puede usar el guion bajo " _ ". Sin espacios.

Hasta 63 caracteres.

Consejo: Usar nombres con significado.

Variables predefinidas:

ans

pi = 3.141592654... = π eps = 2.22044...e-16 = 2-54

i unidad imaginaria √-1 (también j) inf

(6)

Variables MATLAB como una calculadora

Variables predefinidas:

Cambiar el valor de una variable predefinida y recuperar su valor: >> i

>> i=2 >> clear i >> i

clear se puede usar con cualquier variable (ver la ayuda).

Mirar también que hacen who, whos y clc. En la ventana Workspace se pueden ver también las variables que están definidas por el usuario en ese momento.

Visualización de valores,

format

:

Mirar en la ayuda el comando format.

Probar sumar, por ejemplo, 1000000000 + 1 y ver el resultado con format short y format long. Mirar que hace ; al final de un expresión.

Caracteres:

Las variables también pueden tener un valor alfanumérico: >> texto=‘hola’

(7)

Funciones elementales MATLAB como una calculadora

Matlab incluye una gran cantidad de funciones predefinidas, entre ellas todas las funciones matemáticas elementales sin() cos() tan() exp() log() sqrt() ...

Ejercicio 1.3: calcular log2(108), exp(log(9)), sin(asin(0.7)), tan(pi/3)-sin(pi/3)/cos(pi/3), …

(8)

Ejercicios MATLAB como una calculadora Ejercicio 1.4: Hacer los siguientes cálculos:

1) Define en una variable un ángulo cualquiera en grados, entre 0 y 90, ej. xg = 33 2) Cambia a radianes, xr

3) Calcula el seno, coseno y tangente de ese ángulo xr, ej. sx,cx,tx

4) Para los valores obtenidos, calcular las funciones inversas: asin(sx), acos(cx) y atan(tx) 5) Finalmente cambia el resultado de esas operaciones a grados.

Repetir este cálculo para varios ángulos iniciales: xg= 56, 24, 78, etc.

Probar con otros ángulos fuera del primer cuadrante (ej. 120, -234, 245…).

Ejercicio 1.5: Comprobar para varios ángulos si las siguientes identidades son correctas: 1) tan(x/2) = sqrt [ (1-cos(x) ) / ( 1 + cos(x) ) ]

2) tan(2x) = 2 tan(x) / ( 1 – tan2(x) )

3) sin(2x) = 2 sin(x) cos(x)

(9)

Ejercicios MATLAB como una calculadora Ejercicio 1.6: Estimar numéricamente el límite

lim (x→0) [ sin( π x) / x ]

Para ello observar el comportamiento del cociente [ sin( π x) / x ] para valores de x acercándose a cero.

Ejercicio 1.7: Usar help o doc para ver para que sirven los comandos diary y save, y para aprender a usarlos.

(10)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(11)

Vectores Conceptos básicos

Se pueden almacenar un conjunto de número en una sola variable indexada, es decir en un vector:

>> a = [ 0.25 0.33 0.5 0.66 ] >> a(2)

>> a(3) >> a(2:3)

Otras formas de definir vectores: >> a = [0.25,0.33,0.5,0.66] >> b = [1 2 3 4 5 6] >> b = [1:6] >> b = [1:1:6] >> c = [1:2:6] >> v = [1:-0.1:0] >> vv = 0:1/3:3

a

0.25

1

0.33

2

0.50

3

0.66

4

También se pueden definir las componentes: >> b = [1:1:6]

>> b(3) = 0.5

O extraerlas del vector: >> b(5) = []

O usar vectores para crear otros: >> a=[-2,-1,0],b=[1,2]

>> ab=[a b]

Crear vectores cuyo conjunto de valores está espaciado uniformemente: >> vector = [valor_inicial:espaciado:valor_final] >> vector = linspace(valor_inicial,valor_final,numero_elementos) >> xgrid = linspace(-2,2,10) >> help logspace vector(1)=valor_inicial vector(N)=valor_final N=numero_elementos Índices enteros y positivos

(12)

Vectores Operaciones con vectores

Vector “columna” y transponer vectores: >> a = [0.25;0.33;0.5;0.66]

>> b=[1:6] >> b’

Transponer vectores complejos: >> acomp=[1+i, -4, 2-3.5*i]

>> acomp’ Se pueden realizar operaciones con vectores:

>> k=[0.1:0.3:1.9] >> 3*k >> k-sqrt(3) >> length(k) >> norm(k) >> sort(k) >> v = [1, 2, 3], x = [5, 6, 7]; >> u = v+x >> u = v*x’ >> u = dot(v,x) >> u = cross(v,x)

y también elemento a elemento: >> v*x >> v.*x >> v^2 >> v.^2 >> v/x >> v./x >> acomp=[1+i, -4, 2-3.5*i] >> acomp.’

Las funciones admiten vectores como argumentos:

>> k=[0.1:0.3:1.9] >> sin(k)

>> log(k)

Definir vectores a partir de partes de otros vectores:

>> v = [1, 2, 3],u = [5, 6, 7] >> u1 = [3*u-v, 2*v]

(13)

Ejercicios Vectores Ejercicio 1.8: Crear un vector a de 10 elementos que contenga los primeros números impares y uno b de la misma dimensión que contenga los primeros pares.

Ejercicio 1.10: Genera un vector con el año de celebración de los juegos olímpicos empezando en Londres 2012 y finalizando en Londres 1948.

Con una sola línea de comando muestra las fechas de uno de cada tres juego empezando por 1948.

Ejercicio 1.9: Repite el ejercicio 1.4 y 1.5 usando vectores.

Ejercicio 1.11: Escribe en Matlab una expresión para calcular el ángulo entre dos vectores v1 y v2. Aplica esa expresión para el caso de los vectores v1 = (1, 2, 3) ; v2 = (3, 2, 1).

Ejercicio 1.12: Usar help de Matlab para conocer que hacen las siguientes funciones:

(14)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(15)

Representación gráfica plot

Representar sen(x) entre 0 y 2π: >> x = [0:2*pi/100:2*pi];

>> x = linspace(0,2*pi,100); >> y=sin(x);

>> plot(x,y);

x e y son dos vectores del mismo tamaño. >> plot(x,cos(x));

Colores, tipos de líneas, símbolos: >> y=x.^2;

>> plot(x,y,'r'); >> plot(x,y,'--g'); >> plot(x,y,'*');

(16)

Varias gráficas en la misma figura: >> plot(x,cos(x),x,sin(x)); >> plot(x,cos(x),'r',x,sin(x),'k'); hold >> plot(x,cos(x),'k') >> hold on >> plot(x,cos(x).^2,'r') >> close all >> plot(x,cos(x),'k') >> hold on >> plot(x,cos(x).^2,'r') >> hold off >> plot(x,sin(x),'b')

Representación gráfica plot

Título, leyenda, ejes:

>> plot(x,cos(x),'r',x,sin(x),'k')

>> title('Ejemplo representación gráfica'); >> xlabel('x(radianes)')

>> ylabel('y')

>> pos = 0; % pos=-1,0,...,4, ej. 0

>> legend('y = sen(x)', 'y = cos(x)', pos) >> text(5,0.6,'texto en la grafica')

% Comentario (En Scilab ;)

Límites de los ejes:

axis([xmin, xmax, ymin, ymax])

axis equal, axis square, axis tight

Grid:

(17)

figure(i): Genera una ventana e identifica la figura como i.

>> x = linspace(0,2*pi,100); >> figure(1)

>> plot(x,sin(x)) >> figure(2) >> plot(x,cos(x))

Representación gráfica plot

Varias figuras: subplot. >> x = linspace(0,2*pi,100); >> subplot(1,2,1), plot(x,sin(x)) >> subplot(1,2,2), plot(x,cos(x))

subplot(filas totales,columnas totales,id del subplot)

Representación de funciones, fplot: >> close all; clear all

>> fplot('x^2-3*x',[0,5],'r')

Guardar las gráficas:

>> print -dDEVICE NAMEFILE

(18)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(19)

Scripts ficheros .m

Matlab edita, lee y ejecuta una lista de comandos (programa) que se pueden almacenar en ficheros con extesión .m

(20)

Scripts ficheros .m

Input: introducir valores, que el programa pide. Ejemplos:

x = input('x= ')

y = input('introduce valor de y') Output: disp

doc disp

clear all

Conviene empezar todos los programas con la instrucción clear all y close all para

eliminar de la memoria los valores asignados en cálculos anteriores a todas las variables. Ellipsis

Para poder continuar escribiendo la misma instrucción en la siguiente línea del programa. Ejemplo:

sumita = 1 + 2 ... + 3 + 4 + 5

(21)

Ejercicios Gráficas

Ejercicio 1.13: Representar f(x) = x2 exp(-x) usando solid lines y símbolos

Ejercicio 1.15: Tiro Parabólico. Escribe un programa para analizar gráficamente el

movimiento de un proyectil para diversos valores iniciales (input) de la velocidad, v0 (en m/s), y del ángulo, a (en grados), de lanzamiento.

(a) Para los valores iniciales v0=10 m/s y a=60, dibujar la trayectoria del proyectil (y en función de x, y(x)), y la velocidad vertical en función del tiempo, vy(t).

(b) Analizar la conservación de la energía. Pintar en una misma gráfica la energía cinética, la energía potencial y la energía total en función del tiempo, Ec(t), Ep(t) y ET(t) (tomar m = 5 kg).

Ejercicio 1.14: Representar en una misma figura en diferentes gráficas y=sen(x), y2=sen2(x), y3=sen3(x) e y4=sen4(x).

Ejercicio 1.16: Retocar el programa del ejercicio anterior (Tiro parabólico) para dibujar en una misma gráfica la trayectoria para 5 ángulos iniciales diferentes, con valores

equi-espaciados entre 15 y 75 grados. Dibuja cada curva en un color diferente.

A partir de ahora todas las gráficas deben estar bien realizas y con un formato

adecuado, indicando los nombres de los ejes INCLUYENDO SIEMPRE LAS UNIDADES, con límites adecuados, etiquetas equiespaciadas y si es necesario leyenda, título,… y que se vea todo bien

(22)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(23)

Derivación numérica Definición Definición: si h es un número pequeño:

 

  

h

x

f

h

x

f

x

f

h

0

lim

 

 

  

h

x

f

h

x

f

x

f

D

x

f

h

Diferencia finita hacia delante (Forward difference)

 

 

  

h

h

x

f

x

f

x

f

D

x

f

h

Diferencia finita hacia atrás (Backward difference)

 

 

 

h

h

x

f

h

x

f

x

f

D

x

f

h

*

2

(24)

Derivación numérica Definición

Diferencia finita hacia delante (Forward difference)

 

 

  

h

h

x

f

x

f

x

f

D

x

f

h

Diferencia finita hacia atrás (Backward difference)

 

 

 

h

h

x

f

h

x

f

x

f

D

x

f

h

*

2

Diferencia finita centrada (Central difference)

 

 

  

h

x

f

h

x

f

x

f

D

x

f

h

x

f(x)

h

f(x+h)

x+h

x-h

f(x-h)

(25)

Derivación numérica ¿Cómo lo programamos?

Diferencia finita hacia delante (Forward difference)

 

 

  

h

x

f

h

x

f

x

f

D

x

f

h

Ejercicio 1.17: Escribir un programa (script) que calcule la derivada numérica hacia delante de f(x) = cos(x) entre 0 y 2π. Representarla gráficamente y comparar con la solución analítica.

Tendremos que calcular un conjunto de datos equiespaciados xi, yi con yi=cos(xi) y de ellos la derivada numérica como otro conjunto de datos xi, Dhyi con Dhyi=(yi+1-yi)/(xi+1-xi)

Algoritmo: • Definir el intervalo [a,b] y el número de puntos del mallado en x, N • Generar el vector x donde a ≤ xi ≤ b, i =1:N

• Generar el vector y donde yi = f(xi), i =1:N

• Calcular el vector dx donde dxi = xi+1-xi, i =1:N-1 • Calcular el vector dy donde dyi = yi+1-yi, i =1:N-1 • Calcular el vector Dhy donde Dhyi = dyi/dxi, i =1:N-1 • Representar el conjunto (xi, Dhyi), i =1:N-1

(26)

Derivación numérica ¿Cómo lo programamos?

Diferencia finita hacia delante (Forward difference)

 

 

  

h

x

f

h

x

f

x

f

D

x

f

h

Ejercicio 1.17: Escribir un programa (script) que calcule la derivada numérica hacia delante de f(x) = cos(x) entre 0 y 2π. Representarla gráficamente y comparar con la solución analítica.

Tendremos que calcular un conjunto de datos equiespaciados xi, yi con yi=cos(xi) y de ellos la derivada numérica como otro conjunto de datos xi, Dhyi con Dhyi=(yi+1-yi)/(xi+1-xi)

Programa: % Intervalo a = 0; b= 2*pi; N=20; % Vectores x e y x=linspace(a,b,N); y=cos(x); % Diferencias finitas: il=1:N-1; dx=x(il+1)-x(il); dy=y(il+1)-y(il); Dhy=dy./dx; % Representación Gráfica plot(x(1:N-1),Dhy,'r') hold on Df=-sin(x); plot(x(1:N-1),Df(1:N-1),'bo') % Formato de la figura …

(27)

Derivación numérica Ejercicio 1.18: Completar el ejercicio anterior calculando y representado las diferencias hacia atrás y centradas.

Ejercicio 1.19: Calcular la derivada numérica de f(x) = cos(x) en x = π/6 para h = 0.1. Calcular el error cometido. Repetir el cálculo para h = 0.05, 0.025, 0.0125, 0.00625 y 0.003125. Analizar cómo se va reduciendo el error al disminuir h.

Hacer el mismo cálculo para los tres métodos explicados. ¿Qué método es mejor?

Ejercicio 1.20: Calcula y dibuja en el intervalo x=[0,5] la derivada de la función:

f(x) = exp(x) cos(x)/(1+ x4). Usar loglog y semilogy para representar la derivada en x=[0,50].

Ejercicios

Ejercicio 1.21: Calcular numéricamente la velocidad y aceleración en función del tiempo partiendo de la posición x(t) e y(t) del ejercicio 1.15, tiro parabólico.

(28)

Unidad 1: Introducción y conceptos

básicos

Introducción al paquete y al lenguaje (Matlab/GnuOctave).

Conceptos esenciales. Línea de comandos.

Operaciones elementales.

Variables.

Funciones elementales.

Vectores. Operaciones con vectores. Vectorización.

Representación gráfica de funciones.

Scripts.

Aplicaciones en física:

Descripción y representación del movimiento de una partícula.

Trayectorias: r(t), v(t), a(t).

Derivación numérica elemental. Velocidad y aceleración.

Integración numérica elemental.

(29)

Integración numérica Definición Problema general:

 

b

 

a

f

x

dx

f

I

• f(x) is known.

• A set of points {xi,fi=f(xi)} (i=0,n) of f(x) is known.

The method that we are going to explain in this lesson can not be generalized for any f(x), for example f should not be grouped in “peaks”, it should be characterized by a single scale, etc. Furthermore, for the case of a known set of points, these should equidistant. In any other case, techniques for solving differential equations should be used.

Equidistant points formula: Trapezoidal, Simpson, Bode and higher order rules.

• Newton-Cotes formulas: We approach the function f(x) by a polynomial.

• Trapezoidal rule: Lineal Interpolation:

  

0 1 1 0 0 1 1

x

x

y

x

x

y

x

x

x

P

 

x

dx

x

x

f

 

x

f

 

x

h

f

f

h

f

 

c

f

x x '' 3 1 0 1 0 0 1

12

2

1

2

1

2

1

2

1

1 0









(30)

Integración numérica Regla del trapezoide

• Newton-Cotes formulas

• Trapezoidal rule: Lineal Interpolation:

 



 

 



1 0 0 1

2

1

2

1

1 0

x

f

x

f

x

x

dx

x

f

x x

Extended Trapezoidal rule:

 

  

n n n b a

c

f

a

b

h

f

f

f

f

h

dx

x

f

'' 2 1 1 0

12

2

1

...

2

1





 

f

T

n

(31)

Integración numérica Regla del trapezoide

Extended Trapezoidal rule:

 

  

n n n b a

c

f

a

b

h

f

f

f

f

h

dx

x

f

'' 2 1 1 0

12

2

1

...

2

1





 

f

T

n

Ejercicio 1.22: Escribir un programa (script) que calcule la integral numérica usando la regla del trapezoide de f(x) = sen(x) entre 0 y π/2. Usar varios números de intervalos: ir duplicando n desde n=1 a n=256. Calcular el error y analizar su comportamiento en función de n.

(32)

 

 

 

c

f

h

f

f

f

h

dx

x

f

x x 4 5 2 1 0

12

3

1

3

4

3

1

2 0





Integración numérica Regla del Simpson

• Newton-Cotes formulas

• Simpson rule (polynomial of degree 2):

Extended Simpson rule:

 





n n b a

f

x

dx

h

f

f

f

f

f

3

f

1

3

4

...

3

4

3

2

3

4

3

1

1 3 2 1 0

 

f

S

n

 

 

n c f a b h 4 4 180  

Ejercicio 1.23: Repetir el ejercicio anterior usando la regla de Simpson. ¿Qué método es más preciso?

(33)

Integración numérica Ejercicio 1.24: Calcula la integral, en el intervalo x=[0,5], de la función:

f(x) = exp(x) cos(x)/(1+ x4 )

Ejercicio 1.25: Calcular la siguiente integral:

𝐸 𝑘 = 1 − 𝑘2sin2 θ π

2 0

𝑑θ

para varios valores de k y a continuación representar la función E(k). Ejercicios

Ejercicio 1.26: Suponer que tenemos un partícula cuya velocidad en el intervalo de tiempo T = [0:10s], viene dada por:

𝑣𝑥 𝑡 = 𝑣0 + 𝑘𝑡 𝑣𝑦 𝑡 = 𝐴cos ω𝑡

Una vez escogido un valor de los parámetros v0, k, A y ω, dibujar una gráfica de su trayectoria en el plano (x,y).

Referencias

Documento similar

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

The idea of associating a vector bundle on the complex projective plane P 2 C to the three ltrations which form a mixed Hodge structure has a a dou- ble origin: Simpson's

La selección de los alumnos trabajadores de las Escuelas Taller y Casas de Oficios, así como la del director, docentes y personal de apoyo, será efectuada por un grupo de

Es importante para cursar la asignatura tener cierto interés por los contenidos básicos del ejercicio, actividad física, el entrenamiento y su relación con la

Algunos ejemplos fueron el caso de los Temas Transversales relacionados con la Educación Ambiental que comenzaron a aparecer en la cultura escolar con la LOGSE

El Programa de Mecenazgo organiza un concurso para "Amigos del IAC" en el cual podrán realizar una propuesta de observación para un telescopio robótico 1. Aquellas que

En el capítulo 1, analizaremos diferentes aspectos teóricos relativos tanto al bullying como al cyberbullying, incluyendo definiciones y conceptos básicos,

Realizar el análisis cualitativo de riesgos evalúa la prioridad de los riesgos identificados a través de la probabilidad relativa de ocurrencia, del impacto correspondiente sobre