VS版Eigen库求解大型稀疏线性方程组
来源:互联网 发布:灰度共生矩阵14个特征 编辑:程序博客网 时间:2024/05/21 19:36
众所周知,为了减小稀疏矩阵的存储内存,稀疏矩阵有专门的存储办法。但是怎么求解诸如 Ax=b(这里矩阵A为稀疏矩阵,假设x为列向量,b也为列向量)这样的方程组呢?求解这样的方程组分为两个步骤,一个是对稀疏矩阵A赋值,一个是用solve求解器求解方程组。
#include "stdafx.h"#include<Eigen\Sparse>//包含稀疏矩阵求解;#include<Eigen\Dense>#include<vector>#include<Windows.h>//调用sleep延迟函数;#include<iostream>typedef Eigen::SparseMatrix<double> SparseMatrixType;typedef Eigen::Triplet<double> T;typedef Eigen::SimplicialCholesky<SparseMatrixType> Solve;int _tmain(int argc, _TCHAR* argv[]){int row_A, col_A,row_b;col_A = 100; row_A = 100;row_b = row_A;//声明方程组的变量;SparseMatrixType A(row_A,col_A);Eigen::VectorXd x;Eigen::VectorXd b;std::vector<T> tripletlist;//给向量b赋值;b.resize(row_b);for (int i = 0; i < row_b; i++){b(i) = i + 1;}//给稀疏矩阵A赋值;for (int i = 0; i < row_A; i++){for (int j = 0; j < col_A; j++){tripletlist.push_back(T((i + 3) % row_A, j, i + j));tripletlist.push_back(T(i, j, i + 1));}}A.setFromTriplets(tripletlist.begin(), tripletlist.end());A.makeCompressed();//求解;Solve *p_A = new Solve(A);x = p_A->solve(b);for (int i = 0; i < x.size(); i++){std::cout << x(i) << " ";}Sleep(20000);return 0;}运行结果如下:
要是有帮助到亲的话,可不要忘了给皮皮点个赞呢
阅读全文
0 0
- VS版Eigen库求解大型稀疏线性方程组
- Eigen教程5 - 求解稀疏线性方程组
- Eigen 求解线性方程组
- 基础知识(十一)Eigen求解稀疏矩阵
- HYPRE并行库进行稀疏线性方程组求解
- 线性方程组求解库
- 线性方程组求解库
- Eigen 创建求解稀疏矩阵 保存方便日后使用
- 使用UMFPACK求解大型稀疏矩阵方程
- Eigen库 求解特征值特征向量
- Eigen解线性方程组
- 稀疏矩阵库umfpack和Eigen结合
- 用sparselib库解稀疏矩阵线性方程组
- 求解线性方程组
- 线性方程组求解
- 求解线性方程组
- 大型稀疏矩阵求解器GSS 2.0发布
- 求解非线性最小二乘法 Eigen
- RK3399(2)
- Android Studio 导入 Sweet-alert-dialog
- SpringCloud 教程 | 第二篇: 服务消费者(rest+ribbon)
- iOS蓝牙原生封装,助力智能硬件开发
- [LC][array] Add to List 561. Array Partition I
- VS版Eigen库求解大型稀疏线性方程组
- android 性能优化笔记(3)
- 这名程序猿吐了一管口水,便迎来了人生的四大暴击…
- iOS TableViewCell ~reuseIdentifier(标识符)
- 使用Anaconda安装tensorflow
- RK3399(3)
- POJ 2162(模拟) 改不对,,
- 进程间通信IPC
- 第三章 关系数据库标准语言SQL