Está en la página 1de 12

PRACTICA DIRIGIDA Nº 4

1.ESCRIBIR UN PROGRAMA QUE CALCULE LA MEDIA DE UN CONJUNTO DE DATOS.


x=input('ingrese los datos como vector:');
size(x);
n=ans(2);
s=sum(x);
fprintf('la media es %f\n',s/n);

2.ESCRIBIR UN PROGRAMA QUE CALCULE LA VARIANZA Y LA DESVIACION


ESTANDAR DE UN CONJUNTO DE DATOS.
x=input('ingrese los datos como vector:');
size(x);
n=ans(2);
s=sum(x);
y=(s/n)*ones(1,n);
v=sum((x­y).^2)/n;
fprintf('la varianza es %f\n',s/n);
fprintf('la varianza es %f\n',v);
fprintf('la desviacion estandar es %f\n',sqrt(v));

3.HALLAR LA MEDIA,VARIANZA Y DESVIACION ESTANDAR DE:


a.Datos xi de la tabla.
b.Datos yi de la tabla.

Usando el programa del problema numero 2 obtenemos para los xi.

Analogamente para los yi.


4.ESCRIBIR UN PROGRAMA PARA APROXIMAR POR UNA RECTA UN CONJUNTO DE
DATOS POR EL METODO DE LOS MINIMOS CUADRADOS INCLUIR LA GRAFICA DE LA
RECTA, GRAFICA DEL CONJUNTO DE DATOS EL COEFICIENTE DE CORRELACION
DADO(r),ESCOGER r(positivo) SI LA PENDIENTE DE LA RECTA ES POSITIVO Y r(negativo) SI
LA PENDIENTE DE LA RECTA ES NEGATIVO.
fprintf('CORRELACION LINEAL y=ax+b\n')
x=input('ingrese los valores de X en un vector:');
y=input('ingrese los valores de Y en un vector:');
n=length(x);
a=x.*y;b=x.*x;
fprintf(' X Y XY X^2\n')
for i=1:n
plot(x(i),y(i),'*'),title('CORRELACION LENEAL y=ax+b')
hold on
fprintf('%15.6f %10.6f %10.6f %10.6f\n ',x(i),y(i),a(i),b(i))
end
disp('suma=')
fprintf('%15.6f %10.6f %10.6f %10.6f\n
',sum(x),sum(y),sum(x.*y),sum(x.*x))
sy=sum(y);
sx=sum(x);
sxy=sum(x.*y);
sx2=sum(x.*x);
b=(sx*sxy­sy*sx2)/(sx*sx­n*sx2)
a=(sy­b*n)/sx
x1=­10:0.1:10;y1=a*x1+b;plot(x1,y1,'m');
s1=sum((y­(a*x+b*ones(1,n))).^2);
m=sum(y)/n; %media de los yi
s2=sum((y­m*ones(1,n)).^2);
r=sqrt(1­s1/s2)

5.HALLAR POR EL METODO DE LOS MINIMOS CUADRADOS QUE SE AJUSTE MEJOR AL


CONJUNTO DE DATOS.
6.HACER UN PROGRAMA PARA APROXIMAR POR POLINOMIO DE GRADO “k” UN
CONJUNTO DE DATOS POR EL METODO DE MINIMOS CUADRADOS ,INCLUIR EN DICHO
PROGRAMA LA GRAFICA DEL POLINOMIO,GRAFICA DEL CONJUNTO DE DATOS,EL
COEFICIENTE DE CORRELACION “r”.
function minimosden
global y
n=input('Ingrese el numero de datos:');
b=input('Ingrese el orden del polinomio:');
m=zeros(n+1,3*b+1);
for i=1:n
for j=1:2
d=eval(char(inputdlg('Ingreso de elementos:','ingreso')));
m(i,j)=d;
end
end
a1=m(1:n,1);
a2=m(1:n,2);
for f=1:(b)
m(1:n,f+2)=(a1.^(f)).*(a2);
m(n+1,f+2)=sum((a1.^(f)).*(a2));
end
for m3=1:(2*b-1)
m(1:n,m3+b+2)=(a1.^(m3+1));
m(n+1,m3+b+2)=sum((a1.^(m3+1)));
end
m(n+1,1)=sum(a1);
m(n+1,2)=sum(a2);
fprintf(' x y x*y x.^2*y... x.^n*y\n')
disp(m)
l=zeros(b+1,1);
h=zeros(b+1);
l(1:(b+1),1)=(m(n+1,2:(b+2)))';
h(1:(b+1),1)=(m(n+1,(2*b+1):(3*b+1)))';
h(1,b+1)=n;
h(2,b+1)=m(n+1,1);
h(3:(b+1),b+1)=(m(n+1,(b+3):(2*b+1)))';
for j1=1:(b-1)
for j2=1:(b+1-j1)
h(j2+j1,j2+1)=h(j1,1);
end
end
for j1=1:(b-2)
for j2=1:(b-j1)
h(b+1-j1-j2,b+1-j2)=h(b+1-j1,b+1);
end
end
h(b+1,2)=h(b,1);
h(1,b)=h(2,b+1);
h
l
rta=inv(h)*l
y=0;
for m3=1:(b+1);
syms x
y=rta(m3,1)*(x.^(b+1-m3))+y;
end
for h=1:n
a1=m(h,1);
a2=m(h,2);
ezplot(y,[-10,10]);hold on ;plot(a1,a2,'.');
grid on
end

7.OBTENER LA PARABOLA POR EL METODO DE LOS MINIMOS CUADRADOS QUE SE


APROXIME A LA FUNCION EN LOS PUNTOS -1,0 8. ¿Cuáles son las
ecuaciones normales?,¿interprete el coeficiente de correlacion?
8.CONSIDERE LOS PUNTOS { (-2,3) (-1,6) (0,-5) (1,1) (2,13)}

a.Determinar el polinomio de grado 3 por el método de los minimimos


cuadrados que se ajustan a los datos,indicar las ecuaciones normales
,coeficiente de correlacion.

Utilizamos el programa del ejercicio 6


Ejecutamos minimosden en el comando window
b.Determinar la parábola de minimos cuadrados que se ajustan a los
datos,indicar las ecuaciones normales,coeficiente de correlacion.
c.Determinar la recta por el método de los minimos cuadrados que se
ajustan a los datos.Indicar el coeficiente de de correlacion y las
ecuaciones normales.
Utilizamos el programa del problema numero 4
d.la ecuacion que mas se ajusta es la ecc. Cubica seguida por la parabola y luego por
la recta ya que estas se pueden obserbar en la figura

9.ESCRIBIR UN PROGRAMA QUE CALCULE EL PRODUCTO DE DOS VECTOES EN .


fprintf('PRODUCTO ESCALAR Y VECTORIAL DE DOS VECTORES EN R^n\n')
x=input('ingrese 1º vector:\n');
y=input('ingrese 2º vector:\n');
if length(x)==length(y)
a=sqrt(sum(x.*x));
b=sqrt(sum(y.*y));
C=(sum(x.*y))/(a*b);
alfa=acos(C);
fprintf('\nEl angulo que forman es:%f rad \n',alfa)
fprintf('\nEL PRODUCTO ESCALAR ES: %f\n',sum(x.*y))
fprintf('\nEL MODULO DEL PRODUCTO VECTORIAL ES:
%f\n',a*b*sin(alfa))
else
disp('X y Y DEBEN TENER MISMO NUMERO DE ELEMENTOS')
end

ejemplo:
ingrese 1º vector:
[1 1 1]

ingrese 2º vector:
[1 ­1 1]

El angulo que forman es:1.230959 rad 

EL PRODUCTO ESCALAR ES: 1.000000

EL MODULO DEL PRODUCTO VECTORIAL ES:2.828427
>>
 Comprobar

10.ESCRIBIR UN PROGRAMA QUE CALCULE LA NORMA DE UN VECTOR EN .


x=input('ingrese el vector en R^n:\n');
a=sum(x.^2);
fprintf('la norma del vector es: %f\n',sqrt(a))

11.ESCRIBIR UN PROGRAMA QUE CALCULE LA MODA DE UN CONJUNTO DE DATOS.


function moda
fprintf('\t\tCALCULO DE LA MODA\n')
n=eval(char(inputdlg('Ingrese el numero de datos:','moda')));
M=zeros(1,n);
for i=1:n
M(1,i)=eval(char(inputdlg('Ingrese los datos:','Moda')));
end
h1=sort(M);
t=max(h1);
n1=1;
n2=0;
Z=zeros(2,2);
f=0;
for m=1:(n-1)
if (f>=1)
if (h1(m)==h1(1,m+1));
n1=n1+1;
else
f=f+1;
Z(1,f)=n1;
Z(2,f)=h1(1,m);
n1=1;
end
else
if (h1(m)==h1(1,m+1));
n1=n1+1;
else
f=f+1;
Z(1,f)=n1;
Z(2,f)=h1(1,m)
n1=1;
end
end
end
Z(1,f+1)=n1;
Z(2,f+1)=h1(1,n);
n3=size(Z);
n4=n3(1,2);
Q=Z(1,1:n4);
Q1=max(Q)
j=1;
while(Q(1,j)~=Q1)
j=j+1;
end
B1=Z(2,j);
fprintf('la moda es: %10.9f\n',B1)

end
end
moda=x(i);
fprintf('La Moda es %f de freacuencia %f\n',moda,frec)
elseif frec==m
disp('La Moda no Existe')
end

ejemplo:
digite los siguintes datos: 6,6,5,4,1,4
ejecutar en el comando window:

>> moda
CALCULO DE LA MODA

Z =

     1     0
     2     0
Q1 =

     2

la moda es: 6.000000000
>>  

12.DADO UN NUMERO DE DIAS Y UN DETERMINADO AÑO ENCUENTRE EL DIA MES Y


AÑO AL QUE CORRSPONDE ,SABIENDO QUE ENERO,MARZO,MAYO JULIO,OCTUBRE Y
DICIEMBRE TIENEN 31 DIAS ;ABRIL,JUNIO SETIEMBRE Y NOVIEMBRE TIENEN 30
DIAS Y QUE FEBRERO TIENE 28 Ó 29 DIAS SEGÚN SEA EL AÑO NORMAL O
BISIESTO.
a=input('INGRESE EL AÑO:\n');
n=input('INGRESE EL NUMERO DE DIAS:\n');
if mod(a,4)~=0
if 0<n&n<=31
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n,1,a)
elseif 31<n&n<=59
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­31,2,a)
elseif 59<n&n<=90
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­59,3,a)
elseif 90<n&n<=120
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­90,4,a)
elseif 120<n&n<=151
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­120,5,a)
elseif 151<n&n<=181
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­151,6,a)
elseif 181<n&n<=212
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­181,7,a)
elseif 212<n&n<=243
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­212,8,a)
elseif 243<n&n<=273
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­243,9,a)
elseif 273<n&n<=304
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­273,10,a)
elseif 304<n&n<=334
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­304,11,a)
elseif 334<n&n<=365
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­334,12,a)
end
else
if 0<n&n<=31
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n,1,a)
elseif 31<n&n<=60
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­32,2,a)
elseif 60<n&n<=91
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­60,3,a)
elseif 91<n&n<=121
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­91,4,a)
elseif 121<n&n<=152
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­121,5,a)
elseif 152<n&n<=182
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­152,6,a)
elseif 182<n&n<=213
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­182,7,a)
elseif 213<n&n<=244
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­213,8,a)
elseif 244<n&n<=274
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­244,9,a)
elseif 274<n&n<=305
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­274,10,a)
elseif 305<n&n<=335
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­305,11,a)
elseif 335<n&n<=366
fprintf('la fecha es: %.0f|%.0f|%.0f\n ',n­335,12,a)
end
end