clc
clear all
%%%%%bazkhaniye maghadire mokhtalef ke dar excel neveshte shodeand%%
k=xlsread('d:\main\k.xlsx');
m=xlsread('d:\main\m.xlsx');
w=xlsread('d:\main\w.xlsx');
fi=xlsread('d:\main\modeshape.xlsx');
sd=xlsread('d:\main\sd.xlsx');
req=[1;0;0;1;0;0;1;0;0];
sdj=[];
mj=fi'*m*fi;
lj=fi'*m*req;
for i=1:9;
    ljp=lj(i,1);
    gamaj(i,1)=ljp./mj(i,i);
end
for i=1:9;
    for j=1:length(sd);
    if w(i,1)/sd(j,3)<=1,break,end;
        sdj(i,1)=sd(j,1)/100;
    end
end
for i=1:9
    xj(:,i)=sdj(i,1)*gamaj(i,1).*fi(:,i);
end
sayj=k*fi;
for i=1:9;
    fnj(:,i)=gamaj(i,1)*sayj(:,i)*sdj(i,1);
end
%%%%%%%%ABS Method%%
fn_abs=sum((abs(fnj))');
v_base_abs=sum((sum(fnj))');
x_abs=(sum(abs(xj')));
%%%%%%%%SRSS Method%%%%%%%
srss=0;
fn_srss=zeros(9,1);
x_srss=zeros(9,1);
pp=sum(fnj);
for i=1:9;
    srss=((pp(1,i))^2)+srss;
    fn_srss=(fnj(:,i).*fnj(:,i))+fn_srss;
    x_srss=(xj(:,i).*xj(:,i))+x_srss;
end
v_base_srss=(srss);
fn_srss=(fn_srss);
x_srss=(x_srss);
%%%%%%%%CQC Method%%%%%%
x_cqc=zeros(9,9);
fn_cqc=zeros(9,9);
for i=1:9;
    for j=1:9;
        r(i,j)=w(j,1)/w(i,1);
        ro(i,j)=(8*(0.05^2)*(r(i,j)^1.5)*(1+r(i,j)))/(((1-(r(i,j)^2))^2)+((4*0.05^2)*r(i,j)*(1+r(i,j))^2));
    end
end
cqc=0
for i=1:9;
    for j=1:9;
        x_cqc(:,i)=x_cqc(:,i)+((xj(:,i).*xj(:,j)).*ro(:,j));
        fn_cqc(:,i)=fn_cqc(:,i)+((fnj(:,i).*fnj(:,j)).*ro(:,j));     
    end
end
for i=1:9;
    for j=1:9;
        if i~=j
        cqc=cqc+(pp(1,i)*pp(1,j)*(ro(i,j)/100));
        end
    end
end
x_cqc=(sum(x_cqc'));
fn_cqc=((sum(fn_cqc')));
v_base_cqc=(cqc+srss);
%%%%%%%%Exact Metod%%%%%
svj=w.*sdj;
w2=(w).*(w);
W1=0;
W2=1;
x_exact=zeros(9,9);
fn_exact=zeros(9,9);
exact=0;
for j=1:9;
   for z=1:9;
       if j~=z;
       u=-2*w(z,1)*(1-(2*0.05^2));
       s=-2*w(j,1)*(1-(2*0.05^2));
       ve=w2(z,1)*w2(z,1);
       t=w2(j,1)*w2(j,1);
       W3=-(w2(j,1)+w2(z,1)-(4*0.05*0.05*w(j,1)*w(z,1)));
       W4=w2(j,1)*w2(z,1);
       aa=[0 1 0 1;1 u 1 s;u ve s t;ve 0 t 0];
       aa=inv(aa);
       bb=[W1;W2;W3;W4];
       cc=aa*bb;
       fn_exact(:,j)=fn_exact(:,j)+((sayj(:,j).*sayj(:,j))*gamaj(j,1)*gamaj(z,1)*((cc(1,1)*(sdj(j,1)^2))+(cc(2,1)*(svj(j,1)^2))+(cc(3,1)*(sdj(z,1)^2))+(cc(4,1)*(svj(z,1)^2))));
       x_exact(:,j)=x_exact(:,j)+((xj(:,j).*xj(:,z))*((cc(1,1)*(sdj(j,1)^2))+(cc(2,1)*(svj(j,1)^2))+(cc(3,1)*(sdj(z,1)^2))+(cc(4,1)*(svj(z,1)^2))));
       zz(j,z)=((cc(1,1)*(sdj(j,1)^2))+(cc(2,1)*(svj(j,1)^2))+(cc(3,1)*(sdj(z,1)^2))+(cc(4,1)*(svj(z,1)^2)));    
       exact=exact+(2*zz(j,z)*pp(1,j)*pp(1,z));
       end
   end
end
qq=sum(x_exact');
x_exact=((2*(qq'))+(x_srss));
fn_exact=((2*(sum(fn_exact'))')+(fn_srss));
v_base_exact=exact+srss;