Advertisement
vinocastro

exam2_2

Jun 21st, 2021
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.97 KB | None | 0 0
  1. function exam2_2
  2.     f1 = @(x)(1/sqrt(6*pi))*exp(-(x.^2)./6);
  3.     f2 = @(x)(1/(0.8862269*sqrt(3*pi))).*(1+((x.^2)/3)).^-2;
  4.     alpha_vector = [0.9:0.01:.99]';
  5.     VaR_gaussian = zeros(1,10);
  6.     VaR_tdistr = zeros(1,10);
  7.     counter_gaussian = 1;
  8.     counter_tdistr = 1;
  9.     for alpha = 0.9:0.01:.99
  10.         z0_gaussian = 2.2;
  11.         z0_tdistr = 1.7;
  12.         left_gaussian = -50;
  13.         right_gaussian = z0_gaussian +50;
  14.         left_tdistr = -50;
  15.         right_tdistr = z0_tdistr + 50;
  16.         z_gaussian = (left_gaussian + right_gaussian)/2;
  17.         z_tdistr = (left_tdistr + right_tdistr)/2;
  18.         err_gaussian = trap(-50,z_gaussian,0.1,f1)-alpha;
  19.         err_tdistr = trap(-50,z_tdistr,0.1,f2)-alpha;
  20.         while abs(right_gaussian - left_gaussian) > 1e-4
  21.             if((trap(-50,z_gaussian,0.1,f1)-alpha)) < 0;
  22.                 left_gaussian = z_gaussian;
  23.             else
  24.                 right_gaussian = z_gaussian;
  25.             end
  26.             z_gaussian = (left_gaussian + right_gaussian)/2;
  27.             err_gaussian = trap(-50,z_gaussian,0.1,f1)-alpha;
  28.         end
  29.         VaR_gaussian(counter_gaussian) = z_gaussian;
  30.         counter_gaussian = counter_gaussian + 1;
  31.         while abs(right_tdistr - left_tdistr) > 1e-4
  32.             if((trap(-50,z_tdistr,0.1,f2)-alpha)) < 0;
  33.                 left_tdistr = z_tdistr;
  34.             else
  35.                 right_tdistr = z_tdistr;
  36.             end
  37.             z_tdistr = (left_tdistr + right_tdistr)/2;
  38.             err_tdistr = trap(-50,z_tdistr,0.1,f2)-alpha;
  39.         end
  40.         VaR_tdistr(counter_tdistr) = z_tdistr;
  41.         counter_tdistr = counter_tdistr + 1;
  42.         end %% end of for loop
  43.         plot(alpha_vector,VaR_gaussian,'b-'); hold on;
  44.         plot(alpha_vector,VaR_tdistr,'r-'); hold on;
  45.    
  46. end %% end of exam2_2
  47.  
  48. function res = trap(a,b,h,f)
  49.     N = (b-a)/h;
  50.     s = 0.5*(f(a)+f(b));
  51.     for i = 1: N-1
  52.         s = s + f(a+i*h);
  53.     end %% end of for loops
  54.     res = h*s;
  55. end %% end of trap
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement