как создать график из полученных данных?
import matplotlib.pyplot as plt
import numpy as np
import math
C0 = 0.03
Cs = 1.4
T = 1193
t = 2160
L = 0.003
D0 = 2.3*10**-5
Ea = 148000
R = 8.31
D = D0*math.exp((-Ea)/(R*T))
x = np.arange(0, 0.003, 0.0003)
m = math
i = np.arange(0, 0.003, 0.0003)
for n in range(1, 11):
for x in np.arange(0, 0.003, 0.0003):
def a(C0, Cs, x, L, t, n, D):
return ((2*(C0-Cs)*(1-(-1)**n))/(n*m.pi))+(m.sin(n*m.pi*x)/L)+m.exp((-D*(((n*m.pi)/L)**2)*t))
C = a(C0, Cs, x, L, t, n, D)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Я избавился от некоторых ненужных переменных и перевёл все вычисления в векторный формат, используя numpy вместо math, так короче и понятнее:
import matplotlib.pyplot as plt
import numpy as np
def a(C0, Cs, x, L, t, n, D):
return ((2*(C0-Cs)*(1-(-1)**n))/(n*np.pi))+(np.sin(n*np.pi*x)/L)+np.exp((-D*(((n*np.pi)/L)**2)*t))
C0 = 0.03
Cs = 1.4
T = 1193
t = 2160
L = 0.003
D0 = 2.3*10**-5
Ea = 148000
R = 8.31
D = D0*np.exp((-Ea)/(R*T))
x = np.arange(0, 0.003, 0.0003)
for n in range(1, 11):
y = a(C0, Cs, x, L, t, n, D)
plt.plot(x, y)
