(* ::Package:: *) BeginPackage["extrapolation`"] simulate::usage = "simulate[a0,b0,x,\[Sigma]] retorna o objeto de ajuste dos parametros a um conjunto de dados simulados y = a0 + b0 x[[i]], com desvio padrao \[Sigma]" value::usage = "value[fit,x] retorna uma lista com os valores interpolados para os diversos x da lista e o qui-quadrado do ajuste" \[Sigma]value::usage = "\[Sigma]value[fit,x]retorna uma lista com os desvios padr\[OTilde]es dos valores interpolados para os diversos x da lista" Begin["Private`"] simulate[a0_,b0_,x_,\[Sigma]_]:=Module[{simul}, simul=Table[{x[[i]],RandomVariate[NormalDistribution[a0+b0 x[[i]] ,\[Sigma]] ]},{i,Length[x]}]; LinearModelFit[simul,{z},z,Weights->ConstantArray[1/\[Sigma]^2,Length[x]],VarianceEstimatorFunction->(1&)] ] value[fit_,x_]:=Module[{pAju},pAju=fit["BestFitParameters"]; pAju[[1]]+pAju[[2]]x ] \[Sigma]value[fit_,x_]:=Module[{vab,v},vab=fit["CovarianceMatrix"]; v={1,x}; Sqrt[ v.vab.v ] ] End[] EndPackage[]