import numpy as np
from scipy.integrate import simps
# Define your 3D or 2D gradient field
grad = np.array([U, V, W]) # Replace U, V, W with your own data
# Compute the scalar potential surface
x, y, z = np.meshgrid(np.arange(grad.shape[1]), np.arange(grad.shape[0]), np.arange(grad.shape[2]))
potential = np.zeros_like(grad)
for i in range(grad.shape[0]):
for j in range(grad.shape[1]):
for k in range(grad.shape[2]):
potential[i,j,k] = simps(simps(simps(grad[:i+1,:j+1,:k+1], z[:k+1], axis=2), y[:j+1], axis=1), x[:i+1], axis=0)
# The potential surface is stored in the 'potential' variable
1条答案
按热度按时间wvyml7n51#
您可以使用scipy,特别是scipy.integrate模块
示例: