任务是:
生成一个2D图,您可以在α= 0.5时使用5和100模式显示t= 0,1,2,3,4的温度分布(换句话说,不计算无限和,而只计算前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图吗?print(fun(x,n,t))
发布于 2019-02-05 19:37:59
我发现你的代码有两个问题:
z 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 zhttps://stackoverflow.com/questions/54533428
复制相似问题