Home | Develop | Download | Contact
example_regression_fitting.cpp

Programa para el testeo de las funciones.

Programa para el testeo de las funciones.Para compilar o código example_regression_fitting.cpp:

g++ -static -o example_regression_fitting example_regression_fitting.cpp -lpdsmlmm -lpdsramm -lpdsspmm

Para executar o programa:

./example_regression_fitting

Retornando por consola:

C.T():
-0.3 0.1  
C.T():
0.99314856871846 2.0109980511082 

Código example_regression_fitting.cpp:

#include <Pds/Ra>
double Func(const Pds::Vector &x,const Pds::Vector &c)
{
if(c.IsEmpty()) return 0;
return c[0]+c[1]*x[0];
}
Pds::Vector DcFunc(const Pds::Vector &x,const Pds::Vector &c)
{
if(c.IsEmpty()) return Pds::Vector();
Pds::Vector Dc(c.Nel());
Dc.SetRaw(0,1.0);
Dc.SetRaw(1,x[0]);
return Dc;
}
int main(void)
{
unsigned int L=1000;
Pds::Vector Y=2*X+1+0.1*Pds::RandN(L,1);
Pds::Vector C="-0.3 0.1";
C.T().Print("C.T():\n");
C=Pds::Regression::FitModel(X,Y,Func,DcFunc,C);
C.T().Print("C.T():\n");
Yres=X.OperateRows(Func,C);
Pds::Octave::Plot::CurveXYXY(X,Y,X,Yres,"testando.m","testando.png");
}
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:80
Pds::Matrix RandN(unsigned int N)
Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1....
Vector LinSpace(double start, double end, unsigned int N)
Retorna un vector con elementos desde start hasta end con N elementos.
Pds::Matrix T(void) const
Transpuesta de si mismo (A), el resultado es cargado en B.
Pds::Matrix OperateRows(double(*func)(const Pds::Matrix &Row)) const
Opera la función func usando como entrada cada fila de la matriz.
bool IsEmpty(void) const
Verifica si la matriz es nula es decir con lineas o columnas cero o arreglo NULL.
unsigned int Nel(void) const
Retorna el número de elementos de la matriz (Nlin x Ncol).
void Print(const std::string &str, unsigned int precision) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.
bool CurveXYXY(const Pds::Vector &X, const Pds::Vector &Y, const Pds::Vector &Xs, const Pds::Vector &Ys, const std::string &octfilename, const std::string &imgfilename, bool EnableLine=false)
Plot de X vs. Y junto con Xs vs. Ys.
unsigned int MarkerSize
Line width usado en el código octave. Por defecto:
Pds::Vector FitModel(const Pds::Matrix &X, const Pds::Vector &Y, double(*Func)(const Pds::Vector &, const Pds::Vector &), Pds::Vector(*DcFunc)(const Pds::Vector &, const Pds::Vector &), Pds::Vector c0, double Lambda=0.01, double MinError=1.0e-5, unsigned int MaxIter=2048)
Esta función encaja un modelo multidimensional com parametros en un conjunto de muestras .

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed