Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # usado no artigo do Quora https://bit.ly/quora-taxa-de-juros
- c=100000.00 # capital inicial
- a=1000.00 # aporte periódico
- m=1000000.00 # montante final
- t=120 # tempo de aplicação
- # i=? # taxa de juros
- find-i()
- {
- local usar prec i args f d
- eval $@
- if [[ ! ( $usar && $prec && $i ) ]]
- then
- args='usar=<m|t> prec=<#dígitos> i=<chute em %>'
- echo Uso: $FUNCNAME $args >&2
- return 1
- fi
- case $usar in
- m) f='(c*i+a)*(1+i)^t-a-m*i'
- d='(i+1)^(t-1)*(a*t+c*(t+1)*i+c)-m'
- ;;
- t) f='t*l(i+1)-l(m*i+a)+l(c*i+a)'
- d='t/(i+1)-m/(m*i+a)+c/(c*i+a)'
- ;;
- *) echo fórmula desconhecida >&2; return 2
- esac
- BC_LINE_LENGTH=0 bc -l << EOT
- m=$m; c=$c; a=$a; t=$t; p=$prec; i=$i
- define f(i){return $f}
- define d(i){return $d}
- define a(n){if(n>0)return n else return -n}
- n=0
- diff=1
- print "\ni0 = ", i, "\n"
- i=i/100
- while( diff > 10^-p )
- {
- scale=p+2
- i0=i
- i=i0-f(i0)/d(i0)
- diff=100*a(i0-i)
- n+=1
- scale=p
- print "i", n, " = ", 100*i/1, \
- " |i", n, "-i", n-1, "| = ", diff/1, "\n"
- }
- print "\ni = ", 100*i/1, " %\nm = ", \
- ( (c*i+a)*(1+i)^t - a )/i, "\n\n"
- EOT
- }
- find-i usar=m prec=5 i=1
Add Comment
Please, Sign In to add comment