Regla Falsa visual basic
description
Transcript of Regla Falsa visual basic
-
Reporte de Estancia #1 Proyecto: Regla Falsa
Alumno: Francisco Daniel Rodrguez Rodrguez Tutor: Dr. Jorge Oswaldo Gonzlez Garza
Garca, Nuevo Len, a 10 de Diciembre de 2014
-
Introduccin El mtodo de la regla falsa es un mtodo numrico que sirve para obtener la raz de una expresin algebraica por medio de iteraciones, lo cual lo vuelve sumamente tedioso, repetitivo y sumamente lento de realizar. El objetivo de este proyecto es realizar un programa en Excel que pueda realizar este mismo procedimiento pero de manera rpida y precisa. Este programa est diseado para detener las iteraciones por medio de una tolerancia de error, pero te da el nmero de iteraciones y dems valores en cada una de ellas. Justificacin Los mtodos numricos tales como la regla falsa, newton-raphson e interpolacin son muy repetitivos y tardados de realizar. Por lo que realizar un programa que facilite la resolucin de este tipo de problemas es esencial ya que en solo un problema uno se puede tardar una hora clase. Lo cual no es factible para un rpido aprendizaje. Desarrollo El programa se desarroll en Excel, porque, este programa est diseado para clculo lo cual facilitara la implementacin del programa. Primero se realiz un borrador en el cual se resolvi una expresin por mtodo tradicional para tener un punto de
comparacin y para realizar una grfica que nos indicara que puntos se podan usar para determinar la raz.
Despus se procede a realizarlo en una hoja de clculo nueva pero introduciendo macros para que se realizara el clculo
por medio de visual Basic y as hacer ms simple el clculo.
-
Se implementaron dos botones para el programa uno que hace el clculo de la raz y otro que limpia todas las celdas
implicadas en la operacin.
El botn calcular tiene el siguiente cdigo:
'**************************Regla Falsa**************************
Function fnf(x As Double) As Double
fnf =
End Function
Sub reemp()
Dim tex As String
tex = "fnf = " & Range("E4")
Application.VBE.CodePanes(5).CodeModule.ReplaceLine 3, tex
Call CALCULAR
End Sub
Sub CALCULAR()
If (Range("b6").Value = "" Or Range("b8").Value = "" Or Range("b4").Value = "" Or Range("e4").Value = "") Then
MsgBox ("Favor de llenar las casillas")
Else
Dim n As Integer
Dim ren As Integer
Dim a As Double
Dim b As Double
Dim fa As Double
Dim fb As Double
Dim far As Double
Dim xr As Double
Dim fxr As Double
Dim ep As Double
Dim ant As Double
n = 1
ren = 14
-
a = Range("b6").Value
b = Range("b8").Value
If (fnf(a) * fnf(b)) < 0 Then
ep = 100
While ep > Range("b4").Value
fa = fnf(a)
fb = fnf(b)
far = fnf(a) * fnf(xr)
xr = b - ((fnf(b) * (a - b)) / (fnf(a) - fnf(b)))
fxr = fnf(xr)
ep = Abs(((xr - ant) / xr) * 100)
Range("a" + Trim(Str(ren))).Value = n
Range("b" + Trim(Str(ren))).Value = a
Range("c" + Trim(Str(ren))).Value = b
Range("d" + Trim(Str(ren))).Value = fa
Range("e" + Trim(Str(ren))).Value = fb
Range("f" + Trim(Str(ren))).Value = far
Range("g" + Trim(Str(ren))).Value = xr
Range("h" + Trim(Str(ren))).Value = fxr
If ren 14 Then
Range("i" + Trim(Str(ren))).Value = ep
End If
If ((fnf(a) * fnf(xr)) < 0) Then
b = xr
Else
a = xr
End If
ant = xr
ren = ren + 1
n = n + 1
Wend
Range("b10").Value = xr
-
Range("a" + Trim(Str(ren))).Value = "FIN"
Else
MsgBox ("No existen raices en el intervalo")
End If
End If
End Sub
Y el botn limpiar tiene el siguiente cdigo
Sub borrar()
'**************************Procedimiento de borrado**************************
Range("a14:i29").ClearContents
Range("b4").Value = ""
Range("b6").Value = ""
Range("b8").Value = ""
Range("b10").Value = ""
Range("e4").Value = ""
End Sub
Conclusiones:
El programa funciono tal y como se esperaba dando aviso de cuando no haba races en el intervalo y de cuando faltaban
datos para el clculo. Los resultados brindados tienen un rango de error minimos a los obtenidos por el mtodo
tradicional.
Este programa agilizara la obtencin de races por medio de la regla falsa, haciendo ms fcil y menos tediosas estas
clases.