TAREA 2 LISTA

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