次週の課題

次週の課題
課題①
jacobi.f90を
cp□/tmp/jacobi.f90□. / <リターン>
自分のフォルダにコピーする
配布したjacobi.f90に追記し、
emacs jacobi.f90
以下の課題を実施する。
手順1:3次元の応力テンソルの成分を3×3の行列smat(3,3)と
して入力するプログラムを完成せよ。
手順2:配布したサブルーチン(jacobi)を使って、3×3の行列(応
力テンソル)の固有値を求め、画面に出力せよ。
 v11

Vm at  v12
v 3
1
1
v2
v2 2
v23
1
v3  ヒント:手順1で入力した行列Smat(3,3)を実引数としてサブルーチンJACOBIに受け渡す。

メインプログラムにて、 3つの固有ベクトルを保存するための行列Vmat(3,3)、
v32 
および固有値を保存しておくベクトルEvec(3)を宣言し、サブルーチンに実引数
v33 

として引き渡す。その結果、戻されたEvec(3)の値を3つとも画面に出力。
( WRITE(*,*) (E(i),i=1,3) )
手順3:求められた固有値、固有ベクトルが固有方程式を
満足しているか調べよ。(3本の方程式ともに照査せよ。)
 r1   s11 s12
  
r2    s21 s22
r   s
 3   31 s32
i
 v1i 
s13   v1 
 
 
s23  v2i   i v2i 
v i 
s33  v3i 
 
 3
ヒント: 固有方程式より、左式に示す
残差ベクトルrを定義し、残差ベクトル
のノルム|r|により誤差を評価する。
手順4:z軸(3軸)まわりにθ回転した座標系によ
り、応力テンソルの成分を計測せよ。なお、こ
のときの座標回転行列Q(3x3)、および回転後
の応力成分s’ (3x3)は次式により与えられる
ものとする。
Q11 Q12 Q13   cos

 
Q  Q21 Q22 Q23    sin 
Q31 Q32 Q33   0
sin 
0

0
1
cos
0
T
 s'11 s'12 s'13  Q11 Q12 Q13   s11 s12 s13  Q11 Q12 Q13 

 
 


s'  s'21 s'22 s'23   Q21 Q22 Q23  s21 s22 s23  Q21 Q22 Q23 
 s'31 s'32 s'33  Q31 Q32 Q33   s31 s32 s33  Q31 Q32 Q33 
ヤコビ法による固有値解析サブルーチン
•
•
•
!*******************************************************************
!
サブルーチン
!*******************************************************************
•
•
•
•
•
•
•
•
!--------------------------------------------------------------------!
! JACOBI METHOD FOR COMPUTING EIGENVALUES AND EIGENVECTORS
! OF REAL SYSMETRIC MATRIX A(N,N)
!
! E(N) : THE EIGENVALUES OF MATRIX A
! V(N,N) : EIGENVECTORS OF A BY COLUMNS
! MAX : NUMBER OF APPLIED JACOBI MATRIX ROTATIONS
•
•
SUBROUTINE JACOBI(A,N,E,V)
IMPLICIT NONE