Тепловое уравнение - настройка и участок - PullRequest
0 голосов
/ 05 февраля 2019

Задача:

Задан вопрос об уравнении теплопроводности

Мне нужны графики

Создайте двухмерный график, гдеВы показываете профили температуры при t = 0, 1, 2, 3, 4, используя 5 и 100 мод для α = 0,5 (другими словами, вместо того, чтобы вычислять бесконечную сумму, суммируйте только первые 5 или 100 слагаемых).

Я новичок в python, поэтому не знаю, как с этим справиться.Это код, который у меня есть до сих пор

x = np.arange(0,4)
n = np.arange(1,6)
t = np.arange(0,6)
def fun(x,n,t):
  l = 0
  for i in x:
    for j in n:
        for k in t:
            x = i
            n = j
            t = k
            z = []
            alpha = 0.5
            a = 8/m.pi
            b = m.sin((2*n - 1)*x)
            c = (2*n - 1)**2
            d = m.exp(-(2*n - 1)**2 *alpha**2 *t)
            T = a*(b/c)*d
            l += T
    z.append(T)
  return z

Это не работает.Не могли бы вы помочь мне создать нужный мне 2D-график?печать (забава (х, п, т))

1 Ответ

0 голосов
/ 05 февраля 2019

Я вижу две проблемы с вашим кодом:

  1. вы всегда сбрасываете z во внутреннем цикле
  2. отступ z.append(T) помечает его как находящийся в первом цикле, хотя T вычисляется во внутреннем цикле.

Я думаю, это то, что вы хотите:

def fun(x,n,t):
  l = 0
  z = []
  for i in x:
    for j in n:
      for k in t:
        x = i
        # ... insert your other calculations here...
        T = a*(b/c)*d
        l += T
        z.append(T)
  return z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...