回 帖 发 新 帖 刷新版面

主题:稀疏矩阵和全矩阵得到的特征值和特征向量相同吗?arpack可以实现吗?

最近发现我的程序可以写成稀疏矩阵的形式,就想问下:对于一个矩阵来说,写成稀疏的形式和全矩阵的形式得到的特征值和特征向量应该是相同的吧?

另外我在看怎么把一个矩阵用稀疏矩阵来表示的时候,有个地方有点疑问想请教下,主要是输出数据,他是用C语言写的,我把它贴上来吧

这是我用fortran写的算法,根据他给的C例子写的,输出语句跟他的不同啊。

求大侠们指教一下吧。

我这脑袋!!!

         program yasuo
         implicit none
         integer i,j,index
        
         integer A(9,7)
         integer CD(10,3)
         open(1,file='ceshi.txt')
         index=0
        
         data A/0,0,0,1,0,0,0,0,0,0,3,0,4,0,0,0,0,0,0,0,0,0,7,0,0,0,0,
     s  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,
     s  0,0,0,0,0/
        
        
         do i=1,9
         do j=1,7
          print*, A(i,j)
          enddo
          enddo
         
         do i=1,8
         do j=1,7
        
         if(A(i,j)/=0) then
        
         index=index+1
         CD(index,1)=i
         CD(index,2)=j
         CD(index,3)=A(i,j)
        
         endif
         enddo
         enddo
        
         do i=1,index
          do j=1,3
          write(1,*) CD(i,j)
           enddo
         enddo
!           write(1,"(i1,i3/)") (i,(CD(i,j),j=1,3),i=1,index)
      
        end
        


        
        
        

 

回复列表 (共3个回复)

沙发


为什么只能贴一张图片啊?
郁闷。

板凳

他的主要目的就是最后输出非零元素所在的行,列,和元素值,。我那么输出的话只有一列数,就是怎么把三列数全给出来呢

3 楼


do i=1,8
do j=1,7

if(A(i,j)/=0) then

index=index+1
CD(index,1)=i
CD(index,2)=j
CD(index,3)=A(i,j)

endif
enddo
enddo

do i=1,index
write(1,*) (CD(i,j),j=1,3)
enddo

end





我来回复

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