clc;
clear all;
close all;

% % 1o. passo - obtenção de derivadas simbólicas (via direta)
% syms q A Y C R L
% A=atan((R*sin(q))/(C+R*cos(q)));
% Y=L*sin(A);
% dY_dq=diff(Y,q);
% disp('dY_dq (bruta)');
% pretty(dY_dq);
% disp('dY_dq (simplificada)')
% dY_dq=simplify(dY_dq)

% % 2o. passo - obtenção de derivadas simbólicas (via indireta)
% syms q A Y C R L
% Y=L*sin(A);
% dY_dA=diff(Y,A);
% A=atan((R*sin(q))/(C+R*cos(q)));
% dA_dq=diff(A,q);
% dY_dq2=dY_dA*dA_dq;
% disp('dY_dA (bruta)')
% pretty(dY_dA);
% disp('dY_dA (simplificada)')
% dY_dA=simplify(dY_dA)
% disp('dA_dq (bruta)')
% pretty(dA_dq);
% disp('dA_dq (simplificada)')
% dA_dq=simplify(dA_dq)
% disp('dY_dq (bruta) ')
% pretty(dY_dq2);
% disp('dY_dq (simplificada)')
% dY_dq2=simplify(dY_dq2)

% % 3o. passo - resolução analítica para (M/FL)
%   % dimensões (mm)
% C=279.4;
% R=127;
%   % ângulos da manivela
% q=0:(1*pi/180):2*pi; 
%   % determinação de A e (M/FL)
% A=atan2((R*sin(q)),(C+R*cos(q)));
% T=cos(A).*(C*R*cos(q)+R^2)./(C^2+2*C*R*cos(q)+R^2);
%   % visualização 
% q=q*180/pi; % conversão para graus
% figure(1)
% plot(q,T,'r-')
% axis([0 360 -1 1])
% grid on
% xlabel('Ângulo da manivela (graus)')
% ylabel('Termo (M/FL)')
% title('Mecanismo Manivela-Alavanca - Variação da Razão entre Esforços')

% 4o. passo - resolução numérica para q
  % valor em que (M/FL) é zero
q0=fzero('manaval',[0 pi]);
disp(['A raiz desejada é q = ',num2str(q0),'.']);
disp(' ')
  % valor em que (M/FL) é mínimo
qm=fminbnd('manaval',0,pi);
disp(['O valor onde ocorre o mínimo é q = ',num2str(qm),'.']);
disp(' ')