Class lumatrix
In: src/lumatrix.f90

lumatrix : 行列の LU 分解による線形連立方程式の解

概要

     spml/lumatrix モジュールは, LU 分解法により連立 1 次方程式を解くための
     Fortran90 関数を提供する.

     他のスペクトル計算用モジュールの中で登場する境界値問題を解くために
     用いられている.

     ベクトル計算機を意識して, 同じ次数の複数個の連立1 次方程式

         A[ij]^(n) X [j]^(n) = B[i]^(n)

     の解を同時に複数個の右辺ベクトル B[i]^(n)b に対して求めることが
     できるようになっている.

変数・手続き群の要約

LUDecomp :行列の LU 分解を行う
LUSolve :連立 1 次方程式の解を求める

Methods

LUDecomp   LUDecomp   LUSolve   LUSolve   LUSolve   LUSolve  

Public Instance methods

LUDecomp( alu, kp )
Subroutine :
alu(:,: ) :real(8), intent(inout)
: 入力/LU行列
kp(size(alu,1)) :integer, intent(out)
: ピボット

ALU(NDIM,NDIM), KP(NDIM) NDIM x NDIM の行列を LU 分解. LU行列は 入力行列に上書きされる.

Original external subprogram is src/lumatrix.f90#ludecomp21

LUDecomp( alu, kp )
Subroutine :
alu(:,:,:) :real(8), intent(inout)
: 入力/LU行列
kp(size(alu,1),size(alu,2)) :integer, intent(out)
: ピボット

ALU(JDIM,NDIM,NDIM), KP(JDIM,NDIM) NDIM x NDIM の行列 JDIM 個を一度に LU 分解. LU行列は 入力行列に上書きされる.

Original external subprogram is src/lumatrix.f90#ludecomp32

LUSolve( alu, kp, b ) result(lusolve211)
Function :
lusolve211(size(b)) :real(8)
:
alu(:,:) :real(8), intent(in)
: 入力/LU行列
kp(:) :integer, intent(in)
: ピボット
b(:) :real(8), intent(in)
: 右辺ベクトル

ALU(NDIM,NDIM), KP(NDIM), B(NDIM) NDIM x NDIM 型行列の連立方程式 A X = B を 1 個の B に対して計算する.

Original external subprogram is src/lumatrix.f90#lusolve211

LUSolve( alu, kp, b ) result(lusolve212)
Function :
lusolve212(size(b,1),size(b,2)) :real(8)
:
alu(:,:) :real(8), intent(in)
: 入力/LU行列
kp(:) :integer, intent(in)
: ピボット
b(:,:) :real(8), intent(in)
: 右辺ベクトル

ALU(NDIM,NDIM), KP(NDIM), B(JDIM,NDIM) NDIM x NDIM 型行列の連立方程式 A X = B を JDIM 個の B に対して計算する.

Original external subprogram is src/lumatrix.f90#lusolve212

LUSolve( alu, kp, b ) result(lusolve322)
Function :
lusolve322(size(b,1),size(b,2)) :real(8)
:
alu(:,:,:) :real(8), intent(in)
: 入力/LU行列
kp(:,:) :integer, intent(in)
: ピボット
b(:,:) :real(8), intent(in)
: 右辺ベクトル

ALU(JDIM,NDIM,NDIM), KP(JDIM,NDIM), B(JDIM,NDIM) NDIM x NDIM 型行列を JDIM 個並べた連立方程式 A X = B をひとつの B の並びに対して計算する.

Original external subprogram is src/lumatrix.f90#lusolve322

LUSolve( alu, kp, b ) result(lusolve323)
Function :
lusolve323(size(b,1),size(b,2),size(b,3)) :real(8)
:
alu(:,:,:) :real(8), intent(in)
: 入力/LU行列
kp(:,:) :integer, intent(in)
: ピボット
b(:,:,:) :real(8), intent(in)
: 右辺ベクトル

ALU(JDIM,NDIM,NDIM), KP(JDIM,NDIM), B(IDIM,JDIM,NDIM) NDIM x NDIM 型行列を JDIM 個並べた連立方程式 A X = B を IDIM 個の B に対して計算する.

Original external subprogram is src/lumatrix.f90#lusolve323

[Validate]