使用MKL求解线性方程组的C++程序

  • Z2_528014
    了解作者
  • 2.8KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-09 22:31
    上传日期
采用的是MKL实现方程组的求解,主要是使用LU分解的方法,MKL实现的求解速度比自己写的要快很多。
MKL求解线性方程组.rar
  • MKL求解线性方程
  • LinSolveLU.h
    605B
  • LinSolveLU.cpp
    1.4KB
  • MyMatrix.h
    5.3KB
  • MyMatrix.cpp
    0B
内容介绍
#pragma once #include "StdAfx.h" #include <iostream> #include <math.h> #include "LinSolveLU.h" using namespace std; LinSolveLU::LinSolveLU(int N):n_(N),hcond_(0) { vec_=new LDOUBLE[n_]; w_=new MyMatrix<LDOUBLE>(n_,1); ipiv_=new int[n_]; iwork_=new int[n_]; work_=new LDOUBLE[4*n_]; } LinSolveLU::~LinSolveLU(void) { delete []ipiv_; delete []iwork_; delete []work_; delete []vec_; delete w_; } void LinSolveLU::Solve(const MyMatrix<LDOUBLE> &b,MyMatrix<LDOUBLE> &A)//利用LU分解求解非齐次线性方程组 { int info=0; int nrhs=1; LDOUBLE anorm=Norm1(A); w_->Copy(const_cast<MyMatrix<LDOUBLE> &>(b)); dgetrf(&n_,&n_,A.Data(),&n_,ipiv_,&info); dgecon("1",&n_,A.Data(),&n_,&anorm,&hcond_,work_,iwork_,&info); dgetrs("N",&n_,&nrhs,A.Data(),&n_,ipiv_,w_->Data(),&n_,&info); } LDOUBLE LinSolveLU::Norm1(const MyMatrix<LDOUBLE> &A) { LDOUBLE norm1=0; for(int i=0;i<n_;++i) { LDOUBLE temp=0; temp=cblas_dasum(n_,A.DataColumn(i+1),n_); vec_[i]=temp; } norm1=MaxVec(); return norm1; } LDOUBLE LinSolveLU::NormInf(const MyMatrix<LDOUBLE> &A) { LDOUBLE norm1=0; for(int i=0;i<n_;++i) { LDOUBLE temp=0; temp=cblas_dasum(n_,A.DataRow(i+1),1); vec_[i]=temp; } norm1=MaxVec(); return norm1; } LDOUBLE LinSolveLU::MaxVec() { LDOUBLE temp=0; for(int i=0;i<n_;++i) { if(vec_[i]>temp) temp=vec_[i]; } return temp; }
评论
    相关推荐
    • C++ PRrimer
      本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的...
    • c++课件
      c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件
    • C++
      C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
    • Effective C++
      学习c++的经典书籍!每一个学习c++的人有时间最好看看!你会获得很大收获!
    • c++information
      c++c++c++c++c++c++c++c++c++c++c++c++
    • SourceStyler C++
      用DEV-C++写代码很方便,就是不能格式化有点郁闷 c++格式化的好工具 效率高
    • c++yuyanbiancheng
      这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!
    • C++ primier
      学习C++的经典之作,希望大家学习愉快,快速掌握C++的各种知识。多下哈
    • effective C++
      有关C++编程方面的检验性介绍,对由C转向C++,和有C++编程基础的程序员有帮助,不过是英文版
    • effective c++
      C++经典书籍Effective C++ By Scott Meyers, 已译成中文,chm格式,方便检阅 Uploaded by save (chaisave@sohu.com)