# case2.py import numpy as np k = 0.5 # W / (cm K) area = np.pi / 100 # cm^2 def analytical(a, x): return 100 * np.cosh(a*x) / np.cosh(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)) kap_prime = (kap/2) left_FDM_array = np.zeros((n, n)) left_FDM_array[0][0:2] = [kap_prime, -1] row_FDM = [-1, kap, -1] for i in range(1, n-1): left_FDM_array[i][i-1:i+2] = row_FDM left_FDM_array[n-1][n-2:n] = [-1, kap] return left_FDM_array def right_array(n): array = [0 for _ in range(n-1)] array.append(100) return array