
function []=condnormal(mx,my,dx,dy,ro,var,tal)
%
%  condnormal(mx,my,dx,dy,ro,var,tal)
%
%     Plottar betingad täthetsfunktion och skriver ut betingade
%     väntevärdet och betingade variansen om
%
%          X är N(mx,dx)
%
%          Y är N(my,dy)
%
%          (X,Y) har korrelationskoeficient ro.
%
%     Parametern "var" bestämmer om betingning sker på X eller Y
%     enligt
%
%          var = 'x' ger f   (y|tal), E(Y|X=tal) och V(Y|X=tal)
%                         Y|X
%
%          var = 'y' ger f   (x|tal), E(X|Y=tal) och V(X|Y=tal)
%                         X|Y
%
%     där '-tecknen måste skrivas runt x resp y. 
%
subplot(1,1,1)
if ro<=-1|ro>=1
  error('    korrelation ska uppfylla: -1 < ro < 1')
end
if dx<=0|dy<=0
  error('    standardavvikelse ska uppfylla: d > 0')
end

a1=3.5;
a2=10;
disp(' ')
if var=='y'
  mxIy = mx+(tal-my)*ro*dx/dy;
  vxIy = dx^2*(1-ro^2);
  xmin = mxIy-a1*sqrt(vxIy);
  xmax = mxIy+a1*sqrt(vxIy);

  x = [xmin:sqrt(vxIy)/a2:xmax];
  kxIy =1/sqrt(2*pi*vxIy);
  QxIy =((x-mxIy).^2)/vxIy;
  fxIy = kxIy*exp(-QxIy/2);

  disp(['  E(X|Y=',num2str(tal),') = ',num2str(mxIy)])
  disp(['  V(X|Y=',num2str(tal),') = ',num2str(vxIy)])
  plot(x,fxIy)
end

if var=='x'
  myIx = my+(tal-mx)*ro*dy/dx;
  vyIx = dy^2*(1-ro^2);
  ymin = myIx-a1*sqrt(vyIx);
  ymax = myIx+a1*sqrt(vyIx);

  y = [ymin:sqrt(vyIx)/a2:ymax];
  kyIx = 1/sqrt(2*pi*vyIx);
  QyIx = ((y-myIx).^2)/vyIx;
  fyIx = kyIx*exp(-QyIx/2);

  disp(['  E(Y|X=',num2str(tal),') = ',num2str(myIx)])
  disp(['  V(Y|X=',num2str(tal),') = ',num2str(vyIx)])
  plot(y,fyIx)
end

disp(' ')


