>
with(linalg):
Ruwan:=proc(N,T,d)
local H,i;
H:=[[1],[100],[0]];
for i from 2 to N
do
H:=[[op(H[1]),i],
[op(H[2]), ((1-((i-1)/T))*H[2][i-1]) ],
[op(H[3]),(((i-1)/T)*H[2][i-1] )+H[3][i-1] ]
];
od;
Digits:=d;
H:=evalf(H);
matrix(H);
end:
> Ruwan(14,12,7);
> Ruwan(30,365,2);