如何解决大x值下的Overflow Error并完成导数计算与绘图?
问题描述
- 需要将变量
x设置至至少1000e5,但当x超过400e4时会触发Overflow Error - 需求为计算函数
f的导数,并针对不同gamma值绘制该导数的图像,x值较小时程序可正常运行 - 预期结果范围为
e-8至e-9,需保留约20位有效数字
相关代码
import sympy as smp import matplotlib.pyplot as plt import numpy as np x, k_1, k_2, k_3, T_0, T_S, T, f_p, gamma = smp.symbols('x k_1 k_2 k_3 T_0 T_S T f_p gamma', real=True) aT = 10**((8.86*(T_0 - T_S)/(101.6 + (T_0 - T_S))-(8.86*(T-T_S-f_p*x)/(101.6+(T-T_S))))) f = smp.log((k_1 * aT) / ((1 + gamma * k_2 * aT) ** k_3)) dfdx = smp.diff(f, x) dfdx_f = smp.lambdify((gamma, x, k_1, k_2, k_3, T_0, T_S, T, f_p), dfdx) gamma = np.linspace(0, 10000, 1000) y = (dfdx_f(gamma, x=400e5, k_1=1000, k_2=0.01, k_3=0.94, T_0=243.9243, T_S=178.73, T=250.0, f_p=0.001001412)) plt.plot(gamma, y)
内容的提问来源于stack exchange,提问作者Daniel123
相关产品推荐
相关产品推荐

