Только одно значение возвращается из выражения, содержащего "exp" вместо массива значений. - PullRequest
0 голосов
/ 05 мая 2020
from sympy import *
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.font_manager as fm
from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)

t = np.linspace(0,300)
C0 = 0
Q = 0.1
V = 1
C1 = 0
S = 0.4 * exp(-0.001*t)

Y = (C0 * exp((-Q*t)/V)) + ((C1 * Q + S)/Q) - (exp((-Q*t)/V) * ((C1 * Q + S)/Q))

plt.figure()
plt.plot(t, Y , 'go--', label='decay source')
plt.title('decay source')
plt.legend()
plt.xlabel('time(s)')
plt.ylabel('density(mg/s)')
plt.show()

См. Здесь сообщение об ошибке

Я хочу нарисовать график, но не могу, потому что получился только один Y.

Если вы посмотрите на значение Y через распечатку, вы увидите, что exp не рассчитывается. Как я могу это решить?

1 Ответ

1 голос
/ 05 мая 2020

Вам необходимо использовать функцию np.exp(array) для вычисления экспоненты всех элементов в массиве
(-Q*t)/V

...