proyecto 3

15
| INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISIPLINARIA DE INGENIERIA CAMPUS GUANAJUATO METODOS NUMERICOS PROYECTO lll.

Upload: ingsistemasaut

Post on 18-Jan-2016

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Proyecto 3

|

INSTITUTO POLITECNICO NACIONAL

UNIDAD PROFESIONAL INTERDISIPLINARIA DE INGENIERIA

CAMPUS GUANAJUATO

METODOS NUMERICOS

PROYECTO lll.

Page 2: Proyecto 3

|

Problema 1.- A).-Cargar el archivo, 'califs.dat'. Ejecuta el archivo con scilab y obtener la grafica donde se observan las calificaciones obtenidas y el porcentaje de cada uno de ellos.

load('califs.dat','califs') histplot([2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5],califs) Ejecutando el código se obtiene la siguiente grafica:

Para hallar el porcentaje correspondiente a cada calificación lo que hice fue usar el comando

xgrid, para posteriormente aplicar zoom y observar cada una de ellas, después las registre.

Page 3: Proyecto 3

|

Esta es la grafica con xgrid.-

Los porcentajes que corresponden a cada calificación son los siguientes:

B).- La función

Se conoce como distribución normal donde µ y > 0 son números reales. Verifica, analítica o numéricamente

Que independientemente de los valores de µ y . Verificando de manera numérica, es decir con ayuda de scilab, si se puede comprobar que la integral de la función anterior efectivamente es igual a 1.

CALIFICACION PORCENTEJE %

2 0.25

3 1.25

4 4.75

5 12.75

6 14

7 27.25

8 24

9 11.5

10 4.25

Page 4: Proyecto 3

|

Para resolver con scilab utilice el método del trapecio, uno de los métodos mas sencillos para la integración a continuación muestro el código:

function y=f(x) y=(1/(sqrt(2*%pi)))*(%e^(-((x)/(sqrt(2)))^2)) endfunction function I=trap(f, a, b, n) h=(b-a)/n suma=0 for k=(a+h):h:(b-h) suma=suma+f(k) end I=((h/2)*(f(a)+2*suma+f(b))) endfunction trap(f,-100,100,1000)

Las constantes µ y ambas valen 1.

C).- Para una muestra x1, x2,...xn (aquí las xi's pueden ser las calificaciones de los alumnos), se

pueden obtener las siguientes estimación es:

,

Sustituye estas estimaciones en f(x) y grafícala en la misma figura del histograma.

La grafica que se obtiene es la siguiente:

El resultado al ejecutar el código es 1.

Los valores para las constantes son:

2.4224

Page 5: Proyecto 3

|

El código es el siguiente: load('califs.dat','califs')

histplot([2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5],califs) function c=f(x) c=(1/sqrt(2*%pi*2.422))*(%e^((-(x-6.997)^2)/(2*2.430^2)))

endfunction x=0:.01:16

plot(x,f)

D).- Con la tabla de x = calificación y y = porcentaje de la parte A, haz un ajuste a la función f(x) mediante regresión para obtener otra estimación de µ y . Sustituye estos valores en f(x) y grafícala en la misma figura del histograma.

El código empleado en scilab es el siguiente (Método de regresión):

Page 6: Proyecto 3

|

load('califs.dat','califs') histplot([2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5],califs) function suma=ssr(p) x=[2 3 4 5 6 7 8 9 10] y=[0.25 1.25 4.75 12.75 14 27.25 24 11.5 4.25] suma=sum((y-(1/sqrt(2*%pi*p(1)))*(%e^((-(x-p(2))^2)/(2*p(1)^2)))^2) endfunction fminsearch(ssr,[1;1;1]) function a=f(x) a=(1/sqrt(2*%pi*1.5386803))*(%e^((-(x-7.1919826)^2)/(2*1.5386803^2))) endfunction x=0:0.1:15 plot(x,f)

E).- ¿Son iguales o diferentes las funciones de las partes C y D? ¿A qué crees que se debe esto?

No son iguales es mas exacta la función de la parte D ya que se ajusta de una mejor manera al

patrón de las calificaciones, esto se debe a que en el inciso D usamos un método numérico que

nos garantiza una estimación bastante buena, en cambio en C se dio una aproximación que como

bien especifica, se aproximan, solo eso.

F).-Obtén el número exacto de estudiantes que obtuvieron 6 o más de calificación y el número

exacto de estudiantes que obtuvieron 5 o menos.

Estos datos los obtuve según los porcentajes que le

corresponden a cada calificación.

CALIFICACION NUM. ESTUDIANTES

6 o mas (81%)

324

5 o menos (19%)

76

CALIFICACION

PORCENTEJE %

2 0.25

3 1.25

4 4.75

5 12.75

6 14

7 27.25

8 24

9 11.5

10 4.25

Los valores de las constantes ahora

son:

7.1919826 1.5386803

Page 7: Proyecto 3

|

G).-Plantea una integral para obtener el porcentaje de alumnos que obtuvieron 6 o más y otra integral para obtener el número de estudiantes que obtuvieron 5 o menos. El código es el siguiente Use el método de integración del trapecio y las constantes obtenidas en el inciso C)

function y=f(x) y=(1/sqrt(2*%pi*2.4224))*(%e^((-(x-6.9975)^2)/(2*2.4224^2))) endfunction

function I=trapecio(f, a, b, n) h=(a+b)/n

suma=0 for k=(a+h):h:(b-h) suma=suma+f(k)

end I=((h/2)*(f(a)+2*suma+f(b))) Endfunction

trapecio(f,6,10,50)-----------------Para mas de 6 trapecio(f,2,5,4)--------------------Para menos de 6

Para más de 6

-->function y=f(x) --> y=(1/sqrt(2*%pi*2.4224))*(%e^((-(x-6.9975)^2)/(2*2.4224^2))) -->endfunction -->function I=trapecio(f, a, b, n) --> h=(a+b)/n --> suma=0 --> for k=(a+h):h:(b-h) --> suma=suma+f(k) --> end --> I=((h/2)*(f(a)+2*suma+f(b))) -->endfunction -->trapecio(f,6,10,50) ans = 0.8371310 (Esto por 100)

Para menos de 6.

-->function y=f(x) --> y=(1/sqrt(2*%pi*2.4224))*(%e^((-(x-6.9975)^2)/(2*2.4224^2))) -->endfunction -->function I=trapecio(f, a, b, n) --> h=(a+b)/n --> suma=0 --> for k=(a+h):h:(b-h) --> suma=suma+f(k) --> end --> I=((h/2)*(f(a)+2*suma+f(b)))

Page 8: Proyecto 3

|

-->endfunction ->trapecio(f,2,5,4) ans = 0.1863458 (Multiplicar por 100)

H).- Estima las integrales de la parte G usando las funciones obtenidas en las partes como integrando C y D. El código en scilab es el siguiente:

function y=f(x)

y=(1/sqrt(2*%pi*1.5386803))*(%e^((-(x-7.1919826)^2)/(2*1.5386803^2))) endfunction

function I=trap(f, a, b, n) h=(a+b)/n suma=0

for k=(a+h):h:(b-h) suma=suma+f(k) end

I=((h/2)*(f(a)+2*suma+f(b))) Endfunction trap(f,2,5,2)

trap(f,6,10,15)

Usando las constantes con los valores:

7.1919826 1.5386803

-->function y=f(x) --> y=(1/sqrt(2*%pi*1.5386803))*(%e^((-(x-7.1919826)^2)/(2*1.5386803^2))) -->endfunction Advertencia : redefiniendo función: f . Use funcprot(0) para evitar este mensaje -->function I=trap(f, a, b, n) --> h=(a+b)/n --> suma=0 --> for k=(a+h):h:(b-h) --> suma=suma+f(k) --> end --> I=((h/2)*(f(a)+2*suma+f(b))) -->endfunction -->trap(f,2,5,2) ans = 0.2059224 menos de 6.

Page 9: Proyecto 3

|

-->trap(f,6,10,15) ans = 0.7859312 más de 6.

I).-Estima las integrales de la parte G mediante splines cúbicos (no necesariamente naturales) usando los datos de la tabla de la parte A.

Codigo en scilab: function y=f(x)

t=[2 3 4 5 6 7 8 9 10] v=[0.25 1.25 4.75 12.75 14 27.25 24 11.5 4.25] d=splin(t,v,"natural")

y=interp(x,t,v,d) endfunction intg(2,5,f)

intg(6,10,f)

Ejecutando en scilab: -->function y=f(x) --> t=[2 3 4 5 6 7 8 9 10] --> v=[0.25 1.25 4.75 12.75 14 27.25 24 11.5 4.25] -->d=splin(t,v,"natural") -->y=interp(x,t,v,d) -->endfunction Advertencia : redefiniendo función: f . Use funcprot(0) para evitar este mensaje -->intg(2,5,f) ans = 12.318587 Menos de 6.

-->function y=f(x) --> t=[2 3 4 5 6 7 8 9 10] --> v=[0.25 1.25 4.75 12.75 14 27.25 24 11.5 4.25] -->d=splin(t,v,"natural") -->y=interp(x,t,v,d) -->endfunction -->intg(6,10,f) ans = 73.009113 Mas de 6.

Page 10: Proyecto 3

|

Problema 2.

1.-A un sistema masa-resorte inicialmente en reposo se le aplica una fuerza P(t) definida por:

Donde la fuerza está dada en Newton y el tiempo en segundos.

La ecuación diferencial que describe el movimiento de este sistema es:

Donde y(t) es la posición de la masa m respecto al tiempo t y k la constante clásica del resorte.

A).- Utilizando alguno de los métodos numéricos vistos (de Euler, de Runge-Kutta de orden 2 o 4),

aproximarla función de posición y la velocidad de la masa en el intervalo [0,5] segundo. Usar

m=3.5 kg y k= 75 N/m.

Primeramente resolver la ecuación diferencial dada por la ecuación que describe el movimiento

del resorte la ecuación diferencial que conseguí fue la siguiente:

Despejar P(t).

P(t)=my’’+ky

Ahora resolver la ecuación:

Ahora introducimos este sitema de eciaciones a el codigo en scilab:

function y=p(x) if x<2 then y=10*x

end if x>=2 then y=20

end

Los if corresponden a los valores

iniciales, es decir dependiendo de los

valores que tenga x la ecuación

deberá adoptar ciertos valores.

Page 11: Proyecto 3

|

endfunction function [z]=f(x, y) z=[y(2);(p(x)/3.5)-(75*y(1))]

endfunction function [x, y]=euler(f, x0, y0, xf, h) n=ceil((xf-x0)/h) x(1)=x0 y(:,1)=y0

for i=1:n x(i+1)=x(i)+h y(:,i+1)=y(:,i)+h*f(x(i),y(:,i))

end endfunction [x,y]=euler(f,0,[0;0],5,0.01) plot(x,y(1,:)) plot(x,y(:,:))

Como se puede observar en este problema use el metodo de Euler, usado para resolver sistema de

ecuaciones.

Esto debido a que es un codigo que dominamos,ademas de que se adapta a la perfeccion anuestro

sistema de ecuaciones.

B).-Determina el maximo desplazamiento de la masa.

En este inciso nos pide identificar el maximo desplazamiento obtenido en el intervalo de tiempo

de 0 seg a 5 seg. Para esto me guie de la grafica obtenida en scilab. Observe donde la funcion

presentaba el maximo golbal (Por lo menos en el intervalo [0,5])

Introduje el sistema de ecuaciones diferenciales

que anteriormente obtuve.

Con esta función se graficara la tabla de tiempo

(x) contra posición (y).

Con esta función se graficara la tabla de tiempo

(x) contra posición (y) y también la de velocidad

(y) contra tiempo (x).

Page 12: Proyecto 3

|

En el punto rojo se observa el maximo absoluto, el cual esta dado en el segundo 5 seg. y la cantidad de movimiento realizado es de 0.3496918 m

En esta gráfica el intervalo de tiempo es mayor [0,10] esto con la finalidad de que se observe aun

mejor el comportamiento de la función. El punto rojo indica el máximo desplazamiento obtenido

en el lapso que nos piden [0,5].

Para comprobar nuestra respuesta corroboramos nuestra observación en la grafica:

Page 13: Proyecto 3

|

C).- Determina el mínimo valor de t para cual la función de velocidad tome el máximo valor.

Para este inciso también me fije en la grafica, pero para ejecutar la grafica de velocidad tuve que utilizar plot(x,y(:,:)), la grafica que nos arrojara scilab es la siguiente.

La función en color verde es la correspondiente a la velocidad (y) con respecto al tiempo (x).

B).-De esta forma obtenemos el máximo desplazamiento de

la masa respectó a un tiempo.

tiempo Desplazamiento velocidad

5.0 segundos 0.3496918 metros 0.1427441 m/seg.

Tiempo/desplazamiento/velocidad

Page 14: Proyecto 3

|

Aplicando xgrid queda de la siguiente manera en la cual se pueden apreciar mejor las

aproximaciones.

Se puede observar rápidamente donde se obtiene un máximo, en este caso el primer máximo

obtenido por la velocidad en el lapso de tiempo [0,5]. Para comporbar nuestra respuesta nos

fijamos en los valores arrojados en scilab:

Las explicaciones de los métodos que emplee se encuentran en cada inciso.

C).-De esta forma podemos dar un valor de tiempo en el cual se

alcanza el primer máximo en la velocidad, el cual es:

Tiempo velocidad Desplazamiento

0.68 segundos 0.27671313 m/seg

0.0907890 metros

Tiempo/desplazamiento/velocidad

Page 15: Proyecto 3

|

Una de las cuestiones a analizar será el por qué elegí y(0)=0, esto lo decidí basándome en el

enunciado el cual menciona que l ecuación del resorte lo muestra en su estado de reposo. Pero

también entra el cuestionamiento de ¿por qué entonces el resorte empieza a mostrar un

desplazamiento?, esto se puede explicar a que hay una fuerza que se aplica sobre el resorte, P(t),

siendo esta la que hace que el resorte presente un cambio en su estado de reposo, se comienza a

mover.

La exactitud de los datos obtenidos pienso que son suficientemente exactos para describir el

comportamiento del resorte, pues en la grafica describe un movimiento armónico simple,

característico en los resortes. Por lo tanto yo diría que las estimaciones tanto en el desplazamiento

como en la velocidad son acertadas.