Jump to content

Ganhe $$$ escrevendo tutoriais para nós!


Foto

Programinha que calcula taxas

JScript Raiz equação




  • Faça login para responder
Este tópico ainda não tem respostas. Seja o primeiro a responder!

#1 AcidMood

AcidMood
  • Participante
  • 28 mensagens

Publicado 10 June 2012 - 07:27 PM

===================================================================

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&eacute;todo de Newton-Raphson foi usado para calcular a taxa de juros compostos. <BR><BR>Inserir os dados e clicar no bot&atilde;o apropriado. Aproveite os dados j&aacute; inseridos para novas simula&ccedil;&otilde;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&ccedil;o &agrave; Vista:<input type="text" size="7" value="" name="Enter1" />______Entrada:<input type="text" value="" size="7" name="Enter2" />
______Presta&ccedil;&atilde;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>









Tópicos Relacionados Collapse


Tópicos com palavra-chave: JScript, Raiz equação





Ganhe $$$ escrevendo tutoriais para nós!