===================================================================
O código do programinha abaixo calcula a taxa de juros de um financiamento. O método usado, Newton-Raphson, foi muitíssimo preciso para calcular a raiz da equação onde a incógnita é obviamente a taxa. Na primeira iteração, é possível a convergência dando uma precisão de até oito dígitos [ou mais].
====================================================================
<html">
<head>
<title>Taxa de juros no sistema Price</title>
<STYLE>
body {font-family: courier new, courier}
form {width: 760px; border: double #000 6px; padding-left: 16px}
</style>
<script>
function TestaEnter(form, button)
{CalculaTaxa(form); return; }
function CalculaTaxa(PVista, Enter, R, N, VFin, S, P, T)
{
var PVista = parseFloat(window.document.frm.Enter1.value);
var Enter = parseFloat(window.document.frm.Enter2.value);
var R = parseFloat(window.document.frm.Enter3.value);
var N = parseFloat(window.document.frm.Enter4.value);
var n = parseFloat(window.document.frm.Enter5.value);
var VFin = PVista - Enter
if(window.document.frm.Enter3.value=="" || window.document.frm.Enter3.value==" " || window.document.frm.Enter3.value=="0" || window.document.frm.Enter5.value =="" || window.document.frm.Enter5.value =="0" || window.document.frm.Enter5.value < 0)
{
alert("Preencha corretamente as caixas. Com os valores atuais nas caixas é impossivel calcular a taxa de juros deste financiamento.");
return(1);
}
{
P = VFin
S = P/R
T = 1/S -S/N/N
i=-1
do
{
i+=1 ;
A = Math.pow((1+T),N)
B = Math.pow((1+T),(N+1))
T = T-(((A-1)/(T*A)-S)*B*T*T)/(1+T*(N+1)-B)
if (((A-1)/(T*A)-S)*B*T*T < Math.abs(Math.pow(10,-12)))
{ break;
}
}
while (i < n);
}
T = parseFloat(T*10E8,10)/10E6;
{document.getElementById("Exit1").innerHTML="<b>"+"A taxa de juros cobrada é: " + "</b>" +"<u>"+"<b>"+T.toFixed(4) + "</b>"+"</u>" + "%" +" "+"<b>"+ "ao mês"+"</b>";}
return;
}
</script>
<script>
function Itrexib(frm)
{
var PVista = parseFloat(window.document.frm.Enter1.value);
var Enter = parseFloat(window.document.frm.Enter2.value);
var R = parseFloat(window.document.frm.Enter3.value);
var N = parseFloat(window.document.frm.Enter4.value);
var n = parseInt(window.document.frm.Enter5.value);
var VFin = PVista - Enter
if(window.document.frm.Enter3.value=="" || window.document.frm.Enter3.value=="" || window.document.frm.Enter3.value=="0" || window.document.frm.Enter5.value=="" || window.document.frm.Enter5.value <=0)
{
alert("Não há como exibir as iterações neste momento.");
return(1);
}
self.document.write("<br>");
self.document.write("<br>");
P = VFin
S = P/R
T = 1/S -S/N/N
i=-1
self.document.write("<TABLE border=1 bordercolor=#000000 cellspacing=5 cellpadding=0><TR bgcolor=#f4f4f4><TD align=center>" +"<b>"+"i"+ "</b>" +"</TD>" +"<TD align=center>"+ "<b>"+"f(T)"+ "</b>"+"</TD>"+"<TD align=center>"+ "<b>"+"f'(T)"+ "</b>"+"</TD>"+"<TD align=center>" +"<b>"+"Taxa(T)"+"</b>"+"</TD>"+ "</TR>");
self.document.write("<TR>");
do
{
i+=1 ;
A = Math.pow((1+T),N)
B = Math.pow((1+T),(N+1))
T = T-(((A-1)/(T*A)-S)*B*T*T)/(1+T*(N+1)-B)
self.document.write("<TD>"+i+ "</TD>");
self.document.write("<TD>"+((A-1)/(T*A)-S)*B*T*T + "</TD>");
self.document.write("<TD>" + (1+T*(N+1)-B) + "</TD>");
self.document.write("<TD>" + T + "</TD>");
self.document.write("</TR>");
if (((A-1)/(T*A)-S)*B*T*T < Math.abs(Math.pow(10,-12)))
{ break;
}
}
while (i < n);
document.write("</TR></TABLE>");
self.document.write("<BR>");
self.document.write("<b>"+"A taxa é de: "+ (T*100).toFixed(4)+ "%"+"</b>")
}
</script>
</head>
<body>
<br />
<br />
<p>Taxa de juros em um financiamento pelo Sistema Price. O Método de Newton-Raphson foi usado para calcular a taxa de juros compostos. <BR><BR>Inserir os dados e clicar no botão apropriado. Aproveite os dados já inseridos para novas simulações.</p>
<br><b>Obs:</b>
<br>Use ponto (".") no lugar de vírgula.
<br><br>
<form name="frm">
<br><br>
Iteração máxima: <input type="text" value="4" size="2" name="Enter5" /><HR><BR><BR>
<th>Preço à Vista:<input type="text" size="7" value="" name="Enter1" />______Entrada:<input type="text" value="" size="7" name="Enter2" />
______Prestação($):<input type="text" size="7" value="" name="Enter3" /><BR><BR><HR>No. de meses: <input type="text" size="4" value="" name="Enter4" /></th></tr><BR><BR><BR>
<HR><input type="reset" value="Limpar os dados" /><input type="button" value="Calcular a Taxa" onclick="TestaEnter(this.form,this)" />
<br><br><br>
<BLOCKQUOTE><SPAN id="Exit1" style="border-bottom: 2px solid#ffffff; FONT-SIZE: 14pt"></SPAN></BLOCKQUOTE>
<br><br>
<a href="javascript:Itrexib()"><b>Exibir iterações ?</b></a>
<br><br>
</form>
<table border=1 cellspacing=1 cellpadding=2>
<tbody>
<tr><td>
</tbody>
</table>
<BR><BR><BR>
</body>
</html>
O código do programinha abaixo calcula a taxa de juros de um financiamento. O método usado, Newton-Raphson, foi muitíssimo preciso para calcular a raiz da equação onde a incógnita é obviamente a taxa. Na primeira iteração, é possível a convergência dando uma precisão de até oito dígitos [ou mais].
====================================================================
<html">
<head>
<title>Taxa de juros no sistema Price</title>
<STYLE>
body {font-family: courier new, courier}
form {width: 760px; border: double #000 6px; padding-left: 16px}
</style>
<script>
function TestaEnter(form, button)
{CalculaTaxa(form); return; }
function CalculaTaxa(PVista, Enter, R, N, VFin, S, P, T)
{
var PVista = parseFloat(window.document.frm.Enter1.value);
var Enter = parseFloat(window.document.frm.Enter2.value);
var R = parseFloat(window.document.frm.Enter3.value);
var N = parseFloat(window.document.frm.Enter4.value);
var n = parseFloat(window.document.frm.Enter5.value);
var VFin = PVista - Enter
if(window.document.frm.Enter3.value=="" || window.document.frm.Enter3.value==" " || window.document.frm.Enter3.value=="0" || window.document.frm.Enter5.value =="" || window.document.frm.Enter5.value =="0" || window.document.frm.Enter5.value < 0)
{
alert("Preencha corretamente as caixas. Com os valores atuais nas caixas é impossivel calcular a taxa de juros deste financiamento.");
return(1);
}
{
P = VFin
S = P/R
T = 1/S -S/N/N
i=-1
do
{
i+=1 ;
A = Math.pow((1+T),N)
B = Math.pow((1+T),(N+1))
T = T-(((A-1)/(T*A)-S)*B*T*T)/(1+T*(N+1)-B)
if (((A-1)/(T*A)-S)*B*T*T < Math.abs(Math.pow(10,-12)))
{ break;
}
}
while (i < n);
}
T = parseFloat(T*10E8,10)/10E6;
{document.getElementById("Exit1").innerHTML="<b>"+"A taxa de juros cobrada é: " + "</b>" +"<u>"+"<b>"+T.toFixed(4) + "</b>"+"</u>" + "%" +" "+"<b>"+ "ao mês"+"</b>";}
return;
}
</script>
<script>
function Itrexib(frm)
{
var PVista = parseFloat(window.document.frm.Enter1.value);
var Enter = parseFloat(window.document.frm.Enter2.value);
var R = parseFloat(window.document.frm.Enter3.value);
var N = parseFloat(window.document.frm.Enter4.value);
var n = parseInt(window.document.frm.Enter5.value);
var VFin = PVista - Enter
if(window.document.frm.Enter3.value=="" || window.document.frm.Enter3.value=="" || window.document.frm.Enter3.value=="0" || window.document.frm.Enter5.value=="" || window.document.frm.Enter5.value <=0)
{
alert("Não há como exibir as iterações neste momento.");
return(1);
}
self.document.write("<br>");
self.document.write("<br>");
P = VFin
S = P/R
T = 1/S -S/N/N
i=-1
self.document.write("<TABLE border=1 bordercolor=#000000 cellspacing=5 cellpadding=0><TR bgcolor=#f4f4f4><TD align=center>" +"<b>"+"i"+ "</b>" +"</TD>" +"<TD align=center>"+ "<b>"+"f(T)"+ "</b>"+"</TD>"+"<TD align=center>"+ "<b>"+"f'(T)"+ "</b>"+"</TD>"+"<TD align=center>" +"<b>"+"Taxa(T)"+"</b>"+"</TD>"+ "</TR>");
self.document.write("<TR>");
do
{
i+=1 ;
A = Math.pow((1+T),N)
B = Math.pow((1+T),(N+1))
T = T-(((A-1)/(T*A)-S)*B*T*T)/(1+T*(N+1)-B)
self.document.write("<TD>"+i+ "</TD>");
self.document.write("<TD>"+((A-1)/(T*A)-S)*B*T*T + "</TD>");
self.document.write("<TD>" + (1+T*(N+1)-B) + "</TD>");
self.document.write("<TD>" + T + "</TD>");
self.document.write("</TR>");
if (((A-1)/(T*A)-S)*B*T*T < Math.abs(Math.pow(10,-12)))
{ break;
}
}
while (i < n);
document.write("</TR></TABLE>");
self.document.write("<BR>");
self.document.write("<b>"+"A taxa é de: "+ (T*100).toFixed(4)+ "%"+"</b>")
}
</script>
</head>
<body>
<br />
<br />
<p>Taxa de juros em um financiamento pelo Sistema Price. O Método de Newton-Raphson foi usado para calcular a taxa de juros compostos. <BR><BR>Inserir os dados e clicar no botão apropriado. Aproveite os dados já inseridos para novas simulações.</p>
<br><b>Obs:</b>
<br>Use ponto (".") no lugar de vírgula.
<br><br>
<form name="frm">
<br><br>
Iteração máxima: <input type="text" value="4" size="2" name="Enter5" /><HR><BR><BR>
<th>Preço à Vista:<input type="text" size="7" value="" name="Enter1" />______Entrada:<input type="text" value="" size="7" name="Enter2" />
______Prestação($):<input type="text" size="7" value="" name="Enter3" /><BR><BR><HR>No. de meses: <input type="text" size="4" value="" name="Enter4" /></th></tr><BR><BR><BR>
<HR><input type="reset" value="Limpar os dados" /><input type="button" value="Calcular a Taxa" onclick="TestaEnter(this.form,this)" />
<br><br><br>
<BLOCKQUOTE><SPAN id="Exit1" style="border-bottom: 2px solid#ffffff; FONT-SIZE: 14pt"></SPAN></BLOCKQUOTE>
<br><br>
<a href="javascript:Itrexib()"><b>Exibir iterações ?</b></a>
<br><br>
</form>
<table border=1 cellspacing=1 cellpadding=2>
<tbody>
<tr><td>
</tbody>
</table>
<BR><BR><BR>
</body>
</html>






