1. JOHN ROJAS ROSADO
TERCERA PRACTICA MATLAB
METODOS NUMERICOS
1_ SOLUCION
function media
x=input('ingrese los datos en forma de vector : ');
m=sum(x)/length(x);
fprintf(' media = %f n',m)
Probamos con x=[1 2 3 4 5 6 7 8 9]
>> media
ingrese los datos en forma de vector : [1 2 3 4 5 6 7 8 9]
media = 5.000000
>>
2_ SOLUCION
function varian
x=input('ingrese datos en forma de vector : ');
a=sum(x)/length(x);
b=sum(x.^2)/length(x);
v=b-a^2;
fprintf('varianza = %f desviacion estandar =
%fn',v,sqrt(v))
3_SOLUCION
Usamos la solucion del problema 2
a)
>> varian
ingrese datos en forma de vector : [0.15 0.4 0.6 1.01 1.5 2.2 2.4
2.7 2.9 3.5 3.8 4.4 4.6 5.1 6.6 7.6]
varianza = 4.484961 desviacion estandar = 2.117773
>>
2. JOHN ROJAS ROSADO
b)
>> varian
ingrese datos en forma de vector : [4.4964 5.1284 5.6931 6.2884
7.0989 7.5507 7.5106 8.0756 7.8708 8.2403 8.5303 8.7394 8.9981
9.1450 9.9115]
varianza = 2.258825 desviacion estandar = 1.502939
>>
4_SOLUCION
function coef
x=input('ingrese las abscisas en forma de vector : ');
y=input('ingrese las ordenas en forma de vector : ');
a=[sum(x.^2) sum(x);sum(x) 2];
b=[sum(y.*x);sum(y)];
c=(inv(a)*b)';
fprintf('%fx%fn',c(1),c(2))
a1=c(1);b1=c(2);
r=sqrt(1-sum((y-(a1*x+b1)).^2)/sum((y-
sum(y)/length(y)).^2));
hold on
plot(x,y,'*')
x=[0:0.01:10];
y=a1*x+b1;
plot(x,y,'r')
hold off
if a1>0
fprintf('coeficiente de correlacion = %fn',r)
else
fprintf('coeficiente de correlacion = %fn',-r)
end
3. JOHN ROJAS ROSADO
5_SOLUCION
Este problema es una aplicacion del problema 4
x=[4 5 2 5 6 7 1 8 3 7]
y=[5 6 4 5 7 10 3 11 4 9]
>> coef
ingrese las abscisas en forma de vector : [4 5 2 5 6 7 1 8 3 7]
ingrese las ordenas en forma de vector : [5 6 4 5 7 10 3 11 4 9]
1.344394x-0.265446
coeficiente de correlacion = 0.922223
>>
GRAFICO
4. JOHN ROJAS ROSADO
6_SOLUCION
function minipoly
fprintf(' MINIMO CUADRADO n')
x=input('ingrese las abcisas en forma de vector : ');
y=input('ingrese las ordenadas en forma de vector : ');
n=input('grado de polinomio a aproximarse : ');
z=length(y);
a=zeros(n+1);
b=zeros(n+1,1);
d=zeros(1,n+1);
for i=1:n+1
for j=1:n+1
a(i,j)=sum(x.^(2*n+2-i-j));
end
end
for i=1:n+1
b(i,1)=sum(y.*x.^(n+1-i));
end
c=(inv(a)*b)';
x1=-8:0.01:8;
5. JOHN ROJAS ROSADO
h=length(x1);
y1=zeros(1,h);
fx=zeros(1,n+1);
for k=1:h
for i=1:n+1
d(i)=x1(k)^(n+1-i);
end
y1(k)=sum(c.*d);
end
hold on
plot(x,y,'*')
plot(x1,y1,'r')
for k=1:z
for i=1:n+1
d(i)=x(k)^(n+1-i);
end
fx(k)=sum(c.*d);
end
m=sum((y-fx).^2);
p=sum((y-sum(y)/length(y)).^2);
r=sqrt(1-m/p);
fprintf('coefiente de correlacion = %fn',r)
coeficientes_del_polinomio=c
7_SOLUCION
Este problema es una aplicacion del problema 6
>> minipoly
MINIMO CUADRADO
ingrese las abcisas en forma de vector : [-1 0 8]
ingrese las ordenadas en forma de vector : [-1 0 2]
grado de polinomio a aproximarse : 2
coefiente de correlacion = 1.000000
coeficientes_del_polinomio =
6. JOHN ROJAS ROSADO
-0.0833 0.9167 -0.0000
>>
GRAFICO
8_SOLUCION
A)
Una aplicacion del problema 6
>> minipoly
MINIMO CUADRADO
ingrese las abcisas en forma de vector : [-2 -1 0 1 2]
ingrese las ordenadas en forma de vector : [-3 -6 -5 1 13]
7. JOHN ROJAS ROSADO
grado de polinomio a aproximarse : 3
coefiente de correlacion = 1.000000
coeficientes_del_polinomio =
0.1667 2.5000 3.3333 -5.0000
>>
B)
>> minipoly
MINIMO CUADRADO
8. JOHN ROJAS ROSADO
ingrese las abcisas en forma de vector : [-2 -1 0 1 2]
ingrese las ordenadas en forma de vector : [-3 -6 -5 1 13]
grado de polinomio a aproximarse : 2
coefiente de correlacion = 0.999166
coeficientes_del_polinomio =
2.5000 3.9000 -5.0000
>>
GRAFICO
9. JOHN ROJAS ROSADO
C)
>> minipoly
MINIMO CUADRADO
ingrese las abcisas en forma de vector : [-2 -1 0 1 2]
ingrese las ordenadas en forma de vector : [-3 -6 -5 1 13]
grado de polinomio a aproximarse : 1
coefiente de correlacion = 0.796084
coeficientes_del_polinomio =
3.9000 0
>>
GRAFICO
10. JOHN ROJAS ROSADO
9)SOLUCION
function vect
A=input('ingrese el primer vector : ');
B=input('ingrese el segundo vetor : ');
if length(A)==length(B)
h=0;
for i=1:length(A)
h=A(i)*B(i)+h;
end
produc_esc=h
else
disp('el tamaño de los vectores debe ser el mismo')
end
if length(A)==3
a1=(A(2)*B(3)-A(3)*B(2));
a2=(A(1)*B(3)-A(3)*B(1));
a2=(A(1)*B(2)-A(2)*B(1));
C=[a1 -a2 a3];
11. JOHN ROJAS ROSADO
else
disp('en este caso no hay producto vectorial')
end
EJEMPLO
>> vect
ingrese el primer vector : [1 2 3 4]
ingrese el segundo vetor : [4 3 2 1]
produc_esc =
20
en este caso no hay producto vectorial
>>
10_SOLUCION
function norma
A=input('ingrese el vecto')
h=0
for i=1:length(A)
h=A(i)^2+h
end
norma_v=h
EJEMPLO
>> norma
ingrese el vector : [1 2 3 4 5 6 7 8 9]
norma_v =
285
>>
11_SOLUCION
function moda
x=input('ingrese tus datos en forma de vectores : ');
12. JOHN ROJAS ROSADO
n=length(x);
a=sort(x);
b=zeros(2,n);
c=zeros(1,n);
for k=1:n
h=0;
for i=1:n
if a(k)==a(i)
h=h+1;
b(1,k)=h;
c(1,k)=h;
b(2,k)=a(i);
end
end
end
c=sort(c);
k=c(n);
for i=1:n
if k==b(1,i)
h=i;
end
end
fprintf('la moda es = %fn',b(2,h))
EJEMPLO
>> moda
ingrese tus datos en forma de vectores : [2 4 5 1 2 4 5 2 3 2 3 4 2
2 2]
la moda es = 2.000000
>>
12_SOLUCION
function fecha
a=input('ingrese el año : ');
13. JOHN ROJAS ROSADO
d=input('ingrese la cantidad de dias : ');
if (d>0)&(d<367)
if mod(a,4)==1
k=0;
t=strcat('año no bisiesto');
else
k=1;
t=strcat('año bisiesto');
end
f=strcat('la fecha_',num2str(d),'_del
año_',num2str(a),'_pertenece a un_',t);
f
if (0<d)&(d<32)
dia=d
mes='01'
elseif ((d>31)&(d<(60+k)))
dia=d-31
mes='02'
elseif (d>59+k)&(d<=90+k)
dia=d-(59+k)
mes='03'
elseif (d>90+k)&(d<=120+k)
dia=d-(90+k)
mes='04'
elseif (d>120+k)&(d<=151+k)
dia=d-(120+k)
mes='05'
elseif (d>151+k)&(d<=181+k)
dia=d-(151+k)
mes='06'
elseif (d>181+k)&(d<=212+k)
dia=d-(181+k)
mes='07'
elseif (d>212+k)&(d<=243+k)
dia=d-(212+k)
mes='08'
elseif (d>243+k)&(d<=273+k)
dia=d-(243+k)
mes='09'
elseif (d>273+k)&(d<=304+k)
dia=d-(273+k)
mes='10'
elseif (d>304+k)&(d<=334+k)
14. JOHN ROJAS ROSADO
dia=d-(304+k)
mes='11'
else (d>334+k)&(d<=365+k)
dia=d-(334+k)
mes='12'
end
g=strcat(num2str(dia),'/',mes,'/',num2str(a));
fprintf('la fecha esta dada por = %sn',g)
else fprintf('el dia %d es incorecton',d)
end
EJEMPLO
ingrese el año : 2008
ingrese la cantidad de dias : 200
f =
la fecha_200_del año_2008_pertenece a un_año bisiesto
dia =
18
mes =
07