funcoes-regressao no matlab

download funcoes-regressao no matlab

of 2

description

matlab

Transcript of funcoes-regressao no matlab

  • Regresso de funes com Modelos MATLAB

    Exponencial - function [ yy,beta ] = reg_exp( x,y,ponto )% Calcula pelo mtodo de mnimo erro quadrtico a regresso exponencial% dos dados em x e y e extrapola o modelo at o valor ponto% exemplo => [ yy,beta ] = reg_exp( x,y,ponto );% onde: yy ? o vetor com os valores da funo modelada at o valor ponto% beta ? um vetor contendo os coeficientes do modelo exponencial% cuja equao do tipo y=beta(1)*exp(beta(2)*x)) % regresso exponencial usando a funo nlinfit com o modelo a*exp(b*x)+c % onde b1=... e b2=... + c da equao y=log_a(bx)+ c %Model = @(B,x) B(1).*exp(B(2).*x); Model = @(B,x) B(1).*exp(B(2).*x); beta0=[0 0]; disp(' '); disp('coeficientes do modelo: yy=beta(1).*exp(B(2).*xx)'); disp(' '); beta=nlinfit(x,y,Model,beta0); disp(['beta(1) = ' num2str(beta(1)) ' e beta(2) = ' num2str(beta(2))]); disp(' '); % calcula os vetores para a extrapolao xx=x(1):0.25:ponto;%Model = @(B,x) B(1).*exp(B(2).*x); yy=beta(1).*exp(beta(2).*xx); n=length(yy); disp(' '); disp('valor extrapolado para o ponto desejado '); disp(' '); disp(['y = ' num2str(yy(n))]) disp(' '); % plota a figura figure; plot(x,y,'b+',xx,yy,'r',xx(n),yy(n),'ro') end

    Logartmica - function [ yy,beta ] = reg_logX( x,y,ponto )% Calcula pelo m?todo de mnimo erro quadrtico a regresso logaratimica% dos dados em x e y e extrapola o modelo at? o valor ponto% exemplo => [ yy,beta ] = reg_log( x,y,ponto );% onde: yy ? o vetor com os valores da funo modelada at o valor ponto% beta ? um vetor contendo os coeficientes do modelo logartmico% cuja equa??o ? do tipo y = beta(1)*log(x) + beta(2) % regress?o logartmica usando a fun??o nlinfit com o modelo b1*log(x)+b2 % onde b1=1/log(a) e b2=log(b)/log(a) + c da equa??o y=log_a(bx)+ c Modellog=@(B,x) B(1).*log(x) + B(2); beta0=[0 0]; disp(' '); disp('coeficientes do modelo: y = beta(1)*log(x) + beta(2) '); disp(' '); beta=nlinfit(x,y,Modellog,beta0); disp(['beta(1) = ' num2str(beta(1)) ' e beta(2) = ' num2str(beta(2))]); disp(' '); % calcula os vetores para a extrapola??o

  • xx=x(1):0.25:ponto; yy=beta(1).*log(xx)+beta(2); n=length(yy); disp(' '); disp('valor extrapolado para o ponto desejado '); disp(' '); disp(['y = ' num2str(yy(n))]) disp(' '); % plota a figura figure; plot(x,y,'b+',xx,yy,'r',xx(n),yy(n),'ro') end