[ Foro de Pascal ]

Metodo para resolver ecuaciones cubicas en VBA excel

06-Nov-2018 20:06
Invitado (winie)
0 Respuestas

Buenas tardes, amigos. Tengo el siguiente código con el que quiero crear una funcion en VBA con la que conocidos a,b y c (en celdas) de una ecuación cubica de la siguiente forma: z ^3+az ^2+bz+c=0 me halle sus respectivas raices y me las escriba. El problema es que el codigo me da error diciendo que no he definido el sub o función y la verdad es que no entiendo por que? Ayudaa por fa y tambien como haria en el caso del condicional 2 para que si me va a dar en resultado de esas 3 raices me las coloque en las casillas que yo deseara. :)




Function Cardano(a As Double, b As Double, c As Double) As Double

Dim Q, R, tita, z1, z2, z3, AA, BB, zz As Double

 'calculos
 Q = ((a ^ 2) - 3 * b) / 9
 R = (2 * (a ^ 3) - 9 * a * b + 27 * c) / 54
 
'Uso de if.
If (R ^ 2 < Q ^ 3) Then
tita = Acos(R / RCUAD(Q ^ 3))
z1 = -2 * RCUAD(Q) * Cos(tita / 3) - a / 3
z2 = -2 * RCUAD(Q) * Cos((tita + 2 * Pi) / 3) - a / 3
z3 = -2 * RCUAD(Q) * Cos((tita - 2 * Pi) / 3) - a / 3

End If

If R ^ 2 > Q ^ 3 Then
AA = -Sign(R) * (Abs(R) + RCUAD(R ^ 2 - Q ^ 3)) ^ (1 / 3)
 If AA = 0 Then BB = 0
   ElseIf (AA < 0 Or AA > 0) Then BB = Q / AA
 End If
 zz = (AA + BB) - a / 3
End If



End Function




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)