三对角矩阵求解fortran程序
2010-03-15 21:28:46| 分类: 记事本_c+`!|字号 订阅
!三对角矩阵的求解
program main
implicit none
integer,parameter::width=3
integer,parameter::row=5 !size of matrix
real::a(row,width)=(/0,2,3,4,5,1,3,4,5,2,2,3,4,2,3/)
real::s(row)=(/3,9,12,10,3/)
real::ans(row)
integer::i
!equation
call gauss_jordan(a,s,ans,row,width)
write(*,*)'ans:'
do i=1,row
write(*,"(1x,a1,'=',)")char(96+i),ans(i)
end do
stop
end program main
!gauss_jordan法的函数
subroutine gauss_jordan(a,s,ans,row,width)
implicit none
integer::row,width
real::a(row,width),s(row),ans(row),b(row,width),i
!保存原先的矩阵a及数组B
b=a
ans=s
!把B化成对角线矩阵
call upper(b,ans,row,width)
call lower(b,ans,row,width)
!求出解
do i=1,row
ans(i)=ans(i)/b(i,2)
end do
return
end subroutine gauss_jordan
subroutine upper(m,s,row,width)
implicit none
integer::row,width
real::m(row,width),s(row)
integer::
三对角矩阵求解fortran程序 来自淘豆网www.taodocs.com转载请标明出处.