Home › Forums › General Actuarial › Four BASIC programs for life contingencies
Tagged: Programming coding
 This topic has 0 replies, 1 voice, and was last updated 3 years ago by Richard Purvey.

AuthorPosts

September 28, 2021 at 6:57 pm #6964
BASIC Programs For Four Of The Standard Algorithmic Calculations Currently Included In The Actuarial Life Contingencies Syllabus
In each case, make the first line of the program:
10 DEF FNS(U)=whatever the survival function, S(U), is.
For example, for a Makeham with A equal to 0.00022, B equal to 2.7*10^(6) and c equal to 1.124, make the first line of the program:
10 DEF FNS(U)=EXP(0.00022*U2.7*10^(6)*(1.124^U1)/LN(1.124))
And then;
If you want the program to calculate an nyear temporary curtate life expectancy for (x) when executed then add on the following:
20 INPUT x,n
30 ANSWER=0
40 FOR r=1 TO n
50 ANSWER=ANSWER+FNS(x+r)
60 NEXT r
70 ANSWER=ANSWER/FNS(x)
80 PRINT ANSWER
90 END
Or if you want the program to calculate the actuarial present value of an nyear temporary immediate life annuity, with a discount factor of v, of 1 per year payable m times per year for (x) (m may be equal to 1) when executed then add on the following:
20 INPUT x,n,m,v
30 ANSWER=0
40 FOR r=1 TO m*n
50 ANSWER=ANSWER+v^(r/m)*FNS(x+r/m)
60 NEXT r
70 ANSWER=ANSWER/(m*FNS(x))
80 PRINT ANSWER
90 END
Or if you want the program to calculate the actuarial present value of an nyear temporary life annuity due, with a discount factor of v, of 1 per year payable m times per year for (x) (m may be equal to 1) when executed then add on the following:
20 INPUT x,n,m,v
30 ANSWER=0
40 FOR r=0 TO m*n1
50 ANSWER=ANSWER+v^(r/m)*FNS(x+r/m)
60 NEXT r
70 ANSWER=ANSWER/(m*FNS(x))
80 PRINT ANSWER
90 END
Or if you want the program to calculate the actuarial present value of a death benefit, with a discount factor of v, of 1 payable at the end of the 1/m year of death for (x) (m may be equal to 1), provided this occurs within n years, when executed then add on the following:
20 INPUT x,n,m,v
30 ANSWER=0
40 FOR r=0 TO m*n1
50 ANSWER=ANSWER+v^(r/m)*FNS(x+r/m)
60 NEXT r
70 ANSWER=ANSWER/(m*FNS(x))
80 ANSWER=1v^n*FNS(x+n)/FNS(x)m*(1v^(1/m))*ANSWER
90 PRINT ANSWER
100 END
I have written the above programs in BBC BASIC which is very similar to the more commonly used VB.

AuthorPosts
 You must be logged in to reply to this topic.