arkanon

Determinação da taxa de juro composto

Dec 15th, 2022 (edited)
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.23 KB | Software | 0 0
  1. # usado no artigo do Quora https://bit.ly/quora-taxa-de-juros
  2.  
  3.   c=100000.00  # capital inicial
  4.   a=1000.00    # aporte periódico
  5.   m=1000000.00 # montante final
  6.   t=120        # tempo de aplicação
  7. # i=?          # taxa de juros
  8.  
  9. find-i()
  10. {
  11.   local usar prec i args f d
  12.   eval $@
  13.   if [[ ! ( $usar && $prec && $i ) ]]
  14.   then
  15.     args='usar=<m|t> prec=<#dígitos> i=<chute em %>'
  16.     echo Uso: $FUNCNAME $args >&2
  17.     return 1
  18.   fi
  19.   case $usar in
  20.   m) f='(c*i+a)*(1+i)^t-a-m*i'
  21.      d='(i+1)^(t-1)*(a*t+c*(t+1)*i+c)-m'
  22.      ;;
  23.   t) f='t*l(i+1)-l(m*i+a)+l(c*i+a)'
  24.      d='t/(i+1)-m/(m*i+a)+c/(c*i+a)'
  25.      ;;
  26.   *) echo fórmula desconhecida >&2; return 2
  27.   esac
  28.   BC_LINE_LENGTH=0 bc -l << EOT
  29.   m=$m; c=$c; a=$a; t=$t; p=$prec; i=$i
  30.   define f(i){return $f}
  31.   define d(i){return $d}
  32.   define a(n){if(n>0)return n else return -n}
  33.   n=0
  34.   diff=1
  35.   print "\ni0 = ", i, "\n"
  36.   i=i/100
  37.   while( diff > 10^-p )
  38.   {
  39.     scale=p+2
  40.     i0=i
  41.     i=i0-f(i0)/d(i0)
  42.     diff=100*a(i0-i)
  43.     n+=1
  44.     scale=p
  45.     print "i", n, " = ", 100*i/1, \
  46.           "  |i", n, "-i", n-1, "| = ", diff/1, "\n"
  47.   }
  48.   print "\ni = ", 100*i/1, " %\nm = ", \
  49.         ( (c*i+a)*(1+i)^t - a )/i, "\n\n"
  50. EOT
  51. }
  52.  
  53. find-i usar=m prec=5 i=1
Add Comment
Please, Sign In to add comment