Interpolación con Mathematica
description
Transcript of Interpolación con Mathematica
Prácticas de Matemáticas con Mathematica .
Fundamentos de Matemáticas III . Grado en Ingeniería Civil.
Práctica nº 1. Interpolación polinómica.
Departamento de Matemática Aplicada.E.P.S. de Zamora
Universidad de Salamanca
Ejemplo 1: Halle el polinomio de interpolación que pasa por los puntos {-1,1},{0,1},{1,1},{2,-5}.
Para buscar posibles comandos del Mathematica que se refieran a la interpolación preguntamos utilizandocomodines *:
? *Interpo*
System`
FunctionInterpolation Interpolation InterpolationPrecision
InterpolatingFunction InterpolationOrder ListInterpolation
InterpolatingPolynomi-al InterpolationPoints PeriodicInterpolation
InterpolatingPolynomial@8 f1, f2, …<, xD constructs an interpolating polynomial
in x which reproduces the function values fi at successive integer values 1, 2, … of x.
InterpolatingPolynomial@88x1, f1<, 8x2, f2<, …<, xD constructs an interpolating
polynomial for the function values fi corresponding to x values xi.
InterpolatingPolynomial@888x1, y1, …<, f1<, 88x2, y2, …<, f2<, …<, 8x, y, …<D constructs
a multidimensional interpolating polynomial in the variables x, y, ….
InterpolatingPolynomial@888x1, …<, f1, df1, …<, …<, 8x, …<D constructs an interpolating
polynomial that reproduces derivatives as well as function values. �
El comando InterpolatingPolynomial nos permite obtener el polinomio de interpolación pedido:
pol = InterpolatingPolynomial@88-1, 1<, 80, 1<, 81, 1<, 82, -5<<, xD
1 + H1 - xL x H1 + xL
Expand@polD1 + x - x3
Dibujamos el polinomio de interpolación junto con los puntos por los que pasa:
Plot@pol, 8x, -2, 3<, Epilog ® 8Red, [email protected],
Map@Point, 88-1, 1<, 80, 1<, 81, 1<, 82, -5<<D<D
-2 -1 1 2 3
-20
-15
-10
-5
5
Para obtener el valor del polinomio en cualquier punto simplemente usamos la regla de sustitución:
pol �. x ® 3 � 4
85
64
Ejemplo 2: Halle mediante interpolación inversa una raiz aproximada de la ecuación Cos[x]=x.
Definimos la función cuya raiz queremos hallar:
f@x_D := Cos@xD - x
Hallamos el polinomio de interpolación que pasa por unos cuantos puntos de la función inversa, los cuales seobtienen cambiando las coordenadas de orden:
polInv = InterpolatingPolynomial@Table@8f@xD, x<, 8x, 0.5, 0.9, 0.05<D, xD
0.5 + H-0.377583 + xLH-0.609782 + H0.27839 + xL H-0.0866076 + H-0.0648422 + xL
H-0.0368423 + H0.103293 + xL H-0.0173298 +
H-0.302525 + xL H-0.00764755 + H0.190017 + xLH-0.00429573 + H-0.225336 + xL H-0.0022176 -
0.00128705 H0.0183111 + xLLLLLLLL Si dibujamos la función y el polinomio de interpolación inversa vemos que hay una aparente simetríarespecto del eje diagonal y=x, como ocurre con las gráficas de la función f y de su inversa f -1:
2 1 FM III (17-9-2012) Interpolación.nb
Plot@8x, f@xD, polInv<, 8x, -0.5, 1.2<,
AspectRatio ® Automatic, PlotRange ® 8-0.5, 1.2<D
-0.5 0.5 1.0
-0.5
0.5
1.0
El valor del polinomio de interpolación inversa en el punto x=0 es una aproximación de la raiz buscada:
raAprox = polInv �. x ® 0
0.739085
El valor de la función en la aproximación encontrada para la raiz deberá ser cercano a cero, y así ocurre:
[email protected]´10-11
Ejemplo 3: Halle mediante interpolación inversa una raiz aproximada de la ecuación Cos@xD = x2.
Se procede de manera parecida al ejercicio anterior y resulta:
f@x_D := Cos@xD - x^2
polInv = InterpolatingPolynomial@Table@8f@xD, x<, 8x, 0.4, 0.9, 0.02<D, xD;
H* el punto y coma al final evita que el
resultado salga por pantalla,
pero sí queda guardado en la memoria con lo que
podemos seguir haciendo cálculos con esa expresión *LraAprox = polInv �. x ® 0
0.824132
1 FM III (17-9-2012) Interpolación.nb 3
Plot@8x, f@xD, polInv<, 8x, -0.5, 1.2<,
AspectRatio ® Automatic, PlotRange ® 8-0.5, 1.2<D
-0.5 0.5 1.0
-0.5
0.5
1.0
[email protected]´10-12
4 1 FM III (17-9-2012) Interpolación.nb