hola amigos hize este codigo...pero no me sirve bien..primero era el problema q colocar dos textbox para capturar los dos intervalos a y b...para la uan ecuacion...siempre q ejecuto el programa me sirve si coloco a=0 y b= cualquier numero...pero cuando digito 0.5 o 1 o 2 ya halli no sirve ..les paso el codigo para q me ayuden con a ver q tengo malo...yo lo q quiero es siemple tengo tres mi ecuacion... tengo mis dos textbox.. a y b...y un textbox resultado...boton ejecutar, limpiar y salir...quiero poder meter cualquier intervalo q sea raiz...para esa ecuacion q muestro en el siguiente codigo..por cierto no quiero q a y b sean constantes los intervalos tiene q variar pa q el programa pueda servir ... les agradesco cualquier ayuda q me den porfavor enviarla a mi correo
jairj02@yahoo.es... se los sgradesco y disculpen ... les agradesco su atencion
Option Explicit
Dim a, b As Double
Dim TOL As Double
Dim res As Double
Dim N As Integer
Function f(ByVal x As Double) As Double
f = x - (2 ^ (-x))
End Function
Sub Biseccion(ByVal a As Double, ByVal b As Double, ByVal TOL As Double, _
ByVal N As Integer, ByRef res As Double)
Dim p, fa, fp As Double
Dim i As Integer
Dim Flag As Boolean
i = 1
fa = f(a)
Flag = False
Do While (i <= N) And Not (Flag)
p = a + (b - a) / 2
fp = f(p)
If fp = 0 Or (b - a) / 2 < TOL Then
res = p
Flag = True
End If
i = i + 1
If fa * fp > 0 Then
a = p
fa = fp
Else
b = p
End If
Loop
If Not Flag Then
MsgBox "El método fracaso por exceder el numero de iteraciones", vbExclamation, "Bisección"
End If
End Sub
Private Sub cmdEjecutar_Click()
Call Biseccion(text1.Text, Text2.Text, TOL, N, res)
txtr.Text = res
End Sub
Private Sub Command1_Click()
txtr.Text = ""
text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Form_Load()
text1.Text = ""
Text2.Text = ""
TOL = 0.001
N = 20
End Sub
Private Sub cmdSalir_Click()
Unload Me
End Sub