Вы находитесь на странице: 1из 67

UNIVERSIDAD AUTONOMA DE SINALOA

FACULTAD DE INGENIERIA MOCHIS

MANUAL DE PRCTICAS DE MTODOS NUMRICOS


(INGENIERIA CIVIL, CICLO ESCOLAR 2008-2009 SEGUNDO SEMESTRE)

ELABOR: MTI. MARCO A TO IO TO G GASTLUM

Los Mochis, Sinaloa, Enero de 2009.

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

Prctica no. 4 Mtodo de ewton-Raphson 1er. Orden ..

16

Prctica no. 5 Mtodo de ewton-Raphson 2er. Orden ..

20

Prctica no. 6 Mtodo de Eliminacin de Gauss ...

26

Prctica no. 7 Mtodo de Gauss-Jordan ...

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

2 MTI Marco Antonio Tong Gastelum

PRACTICA o. 1 RESOLUCI DE RACES APROXIMADAS E EXCEL CO LA HERRAMIE TA SOLVER


OBJETIVO: Que el alumno utilice la herramienta SOLVER para la resolucin de races aproximadas de funciones algebraicas y trascendentales en el Excel. EQUIPO Y MATERIAL: Computadora y Hoja electrnica Excel FUNDAMENTO TERICO DEL MTODO DE SOLUCIN: Es posible resolver en Excel races de funciones algebraicas y trascendentales de una forma rpida y fcil, como se mostrar a continuacin. Para resolver las funciones se utilizar la herramienta Solver de Excel. Supngase que se tiene una funcin f(x), una factor de error y un valor inicial de la raz, por ejemplo:
xi= 1 f(x)= exp(-x)-ln(x) factor de error= 0.00000001

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 MTI Marco Antonio Tong Gastelum

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

xi= 1 f(x)= x^8-exp(x^2)-ln(x^2)-8Cos(x^3+4)-1 factor de error= 0.0001

Pasos a realizar en Excel: 1. Crear en Excel una hoja de la forma siguiente:

4 MTI Marco Antonio Tong Gastelum

2. La hoja se ver as:

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:

5 MTI Marco Antonio Tong Gastelum

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:

6 MTI Marco Antonio Tong Gastelum

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.

7 MTI Marco Antonio Tong Gastelum

PRACTICA o. 2 METODO DE TA TEOS


OBJETIVO: Que el alumno programe el mtodo de tanteos 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:

8 MTI Marco Antonio Tong Gastelum

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

9 MTI Marco Antonio Tong Gastelum

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

6) Haga clic derecho en proyecto1 y agregue el mdulo de clase clsMathParser

10 MTI Marco Antonio Tong Gastelum

7) Ejecute el programa e introduce los datos para probar el mtodo


f(x)= 2*x^2-sin(x)-3 xi: 1 delta x: 0.1 factor de error: 0.0000001 No. max. iteraciones: 35

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.

11 MTI Marco Antonio Tong Gastelum

PRACTICA o. 3 METODO DE BISECCIO ES


OBJETIVO: Que el alumno programe el mtodo de bisecciones 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:

12 MTI Marco Antonio Tong Gastelum

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

13 MTI Marco Antonio Tong Gastelum

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

6) Haga clic derecho en proyecto1 y agregue el mdulo de clase clsMathParser

14 MTI Marco Antonio Tong Gastelum

7) Ejecute el programa e introduce los datos para probar el mtodo


f(x)= exp(-x)-ln(x) x1: 1 x2: 2 factor de error: 0.0001 No. max. iteraciones: 25

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.

15 MTI Marco Antonio Tong Gastelum

13) Fin de la prctica.

PRACTICA o. 4 METODO DE EWTO -RAPHSO 1 ORDE

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:

16 MTI Marco Antonio Tong Gastelum

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

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 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

6) Haga clic derecho en proyecto1 y agregue el mdulo de clase clsMathParser

18 MTI Marco Antonio Tong Gastelum

7) Ejecute el programa e introduce los datos para probar el mtodo


f(x)= exp(-x)-ln(x) f'(x)= -exp(-x)+1/(-x) xi: 1 factor de error: 0.0001 No. max. iteraciones: 25

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.

19 MTI Marco Antonio Tong Gastelum

PRACTICA o. 5 METODO EWTO -RAPHSO

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:

20 MTI Marco Antonio Tong Gastelum

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

21 MTI Marco Antonio Tong Gastelum

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

22 MTI Marco Antonio Tong Gastelum

5) Haga clic derecho en Proyecto1 y agregue el mdulo mMathSpecFun

6) Haga clic derecho en proyecto1 y agregue el mdulo de clase clsMathParser

7) Ejecute el programa e introduce los datos para probar el mtodo


f(x)= exp(x)+2^(-x)+2*cos(x)-6 f'(x)= exp(x)-2^(-x)*ln(2)-2*sin(x) f''(xi)= exp(x)-ln(2)^2*2^(-x)-2*cos(x) xi: 1 factor de error: No. max. iteraciones: 0.0001 25

23 MTI Marco Antonio Tong Gastelum

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.

24 MTI Marco Antonio Tong Gastelum

PRACTICA o. 6 ECUACIO ES SIMULTA EAS CO ELIMI ACI DE GAUSS


OBJETIVO: Que el alumno programe el mtodo de Eliminacin de Gauss para resolucin de ecuaciones lineales simultneas , 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:

25 MTI Marco Antonio Tong Gastelum

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)

26 MTI Marco Antonio Tong Gastelum

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.

27 MTI Marco Antonio Tong Gastelum

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

28 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.

29 MTI Marco Antonio Tong Gastelum

PRACTICA o. 7 ECUACIO ES SIMULTA EAS CO GAUSS-JORDA


OBJETIVO: Que el alumno programe el mtodo de Gauss-Jordan para resolucin de ecuaciones lineales simultneas , 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:

30 MTI Marco Antonio Tong Gastelum

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

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.

33 MTI Marco Antonio Tong Gastelum

PRACTICA o. 8 ECUACIO ES SIMULTA EAS CO I VERSIO MATRICIAL


OBJETIVO: Que el alumno programe el mtodo de Inversin Matricial para resolucin de ecuaciones lineales simultneas , 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:

34 MTI Marco Antonio Tong Gastelum

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)

36 MTI Marco Antonio Tong Gastelum

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

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

37 MTI Marco Antonio Tong Gastelum

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.

38 MTI Marco Antonio Tong Gastelum

PRACTICA o. 9 ECUACIO ES SIMULTA EAS E EXCEL CO LA HERRAMIE TA SOLVER


OBJETIVO: El alumno resolver ecuaciones simultneas utilizando la hoja electrnica Excel, utilizando la herramienta Solver. EQUIPO Y MATERIAL: Computadora y Hoja electrnica Excel FUNDAMENTO TERICO DEL MTODO DE SOLUCIN: Es posible resolver en Excel sistemas de ecuaciones de N incgnitas de una forma rpida y fcil, como se mostrar a continuacin. Para resolver los sistemas de ecuaciones se utilizar la herramienta Solver de Excel. Estos sistemas de ecuaciones pueden ser de N incgnitas y no necesariamente tienen que ser ecuaciones lineales (ecuaciones lineales son aquellas que involucran solamente sumas y restas de una variable a la primera potencia y que no contiene productos ni divisiones entre las variables). Supngase que se tiene un sistema representado como:

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

39 MTI Marco Antonio Tong Gastelum

6) Resuelva el siguiente sistema de ecuaciones simultneas


5 X 4 X
1 1

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

Solucin: Se har referencia a la primera ecuacin como , a la segunda como . El

, 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

Se desea encontrar los valores de e . Pasos a realizar en Excel:

que causen que sean igual a cero;

, 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:

41 MTI Marco Antonio Tong Gastelum

Haz clic en el botn Estimar y los parmetros deben quedar como se muestra a continuacin:

12. Hacer clic en el botn Resolver y aparecer lo siguiente:

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

PRACTICA o. 10 ECUACIO ES SIMULTA EAS CO FU CIO ES DE EXCEL


OBJETIVO: El alumno resolver ecuaciones simultneas utilizando la hoja electrnica Excel, con las funciones minversa() y mmult(). EQUIPO Y MATERIAL: Computadora y Hoja electrnica Excel DESARROLLO DE LA PRACTICA: 7) 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. 8) Aparece el programa Excel

9) Resuelva el siguiente sistema de ecuaciones simultneas


5 X 4 X
1 1

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.

43 MTI Marco Antonio Tong Gastelum

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.

44 MTI Marco Antonio Tong Gastelum

PRACTICA o. 11 METODO DE I TEGRACIO TRAPEZOIDAL


OBJETIVO: Que el alumno programe el mtodo de integracin Trapezoidal para calcular el rea bajo la curva de una funcin f(x), 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:

45 MTI Marco Antonio Tong Gastelum

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

If Err Then GoTo Error_Handler Error_Handler: End Function Debug.Print Fun.ErrorDescription

Private Sub cmdCalcular_Click() List1.Clear: List2.Clear: List3.Clear IntegraTrapezoidal End Sub

5) Haga clic derecho en Proyecto1 y agregue el mdulo clsMathParser

6) Haga clic derecho en Proyecto1 y agregue el mdulo de clase mMathSpecFun

47 MTI Marco Antonio Tong Gastelum

7) Introduce los datos para probar el mtodo


f(x)= exp(x)-3*x*sin(x^2-6)-x^3+6 xi: 3 xf: 4 delta x: 0.1

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.

48 MTI Marco Antonio Tong Gastelum

PRACTICA o. 12 METODO DE I TEGRACIO SIMPSO 1/3


OBJETIVO: Que el alumno programe el mtodo de integracin Simpson 1/3 para calcular el rea bajo la curva de una funcin f(x), 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:

49 MTI Marco Antonio Tong Gastelum

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

6) Haga clic derecho en Proyecto1 y agregue el mdulo de clase mMathSpecFun

51 MTI Marco Antonio Tong Gastelum

7) Introduce los datos para probar el mtodo


f(x)= exp(x)-3*x*sin(x^2-6)-x^3+6 xi: 3 xf: 4 delta x: 0.1

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.

52 MTI Marco Antonio Tong Gastelum

PRACTICA o. 13 METODO DE ECUACIO ES DIFERE CIALES DE EULER


OBJETIVO: Que el alumno programe el mtodo de Euler para calcular el rea bajo la curva de una funcin f(x), teniendo como datos la derivada de f(x) y una condicin inicial, 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:

53 MTI Marco Antonio Tong Gastelum

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

55 MTI Marco Antonio Tong Gastelum

5) Haga clic derecho en Proyecto1 y agregue el mdulo clsMathParser

6) Haga clic derecho en Proyecto1 y agregue el mdulo de clase mMathSpecFun

7) Introduce los datos para probar el mtodo


Ecuacin diferencial:
f'(x)= -2*X^3+12*X^2-20*X+8.5

Condicin inicial:
xi: x1: 0 0 yi: x2: 1 4

Paso:

0.5

Intervalo [x1,x2]:

56 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.

57 MTI Marco Antonio Tong Gastelum

PRACTICA o. 14 METODO DE ECUACIO ES DIFERE CIALES DE RU GE-KUTTA (2do. Orden)


OBJETIVO: Que el alumno programe el mtodo de Runge-Kutta para calcular el rea bajo la curva de una funcin f(x), teniendo como datos la derivada de f(x) y una condicin inicial, 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:

58 MTI Marco Antonio Tong Gastelum

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

60 MTI Marco Antonio Tong Gastelum

5) Haga clic derecho en Proyecto1 y agregue el mdulo clsMathParser

6) Haga clic derecho en Proyecto1 y agregue el mdulo de clase mMathSpecFun

7) Introduce los datos para probar el mtodo


Ecuacin diferencial:
f'(x)= -2*X^3+12*X^2-20*X+8.5

Condicin inicial:
xi: x1: 0 0 yi: x2: 1 4

Paso:

0.5

Intervalo [x1,x2]:

61 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.

62 MTI Marco Antonio Tong Gastelum

PRACTICA o. 15 METODO DE ECUACIO ES DIFERE CIALES DE RU GE-KUTTA (4to. Orden)


OBJETIVO: Que el alumno programe el mtodo de Runge-Kutta para calcular el rea bajo la curva de una funcin f(x), teniendo como datos la derivada de f(x) y una condicin inicial, 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:

63 MTI Marco Antonio Tong Gastelum

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

5) Haga clic derecho en Proyecto1 y agregue el mdulo clsMathParser

6) Haga clic derecho en Proyecto1 y agregue el mdulo de clase mMathSpecFun

7) Introduce los datos para probar el mtodo


Ecuacin diferencial:
f'(x)= -2*X^3+12*X^2-20*X+8.5

Condicin inicial:
xi: x1: 0 0 yi: x2: 1 4

Paso:

0.5

Intervalo [x1,x2]:

66 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.

67 MTI Marco Antonio Tong Gastelum

Вам также может понравиться