Download TEMARIO_sesion3

Document related concepts
no text concepts found
Transcript
Programación de los problemas
de Física en
.
TEMA 1: INTRODUCCIÓN A LA PROGRAMACIÓN
TEMA 2: ORDENADOR COMO CALCULADORA
TEMA 3: ORDENADOR COMO CALCULADORA PROGRAMABLE
TEMA 4: DIAGRAMAS DE FLUJO
TEMA 5: CODIFICAR O PROGRAMAR
TEMA 6: REPRESENTACIONES GRÁFICAS
TEMA 7: SIMULACIONES CON MOVIMIENTO
TEMAS 8 a N: PROGRAMACIÓN PROBLEMAS DE FÍSICA
Cristina Roldán Segura
correo: [email protected]
1
TEMA 3: Ordenador como calculadora
programable
Operaciones
OCTAVE (MATLAB)
Variables:
a= sen(pi/4)
b= cos(pi/4)
𝒄 = 𝒂𝟐 + 𝒃𝟐
%Definimos variables:
a=sin(pi/4);
b=cos(pi/4);
c=a^2+b^2;
fprintf(‘Valor c=%f\n’, c);
2
TEMA 3:Comando fprintf o printf
.
Escribe texto:
printf(‘texto’)
printf(‘texto\n’)
Escribe texto y números:
printf(‘texto c=%f’,c)
printf(‘texto c=%d’,c)
printf(‘texto c=%g’,c)
escribe c como número con 6 decimales
dentro del texto
escribe de c como número entero
dentro del texto
escribe c en notación científica
dentro del texto
3
TEMA 3:Comando fprintf o printf
.
Ejemplo:
c=0.0000000000000001;
printf(‘texto c=%d\n’,c)
%d escribe c como número entero
printf(‘texto c=%f\n’,c)
printf(‘texto c=%g\n’,c)
%f escribe c con 6 decimales
%g escribe c en notación científica
¿Cómo sería correcto escribir en el texto el número c?
Internamente vale: c=0.0000000000000001;
4
TEMA 3:Comando fprintf o printf
.
Ejemplo:
c=0.00000000000000035;
printf(‘texto c=%f\n\n’,c)
printf(‘texto c=%.16f\n\n’,c)
printf(‘texto c=%.17f\n\n’,c)
printf(‘texto c=%g\n\n’,c)
5
TEMA 3: Ordenador como calculadora
programable
OCTAVE (MATLAB)
% Varias formas de crear una secuencia de números (vector):
x=[1 2 4 7] % vector fila
x’
% vector columna
t=1:0.5:3
% va de 1 a 3 con pasos de 0.5
t=linspace(1,3,5) % va de 1 a 3 y tiene 5 elementos
t=linspace(1,3,7) % va de 1 a 3 y tiene 7 elementos
6
TEMA 3: Dibujar la función seno
Programación OCTAVE-MATLAB
%Limpio pantalla y variables
clear;
clc;
%x vale de -pi a +pi con 64 puntos:
x = linspace(-pi,pi,64);
y= sin(x);
%Gráfica del seno:
plot(x, y)
%Gráfica del seno(x)
% r=red
% o=círculos
plot(x, sin(x), 'ro')
7
TEMA 3: Dibujar la función seno
Tomo sólo 10 puntos
x
y
-3.14159
-2.44346
-1.74533
-1.04720
-0.34907
0.34907
1.04720
1.74533
2.44346
3.14159
-1.2246e-016
-6.4279e-001
-9.8481e-001
-8.6603e-001
-3.4202e-001
3.4202e-001
8.6603e-001
9.8481e-001
6.4279e-001
1.2246e-016
Programación OCTAVEMATLAB
clear; clc;
x = linspace(-pi,pi,10);
y= sin(x);
%Gráfica del seno:
plot(x, y)
%Gráfica del seno
% g=green
% s=square
plot(x, y,‘gs’)
REPASO: Comandos de Octave (Matlab)
Orden/ Instrucción
Limpiar pantalla
Borrar variables almacenadas
Escribe un texto en pantalla
Ayuda/Información sobre comando
Control+c
Comando OCTAVE-MATLAB
clc
clear
fprintf(….)
help «comando» (ejemplo: help plot)
Interrumpir un proceso de ejecución
Operaciones:
suma, resta
multiplicación, división
logaritmo en base 10
Logarit. neperiano, exponencial
seno, coseno, tangente
Potencia de un número
Decimales: ¡cuidado con el punto!
Comandos:
+ * /
log10
ln exp
sin cos tan (ángulo en radianes)
2^4
234.78
(no entiende la coma)
Valor absoluto
abs
9
Hoy hemos aprendido:
Orden/ Instrucción
Comentario (no hace nada)
Crear un vector
Crear figuras
Para obtener lista de variables
Para obtener lista variables +info
% Ejemplo: Grafica del seno
clear; clc;
x = linspace(-pi,pi,64);
plot(x,sin(x),'ro','markersize',5)
x=pi/6;
fprintf(' %f %f\n‘, x, sin(x));
Comando OCTAVE-MATLAB
% esto es un comentario
linspace(base, limite, n puntos)
plot(x,y,propiedades)
who
whos
¡Cuidado con las MAYÚSCULAS
y minúsculas!
No son iguales en OCTAVE
10
TEMA 3: Ordenador como calculadora programable
Operaciones
Regresión mínimos
cuadrados:
x
1,98
4,03
5,99
8,04
10,14
12,06
13,88
16,12
17,97
19,83
Y
0.677
2,06
3,40
5,04
6,710
7,980
9,510
10,79
12,16
13,98
Octave
% Regresión por mínimos cuadrados:
% modelo de y(x)= a * x + b
% A partir de las observaciones x,y determinamos
% la pendiente a y la ordenada en el origen b por
% regresión de mínimos cuadrados
% Resultados: a, b, r (coef. correlación) y
% R^2 (coef. determinación)
clear;
% datos
x=[ 1.98 4.03 5.99 8.04 10.14 12.06 13.88 16.12 17.97 19.83];
y=[0.677 2.06 3.40 5.04 6.710 7.980 9.510 10.79 12.16 13.98];
% cálculos
Exy=mean(x.*y);
mu_x=mean(x);
mu_y=mean(y);
sig_x2=var(x,1); sig_y2=var(y,1);
sig_x=sqrt(sig_x2); sig_y=sqrt(sig_y2);
a=(Exy-mu_x*mu_y)/sig_x2;
b=mu_y-a*mu_x;
r=(Exy-mu_x*mu_y)/(sig_x*sig_y);
% presentación de resultados
fprintf('x: media: %f stdev: %f\n',mu_x,sig_x);
fprintf('y: media: %f stdev: %f\n',mu_y,sig_y);
fprintf('Modelo: y = a*x + b\n');
fprintf('Analisis de regresión:\n');
fprintf(' r=%.8f R2=%.8f a=%.8g b=%.8g\n',r,r^2,a,b);
% representación gráfica
delta=(max(x)-min(x))/100;
x0=(min(x)-10*delta):delta:(max(x)+10*delta); y0=x0*a+b;
plot(x,y,'.k',x0,y0,'-r')
xlabel('variable x')
ylabel('variable y')
title(sprintf('Regresión: r=%f a=%f b=%f',r,a,b))
%%%%
Solución
x: media: 11.00400
y: media: 7.230700
stdev: 5.715983
stdev: 4.215543
Modelo: y = a*x + b
Análisis de regresión:
r=0.99939541 R2=0.99879119
a=0.73705501 b=-0.8798533
11
TEMA 3: Ordenador como calculadora programable
Ahora practicamos
Problema: Basándote en el problema anterior, calcula la correlación
que existe entre el tamaño del pie en cm y el número de pie.
Sigue los siguientes pasos:
1. Mide el pie en cm de 10 compañeros de clase (variable x)
2. Pregunta el número de pie a esos 10 compañeros (variable y)
3. Realiza el programa que calcule la regresión por mínimos
cuadrados (y=ax+b), y obten los valores de a, b y r.
4. Realiza la representación gráfica.
12