# 行列aとベクトルbの積を計算するための関数を定義する。 def f_product(imax, a, b): # 行列aとベクトルbの積を計算する。 # 配列cを宣言する。 # 配列cは要素数imaxのベクトルに対応する。 c = [0.] * imax # ここから外側のforループが始まる。 # インデントされている範囲を反復する。 for i in range(imax): # ここから内側のforループが始まる。 # さらにインデントされている範囲を反復する。 for j in range(imax): # 行列aの(i,j)成分とベクトルbの第j成分の積を、 # c[i]に加える。 c[i] = c[i] + a[i][j] * b[j] # ここで内側のforループが終了する。 # ここで外側のforループが終了する。 # 関数はreturn文で終了する。 # 配列cが関数f_productの戻り値として返される。 return c # 変数imax、jmaxを宣言する。 imax = 3 # 配列a、b、cを宣言する。 # 配列aはimax行imax列の行列に対応する。 # また、配列bと配列cは要素数imaxのベクトルに対応する。 a = [[ 0.7, -0.7, 0.0], \ [ 0.7, 0.7, 0.0], \ [ 0.0, 0.0, -1.0]] b = [ 2.0, 1.0, -1.0] c = [0.] * imax # 行列aとベクトルbの積を計算する。 c = f_product(imax, a, b) # 結果を書き出す。 # ここからforループが始まる。 # インデントされている範囲を反復する。 for i in range(imax): # 結果を標準出力に書き出す。 # sep=''で各要素の間に空白などの区切りを入れないように指定する。 print('c[', i, '] = ', c[i], sep='') # ここでforループが終了する。