2 xkyk

Anuncio
NU
"AJUSTE DE CUADRADOS MlNlMOS PARA POLINOMIOS"
Fís. Francisco Cervantes de la Torre
Dr. José Luis Fernández Chapou
Fís. Roberto Tito Hernández
Fís. Carlos Alejandro Vargas
hE!AUNIVERSIDAD AUTBNOMA METROPOLITANA
Casaabatadtarpo
UNIDA0 AZCAPOTZALCO. Oivisión de Ciencias Básicas e Ingeniería
Departamento de Ciencias Básicas
ISBN-970-620-257-9
Abril de 1992
Francisco Cervantes de la Torre*,JoseLuis Ferndndez Chapoub
Roberto Tito Hernández". Carlos Alejandro Vargasb.
(a)Departamento de Sistemas, Area de Sistemas Computacionales.
(b)Departamento de Ciencias Básicas, Area de Física.
(c)Departamento de Materiales, Area Ciencia de Materiales.
División de Ciencias Básicas e Ingeniería'.
Universidad Autónoma Metropolitana-Azcapotzalco.
Resumen.
En este trabajo se discuten los principios fundamentales
para un ajuste polinomial, dado un conjunto de datos. Se presenta
un
análisis matricial
del
problema
de
cuadrados mínimos,
desarrollando así mismo una evaluación de la varianza, y de los
errores asociados a los parametros ajustados; en lugar de la
evaluación del coeficiente r2 que es muy común. Se presenta el
programa basado en el algoritmo desarrollado, y se aplica a un
problema específico.
'Este trabajo aparece como parte del proyecto FIMAS, un
proyecto sobre la enseñanza de la Física para estudiantes
de ciencias e ingeniería de la división de Ciencias Básicas
e ingeniería.
3
1. FORMULACION GENERAL.
En muchos experimentos se obtiene un conjunto de valores
experimentales {YkrXk} donde k es el. número de datos. LOS valores
de X corresponden a la variable independiente, esto es, la
variable de control, con Y la variable dependiente, sus valores
dependen de los de X. Con el conjunto de datos experimentales
{YkJXk},
es posible en muchos casos encontrar una relación
funcional
entre
Y
y
X.
Consideremos el
siguiente modelo
matemático que se expresa por la relación general entre Y y X
Y = EAi fi(x),
i
en el cual las A, son parámetros por determinar, I'i" un indice
que varía de 1 a n, y flnll
el número total de datos. La f i ( x ) es
la funcional propuesta como hipótesis de trabajo. Yk representa
a las variables observables, mientras que las Y ( Y , ) que aparecen
en la relación (1.1) muestran los valores determinados una vez
calculadas las 4, entonces
Yobservable
k
'
cxk) '
=
1
Para determinar las A, utilizaremos el método de cuadrados
mínimos, por ello es necesario establecer una hipótesis básica;
l o s valores calculados (desconocidos) Y, difieren mínimamente de
los valores
observables Y,;
esto puede
expresarse por
la
correlación de cada una de sus diferencia cuadráticas, tal y como
5
se muestra en la siguiente relación
sustituyendo la expresión para Y, llegamos a
Y Ya que el cuadrado de la diferencia debe ser mínimo,
minimizamos con respecto a l o s parámetros A,.
c
j
por tanto la condición de mínimo implica
que es la suma del sistema de ecuaciones para las 4.
2. REPRESENTACION MATRICIAL.
A continuación interpretaremos matricialmente la ec.(1.3);
observemos que las variables i i Y i i tienen un s o l o índice, esto es,
se puede ver como una matriz columna
Ó
renglón.
Matriz columna
Ó
renglón.
Y,
las funcionales
=
las podemos denotar por
f,(XJ
k
= f j
fjk
donde las i i - j i l indican renglón y las i i k i i indican columna.
Por lo tanto la relación (1.3) se puede expresar como:
Ykfjk =
k ,j
6
Aifffj”
k.i.j
por lo tanto tenemos:
sea
luego entonces
tomando la transpuesta de fj, entonces
por lo tanto obtenemos:
y el cuál puede reescribirse como
7
por lo tanto
TY
donde
A
=
ntA,
(2.2)
es la matriz de interés ya que incluye a los parámetros
A
desconocidos. Por tanto despejando
de la ec.(2.2) tenemos:
A = (!W)-lTY;
(2.3)
y con ello nuestro problema está resuelto.
3. Ejemplo de Aplicación.
Supongamos
que
la
variables observables es
relación
funcional
X;$fi~$al,
de
entre
nuestras
la forma
Y = a X + b ;
el problema radica en la determinación de los coeficientes A,,
con i = 1 , 2 ; dado que existen dos coeficientes: a y b.
Los parámetros a y b son respecticvamente la pendiente y la
ordenada al origen. La forma general de expresar la relación
lineal es,
y, = A1 fik
donde los f,
-+
A2
f2kr
son elementos de una matriz de
, con
el
número total de datos, entonces comparando las expresiones
anteriores se tiene que
fik
8
= k'
A, =
a
&
b.
=
Por lo tanto
luego entonces
Efectuando el producto de las dos matrices anteriormente
definidas.
n
1
1
N
,k=l
c x k
y
corno el método
\
-
x
2
T Tt
n
J'
.....................
obtener TQTp$$?,
.............
. . . . . ..:,:
para
.............
........
requiere de
necesario calcular el determinante del producto
n
n
k=l
k=1
ello
e,esto
..............
.....
es
es
2
luego entonces
-%
(TTt)-'=
1
n
n
-
calculando el producto
9
x
2
TY
1
r.
2
y2
..
7):
* .
xkyk
yk
la relación (2.3) se reduce a:
finalmente llegamos
Y
n
b
= k=i
xiE
n
n
'k-x
x k C xkyk
k=l
k=l
k=l
n
n
k=l
k=l
nC xi-
2
xk)
Como se esperaba se determinaron los parámetros
4,
pero
¿Cuáles son los errores estadísticos asociados a las % ? . Para
responder a esta pregunta, es necesario efectuar un análisis
sobre los errores y su cuantificación.
io
4. CALCULO DE ERRORES.
Partiendo de un conjunto de datos experimentales
. . . .
I
y dado que con el método de cuadrados mínimos obtenemos los
.:..... ...-:........
donde las @&&@
...............
...
denotan al modelo establecido. Es posible
.......
.
.:
.<
determinar los errores asociados al método de ajuste realizado.
Ya que contamos con dos conjuntos de valores de la variable
dependiente Y ; las Y observables YE y, las Y calculadas Y,, la
desviación estandard asociada a la variable dependiente Y está
expresada por la siguiente relaciíjn
el índice 4 indica el número de parámetros a ajustar.
El problema ahora es el de determinar que tan confiable es
el ajuste que se ha realizado; esto es, ¿cuál es el error
asociado a los parámetros & ? . Por ello es necesario determinar
la variancia asociada a los parámetros Ai.
Si suponemos que a los universos de X , Y y 8 se les asocia
una distribución Gaussiana (condición que se satisface en muchos
casos
Ó
al invocar el teorema central del límite), la cantidad
11
indicará que cualquier r: tiene un 6 8 % de posibilidad de estar
dentro del intervalo definido
e s función de
entonces una variación en
62
=
aZ
ax
-6x
ecesariamente que:
4-
aZ
--&y,
aY
(4.2)
y como
entonces
puesto que ax y 6y pueden considerarse como perturbaciones
independientes, entonces
.. .... . .. .. ........ .... ......
.. .
I
por lo que la relación se reduce a:
(4.3)
y dado que
La relación (4.3) no es más que la expresión de la variancia
asociada a
5.
Por lo tanto para determinar la variancia de los
parámetros J+ recordemos que
luego entonces la variancia asociada a los $+viene expresada por
la relación:
12
si consideramos
oyl=ay2 = .
. . =ayn,
obtenemos que :
aA.
u2 ( A i ) = u ; c (2)
.
(4.4)
k-1
Ahora bien las
no son mas que los elementos de la matriz
....
..:...
de coeficientes ( 2 . 3 ) y si definimos por
-
-
a
j,s
~
tenemos
jiT j,, s Y s ,
entonces
por tanto
(4.5)
Sustituyendo esta Última expresión (4.5) en (4.4) tenemos
lo cuál puede reducirse a
13
Sustituyendo esta expresión en la relación (4.4) obtenemos
ff2(Ai) = c J ~ ( T T ~ ) ~ ~ .
(4.6)
Esta ecuación ( 4 . 6 ) determina la varianza de l o s parámetros
A,,
de forma tal que el error absoluto asociado a dichos
parámetros se reduce a la siguiente expresión
(4.7)
donde l o s índices (ii) denotan a los elementos de la diagonal
principal.
5. EJEMPLO : ERRORES ASOCIADOS AL PROBLEMA LINEAL.
En
estos párrafos
evaluaremos
los
errores absolutos,
asociados a un ajuste lineal; lo cuál se reduce a estudiar
funciones del tipo
Y=aX+b
-
xAifi(Xk);
para este caso es simple comprobar que
Por lo tanto de acuerdo a la relación
asociada a
los
parhetros
(4.6)
la varianza
a determinar, se reduce a
las
expresiones
Y
De la relación (4.7) se deduce que los errores absolutos
asociados a los parámetros
(
a y h) son
6 ( a )=- (J ( a )
fi
Y
15
6. PROGRAMA DE AJUSTE DE CUADRADOS MINIMOS PARA UN
POLINOMIO DE GRADO n, ESCRITO EN C.
En los siguientes párrafos mostramos el programa del
algoritmo discutido anteriormente, este se escribió en Turbo C.
La explicación del programa aparece en los comentarios del
listado2
/ * PROGRAMA DE AJUSTE DE CUADRADOS MINIMOS
*/
PARA UN POLINOMIO DE GRADO N
#include cstdio.h>
#include cmath.h>
/ * DECLARACION DE VARIABLES GLOBALES * /
float
x[iOOl ,y[iOOI ;
float
T [401 [lo01 ,TT [lo01 [401;
double TY [40],yc[iOOI ,multTTT[401 [40],A[1001,
error[i001 ,yp,errorp[1001;
int
grado,ndatos;
main (void)
{
/ * DECLARACION DE FUNCIONES * /
void lectura ( ) ,matrizT( ) ,transpT ( ) ,inversaT O ,
multipli TTT(),inversa TTT0,multipli T Y O ,
coeficieñtes ( 1 ,calculo-Y ( 1 ,va.rianza-cZicuio( 1 ;
/ * SE INVOCAN FUNCIONES *7
lectura ( 1 ;
matrizT ( ) ;
transpT ( 1 ;
multipli TTTO ;
inversa-FTT ( ) ;
multipli-TY O ;
coeficientes ( 1 ;
calculo-Y ( ) ;
varianza-calculo ( 1 ;
1
/ * LECTUFU DE DATOS DE ENTRADA
*/'
void lectura ( 1
{
register int i;
comentarios en
caracteres / * .... * /
*LOS
c
.
aparecen
entre
los
siguientes
17
int j;
clrscr ( 1 ;
/ * LECTURA DEL GRADO DEL POLINOMIO A AJUSTAR
Y DEL NUMERO TOTAL DE DATOS.
*/
printf(Il\n\n\n\n\t\t\aProporciona Grado de Polinomio a
Ajustar: ;
scanf ( Il%dtf,
&grado) ;
printf ("\n\n\t\t\a# total de datos =
;
scanf ( Ii%d1l,
&ndatos) ;
/ * LECTURA DE DATOS EXPERIMENTALES */
clrscr ( 1 ;
for(i=O;icndatos;++i)
{
j=i+i;
printf ( "\t\t\b\a X [%dl = U , j ) ;
scanf ( %g &x[il) ;
printf ( I'\t\t\aY[%dl = I ! , j 1 ;
scanf ( Il%gIl,&y [il 1 ;
'I
I
1
1
/ * DETERMINACION DE LA MATRIZ T * /
void matrizT ( )
{
1
register int i,j;
int k;
k=grado;
for(i=O;ic=grado;++i)
{
for ( j =O ;jendatos ;++j
{
T[il [jl=pow(x[jl,k);
J
/ * CALCULO DE LA TRANSPUESTA DE T * /
void transpT ( )
{
register int i,j;
for (i=O;ic=grado;++i)
for (j=O; jcndatos;++j)
TT [jl [il =T[il [jl ;
1
/ * DETERMINACION DEL PRODUCTO DE T POR SU TRANSPUESTA * /
void multipli-TTTO
{
register int i,j,k;
double suma=O.;
for(i=O;i<=grado;++i)
c
for ( j=O ;j<=grado;++j)
{
for(k=O;kcndatos;++k)
{
suma+=T[il Ekl *TT[kI [jl ;
1
18
multTTT[il [j]=suma;
suma=o.;
1
/ * CALCULO DE LA INVERSA * /
void inversa-TTT ( )
{
register int ifj k;
for (k=O;k<=grado;++k)
{
for ( j=O ;j<=grado;++j)
{
if (j!=k) multTTT[kl [jl=multTTT[k] [jl/multTTT[kl [kl ;
1
multTTT [kl [kl=l/multTTT[kl [kl ;
for(i=O;ic=grado;++i)
{
if(i ! = k)
{
for ( j=O ;j <=grado;++j)
{
if (j ! = k) multTTT[i] [jl=multTTT[il[jlmultTTT [kl [jI *multTTT [il [kl ;
for(i=O;i<=grado;++i)
{
if (i != k) multTTT [il [kl=-multTTT[il [kl*multTTT [kl [kl ;
/ * DETERMINACION DE LA MATRIZ T
void multipli-TY()
{
register int i,j;
double suma=O.;
for (i=O;i<=grado;++i)
{
for( j =O ;j cndatos;+ + j)
{
suma+=T[il j1 * y [ j 1
1
POR
EL VECTOR Y
*/
;
TY [i]=suma;
suma=O.;
1
I
/ * DETERMINACION DE LOS COEFICIENTES A(i) * /
void coeficientes ( )
{
register int ifj;
double suma=O.;
for(i=O;i<=grado;++i)
{
for ( j=O; jendatos;++j )
19
{
1
suma+=multTTT[i][J]*TY[j];
A[il =suma;
suma=O.;
1
1
/ * DETERMINACION DE LAS Y TEORICAS * /
void calculo-Y()
{
register int i,j;
float suma=O.;
double sumay=O.;
for(i=O;icndatos;++i)
{
for( j=O ;j<=grado;++ j)
{
suma+=A[jl*pow(x[il ,grado-j);
1
yc [il=suma;
sumay+=y[il ;
-
}suma=o ;
yp-sumay/ndatos;
}
/ * CALCULO DE LOS ERRORES * /
void varianza-calculo()
{
register int irj;
double varianza,difer,diferp,r2,r;
float suma=O.,sumap=O.;
for (i=O;iadatos;++i)
{
difer=yc [il-y[il;
diferp=y[il -yp;
suma+=pow(difer,2 ) ;
sumap+=pow(diferp,2);
> r2= (sumap-suma)/sumap;
r=sqrt(r2);
varianza=suma/(ndatos-(grado+l)) ;
printf ( "\nvarianza=%g
rA2=%g
r=%gtt,varianza,r2,r) ;
for (j=O;jc=grado;++j)
{
error[j]=sqrt ( (varianza*multTTT[jl[jl) /ndatos);
if (A[jl ! = O )
errorp [j]=fabs (error[j1 /A [jI *loo) ;
printf ( "\n\n\t\a A[%ul =%g ERROR [%u1=%g",
j,A[jl rj,error[Jl);
printf ( tt\n\t\tERROR-PORCentual [%u]= % g t j
t ,,errorp [ j1 ;
getch0 ;
1
> '
20
Como puede observarse en las Últimas lineas del programa,
en el se determinan los errores asociados a los parámetros
A,,
este proporciona como datos de salida además, a la varianza y al
coeficiente de correlación r.
7. USO DEL ALGORITMO DE CUADRADOS MINIMOS PARA UN
POLINOMI0 DE GRADO n.
A continuación ilustramos el uso de las ecuaciones (2.31,
(4.6) y (4.7), para realizar un ajuste a un conjunto de datos;
los cuáles se muestran en la Fig.(l)
21
K
X
Y
1
0.05
O. 956
2
0.11
O. 890
3
0.15
O . 832
4
0.31
O. 717
5
0.46
O. 571
6
0.52
O . 539
7
0.70
O. 378
8
0.74
0.370
9
0.82
0.306
10
0.98
0.242
11
1.17
O. 104
TABLA I. DATOS A AJUSTAR.
L o s datos mostrados son en realidad una perturbación de la
relación
Y=1-x+o.
2x2
será de gran interés mostrar, que tambien se aproximan l o s datos
a
esta
función, con
el
algoritmo desarrollado en
párrafos
anteriores. Si consideramos un ajuste de un polinomio cuadrático,
el programa nos proporciona la siguiente relación,
22
con un coeficiente de correlación ~ 1 0 . 9 9 8 8 3 5 y una varianza de
0.000233439;
además con los siguientes errores absolutos y
porcentuales asociados a los parámetros 4,
A,=O. 2 2 4 6 8 2 1 0 . 0 1 2 1 3 2 2
A,=-1.01804210.0144573
A 3 = 0 .9 9 7 9 6 8 + - O . 0 0 3 5 5 4 9 4
Es
E% ( A l )=5.39973.
E% (A,) = 1 . 4 2 0 1 1 ;
E% (A,) =O. 3 5 6 2 1 8
.
obvio que no esperábamos reproducir exactamente los
coeficientes del polinomio, debiüo a las fluctuaciones que
agregamos a los datos. En un problema real en general se puede
tener duda acerca del grado del polinomio a usar en el ajuste.
A continuación mostramos una tabla, en la cuál aparecen las
ecuaciones de polinomios ajustados a través del programa. Se
realizaron ajustes para grados üe polinomios del 1 al 9,
mostrándose también l o s resultados del coeficiente de correlación
r y de la varianza.
23
-I
G
ECUACION
1
Y=-O .760407X+O.952277
2
3
VARIANZA
r ,
Y=0.224682X2-1.018042X+0.99'7968
Y=-O.0689352X3+0.
351375X2
O. 99428
I . 00101622
0.998835
I . 000233439
O. 998869
1 - 000259017
0.998973
3.000274359
0.999582
0.000134044
-l.O7945X+l 0037
e
Y=-O .456351X4+1.
04613X3
4
+ O . 526798X2-O.836902XcO .9881
5
Y=-3.6594X5+10.
5369X4-10.75:!8X3
+4.89533X2-1.82415X+1.03693
~
6
Y=l 11277X6-7.
60024X5+15.
81!39X4
I
o,ggg5?4
0.000166578
0.999601
0.000213434
-14.0824X3+5.
88685X2-1.94654X1
+1.04145
7
Y=-14.6168X7+59.4856X6-99.7648X5
446X2
+89.0282X4-44.8402X3+12.
-2.56226X+l.
05986
~~
8
Y=-160,251Xs+723.392X7-1336 28X6
n
0.999649
0.000281756
o.ggg706
0.000471941
~ 1 2 9 907X5-709
.
.769X4+214.
813X3
-37 .7713X2+1.08704X+0.961559
Y=927.848X9-4717.73X8+10069.3X7
25
Es
importante notar de
los datos del coeficiente de
corelación r (Tabla I), que este aumenta a medida gue el orden
del polinomio
G
crece; esto se puede apreciar con mayor detalle
en la fig.(2). Es obvio que este coeficiente no nos proporciona
una medida apropiada para la determinación del polinomio de
ajuste.
Es necesario entonces, contar con coeficientes apropiados
que nos describan en cualquier situación el mejor polinomio
ajustado. Si analizamos con detalle el comportamiento de la
varianza con respecto al grado del polinomio
G,
notamos fig. ( 3 1 ,
que existen dos cambios bruscos en el comportamiento de la
varianza, esto ocurre para G=2 y
G=5.
Para estos valores se
obtuvieron valores mínimos de la varianza, luego entonces ¿cuál
será nuestro mejor polinomio?.
Para dar una respuesta apropiada, mostramos a continuación
los valores de los errores absolutos asociados a cada uno de los
parámetros A;, así como, sus errores porcentuales.
27
9 + - 6%
A,= -0.760407
+ - 0.0082092
1.08
0.56
?$=
0.952277
+-
Al=
0.224682
+ - 0.0121322
5.40
&=
-1.018042
+-
0.0144573
1.42
A3=
0.997968
+-
0.00355494
0.36
0.00534
Ai= -0.0689352 + - 0.0453554
65.79
+-
0.0843307
24.00
A3= -1.07945
+-
0.0431753
4.00
&=
+-
0.00531291
0.53
%=
0.351375
1.0037
Ai= -0.456351
+ - 0,176383
38.65
&=
1.04613
+-
0.433502
41.42
A3=
0.526798
+-
0.350341
66.50
&=
-0.836902
+-
0.103743
12.40
+-
0.00813875
A,= -3.6594
+-
0.408907
11.17
A2= 10.5369
+-
1.23458
11.72
A,=-10.7528
+-
1.3528
12.58
&=
4.89533
+-
0.653493
13.35
Is=
-1.82415
+-
0.132015
7.24
%=
1.03693
&=
0.9881
+ - 0.00788217
O. 8 2
0.76
29
6
7
8
+ - 2.19232
197.01
&= -7.60024
+ - 7.7774
102.33
A3= 15.8199
+ - 10.4989
66.37
&=-14.0824
+ - 6.73083
47.80
As=
+ - 2.08485
35.42
%= -1.94654
+ - 0.282503
14.51
A,=
+ - 0.0125154
1.20
A,=-14.6168
+ - 12.6142
86.30
&= 59.4856
+ - 50.4363
84.79
AS=-99.7648
+ - 80.023
80.21
&= 89.0282
+ - 64.2862
72.21
As=- 44.8402
+ - 27.6155
61.59
&= 12.446
+ - 6.31275
49.27
A7= -2.56226
+ - 0.620157
24.20
A,=
+ - 0.0212855
2.01
A,=-160.251
+ - 92.8649
57.95
&= 723.392
+-
427.919
59.15
A3=-1336.28
+ - 810.917
60.68
%= 1299.07
+ - 815.817
62.80
%=-709.769
+ - 468.757
66.04
&= 214.813
+ - 153.777
71.59
A7= -37.7713
+ - 27.1342
82.80
A,=
1.08704
+ - 2.23157
205.29
€+,=
0.961559 + - 0.0619926
Al=
1.11277
5.88685
1.04145
1.05986
6.45
31
9
AI= 927.848
+ - 650.252
70.08
&=-4717.73
+ - 3192.72
67.75
A40069.3
+ - 6573.18
65.28
&=-11779.9
+ - 7393.91
62.76
+ - 4965.27
60.39
%= -3493.79
+ - 2043.24
58.48
A,=
+ - 508.301
57.62
+ - 72.1349
58.80
&=
7.07401 + - 5.09372
72.01
Alp
0.81844 + - 0.128442
15.69
AS=
&=
8222
882.201
-122.68
8. CONCLUSIONES.
Es claro que para el ajuste de curvas, el coeficiente de
correlación r no es un buen indicador de la tendencia de los
datos. Por el contrario, la variaaza es un indicador apropiado,
siempre y cuando, vaya acompañado de la evaluación de los errores
asociados a los parámetros determimados.
33
9. BIBLIOGRAFIA.
1.
W. Mendenhall, R.L. Schaffer
&
D.D. Wackerly.
Estadística Matemática con aplicaciones.
Edit. Iberoamérica
2.
Draper, J.O.
&
1986.
Smith.
H. Applied Regression Analysis.
John Wiley
3.
Dunn, J.0
Sons
&
&
1981.
Clark.
Anal. of Var. and Reg.
John Wiley
4.
&
Sons 1987.
Mood, M.A., Graybill, A.F.
&
Boes.
C. D. INT. To Theory of Statistics.
Mc. Graw Hill
5.
1974.
Pearson
Notes of History Correlation.
Biométrica 13-34; 1920.
6.
Siegel.
Statistics and Data Analysis.
John Wiley
7.
&
Sons 1988.
Wittink.
The Application of Regression Analysis.
Allyn and Bacon, INC. 1988.
35
Pies de Figuras
Figura 1. Gráfica de los datos experimentales y del polinomio
de ajuste correspondiente.
Figura 2. Comportamiento del coeficiente de correlación respecto
al grado del polinomio de ajuste.
Figura 3. Se muestra el cambio en la varianza como función del
grado del polinomio a ajustar.
Figura 4. Comparación gráfica del polinomio de grado cinco con
el polinomio de grado dos.
37
1
39
41
i
I
i
I
43
- r--
Ij
x
i
I
I
i
I
i
I
1
45
Descargar