programación matlab

22
Programación I Examen Grupo: 3G Adrian Mauricio Salcedo Chitica 251933 26 de Noviembre del 2012

Upload: adrian-salcedo-chitica

Post on 24-Dec-2015

62 views

Category:

Documents


8 download

DESCRIPTION

1. La presión atmosférica (p) varía en función de la altura (h) según la siguiente expresión: p=1035*e-0.12h, donde la altura se mide en kilómetros y la presión en milibares.a) Escribir una función presión que calcule la presión para una altura dada.Funciónfunction x = presión(h) % h = alturae=2.71828; % (e)= constante 'numero de euler'p=1035*e^(-0.12*h)end b) Queremos ahora observar en una gráfica cómo varía la presión en función de la altura. Para ello, definiremos a_vec como un vector de alturas que toma los valores enteros entre 0km y 30km, aplicaremos la función que hemos escrito para obtener los valores del vector de presiones p_vec y dibujaremos la gráfica con la altura en las abscisas y la presión en las ordenadas. Agregue a esta gráfica los rotulos de ejes y encabezado correspondientes.function p = presiongrafica( h )%PRESIONGRAFICA, esto grafica los valores de la alturae=2.71828; % (e)= constante 'numero de euler'x=0:0.1:h;p=x*1035*e^(-0.12*h);plot(x,p);TITLE('Grafica de presión en función de la altura');XLABEL('Presion');YLABEL('Altura');grid;end 2. El cuadrante de un punto (x,y) se puede determinar a partir del signo de x e y. Escribir una función tal que dadas las coordenadas x e y, indique a qué cuadrante pertenece el punto.function c=cuadrante(x,y)if (x>0)&&(y>0) display('Tu punto esta en el primer cuadrante :)');endif (x0) display('Tu punto esta en el segundo cuadrante :)');endif (x display('Tu punto esta en el tercer cuadrante :)');endif (x>0)&&(y display('Tu punto esta en el Cuarto cuadrante :)');endend` 3. Un profesor quiere analizar los resultados de los exámenes que propone a sus alumnos. Cada alumno se examina 3 veces en un curso. Y en cada ocasión realiza dos tipos de examen: un test y uno de problemas. Por tanto, en total son 6 exámenes por alumno. Primero hay que importar los datos “calificaciones”. a) Calcular la media por cada tipo de examen en cada convocatoria. La función debe devolver un vector con las 6 medias.function mdc = mediaconvocatoria ( A ) % a) Calcular la media por cada tipo de examen en cada convocatoria. % La función debe devolver un vector con las 6 medias.[m,n]=size(A);p=0;for i=1:mp=p+A(i,2:7);endp=p/m;fprintf('La media para cada tipo de examen es =\n %2.2f \n %2.2f \n %2.2f \n %2.2f\n %2.2f \n %2.2f \n',p)end b) Calcular la media por alumno. También se devolverá un vector con todas las medias.function mda = mediaalumno ( A ) % b) Calcular la media por alumno. También se devolverá un vector con todas las medias. [m,n]=size(A)p=0;for i=1:6p=p+A(1:10,i);endpr=p/n;fprintf('La media para alumno es =\n %2.2f \n',pr)end c) Escribir una función que indique el número de alumnos cuya nota media es superior a la media de todos los exámenes para todos los alumnos.function Q=mediadcadauno(A)% a) Calcular la media por cada tipo de examen en cada convocatoria. % La función debe devolver un vector con las 6 medias.[m,n]=size(A);p=0;for i=1:mp=p+A(i,2:7);endp=p/m; % b) Calcular la media por alumno. También se devolverá un vector con todas las medias. p=0;for i=1:6p=p+A(1:10,i);endpr=p/n; suma_examenes=0; media_examenes=0; suma_total_examenes=0; cont=0; for y=1:n for x=1:m suma_examenes=suma_examenes+A(x,y); end media_examenes= suma_examenes/(m); %media examenes c/u fprintf('%s %d %s %f \n','la media del examen :',y,' es ',media_examenes);endfor y=1:n suma_total_examenes=suma_total_examenes+media_examenes;endmedia_total_examenes=suma_total_examenes/(n);fprintf('%s %d \n','la media de los examenes es ',media_total_examenes);for x=1:m if (p)>(pr) cont= c

TRANSCRIPT

Page 1: Programación MATLAB

Programación I

Examen

Grupo: 3G

Adrian Mauricio Salcedo Chitica 251933

26 de Noviembre del 2012

1. La presión atmosférica (p) varía en función de la altura (h) según la siguiente expresión: p=1035*e -

0.12h, donde la altura se mide en kilómetros y la presión en milibares.

Page 2: Programación MATLAB

a) Escribir una función presion que calcule la presión para una altura dada.

Función

function x = presion(h) % h = alturae=2.71828; % (e)= constante 'numero de euler'p=1035*e^(-0.12*h)end

b) Queremos ahora observar en una gráfica cómo varía la presión en función de la altura. Para ello, definiremos a_vec como un vector de alturas que toma los valores enteros entre 0km y 30km, aplicaremos la función que hemos escrito para obtener los valores del vector de presiones p_vec y

Page 3: Programación MATLAB

dibujaremos la gráfica con la altura en las abscisas y la presión en las ordenadas. Agregue a esta gráfica los rotulos de ejes y encabezado correspondientes.

function p = presiongrafica( h )%PRESIONGRAFICA, esto grafica los valores de la alturae=2.71828; % (e)= constante 'numero de euler'x=0:0.1:h;p=x*1035*e^(-0.12*h);plot(x,p);TITLE('Grafica de presión en función de la altura');XLABEL('Presion');YLABEL('Altura');grid;end

2. El cuadrante de un punto (x,y) se puede determinar a partir del signo de x e y. Escribir una función tal que dadas las coordenadas x e y, indique a qué cuadrante pertenece el punto.

function c=cuadrante(x,y)

Page 4: Programación MATLAB

if (x>0)&&(y>0) display('Tu punto esta en el primer cuadrante :)');endif (x<0)&&(y>0) display('Tu punto esta en el segundo cuadrante :)');endif (x<0)&&(y<0) display('Tu punto esta en el tercer cuadrante :)');endif (x>0)&&(y<0) display('Tu punto esta en el Cuarto cuadrante :)');endend`

3. Un profesor quiere analizar los resultados de los exámenes que propone a sus alumnos. Cada alumno se examina 3 veces en un curso. Y en cada ocasión realiza dos tipos de examen: un test y uno de problemas. Por tanto, en total son 6 exámenes por alumno.

Primero hay que importar los datos “calificaciones”.

Page 5: Programación MATLAB

a) Calcular la media por cada tipo de examen en cada convocatoria. La función debe devolver un vector con las 6 medias.

function mdc = mediaconvocatoria ( A ) % a) Calcular la media por cada tipo de examen en cada convocatoria. % La función debe devolver un vector con las 6 medias.[m,n]=size(A);p=0;for i=1:m

Page 6: Programación MATLAB

p=p+A(i,2:7);endp=p/m;fprintf('La media para cada tipo de examen es =\n %2.2f \n %2.2f \n %2.2f \n %2.2f\n %2.2f \n %2.2f \n',p)end

b) Calcular la media por alumno. También se devolverá un vector con todas las medias.

function mda = mediaalumno ( A ) % b) Calcular la media por alumno. También se devolverá un vector con todas las medias. [m,n]=size(A)p=0;for i=1:6

Page 7: Programación MATLAB

p=p+A(1:10,i);endpr=p/n;fprintf('La media para alumno es =\n %2.2f \n',pr)end

c) Escribir una función que indique el número de alumnos cuya nota media es superior a la media de todos los exámenes para todos los alumnos.

function Q=mediadcadauno(A)% a) Calcular la media por cada tipo de examen en cada convocatoria. % La función debe devolver un vector con las 6 medias.[m,n]=size(A);p=0;for i=1:mp=p+A(i,2:7);

Page 8: Programación MATLAB

endp=p/m; % b) Calcular la media por alumno. También se devolverá un vector con todas las medias. p=0;for i=1:6p=p+A(1:10,i);endpr=p/n; suma_examenes=0; media_examenes=0; suma_total_examenes=0; cont=0; for y=1:n for x=1:m suma_examenes=suma_examenes+A(x,y); end media_examenes= suma_examenes/(m); %media examenes c/u fprintf('%s %d %s %f \n','la media del examen :',y,' es ',media_examenes);endfor y=1:n suma_total_examenes=suma_total_examenes+media_examenes;endmedia_total_examenes=suma_total_examenes/(n);fprintf('%s %d \n','la media de los examenes es ',media_total_examenes);for x=1:m if (p)>(pr) cont= cont+1; endendfprintf('%s %d \n','EL TOTAL DE ALUMNOS DE MEDIAS MAYORES A LA DE LOS EXAMENES ES',cont);end

Page 9: Programación MATLAB

Utiliza para todo esto el archivo Calificaciones que se encuentra en la plataforma de este debes obtener los datos para el ejercicio.

Page 10: Programación MATLAB

4. Elaborar un script que ingrese datos de una matriz de m x n elementos todos Ingresados por teclado y despliegue a la pantalla las posiciones de los elementos repetidos en la matriz junto al valor repetido.

% Elaborar un script que ingrese datos de una matriz de m x n elementos todos Ingresados por teclado y despliegue a la pantalla las posiciones de los elementos repetidos en la matriz junto al valor repetido.function matriz=repetidos(A)n=length(A); k=1;while k<=n [elemento, repitencia]=find(A==A(k)); fprintf('El elemento%3d\n se repite%3d veces \n en.. %d \n ',A(k),length(repitencia),[elemento, repitencia]); A(repitencia)=[]; n=length(A);end end

Page 11: Programación MATLAB

5. Escriba un Script para resolver este problema. Un rey persa, al conocer el juego de ajedrez quiso pagarle a su creador por tan fantástico juego. Después de mucha insistencia, el creador del juego pidió como recompensa el total de granos de arroz, si en cada casilla del tablero, se pone el doble de granos de la casilla anterior, empezando en 1. Es decir,en la primera casilla se pone un grano, en la segunda dos granos, enla tercera cuatro granos, en la cuarta ocho granos, y asŘ. Las 64 casillas del tablero. Calculeel total de granos necesarios para pagarle al creador del juego. Además, si 3 granos pesan 0.1 gramos, cual es el peso total del arroz a pagar.

function reyclc;arroz=0;for i=1:64 arroz=i+(arroz*2); endarroz=arroz/2;gramos=(arroz/30);%Se usa una regla de tresfprintf('El total de granos que se necesita pagar el rey es.. %f \n El peso total del arroz a pagar es.. %f\n',arroz,gramos);

Page 12: Programación MATLAB

6. Elabore un script que solicite una matriz de m x n elementos que corresponda a un sistema de ecuaciones lineales y se muestre a la pantalla la matriz r educida e indique si el sistema tiene solución única o multiple.

function a=reducidam=input('Ingrese el tamaño de las filas : ');n=input('Ingrese el tamaño de las columnas: ');for i=1:m for j=1:n fprintf('ingrese M[%d][%d]: ',i,j); M1(i,j)=input(''); endendR=rref(M1) %El comando rref produce la forma reducida escalonada por ?las de una matriz usando la eliminaci´on de Gauss-Jordanif R==eye(m,n) disp('Solucion unica')else disp('Solucion Multiple') end

Page 13: Programación MATLAB

7. Una esfera de aluminio sometida a una corriente el¶ectrica constante, se mide la temperatura de la esfera a intervalos de tiempo de¯nidos, la siguiente tabla muestra los resultados de la prueba

Obtenga un polinomio de 4 orden que aproxime el comportamiento de la temperatura con respecto al tiempo.

function ea=esferadealuminio(D)[m,n]=size(D);x=D(:,1); % Genera un vectory=D(:,2); % Genera un vectorp=polyfit(x,y,4); % Elegimos grado 4z=polyval(p,x);hold on;disp('EL polinomio de cuarto orden es...') disp(p)plot(x,z)end

Page 14: Programación MATLAB

8. Determine las raıces de los siguientes polinomios:

a) x2+ 2x− 3 = 0

>> a=[1 2 3]

a =

1 2 3

>> ra=roots(a)

ra =

-1.0000 + 1.4142i -1.0000 - 1.4142i

>>

Page 15: Programación MATLAB

b) 2y − 5y3= 4y2− 3,4y3+ 9y – 8

Page 16: Programación MATLAB

c) 3z5+ 4z3− 9z + 5 = 0

>> c=[3 0 4 0-9 5]

c =

3 0 4 -9 5

>> rc=roots(c)

rc =

-0.7082 + 1.4924i -0.7082 - 1.4924i 0.7082 + 0.3305i 0.7082 - 0.3305i

>>

Page 17: Programación MATLAB

9. Calcule el producto punto y producto cruz de los siguentes vectores (1, 2, 3,) y (3,4,5)

>> a=[1 2 3]

a =

1 2 3

>> b=[3 4 5]

b =

3 4 5

>> dot(a,b)

ans =

26

>> dot(b,a)

ans =

26

Page 18: Programación MATLAB

>> a=[1 2 3]

a =

1 2 3

>> b=[3 4 5]

b =

3 4 5

>> c=cross(a,b)

c =

-2 4 -2