Home | Develop | Download | Contact
example_vector_poly.cpp
1
49#include <cmath>
50#include <Pds/Ra>
51
52int main(void)
53{
54 unsigned int L=1000;
55
56 // Creating Vectors X in [0,1> and Y: Y=X^2+noise
58 Pds::Vector Y=Pds::Pow(X,2)+0.05*Pds::RandN(L,1);
59
60 // Print size of vectors
61 X.Size().Print("X.Size(): ");
62 Y.Size().Print("Y.Size(): ");
63
64 // Getting the polynomial P of order 2 that fit (X,Y)
66 P.T().Print("\nP=Pds::PolyFit(X,Y,2);\tP.T():\n");
67
68 // Creating vector X
69 X="1 -1 2 -2";
70 X.T().Print("X.T():\t");
71 // Creating vector X
72 P="1 0 1";
73 P.T().Print("P.T():\t");
74
75 // Getting Y=p(X)
76 Y=Pds::PolyVal(P,X);
77 Y.T().Print("Pds::PolyVal(P,X).T():\t");
78
79 // Creating vector Xa
80 Pds::Matrix U("0 1 2\n3 4 5\n6 7 8");
81 U.Print("\nU:\n");
82
83 // Getting Ya=p(U)
85 Ya.Print("\nPds::PolyVal(P,U):\n");
86
87 X="1\n 2\n -1\n 3";
89 M.Print("M:\n");
90
92 Pd.T().Print("Pd.T():\t");
93
94 Pds::Vector P1="1 1";
95 Pds::Vector P2="1 2 1";
96 Pds::Vector Pm=Pds::PolyMul(P1,P2);
97 Pm.T().Print("Pm.T():\t");
98
99 Pds::Vector Ps=Pds::PolyAdd(P1,P2);
100 Ps.T().Print("Ps.T():\t");
101
102 Pds::Vector Acc;
103
104 Pds::PolyAcc(Acc,"1 2 1");
105 Acc.T().Print("Acc.T():\t");
106
107 Pds::PolyAcc(Acc,"1 -1");
108 Acc.T().Print("Acc.T():\t");
109
110 Pds::PolyAcc(Acc,"1 1 2 1");
111 Acc.T().Print("Acc.T():\t");
112
113 Pds::Vector Pp=Pds::PolyPoly("1 1 1","1 -2");
114 Pp.T().Print("Pp.T():\t");
115 return 0;
116}
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 Pow(const Pds::Matrix &A, double var)
Retorna el resultado de evaluar elemento a elemento la función pow.
Pds::Matrix T(void) const
Transpuesta de si mismo (A), el resultado es cargado en B.
Pds::Size Size(void) const
Retorna un objeto de tipo Pds::Size con el número de lineas y columans.
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.
void Print(std::string str="")
Muestra en pantalla el contenido de Pds::Size, elementos separados por tabulador.
Pds::Matrix PolyMat(const Pds::Vector &X, unsigned int N)
Retorna la Matriz de Vandermonde del vector X de M elementos.
Pds::Vector PolyAdd(const Pds::Vector &P, const Pds::Vector &Q)
Retorna la suma de los polinomio P(x) e Q(x).
Pds::Vector PolyVal(const Pds::Vector &P, const Pds::Vector &X)
Retorna El resultado de evaluar un polinomio P de grado N.
Pds::Vector PolyFit(const Pds::Vector &X, const Pds::Vector &Y, unsigned int N)
Retorna Un polinomio de grado N con el menor error cuadrático medio para el par X e Y.
Pds::Vector PolyDer(const Pds::Vector &P, unsigned int N=1)
Retorna la derivada D del polinomio P(x).
Pds::Vector PolyPoly(const Pds::Vector &P, const Pds::Vector &Q)
Dados los polinomios P(x) y P(x), la función retorna la evaluación de P(Q(x)).
bool PolyAcc(Pds::Vector &Acc, const Pds::Vector &P)
Retorna la suma de los polinomio Acc(x) e P(x).
Pds::Vector PolyMul(const Pds::Vector &P, const Pds::Vector &Q)
Retorna la multiplicación de los polinomio P(x) e Q(x).

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed