Está en la página 1de 2

ption Explicit

Sub Biseccion()

Dim A, B, g, m, t, v, fa, fb, Xr, fxr, error, dato As Double


Dim n, C As Integer

A = 10 ' Limite inferior


B = 20 ' Limite superior

g = 9.81 'Gravedad m/s


m = 68 ' Masa Kg
t = 10 ' Tiempo s
v = 40 ' Velocidad m/s

'Función de la raiz
fa = ((m * g) / A) * (1 - Exp(-t * A / m)) - v
fb = ((m * g) / B) * (1 - Exp(-t * B / m)) - v

n = 0 'Contador de iteraciones

If fa * fb < 0 Then
'Calcular Xr
2
Xr = (A + B) / 2
fxr = ((m * g) / Xr) * (1 - Exp(-t * Xr / m)) - v

If fa * fxr < 0 Then


'En este intervalo la raiz
error = Abs(((Xr - A) / Xr)) * 100
n = n + 1
Cells(n + 1, "J") = n
Cells(n + 1, "K") = Xr
Cells(n + 1, "L") = error

If error < 0.005 Then


GoTo 1
Else
B = Xr
GoTo 2
End If

Else

If error < 0.005 Then


GoTo 1
Else
A = Xr
GoTo 2
End If

End If

Else

MsgBox "El intervalo seleccionado no tiene la raíz"


End If

1 'Etiquetas

C = 2

dato = ambiental(A, B, C)
MsgBox "El valor es: " & dato

End Sub

También podría gustarte