Python - Python .mcalculo de cuotas crecientes.matematicas

 
Vista:

Python .mcalculo de cuotas crecientes.matematicas

Publicado por zenith (1 intervención) el 04/06/2008 19:23:53
calculo de cuotas iguales crecientes decrecientes.
por ejemplo sea cuotas(30000,50,0,6,8.5,4) te da la lista de cuotas;
ARGUMENTOS
1)30000 es el monto
2)50 es cuanto queres que aumente que puede ser 0 o negativo 3)0 es que es desde primeros dias del mes el pago o cobro
4)6 cant de cuotas no en total sino cada cuantas aumenta o baja
5)7.5 la tasa de interes mensual
6)el 4 la cantidad de años que puede ser con decimales o en fraccion pero que encaje bien con lo de la cantidad de cuotas . no encaja bien si son 4 años y de a 7 cuotas ya que 48 cuotas o meses dividido 7 cuotas no da redondo da casi 7. pero se puede poner como cantidad de años 49/12.

Los valores actuales de las cuotas suman esos 30000.

hay en progresion aritmetica y en geometrica.

puede que al ser yo novato algunas partes lo hubiera hecho más fácil.

-------------------------------

def a(x,n,i):
x=x+0.0
n=n+0.0
i=i+0.0
i=i/100
v=(1+i)**(-1)
w=(1-v**n)
e=(1-v)
w=w/e
r=v**x
r=r*w
#2000*a(0,7,7)=11533.08
#2000*a(1,6,7)+2000=11533.08
# 567.66*a(0,24,1.74)+667.66*a(24,24,1.74)=casi 20000
return r


def redond(n):
from math import modf
if modf(n)[0]>=0.5:
nn=modf(n)[1]+1
else:
nn=modf(n)[1]
return nn


def pagoArit(monto,desde,cantidad,interes,incremento):
m=monto
q=desde
n=cantidad
i=interes
r=incremento
i=i/100.0
v=(1+i)**(-1)
v1=(1-v**n)
v2=(1-v)
v3=v1/v2
w=v*v3
qw=(1+i)
qw=qw**(1-q)
w=w*qw
w1=(r/i)*(w-n*v**n)
w2=(m-w1)/w
j=1
while j<(n+1):
print 'NÃ?MERO DE CUOTA:',j,'VALOR CUOTA:',w2+(r*(j-1))
j=j+1


def pagoGeom(monto,desde0o1,cantidad,interes,razon):
va=monto
i=interes
i=i/100.0
q=razon
q=q-1
n=cantidad
qq=((1+q)/(1+i))**n-1
w=q-i
qq=qq/w
e=va/qq
c=e
ade=desde0o1
if ade ==0:
a23=(1+i)**(-1.0)
else:
a23=1
c=c*a23
j=1
while j<(n+1):
print 'NUMERO CUOTA',j,'CUOTA',c*((1+q)**(j-1))
j=j+1


pagoArit(20000,0,48,1.74,5)
pagoGeom(20000,0,48,1.74,1.05)
m=20000
i=1.74
a0=a(0,24,i)
a24=a(24,24,i)
c=(m-100*a24)/(a0+a24)
c #me dio 567.65891684428686 asi que 667.65891....

c=(m-(k*a12+2*k*a24+3*k*a36))/(a0+a12+a24+a36)
c #me dio bien 545.23726939442236 con el â??buscar destinoâ??

def pagoAritGeom(monto,desde,cantidad,interes,razon,aritOgeom_1_o_2):
a=aritOgeom_1_o_2
if a==1:
j=pagoArit(monto,desde,cantidad,interes,razon)
else:
j=pagoGeom(monto,desde,cantidad,interes,razon)

pagoAritGeom(20000,0,48,1.74,1.01,2)

c=(m-(k*a12+2*k*a24+3*k*a36))/(a0+a12+a24+a36)
def cuotas(monto,incremento,desde,de_a,i,anios):
anios=anios+0.0
m=monto
k=incremento
j=0
h=0
fr=anios*12/de_a
while h<fr-1:
j=j+(h+1)*k*a(desde+de_a*(h+1),de_a,i)
h=h+1
num=m-j
j0=0
h0=0
while h0<fr:
j0=j0+a(desde+de_a*h0,de_a,i)
h0=h0+1
den=j0
qwe=num/den
q=qwe
sd=0
df=0
while sd<fr:
print de_a,' CUOTAS DE ',(redond((q+k*sd)*100))/100
sd=sd+1
return q

pagoArit(20000,0,48,1.74,5)
pagoGeom(20000,0,48,1.74,1.05)
cuotas(20000,50,0,12,1.74,4)

--------------------------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder