Está en la página 1de 68

MÉTODOS NUMÉRICOS (Octave)

Prof. María Zegarra Garay e -mail: maria_zegarra@hotmail.com


Prof. Elizabeth Puelles Bulnes e -mail: eliza_bulnes@hotmail.com

CONTENIDO:
Interpolación. Ajuste de Curvas.
APROXIMACIÓN POLINOMIAL E INTERPOLACIÓN

 Interpolación y extrapolación.
 Polinomios de aproximación de Lagrange.
 Diferencias divididas.
IDEAS:
Cuando pensamos que dos magnitudes variables x e y, están relacionadas
por una función pero no conocemos su fórmula, es posible partir de los
datos conocidos que las relacionan (x0, y0), (x1, y1), (x2, y2) …. (xn, yn)
para calcular una función polinómica:

y = f (x)

que cumpla:

f(x0) = y0 , f(x1) = y1 , f(x2) = y2 ,…, f(xn) = yn .

2
Esta función f(x), cuya regla de correspondencia define al
Polinomio Interpolador, no es exactamente la función que
buscamos pues podría ser exponencial, logarítmica o de
cualquier otro tipo, pero sirve para calcular
aproximadamente otros valores desconocidos de las
variables, especialmente si se encuentran próximos a los
valores conocidos xi.

Entonces interpolar es utilizar el polinomio interpolador


para calcular valores desconocidos de la función que se
encuentran entre otros conocidos, y extrapolar es usar tal
polinomio para calcular valores fuera del intervalo de los
conocidos (es decir, usarlo con valores mayores que el más
grande de las xi conocidas, o menores que el más pequeño
de éstas). La interpolación es un método fiable para
calcular valores aproximados de la función desconocida,
pero la extrapolación puede dar resultados muy distintos de
los reales.
3
Interpolación de grado 0:
El caso más trivial es cuando solo conocemos un dato (x0,y0) .
Podemos decir que la función desconocida es parecida a la función
constante f(x)=y0 (solo cerca de x0 ).
Interpolación Lineal, o de grado 1:
Si se conocen dos parejas de datos (x0,y0) y (x1,y1), se puede
calcular una función lineal (polinomio interpolador de grado 1).
f (x) = y = mx + n
que cumpla f(x0) = y0 , f(x1) = y1 . Su gráfica es una recta que pasa
por los puntos de coordenadas (x0, y0) y (x1, y1). Se deben calcular
los números m y n resolviendo el sistema

4
y0=mx0+n , y1=mx1+n
por cualquier método, y sustituirlos en la fórmula de f(x).
También es posible usar la fórmula para calcular la
pendiente de la recta dados dos puntos: m= y1−y0 /(x1−x0) , y
sustituir su valor en la ecuación
y = m (x – x0 ) + y0.
Observación: Primero calculamos f(x) (Polinomio Interpolador)
para luego interpolar o extrapolar.

5
Ejemplo 1.
En un negocio recién abierto, la primera semana hubo 150 clientes
que supusieron unos ingresos de 3600 soles, y la segunda semana
200 clientes que supusieron ingresos de 5600 soles.
a) Hallar la función de interpolación lineal que relaciona los
ingresos (y) con el número de clientes (x).
b) ¿Cuántos ingresos generarían 190 clientes?
c) ¿Cuántos clientes se necesitarían para generar 7000 soles de
ingresos?

6
Solución:
Tenemos dos parejas de datos clientes-ingresos ,
(x, y): (150, 3600) y (200, 5600).

a) Calculamos f (x) = y = mx + n

3600=150m+n 5600=200m+n
2000= 50m → m= 2000/ 50 =40
sustituyendo este valor,
3600=150⋅40+n → n=−2400
Por lo tanto,
f(x)=40 x−2400

b) Interpolando: f(190) = 40⋅190−2400 = 5200 .


Por lo tanto,
190 clientes supondrían unos ingresos de 5.200 soles.

7
c) f (x)=7000 → 40x − 2400 = 7000
→ x = 7000 + 2400 / 40 = 235

Por lo tanto, extrapolando, harían falta 235 clientes para generar


unos ingresos de 7,000 soles.

Interpolación Cuadrática, o de grado 2:


Con tres pares de datos, (x0, y0), (x1, y1) y (x2, y2) es necesario
calcular una función cuadrática (cuya fórmula es un polinomio de
segundo grado, con una parábola por gráfica), esto es,

f (x) = y = ax2 + bx + c

para ello hay que hallar a, b y c resolviendo el sistema:

y0 = ax02 + bx0 + c, y1= ax12 + bx1 + c, y2 = ax22 + bx2 + c

8
y sustituir las soluciones en la fórmula de f(x). Entonces, se usa la
función para interpolar o extrapolar valores desconocidos.
Observación:
El sistema se simplifica mucho si uno de los xi es 0, porque
entonces se obtiene directamente c en la ecuación que
corresponde a ese dato. Si los datos xi son años, es recomendable
suponer que el dato menor es el año 0, y el resto calcularlos en la
nueva escala temporal. En otro tipo de datos se debe valorar si
conviene o no hacer el cambio de variable que iguala a 0 uno de los
datos (y cambian consecuentemente todos los demás), porque es
posible cometer errores de interpretación.

9
Ejercicio:

Solución:

10
11
12
Observación:

13
Interpolación de grado n :

14
15
Algunas consideraciones:

i)

a.-

b.-

c.-

16
i)

ii)

Nota:

17
Observación:
Por otra parte es evidente que la función interpoladora debe ser
fácil de evaluar, derivar e integrar, dependiendo del tipo de
funciones que se consideren, existen varios tipos de interpolación,
como se señaló anteriormente como pueden ser : polinómica,
trigonométrica, por funciones spline, racionales y exponenciales.
Trataremos en primer lugar la Interpolación de Lagrange que es
de tipo polinomial.
El siguiente resultado implica que existen polinomios que
se aproximan a cualquier función continua.

18
Codificación en Matlab
Sea polinomio 𝑃 𝑥 = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 + ⋯ + 𝑎1 𝑥 + 𝑎0
La sintaxis para P en Matlab es: p=[𝑎𝑛 , 𝑎𝑛−1 , … , 𝑎1 , 𝑎0 ]
Como ejemplo, escriba el polinomio: 5𝑥 4 − 3𝑥 2 + 6𝑥 − 7:
>>p=[5 0 -3 6 -7]

Funciones útiles para manejar polinomio:

polyval(pol,x): esta función permite evaluar x en el polinomio definido


en el array pol.
roots(pol): calcula las raíces del polinomio definido en pol.

pol=conv(p1,p2): multiplica los polinomios p1 y p2 y lo asigna a pol.

[polq,polr]=deconv(pol1,pol2): es el proceso contrario a conv, efectúa


la división de pol1 entre pol2, además
debe cumplirse la relación:
pol1=pol2*pol+polr,
donde polr es el polinomio residuo.

19
p=poly(r): p es un polinomio que se obtiene a partir de sus raíces
definidas en el array r.

pol=polyfit(datox,datoy,n): esta función construye un polinomio de grado


n, dicho polinomio viene definido por pol; la
construcción de dicho polinomio es llevada a
cabo mediante la técnica de mínimos
cuadrados empleando las coordenadas
(𝑥𝑖 , 𝑦𝑖 )
AJUSTE DE CURVAS

La aproximación por ajuste es una técnica diferente a la de interpolación,


prevaleciendo en ella la visualización estética en el sentido de que
nuestro polinomio no oscile demasiado como podría ocurrir con aquellas
de características interpolantes, a la par que en el polinomio de
aproximacón se emplea menos cálculo que en el ajuste.

Ejercicio: Dados los siguientes puntos: (0,18), (1,20), (2,12), (3,0), (4,-10),
(5,-12), (6,0), (7,32), (8,90), (9,180), (10,308). halle el polinomio de
interpolación correspondiente y grafíquelo,usando códigos
Solución:
20
Polinomio de Interpolación vía la Matriz de Vandermonde:

21
22
23
24
Teorema: (Unicidad del Polinomio Interpolador)

Demostración:

25
26
27
Ejemplo:
Sean los siguientes puntos: (2,5), (4,6), (5,3). Halle el polinomio
interpolador que incluya estos puntos usando la fórmula de
Lagrange.

28
Solución:

29
Verifique que este polinomio incluye a los 3 puntos
dados.
Ejemplo:
Sean los siguientes puntos: (2,5), (4,6), (5,3). Usando la
fórmula de Lagrange, evalúe en x=3, el polinomio de
interpolación que incluye a estos 3 puntos dados.

30
31
32
Implementación Computacional

x, f : Puntos dato para la interpolación


v: Valor para interpolar, parámetro opcional

33
function [p] = lagrange(x, f, v)
n=length(x); %número de puntos dato
syms t; %variable simbólica para el polinomio: t
p=0;
for i=1:n
L=1;
for j=1:n
if i~=j
L=L*(t-x(j))/(x(i)-x(j)); %algoritmo Lagrange
end
end
p=p + L*f(i); % polinomio interpolador de Lagrange simbólico
end
p=expand(p); %simplificación algebraica
if nargin==3 %verifica si existe un parámetro adicional
t=v;
p=eval(p); %evaluación del Polinomio en un valor v
end

34
>> x=[2 4 5];
>> f=[5 6 3];
>> p=lagrange(x,f)
p=
(15*t)/2 - (7*t^2)/6 - 16/3
>> r=lagrange(x,f,4)
r=
6.0000
>> r=lagrange(x,f,4.25)
r=
5.4687
>> plot(x,f,'o'), grid on
>> hold on,
>> ezplot(p,[2,5])
>> plot(x,f,'o'), grid on
>> hold on,
>>ezplot(p,[2,5])

35
36
Verifique.

37
Ejercicio: Grafique ambas funciones en una misma ventana.

Solución:
x=linspace(0,2,100);
p=[1.4762 0.24204 1];
y=polyval(p,x);
plot(x,y);
z=exp(x);
hold on
plot(x,z,'r');
legend('p(x)= 1.4762x^2 + 0.2420x + 1','f(x)= exp(x)');
xlabel=('X');
ylabel=('Y');
grid on;
title('Aprox. de f(x)=exp(x) por un polinomio de 2o.grado')

Ejercicio: Incluya en el gráfico el polinomio Interpolador de


la matriz de Vandermonde .
38
39
40
41
42
43
44
45
46
47
48
49
50
Diferencias Finitas

51
Definiciones:

52
53
Ejemplo:
Tabule las diferencias finitas correspondientes a los siguientes datos
(1.0, 5), (1.5, 7), (2.0, 10), (2.5, 8).

Solución:

54
55
56
Demostración:

57
58
59
60
61
62
63
64
65
66
67
68

También podría gustarte