Está en la página 1de 12

Universidad de El Salvador

Introduccin al anlisis numrico para Ingeniera Qumica/Alimentos a travs de


Matlab/Octave.
Gua4: ajuste de curvas: regresiones e interpolacin

Tantounaregresin comounainterpolacin,sonenresumen,unmodelomatematicoque
nos permite establecer una relacin entre una variable independiente (x) y unavariable
dependiente(y).Existendiferentestiposderegresiones,ascomointerpolaciones.

Un punto a considerar,es laimportanciade plotear(graficar) losgrficosantes deutilizar


un modelo de interpolacin o regresion, ya que esto nos ayudar a entender mejor su
comportamiento, es all donde se puede constatar la valiosa utilidad de la orientacina
datos de los lenguajes matlab/octave ya que, por ejemplo, un grfico que describa un
comportamientocomoeste:

Podra sugerir, el anlisis de una


forma seccionada: por una parte,
los puntos comprendidos en el
tiempo de 0 a 0.6 pueden ser
perfectamente descritos por una
ecuacin lineal,peroeldecremento
de 0.6 a 1.4, presentara un error
considerable al analizarse como
lineal.por la tendenciadelagrfica
podramos sugerir la forma
seccionada de eax . Inclusive bajo
este criterio,apreciamos una particularidad:la seccion no corresponde completamenteal
modelo exponencial, sino a parte de l (sabemos que nunca se cortara el eje de las
abcisas) deben aplicarse por tanto las condiciones pertinentes para el diseo de un
sistemaquimico.

Ahora bien, existen diferencias sustanciales entre la regresin y la interpolacin, se


puedencomprenderdadoelejemplosiguiente:

%datosexperiementales
x=0.5:0.5:3
y=[0.7,1.2,1.3,1.2,0.8,0.3]
holdon
plot(x,y,'ro','markersize',4,'markerfacecolor','r')
xx=linspace(0,3.1,100)


%regresin
p=polyfit(x,y,2)%polinomiodesegundogrado
yy=polyval(p,xx)
plot(xx,yy,'b')

%interpolacin
yy=spline(x,y,xx)
plot(xx,yy,'g')

holdoff
gridon
legend('datos','regresion','interpolacion')
xlabel('x')
ylabel('y')
title('Interpolacion,regresion')

Regresiones
Laregresineselajustedelosdatosexperiementalesaunafuncinquedescribeel
modeloparticular.Sinembargo,nonecesariamenteelmodelocomprendelatotalidadde
lospuntosobtenidosexperimentalmente.

Existendiferentesmtodosnumricospararegresiones,entreellospodemosmencionar:

Regresinpormnimoscuadrados
Serealizacuandolosdatostieneneerroressustanciales,yaqueunaregresinpolinomial
resultarainadecuada(ensumayoracondatosexperimentales).Unejemplodeloque
queremosdecir,puedeobservarseenelsiguientegrfico.

Dondeapreciamosunaclara
dispersindelosdatos,pero
quetambiendenotauna
importanterelacinlinealentre
losmismos.Dehechoun95%
delosdatosestndispersados
entrelasrectasparalelas
cortadas.

Regresinlineal
Unmodelobsicoderegresin
lineal,puedeobtenersede:

y
m = x
y = x(m) = y2 y1
Altomarcomoreferencia x1 = 0
y2 = mx2 + y1 queeslomismoquedecir: y = ax + c
Portanto:
y = ax + c = mx2 + y1 y = mx + c
Alinsertarlanotaciondelerror,queconllevaelalejamientodecadadato,setiene:
y = mx + c +
Elerrorpuedeexpresarseentonces,como:
= y mx c

Deestaforma,puedededucirseunaexpresinparaunmejorajuste,queselograr
cuandolasumadelvalorabsolutodelerrorseamnima.

i=1

i=1

i = (y mx c)

Dondeneselnumerototaldepuntos.

Enbasealanlisisanteriormenteexpuesto,yhaciendousodecriterios
estadsticos
se
puedeobtener:
2(c, m) = (yimxic)2

Lacualeslaexpresindelmtodode
mnimoscuadrados
.

Setieneque:

SxxSySxSy
c = NS

xxSxSx

NS S S
m = NSxyxxSxxSyx

DeterminamosR,elcualesmuyimportanteenmateriaestadisticapuesindicala
representacionoinclusionoptimadelamayoriadedatos.

r=

NSxySxSy
NSyySySyNSxxSxSx

con Syy = yi2


i=1

DondeN=n(numerodeincidenciasopuntosdelexperimento)

Loqueselograraconesto,esquesibienlarectanopuedepasarportodoslospuntos,
elalejamientooladistanciaentrelosmismosylarectasermnimo,deestaformase
obtieneunalneaptima.

Nota:noseincluyelacuantificaciondelerror(desviacindemyc)

Regresinpolinomial
Basicamenteconsisteenajustarpolinomiosalosdatosdetrabajo.Seconstruyeenbase
almetododeminimoscuadrados,quepuedeextendersuajustefacilmenteapolinomios
degradosuperior.

Deestaforma,unpolinomiodeltipo: y = a0 + a1x + a2x2 +

Sr = (yi a0 a1xi a2x 2)2


i

Conesto,aldiferencerlaecuacionrespectoacadaunodeloscoeficientessetiene:


Queformanunconjuntoderelacioneslinealesquepuedensersolucianadas,paraasi
determinarelvalorde a0, a1, a2 mediante
solve
o
simultaneo
(comoelvistoenelejemplo
debalanceenunreactor).Sededucequeporlotanto,queparaunpolinomiodegradon
setendraunnumerodeecuaciones n + 1 quepodrasersolucionado.

Esinteresantenotar,queestetipodeanalisistieneunaimplicacionimportante:cuando
nosotrosderivamosparcialmentealafuncionrespectoaloscoeficientes,estamos
haciendouncambiodevariables,dondelanuevasvariablesseranloscoeficientesdela
expresion,y,quealderivarreducimossugradoa n 1 queparaunaecuacioncuadratica
equivaldriaahacerrectastangentesalacurva,yasisucesivamente.

Linealizacionparalaregresionexponencial
Comosehamencionado,losmetodosnumericostienensufundamentoenelanalisis
combinadodealgebra,geometriaanaliticayalgunasveceselcalculo.Taleselcaso
presente,dondeaplicamosunareglaalgebraicasimple.supongamosunarelacion
exponencialdeltipo:
y = aecx
ElanalisisalgebraicoindicaqueaplicandoLogaamboslados(base
e
)tendremos:

Loge(y) = cx + Loge(a)

Obteniendoasiunarectaconuna
pendientecyconunintercepto
Log(a)

Nota:
Estetipodeanalisis,puede
seraplicadoaotrasfuncionesno
lineales.Puedenconsultarseotro
tipoderelacionesexponencialesen
unlibrodetextodematematicas.
paraaplicarestetipodearregloalos
datos,sepuedenplotear,yluego,
condiferentesmodelosdetratarde
acoplarelarrayalaformalineal,y
aplicarminimoscuadrados.

Interpolacin
Demanerasimple,lainterpolacinpermitepredeciroprecisarlalocalizacindeunpunto

noconocidocomprendidoentreelrangodevaloresexperimentalesconocidos,aunque
tambieneningenieraesfrecuentedisponerdeunciertonmerodepuntosobtenidospor
muestreoypretenderconstruirunafuncinquelosajuste.Enlainterpolacin,adiferencia
delaregresin,lafuncinpasaportodoslospuntos.

Interpolaciones
Interpolacinlineal
EsuncasoparticulardelmetododeinterpolaciongeneraldeNewton.Seexpresaasi:

Dondeayb,equivalenapuntoscualesquieradelalinea.Porconveccionseusab>a

Notesequelaregresionanteriorsololograunirconlineasrectasdospuntos.La
aproximacionresultamaspreceisacuandoelintervaloentrelosdatosespequeo,olo
queeslomismo,perteneceaundiferencialdesegmento,unacantidadinfinitesimal.

polinomiosdeinterpolacindeNewton
EnlaformulageneraldeinterpolacindeNewton,seconsideraqueparaevaluarun
polinomiodengradosserequieren n + 1 puntos.Laformageneralser:
f n(x) = b0 + b1(x x0) + ... + bn(x x0)(x x1)...(x xn1)
donde:
b0 = f (x0)
b1 = f [x1, x0]
b2 = f [x2, x1, x0]
bn = f [xn, xn1, ..., x1, x0]
Donde,lasevaluacionesentrecorchetesignificadiferenciasdivididasfinitas:
f(xi)f(xj)
xixj
f[x ,x ]f[x ,x ]
f [xi, xj, xk] = i xj x j k
i k

f [xi, xj] =

Elanalisisdelsiguienterecuadronosdaraunaideamasclaraalrespecto:

Nota:elestudiodeerrorpresenteenestemtodoexcedelosalcancesdeestecurso.se
recomiendareferenciarseunpocoalrespecto.

PolinomiosdeinterpolacindeLagrange
EsunamejoraalmtododeinterpolacindeNewton,serepresentacomo:
n

f n(x) = Li(x)f(xi)
i=0

Donde:
xx
n
Li(x) = j=0,ji( x j )
ixj

Alserexpandidosetiene:

dondeelsignopi,denotaelproductodelasfracciones.Paraelcasoden=1tendriamos

Yasisucesivamenteparapolinomiosdemayorgrado.

RegresionesenMatlab/Octave
p=polyfit(x,y,n)
polifytesunamezcladelanlisisderegresineinterpolacin,puessibiencubrela
mayoriadepuntos,sualgoritmoidentificaaquellosvaloresatipicosodemasiadoalejados
paraserignoradosdentrodelainterpolacin.Pruebeelalgortimosiguiente:

x=[1361020]
y=[2.57.515.52445]
p=polyfit(x,y,1)%eltercerargumentoindicaelgradodelpolinomio

Observaremoslaimpresionenpantalladeunvectorcondoselementos,que
correspondenalosparametrosquepolyfit()retorna.Pararunformatodesalidamsclaro,
hacemos:

polyout(p,"x")
%elcomandopolyvalleeunvectoryconstruyeunafuncionapartirdel
plot(x,y,"*",x,polyval(p,x),"")
xlabel("x")
ylabel("y")
legend("puntos","ajuste")
text(0.5,45,polyout(p,"x"))%uso:text(x,y,mensaje)
grid()

NOTA:pruebeelcomandoconlasopcionesde2doy3ergrado.puedeobtenerla
desviacionusando:
desviacion=sqrt(mean((ypolyval(p,x)).^2))

leasqr()
Elusodelcomando,escomosigue:
[f,p,cvg,iter]=leasqr(x,y,pin,F
)

Donde:
x
:vectoromatrizdevariablesindependientes
y
:vectoromatrizdevariablesdependientes
pin
:vectordeparametrosinicialesparaserajustadoconleasqr()
F
:Funcionatratar
f
:setdeyajustados.f=F(x,p)
p
:vectorconparametrosfinalesdelasolucion
cvg
:escalar=1sihayconvergencia,0decualquierotraforma
iter
:numerodeiteracionesusadas

Aclaracion
:paraaquelloscomandosquedevuelvenunvectorF(x),elprocesopara
obtenerunafuncinesbastantesimple:primeroconseguimoshacerunaregresinala
dispercindedatosatravsdelvectorqueestosdevuelven.luegopodemosusarel
comandopolyfit(),paraobtenerunaecuacin.Elusodedichocomandosemencionar
adelante.


Ejemplo:
%creamosunsetdedatosx
x=linspace(0,5)
%creamosunsetdeyalazarapartirdexyvisualizamos
y=1./(1+1.2*x.^1.8)+randn(1,100)*0.03
plot(x,y,"go")
%creamosunafuncionllamadaffundadalatendenciadelafuncion
functiony=ffun(x,p)
y=1./(1+p(1)*x.^p(2))
endfunction

p=[0.50.0]
[yfitpfitcvgiter]=leasqr(x,y,p,"ffun")
cvg,iter
pfit
plot(x,y,"o",x,yfit,"r")

InterpolacionesenMatlab/Octave
spline()
Ejemploaplicadospline()
x=0:10
y=sin(x)
xx=0:.25:10
yy=spline(x,y,xx)
plot(x,y,"o",xx,yy)

Sinembargo,elusodespline,puedepresentartambienciertosinconvenientespara
cuandoelsetdedatosessignificativamentemasgrande:

x=10*pi^2*rand(1,25)
y=sin(x)rand(1,25)+rand(1,25)
xx=0:.25:80
yy=spline(x,y,xx)
plot(x,y,"o",xx,yy)

Puedeobservarsequelacurvallegahastalosvaloresdefinidosparaxx,yquetomatodos
ycadaunodelospuntosdeladispersion.

yi=
interp1
(x,y,xi,tipo)
Esunmtodobastanteprctico,yaqueelalgoritmodelafuncininterp1nospermite

especificareltipodeinterpolacindeseada(linear,cuadrtica,cbica,etc).Pararesumir
suusocrearemosunsetdedatos:
xp=[0:10]
yp=sin(2*pi*xp/5)

Procedemosaconstruitunnuevopardevectores,estodebidoaqueademasdevalores
dexp,precisamosdeunnuevovectorxfconlamayorcantidaddepuntosposibles,en
elrangodelasxpdadas.Paraconocerelrangodexpodemosusarrange():
xf=[0:0.05:range(xp)]
yf=sin(2*pi*xf/5)

Supongamosunainterpolacinlineal
lin=interp1(xp,yp,xf)

paraunafuncindeltipocbica
cub=interp1(xp,yp,xf,"cubic")

Paraunainterpolacinpolinomial
pln=interp1(xp,yp,xf,"spline")

Alplotearenconjunto:
plot(xf,yf,"r",xf,lin,"g",xf,pln,"b",xf,cub,"c",xp,yp,"r*")
grid()
legend("original","linear","polinomial","cubica")

Comohemospodidoobserbar,entodosloscasosinterp1()loquenosdevuelveesde
hechounvectoryenbasealarelacinquehemosordenadoalcomando.esdecir:el
interpretediseaunafrmulageneralyforzaalosdatosaentraraesaecuacin.

NOTA:xdebedeestarigualmenteespaciada.

Siideseamosconocerlaecuacinquegeneralacurvadedatos,debemosarecurrira
polyfit(),yobteneraslaecuacinmedianteelusocombinadodecomandos.

Preguntas:
Quhacersideseamosunaregresiondeunsetdedatosqueevidenciaunatendencia
exponencial?

Culeselproblemaquerepresentaelusodesplinecuandohaydispersindedatos?

Ejemploaplicado:torredesecado
Lafiguradeintroduccinaestecaptulomuestraunprocesodesecado,dondesegrafica

masatotalvstiempo.Losdatosdemasa(m)enkgytiempo(t)enhoras,son
respectivamente:
m=[40,32.9,25.8,18.7,16.4,14.3,13.4,13,13]
t=[0,0.2,.4,.6,.7,.9,1.1,1.3,1.4]

Supongaque,afindepoderanalizarestosdatos,serequiereunafuncinquedescribael
procesodemasaevaporada,respectoaltiempo.Encujentreportantounaexpresinque
nospermitadescribircuantamasasehabrevaporadoluegode0.3y1.1horas.

sugerencia:Debidoalcomportamientodelagrficapodrasertilseccionarlayobtener
dosexpresionesquedescribanlasdosregiones.

Ejemplodemostrativo:interpolacindedatostermodinmicos

Unproblemausualenlalecturadetablasdevaporesladificultadparaleerdatoscercanosal
puntocrtico.Estotambinsucedeenalgoritmosdedatostermodinmicosprogramadosen
calculadorasporttileslascualessondispositivosmenospotentesqueunacomputadora,por
tanto,comountrucodeprogramacin,serecurreausarmenospuntosomenosdatos
termodinmicosquelosqueseusaranenunaComputadoraPersonalafindenosaturarla
memoriavoltildeldispositivoporttil.Acontinuacinsedemuestraenbasealainterpolacin,
porquepuedenpresentarseestaseriededificultadesenlospuntoscercanosalpuntocrtico.

SupongamosprimeramentequeeldiagramaPVdeunasustancia(lasustanciax)est
representadomediantelaecuacin V = P Cos(P ) paraunapresinquevadesdelos5a8MPa.

Generamosunsetdedatoscon100elementosylosploteamos
x=linspace(5,8,100)
y=x.^cos(x)
plot(x,y,'b')
hold('on')
title('diagramaPV')
xlabel('P')
ylabel('V')

Ahorasupongaque,deseamosprogramardichosdatosenunacalculadoraporttil,paratales
efectosasumimosquedesconocemoslarelacinV=f(P)conlacualhemosmodeladolosdatos
yensulugartenemosunsetde100datosdeVyPrespectivamente.

Parapoderrepresentarelcomportamientoextraemosunnuevovectorenbasealosconocidos:

a=x(1:10:100)
b=y(1:10:100)

Ploteamoslosdatosquerecopilamosdelosvectoresoriginales,sobreelgrficooriginal
plot(a,b,'ro')
grid('on')

legend('datosoriginales','interpolacionlineal')

Observelareginsuperiordeldomo:
Cmoexplicaraestolaproblemticadeleerdatosdetablasdevaporcercanosalpunto
crtico?

Hagascrollsobreelreacrticayobservelaregindeincertidumbre.
Qusugeriraparaminimizaresteerror?
Interpolarentredatoscontiguos,olomsproximosposibles

referencias
http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/numerico/datos/interpolacion.h
tml
Muyrecomendado:contiene,algunosalgoritmosprogramadosdelasfuncionesmencionadasenelcaptulo.

http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/numerico/datos/datos.html

https://www.scribd.com/doc/106671667/LinealizaciondeFuncionesNoLineales

http://sysplay.in/blog/tag/polynomialcurvefitting/

http://www.krizka.net/2010/11/01/nonlinearfittingusinggnuoctaveandleasqr/

http://www.mathworks.com/help/matlab/ref/spline.html

https://www.packtpub.com/books/content/gnuoctavedataanalysisexamples

También podría gustarte