我在Python中有一个有趣的问题,我有两个函数(任意),我想找到它们之间的公切线,以及x轴上公切线与每个函数相交的点。理想情况下,会有一个给出所有坐标的函数(想象一组具有多个解决方案的非常弯曲的函数)。
所以,我有一些可行的东西,但它非常粗糙。我所做的是将每个函数放入一个矩阵中,以便M[h,0]包含 x 值、M[h,1]函数 1 的 y 值、M[h,2]函数 2 的 y 值。然后我找到导数并将其放入一个新矩阵中D[h,1](D[h,2]跨度小于 1)M[h,:]。我的想法是本质上“绘制”x 轴上的斜率和 y 轴上的截距,然后搜索所有这些点对于最接近的一对,然后给出值。
这里有两个问题:
程序不知道最接近的一对是否是解,并且
它非常慢(numb_of_points^2 搜索)。我意识到一些优化库可能会有所帮助,但我担心他们会专注于一种解决方案而忽略其余的。
有人想到最好的方法吗?我的“代码”在这里:
def common_tangent(T):
x_points = 600
x_start = 0.0001
x_end = 0.9999
M = zeros(((x_points+1),5) )
for h in range(M.shape[0]):
M[h,0] = x_start + ((x_end-x_start)/x_points)*(h) # populate matrix
""" Some function 1 """
M[h,1] = T*M[h,0]**2 + 56 + log(M[h,0])
""" Some function 2 """
M[h,2] …Run Code Online (Sandbox Code Playgroud)