Projeto

Geral

Perfil

MODELAGEM DO CHUTE » Def_Func_polinomial.m

3* Programa - Luis David Peregrino de Farias, 11/09/2017 14:36 h

 
clc
vf=0.4; %max 11
dmax=2.5;
x=1;
N_Qf=N_E;
z0=0;
x0=0;
for z=1:N_Qf
while 1
if(V_G_F(Mf(z)+x)>vf && V_G_F(Mf(z)+x+1)<vf)
x
z
X_f(z-z0)=X_G_F(Mf(z)+x);
T_f(z-z0)=T_G_F(Mf(z)+x);
if X_f(z-z0)>dmax
x0=x0+1;
end
x=1;
break;
end
x=x+1;
if(x>(Mf(z+1)-Mf(z)))
%X_f(z-z0)=0;
%T_f(z-z0)=0;
x=1;
z0=z0+1;
z0
break;
end
end
end
N_Qf=N_Qf-z0-x0;
X_f
T_f
N_P_q=4;
a=X_f(1)
b=T_C(1)
c=T_f(1)
for i=1:N_Qf
X_f(i)=X_f(i)-a;
T_C(i)=T_C(i)-b;
T_f(i)=T_f(i)-c;
end
for i=1:N_P_q
for p=1:N_P_q
Af(i,p)=0;
end
Bf(i)=0;
end
for i=1:N_P_q
for j=1:N_Qf
Bf(i)=Bf(i)+T_C(j)*X_f(j)^(i-1);
end
for p=1:N_P_q
for j=1:N_Qf
Af(i,p)=Af(i,p)+X_f(j)^(i+p-2);
end
end
end
Af;
Bf=transpose(Bf);
C_c=linsolve(Af,Bf);
inc=0.01;
max=round(X_f(N_Qf)/inc);
ini=round(X_f(1)/inc);
for j=ini:max
X_f_c(j-ini+1)=j*inc;
end
for j=ini:max
T_C_c(j-ini+1)=0;
for i=1:N_P_q
T_C_c(j-ini+1)=T_C_c(j-ini+1)+C_c(i)*X_f_c(j-ini+1)^(i-1);
end
end
Bf=transpose(Bf);
y_T=0;
for j=1:N_Qf
y_T=y_T+X_f_c(j);
end
y_m=y_T/N_Qf;
S_1=0;
for j=1:N_Qf
x=round(X_f(j)/inc);
if(x>max)
x=max-1;
end
S_1=S_1+(T_C(j)-T_C_c(x-ini+1))^2;
end
S_2=0;
for j=1:N_Qf
S_2=S_2+(T_C(j)-y_m)^2;
end
Rc=1-S_1/S_2
C_c
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:N_P_q
for p=1:N_P_q
Af(i,p)=0;
end
Bf(i)=0;
end
for i=1:N_P_q
for j=1:N_Qf
Bf(i)=Bf(i)+T_f(j)*X_f(j)^(i-1);
end
for p=1:N_P_q
for j=1:N_Qf
Af(i,p)=Af(i,p)+X_f(j)^(i+p-2);
end
end
end
Af;
Bf=transpose(Bf);
C_t=linsolve(Af,Bf);
for j=ini:max
T_f_c(j-ini+1)=0;
for i=1:N_P_q
T_f_c(j-ini+1)=T_f_c(j-ini+1)+C_t(i)*X_f_c(j-ini+1)^(i-1);
end
end
Bf=transpose(Bf);
y_T=0;
for j=1:N_Qf
y_T=y_T+X_f_c(j);
end
y_m=y_T/N_Qf;
S_1=0;
for j=1:N_Qf
x=round(X_f(j)/inc);
if(x>max)
x=max-1;
end
S_1=S_1+(T_f(j)-T_f_c(x-ini+1))^2;
end
S_2=0;
for j=1:N_Qf
S_2=S_2+(T_f(j)-y_m)^2;
end
Rt=1-S_1/S_2
C_t
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:N_Qf
X_f(i)=X_f(i)+a;
T_C(i)=T_C(i)+b;
T_f(i)=T_f(i)+c;
end
for i=ini:max
X_f_c(i-ini+1)=X_f_c(i-ini+1)+a;
T_C_c(i-ini+1)=T_C_c(i-ini+1)+b;
T_f_c(i-ini+1)=T_f_c(i-ini+1)+c;
end
figure(4)
for j=1:N_Qf-1
plot([X_f(j) X_f(j+1)],[T_C(j) T_C(j+1)],'-k')
hold on
end
for j=ini:(max-1)
plot([X_f_c(j-ini+1) X_f_c(j-ini+2)],[T_C_c(j-ini+1) T_C_c(j-ini+2)],'-r')
end
hold off
figure(5)
for j=1:N_Qf-1
plot([X_f(j) X_f(j+1)],[T_f(j) T_f(j+1)],'-b')
hold on
end
for j=ini:(max-1)
plot([X_f_c(j-ini+1) X_f_c(j-ini+2)],[T_f_c(j-ini+1) T_f_c(j-ini+2)],'-g')
end
hold off
fprintf('\nEqua??o para for?a do chute:');
fprintf(' %d',C_c(1)+b);
for i=2:N_P_q
fprintf(' %d*d^%d',C_c(i),i-1);
end
fprintf('\n');
fprintf('\nEqua??o para tempo do chute:');
fprintf(' %d',C_t(1)+c);
for i=2:N_P_q
fprintf(' %d*d^%d',C_t(i),i-1);
end
fprintf('\n');
fprintf('\nNumero de pontos utilizados: %d\n',N_Qf);
fprintf('Numero de pontos com vi<vf: %d\n',z0-1);
fprintf('Numero de pontos com xd<dmax: %d\n',x0-1);
(8-8/10)