Regla Falsa visual basic

5
Reporte de Estancia #1 Proyecto: Regla Falsa Alumno: Francisco Daniel Rodríguez Rodríguez Tutor: Dr. Jorge Oswaldo González Garza García, Nuevo León, a 10 de Diciembre de 2014

description

reporte de un programa realizado en visual basic para resolver raiz por el metodo de la regla falsa

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.