Derivación por diferencias divididas y por fórmulas de alta precisión en Visual Basic 2005 (página 5)
Enviado por jaimemontoya
.set_TextMatrix(2, 0, "a-4h")
.set_TextMatrix(3, 0, "a-3h")
.set_TextMatrix(4, 0, "a-2h")
.set_TextMatrix(5, 0, "a-h")
.set_TextMatrix(6, 0, "a")
'Se le ponen los respectivos títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
.set_TextMatrix(0, 5, "f'''(x)")
.set_TextMatrix(0, 6, "f''''(x)")
.set_TextMatrix(0, 7, "f'''''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas10(1, 1)), 10)) 'Imprime el valor de "a-5h"(con 10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas10(2, 1)), 10)) 'Imprime el valor de "a-4h" (con 10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas10(3, 1)), 10)) 'Imprime el valor de "a-3h" (con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas10(4, 1)), 10)) 'Imprime el valor de "a-2h" (con 10 decimales).
.set_TextMatrix(5, 1, Math.Round(Val(tablas10(5, 1)), 10)) 'Imprime el valor de "a-h" (con 10 decimales).
.set_TextMatrix(6, 1, Math.Round(Val(tablas10(6, 1)), 10)) 'Imprime el valor de "a" (con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas10(1, 2)), 10)) 'Imprime el valor de "f(a-5h)" (con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas10(2, 2)), 10)) 'Imprime el valor de "f(a-4h)" (con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas10(3, 2)), 10)) 'Imprime el valor de "f(a-3h)" (con 10 decimales).
.set_TextMatrix(4, 2, Math.Round(Val(tablas10(4, 2)), 10)) 'Imprime el valor de "f(a-2h)" (con 10 decimales).
.set_TextMatrix(5, 2, Math.Round(Val(tablas10(5, 2)), 10)) 'Imprime el valor de "f(a-h)" (con 10 decimales).
.set_TextMatrix(6, 2, Math.Round(Val(tablas10(6, 2)), 10)) 'Imprime el valor de "f(a)" (con 10 decimales).
.set_TextMatrix(1, 3, Math.Round(Val(tablas10(1, 3)), 10)) 'Imprime el valor de "(f(a-4h)-f(a-5h))/h"="f'(a-4h)" (con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas10(2, 3)), 10)) 'Imprime el valor de "(f(a-3h)-f(a-4h))/h"="f'(a-3h)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas10(3, 3)), 10)) 'Imprime el valor de "(f(a-2h)-f(a-3h))/h"="f'(a-2h)" (con 10 decimales).
.set_TextMatrix(4, 3, Math.Round(Val(tablas10(4, 3)), 10)) 'Imprime el valor de "(f(a-h)-f(a-2h))/h"="f'(a-h)" (con 10 decimales).
.set_TextMatrix(5, 3, Math.Round(Val(tablas10(5, 3)), 10)) 'Imprime el valor de "(f(a)-f(a-h))/h"="f'(a)" (con 10 decimales).
.set_TextMatrix(1, 4, Math.Round(Val(tablas10(1, 4)), 10)) 'Imprime el valor de "(f'(a-3h)-f'(a-4h))/h"="f''(a-3h)" (con 10 decimales).
.set_TextMatrix(2, 4, Math.Round(Val(tablas10(2, 4)), 10)) 'Imprime el valor de "(f'(a-2h)-f'(a-3h))/h"="f''(a-2h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas10(3, 4)), 10)) 'Imprime el valor de "(f'(a-h)-f(a-2h))/h"="f''(a-h)" (con 10 decimales).
.set_TextMatrix(4, 4, Math.Round(Val(tablas10(4, 4)), 10)) 'Imprime el valor de "(f'(a)-f'(a-h))/h"="f''(a)" (con 10 decimales).
.set_TextMatrix(1, 5, Math.Round(Val(tablas10(1, 5)), 10)) 'Imprime el valor de "(f''(a-2h)-f''(a-3h))/h"="f'''(a-2h)" (con 10 decimales).
.set_TextMatrix(2, 5, Math.Round(Val(tablas10(2, 5)), 10)) 'Imprime el valor de "(f''(a-h)-f''(a-2h))/h"="f'''(a-h)" (con 10 decimales).
.set_TextMatrix(3, 5, Math.Round(Val(tablas10(3, 5)), 10)) 'Imprime el valor de "(f''(a)-f''(a-h))/h"="f'''(a)" (con 10 decimales).
.set_TextMatrix(1, 6, Math.Round(Val(tablas10(1, 6)), 10)) 'Imprime el valor de "(f'''(a-h)-f'''(a-2h))/h"="f''''(a-h)" (con 10 decimales).
.set_TextMatrix(2, 6, Math.Round(Val(tablas10(2, 6)), 10)) 'Imprime el valor de "(f(a)-f(a-h))/h"="f''''(a)" (con 10 decimales).
.set_TextMatrix(1, 7, Math.Round(Val(tablas10(1, 7)), 10)) 'Imprime el valor de "(f''''(a)-f''''(a-h))/h"="f'''''(a)" (con 10 decimales).
End With
TextBox5.Text = "quinta" 'Imprime el orden de la derivada.
TextBox6.Text = tablas10(1, 7) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 11. PRIMERA DERIVADA POR TABLAS DE DIFERENCIAS DIVIDIDAS CENTRADAS.
If (ComboBox1.SelectedItem = "Tablas de Diferencias Divididas Centradas") And (ComboBox2.SelectedItem = "1ra. derivada") Then
Dim i, j As Integer '"i" significará "fila" y "j" significará columna, de modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 4 'Establece 4 filas.
AxMSFlexGrid1.Cols = 4 'Establece 4 columnas.
'Se crea una nueva instancia de la clase Evaluador.
Dim mEval As New Evaluador()
'Se crea una variable tipo string y se le asigna la expresión que se quiere evaluar.
Dim mExpresion As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se le agregan los parámetros de entrada que usará el método eval.
Dim mParameters As New StringCollection()
mParameters.Add("ByVal X as Double")
'Las funciones a utilizar pertenece al espacio de nombres System.Math.
'se hace necesario entonces, crear un objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces As New StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método PrecompilarFunción y se verifica si se generó correctamente el assembly.
If mEval.PrecompilarAssembly(mExpresion, mParameters, mNameSpaces) Then
'Si el assembly se generó correctamente, se crea un array con los valores de los parametros a evaluar.
'Se invoca el método Evaluar y se asignan los resultados correspondientes.
'Se limpian todas las celdas para que no queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
For fila As Integer = 0 To .Rows – 1
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por estar dentro de los For anidados, con esto se ponen valores String Empty en todas las celdas, de modo que no aparezca nada y queden todas las celdas limpias y sin resultados de cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los cálculos.
tablas11(1, 1) = Val(TextBox2.Text) – Val(TextBox3.Text) 'Almacena "a-h".
tablas11(2, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas11(3, 1) = Val(TextBox2.Text) + Val(TextBox3.Text) 'Almacena "a+h".
tablas11(1, 2) = mEval.Evaluar(Val(tablas11(1, 1))) 'Almacena "f(a-h)".
tablas11(2, 2) = mEval.Evaluar(Val(tablas11(2, 1))) 'Almacena "f(a)".
tablas11(3, 2) = mEval.Evaluar(Val(tablas11(3, 1))) 'Almacena "f(a+h)".
tablas11(2, 3) = (Val(tablas11(3, 2)) – Val(tablas11(1, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+h)-f(a-h))/2h"="f'(a)".
'Para indicar que se realizarán operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su nombre.
'De aquí en adelante vienen las impresiones de los valores en las celdas correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a azul.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
.AllowUserResizing = MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth 'Determina que el usuario puede modificar el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de fondo a todas las celdas.
Dim Color1 As Color = Color.LightGoldenrodYellow 'Amarillo suave.
For fila As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y no de 0.
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de 1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de todas las celdas a LighYellow (amarillo suave), pues la variable Color1 fue inicializada anteriormente con el valor de "Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a cada columna.
Next
End With
Next
'Establece la alineación del contenido de la columna 0
.set_ColAlignment(0, MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos títulos a cada fila.
'La sintaxis dentro del paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a-h")
.set_TextMatrix(2, 0, "a")
.set_TextMatrix(3, 0, "a+h")
'Se le ponen los respectivos títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas11(1, 1)), 10)) 'Imprime el valor de "a-h" (con 10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas11(2, 1)), 10)) 'Imprime el valor de "a" (con 10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas11(3, 1)), 10)) 'Imprime el valor de "a+h" (con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas11(1, 2)), 10)) 'Imprime el valor de "f(a-h)" (con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas11(2, 2)), 10)) 'Imprime el valor de "f(a)" (con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas11(3, 2)), 10)) 'Imprime el valor de "f(a+h)" (con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas11(2, 3)), 10)) 'Imprime el valor de "(f(a+h)-f(a-h))/2h"="f'(a)" (con 10 decimales).
End With
TextBox5.Text = "primera" 'Imprime el orden de la derivada.
TextBox6.Text = tablas11(2, 3) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 12. SEGUNDA DERIVADA POR TABLAS DE DIFERENCIAS DIVIDIDAS CENTRADAS.
If (ComboBox1.SelectedItem = "Tablas de Diferencias Divididas Centradas") And (ComboBox2.SelectedItem = "2da. derivada") Then
Dim i, j As Integer '"i" significará "fila" y "j" significará columna, de modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 6 'Establece 6 filas.
AxMSFlexGrid1.Cols = 5 'Establece 5 columnas.
'Se crea una nueva instancia de la clase Evaluador.
Dim mEval As New Evaluador()
'Se crea una variable tipo string y se le asigna la expresión que se quiere evaluar.
Dim mExpresion As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se le agregan los parámetros de entrada que usará el método eval.
Dim mParameters As New StringCollection()
mParameters.Add("ByVal X as Double")
'Las funciones a utilizar pertenece al espacio de nombres System.Math.
'se hace necesario entonces, crear un objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces As New StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método PrecompilarFunción y se verifica si se generó correctamente el assembly.
If mEval.PrecompilarAssembly(mExpresion, mParameters, mNameSpaces) Then
'Si el assembly se generó correctamente, se crea un array con los valores de los parametros a evaluar.
'Se invoca el método Evaluar y se asignan los resultados correspondientes.
'Se limpian todas las celdas para que no queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
For fila As Integer = 0 To .Rows – 1
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por estar dentro de los For anidados, con esto se ponen valores String Empty en todas las celdas, de modo que no aparezca nada y queden todas las celdas limpias y sin resultados de cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los cálculos.
tablas12(1, 1) = Val(TextBox2.Text) – (2 * (Val(TextBox3.Text))) 'Almacena "a-2h".
tablas12(2, 1) = Val(TextBox2.Text) – Val(TextBox3.Text) 'Almacena "a-h".
tablas12(3, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas12(4, 1) = Val(TextBox2.Text) + Val(TextBox3.Text) 'Almacena "a+h".
tablas12(5, 1) = Val(TextBox2.Text) + (2 * (Val(TextBox3.Text))) 'Almacena "a+2h".
tablas12(1, 2) = mEval.Evaluar(Val(tablas12(1, 1))) 'Almacena "f(a-2h)".
tablas12(2, 2) = mEval.Evaluar(Val(tablas12(2, 1))) 'Almacena "f(a-h)".
tablas12(3, 2) = mEval.Evaluar(Val(tablas12(3, 1))) 'Almacena "f(a)".
tablas12(4, 2) = mEval.Evaluar(Val(tablas12(4, 1))) 'Almacena "f(a+h)".
tablas12(5, 2) = mEval.Evaluar(Val(tablas12(5, 1))) 'Almacena "f(a+2h)".
tablas12(2, 3) = (Val(tablas12(3, 2)) – Val(tablas12(1, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a)-f(a-2h))/2h"="f'(a-h)".
tablas12(3, 3) = (Val(tablas12(4, 2)) – Val(tablas12(2, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+h)-f(a-h))/2h"="f'(a)".
tablas12(4, 3) = (Val(tablas12(5, 2)) – Val(tablas12(3, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+2h)-f(a))/2h"="f'(a+h)".
tablas12(3, 4) = (Val(tablas12(4, 3)) – Val(tablas12(2, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a+h)-f'(a-h))/2h"="f''(a)".
'Para indicar que se realizarán operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su nombre.
'De aquí en adelante vienen las impresiones de los valores en las celdas correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a azul.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
.AllowUserResizing = MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth 'Determina que el usuario puede modificar el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de fondo a todas las celdas.
Dim Color1 As Color = Color.LightGoldenrodYellow 'Amarillo suave.
For fila As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y no de 0.
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de 1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de todas las celdas a LighYellow (amarillo suave), pues la variable Color1 fue inicializada anteriormente con el valor de "Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a cada columna.
Next
End With
Next
'Establece la alineación del contenido de la columna 0
.set_ColAlignment(0, MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos títulos a cada fila.
'La sintaxis dentro del paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a-2h")
.set_TextMatrix(2, 0, "a-h")
.set_TextMatrix(3, 0, "a")
.set_TextMatrix(4, 0, "a+h")
.set_TextMatrix(5, 0, "a+2h")
'Se le ponen los respectivos títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas12(1, 1)), 10)) 'Imprime el valor de "a-2h" (con 10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas12(2, 1)), 10)) 'Imprime el valor de "a-h" (con 10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas12(3, 1)), 10)) 'Imprime el valor de "a" (con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas12(4, 1)), 10)) 'Imprime el valor de "a+h" (con 10 decimales).
.set_TextMatrix(5, 1, Math.Round(Val(tablas12(5, 1)), 10)) 'Imprime el valor de "a+2h" (con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas12(1, 2)), 10)) 'Imprime el valor de "f(a-2h)" (con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas12(2, 2)), 10)) 'Imprime el valor de "f(a-h)" (con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas12(3, 2)), 10)) 'Imprime el valor de "f(a)" (con 10 decimales).
.set_TextMatrix(4, 2, Math.Round(Val(tablas12(4, 2)), 10)) 'Imprime el valor de "f(a+h)" (con 10 decimales).
.set_TextMatrix(5, 2, Math.Round(Val(tablas12(5, 2)), 10)) 'Imprime el valor de "f(a+2h)" (con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas12(2, 3)), 10)) 'Imprime el valor de "(f(a)-f(a-2h))/2h"="f'(a-h)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas12(3, 3)), 10)) 'Imprime el valor de "(f(a+h)-f(a-h))/2h"="f'(a)" (con 10 decimales).
.set_TextMatrix(4, 3, Math.Round(Val(tablas12(4, 3)), 10)) 'Imprime el valor de "(f(a+2h)-f(a))/2h"="f'(a+h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas12(3, 4)), 10)) 'Imprime el valor de "(f'(a+h)-f'(a-h))/2h"="f''(a)" (con 10 decimales).
End With
TextBox5.Text = "segunda" 'Imprime el orden de la derivada.
TextBox6.Text = tablas12(3, 4) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 13. TERCERA DERIVADA POR TABLAS DE DIFERENCIAS DIVIDIDAS CENTRADAS.
If (ComboBox1.SelectedItem = "Tablas de Diferencias Divididas Centradas") And (ComboBox2.SelectedItem = "3ra. derivada") Then
Dim i, j As Integer '"i" significará "fila" y "j" significará columna, de modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 8 'Establece 8 filas.
AxMSFlexGrid1.Cols = 6 'Establece 6 columnas.
'Se crea una nueva instancia de la clase Evaluador.
Dim mEval As New Evaluador()
'Se crea una variable tipo string y se le asigna la expresión que se quiere evaluar.
Dim mExpresion As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se le agregan los parámetros de entrada que usará el método eval.
Dim mParameters As New StringCollection()
mParameters.Add("ByVal X as Double")
'Las funciones a utilizar pertenece al espacio de nombres System.Math.
'se hace necesario entonces, crear un objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces As New StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método PrecompilarFunción y se verifica si se generó correctamente el assembly.
If mEval.PrecompilarAssembly(mExpresion, mParameters, mNameSpaces) Then
'Si el assembly se generó correctamente, se crea un array con los valores de los parametros a evaluar.
'Se invoca el método Evaluar y se asignan los resultados correspondientes.
'Se limpian todas las celdas para que no queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
For fila As Integer = 0 To .Rows – 1
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por estar dentro de los For anidados, con esto se ponen valores String Empty en todas las celdas, de modo que no aparezca nada y queden todas las celdas limpias y sin resultados de cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los cálculos.
tablas13(1, 1) = Val(TextBox2.Text) – (3 * (Val(TextBox3.Text))) 'Almacena "a-3h".
tablas13(2, 1) = Val(TextBox2.Text) – (2 * (Val(TextBox3.Text))) 'Almacena "a-2h".
tablas13(3, 1) = Val(TextBox2.Text) – Val(TextBox3.Text) 'Almacena "a-h".
tablas13(4, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas13(5, 1) = Val(TextBox2.Text) + Val(TextBox3.Text) 'Almacena "a+h".
tablas13(6, 1) = Val(TextBox2.Text) + (2 * (Val(TextBox3.Text))) 'Almacena "a+2h".
tablas13(7, 1) = Val(TextBox2.Text) + (3 * (Val(TextBox3.Text))) 'Almacena "a+3h".
tablas13(1, 2) = mEval.Evaluar(Val(tablas13(1, 1))) 'Almacena "f(a-3h)".
tablas13(2, 2) = mEval.Evaluar(Val(tablas13(2, 1))) 'Almacena "f(a-2h)".
tablas13(3, 2) = mEval.Evaluar(Val(tablas13(3, 1))) 'Almacena "f(a-h)".
tablas13(4, 2) = mEval.Evaluar(Val(tablas13(4, 1))) 'Almacena "f(a)".
tablas13(5, 2) = mEval.Evaluar(Val(tablas13(5, 1))) 'Almacena "f(a+h)".
tablas13(6, 2) = mEval.Evaluar(Val(tablas13(6, 1))) 'Almacena "f(a+2h)".
tablas13(7, 2) = mEval.Evaluar(Val(tablas13(7, 1))) 'Almacena "f(a+3h)".
tablas13(2, 3) = (Val(tablas13(3, 2)) – Val(tablas13(1, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a-h)-f(a-3h))/2h"="f'(a-2h)".
tablas13(3, 3) = (Val(tablas13(4, 2)) – Val(tablas13(2, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a)-f(a-2h))/2h"="f'(a-h)".
tablas13(4, 3) = (Val(tablas13(5, 2)) – Val(tablas13(3, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+h)-f(a-h))/2h"="f'(a)".
tablas13(5, 3) = (Val(tablas13(6, 2)) – Val(tablas13(4, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+2h)-f(a))/2h"="f'(a+h)".
tablas13(6, 3) = (Val(tablas13(7, 2)) – Val(tablas13(5, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+3h)-f(a+h))/2h"="f'(a+2h)".
tablas13(3, 4) = (Val(tablas13(4, 3)) – Val(tablas13(2, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a)-f'(a-2h))/2h"="f''(a-h)".
tablas13(4, 4) = (Val(tablas13(5, 3)) – Val(tablas13(3, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a+h)-f'(a-h))/2h"="f''(a)".
tablas13(5, 4) = (Val(tablas13(6, 3)) – Val(tablas13(4, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a+2h)-f'(a))/2h"="f''(a+h)".
tablas13(4, 5) = (Val(tablas13(5, 4)) – Val(tablas13(3, 4))) / (2 * Val(TextBox3.Text)) 'Almacena "(f''(a+h)-f''(a-h))/2h"="f'''(a)".
'Para indicar que se realizarán operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su nombre.
'De aquí en adelante vienen las impresiones de los valores en las celdas correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a azul.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
.AllowUserResizing = MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth 'Determina que el usuario puede modificar el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de fondo a todas las celdas.
Dim Color1 As Color = Color.LightGoldenrodYellow 'Amarillo suave.
For fila As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y no de 0.
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de 1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de todas las celdas a LighYellow (amarillo suave), pues la variable Color1 fue inicializada anteriormente con el valor de "Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a cada columna.
Next
End With
Next
'Establece la alineación del contenido de la columna 0
.set_ColAlignment(0, MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos títulos a cada fila.
'La sintaxis dentro del paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a-3h")
.set_TextMatrix(2, 0, "a-2h")
.set_TextMatrix(3, 0, "a-h")
.set_TextMatrix(4, 0, "a")
.set_TextMatrix(5, 0, "a+h")
.set_TextMatrix(6, 0, "a+2h")
.set_TextMatrix(7, 0, "a+3h")
'Se le ponen los respectivos títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
.set_TextMatrix(0, 5, "f'''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas13(1, 1)), 10)) 'Imprime el valor de "a-3h" (con 10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas13(2, 1)), 10)) 'Imprime el valor de "a-2h" (con 10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas13(3, 1)), 10)) 'Imprime el valor de "a-h" (con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas13(4, 1)), 10)) 'Imprime el valor de "a" (con 10 decimales).
.set_TextMatrix(5, 1, Math.Round(Val(tablas13(5, 1)), 10)) 'Imprime el valor de "a+h" (con 10 decimales).
.set_TextMatrix(6, 1, Math.Round(Val(tablas13(6, 1)), 10)) 'Imprime el valor de "a+2h" (con 10 decimales).
.set_TextMatrix(7, 1, Math.Round(Val(tablas13(7, 1)), 10)) 'Imprime el valor de "a+3h" (con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas13(1, 2)), 10)) 'Imprime el valor de "f(a-3h" (con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas13(2, 2)), 10)) 'Imprime el valor de "f(a-2h)" (con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas13(3, 2)), 10)) 'Imprime el valor de "f(a-h)" (con 10 decimales).
.set_TextMatrix(4, 2, Math.Round(Val(tablas13(4, 2)), 10)) 'Imprime el valor de "f(a)" (con 10 decimales).
.set_TextMatrix(5, 2, Math.Round(Val(tablas13(5, 2)), 10)) 'Imprime el valor de "f(a+h)" (con 10 decimales).
.set_TextMatrix(6, 2, Math.Round(Val(tablas13(6, 2)), 10)) 'Imprime el valor de "f(a+2h)" (con 10 decimales).
.set_TextMatrix(7, 2, Math.Round(Val(tablas13(7, 1)), 10)) 'Imprime el valor de "f(a+3h)" (con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas13(2, 3)), 10)) 'Imprime el valor de "(f(a-h)-f(a-3h))/2h"="f'(a-2h)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas13(3, 3)), 10)) 'Imprime el valor de "(f(a)-f(a-2h))/2h"="f'(a-h)" (con 10 decimales).
.set_TextMatrix(4, 3, Math.Round(Val(tablas13(4, 3)), 10)) 'Imprime el valor de "(f(a+h)-f(a-h))/2h"="f'(a)" (con 10 decimales).
.set_TextMatrix(5, 3, Math.Round(Val(tablas13(5, 3)), 10)) 'Imprime el valor de "(f(a+2h)-f(a))/2h"="f'(a+h)" (con 10 decimales).
.set_TextMatrix(6, 3, Math.Round(Val(tablas13(6, 3)), 10)) 'Imprime el valor de "(f(a+3h)-f(a+h))/2h"="f'(a+2h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas13(3, 4)), 10)) 'Imprime el valor de "(f'(a)-f'(a-2h))/2h"="f''(a-h)" (con 10 decimales).
.set_TextMatrix(4, 4, Math.Round(Val(tablas13(4, 4)), 10)) 'Imprime el valor de "(f'(a+h)-f'(a-h))/2h"="f''(a)" (con 10 decimales).
.set_TextMatrix(5, 4, Math.Round(Val(tablas13(5, 4)), 10)) 'Imprime el valor de "(f'(a+2h)-f'(a))/2h"="f''(a+h)" (con 10 decimales).
.set_TextMatrix(4, 5, Math.Round(Val(tablas13(4, 5)), 10)) 'Imprime el valor de "(f''(a+h)-f''(a-h))/2h"="f'''(a)" (con 10 decimales).
End With
TextBox5.Text = "tercera" 'Imprime el orden de la derivada.
TextBox6.Text = tablas13(4, 5) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 14. CUARTA DERIVADA POR TABLAS DE DIFERENCIAS DIVIDIDAS CENTRADAS.
If (ComboBox1.SelectedItem = "Tablas de Diferencias Divididas Centradas") And (ComboBox2.SelectedItem = "4ta. derivada") Then
Dim i, j As Integer '"i" significará "fila" y "j" significará columna, de modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 10 'Establece 10 filas.
AxMSFlexGrid1.Cols = 7 'Establece 7 columnas.
'Se crea una nueva instancia de la clase Evaluador.
Dim mEval As New Evaluador()
'Se crea una variable tipo string y se le asigna la expresión que se quiere evaluar.
Dim mExpresion As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se le agregan los parámetros de entrada que usará el método eval.
Dim mParameters As New StringCollection()
mParameters.Add("ByVal X as Double")
'Las funciones a utilizar pertenece al espacio de nombres System.Math.
'se hace necesario entonces, crear un objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces As New StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método PrecompilarFunción y se verifica si se generó correctamente el assembly.
If mEval.PrecompilarAssembly(mExpresion, mParameters, mNameSpaces) Then
'Si el assembly se generó correctamente, se crea un array con los valores de los parametros a evaluar.
'Se invoca el método Evaluar y se asignan los resultados correspondientes.
'Se limpian todas las celdas para que no queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
For fila As Integer = 0 To .Rows – 1
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por estar dentro de los For anidados, con esto se ponen valores String Empty en todas las celdas, de modo que no aparezca nada y queden todas las celdas limpias y sin resultados de cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los cálculos.
tablas14(1, 1) = Val(TextBox2.Text) – (4 * (Val(TextBox3.Text))) 'Almacena "a-4h".
tablas14(2, 1) = Val(TextBox2.Text) – (3 * (Val(TextBox3.Text))) 'Almacena "a-3h".
tablas14(3, 1) = Val(TextBox2.Text) – (2 * (Val(TextBox3.Text))) 'Almacena "a-2h".
tablas14(4, 1) = Val(TextBox2.Text) – Val(TextBox3.Text) 'Almacena "a-h".
tablas14(5, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas14(6, 1) = Val(TextBox2.Text) + Val(TextBox3.Text) 'Almacena "a+h".
tablas14(7, 1) = Val(TextBox2.Text) + (2 * (Val(TextBox3.Text))) 'Almacena "a+2h".
tablas14(8, 1) = Val(TextBox2.Text) + (3 * (Val(TextBox3.Text))) 'Almacena "a+3h".
tablas14(9, 1) = Val(TextBox2.Text) + (4 * (Val(TextBox3.Text))) 'Almacena "a+4h".
tablas14(1, 2) = mEval.Evaluar(Val(tablas14(1, 1))) 'Almacena "f(a-4h)".
tablas14(2, 2) = mEval.Evaluar(Val(tablas14(2, 1))) 'Almacena "f(a-3h)".
tablas14(3, 2) = mEval.Evaluar(Val(tablas14(3, 1))) 'Almacena "f(a-2h)".
tablas14(4, 2) = mEval.Evaluar(Val(tablas14(4, 1))) 'Almacena "f(a-h)".
tablas14(5, 2) = mEval.Evaluar(Val(tablas14(5, 1))) 'Almacena "f(a)".
tablas14(6, 2) = mEval.Evaluar(Val(tablas14(6, 1))) 'Almacena "f(a+h)".
tablas14(7, 2) = mEval.Evaluar(Val(tablas14(7, 1))) 'Almacena "f(a+2h)".
tablas14(8, 2) = mEval.Evaluar(Val(tablas14(8, 1))) 'Almacena "f(a+3h)".
tablas14(9, 2) = mEval.Evaluar(Val(tablas14(9, 1))) 'Almacena "f(a+4h)".
tablas14(2, 3) = (Val(tablas14(3, 2)) – Val(tablas14(1, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a-2h)-f(a-4h))/h"="f'(a-3h)".
tablas14(3, 3) = (Val(tablas14(4, 2)) – Val(tablas14(2, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a-h)-f(a-3h))/h"="f'(a-2h)".
tablas14(4, 3) = (Val(tablas14(5, 2)) – Val(tablas14(3, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a)-f(a-2h))/h"="f'(a-h)".
tablas14(5, 3) = (Val(tablas14(6, 2)) – Val(tablas14(4, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+h)-f(a-h))/h"="f'(a)".
tablas14(6, 3) = (Val(tablas14(7, 2)) – Val(tablas14(5, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+2h)-f(a))/h"="f'(a+h)".
tablas14(7, 3) = (Val(tablas14(8, 2)) – Val(tablas14(6, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+3h)-f(a+h))/h"="f'(a+2h)".
tablas14(8, 3) = (Val(tablas14(9, 2)) – Val(tablas14(7, 2))) / (2 * Val(TextBox3.Text)) 'Almacena "(f(a+4h)-f(a+2h))/h"="f'(a+3h)".
tablas14(3, 4) = (Val(tablas14(4, 3)) – Val(tablas14(2, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a-h)-f'(a-3h))/h"="f''(a-2h)".
tablas14(4, 4) = (Val(tablas14(5, 3)) – Val(tablas14(3, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a)-f'(a-2h))/h"="f''(a-h)".
tablas14(5, 4) = (Val(tablas14(6, 3)) – Val(tablas14(4, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a+h)-f'(a-h))/h"="f''(a)".
tablas14(6, 4) = (Val(tablas14(7, 3)) – Val(tablas14(5, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a+2h)-f'(a))/h"="f''(a+h)".
tablas14(7, 4) = (Val(tablas14(8, 3)) – Val(tablas14(6, 3))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'(a+3h)-f'(a+h))/h"="f''(a+2h)".
tablas14(4, 5) = (Val(tablas14(5, 4)) – Val(tablas14(3, 4))) / (2 * Val(TextBox3.Text)) 'Almacena "(f''(a)-f''(a-2h))/h"="f'''(a-h)".
tablas14(5, 5) = (Val(tablas14(6, 4)) – Val(tablas14(4, 4))) / (2 * Val(TextBox3.Text)) 'Almacena "(f''(a+h)-f''(a-h))/h"="f'''(a)"
tablas14(6, 5) = (Val(tablas14(7, 4)) – Val(tablas14(5, 4))) / (2 * Val(TextBox3.Text)) 'Almacena "(f''(a+2h)-f''(a))/h"="f'''(a+h)".
tablas14(5, 6) = (Val(tablas14(6, 5)) – Val(tablas14(4, 5))) / (2 * Val(TextBox3.Text)) 'Almacena "(f'''(a+h)-f'''(a-h))/h"="f''''(a)".
'Para indicar que se realizarán operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su nombre.
'De aquí en adelante vienen las impresiones de los valores en las celdas correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a azul.
With AxMSFlexGrid1 'Para no estar poniendo por ejemplo AxMSFlexGrid1.set_ColWidth(1, 500) y así sucesivamente, no estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el "With" hasta el "End With" solamente deben estarse mandando a imprimir valores a cada una de las celdas, y no estar haciendo cálculos con condiciones If ni nada de eso dentro del "With", pues todos los cálculos y condiciones deben hacerse afuera y venir a esta sección del "With" única y exclusivamente a hacer impresiones.
.AllowUserResizing = MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth 'Determina que el usuario puede modificar el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de fondo a todas las celdas.
Dim Color1 As Color = Color.LightGoldenrodYellow 'Amarillo suave.
For fila As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y no de 0.
With AxMSFlexGrid1
.Row = fila
For columna As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de 1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de todas las celdas a LighYellow (amarillo suave), pues la variable Color1 fue inicializada anteriormente con el valor de "Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a cada columna.
Next
End With
Next
'Establece la alineación del contenido de la columna 0
.set_ColAlignment(0, MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos títulos a cada fila.
'La sintaxis dentro del paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a-4h")
.set_TextMatrix(2, 0, "a-3h")
.set_TextMatrix(3, 0, "a-2h")
.set_TextMatrix(4, 0, "a-h")
.set_TextMatrix(5, 0, "a")
.set_TextMatrix(6, 0, "a+h")
.set_TextMatrix(7, 0, "a+2h")
.set_TextMatrix(8, 0, "a+3h")
.set_TextMatrix(9, 0, "a+4h")
'Se le ponen los respectivos títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
.set_TextMatrix(0, 5, "f'''(x)")
.set_TextMatrix(0, 6, "f''''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas14(1, 1)), 10)) 'Imprime el valor de "a-4h" (con 10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas14(2, 1)), 10)) 'Imprime el valor de "a-3h" (con 10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas14(3, 1)), 10)) 'Imprime el valor de "a-2h" (con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas14(4, 1)), 10)) 'Imprime el valor de "a-h" (con 10 decimales).
.set_TextMatrix(5, 1, Math.Round(Val(tablas14(5, 1)), 10)) 'Imprime el valor de "a" (con 10 decimales).
.set_TextMatrix(6, 1, Math.Round(Val(tablas14(6, 1)), 10)) 'Imprime el valor de "a+h" (con 10 decimales).
.set_TextMatrix(7, 1, Math.Round(Val(tablas14(7, 1)), 10)) 'Imprime el valor de "a+2h" (con 10 decimales).
.set_TextMatrix(8, 1, Math.Round(Val(tablas14(8, 1)), 10)) 'Imprime el valor de "a+3h" (con 10 decimales).
.set_TextMatrix(9, 1, Math.Round(Val(tablas14(9, 1)), 10)) 'Imprime el valor de "a+4h" (con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas14(1, 2)), 10)) 'Imprime el valor de "f(a-4h)" (con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas14(2, 2)), 10)) 'Imprime el valor de "f(a-3h)" (con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas14(3, 2)), 10)) 'Imprime el valor de "f(a-2h)" (con 10 decimales).
.set_TextMatrix(4, 2, Math.Round(Val(tablas14(4, 2)), 10)) 'Imprime el valor de "f(a-h)" (con 10 decimales).
.set_TextMatrix(5, 2, Math.Round(Val(tablas14(5, 2)), 10)) 'Imprime el valor de "f(a)" (con 10 decimales).
.set_TextMatrix(6, 2, Math.Round(Val(tablas14(6, 2)), 10)) 'Imprime el valor de "f(a+h)" (con 10 decimales).
.set_TextMatrix(7, 2, Math.Round(Val(tablas14(7, 2)), 10)) 'Imprime el valor de "f(a+2h)" (con 10 decimales).
.set_TextMatrix(8, 2, Math.Round(Val(tablas14(8, 2)), 10)) 'Imprime el valor de "f(a+3h)" (con 10 decimales).
.set_TextMatrix(9, 2, Math.Round(Val(tablas14(9, 2)), 10)) 'Imprime el valor de "f(a+4h)" (con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas14(2, 3)), 10)) 'Imprime el valor de "(f(a-2h)-f(a-4h))/h"="f'(a-3h)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas14(3, 3)), 10)) 'Imprime el valor de "(f(a-h)-f(a-3h))/h"="f'(a-2h)" (con 10 decimales).
.set_TextMatrix(4, 3, Math.Round(Val(tablas14(4, 3)), 10)) 'Imprime el valor de "(f(a)-f(a-2h))/h"="f'(a-h)" (con 10 decimales).
.set_TextMatrix(5, 3, Math.Round(Val(tablas14(5, 3)), 10)) 'Imprime el valor de "(f(a+h)-f(a-h))/h"="f'(a)" (con 10 decimales).
.set_TextMatrix(6, 3, Math.Round(Val(tablas14(6, 3)), 10)) 'Imprime el valor de "(f(a+2h)-f(a))/h"="f'(a+h)" (con 10 decimales).
.set_TextMatrix(7, 3, Math.Round(Val(tablas14(7, 3)), 10)) 'Imprime el valor de "(f(a+3h)-f(a+h))/h"="f'(a+2h)" (con 10 decimales).
.set_TextMatrix(8, 3, Math.Round(Val(tablas14(8, 3)), 10)) 'Imprime el valor de "(f(a+4h)-f(a+2h))/h"="f'(a+3h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas14(3, 4)), 10)) 'Imprime el valor de "(f'(a-h)-f'(a-3h))/h"="f''(a-2h)" (con 10 decimales).
.set_TextMatrix(4, 4, Math.Round(Val(tablas14(4, 4)), 10)) 'Imprime el valor de "(f'(a)-f'(a-2h))/h"="f''(a-h)" (con 10 decimales).
.set_TextMatrix(5, 4, Math.Round(Val(tablas14(5, 4)), 10)) 'Imprime el valor de "(f'(a+h)-f'(a-h))/h"="f''(a)" (con 10 decimales).
.set_TextMatrix(6, 4, Math.Round(Val(tablas14(6, 4)), 10)) 'Imprime el valor de "(f'(a+2h)-f'(a))/h"="f''(a+h)" (con 10 decimales).
.set_TextMatrix(7, 4, Math.Round(Val(tablas14(7, 4)), 10)) 'Imprime el valor de "(f'(a+3h)-f'(a+h))/h"="f''(a+2h)" (con 10 decimales).
.set_TextMatrix(4, 5, Math.Round(Val(tablas14(4, 5)), 10)) 'Imprime el valor de "(f''(a)-f''(a-2h))/h"="f'''(a-h)" (con 10 decimales).
.set_TextMatrix(5, 5, Math.Round(Val(tablas14(5, 5)), 10)) 'Imprime el valor de "(f''(a+h)-f''(a-h))/h"="f'''(a)" (con 10 decimales).
.set_TextMatrix(6, 5, Math.Round(Val(tablas14(6, 5)), 10)) 'Imprime el valor de "(f''(a+2h)-f''(a))/h"="f'''(a+h)" (con 10 decimales).
.set_TextMatrix(5, 6, Math.Round(Val(tablas14(5, 6)), 10)) 'Imprime el valor de "(f'''(a+h)-f'''(a-h))/h"="f''''(a)" (con 10 decimales).
End With
TextBox5.Text = "cuarta" 'Imprime el orden de la derivada.
TextBox6.Text = tablas14(5, 6) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 15. QUINTA DERIVADA POR TABLAS DE DIFERENCIAS DIVIDIDAS CENTRADAS.
If (ComboBox1.SelectedItem = "Tablas de Diferencias Divididas Centradas") And (ComboBox2.SelectedItem = "5ta. derivada") Then
Página anterior | Volver al principio del trabajo | Página siguiente |