Python 泊松方程求解代码示例
以下是一个简单的 Python 代码示例,用于求解二维泊松方程(Poisson Equation):
import numpy as np
def solve_poisson_equation(n, h, f):
# 创建 n x n 的网格
grid = np.zeros((n, n), dtype=float)
# 设置边界条件
grid[0, :] = 0 # 顶边界
grid[n-1, :] = 0 # 底边界
grid[:, 0] = 0 # 左边界
grid[:, n-1] = 0 # 右边界
# 迭代求解泊松方程
for _ in range(1000): # 迭代次数
for i in range(1, n-1):
for j in range(1, n-1):
grid[i, j] = (grid[i+1, j] + grid[i-1, j] + grid[i, j+1] + grid[i, j-1] - h**2 * f[i, j]) / 4
return grid
# 定义方程右端项 f(x, y)
def f(x, y):
return np.sin(x) + np.cos(y)
# 定义网格尺寸和步长
n = 100 # 网格大小
h = 1/(n-1) # 步长
# 创建方程右端项 f(x, y)
f_grid = np.zeros((n, n), dtype=float)
for i in range(n):
for j in range(n):
f_grid[i, j] = f(i*h, j*h)
# 求解泊松方程
solution = solve_poisson_equation(n, h, f_grid)
# 打印结果
print(solution)
请注意,这只是一个基本的示例代码,用于演示求解泊松方程的基本思路。在实际应用中,可能需要考虑更高效的算法和更复杂的边界条件处理。
原文地址: https://www.cveoy.top/t/topic/UOS 著作权归作者所有。请勿转载和采集!