Векторная диаграмма электрического поля (уравнение Лапласа) - PullRequest
0 голосов
/ 11 июля 2019

Я решил аналитическое решение уравнения Лапласа для двумерного квадратного прямоугольника и хотел бы построить векторы электрического поля как функцию от 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()

Я ожидаю, что вектор электрического поля будет очень большим у "стен".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...