//整理by RobinKin
#include "mtl/matrix.h"
#include "mtl/mtl.h"
#include "mtl/utils.h"
#include "mtl/linalg_vec.h"
/*
x1=8;
2*x1+2*x2=43;
4*x2+5*x3=86;
6*x3+7*x4=137
结果:
[x1,x2,x3,x4]= [8,9,10,11,]
/*
Sample Output
A:
[
[1,],
[2,3,],
[0,4,5,],
[0,0,6,7,],
]
b:
[8,43,86,137,]
A^-1 * b:
[8,9,10,11,]
*/
using namespace mtl;
typedef matrix< double, triangle<lower>, banded<>, row_major>::type Matrix;
//typedef dense1D<double> Vector;
typedef external_vec<double> Vector;
int
main()
{
const int N = 4;
Matrix A(N, N);
set_diagonal(A, 1);
//C 1 8
//C A = 2 3 b = 43
//C 4 5 86
//C 6 7 137
A(1,1) = 3; A(2,2) = 5; A(3,3) = 7;
A(1,0) = 2; A(2,1) = 4; A(3,2) = 6;
double db[] = { 8, 43, 86, 137 };
Vector b(db, N);
std::cout << "A:" << std::endl;
print_row(A);
std::cout << "b:" << std::endl;
print_vector(b);
tri_solve(A, b);
std::cout << "A^-1 * b:" << std::endl;
print_vector(b);
return 0;
}
博客给出一段代码示例,涉及矩阵和向量运算。代码包含多个头文件,定义了矩阵和向量类型,设置矩阵元素值和向量元素值,通过矩阵运算求解线性方程组,最后输出矩阵、向量及运算结果。
5416

被折叠的 条评论
为什么被折叠?



