Nik_u = np.zeros((N, 1)) Nik_v = np.zeros((M, 1)) # 1. u方向细分 X_M_piece = np.zeros((M, piece_u)) # 沿着u方向的网格 Y_M_piece = np.zeros((M, piece_u)) Z_M_piece = np.zeros((M, piece_u)) if FLAG_U == 1: NodeVector_u = np.linspace(0, 1, n + k + 2) # 均匀B样条的u向节点向量 u = np.linspace(k / (n + k + 1), (n + 1) / (n + k + 1), piece_u) # u向节点分成若干份 for i in range(M): for j in range(piece_u): for ii in range(n + 1): Nik_u[ii][0] = BaseFunction(ii, k, u[j], NodeVector_u) X_M_piece[i][j] = np.dot(X[i], Nik_u) Y_M_piece[i][j] = np.dot(Y[i], Nik_u) Z_M_piece[i][j] = np.dot(Z[i], Nik_u) if FLAG_U == 2: NodeVector_u = U_quasi_uniform(n, k) # 准均匀B样条的u向节点向量 u = np.linspace(0, 1 - 0.0001, piece_u) # u向节点分成若干份 for i in range(M): for j in range(piece_u): for ii in range(n + 1): Nik_u[ii][0] = BaseFunction(ii, k, u[j], NodeVector_u) X_M_piece[i][j] = np.dot(X[i], Nik_u) Y_M_piece[i][j] = np.dot(Y[i], Nik_u) Z_M_piece[i][j] = np.dot(Z[i], Nik_u) print(Nik_u)
from LinearEquationsSystem import LinearEquationsSystem from Solution import Solution from myFunctions import printVector # 2n+1 piramid wzdłuż każdej osi n = 1 # Lista funkcji bazowych -> piramid eArr = [] # pomija piramidy na brzegu Dirichleta # piramidy o środkach poniżej osi OX for j in range(-n, 0): for i in range(-n, n+1): eArr.append( BaseFunction(n, i, j) ) # piramidy o środkach powyżej osi OX, na lewo od osi OY for j in range(0, n+1): for i in range(-n, 0): eArr.append( BaseFunction(n, i, j) ) # # dopisuje piramidy na brzegu Dirichleta # # na środku układu # eArr.append( BaseFunction(n, 0, 0) ) # # wzdłuż osi OY # for i in range(1, n+1): # eArr.append( BaseFunction(n, 0, i) ) # # wzdłuż osi OX # for i in range(1, n+1): # eArr.append( BaseFunction(n, i, 0) )