Newton619 2021-09-19 22:36 采纳率: 0%
浏览 229
已结题

fortran中mkl库pardiso计算错误

大家好,我想利用pardiso计算Ax=B问题求x,想计算A是4*4矩阵,16个元素都是6.25, x=(1,1,1,1)T,然后用mkl_dcsrsymv计算得到B=(25,25,25,25)T,但是为什么将A和B带入pardiso,得到的x是(0,0,0,4)T呢?代码如下谢谢大家!!

program mkl
    implicit none
    integer, parameter        :: n = 4 
    real(kind=8)              ::  x(n), y(n),A(n)
     integer(kind=4)           ::i(5),j(10)
     real(kind=8)           ::csr(10)     
      character(len=1)          :: uplo = 'u'
     integer(kind=8)                 :: ipt(64)
    integer(kind=8)                 :: idum(n)
    integer(kind=4)                 :: maxfct, mnum, mtype, phase, nrhs, error, msglvl
    integer(kind=4)                 :: iparm(64)
  
     x=(/1,1,1,1/)
        i=(/1,5,8,10,11/)
     j=(/1,2,3,4,2,3,4,3,4,4/)
     csr=(/6.25,6.25,6.25,6.25,6.25,6.25,6.25,6.25,6.25,6.25/)
     call mkl_dcsrsymv( uplo, n, csr, i, j, x, y )
 
    ipt    = 0
    maxfct = 1
    mnum   = 1
    mtype  = -2 
    phase  = 13  
    nrhs   = 1
    msglvl = 0 
    error  = 0    
    iparm  = 0          
    idum=0             
   call pardiso(ipt, maxfct, mnum, mtype, phase, n, csr, i, j, idum, nrhs, iparm, msglvl,y, A, error)
  end program mkl

  • 写回答

3条回答 默认 最新

  • 技术专家团-Joel 2021-09-20 17:13
    关注

    没有错误哦,同学,
    你看你用的是全6.25的矩阵,这种4x4的矩阵就是秩亏矩阵,秩为1,所以按理来说是无数个解的,之所以出现某个特解,是跟求解器所使用的求解方法有关。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 赞助了问题酬金 9月19日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 有卷积神经网络识别害虫的项目吗
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件