Академический Документы
Профессиональный Документы
Культура Документы
Indice
ombre de la prctica Pgina
Prctica no. 1 Resolucin de races aproximadas con la herramienta SOLVER de Excel 3 Prctica no. 2 Mtodo de tanteos Prctica no. 3 Mtodo de bisecciones. 8 12
16
20
26
30
Prctica no. 8 Mtodo de Inversin matricial Prctica no. 9 Ecuaciones simultneas en Excel con la herramienta SOLVER Prctica no. 10 Mtodo de Inversin Matricial usando las funciones con Excel .. Prctica no. 11 Mtodo de Integracin Trapezoidal ...
34 39 43 45
Prctica no. 12 Mtodo de Integracin Simpson 1/3 . 49 Prctica no. 13 Mtodo de solucin de ecuaciones diferenciales de Euler .. Prctica no. 14 Mtodo de solucin de ecuaciones diferenciales de Runge-Kutta (2do. Orden) Prctica no. 15 Mtodo de solucin de ecuaciones diferenciales de Runge-Kutta (4to. Orden) 53
58
63
Se desea encontrar un valor de X que hace a la funcin f(x) igual a cero. Esto se puede lograr forzando la funcin f(x) a cero. El objetivo es encontrar el valor de X que hace a la ecuacin f(x) igual a cero. La estrategia general usada con Solver es definir una funcin objetivo que consista en la funcin f(x) y luego determinar el valor de X que causa que la funcin objetivo sea igual a cero. DESARROLLO DE LA PRACTICA: 1) Procedimiento de encendido de la computadora y carga del sistema operativo. Encienda el CPU y monitor Aparece la pantalla inicial de Windows, haga clic en el botn Inicio, para abrir el men Inicio, coloque el puntero en la opcin Programas, aparece el men de Programas, coloque el puntero en la opcin Microsoft Excel y haga clic. 2) Aparece el programa Excel
3) Resuelva las funciones siguientes, de acuerdo a los datos que se detallan a continuacin:
xi= 1 f(x)= exp(-x)-ln(x) factor de error= 0.00000001 xi= 0.5 f(x)= 3x^3-seno(2x^5-10) factor de error= 0.00001 xi= 0 f(x)= x^9-6x^4-8x^3-6x-4 factor de error= 0.000001
3. Se explicar el procedimiento para la solucin de la primer funcin. Estando posicionados en la celda B5 , hacer clic en el men Herramientas, hacer clic en Solver. Aparecer la siguiente ventana emergente:
Haz clic en el botn Estimar y en Valores de: y los parmetros deben quedar como se muestra a continuacin:
4. Haz clic en el botn Opciones, para determinar el valor de la precisin (factor de error):
Escribe el valor de la precisin deseada y haz clic en Aceptar. 5. Hacer clic en el botn Resolver y aparecer lo siguiente:
Hacer clic en el botn Aceptar. Debido a que la funcin s tiene solucin, Solver ha mostrado la respuesta en la celda B4 . La respuesta es X= 1.309799586. De esta forma se ha encontrado el valor de la raz utilizando la herramienta Solver de Excel. 6. Repite el procedimiento del paso 1 al 5 para resolver las dems funciones f(x).
4) Haga clic el botn cerrar para salir de Excel , a la pregunta de grabar el documento, haga clic
en el boton o
5) Para apagar la computadora: - Haga clic en el botn Inicio - Haga clic en la opcin Apagar equipo - Haga clic en la opcin Apagar - Cuando el monitor se haya apagado, proceda a apagar el C.P.U.
3) Realice el cdigo del algoritmo siguiente: 1. 2. 3. 4. 5. 6. 7. 8. Inicio Declarar variables Inicializar iter = 0 Leer Xi (x inicial), deltax (incremento de x), fe (factor de error), imax (no. mximo de iteraciones) Hacer llamada a la funcin con el argumento de Xi, para obtener fx Asignar a fxAnt = fx Asignar a xAnt= xi Mientras abs(fx ) >= fe and iter <= imax hacer Iter = iter + 1 Visualizar iter,deltax, xi,fx,NO Si fxAnt*fx< 0 Entonces deltax = deltax / 2 xi = xAnt Sino fxAnt = fx xAnt = xi Fin_Si Asignar xi = xi+deltax Hacer llamada a la funcin con el argumento de Xi, para obtener fx Fin_Mientras
Desplegar resultado Visualizar iter + 1, deltax, xi, fx, SI Visualizar La raiz aproximada es: ,xi 10. Fin 9. 4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx toma la frmula o funcin del cuadro de texto OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear: List5.Clear CalcTanteos (Aqu va el cdigo del paso 3) End Sub 5) Haga clic derecho en Proyecto1 y agregue el mdulo mMathSpecFun
8) Pruebe el programa con los ejemplos resueltos en clase 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
EQUIPO Y MATERIAL: Computadora con sistema operativo Windows , Lenguaje de Programacin VisualBasic y Manual de prcticas. DESARROLLO DE LA PRACTICA: 1) Enciende la computadora y espera a que aparezca el Escritorio de Windows. 2) Ejecute el programa VisualBasic y haga el formato siguiente:
3) Realice el cdigo del algoritmo siguiente: 1. 2. 3. 4. 5. Inicio Declarar variables Inicializar iter = 0 Leer X1 (x1 inicial), X2 (x2 inicial), fe (factor de error), imax (no. mximo de iteraciones) Hacer (Do) Calcular xm = (x1 + x2) / 2 Iter = iter + 1 Visualizar iter, x1, f(x1), x2, f(x2), xm, f(xm) Si f(x1).f(xm) < 0 Entonces x2 = xm Visualizar - Sino x1 = xm Visualizar + Fin_si Si abs(f(xm)) < es Or iter >= imax Entonces Visualizar SI Visualizar La raiz aproximada es: ,xm Salir de Hacer (Exit Do) Sino Visualizar NO Fin_si Fin_Hacer (Loop)
6. Fin 4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx toma la frmula o funcin del cuadro de texto OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear: List5.Clear List6.Clear: List7.Clear: List8.Clear: List9.Clear CalcBisecc (Aqu va el cdigo del paso 3) End Sub 5) Haga clic derecho en Proyecto1 y agregue el mdulo mMathSpecFun
8) Pruebe el programa con los ejemplos resueltos en clase 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
OBJETIVO: Que el alumno programe el mtodo de Newton-Raphson 1 Orden para resolucin de races aproximadas de funciones algebraicas y trascendentales, usando programacin VisualBasic. EQUIPO Y MATERIAL: Computadora con sistema operativo Windows , Lenguaje de Programacin VisualBasic y Manual de prcticas. DESARROLLO DE LA PRACTICA: 1) Enciende la computadora y espera a que aparezca el Escritorio de Windows. 2) Ejecute el programa VisualBasic y haga el formato siguiente:
3) Realice el cdigo del algoritmo siguiente: 1. 2. 3. 4. 5. Inicio Declarar variables Inicializar iter = 0 Leer Xi (x inicial), fe (factor de error), imax (no. mximo de iteraciones) Hacer (Do) Calcular Iter = iter + 1 Calcular xi1 = xi - F(xi) / FP(xi) Visualizar iter, xi, f(xi), FP(xi), xi1, f(xi1) Si abs(F(xi1)) < es Or iter >= imax Entonces Visualizar SI Visualizar La raiz aproximada es: ,xi1 Salir de Hacer (Exit Do) Sino Visualizar NO xi = xi1 Fin_si Fin_Hacer (Loop)
6. Fin 4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx toma la frmula o funcin del cuadro de texto OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Function FP(x) Evaluar derivada Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion 17 MTI Marco Antonio Tong Gastelum
Formula = txtFpx
OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler FP = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear: List5.Clear List6.Clear: List7.Clear CalcNewton1 (Aqu va el cdigo del paso 3) End Sub 5) Haga clic derecho en Proyecto1 y agregue el mdulo mMathSpecFun Debug.Print Fun.ErrorDescription
8) Pruebe el programa con los ejemplos resueltos en clase 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
2 ORDE
OBJETIVO: Que el alumno programe el mtodo de Newton-Raphson 2 Orden para resolucin de races aproximadas de funciones algebraicas y trascendentales, usando programacin VisualBasic. EQUIPO Y MATERIAL: Computadora con sistema operativo Windows , Lenguaje de Programacin VisualBasic y Manual de prcticas. DESARROLLO DE LA PRACTICA: 1) Enciende la computadora y espera a que aparezca el Escritorio de Windows. 2) Ejecute el programa VisualBasic y haga el formato siguiente:
3) Realice el cdigo del algoritmo siguiente: 1. 2. 3. 4. 5. Inicio Declarar variables Inicializar iter = 0 Leer Xi (x inicial), fe (factor de error), imax (no. mximo de iteraciones) Hacer (Do) Calcular Iter = iter + 1 Calcular xi1 = xi - F(xi) / (FP(xi) - FPP(xi) * F(xi) / (2 * FP(xi))) Visualizar iter, xi, f(xi), FP(xi), FPP(xi), xi1, f(xi1) Si abs(F(xi1)) < es Or iter >= imax Entonces Visualizar SI Visualizar La raiz aproximada es: ,xi1 Salir de Hacer (Exit Do) Sino Visualizar NO xi = xi1 Fin_si Fin_Hacer (Loop)
6. Fin 4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx toma la frmula o funcin del cuadro de texto OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Function FP(x) Evaluar primera derivada Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFpx toma la frmula o funcin de la derivada del cuadro de texto
OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler FP = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Function FPP(x) Evaluar segunda derivada Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFppx toma la frmula o funcin de la segunda derivada del cuadro de texto OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler FPP = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: Debug.Print Fun.ErrorDescription
End Function Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear: List5.Clear List6.Clear: List7.Clear: List8.Clear CalcNewton2 (Aqu va el cdigo del paso 3) End Sub
8) Pruebe el programa con los ejemplos resueltos en clase 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
3) Realice el cdigo del algoritmo siguiente: Programa principal 1. Inicio 2. Declarar subprograma ElimGauss() 3. Declarar variables y arreglos 4. Leer N (Nmero de ecuaciones) 5. Leer las ecuaciones Para (For) i = 1 hasta N Para (For) j= 1 hasta N Leer a(i,j) (coeficientes de las ecuaciones) Fin_ Para j Leer b(i) (trminos independientes de las ecuaciones) Fin_Para i 6. Mostrar_Matriz a, b, N, N (Visualizar la matriz aumentada en el listbox) 7. Gauss a(), b(), n, x(), er (Llamar al subprograma Gauss) 8. Si Error = 0 Entonces Para i = 1 hasta N Visualizar "x(" & i & ") = " & x(i) (En el listbox de Resultados) Fin_para i Sino Visualizar mensaje "Sistema mal acondicionado, no solucin" Fin_si 9. Fin. (Fin del programa principal)
4) Escribe los cdigos de los subprogramas de acuerdo a los algoritmos siguientes: Subprograma Gauss 1. Declarar el subprograma Gauss(a, b, n, x, er) 2. Declarar variables i, j de tipo entero 3. Declarar arreglo s(10) de tipo decimal simple 4. Declarar la constante tol de tipo decimal simple = 0.000001 5. Inicializar er = 0 6. Para i = 1 hasta n s(i) = Abs(a(i, 1)) Para j = 2 hasta n Si Abs(a(i, j)) > s(i) Entonces s(i) = Abs(a(i, j)) Fin_ para j Fin_para i 7. Llamar al subprograma Eliminar a, s(), n, b, tol, er 8. Si er < > -1 Entonces Llamar al subprograma Sustituir a, n, b, x Fin_si 9. Fin ( fin del subprograma Gauss)
Subprograma Pivote Declarar el subprograma Pivote(a, b, s, n, k) Declarar variables p, ii, jj de tipo entero Declarar variables factor, grande, temp de tipo decimal simple Asignar p = k Asignar grande = Abs(a(k, k) / s(k)) Para ii = k + 1 hasta n temp = Abs(a(ii, k) / s(ii)) Si temp > grande Entonces grande = temp p = ii Fin_si Fin_para ii 7. Si p < > k Entonces Para jj = k hasta n temp = a(p, jj) a(p, jj) = a(k, jj) a(k, jj) = temp Fin_para jj temp = b(p) b(p) = b(k) b(k) = temp temp = s(p) s(p) = s(k) s(k) = temp Fin_si 8. Fin (fin del subprograma Pivote) 1. 2. 3. 4. 5. 6.
Subprograma Sustituir Declarar subprograma Sustituir(a, n, b, x) Declarar variables i, j de tipo entero Declarar variable suma de tipo decimal simple Asignar x(n) = b(n) / a(n, n) Para i = n - 1 hasta 1 paso -1 suma = 0 Para j = i + 1 hasta n suma = suma + a(i, j) * x(j) Fin_para j x(i) = (b(i) - suma) / a(i, i) Fin_para i 6. Fin (fin del subprograma Sustituir) 1. 2. 3. 4. 5.
1. 2. 3. 4.
5. 6.
Subprograma Eliminar Declarar subprograma Eliminar(a, s, n, b, tol, er) Declarar variables i, j, k de tipo entero Declarar variable factor de tipo decimal simple Para k = 1 hasta n - 1 Pivote a, b, s, n, k Si Abs(a(k, k) / s(k)) < tol Entonces er = -1 Salir del Para (Exit For) Fin_si Para i = k + 1 hasta n factor = a(i, k) / a(k, k) Para j = k + 1 hasta n a(i, j) = a(i, j) - factor * a(k, j) Fin_para j b(i) = b(i) - factor * b(k) Fin_para i Fin_para k Si Abs(a(k, k) / s(k)) < tol Entonces er = -1 Fin (fin del subprograma Eliminar)
Subprograma Mostrar_Matriz 1. Declarar el subprograma Mostrar_Matriz(Matriz, Vector, R, C) 2. Declarar variables i, j de tipo entero , Renglon de tipo cadena 3. Para i = 1 hasta R Para j = 1 hasta C Renglon = Renglon & " " & Matriz(i, j) Fin_para j Renglon = Renglon & " " & Vector(i) Visualizar Renglon en listBox Renglon = "" Fin_para i 4. Fin (fin del subprograma Mostrar_Matriz)
5) A la codificacin realizada, agrguele el cdigo siguiente: Private Sub cmdCalcular_Click() List1.Clear List2.Clear ElimGauss End Sub 6) Introduce los datos para probar el mtodo
4 -3 2 8 2 6 -3 2 -3 4 -4 1 -2 -4 5 -3 12 8 -6 -9
7) Pruebe el programa con los ejemplos resueltos en clase 8) Guarde el archivo en una memoria Usb 9) Cierre el VisualBasic. 10) Apague la computadora siguiendo el procedimiento correcto.
3) Realice el cdigo del algoritmo siguiente: Programa principal 1. Inicio 2. Declarar subprograma GaussJordan() 3. Declarar variables y arreglos 4. Leer N (Nmero de ecuaciones) 5. Asignar m = N + 1 6. Leer las ecuaciones Para (For) i = 1 hasta m Para (For) j= 1 hasta m Leer a(i,j) (coeficientes de las ecuaciones) Fin_ Para j Leer a(i,j) (trminos independientes de las ecuaciones) Fin_Para i 7. Mostrar_Matriz a, m, n (Visualizar la matriz aumentada en el listbox) (Llamar al subprograma Gauss) 8. Gauss a(), m, n, er 9. Si Error < > -1 Entonces Para i = 1 hasta N Visualizar "x(" & i & ") = " & a(i, n) (En el listbox de Resultados) Fin_para i Sino Visualizar mensaje "Sistema mal acondicionado, no tiene solucin" Fin_si 10. Fin. (Fin del programa principal)
4) Escribe los cdigos de los subprogramas de acuerdo a los algoritmos siguientes: Subprograma Gauss 1. 2. 3. 4. Declarar el subprograma Gauss(a, m, n, er) Declarar variables i, j, L, k de tipo entero Declarar variables f, h de tipo decimal simple Para i = 1 hasta m Para j = 1 hasta m Si (i = j) Entonces Intercambio a, m, n, i, j, er Si er = -1 Entonces Salir del subprograma (Exit Sub) f = 1 / a(i, j) Para L = 1 hasta n a(i, L) = a(i, L) * f Fin_para L Fin_si Fin_para j Para j = 1 hasta m Si (i < > j) Entonces h = -a(j, i) 31 MTI Marco Antonio Tong Gastelum
Para k = 1 hasta n a(j, k) = a(j, k) + a(i, k) * h Fin_para k Fin_si Fin_para j Fin_para i 5. Fin (fin del subprograma Gauss) Subprograma Intercambio Declarar el subprograma Intercambio(a, m, n, i, j, er) Declarar variables jj, ji de tipo entero Declarar variable temp de tipo decimal simple Asignar jj = i Si a(i, j) = 0# Entonces jj = jj + 1 Si jj > m Entonces Para ji = 1 hasta n temp = a(jj, ji) a(jj, ji) = a(i, ji) a(i, ji) = temp Fin_para ji Sino er = -1 Salir del subprograma (Exit Sub) Fin_si Fin_si 6. Fin ( fin del subprograma Intercambio) 1. 2. 3. 4. 5. Subprograma Mostrar_Matriz 1. Declarar el subprograma Mostrar_Matriz(Matriz, R, C) 2. Declarar variables i, j de tipo entero , Renglon de tipo cadena 3. Para i = 1 hasta R Para j = 1 hasta C Renglon = Renglon & " " & Matriz(i, j) Fin_para j Visualizar Renglon en listBox Renglon = "" Fin_para i 4. Fin (fin del subprograma Mostrar_Matriz)
5) A la codificacin realizada, agrguele el cdigo siguiente: Private Sub cmdCalcular_Click() List1.Clear List2.Clear GaussJordan End Sub 32 MTI Marco Antonio Tong Gastelum
7) Pruebe el programa con los ejemplos resueltos en clase 8) Guarde el archivo en una memoria Usb 9) Cierre el VisualBasic. 10) Apague la computadora siguiendo el procedimiento correcto.
3) Realice el cdigo del algoritmo siguiente: Programa principal 1. Inicio 2. Declarar subprograma InvMatricial() 3. Declarar variables y arreglos 4. Leer N (Nmero de ecuaciones) 5. Asignar ni = 2 * n 6. Para i = 1 hasta n ' lectura de las ecuaciones Para j = 1 hasta n Leer a(i, j) (lectura de coeficientes) Fin_para j Leer b(i) (lectura de trminos independientes) Fin_para i 7. Llamada al subprograma Mostrar_Matriz a, b, n, n 8. Lamada al subprograma InvMat a(), b(), n, ni, x(), er 9. Si er = 0 Entonces Llamada al subprograma MostrarInversa a(), n, ni Para i = 1 hasta n Visualizar "x(" & i & ") = " & x(i) Fin_para i Sino Visualizar "Sistema mal condicionado, no tiene solucin" Fin_si 10. Fin (fin del programa principal)
4) Escribe los cdigos de los subprogramas de acuerdo a los algoritmos siguientes: Subprograma InvMat 1. 2. 3. 4. Declarar el subprograma InvMat(a, b, n, ni, x, er) Declarar variables i, j de tipo entero Asignar ni = 2 * n, er = 0 Para i = 1 hasta n ('Se agrega la matriz identidad) Para j = n + 1 hasta ni Si i = (j - n) Entonces a(i, j) = 1# Sino a(i, j) = 0# Fin_si Fin_para j Fin_para i 5. Para i = 1 hasta n (' Se invierte la matriz) Para j = 1 hasta ni Si (i = j) Entonces Llamar al subprograma Intercambio a, n, ni, i, j, er Si er = -1 Entonces Salir del subprograma (Exit Sub) 35 MTI Marco Antonio Tong Gastelum
Asignar f = 1 / a(i, j) Para L = 1 hasta ni Asignar a(i, L) = a(i, L) * f Fin_para L Fin_si Fin_para j Para j = 1 hasta ni Si (i < > j) Entonces Asignar h = -a(j, i) Para k = 1 hasta ni Asignar a(j, k) = a(j, k) + a(i, k) * h Fin_para k Fin_si Fin_para j Fin_para i 6. Para i = 1 hasta n ( 'Se multiplica matriz inversa por vector de trminos indep.) Para j = 1 hasta 1 Asignar x(i) = 0# Para L = 1 hasta ni Asignar x(i) = x(i) + a(i, (L + n)) * b(L) Fin_para L Fin_para j Fin_para i (fin del subprograma InvMat) 7. Fin
Subprograma Intercambio 1. Declarar el subprograma Intercambio(a, n, ni, i, j, er) 2. Declarar variables jj, ji como tipo entero 3. Declarar variable temp como decimal simple 4. Asignar jj = i 5. Si a(i, j) = 0# Entonces Asignar jj = jj + 1 Si jj > n Entonces Para ji = 1 hasta ni Asignar temp = a(jj, ji) Asignar a(jj, ji) = a(i, ji) Asignar a(i, ji) = temp Fin_para ji Sino Asignar er = -1 Salir Del subprograma (Exit Sub) Fin_si Fin_si 6. Fin (fin Del subprograma Intercambio)
Subprograma MostrarInversa 1. Declarar El subprograma MostrarInversa(a, n, ni) 2. Declarar variables i , j como tipo entero, Renglon como tipo cadena 3. Para i = 1 hasta n Para j = n + 1 hasta ni Asignar Renglon = Renglon & " " & Format(a(i, j), "####0.0########") Fin_para j Visualizar Renglon ( en el listbox de matriz inversa) Asignar Renglon = "" Fin_para i 4. Fin (fin del subprograma MostrarInversa)
Subprograma Mostrar_Matriz 1. Declarar El subprograma Mostrar_Matriz(Matriz, Vector, R, C) 2. Declarar variables i, j como tipo entero, Renglon como tipo cadena 3. Para i = 1 hasta R Para j = 1 hasta C Asignar Renglon = Renglon & " " & Format(Matriz(i, j), "####0.0########") Fin_para j Visualizar Renglon ( en el listbox de matriz de coeficientes) Visualizar Format(Vector(i), "####0.0########") ( en el listbox de trminos indep.) Asignar Renglon = "" Fin_para i 4. Fin (fin del subprograma Mostrar_Matriz)
5) A la codificacin realizada, agrguele el cdigo siguiente: Private Sub cmdCalcular_Click() List1.Clear: List2.Clear List3.Clear: List4.Clear InvMatricial End Sub
7) Pruebe el programa con ejemplos vistos en clase 8) Guarde el archivo en una memoria Usb 9) Cierre el VisualBasic. 10) Apague la computadora siguiendo el procedimiento correcto.
Se tiene un sistema de n ecuaciones con n incgnitas. Se desea encontrar los valores que hacen a cada una de las ecuaciones igual a cero. Esto se puede lograr forzando la funcin a cero. El objetivo es encontrar los valores de que hacen a la ecuacin igual a cero. Dado que todos los trminos del lado derecho de la ecuacin son potencias de dos, sern mayores o iguales a cero. Por consiguiente, el nico modo que puda ser igual a cero es que cada una de las ecuaciones individuales sean cero. De esta manera, los valores que hacen a igual a cero sern la solucin del sistema de ecuaciones dado. La estrategia general usada con Solver es definir una funcin objetivo que consista en la suma de los cuadrados de las ecuaciones individuales, como est indicado en la ecuacin , y luego determinar los valores que causan la funcin objetivo igual a cero.
DESARROLLO DE LA PRACTICA: 4) Procedimiento de encendido de la computadora y carga del sistema operativo. Encienda el CPU y monitor Aparece la pantalla inicial de Windows, haga clic en el botn Inicio, para abrir el men Inicio, coloque el puntero en la opcin Programas, aparece el men de Programas, coloque el puntero en la opcin Microsoft Excel y haga clic. 5) Aparece el programa Excel
4 X X
2 2 2
= + 7 X 6 X 12 X
3 3 3
25
3 X
= 3 + 4 X 2 X
4 4
= 17 = 36
, a la tercera como y a la cuarta como sistema dado se puede escribir por lo tanto de esta manera:
f g h i = = = = 5 X 4 X
1 1
+ 4 X 3 X X
2
2 2
25 + 7 X 6 X 12 X
3 3 3
= = =
0 0 0 0
3 = + 4 X + 2 X
4 4
17 36
, formando la
, suma
7. Crear en Excel una hoja en donde se tengan x1 = 1, x2 = 1, x3 = 1 y x4 = 1 como valores iniciales para las incgnitas. Para ello, escribir 1 en las celdas B3, B4, B5 y B6. En las celdas B8, B9, B10 y B11 escribir las ecuaciones para que se cumpla lo siguiente:
f g h i = = = = 5 X 4 X
1 1
+ 4 X 3 X X
2
2 2
25 + 7 X 6 X 12 X
3 3 3
= = =
0 0 0 0
3 = + 4 X + 2 X
4 4
17 36
Para ello, escribir en la celda B8 la ecuacin 1, es decir la correspondiente a la letra f: =5*B3+4*B4-25. En la celca B9 escribir la ecuacin 2, es decir la que corresponde a la letra g: =4*B3-3*B4+7*B5-3. Posteriormente en la celda B10 escribir la ecuacin 3, que corresponde a la letra h: = B4-6*B5+4*B6-17. Por ltimo, en la celda B11 escribir la ecuacin 4, que es la que corresponde a la letra i: =12*B5+2*B6-36. 40 MTI Marco Antonio Tong Gastelum
8. En la celda B13 escribir la funcin objetivo, que tiene la forma Escribir entonces =B8^2+B9^2+B10^2+B11^2 en la celda B13.
9. Para dejar claro el contenido de cada celda, escribir los ttulos o etiquetas correspondientes, as: Celda A1 = ECUACIONES SIMULTNEAS LINEALES Celda A3 alineado a la derecha = X1= Celda A4 alineado a la derecha = X2= Celda A5 alineado a la derecha = X3= Celda A6 alineado a la derecha = X4= Celda A8 alineado a la derecha = f(x1,x2,x3,x4)= Celda A9 alineado a la derecha = g(x1,x2,x3,x4)= Celda A10 alineado a la derecha = h(x1,x2,x3,x4)= Celda A11 alineado a la derecha = i(x1,x2,x3,x4)= 10. Hasta el momento se debe tener lo siguiente:
11. Estando posicionados en la celda B13, hacer clic en el men Herramientas, hacer clic en Solver. Aparecer la siguiente ventana emergente:
Haz clic en el botn Estimar y los parmetros deben quedar como se muestra a continuacin:
13. Hacer clic en el botn Aceptar. Debido a que el sistema de ecuaciones s tiene solucin, Solver ha mostrado las respuestas en las celdas B3, B4, B5 y B6. Las respuestas son X1= 1, X2 =5, X3=2 y X4 = 6. De esta forma se han encontrado los valores de las cuatro incgnitas utilizando la herramienta Solver de Excel. 6) Haga clic el botn cerrar para salir de Excel , a la pregunta de grabar el documento, haga clic
en el boton o
7) Para apagar la computadora: - Haga clic en el botn Inicio - Haga clic en la opcin Apagar equipo - Haga clic en la opcin Apagar - Cuando el monitor se haya apagado, proceda a apagar el C.P.U. 42 MTI Marco Antonio Tong Gastelum
4 X X
2 2 2
= + 12 7 X
3 3 3
25 3 36
3 X
= + + 4 X 2 X
4 4
6 X X
= 17 =
10) Escriba los coeficientes de las ecuaciones. Utilice las flechas de direccin para mover el cursor. 5) Seleccione el rango de celdas A6:D9 y escriba la frmula siguiente: =minversa(a1:d4) y pulse al mismo tiempo las teclas <Ctrl.>+<Shift>+<Enter> para calcular la matriz inversa.
6) Seleccione el rango de celdas F6:F9 , escriba la frmula =mmult(a6:d9,e1:e4) y pulse al mismo tiempo las teclas <ctrl.>+<Shift>+<Enter> para multiplicar la matriz inversa por el vector de trminos independientes.
8) El resultado es:
X1 = 1 X2 = 5 X3 = 2 X4 = 6
9) Haga clic el botn cerrar para salir de Excel , a la pregunta de grabar el documento, haga clic
en el boton o
10) Para apagar la computadora: - Haga clic en el botn Inicio - Haga clic en la opcin Apagar equipo - Haga clic en la opcin Apagar - Cuando el monitor se haya apagado, proceda a apagar el C.P.U.
3) Realice el cdigo del algoritmo siguiente: Programa principal 1. 2. 3. 4. 5. 6. 7. Declarar subprograma IntegraTrapezoidal() Declarar variables x, xi, XF de tipo decimal doble Declarar variables deltax, area de tipo decimal doble Leer xi, xf, deltax Calcular el rea por medio la funcin area = Trapezoidal(xi, XF, deltax) Visualizar "El rea bajo la curva es: ", area Fin (fin del programa principal) Funcin Trapezoidal 1. 2. 3. 4. 5. 6. Declarar la funcin Trapezoidal(xi, XF, deltax) Declarar suma, fx(50), areaTrap de tipo decimal doble Declarar variables n, i de tipo entero Asignar n = 1 + (XF - xi) / deltax Asignar suma = 0# Para i = 1 hasta n Visualizar I,xi,F(xi) (en sus respectivos listbox) Si i = 1 Or i = n Entonces Asignar suma = suma + F(xi) Sino Asignar suma = suma + 2 * F(xi) Fin_si Asignar xi = xi + deltax Fin_para i 7. Asignar areaTrap = suma * deltax / 2# 8. Visualizar areaTrap 9. Asignar Trapezoidal = areaTrap 10. Fin (fin de la funcin Trapezoidal)
4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x 46 MTI Marco Antonio Tong Gastelum
8) Pruebe el programa con ejemplos resueltos en clase. 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
3) Realice el cdigo del algoritmo siguiente: Programa principal 1. 2. 3. 4. 5. 6. 7. Declarar subprograma IntegraSimpson() Declarar variables x, xi, XF de tipo decimal doble Declarar variables deltax, area de tipo decimal doble Leer xi, xf, deltax Calcular el rea por medio la funcin area = Simpson(xi, XF, deltax) Visualizar "El rea bajo la curva es: ", area Fin (fin del programa principal) Funcin Simpson 1. 2. 3. 4. 5. 6. 7. Declarar la funcin Simpson(xi, XF, deltax) Declarar suma1, suma2, fx(50), areaSimpson de tipo decimal doble Declarar variables n, i de tipo entero Asignar n = 1 + (XF - xi) / deltax Asignar suma1 = 0# Asignar suma2 = 0# Para i = 1 hasta n Asignar fx(i) = F(xi) Visualizar i,xi,F(xi) (en sus respectivos listbox) Asignar xi = xi + deltax Fin_para i 8. Para i = 2 hasta n 1 Paso 2 Asignar suma1 = suma1 + 4 * fx(i) Fin_para i 9. Para i = 3 hasta n - 1 Paso 2 Asignar suma2 = suma2 + 2 * fx(i) Fin_para i 10. Asignar areaSimpson = (fx(1) + suma1 + suma2 + fx(n)) * deltax / 3# 11. Visualizar areaSimpson 12. Asignar Trapezoidal = areaSimpson 13. Fin (fin de la funcin Simpson)
4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx OK = Fun.StoreExpression(Formula) ' leer Frmula 50 MTI Marco Antonio Tong Gastelum
If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear IntegraSimpson End Sub 5) Haga clic derecho en Proyecto1 y agregue el mdulo clsMathParser
8) Pruebe el programa con ejemplos resueltos en clase. 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
1. 2. 3. 4. 5. 6. 7.
3) Realice el cdigo del algoritmo siguiente: Programa principal Declarar el subprogram IntegraEuler() Declarar variables xi , yi de tipo decimal doble Declarar variables x1, x2, Paso, area, hecho de tipo decimal doble Leer xi, yi , x1, x2 , Paso Llamar a la funcin hecho = Euler(xi, yi, x1, x2, Paso) Visualizar "El rea Simpson 1/3 bajo la curva es: " , hecho Fin (fin del programa principal)
Funcin Euler 1. Declarar la funcin Euler(xi, yi, x1, x2, Paso) 2. Declarar variables yii(50), suma, suma1, suma2, area de tipo decimal doble 3. Declarar variables n, i de tipo entero 4. Asignar i = 1 5. Asignar n = 1 + (x2 - x1) / Paso 6. Asignar suma = 0# 7. Asignar suma1 = 0# 8. Asignar suma2 = 0# 9. Asignar A1 = 1 10. Asignar yii(1) = yi 11. Asignar k1 = 0# 12. Llamar al subprograma Mostrar i, xi, k1, yi 13. Para i = 2 hasta n Asignar k1 = F(xi) Asignar yii(i) = yi + (A1 * k1 ) * Paso Asignar xi = xi + Paso Asignar yi = yii(i) Llamar al subprograma Mostrar i, xi, k1, yi Fin_para i 14. Para i = 2 hasta n - 1 Asignar suma = suma + yii(i) Fin_para i 15. Asignar area = (yii(1) + 2 * suma + yii(n)) * Paso / 2 16. Visualizar area (Visualiza el rea por mtodo Trapezoidal) 17. Para i = 2 hasta n - 1 Paso 2 Asignar suma1 = suma1 + 4 * yii(i) Fin_para i 18. Para i = 3 hasta n - 1 Paso 2 Asignar suma2 = suma2 + 2 * yii(i) Fin_para i 19. Asignar area = (yii(1) + suma1 + suma2 + yii(n)) * Paso / 3# 20. Visualizar area (Visualiza el rea por mtodo Simpson 1/3) 21. Asignar Euler = area 22. Fin (fin de la funcin Euler) 54 MTI Marco Antonio Tong Gastelum
Subprograma Mostrar 1. Declarar el subprograma Mostrar(i, xi, k1, yi) 2. Visualizar i, xi, k1, yi ( visualizar en los respectivos listbox) 3. Fin (fin del subprograma Mostrar)
4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear IntegraEuler End Sub
Condicin inicial:
xi: x1: 0 0 yi: x2: 1 4
Paso:
0.5
Intervalo [x1,x2]:
8) Pruebe el programa con ejemplos resueltos en clase. 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
1. 2. 3. 4. 5. 6. 7.
3) Realice el cdigo del algoritmo siguiente: Programa principal Declarar el subprogram IntegraRungeKutta2() Declarar variables xi , yi de tipo decimal doble Declarar variables x1, x2, Paso, area, hecho de tipo decimal doble Leer xi, yi , x1, x2 , Paso Llamar a la funcin hecho = RungeKutta2(xi, yi, x1, x2, Paso) Visualizar "El rea Simpson 1/3 bajo la curva es: " , hecho Fin (fin del programa principal)
Funcin RungeKutta2 1. Declarar la funcin RungeKutta2(xi, yi, x1, x2, Paso) 2. Declarar variables yii(50), suma, suma1, suma2, area de tipo decimal doble 3. Declarar variables n, i de tipo entero 4. Asignar i = 1 5. Asignar n = 1 + (x2 - x1) / Paso 6. Asignar suma = 0# 7. Asignar suma1 = 0# 8. Asignar suma2 = 0# 9. Asignar A1 = 1/3 10. Asignar A2= 2/3 11. Asignar p1= 12. Asignar q1 = 1 13. Asignar yii(1) = yi 14. Asignar k1 = 0# 15. Asignar k2 = 0# 16. Llamar al subprograma Mostrar i, xi, k1, k2, yi 17. Para i = 2 hasta n Asignar k1 = F(xi) Asignar k2 = F(xi + p1 * Paso) * q1 Asignar yii(i) = yi + (A1 * k1 + A2 * k2) * Paso Asignar xi = xi + Paso Asignar yi = yii(i) Llamar al subprograma Mostrar i, xi, k1, k2, yi Fin_para i 18. Para i = 2 hasta n - 1 Asignar suma = suma + yii(i) Fin_para i 19. Asignar area = (yii(1) + 2 * suma + yii(n)) * Paso / 2 20. Visualizar area (Visualiza el rea por mtodo Trapezoidal) 21. Para i = 2 hasta n - 1 Paso 2 Asignar suma1 = suma1 + 4 * yii(i) Fin_para i 22. Para i = 3 hasta n - 1 Paso 2 Asignar suma2 = suma2 + 2 * yii(i) Fin_para i 23. Asignar area = (yii(1) + suma1 + suma2 + yii(n)) * Paso / 3# 59 MTI Marco Antonio Tong Gastelum
24. Visualizar area (Visualiza el rea por mtodo Simpson 1/3) 25. Asignar RungeKutta2 = area 26. Fin (fin de la funcin RungeKutta2)
Subprograma Mostrar 1. Declarar el subprograma Mostrar(i, xi, k1, k2, yi) 2. Visualizar i, xi, k1, k2, yi ( visualizar en los respectivos listbox) 3. Fin (fin del subprograma Mostrar)
4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear IntegraRungeKutta2 End Sub
Condicin inicial:
xi: x1: 0 0 yi: x2: 1 4
Paso:
0.5
Intervalo [x1,x2]:
8) Pruebe el programa con ejemplos resueltos en clase. 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.
1. 2. 3. 4. 5. 6. 7.
3) Realice el cdigo del algoritmo siguiente: Programa principal Declarar el subprogram IntegraRungeKutta4() Declarar variables xi , yi de tipo decimal doble Declarar variables x1, x2, Paso, area, hecho de tipo decimal doble Leer xi, yi , x1, x2 , Paso Llamar a la funcin hecho = RungeKutta4(xi, yi, x1, x2, Paso) Visualizar "El rea Simpson 1/3 bajo la curva es: " , hecho Fin (fin del programa principal)
Funcin RungeKutta4 1. Declarar la funcin RungeKutta4(xi, yi, x1, x2, Paso) 2. Declarar variables yii(50), suma, suma1, suma2, area de tipo decimal doble 3. Declarar variables n, i de tipo entero 4. Asignar i = 1 5. Asignar n = 1 + (x2 - x1) / Paso 6. Asignar suma = 0# 7. Asignar suma1 = 0# 8. Asignar suma2 = 0# 9. Asignar A1 = 1 / 6# 10. Asignar A2= 1 / 3# 11. Asignar A3 = 1 / 3# 12. Asignar A4 = 1 / 6# 13. Asignar p1 = 1 / 2# 14. Asignar p2 = 1 / 2# 15. Asignar p3 = 1 16. Asignar q1 = 1 17. Asignar yii(1) = yi 18. Asignar k1 = 0# 19. Asignar k2 = 0# 20. Asignar k3 = 0# 21. Asignar k4 = 0# 22. Llamar al subprograma Mostrar i, xi, k1, k2, k3, k4, yi 23. Para i = 2 hasta n Asignar k1 = F(xi) Asignar k2 = F(xi + p1 * Paso) * q1 Asignar k3 = F(xi + p2 * Paso) * q1 Asignar k4 = F(xi + p3 * Paso) * q1 Asignar yii(i) = yi + (A1 * k1 + A2 * k2 + A3 * k3 + A4 * k4) * Paso Asignar xi = xi + Paso Asignar yi = yii(i) Llamar al subprograma Mostrar i, xi, k1, k2, k3, k4, yi Fin_para i 24. Para i = 2 hasta n - 1 Asignar suma = suma + yii(i) Fin_para i 25. Asignar area = (yii(1) + 2 * suma + yii(n)) * Paso / 2 64 MTI Marco Antonio Tong Gastelum
26. Visualizar area (Visualiza el rea por mtodo Trapezoidal) 27. Para i = 2 hasta n - 1 Paso 2 Asignar suma1 = suma1 + 4 * yii(i) Fin_para i 28. Para i = 3 hasta n - 1 Paso 2 Asignar suma2 = suma2 + 2 * yii(i) Fin_para i 29. Asignar area = (yii(1) + suma1 + suma2 + yii(n)) * Paso / 3# 30. Visualizar area (Visualiza el rea por mtodo Simpson 1/3) 31. Asignar RungeKutta4 = area 32. Fin (fin de la funcin RungeKutta4)
Subprograma Mostrar 4. Declarar el subprograma Mostrar(i, xi, k1, k2, k3, k4, yi) 5. Visualizar i, xi, k1, k2, k3, k4, yi ( visualizar en los respectivos listbox) (fin del subprograma Mostrar) 6. Fin
4) A la codificacin realizada, agrguele el cdigo siguiente: Function F(x) Dim xval As Double Dim Formula As String Dim OK As Boolean Dim Fun As New clsMathParser ' crear objeto Funcion Formula = txtFx OK = Fun.StoreExpression(Formula) ' leer Frmula If Not OK Then GoTo Error_Handler F = Fun.Eval1(x) 'evaluar Frmula en x If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription
Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear: List4.Clear List5.Clear: List6.Clear: List7.Clear IntegraRungeKutta4 End Sub 65 MTI Marco Antonio Tong Gastelum
Condicin inicial:
xi: x1: 0 0 yi: x2: 1 4
Paso:
0.5
Intervalo [x1,x2]:
8) Pruebe el programa con ejemplos resueltos en clase. 9) Guarde el archivo en una memoria Usb 10) Cierre el VisualBasic. 11) Apague la computadora siguiendo el procedimiento correcto. 12) Fin de la prctica.