本文整理汇总了C++中Matriz::transponer方法的典型用法代码示例。如果您正苦于以下问题:C++ Matriz::transponer方法的具体用法?C++ Matriz::transponer怎么用?C++ Matriz::transponer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matriz
的用法示例。
在下文中一共展示了Matriz::transponer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: minimizarConGrado
/**
* @param mediciones mediciones[i] = x(i) ==> el valor de x en el instante i
* @param grado el grado del polinomio con el que queremos hacer CMP
*
* @return result[i] = a_i los coeficientes del polinomio
*/
vector<double> minimizarConGrado(vector<double>& mediciones, int grado, int tiempo) {
//assert(grado < (int) (mediciones.size())); // no usamos el polinomio interpolador
int cantidadMediciones = mediciones.size();
Matriz<double> A(cantidadMediciones, grado+1);
for(int i = 0; i < cantidadMediciones; ++i) {
for (int j = 0; j < grado+1; ++j){
// la última columna tiene 1s porque es t_i^0
if (j == grado) {
A[i][j] = 1;
} else {
// los t_i son discretos entonces son 0,1,2,3,..,cantidadMediciones
A[i][j] = pow(tiempo-i, grado-j);
}
}
}
Matriz<double> bMatriz (cantidadMediciones, 1);
for(int i = 0; i < cantidadMediciones; ++i) {
bMatriz[i][0] = mediciones[i];
}
//A, ATranspuesta, C = ATranspuesta*A y proyeccionBSobreA = ATranspuesta*b
Matriz<double> ATranspuesta = A;
ATranspuesta.transponer();
Matriz<double> C = ATranspuesta*A;
Matriz<double> proyeccionBSobreAMatrix = ATranspuesta*bMatriz;
vector<double> proyeccionBSobreA = matrizAVector(proyeccionBSobreAMatrix);
gaussInf(C, proyeccionBSobreA);
vector<double> coeficientesPivoteados (proyeccionBSobreA.size());
backSubst(C, proyeccionBSobreA, coeficientesPivoteados);
vector<double> coeficientes = C.despivotear(coeficientesPivoteados);
reverse(coeficientes.begin(), coeficientes.end());
return coeficientes;
}