电场矢量图(拉普拉斯方程)

时间:2019-07-11 13:50:33

标签: python math physics numerical-methods

我已经解析地求解了一个二维方盒的拉普拉斯方程,并想将电场矢量绘制为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()

我希望电场矢量在“壁”处很大。

0 个答案:

没有答案