-
Notifications
You must be signed in to change notification settings - Fork 0
/
expected_revenue_over_time2.m
47 lines (43 loc) · 1.29 KB
/
expected_revenue_over_time2.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function varargout=expected_revenue_over_time2(t0,beta,Test, r,gamma,w, M,discount)
%EXPECTED_REVENUE_OVER_TIME2
%
% D=expected_revenue_over_time2(t0,beta,r,Test,gamma,w, M,discount)
%
% computes the expected revenue (assuming the simple revenue function) for
% a given investment strategy and in an assumed environment. Revenue is
% discounted over M years, and the envrionmental temperature is allowed to
% have a linear trend.
%
% t0 = mean temperature of the investment strategy
% beta = standard deviation of the investment strategy
% Test = temperature in the environment at the beginning
% r = warming rate
% gamma= standard deviation of the environmental temperature.
% w = weighting placed on avoiding losses
% M = time horizon for investments
% discount = discount rate.
%
% WR = R + w*P
%
% R and P are computed using the analytic solution to the integral
%
%
%
j=(0:M-1)';
T=Test+r*j;%temperatures
%R = integral(N(x|T,gamma)*R(x|0,beta),dx)
% = integral(N(x|T,gamma)*N(x|0,beta),dx)-exp(-2)./sqrt(2*pi*beta*beta)
R=zeros(M,1);
for k=1:M
R(k)=expected_revenue2(t0, beta,T(k), gamma,w);%net value
end
D=(1+discount).^-j;
tDR=sum(D.*R);%total revenue
switch nargout
case 1
varargout={tDR};
case 2
varargout={tDR,[D,R]};
otherwise
varargout={tDR};
end