Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function exam2_2
- f1 = @(x)(1/sqrt(6*pi))*exp(-(x.^2)./6);
- f2 = @(x)(1/(0.8862269*sqrt(3*pi))).*(1+((x.^2)/3)).^-2;
- alpha_vector = [0.9:0.01:.99]';
- VaR_gaussian = zeros(1,10);
- VaR_tdistr = zeros(1,10);
- counter_gaussian = 1;
- counter_tdistr = 1;
- for alpha = 0.9:0.01:.99
- z0_gaussian = 2.2;
- z0_tdistr = 1.7;
- left_gaussian = -50;
- right_gaussian = z0_gaussian +50;
- left_tdistr = -50;
- right_tdistr = z0_tdistr + 50;
- z_gaussian = (left_gaussian + right_gaussian)/2;
- z_tdistr = (left_tdistr + right_tdistr)/2;
- err_gaussian = trap(-50,z_gaussian,0.1,f1)-alpha;
- err_tdistr = trap(-50,z_tdistr,0.1,f2)-alpha;
- while abs(right_gaussian - left_gaussian) > 1e-4
- if((trap(-50,z_gaussian,0.1,f1)-alpha)) < 0;
- left_gaussian = z_gaussian;
- else
- right_gaussian = z_gaussian;
- end
- z_gaussian = (left_gaussian + right_gaussian)/2;
- err_gaussian = trap(-50,z_gaussian,0.1,f1)-alpha;
- end
- VaR_gaussian(counter_gaussian) = z_gaussian;
- counter_gaussian = counter_gaussian + 1;
- while abs(right_tdistr - left_tdistr) > 1e-4
- if((trap(-50,z_tdistr,0.1,f2)-alpha)) < 0;
- left_tdistr = z_tdistr;
- else
- right_tdistr = z_tdistr;
- end
- z_tdistr = (left_tdistr + right_tdistr)/2;
- err_tdistr = trap(-50,z_tdistr,0.1,f2)-alpha;
- end
- VaR_tdistr(counter_tdistr) = z_tdistr;
- counter_tdistr = counter_tdistr + 1;
- end %% end of for loop
- plot(alpha_vector,VaR_gaussian,'b-'); hold on;
- plot(alpha_vector,VaR_tdistr,'r-'); hold on;
- end %% end of exam2_2
- function res = trap(a,b,h,f)
- N = (b-a)/h;
- s = 0.5*(f(a)+f(b));
- for i = 1: N-1
- s = s + f(a+i*h);
- end %% end of for loops
- res = h*s;
- end %% end of trap
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement