DEPARTAMENTO DE MATEMATICA MAT-270 ANÁLISIS NUMÉRICO TAREA Nº 2. Fecha de entrega: 22 de Mayo de 2007. Integrantes: Felipe Hernández 2511022-6. Matthias Breytmann 2504082-1. Profesor : Wilmer Bazan. INDICE Introducción…………………………………………………………………………..2 Objetivos………………………………………………………………………………3 Problema 1 1.1……………………………………………………………………………..4 1.2……………………………………………………………………………..5 1.3. ……………………………………………………………………………5 1.4……………………………………………………………………………..6 1.5……………………………………………………………………………..7 1.6……………………………………………………………………………..8 1.7……………………………………………………………………………..9 Problema 2 2.1……………………………………………………………………………..14 2.2……………………………………………………………………………..14 2.3……………………………………………………………………………..16 Problema 3 3.1……………………………………………………………………………..19 3.2……………………………………………………………………………..19 3.3……………………………………………………………………………..24 3.4……………………………………………………………………………..26 1 INTRODUCCIÓN El siguiente trabajo consiste en la resolución de tres problemas que tienen relación con el método de diferencias finitas, función Spline e interpolación de Lagrange. El primer problema consiste en encontrar la distribución del calor de una barra uniforme que queda representada por una ecuación diferencial parcial mediante el método de diferencias finitas. Además se analizan la estabilidad de dicho método. El segundo problema consiste en el análisis de funciones spline que consiste en la interpolación por tramos de una función. El problema tres consiste en la resolución de un problema de una cierta propiedad del titanio que queda representada por una función que depende de la temperatura. Se dan los puntos y se realiza una interpolación polinomial para encontrar la función que modela dicha propiedad. Cabe señalar que para la solución de los problemas que se presentan a continuación se vio en la obligación de la utilización de softwares de matemáticas, con el fin de realizar las correspondientes iteraciones y ciclos de algoritmos necesarios. Esta utilización de software computacional ayuda en gran medida en el análisis de los problemas dados, ya que de otra manera sería incapaz de resolverse. Esta tarea es realizada en grupo correspondiente a dos alumnos, los cuales intercambian ideas, conceptos, y los problemas que son discutidos mutuamente para llegar a la solución deseada. Se hace un especial énfasis en el aporte que tiene esta iniciativa, para lograr una mejor percepción de los conceptos matemáticos, que involucran esta unidad de la asignatura. 2 OBJETIVOS. • • • • • • • • • • Lograr en conjunto con las técnicas aprendidas en cátedra la resolución de problemas matemáticos relacionados con análisis numérico. Enfrentar el problema de una ecuación diferencial parcial desde otro enfoque llegando a la solución mediante métodos iterativos. El estudio del método de Diferencias Finitas que tiene gran aplicación a ecuaciones diferenciales parciales. Entender los conceptos de funciones Spline. Lograr una aproximación polinomial por tramos de una función que modela cierta propiedad del titanio en función de la temperatura. Ser capaces de analizar que existen métodos iterativos más exactos y precisos que otros, para la solución de grandes sistemas lineales. De esta manera se obtendrán menores errores y por lo tanto una mejor aproximación en la solución entregada. Llevar a la práctica los conocimientos teóricos obtenidos en la sala de clases, para de esta forma relacionarlos con problemas cotidianos, como es el caso de la entrega de datos de un cierto problema físico o de otra índole, los cuales se desean modelar por medio de una función. Lograr que los alumnos aprendan a utilizar un software matemático, con el fin de programar los algoritmos necesarios para las soluciones de los problemas propuestos. Capacitar al alumno para que tenga la capacidad de resolver problemas matemáticos, a los que se puede ver enfrentado en su profesión o a lo largo de su carrera, a través de métodos numéricos, los que a pesar de contar con un cierto margen de error, son los verdaderamente necesarios a la hora de resolver problemas principalmente de ingeniería. Ser capaces de interpretar los resultados de los problemas, ya que el saber programar un algoritmo que entregue resultados, no asegura tener el problema resulto, éste se resuelve realmente cuando son interpretados los resultados o calculando los rangos de validez de las soluciones propuestas. 3 Pregunta 1 Para resolver la ecuación diferencial parcial u t = u xx que modela la distribución del calor en una placa uniforme se utiliza el método de Diferencias Finitas. L , y después se utiliza un tamaño de peso p del tiempo k. Los puntos de una malla para este caso son ( x i , t j ) , en donde Primero se selecciona un entero p>0 y h = tj = j⋅k j=0,1,2… xi = i ⋅ h i=0,1,2…p Entonces queda u t ( xi , t j ) = u xx ( xi , t j ) Expandiendo las derivadas parciales de u mediante el uso de Taylor se obtienen las siguientes expresiones: u t ( xi , t j ) = u ( x i , t j + k ) − u ( xi , t j ) u xx ( xi , t j ) = k k − u tt ( xi ,ψ j ) 2 u ( xi + h, t j ) − 2u ( xi , t j ) + u ( xi − h, t j ) k − h2 u xxxx (ς i , t j ) 12 h2 k u xxxx (ς i , t j ) son las expresiones que representan el error u tt ( xi ,ψ j ) y 12 2 al hacer la expansión de Taylor. En este caso se despreciará el error para facilitar los cálculos correspondientes. Los términos Para simplificar las expresiones se utiliza vij ≈ u ( x, t ) que se aproxima a la solución real u(x,t). Entonces las simplificaciones hechas para las expresiones que componen la expansión de Taylor de u xx y u u t son: vi , j +1 = u ( xi , t j + k ) vi , j = u ( xi , t j ) vi +1, j = u ( xi + h, t j ) vi −1, j = u ( xi − h, t j ) Juntando las relaciones anteriores en u xx = u t y despreciando el error antes mencionado se obtiene lo siguiente: vi +1, j − 2vij + vi −1, j vi , j +1 = k + vij h2 Y arreglando vi , j +1 para se obtiene vi , j +1 = k k k v + (1 − 2 2 )vij + 2 vi +1, j 2 i −1, j h h h 4 k se llega a la relación pedida: h2 vi , j +1 = sv i −1, j + (1 − 2 s )vij + svi +1, j para toda i=1,2…n Si se arregla con s = 1.2) La expresión vi , j +1 = svi −1, j + (1 − 2 s )vij + svi +1, j queda representada directamente con la matriz de forma tridiagonal (p-1)x(p-1) . Los elementos de la diagonal quedan determinados por la expresión v ij que está multiplicada por (1-2s). Los elementos que cumplen con i − j = 1 quedan determinados por la expresión vi +1, j y vi −1, j y son multiplicados por s. Por lo tanto la matriz queda de la siguiente forma: s 0 L 0⎤ ⎡1 − 2 s ⎢ s 1 − 2s O O M ⎥⎥ ⎢ A p −1 Xp −1= ⎢ 0 O O s 0⎥ ⎢ ⎥ O s 1 − 2s O⎥ ⎢ M ⎢⎣ 0 L 0 O O⎥⎦ Por lo tanto la resolución para la ecuación diferencial parcial consiste en realizar el siguiente algoritmo: w ( j ) = A ⋅ wij ( j −1) 1.3) jπ , 1≤ j ≤ n n +1 Para determinar la condición de estabilidad se debe cumplir la siguiente expresión: Como los autovalores de A son λ j = 1 − 2 s (1 − cos υ j ) , υ j = jπ )) ≤ 1 n +1 Esta condición de desigualdad debe conservarse también para cuando h → 0 y a su vez implica que j → ∞ por lo tanto ρ ( A) = 1 − 2 s (1 − cos( ⎡ ⎛ nπ ⎞ ⎤ lim ⎢cos ⎜ ⎟ ⎥ = cos π = −1 n →∞ ⎣ ⎝ n + 1 ⎠⎦ Entonces el máximo autovalor se encontrará en λ j = 1 − 2 s (1 + 1) . Analizando la estabilidad se determina por definición que ésta ocurrirá sólo si ρ ( A) < 1 y como el radio espectral ρ ( A) = máx λ j se tiene entonces que 1 − 4s < 1 , lo cual será la restricción buscada para s: 5 1 − 4s < 1 ò − 1 + 4 s < 1 1 0<s ò s< 2 1 2 1.4) Para obtener la matriz B solo basta con despejarla, entonces: La restricción entonces es 0 < s < s 0 0⎤ L ⎡1 − 2 s ⎡1 0 L 0 ⎤ ⎢ s 1 − 2s O O M ⎥⎥ ⎢ ⎢ 0 O O M ⎥⎥ −⎢ 0 = s [ B] 0⎥+⎢ s O O ⎢ ⎥ ⎢M O 1 0 ⎥ s 1 − 2 s O⎥ ⎢ O ⎥ ⎢ M ⎣0 L 0 O⎦ ⎢⎣ 0 0 L O O⎥⎦ Como I-A=sB la matriz siguiente representa sB ⎡ 2s ⎢−s ⎢ ⎢0 ⎢ ⎢M ⎢⎣ 0 −s 0 L 0 ⎤ 2 s O O M ⎥⎥ O O −s 0 ⎥ = s [ B] ⎥ O − s 2 s O⎥ L 0 O O⎥⎦ Se factoriza y simplifica por s ⎡2 ⎢ −1 ⎢ s/ ⎢ 0 ⎢ ⎢M ⎢⎣ 0 −1 0 L 0 ⎤ 2 O O M ⎥⎥ O O −1 0 ⎥ = s/ [ B ] ⎥ O −1 2 O⎥ L 0 O O⎥⎦ Se obtienen los valores de la matriz tridiagonal B que consta de p-1 columnas y filas. ⎡2 ⎢ −1 ⎢ ⎢0 ⎢ ⎢M ⎢⎣ 0 −1 0 L 2 O O 0⎤ M ⎥⎥ O O −1 0 ⎥ = [ B ] ⎥ O −1 2 O⎥ L 0 O O⎥⎦ Para encontrar una relación entre los autovalores de A y B se definen: det( A − λI ) = 0 donde λ son los autovalores de A det( B − σI ) = 0 donde σ son los autovalores de B Reemplazando A = I − sB en det( A − λI ) = 0 se obtiene: det( I − sb − λI ) = 0 det( 1−sλ I − B) = 0 det( B − 1−sλ I ) = 0 6 Comparando con la expresión Det(B- σI ) =0 se deduce que los autovalores de B y A cumplen con: 1− λ σ= s 1.5 Dado h = 10 −1 En la sección 1.3 se encontró la restricción para 0 < s < 1 k y como s = 2 se tiene lo 2 h siguiente: 1 k 0< 2 < 2 h 0< 1 k < −1 2 2 (10 ) 10 −2 0<k < 2 1 0<k < 200 Entonces sería adecuado un valor de k=0.005 obteniendo un s=0.5. Pero la desigualdad 0<s<0.5 es una aproximación en donde n está cercano a n+1. Para verificar que el sistema queda realmente estable con los valores de k y h se debe calcular el radio espectral mediante la fórmula λ j = 1 − 2s (1 − cos nj+π1 ) con j=0,1…9 ρ ( A) = (1 − 2(0.5)(1 − (−.9510565163)) ) obteniéndose el máximo cuando j=9 ρ ( A) = 0.9510565<1 Lo cual verifica entonces que el valor elegido para k=0.005 permite la estabilidad del sistema. 7 1.6 Se puede encontrar un valor para wopt correspondiente a la matriz B, sólo basta con encontrar la matriz de iteración de Gauss Seidel o Jacobi y obtener su radio esectral. ⎡2 ⎢ −1 ⎢ ⎢0 ⎢ ⎢M ⎢⎣ 0 −1 0 L 2 O O O O −1 0⎤ M ⎥⎥ 0 ⎥ = [ B] ⎥ O −1 2 O⎥ L 0 O O⎥⎦ B se descompone en sus partes diagonales D y en sus partes tridiagonales superior e inferior U y L B = D − L −U Dnxn ⎛2 0 0 0 ⎜ ⎜0 2 0 0 = ⎜0 0 2 0 ⎜ ⎜0 0 0 2 ⎜0 O O O ⎝ 0⎞ ⎛0 0 0 0 ⎜ ⎟ O⎟ ⎜1 0 0 0 ⎟ O Lnxn = ⎜ 0 1 0 0 ⎜ ⎟ O⎟ ⎜0 0 1 0 ⎜0 O O O ⎟ O⎠ ⎝ 0⎞ ⎛0 1 0 0 ⎜ ⎟ O⎟ ⎜0 0 1 0 ⎟ O U nxn = ⎜ 0 0 0 1 ⎜ ⎟ O⎟ ⎜0 0 0 0 ⎜0 O O O ⎟ O⎠ ⎝ 0⎞ ⎟ O⎟ O⎟ ⎟ O⎟ O⎟⎠ l , se despeja n obteniéndose n = 9 . Las matrices mencionadas n +1 anteriormente corresponden a matrices 9x9. Como h = Utilizando la matriz de iteración del método de Jacobi T j = D −1 ( L + U ) se obtiene: T jacobi _ 9 x 9 ⎛0 ⎜1 ⎜2 ⎜0 ⎜ ⎜0 ⎜ = ⎜0 ⎜0 ⎜ ⎜0 ⎜0 ⎜⎜ ⎝0 1 2 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0⎞ ⎟ 1 0 0 0 0 0 0⎟ 2 0 12 0 0 0 0 0 ⎟ ⎟ 1 0 12 0 0 0 0 ⎟ 2 ⎟ 0 12 0 12 0 0 0 ⎟ 0 0 12 0 12 0 0 ⎟ ⎟ 0 0 0 12 0 12 0 ⎟ 0 0 0 0 12 0 12 ⎟ ⎟ 0 0 0 0 0 12 0 ⎟⎠ Se calcula entonces el máximo de los autovalores de la matriz T j directamente con la calculadora TI y se obtiene: ρ (T j ) = 0,951056516296 <1 8 Por lo tanto reemplazando en la fórmula para wopt : Wop = Wop = 2 1 + 1 − [ ρ (T j ) ] 2 2 1 + 1 − [0,951056516296 ]2 Wop = 1,5278640450 034 Se debe tener en cuenta que para un n muy grande el valor de wopt tiende a 2, por lo tanto todos los valores estarán bajo 2, de lo que se deduce que el método SOR converge a una solución. 1.7) Se sabe que la solución real es u ( x, t ) = e − t cos(π ( x − 12 )) 0 ≤ x ≤ 1 Se debe seleccionar un entero p>0 y sea h=L/p, y como se tienen los valores de h y L, se obtiene p=10 Utilizando vi , j +1 = svi −1, j + (1 − 2 s )vij + svi +1, j se llega a la solución aproximada de la ecuación con s = π 2kh 2 =0.4052847, la cual cumple con las condiciones de estabilidad encontradas en 1.3. La matriz A9 x 9 del método de diferencias asociada al este problema queda determinada por: ⎛1 − π82 ⎜ 4 ⎜ π2 ⎜ 0 ⎜ ⎜ 0 ⎜ A=⎜ 0 ⎜ 0 ⎜ ⎜ 0 ⎜ 0 ⎜ ⎜ 0 ⎝ 4 0 π2 1− π2 8 4 π2 0 0 0 4 π2 1− π2 8 4 π2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 π2 1− π2 8 4 π2 0 4 π2 1− π2 8 4 π2 0 0 0 0 0 0 0 0 0 0 0 0 4 π2 1− π2 8 4 π2 0 0 4 0 π2 1− π2 8 4 π2 0 4 π2 1 − π82 4 π2 0 ⎞ ⎟ 0 ⎟ 0 ⎟ ⎟ 0 ⎟ ⎟ 0 ⎟ 0 ⎟ ⎟ 0 ⎟ 4 ⎟ π2 ⎟ 1 − π82 ⎟⎠ 9 Con las condiciones de Borde: w0,1 = wn +1,1 = 0 g ( xi ) = cos(π ( xi − 12 )) El dato de entrada es: (0) wi , 0 ( g ( x1 ), g ( x 2 )....g ( x9 )) t El método realiza j iteraciones obteniéndose ( j) wij = ( w1 j , w2 j ,....w9 j ) t para j=1,2,3... Entonces como ya se tienen los puntos iniciales queda resolver el sistema lineal de 9 incógnitas: w ( j ) = A ⋅ wij ( j −1) ⎛ w1 j ⎞ ⎛1 − π82 ⎜ ⎟ ⎜ 4 w ⎜ 2j ⎟ ⎜ π2 ⎜w ⎟ ⎜ 0 ⎜ 3j ⎟ ⎜ ⎜ w4 j ⎟ ⎜ 0 ⎜ ⎟ ⎜ ⎜ w5 j ⎟ = ⎜ 0 ⎜ w6 j ⎟ ⎜ 0 ⎜ ⎟ ⎜ w 7 j ⎜ ⎟ ⎜ 0 ⎜ w8 j ⎟ ⎜ 0 ⎜⎜ ⎟⎟ ⎜ ⎜ w 9 j ⎝ ⎠ ⎝ 0 4 π2 1 − π82 4 π2 0 0 0 0 0 0 0 4 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 π2 1 − π82 4 π2 π2 1 − π82 4 4 π2 1 − π82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 π2 0 4 π2 4 π2 1− π2 8 4 π2 0 0 4 π2 1 − π82 4 π2 0 4 π2 1 − π82 4 π2 0 ⎞ ⎛ w1, j −1 ⎞ ⎟ ⎜ ⎟ 0 ⎟ ⎜ w2, j −1 ⎟ 0 ⎟ ⎜ w3, j −1 ⎟ ⎟ ⎜ ⎟ 0 ⎟ ⎜ w4, j −1 ⎟ ⎟ 0 ⎟ ⋅ ⎜⎜ w5, j −1 ⎟⎟ 0 ⎟ ⎜ w6, j −1 ⎟ ⎟ ⎜ ⎟ 0 ⎟ ⎜ w7 , j −1 ⎟ 4 ⎟ ⎜ w8, j −1 ⎟ π2 ⎟ ⎜ ⎟ 1 − π82 ⎟⎠ ⎜⎝ w9, j −1 ⎟⎠ para j=1,2…. Y utilizando el algoritmo correspondiente se llega a la solución aproximada wij ≈ u ( x, t ) que se compara con la solución real en la siguiente tabla. Los resultados de las iteraciones son las siguientes 10 ⎛ 0.309017 ⎞ ⎜ ⎟ ⎜ 0.587785 ⎟ ⎜ 0.809017 ⎟ ⎜ ⎟ ⎜ 0.951057 ⎟ ⎟ =⎜ 1 ⎜ ⎟ ⎜ 0.951057 ⎟ ⎜ 0.809017 ⎟ ⎜ ⎟ ⎜ 0.587785 ⎟ ⎜ 0.309017 ⎟ ⎝ ⎠ ⎛ 0.296758 ⎞ ⎛ 0.284985 ⎞ ⎛ 0.273679 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.564467 ⎟ ⎜ 0.542073 ⎟ ⎜ 0.520568 ⎟ ⎜ 0.776922 ⎟ ⎜ 0.746099 ⎟ ⎜ 0.7165 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.913326 ⎟ ⎜ 0.877093 ⎟ ⎜ 0.842296 ⎟ v (0) v (1) = ⎜ 0.960328 ⎟ v (2) = ⎜ 0.92223 ⎟ v (3) = ⎜ 0.885643 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.913326 ⎟ ⎜ 0.877093 ⎟ ⎜ 0.842296 ⎟ ⎜ 0.776922 ⎟ ⎜ 0.746099 ⎟ ⎜ 0.7165 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.564467 ⎟ ⎜ 0.542073 ⎟ ⎜ 0.520568 ⎟ ⎜ 0.296758 ⎟ ⎜ 0.284985 ⎟ ⎜ 0.273679 ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎛ 0.262821 ⎞ ⎛ 0.252395 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ 0.499916 ⎟ ⎜ 0.480083 ⎟ ⎜ 0.688075 ⎟ ⎜ 0.660778 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.808881 ⎟ ⎜ 0.776791 ⎟ y así sucesivamente v (4) = ⎜ 0.850508 ⎟ v (5) = ⎜ 0.816766 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.808881 ⎟ ⎜ 0.776791 ⎟ ⎜ 0.688075 ⎟ ⎜ 0.660778 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0.499916 ⎟ ⎜ 0.480083 ⎟ ⎜ 0.262821 ⎟ ⎜ 0.252395 ⎟ ⎝ ⎠ ⎝ ⎠ Mediante el algoritmo que se encuentra en el anexo se realizan 100 iteraciones y a continuación se comparan los resultados obtenidos con la solución real. v (100 ) ⎛ 0.242382 ⎞ ⎟ ⎜ ⎜ 0.461037 ⎟ ⎜ 0.634563 ⎟ ⎟ ⎜ ⎜ 0.745974 ⎟ = ⎜⎜ 0.784363 ⎟⎟ ⎜ 0.745974 ⎟ ⎟ ⎜ ⎜ 0.634563 ⎟ ⎜ 0.461037 ⎟ ⎟⎟ ⎜⎜ ⎝ 0.242382 ⎠ ⎛ 0.243081 ⎞ ⎜ ⎟ ⎜ 0.462368 ⎟ ⎜ 0.636395 ⎟ ⎜ ⎟ ⎜ 0.748128 ⎟ u ( xi , 0.24) = ⎜ 0.786628 ⎟ ⎜ ⎟ ⎜ 0.748128 ⎟ ⎜ 0.636395 ⎟ ⎜ ⎟ ⎜ 0.462368 ⎟ ⎜ 0.243081 ⎟ ⎝ ⎠ Se observa que la solución se acerca bastante a la solución real al hacer la comparación por lo tanto el método iterativo de diferencias finitas logra aproximarse a la solución real. 11 Conclusiones • Para resolver la ecuación diferencial parcial parabólica que modela la distribución del calor en una barra uniforme se utilizó el método de diferencias finitas, el cual por medio de métodos iterativos logra una aproximación a la solución real de la ecuación. • Al sustituir las variables t j = j ⋅ k u t ( xi , t j ) = u xx ( xi , t j ) y xi = i ⋅ h y expandir la ecuación mediante Taylor, se encuentran los valores para vi , j +1 = svi −1, j + (1 − 2 s )vij + svi +1, j , para i=1,2…p lo que se transforma a un sistema lineal de p-1 incógnitas. Entonces la solución se obtiene utilizando cualquier método de iteración para sistemas lineales y se logra una aproximación a la solución de la ecuación del calor u t = u xx . Éste método tiene el nombre de Método de Diferencias Progresivas. • • • • • Cabe mencionar que al introducir las funciones expandidas de Taylor en u t ( xi , t j ) = u xx ( xi , t j ) se produce un error de truncamiento para la ecuación de diferencias el cual es despreciado. Éste vale: h2 k u xxxx (ς i , t j ) τ = u tt ( xi ,ψ j ) 12 2 Para determinar si el sistema lineal encontrado por diferencias finitas ( j −1) w ( j ) = A ⋅ wij es estable se debe cumplir ρ ( A) < 1 , y ésto implica que el máximo autovalor de la matriz A debe ser menor que uno, y para ello se determinaron restricciones que debe cumplir el valor de s ya que los autovalores dependían de este parámetro. Estas restricciones proporcionan la condición de estabilidad del sistema. Para el punto 1.4 se determinó la relación que deben cumplir los autovalores de la matriz A y B. Si existe un máximo entre estos autovalores es posible determinar entonces la convergencia de dicha matriz para un sistema. Para el punto 1.5 dado un h es posible determinar la restricción que debe cumplir k para que el sistema sea estable, como se demostró ya obtenidos estos valores es posible introducirlos en la ecuación que determinar los autovalores y siempre se cumplirá la condición de estabilidad ρ ( A) < 1 . Para el problema 1.6 sí es posible determinar un wopt ya que la matriz B es 9x9 y se puede descomponer como D-L-U y encontrar la matriz de iteración correspondiente al método de Gauss Seidel o Jacobi TG y TJ respectivamente. Determina el radio espectral ρ (TG ) o ρ (TJ ) y se evalúa en la fórmula para wopt . Si el radio espectral para la matriz T de GS o Jacobi es menor que 1 • • entonces la matriz B converge a una solución de un sistema lineal. Para el problema 1.7 se debió resolver la ecuación dada mediante Diferencias Finitas, para ello los procedimientos descritos para transformar el problema en un sistema lineal llegando así a una solución aproximada. Para la resolución de este tipo de problemas se cuentan con variados métodos iterativos, algunos más precisos que otros debido al orden de convergencia que 12 presentan y la estabilidad. Se cuenta con el método de diferencias finitas progresivas, regresivas como también el método de Richardson los cuales no son siempre estables, en cambio el método de Carl- Nicolson es incondicionalmente estable y tiene un orden de convergencia mayor. En este caso se utilizaron diferencias finitas progresivas y se analizó en profundidad las condiciones que debe cumplir para que el método sea estable. 13 Pregunta 2 2.1) Cada polinomio cúbico involucra cuatro valores constantes como incógnitas. Por lo tanto para cada i = 1, 2,..., n el polinomio que determinado por cuatro constantes ai , bi , ci y di , por lo que se tendrán 4n constantes que se deben determinar. Se tienen n subintervalos [ x0, x1 ] , [ x1, x2 ] , …, [ xn−1, xn ] y por lo tanto cada punto xi , i = o,1, 2,..., n tiene dos restricciones de continuidad en sus derivadas. Se debe cumplir s ( j ) ( xi + 0) = s (j) ( xi − 0); i = 1, 2,..., n − 1, j = 0,1, 2 una por la izquierda y una por la derecha, excepto en x0 y en xn que son los extremos y existe solo una condición de continuidad, por lo tanto existen 2( n − 1) condiciones. Además en cada subintervalo hay dos condiciones ya que con s ( xi ) = yi se añaden 2n condiciones más. En total se tienen 2( n − 1) + 2n = 4n − 2 condiciones esto da como resultado dos condiciones menos que la cantidad de incógnitas del problema, 4n esto implica que se tendrán dos grados de libertad para la elección de los coeficientes de un polinomio cúbico. 2.2) Como s ( x) = ai x 3 + bi x 2 + ci x + d i se obtienen las derivadas siguientes para valores de xi s ''( x) = 6ai x + 2bi s ''( xi ) = 6ai xi + 2bi s ''( xi+1 ) = 6ai xi+1 + 2bi Se puede resolver entonces el siguiente sistema de ecuaciones: 6ai xi + 2bi = M i 6ai xi+1 + 2bi = M i+1 Resolviendo para b y a se tiene bi = xi M i+1 − xi +1M i 2( xi − xi +1 ) 14 2( M i − M i+1 ) M i − M i+1 = ai = 12( xi − xi+1 ) 6( xi − xi+1 ) Reemplazando en la ecuación: s ''( x) = 6( M i − M i+1 ) 2( xi M i+1 − xi+1M i ) ( xi+1 − x) M i + ( x − xi ) M i+1 x+ = 6( xi − xi+1 ) 2( xi − xi+1 ) hi Partiendo de la ecuación anterior e integrando se tiene la expresión para s′( x ) la cual es s′( x) = − M i x 2 M i +1 x 2 M i +1 xi x M i xi +1 x + − + + C1 2hi 2hi hi hi Integrando nuevamente se obtiene: s ( x) = − M i x 3 M i +1 x 3 M i xi +1 x 2 M i +1 xi x 2 + − + + C1 x + C2 6hi 6hi 2hi 2hi Arreglando la ecuación de forma que quede más ordenado se tiene que ( xi +1 − x)3 M i + ( x − xi )3 M i +1 s ( x) = + C1 ( xi +1 − x) + C2 ( x − xi ) 6hi (a) Usando la ecuación s( xi ) = yi , i = 0,1,...n y reemplazando en (a) se obtienen los siguientes valores para las constantes C1 y C2 : y hM C1 = i − i i hi 6 C2 = yi +1 hi M i +1 − hi 6 Sustituyendo el valor de las constantes en la ecuación (a), se tiene que ⎛ yi +1 hi M i +1 ⎞ ( xi +1 − x)3 M i + ( x − xi )3 M i +1 ⎛ yi hi M i ⎞ +⎜ − − s ( x) = ⎟ ( xi +1 − x) + ⎜ ⎟ ( x − xi ) 6hi 6 ⎠ 6 ⎠ ⎝ hi ⎝ hi ( xi +1 − x)3 M i + ( x − xi )3 M i +1 ( xi +1 − x) yi + ( x − xi ) yi +1 hi [ ( xi +1 − x) M i + ( x − xi ) M i +1 ] + − 6hi hi 6 Por lo que se demuestra la pregunta 2.2 = 15 2.3) Para el intervalo [ xi , xi +1 ] se tiene que: s '( x) = −( xi +1 − x) 2 M i + ( x − xi ) 2 M i +1 yi +1 − yi ( M i +1 − M i ) + − hi 2hi hi 6 Para el intervalo [ xi −1 , xi ] se tiene que: −( xi − x) 2 M i −1 + ( x − xi −1 ) 2 M i yi − y i −1 ( M i − M i −1 ) s '( x) = + − hi −1 2hi −1 hi −1 6 Como lim+ s '( x) = lim− s '( x) x → xi x → xi Se reemplazan los valores de x para que se cumpla la condición de continuidad. lim+ x→xi −(xi − x)2 Mi−1 + (x − xi−1)2 Mi yi − y i−1 (Mi − Mi−1) −(x − x)2 Mi + (x − xi )2 Mi+1 yi+1 − yi (Mi+1 − Mi ) + − hi−1 = lim− i+1 + − hi x→xi 2hi−1 hi−1 6 2hi hi 6 hi −1M i hi M i M i hi −1 M i −1hi −1 M i +1hi M i hi yi +1 − yi yi − yi −1 + − + + − = − hi hi −1 2 2 6 6 6 6 3hi −1M i − hi −1M i 3hi M i − hi M i hi −1M i −1 hi M i +1 yi +1 − yi yi − yi −1 + + + = − 6 6 6 6 hi hi −1 hi −1 h +h h y − y y − yi −1 M i −1 + i i −1 M i + i M i +1 = i +1 i − i hi hi −1 6 3 6 ; para i = 1, 2,...n Lo que comprueba la pregunta 2.3 Caso 1 Para la relación AM = D ⎛ y2 − y1 y1 − y0 ⎞ − ⎜ ⎟ h1 h0 ⎜ ⎟ ⎛ M1 ⎞ ⎜ y3 − y2 y2 − y1 ⎟ ⎜ ⎟ − ⎜ ⎟ ⎜ M2 ⎟ h2 h1 ⎜ ⎟ M =⎜ M ⎟ y D= ⎜ ⎟ M ⎜ ⎟ M ⎜ ⎟ ⎜ ⎟ M ⎜ ⎟ ⎜M ⎟ ⎝ n−1 ⎠ ⎜ yn − yn−1 yn−1 − yn−2 ⎟ − ⎜ ⎟ hn−2 ⎠ ⎝ hn−1 Iterando: • Para i = 1 tenemos que la relación es: 16 h0 h +h h y −y y −y M 0 + 1 0 M1 + 1 M 2 = 2 1 − 1 0 6 3 6 h1 h0 • Para i = 2 es: pero Mo=0 y − y2 y2 − y1 h1 h +h h − M1 + 2 1 M 2 + 2 M 3 = 3 h2 h1 6 3 6 • Para i = 3 es: h +h h y − y3 y3 − y2 h2 − M2 + 3 2 M3 + 3 M4 = 4 h3 h2 6 3 6 • Para i = n − 2 se tiene que: hn −3 h +h h y − yn − 2 yn − 2 − yn − 3 M n −3 + n − 2 n −3 M n − 2 + n − 2 M n −1 = n −1 − hn − 2 hn −3 6 3 6 • Finalmente para i = n − 1 se tiene: hn−2 h +h h y − yn−1 yn−1 − yn−2 M n−2 + n−1 n−2 M n−1 + n−1 M n = n − hn−1 hn−2 6 3 6 con Mn=0 Iterando hasta n-1 se va completando la matriz A con los coeficientes correspondientes: ⎛ h1 + h0 ⎜ 3 ⎜ ⎜ h1 ⎜ 6 ⎜ ⎜ 0 ⎜ ⎜ M ⎜ A=⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ M ⎜ ⎜ ⎜ 0 ⎝ h1 6 h2 + h1 3 h2 6 O 0 L L L h2 6 h3 + h2 3 O h3 0 L L 6 O O O O O O O O 0 L L L L O L O O O hn−3 6 L 0 O hn−2 + hn−3 3 hn−2 6 ⎞ ⎟ ⎟ ⎟ 0 ⎟ ⎟ ⎟ 0 ⎟ ⎟ M ⎟ ⎟ ⎟ ⎟ ⎟ M ⎟ 0 ⎟ hn−2 ⎟ ⎟ 6 ⎟ hn−1 + hn−2 ⎟ ⎟ 3 ⎠ 0 Entonces AM=D queda de la siguiente forma: ⎛ h1 + h0 ⎜ 3 ⎜ ⎜ h1 ⎜ 6 ⎜ ⎜ 0 ⎜ ⎜ M ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ M ⎜ ⎜ ⎜ 0 ⎝ h1 6 h2 + h1 3 h2 6 O 0 L L L h2 6 h3 + h2 3 O h3 0 L L 6 O O O O O O O O 0 L L L L O O O hn−3 O 6 L L 0 O hn−2 + hn−3 3 hn−2 6 ⎞ ⎛ y2 − y1 y1 − y0 ⎞ − ⎟ ⎜ ⎟ h1 h0 ⎟ ⎜ ⎟ ⎟ M ⎜ ⎟ − − ⎛ ⎞ y y y y 1 3 2 0 − 2 1 ⎟ ⎟⎜ ⎟ ⎜ h h M 2 1 ⎟⎜ 2 ⎟ ⎜ ⎟ ⎟ ⎜ M 3 ⎟ ⎜ y4 − y3 y3 − y2 ⎟ 0 − ⎟⎜ ⎟ ⎜ ⎟ h3 h2 ⎟⎜ M ⎟ ⎜ ⎟ M ⎟⎜ M ⎟ ⎜ ⎟ M ⎟⎜ ⎟=⎜ ⎟ M ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ M ⎟ ⎟⎜ M ⎟ ⎜ ⎟ 0 ⎟⎜ ⎟ ⎜ ⎟ M n − 2 ⎟ ⎜ ⎟ ⎜ ⎟ hn−2 ⎟ ⎜⎝ M n−1 ⎠⎟ ⎜ M ⎟ 6 ⎟ ⎜ ⎟ hn−1 + hn−2 ⎟ ⎜ yn − yn−1 − yn−1 − yn−2 ⎟ ⎜ h ⎟ hn−2 ⎟⎠ n −1 ⎝ 3 ⎠ 0 17 Conclusiones: • • • • El hecho de tener n intervalos implica que entre cada punto xi , i = o,1, 2,..., n se tienen dos restricciones de continuidad en sus derivadas, excepto en los extremos x0 y en xn existe solo una condición de continuidad, por lo tanto existen 2( n − 1) condiciones. Además en cada subintervalo hay dos condiciones más, lo que trae como resultado dos ecuaciones menos que incógnitas y esto implica que se tendrán dos grados de libertad para la elección de los coeficientes de la función Las condición de primeras y segundas derivadas en los puntos que deben ser continuas implican que la curva que se generará entre esos puntos sea continua y suave. Al especificar condiciones para los puntos se remueven los grados de libertad y hay tres formas para ello, las cuales son Spline Natural, Spline Forzado y Spline de Nudo a Nudo. Al realizar aproximaciones mediante splines se estimó una cota para el error mediante el máximo valor que toma h. 18 Pregunta 3 3.1) Se determina la función Spline cúbica interpola f. La función Spline viene definida en el programa Mathematica, para activarla se debe agregar el siguiente comando. <<NumericalMath`SplineFit` Luego tomando de los datos dados solo los impares, para posteriormente poder comparar la calidad de la aproximación de la función con los números pares. En los puntos el valor de T viene dado por la función Ti = 858 + 10i con i = 1,2..., 49 Entonces, tomando los puntos impares y tomando para el primer dato i=1, para el segundo i=3 y así sucesivamente, debido a que se salta el i de los numero pares, se escribe en el software lo siguiente. Puntos = {868,0.644},{888,0.638},{908,0.652},{928,0.646},{948,0.652},{968,0.644}, {988,0.663},{1008,0.676},{1028,0.686},{1048,0.678},{1068,0.694},{1088,0.71},{110 8,0.763},{1128,0.907},{1148,1.336},{1168,2.169},{1188,1.598},{1208,0.916},{1228, 0.672},{1248,0.615},{1268,0.606},{1288,0.603},{1308,0.603},{1328,0.611},{1348,0. 608}} sp=SplineFit[puntos,Cubic] lo que arroja SplineFunction[ Cubic , {0.,24.} , <>] Luego para graficar la función encontrada se arroja el siguiente comando S=ParametricPlot[sp[v],{v,0,24},PlotRange→All,Compiled→False] 2 1.75 1.5 1.25 1000 1100 1200 1300 0.75 3.2) Determine la polinomial cuadrática por tramos que interpola f. Para encontrar la función P utilizamos el teorema de Lagrange, nuevamente tomando los puntos impares, por lo que se explico anteriormente, luego por ser cuadrática se 19 toman tres puntos impares consecutivos y se llega a los polinomios usando el algoritmo que se encuentra en el anexo. Que arroja los siguientes resultados pa@x_D = 0.000025 x2 − 0.0442 x + 20.174 pb@x_D = 0.000015 x2 − 0.02784 x + 13.56376 pc@x_D = 0.00003375 x2 − 0.065065 x + 32.0024 pd@x_D = −0.00000375 x2 + 0.008135 x − 3.71384 pe@x_D = 0.00003 x2 − 0.06268 x + 33.41752 pf@x_D = 0.00004625 x2 − 0.098915 x + 53.58136 pg@x_D = 0.00035625 x2 − 0.789375 x + 438.0352 ph@x_D = −0.001755 x2 + 4.10623 x − 2399.69452 pi@x_D = 0.0005475 x2 − 1.34591 x + 827.82824 pj@x_D = 0.00006 x2 − 0.15141 x + 96.12444 pk@x_D = 0.00000375 x2 − 0.009735 x + 6.92064 pl@x_D = −0.00001375 x2 + 0.036645 x − 23.80428 Posteriormente se grafican cada una de estas funciones a=Plot[pa[x],{x,868,908}] b=Plot[pb[x],{x,908,948}] c=Plot[pc[x],{x,948,988}] d=Plot[pd[x],{x,988,1028}] e=Plot[pe[x],{x,1028,1068}] f=Plot[pf[x],{x,1068,1108}] g=Plot[pg[x],{x,1108,1148}] h=Plot[ph[x],{x,1148,1188}] i=Plot[pi[x],{x,1188,1228}] j=Plot[pj[x],{x,1228,1268}] k=Plot[pk[x],{x,1268,1308}] l=Plot[pl[x],{x,1308,1348}] 0.646 0.644 0.642 880 890 900 0.638 Graphics (a) 20 0.652 0.651 920 930 940 0.649 0.648 0.647 0.646 Graphics (b) 0.656 0.654 0.652 960 970 980 0.648 0.646 0.644 Graphics (c) 0.685 0.68 0.675 1000 1010 1020 0.665 Graphics (d) 0.6925 0.69 0.6875 0.685 0.6825 1040 1050 1060 0.6775 Graphics (e) 21 0.76 0.75 0.74 0.73 0.72 0.71 1080 1090 1100 Graphics (f) 1.3 1.2 1.1 1120 1130 1140 0.9 0.8 Graphics (g) 1160 1170 1180 1210 1220 1.8 1.6 1.4 Graphics (h) 1.6 1.4 1.2 1200 0.8 Graphics (i) 22 0.67 0.66 0.65 0.64 0.63 0.62 1240 1250 1260 Graphics (j) 0.6045 0.604 0.6035 1280 1290 1300 1330 1340 Graphics (k) 0.611 1320 0.609 0.608 0.607 0.606 Graphics (l) Luego para mostrar la función P que es equivalente a la unión de todas las graficas anteriores se usa el siguiente comando. P=Show[a,b,c,d,e,f,g,h,i,j,k,l] 1000 1100 1200 1300 0.9 0.8 0.7 0.6 23 Que representa una función continua. Cabe mencionar que la función se corta en el gráfico mostrado y se debe al software que se utitilizó. 3.3) Determine la polinomial cúbica por tramos que interpola f. Para encontrar la función R se utiliza el teorema de Lagrange, tomando nuevamente los puntos impares, por lo que se explico anteriormente, luego por ser cúbica se toman cuatro puntos impares consecutivos y se llega a los polinomios usando el algoritmo mostrado anteriormente. Al ingresar los puntos arroja las siguientes funciones. ra@x_D := −0.000000833333 x3 + 0.002245 x2 − 2.01522666666 x + 603.400559999 rb@x_D := 0.000000854167 x3 − 0.00244675 x2 + 2.33571733333 x − 742.429584 rc@x_D := −0.0000003125 x3 + 0.00094125 x2 − 0.944299999999 x + 316.22032 rd@x_D := 0.000000770833 x3 − 0.00246975 x2 + 2.63818466667 x − 938.849808 re@x_D := 0.000002479167 x3 − 0.00803325 x2 + 8.67298933332 x − 3119.06805599 rf@x_D := 0.0000114375 x3 − 0.040902 x2 + 48.720511 x − 19328.566216 rg@x_D := −0.000000875 x3 + 0.003336 x2 − 4.239508 x + 1796.482008 rh@x_D := −0.000000395833 x3 + 0.00156325 x2 − 2.05745266666 x + 903.042775999 Luego se grafica cada función mediante el siguiente comando: a1=Plot[ra[x],{x,868,928}] a2=Plot[rb[x],{x,928,988}] a3=Plot[rc[x],{x,988,1048}] a4=Plot[rd[x],{x,1048,1108}] a5=Plot[re[x],{x,1108,1168}] a6=Plot[rf[x],{x,1168,1228}] a7=Plot[rg[x],{x,1228,1288}] a8=Plot[rh[x],{x,1288,1348}] 0.6525 0.65 0.6475 0.645 0.6425 880 890 900 910 920 0.6375 Graphics a1 24 0.66 0.655 940 950 960 970 980 0.645 Graphics a2 0.685 0.68 0.675 1000 1010 1020 1030 1040 0.665 Graphics a3 0.76 0.74 0.72 1060 1070 1080 1090 1100 0.68 Graphics a4 2.2 2 1.8 1.6 1.4 1.2 1120 1130 1140 1150 1160 1200 1210 1220 0.8 Graphics a5 2.2 2 1.8 1.6 1.4 1.2 1180 1190 0.8 25 Graphics a6 0.607 0.6065 1240 1250 1260 1270 1280 0.6055 Graphics a7 0.6 0.5 0.4 0.3 1300 1310 1320 1330 1340 -Graphics a8 La función R representa la unión de todas las funciones anteriores por tramos y se muestra mediante el siguiente comando en Mathematica: R=Show[a1,a2,a3,a4,a5,a6,a7,a8] 0.7 0.65 0.6 0.55 1000 1100 1200 1300 El gráfico anterior representa la Polinomial cúbica de la función f. Nota: la parte superior no queda representada debido al software 3.4) Compare los resultados de las tres interpolantes entre los puntos correspondientes a Ti , para i par. Grafique 26 Se escribieron los puntos impares llamados I. I=ListPlot[{{878,0.622},{898,0.649},{918,0.639},{938,0.657},{958,0.655},{978,0.663 },{998,0.668},{1018,0.676},{1038,.679},{1058,.683},{1078,.699},{1098,.73},{1118,. 812},{1138,1.044},{1158,1.881},{1178,2.075},{1198,1.211},{1218,.746},{1238,.627} ,{1258,.607},{1278,.609},{1298,.601},{1318,.601},{1338,.601}}] Para luego graficar estos puntos 1.1 1000 1100 1200 1300 0.9 0.8 0.7 0.6 Para mostrar los gráficos de la función polinomial cuadrática (P), la polinomial cúbica (R), la Spline cúbica (S), y los puntos pares (I), se adjunta el siguiente comando. Show[P,R,S,I] 27 2 1.5 1000 1100 1200 1300 0.5 A Simple vista se ve que las tres funciones son muy parecidas y que ambas están capacitadas para representar los 49 datos dados, aunque solo estén hechas con los datos impares de esta tabla. Para facilitar el análisis se graficará por separado Gráficos por separado: 1) Se junta la función Polinomial cúbica (R) y la polinomial cuadrática (P) con los puntos pares (I) para analizarla. Show[R,P,I] 0.8 0.7 0.6 R 1000 1100 1200 1300 P Conclusión 1 28 Se pude concluir que P y R, son diferentes aproximaciones pero que ambas pasan por todos los puntos impares, pero solo por algunos de los puntos pares mencionados en I. Lo que dice que estas funciones son buenas aproximaciones, pero no son del todo exactas. Además se ve que la función polinomial cuadrática P es más exacta o describe más puntos que la función polinomial cúbica (R). Pero no se garantiza que en cualquier caso esto se deba cumplir, es decir, la función P no siempre va a ser más exacta que la función R. 2) A continuación se muestra la función Spline cúbica (S) con los puntos pares (L) para analizarla. Show[S,I] 2 1.75 1.5 1.25 1000 1100 1200 1300 0.75 Conclusiones: Se puede concluir que la gráfica de la función Spline aproxima todos los puntos dados, tanto los impares como los pares por lo que esta función sería más exacta que la función Polinomial cúbica y cuadrática, aunque las tres son muy buenas aproximaciones de los 49 datos dados. Además la función Spline tiene sus derivadas en los puntos continuas, lo que implica que la curva de aproximación va a ser suave. En orden de mejor aproximación a peor estaría primero la función Spline luego vendría la función cuadrática (P) y al final la polinomial cúbica (R), esto es solo para este caso. El método de Lagrange logra aproximaciones bastante precisas para determinadas funciones con ciertos puntos, pero el hecho de ocupar la función Spline aproxima con mayor exactitud lo tramos entre los puntos. ANEXO 29 Pregunta 3 30 Programa para obtener la aproximación a través del polinomio de Lagrange para la interpolación cuadrática y cúbica de f. CuadDlog “Numero de datos”,d EndDlog If ok=0 Then MostPpal Alto Alto MostPpal MostPpal EndIf Expr(d)->d NvaMat(2,d)->matriz NvaMat(d,1)->matln For 1,1,d,1 Dialogo Titulo “Polinomio Interpolante de Lagrange” Texto “Dato N°: ”&Cadena(i) CuadDlg “Valor de x”, lazo CuadDlg “Valor de f(x)”, lazo1 EndDlogde If ok=0 Then MostPpal Alto MostPpal Salir EndIf expr(lazo)->[1,i] expr(lazo1)->[2,i] EndFor Dialogo Titulo “Polinomio Interpolante de Lagrange” Texto “Tiene que calcular “&cadena(d)&” valores L(n)” Texto “Desea ver estos valores” Texto “ Si(OK) - No(Esc)” EndDlog If ok=0 Then BorrES Salida 40,45,” Calculando…” Else 1->most BorrES EndIf 0->pol For k,1,d,1 1->prod For i,1,d,1 If i><k Then prod*(x-matriz[1,i])/(matriz[1,k]-matriz[1,i])->prod 31 EndIf EndFor If most=1 Then Mostrar “L(“&cadena(k-1)&”)” Mostrar desarr(prod) prod->matln[k,1] Pausa EndIf pol+matriz[2,k]*prod->pol EndFor pol->pollag BorrES Mostrar “El polinomio es: P(x) =” Mostrar pol Salida 60,0,”Si no ve resultados completos escriba en” Salida 70,0”calc home:’pollag’ : polinomio. “ Salida 80,0,”’matln’ : matriz de valores de L(n).” Desarr(matln)->matln Pausa Etiqueta evaluar Dialogo Titulo “Polinomio Interpolante de Lagrange” CuadDlg “Evaluar P(x) en x = “,m Texto ” Evaluar(OK) - Salir(Esc) “ EndDlog If ok=0 Then MostPpal AltoMostPpal EndIf expr(m)->m 0->fx pollx=m->fx Dialogo Titulo “Polinomio Interpolante de Lagrange” Texto “F(“&cadena(m)&”) = “&cadena(fx) Texto “Volver a evaluar? ” Texto “ Si(OK) - No(Esc)” EndDlog If ok=0 Then Goto main Else Goto evaluar EndIf EndPrgm 32