You are on page 1of 9

clear,clc

format short

fprintf(' ------------------- \n')

fprintf(' Método del Krigeage \n')

fprintf(' ------------------- \n')

fprintf(' \n')

fprintf(' Estimar la ley del punto "Ao"\n')

fprintf(' -----------------------------\n')

fprintf(' "Características del Variograma"\n')

fprintf(' \n')

%Características del variograma

a=16;

c0=0;

c1=1;

fprintf(' \n')

fprintf(' La función del variograma es: \n')

fprintf(' Y(h) = C1*( (3*h/2a) - (h^3)/2(a^3)) + C0 h<a \n')

fprintf(' Y(h) = C1 + C0 h>a \n')

fprintf(' \n')

fprintf(' --------------------------------------------------------\n')

%Datos de las Leyes

fprintf(' "Datos de las Leyes" \n')

n=6;

ecuaciones=n+1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if n == 6

fprintf(' Usted va a tener %d ecuaciones para el cálculo del Krigeage \n',ecuaciones)

fprintf(' \n')

Sn=[10 8 11 7 9 5]';

fprintf(' \n')

fprintf('- Ingrese las coordenadas de las leyes.\n')

%Coordenadas x de las leyes a analizar

xn=[-5 5 10 5 -5 -10];

yn=[5*sqrt(3) 5*sqrt(3) 0 -5*sqrt(3) -5*sqrt(3) 0];

fprintf(' \n')

%Calculo de las covarianzas

fprintf(' ----------------------------------------------------------------------------------------------------------\n')

fprintf(' ** Aplicando el modelo esférico calcularemos las covarianzas necesarias que nos
pide el krigeage **\n')

fprintf(' \n')

for i=1:n

Yn(i)=c0;

end

Yn_simetrico=Yn';

%Covarianza entre muestras

% fprintf(' -Calculamos a los Y1n = Yn1\n')

disp(' ---------------------------')

for k=2:n

h1(k) =(((xn(k)-xn(1))^2) + ((yn(k)-yn(1))^2))^(1/2);

end

h1n=h1(2:end)';

fprintf(' \n')
fprintf(' usamos la formula del variograma para hallar la covarianza: \n')

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

pretty(Y(h))

for i=1:length(h1n)

if h1n(i)>a

h1n(i)=a;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y1n=double(Y(h1n));

else

h1n;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y1n=double(Y(h1n));

end

end

Y1n;

%-Calculamos a los Y2n = Yn2

for i=3:n

h2(i) =(((xn(i)-xn(2))^2) + ((yn(i)-yn(2))^2))^(1/2);

end

h2n=h2(3:end)';

for i=1:length(h2n)

if h2n(i)>a

h2n(i)=a;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y2n=double(Y(h2n));
else

h2n;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y2n=double(Y(h2n));

end

end

Y2n;

% -Calculamos a los Y3n = Yn3

for i=4:n

h3(i) =(((xn(i)-xn(3))^2) + ((yn(i)-yn(3))^2))^(1/2);

end

h3n=h3(4:end)';

for i=1:length(h3n)

if h3n(i)>a

h3n(i)=a;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y3n=double(Y(h3n));

else

h3n;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y3n=double(Y(h3n));

end

end

Y3n;

% -Calculamos a los Y4n = Yn4


for i=5:n

h4(i) =(((xn(i)-xn(4))^2) + ((yn(i)-yn(4))^2))^(1/2);

end

h4n=h4(5:end)';

for i=1:length(h4n)

if h4n(i)>a

h4n(i)=a;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y4n=double(Y(h4n));

else

h4n;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y4n=double(Y(h4n));

end

end

Y4n;

% -Calculamos a los Y5n = Yn5

for i=6:n

h5(i) =(((xn(i)-xn(5))^2) + ((yn(i)-yn(5))^2))^(1/2);

end

h5n=h5(6:end)';

for i=1:length(h5n)

if h5n(i)>a

h5n(i)=a;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;
Y5n=double(Y(h5n));

else

h5n;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y5n=double(Y(h5n));

end

end

Y5n;

% C) Calculamos la Covarianza entre otras muestras y el punto a estimar.

for k=1:n

h0(k) =(((xn(k)-0)^2) + ((yn(k)-0)^2))^(1/2);

end

h0n=h0(1:end)';

for i=1:length(h0n)

if h0n(i)>a

h0n(i)=a;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y0n=double(Y(h0n));

else

h0n;

syms h

Y(h)=c1*(((3/2)*(h/a))-((1/2)*((h^3)/(a^3))))+c0;

Y0n=double(Y(h0n));

end

end

Y0n;

fprintf(' \n')
fprintf(' -----------------------------------\n')

fprintf(' Resumen de distancias y covarianzas\n')

fprintf(' -----------------------------------\n')

fprintf(' 1.- Consideramos la covarianza entre la muestra 1 y las demas\n')

C1n=table(h1(2:end)', Y1n);

display(C1n)

fprintf(' 2.- Consideramos la covarianza entre la muestra 2 y las demas\n')

C2n=table(h2(3:end)', Y2n);

display(C2n)

fprintf(' 3.- Consideramos la covarianza entre la muestra 3 y las demas\n')

C3n=table(h3(4:end)', Y3n);

display(C3n)

fprintf(' 4.- Consideramos la covarianza entre la muestra 4 y las demas\n')

C4n=table(h4(5:end)', Y4n);

display(C4n)

fprintf(' 5.- Consideramos la covarianza entre la muestra 5 y las demas\n')

C5n=table(h5(6:end)', Y5n);

display(C5n)

fprintf(' 6.- Consideramos la covarianza entre la muestra 0 y las demas\n')

C0n=table(h0', Y0n);

display(C0n)

fprintf(' \n')

fprintf(' ------------------------------------\n')

fprintf(' Cálculo de los "ai" - Matriz Inversa\n')


fprintf(' ------------------------------------\n')

fprintf(' \n')

fprintf(' - La matríz |E| será: \n')

fprintf(' \n')

a1 = [0; Y1n; 1];

a2 = [Y1n(1); 0; Y2n; 1];

a3 = [Y1n(2); Y2n(1); 0; Y3n; 1];

a4 = [Y1n(3); Y2n(2); Y3n(1); 0; Y4n; 1];

a5 = [Y1n(4); Y2n(3); Y3n(2); Y4n(1); 0; Y5n; 1];

a6 = [Y1n(5); Y2n(4); Y3n(3); Y4n(2); Y5n; 0; 1];

u = [1; 1; 1; 1; 1; 1; 0];

E = [a1 a2 a3 a4 a5 a6 u];

disp(E)

fprintf(' \n')

fprintf(' - La matríz |D| será: \n')

fprintf(' \n')

D = [Y0n; 1];

disp(D)

fprintf(' \n')

fprintf(' - luego para el calculo de los ai, usaremos la siguiente formula: \n')

fprintf(' |A| = (|E|^-1) * |D|\n')

fprintf(' \n')

fprintf(' "Calculo de la matriz inversa"\n')

fprintf(' ------------------------------\n')

fprintf(' \n')

fprintf(' E^-1 = (1/|E|) * Adj(E)\n')

fprintf(' \n')

fprintf(' 1.- Calculamos la determinante de la matriz\n')


E_det = det(E);

disp(E_det)

fprintf(' 2.- Calculamos la Adj(E) de la matriz\n')

Adj_E = inv(E).*det(E);

Adjunta = table(Adj_E(:,1),Adj_E(:,2),Adj_E(:,3),Adj_E(:,4),Adj_E(:,5),Adj_E(:,6),Adj_E(:,7));

display(Adjunta)

fprintf(' 2.- Finalmente la matriz Inversa de (E) será\n')

format short

E_inv = inv(E);

display(E_inv)

fprintf(' \n')

fprintf(' "Valores de los ai"\n')

fprintf(' ---------------------\n')

fprintf(' \n')

fprintf(' - Finalmente los valores de ai serán: \n')

ai = inv(E)*D;

disp(ai(1:end-1))

fprintf(' \n')

fprintf(' "Estimación de la Ley A0"\n')

fprintf(' -------------------------\n')

fprintf(' \n')

ley=sum(Sn.*ai(1:end-1));

fprintf(' " La ley estimada será %6.4f "\n',ley)

else

clear

end

You might also like