当我尝试计算d_j(x)(定义如下)时,基于 Numpy 的算法会产生意外的值。我相信它与数值精度有关,但我不确定如何解决这个问题。
功能是:
在哪里
和
代码失败时j>10。例如,当 时j=16,函数d_j(x)从 附近返回错误的值x=1,而预期结果是平滑的、几乎周期性的曲线。
图表0<x<1.5:

代码是:
#%%
import numpy as np
import matplotlib.pyplot as plt
#%%
L = 1.5 # Length [m]
def eta(j):
if j == 1:
return 1.875 / L
if j > 1:
return (j - 0.5) * np.pi / L
def D(etaj):
etajL = etaj * L
return (np.cos(etajL) + np.cosh(etajL)) / (np.sin(etajL) - np.sinh(etajL))
def d(x, etaj):
etajx …Run Code Online (Sandbox Code Playgroud)