def main(): print("データの個数を入力してください--->") n = int(input()) n -= 1 # データ数が n なので, n <- n-1 として添字を0,1,...,n とする print("補間点を入力してください--->") xi = float(input()) x = Dvector(0, n) # x[0...n] y = Dvector(0, n) # y[0...n] # ファイルのオープン with open("input_lag.dat", "r") as fin: with open("output_lag.dat", "w") as fout: input_vector(x, "x", fin, fout) # ベクトル x の入出力 input_vector(y, "y", fin, fout) # ベクトル y の入出力 print("補間の結果は, P({:.6f})={:.6f}".format(xi, lagrange(x, y, 0, n, xi))) # グラフを描くために結果をファイルに出力 xi = x[0] while xi <= x[n]: fout.write("{:.6f} \t {:.6f}\n".format( xi, lagrange(x, y, 0, n, xi))) xi += 0.01
def main(): a = Dmatrix(1, N, 1, N) # 行列領域の確保 x = Dvector(1, N) # ベクトル領域の確保 # ファイルのオープン with open("input_eigen.dat", "r") as fin: with open("result_eigen.dat", "w") as fout: input_matrix( a, 'A', fin, fout ) # 行列 A の入出力 input_vector( x, 'x', fin, fout ) # ベクトル x の入出力 power_method( a, x, fout ) # べき乗法
def main(): global M, N x = Dvector(1, M) # x[1...M] y = Dvector(1, M) # y[1...M] # ファイルのオープン with open("input_func.dat", "r") as fin: with open("output_func.dat", "w") as fout: input_vector(x, 'x', fin, fout) # ベクトル x の入出力 input_vector(y, 'y', fin, fout) # ベクトル y の入出力 least_square(x, y, fout) # 最小2乗近似
def main(): global N a = Dmatrix(1, N, 1, N) # 行列 a[1...N][1...N] b = Dvector(1, N) # b[1...N] # ファイルのオープン with open("input.dat", "r") as fin: with open("output.dat", "w") as fout: input_matrix( a, 'A', fin, fout ) # 行列 A の入出力 input_vector( b, 'b', fin, fout ) # ベクトル b の入出力 b = simple_gauss( a, b ) # ガウス消去法 # 結果の出力 fout.write("Ax=b の解は次の通りです\n") for i in range(1, N+1): fout.write("{:.6f}\n".format(b[i]))
def main(): global N a = Dmatrix(1, N, 1, N) b = Dvector(1, N) # ファイルのオープン with open("input.dat", "r") as fin: with open("output.dat", "w") as fout: input_matrix(a, 'A', fin, fout) # 行列 A の入出力 input_vector(b, 'b', fin, fout) # ベクトル b の入出力 b = gauss(a, b) # ガウス消去法 # 結果の出力 fout.write("Ax=b の解は次の通りです\n") for i in range(1, N + 1): fout.write(f"{b[i]}\n")
def main(): a = Dmatrix(1, N, 1, N) # 行列 a[1...N][1...N] b = Dvector(1, N) # b[1...N] x = Dvector(1, N) # x[1...N] # ファイルのオープン with open("input_sp.dat", "r") as fin: with open("output_sp.dat", "w") as fout: input_matrix( a, 'A', fin, fout ) # 行列 A の入出力 input_vector( b, 'b', fin, fout ) # ベクトル b の入出力 input_vector( x, 'x', fin, fout ) # 初期ベクトル x0 の入出力 x = jacobi_lin( a, b, x ) # ヤコビ法 # 結果の出力 fout.write("Ax=b の解は次の通りです\n") for i in range(1, N+1): fout.write("{:.6f}\n".format(x[i]))
def main(): a = Dmatrix(1, N, 1, N) # 行列 a[1...N][1...N] b = Dvector(1, N) # b[1...N] x0 = Dvector(1, N) # x[1...N] # ファイルのオープン with open("input_sp.dat", "r") as fin: with open("output_sp.dat", "w") as fout: input_matrix(a, 'A', fin, fout) # 行列 A の入出力 input_vector(b, 'b', fin, fout) # ベクトル b の入出力 input_vector(x0, 'x0', fin, fout) # 初期ベクトル x0 の入出力 x = gauss_seidel(a, b, x0) # ガウス・ザイデル法 # 結果の出力 fout.write("Ax=b の解は次の通りです\n") for i in range(1, N + 1): fout.write("{:.6f}\n".format(x[i]))
def main(): global N a = Dmatrix(1, N, 1, N) # 行列 a[1...N][1...N] b = Dvector(1, N) # b[1...N] # ファイルのオープン with open("input_cho.dat", "r") as fin: with open("output_cho.dat", "w") as fout: input_matrix(a, 'A', fin, fout) # 行列 A の入出力 input_vector(b, 'b', fin, fout) # ベクトル b の入出力 a_cd = cholesky_decomp(a) # 修正コレスキー分解 b_cs = cholesky_solve(a_cd, b) # 前進代入・後退代入 # 結果の出力 fout.write("Ax=bの解は次の通りです\n") for i in range(1, N + 1): fout.write("{:.6f}\t\n".format(b_cs[i]))
def main(): global N a = Dmatrix(1, N, 1, N) # 行列 a[1...N][1...N] b = Dvector(1,N) # b[1...N] # ファイルのオープン with open("input_lu.dat", "r") as fin: with open("output_lu.dat", "w") as fout: input_matrix( a, 'A', fin, fout ) # 行列 A の入力 input_vector( b, 'B', fin, fout ) # ベクトル b の入出力 a_lu, p = lu_decomp( a ) # LU分解 b_lu = lu_solve( a_lu, b, p ) # 前進代入・後退代入 # 結果の出力 fout.write("Ax=b の解は次の通りです\n") for i in b_lu: fout.write(f"{i}\n")