我已经解析地求解了一个二维方盒的拉普拉斯方程,并想将电场矢量绘制为y和x的函数。 https://www.youtube.com/watch?v=ws3LIfWxfcM这是显示我使用的方程式的很好的链接。我对找到电场的电位的解决方案进行了区分。 我遇到的问题是,随着n的增加,我建立的求和回路不会收敛,因此对于n大于50的情况,我会得到10 ^ 100量级的电场的答案。因此,由于值太大,我的程序无法绘制。
到目前为止,我的求和循环运行良好。例如,我绘制了f(x,y)= sin(x)i ^ + cos(y)j ^,并将它们与sin(x)和cos(x)的泰勒展开进行比较。 我相信问题在于除以sinh(npi)。当我加上这个术语时,它很快就变成一个无限大的数字,并且拒绝绘图。
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(-1,1,0.1)
y = np.arange(-1,1,0.1)
X, Y = np.meshgrid(x, y)
a = np.zeros(len(X))
for n in range(50):
# x component of electric field
i = (np.cos(n*np.pi)-1)*(-np.cos(n*np.pi*X)*np.sinh(n*np.pi*Y))*1/(np.sinh(np.pi))
a = np.add((i), a)
b = np.zeros(len(Y))
for n in range(50):
# y component of electric field
j = (np.cos(n*np.pi)-1)*(np.sin(n*np.pi*X)*np.cosh(n*np.pi*Y))*1/(np.sinh(np.pi))
b = np.add((i), a)
fig, ax = plt.subplots()
# when I print a or b, it returns inf
q = ax.quiver(X, Y, a, b)
plt.show()
我希望电场矢量在“壁”处很大。