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: croldan@ugr.es 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