Scipy.integrate не дает правильных ответовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Scipy.integrate не дает правильных ответов

Сообщение Anonymous »


Итак, сейчас я пытаюсь найти интеграл от 0 до t, примерно для ~360 мер, и сделать это по тау. Думаю, я что-то не так делаю, графики должны выглядеть нормально и результаты не должны быть такими аномально высокими.

интеграл фи заменяется фактическим значением в коде

импортировать numpy как np импортировать matplotlib.pyplot как plt импортировать панд как pd из scipy.integrate четырехъядерный импорт из scipy.special импортной гаммы Р = 28,3 Л = 1,36 С = 0,00001044 Е = 15,0 омега = (2 * np.pi) / (10** (-3)) альфа = 1,87 бета = 0,91 эпсилон = np.sqrt((1/(L*C)) - ((R**2)/(4*(L**2)))) сигма = Р/(2*Л) А = 1 t_values ​​= np.linspace(0, 0,4, 366) защита подынтегр (тау): term1 = (1 / гамма(альфа)) * ((тау ** (альфа - 1)) / (L * C)) - (1 / гамма(2 * альфа)) * ( тау**(2*альфа - 1))/((L*C)**2)+\ (1 / гамма(3 * альфа)) * (тау ** (3 * альфа - 1)) / ((L * C) ** 3) - (1 / гамма(4 * альфа)) * ( тау**(4*альфа - 1))/((L*C)**4) term2 = (1 / гамма(2 * альфа - бета)) * (тау** (2 * альфа - бета - 1)) / (L * C) - ( 2/гамма(3*альфа-бета))*(тау**(3*альфа-бета-1))/((L*C)**2)+\ (3 / гамма(4 * альфа - бета)) * (тау** (4 * альфа - бета - 1)) / ((L * C) ** 3) - ( 4/гамма(5*альфа-бета))*(тау**(5*альфа-бета-1))/((L*C)**4) term3 = (1 / гамма(3 * альфа - 2 * бета)) * (тау ** (3 * альфа - 2 * бета - 1)) / (L * C) - ( 3/гамма(4*альфа - 2*бета))*(тау**(4*альфа - 2*бета - 1))/((L*C)**2)+\ (6 / гамма(5 * альфа - 2 * бета)) * (тау ** (5 * альфа - 2 * бета - 1)) / ((L * C) ** 3) - ( 10/гамма(6*альфа-2*бета))*(тау**(6*альфа-2*бета-1))/((L*C)**3) term4 = (1 / гамма(4 * альфа - 3 * бета)) * (тау ** (4 * альфа - 3 * бета - 1)) / (L * C) - ( 4/гамма(5*альфа-3*бета))*(тау**(5*альфа-3*бета-1))/((L*C)**2)+\ (10 / гамма(6 * альфа - 3 * бета)) * (тау ** (6 * альфа - 3 * бета)) / ((L * C) ** 2) - ( 20/гамма(7*альфа-3*бета))*(тау**(7*альфа-3*бета-1))/((L*C)**3) результат = (A * np.sqrt(2) * np.sin(omega * (t - tau))) * ( термин1 - (П/Л) * термин2 + ((П/Л)**2) *терм3 - ((П/Л)**3) *терм4) вернуть результат uc_t_frac = np.zeros_like(t_values) для i, t в перечислении (t_values): uc_t_frac = quad(лямбда-тау: подынтегр(тау), 0, t, предел=500)[0] plt.plot(t_values, uc_t_frac) plt.title('Дробное: uc(t) против времени') plt.xlabel('Время (с)') plt.ylabel('uc(t) (Вольты)') plt.show() df = pd.DataFrame({'Time': t_values, 'uc(t`)_Fractional': uc_t_frac}) df.to_excel('tt.xlsx', index=False)`` График выглядит так: не должно Вместо этого это должно было выглядеть примерно так: или похоже

Проблема в том, что значения аномально высоки, а интеграл плохо сходится. Я думаю, проблема может заключаться в том, что я не могу правильно уменьшить (t-tau), потому что не думаю, что t эквивалентно t_values ​​для каждой меры.

У меня тоже есть такая форма: она тоже не работает Я пытался интегрировать его напрямую, но это не помогло добиться сходимости интеграла.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»