# case1.py import numpy as np k = 0.5 # W / (cm K) area = np.pi / 100 # cm^2 def analytical(a, x): return 100 * np.sinh(a*x) / np.sinh(a) def analytical_heat_loss(a): return -100*k*area*a/np.tanh(a) def fdm_array(n, a = 2.75): dx = 1 / n kap = 2 + ((a**2)*(dx**2)) left_FDM_array = np.zeros((n-1, n-1)) left_FDM_array[0][0:2] = [kap, -1] row_FDM = [-1, kap, -1] for i in range(1, n-2): left_FDM_array[i][i-1:i+2] = row_FDM left_FDM_array[n-2][n-3:n-1] = [-1, kap] return left_FDM_array def right_array(n): array = [0 for _ in range(n-2)] array.append(100) return array