% File matlab per la risoluzione dell'Esercizio 3.10

clear
syms x y

%%%%%%%%%%%
% parte a: stima parametrica
%%%%%%%%%%%

% pdf di y (dipendente da x)
fy=1/x*exp(-y); 
yl=log(1/x); yu=inf;

% stima ML
xml=exp(-y);

% verifica correttezza
mxml=int(exp(-y)*fy,y,yl,yu);

%%%%%%%%%%%
% parte a: stima bayesiana
%%%%%%%%%%%

% pdf congiunta
fxy=1/x*exp(-y);
xl=exp(-y); xu=1;
yl=0; yu=inf;

% verifica che sia una pdf!
int(int(fxy,x,xl,xu),y,yl,yu)

% pdf di x e di y
fx=int(fxy,y,log(1/x),inf);  % attenzione agli estremi!
fy=int(fxy,x,xl,xu);

% pdf di x condizionata a y
fxcy=fxy/fy;

% stima MEQM
xmeqm=int(x*fxcy,x,xl,xu)

% medie e covarianze
mx=int(x*fx,x,0,1);
my=int(y*fy,y,yl,yu);
Rxy=int(int((x-mx)*(y-my)*fxy,x,xl,xu),y,yl,yu);
Ry=int((y-my)^2*fy,y,yl,yu);

%stima LMEQM
xlmeqm=mx+Rxy*inv(Ry)*(y-my)

figure
ya=[yl:0.05:10];
plot(ya,subs(xmeqm,ya),'r')
hold on
plot(ya,subs(xlmeqm,ya),'g')
xlabel('y')
ylabel('stime di X')
legend('MEQM','LMEQM')