回 帖 发 新 帖 刷新版面

主题:请教精度问题

do i = 1, n
         x(i) = dot_product ( v(i,1:k+1), y(1:k+1) )
      end do


的计算结果

与我将它做成一个函数
  interface operator(*)
     module procedure v_mat_vec_product
  end interface
contains
  function v_mat_vec_product(mat,vec) result(res)
    implicit none
    real(krp),intent(in)   :: mat(:,:), vec(:)
    real(krp)  :: res(size(mat,1))
    integer     :: i
    do i=1, size(mat,1)
       res(i) = dot_product(mat(i,:),vec)
    enddo
  end function v_mat_vec_product


然后用
X = V*Y
的结果 后几位不一样,请问是咋回事

回复列表 (共1个回复)

沙发

我遇到过类似的问题, 不过我遇到的是dot_product跟直接计算之间的误差.
自己搞的测试程序没有这个差别, 但在程序里面计算反映出来的结果有一点点不同. 到现在我也没搞清楚原因.

请看这个帖子的后面部分的讨论, 
http://bbs.pfan.cn/post-312887.html

我来回复

您尚未登录,请登录后再回复。点此登录或注册