Você está na página 1de 6

Métodos Numéricos (SC–854)

Ajuste a curvas


c M. Valenzuela 2007–2008
(27 de marzo de 2008)

1. Definición del problema


En el problema de ajuste a curvas se desea que dada una tabla de valores (xi , fi ) en-
contrar una curva que se ajuste de la mejor manera a los datos. La curva está definida
en forma paramétrica, y se deben encontrar los valores de sus parámetros para hacer que
alguna medida de error se minimice.

2. Ajuste a un polinomio mediante mı́nimos cuadrados


Suponga que se desea ajustar a un polinomio de la forma
n+1

Pn (x) = a1 xn + a2 xn−1 + · · · an x + an+1 = ai xn−i+1 (1)
i=1

El problema de ajuste consiste en encontrar los coeficientes ai que hagan que este polinomio
se parezca lo más posible a los datos de acuerdo a alguna definción de error.
Definimos el error εj del polinomio en el punto xj como la diferencia entre el valor que
toma el polinomio y el valor fj , es decir,

εj ≡ fj − Pn (xj ) (2)

Ahora definimos el error cuadrático total ξ como al suma de los errores al cuadrado para
todos los datos, esto es,
N

ξ ≡ ε2j (3)
j=1
N N
 n+1
2
 2
 
= (fj − Pn (xj )) = fj − ai xn−i+1
j (4)
j=1 j=1 i=1
N 
 2
= fj − a1 xnj − a2 xn−1
j − · · · − an−1 x2j − an xj − an+1 (5)
j=1

donde N es el número de datos. Mediante el método de mı́nimos cuadrados se encuentran


los valores de los coeficientes ai que hacen que se minimice el valor de ξ.
Para obtener el valor de los coeficientes ai para producir mı́nimo error, derivamos el
error cuadrático total ξ respecto a cada componente de a e igualamos a cero:
N
 n+1

∂ξ  
= 2 fj − ai xn−i+1
j (−1) = 0 (6)
∂an+1 j=1 i=1
N
 n+1

∂ξ  
= 2 fj − ai xn−i+1
j (−xj ) = 0 (7)
∂an j=1 i=1
Ajuste a curvas Métodos Numéricos (SC–854)

f (x)

xi fi
0.4 1.00
2.5 0.50
4.3 2.00
5.0 2.55
6.0 4.00
N =5
x
0.5301x + 0.0803
0.1981x2 − 0.7153x + 1.2095
−0.0198x3 + 0.3909x2 − 1.2081x + 1.4171

Figura 1: Ejemplo de ajuste a una recta, parábola, y cúbica.

..
.
N
 n+1

∂ξ  
= 2 fj − ai xn−i+1
j (−xn−1
j )=0 (8)
∂a2 j=1 i=1
N
 n+1

∂ξ  
= 2 fj − ai xn−i+1
j (−xnj ) = 0 (9)
∂a1 j=1 i=1

Multiplicando por −1/2 y despejando fj se obtiene lo siguiente:
N n+1
  N

ai xn−i+1
j = fj (10)
j=1 i=1 j=1
N n+1
  N

ai xn−i+1
j xj = xj fj (11)
j=1 i=1 j=1
..
.
N n+1
  N

ai xn−i+1
j xn−1
j = xn−1
j fj (12)
j=1 i=1 j=1
N n+1
  N

ai xn−i+1
j xnj = xnj fj (13)
j=1 i=1 j=1

Invirtiendo el orden de las sumatorias obtenemos que


n+1
 N
 N

ai xn−i+1
j = fj (14)
i=1 j=1 j=1


c M. Valenzuela, 2007–2008 (27 de marzo de 2008) Página 2
Ajuste a curvas Métodos Numéricos (SC–854)

n+1
 N
 N

ai xn−i+1
j xj = xj fj (15)
i=1 j=1 j=1
..
.
n+1
 N
 N

ai xn−i+1
j xn−1
j = xn−1
j fj (16)
i=1 j=1 j=1
n+1
 N
 N

ai xn−i+1
j xnj = xnj fj (17)
i=1 j=1 j=1

El lado izquierdo de la primera ecuación puede expandirse de la siguiente manera:


n+1
 N
 N
 N
 N
 N

ai xn−i+1
j = a1 xnj + a2 xn−1
j + · · · + an xj + an+1 1 (18)
i=1 j=1 j=1 j=1 j=1 j=1

Las demás ecuaciones se expanden de forma similar, y se obtiene lo siguiente:


N
 N
 N
 N

a1 xnj + a2 xn−1
j + · · · + an xj + an+1 N = fj (19)
j=1 j=1 j=1 j=1
N
 N
 N
 N
 N

a1 xn+1
j + a2 xnj + · · · + an x2j + an+1 xj = xj fj (20)
j=1 j=1 j=1 j=1 j=1
N
 N
 N
 N
 N

a1 xn+2
j + a2 xn+1
j + · · · + an x3j + an+1 x2j = x2j fj (21)
j=1 j=1 j=1 j=1 j=1
..
.
N
 N
 N
 N
 N

a1 x2n
j + a2 x2n−1
j + · · · + an xn+1
j + an+1 xnj = xnj fj (22)
j=1 j=1 j=1 j=1 j=1

Lo anterior es un sistema de n + 1 ecuaciones con n + 1 incógnitas que son los coeficientes ai .


Expresando este sistema de ecuaciones en forma matricial obtenemos lo siguiente:
⎡  n  n−1  ⎤⎡ ⎤ ⎡  ⎤
xj x ··· xj N a1 f
⎢  n+1  jn  2  ⎥⎢ ⎥ ⎢  j ⎥
⎢ x j xj ··· xj xj
⎥⎢ a2 ⎥ ⎢ xj fj ⎥
⎢ .. ⎥⎢ .. ⎥ ⎢ .. ⎥
⎢ ⎥⎢ ⎥= ⎢ ⎥ (23)
⎢ . ⎥⎢ . ⎥ ⎢  . ⎥
⎢  2n−1  2n−2  n  n−1 ⎥ ⎢ ⎥ ⎢ ⎥
⎣ x x ··· xj x ⎦⎣ an ⎦ ⎣ xn−1 f ⎦
 j 2n  j2n−1  n+1  jn  jn j
xj xj ··· xj xj an+1 xj fj

que es lo mismo que


⎡   n−1  n ⎤⎡ ⎤ ⎡  ⎤
N xj ··· x xj an+1 f
⎢   2 jn  n+1 ⎥⎢ a ⎥ ⎢  j ⎥
⎢ xj xj ··· xj xj ⎥⎢ n ⎥ ⎢ xj fj ⎥
⎢ .. ⎥⎢ . ⎥ ⎢ .. ⎥
⎢ ⎥⎢ . ⎥= ⎢ ⎥ (24)
⎢ . ⎥⎢ . ⎥ ⎢  . ⎥
⎢  n−1  n  2n−2  2n−1 ⎥ ⎢ ⎥ ⎢ ⎥
⎣ x xj ··· x x ⎦ ⎣ a2 ⎦ ⎣ xn−1 f ⎦
 jn  n+1  j2n−1  j 2n  jn j
xj xj ··· xj xj a1 xj fj

donde todas las sumatorias son N j=1 . Esta última forma es la usual de expresar las ecua-
ciones que definen el método de mı́nimos cuadrados para ajuste a un polinomio de orden n.


c M. Valenzuela, 2007–2008 (27 de marzo de 2008) Página 3
Ajuste a curvas Métodos Numéricos (SC–854)

Para ajustar a una recta, es decir, P1 (x) = a1 x + a2 , el sistema de ecuaciones es el


siguiente:      

N xj a2 fj
  2 = 
xj xj a1 xj fj

Para ajustar a una parábola, es decir, P3 (x) = a1 x2 + a2 x + a3 , el sistema de ecuaciones


es el siguiente: ⎡   2 ⎤⎡ ⎤ ⎡  ⎤
N xj x a3 fj
⎢   2  j3 ⎥ ⎢ ⎥ ⎢  ⎥
⎣ xj xj x ⎦⎣ a2 ⎦ = ⎣ xj fj ⎦
 2  3  j4  2
xj xj xj a1 xj fj

3. Ejemplo de ajuste a un polinomio


Se quiere ajustar los datos de la figura 1 a polinomios de orden 1, 2, y 3. Para orden 1
se tiene     
5.0 18.2 a2 10.05
= (25)
18.2 85.9 a1 47.00
de donde se obtiene que  
0.5301
a= (26)
0.0803
por lo tanto P1 (x) = 0.5301x + 0.0803.
Para orden 2 se tiene
⎡ ⎤⎡ ⎤ ⎡ ⎤
5.0 18.2 85.9 a3 10.05
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ 18.2 85.9 436.2 ⎦ ⎣ a2 ⎦ = ⎣ 47.00 ⎦ (27)
85.9 436.2 2302.0 a1 248.01

de donde se obtiene que ⎡ ⎤


0.1981
⎢ ⎥
a = ⎣ −0.7153 ⎦ (28)
1.2095
por lo tanto P2 (x) = 0.1981x2 − 0.7153x + 1.2095.
Para orden 3 se tiene
⎡ ⎤⎡ ⎤ ⎡ ⎤
5.0000 18.2000 85.9000 436.1960 a4 10.0500
⎢ ⎥⎢ a3 ⎥ ⎢ ⎥
⎢ 18.2000 85.9000 436.1960 2301.9682 ⎥⎢ ⎥ ⎢ 47.0000 ⎥
⎢ ⎥⎢ ⎥=⎢ ⎥ (29)
⎣ 85.9000 436.1960 2301.9682 12468.7509 ⎦⎣ a2 ⎦ ⎣ 248.0150 ⎦
436.1960 2301.9682 12468.7509 68846.5078 a1 1349.6405

de donde se obtiene que ⎡ ⎤


−0.0198
⎢ ⎥
⎢ 0.3909 ⎥
a=⎢ ⎥ (30)
⎣ −1.2081 ⎦
1.4171
por lo tanto P3 (x) = −0.0198x3 + 0.3909x2 − 1.2081x + 1.4171.


c M. Valenzuela, 2007–2008 (27 de marzo de 2008) Página 4
Ajuste a curvas Métodos Numéricos (SC–854)

4. Ajuste a funciones no lineales


Es posible ajustar a otras curvas que no son polinomios conviertiendo el problema en
uno de ajuste a un polinomio. Para ajustar a una curva de la forma

y = aebx

se toma el logaritmo natural de la ecuación anterior,

ln y = bx + ln a.

Comparando la expresión de ln y con un poliniomio de primer orden, P1 (x) = a1 x + a2 , y


haciendo las sustituciones P (x) por ln y, a1 por b, y a2 por ln a tenemos que el sistema de
ecuaciones siguientte nos da el valor de las constantes b y a:
      
N x ln a ln fj
  2j =  (31)
xj xj b xj ln fj

De forma similar, para ajustar a una curva de la forma

y = axb

se toma el logaritmo de la expresión anterior.

ln y = b ln x + ln a.

Comparando con la expresión de P1 (x) = a1 x + a2 , y sustituyendo a1 por b, a2 por ln a, y


x por ln x tenemos el sistema de ecuaciones siguiente:
      
N ln xj ln a ln fj
  2 =  (32)
ln xj ln xj b ln xj ln fj

que nos da los valores de las constantes a y b.

5. Ejemplo: Ajuste a una exponencial


xi 1.0000 1.5000 2.0000 3.2000 5.0000
fi 1.2379 0.7598 0.7612 0.4342 0.2123

Ajustamos los datos anteriores a una exponencial de la forma y = aebx .


      
N x ln a ln fj
  2j = 
xj xj b xj ln fj

Sustituyendo datos:
    
5 12.7 ln a −2.7183
=
12.7 42.49 b −11.1636

de donde ln a = 0.5136, y b = −0.4163, es decir,

y = 1.6713 exp(−0.4163x)


c M. Valenzuela, 2007–2008 (27 de marzo de 2008) Página 5
Ajuste a curvas Métodos Numéricos (SC–854)

6. Ejemplo de ajuste a axb


xi 1.0000 1.5000 2.0000 3.2000 5.0000
fi 4.7511 18.4011 5.4736 64.9299 238.4294

Ajuste los datos anteriores a la forma y = axb .


      
N ln xj ln a ln fj
  2 = 
ln xj ln xj b ln xj ln fj

Sustituyendo datos:
    
5 3.8712 ln a 15.8181
=
3.8712 4.5881 b 16.0236

de donde ln a = 1.3256, y b = 2.3740, es decir,

y = 3.7645 x2.3740


c M. Valenzuela, 2007–2008 (27 de marzo de 2008) Página 6

Você também pode gostar