ここでは減価償却の計算法をmaximaで記述してみようというのが趣旨です。 減価償却の計算法は4種類あります。 (定額法、定率法、級数法、生産高比例法) さらに定額法は旧バージョンと新バージョンがあります。 ここでは新バージョンのほうを取り扱います。 以下プログラム定額法
/* 残存価額 */ gf(n,r,a0):=(1-n*r)*a0; gr(n,an,a0):=1/n*(1-an/a0); /* 法律での値はAn=0 */ teigaku(n,max,a):=gf(n,gr(max,0,a),a); /* 100円のものを10年償却で3年後の価格は70円*/ teigaku(3,10,100);定率法
rf(n,r,a):=(1-r)^n*a; rr(n,an,a0):=1-(an/a0)^(1/n); /* 法人税法ではAn=A0*10% */ teiritu(n,max,a):=bfloat(rf(n,rr(max,a/10,a),a)); /* 100円のものを10年償却で3年後の価格は50.1円 */ teiritu(3,10,100);級数法
kf(n,max,shutoku,zanzon):=bfloat((shutoku-zanzon)*(max-n+1)/((max*(max+1))/2)); /* 100円のものを10年償却、残存価額5円で3年後の原価償却費は13.8円 */ kf(3,10,100,5); /* この償却費を10年分たせば、95円(=取得額-残存価額)になる */ a:0; for i:1 thru 10 do a:a+kf(i,10,100,5);生産高比例法
/* これだけ時間の関数ではない */ sf(katudou,soukatudou,shutokugenka,zanzon):=bfloat(katudou/soukatudou*(shutokugenka-zanzon)); sf(3,10,100,5); /* 10の全体量のうち1使えば9.5円 */ sf(1,10,100,5); /* 10の全体量のうち10使えば95円 */ sf(10,10,100,5);