Zadání je napsat programy, kterým se budou pøedávat prametry a ony budou vracet výledky, ne provést ad hoc nìjaké výpoèty.
je potøeba zaèít programem (procedurou), která vrací poèet dní mezi dvìma daty gregoriánského kalendáøe. Buï takovou proceduru v matlabu najdete, nebo ji musíte napsat. Pokuýd ji budete psát, mùžete se držet mého algioritmu v maple:
Gregoriansky kalendar
> Prestupny := proc (Rok) #procedura zjisti, zda je rok prestupny Vystup true: je prestupny
 if Rok mod 4 <> 0
 or Rok mod 100 = 0 and Rok/100 mod 4 <> 0
 then false
 else 
true
 fi 
 end ;
> PocetDniVMesici := proc (Mesic,Rok) #procedura urci pocet dni v mesici. Vstup je cislo mesice a cislo roku
 if member( Mesic mod 12,{1,3,5,7,8,10,12,0}) then 
31 
else  
 if Mesic = 2 then 
    #print(Rok,Prestupny(Rok));
    if Prestupny(Rok) then 
      29
    else 
    28
   fi 
 else 30;
 fi 
fi; 
end:
> DelkaRoku:=proc(Rok)
if Prestupny(Rok) then
366
else
365
fi
end;

> CisloDne:=proc(Den,Mesic,Rokk)#zbytek po deleni sedmi udava den v tydnu
local i;
i:='i';
# korekce pro neexistujici rok 0:
if Rokk<=0 then 
Rok:=Rokk+1
else
Rok:=Rokk
fi;
`if`( Rok>=2000,
add(DelkaRoku(i),i=2000..Rok-1)+add(PocetDniVMesici(i,Rok),i=1..Mesic-1)+Den-2,
add(-DelkaRoku(i),i=Rok..2000-1)+
add(PocetDniVMesici(i,Rok),i=1..Mesic-1)+Den-2
);
end;
Warning, `Rok` is implicitly declared local

> 
> Vzdalenost:=(DenA,MesicA,RokA,DenB,MesicB,RokB)->
CisloDne(DenB,MesicB,RokB)-CisloDne(DenA,MesicA,RokA);

> Datum:=proc(den)
local  Den, Mesic, Rok;
Den:=den+2;
if Den>0 then
 i:=0;
 while Den > DelkaRoku(2000+i) do
  Den := Den- DelkaRoku(2000+i);
  i:=i+1;
 od;
 Rok:=2000+i;
 i:=1;
 while Den > PocetDniVMesici(i,Rok) do
  Den := Den - PocetDniVMesici(i,Rok);
  i:=i+1;
 od;
 Mesic:=i;
else
#Den:=Den-1;
#print(Den);
i:=0;
 while Den <= 0 do
 i:=i-1;
  Den := Den+ DelkaRoku(2000+i); 
 od;
 Rok:=2000+i;
i:=1;
 while Den > PocetDniVMesici(i,Rok) do
  Den := Den - PocetDniVMesici(i,Rok);
  i:=i+1;
 od;
 Mesic:=i;
fi;
# korekce pro neexistujici rok 0:
if Rok<=0 then Rok:=Rok-1 fi;
Den,Mesic,Rok;
end;

Warning, `i` is implicitly declared local

> 

>  

Pøíklad 1.
Vstup: splákový klendáø (asi ve formì souboru, múže být tøeba tak, že každý øádek je den. mìsíc. rok, èástka ... to si rozhodnìte sami)
a buï velikost dluhu, nebo úroková míra.

Výstup:
úroková míra, nebo velikost dluhu (to co není známo).
Pøi poèítání úrokové míry bude potøeba použít nìjakou proceduru pro numerická øešení, numerické hledání koøenù, . . .
Úroková míra budiž p. a.
Poznámka: jsou - li  splátky v èase  a dluh o velikosti Z vznikl v èase  a úroková míra je  platí pro okamžik  v nìmž je dluh splacen, vztah:
> Z=sum(z[i]*(1+xi)^((t[0]-t[i])/DelkaAktualnihoRoku),i=1..T);

(Pokud se t poèítjí ve dnech).
Pøíklad 2.

Vstup: splákový klendáø (asi ve formì souboru, múže být tøeba tak, že každý øádek je den. mìsíc. rok, èástka ... to si rozhodnìte sami),
velikost dluhu,  úroková míra, èas.
Výstup: zùstatek dluhu v daném èase.
Poznámka: jsou - li  splátky v èase  a dluh o velikosti Z vznikl v èase  a úroková míra je  platí v okamžiku  je zùstatek dluhu:
> Z*(1+xi)^(T/DelkaAktualnihoRoku)-sum(z[i]*(1+xi)^((T-t[i])/DelkaAktualnihoRoku),i=1..T);

> 
Pokud je jednotkou èasu den.
> 
Pøíklad 3.:
Pøedpokládáme anuitní mìsíèní splátky. 
Vstup: tøi z tìchto ètyø velièin:
Velikost dluhu, 
velikost mìsíèních splátek, 
poèet let splácení (dvanáctina poètu splátek), nebo poèet mìsícù plácení,
úroková míra.

Výstup:
chybìjící ètvrtá velièina & lineární èást pøírùstku souèasné hodnoty splátek (velikosti  toho, co si mùžeme pùjèít) pøi mìnì úrokové sazby.
> r[1]:=Z=simplify(sum(z*(1+xi)^(-t/12),t=1..12*T));
r[2]:=Z=simplify(sum(z*(1+xi)^(-t/12),t=1..N));

> A:=subs(xi=xi+delta,rhs(r[1])); # Castka , kterou si muzeme pujcit, kdyz se urokova mira zvetsio delta
B:=rhs(r[1]); # castka, kterou si muzeme pujcit pri puvodni urokove mire
Prirustek:=simplify((A-B)/A); # relativni prirustk casty, kterou sio budeme moci pujcit, kyz se urokova mira zvetsi (je-li zvetseni kladne, musi byt aporny)
LinCPrirustku:=simplify(coeftayl(Prirustek,delta=0,1)); # jeho linearni cats je koeficient u delta na prvou v taylorove polynomu

> 

>