Вот возможный подход для решения уравнений. Сначала сделайте график обеих кривых. Вторая кривая может быть записана в виде квадрата root, если мы примем во внимание, что отрицательные результаты также применимы.
Matplotlib и numpy могут справиться с этим. Для малых значений T аргумент exp
становится слишком высоким и вызывает переполнение для первого уравнения. Но для второго уравнения явно нужно, чтобы T было ≥ 300
, чтобы избежать корней отрицательных чисел. Таким образом, кривые могут начинаться с T == 300
.
from matplotlib import pyplot as plt
import numpy as np
T = np.linspace(300, 1000, 1000)
K = 100000 * np.exp(-33.78 * (T - 298) / T)
plt.plot(T, K / (1 + K), label='$K/(1+K)$')
plt.plot(T, np.sqrt(0.0025 * (T - 300)), label='$\\sqrt{0.0025(T-300)}$')
plt.legend()
plt.show()
Какие графики:
Оранжевая кривая начинается с 0 за T == 300
и продолжает расти. Синяя кривая имеет сигмовидную форму, начиная с 1, делая примерно поворот для Т между 400 и 500, а затем остается близкой к 0.
Это предполагает равенство около T == 440
, которое можно включить в числовое значение симпози решатель nsolve
:
import sympy as sp
X, T = sp.symbols('X, T')
K = 100000 * sp.exp(-33.78 * (T - 298) / T)
sp.nsolve(sp.Eq(K / (1 + K), sp.sqrt(0.0025 * (T - 300))), T, 440)
Результат: 443.993681772465