Python 有没有办法在其他两条曲线的基础上创建第三条曲线?

Python 有没有办法在其他两条曲线的基础上创建第三条曲线?,python,math,curve,Python,Math,Curve,亲爱的, 我需要帮助,以了解我可以应用的方法,以解决以下数学问题使用Python 我正在使用一个函数创建两条直线曲线,如下图所示,结果是示例表 每条曲线具有不同的X和Y值 目标是检测交点(使用shapely.geometry库完成) 多点(3.104286288628586 5.229295798478476,6.966559293764028 1.784661607884865) 但我的困难是基于最后两条曲线生成第三条曲线,名为合成曲线。该曲线应为表中两条或多条曲线之间的内点。基本上,结果

亲爱的, 我需要帮助,以了解我可以应用的方法,以解决以下数学问题使用Python

我正在使用一个函数创建两条直线曲线,如下图所示,结果是示例表

每条曲线具有不同的X和Y

目标是检测交点(使用shapely.geometry库完成)

多点(3.104286288628586 5.229295798478476,6.966559293764028 1.784661607884865)

但我的困难是基于最后两条曲线生成第三条曲线,名为合成曲线。该曲线应为表中两条或多条曲线之间的内点。基本上,结果应为初始表中的新X3和Y3

有人,你能帮我找到一个简单的python解决方案吗?我创建的所有解决方案都是基于表中逐点分析,并创建一个复杂的算法来计算每个点

python中有没有创建该解决方案的库


谢谢大家。为@PranavHosangadi提供的解决方案思想给出了一种创建simples脚本的方法,如下所示

#Original Array of Curve 1
C1x = result1['In']
C1y = result1['t']
# Original Array of Curve 2
C2x = result2['In']
C2y = result2['t']
#Take the minimum, maximum and size of data
smin = min(np.minimum(C1x, C2x))
smax = max(np.maximum(C1x, C2x))
numb = len(np.minimum(C1x, C2x))
#Create a new array in X axis
C3x = np.linspace(smin,smax,numb)
#Interpolate the Y values
C1Yi = np.interp(C3x,C1x,C1y)
C2Yi = np.interp(C3x, C2x, C2y)
#Take the minimum values for both Y axis
C3Yr = np.minimum(C1Yi,C2Yi)
#Plot the curves
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xscale("log")  # X_Log Type
ax.set_yscale("log")  # Y_Log Type
plt.plot(result1['In'], result1['t'],alpha=.5)
plt.plot(result2['In'], result2['t'],alpha=.5)
plt.plot(C3x, C3Yr, alpha=.5)
plt.show()
图形解决方案:


最初我有蓝色橙色曲线,运行算法后,我在交叉点后的绿色中获得一条新曲线。

您的要求不清楚。我知道什么是三阶多项式;我不知道你所说的“3度曲线”或“表中两条或多条曲线之间的内部点”是什么意思。我建议分段拟合或样条曲线解决方案将非常有效。也许你可以调查一下,然后再报告。困难不在于Python或语言;它将提出一个明确的要求和实施计划。请重复并从下面开始。你的要求不清楚。它还没有进入编程阶段,这意味着它不适合这样做。请参阅为这个问题选择合适的堆栈交换站点。我已更改了描述以更好地解释我的需要。你能检查一下现在是否安全吗@达菲莫是你的朋友。对曲线进行插值,以在同一组
x
值上获得两者的
y
值。然后使用
np.min()。关于堆栈溢出,有许多教程和其他答案向您展示了如何完成这两件事。@PranavHosangadi感谢您的答案,让我检查Numpy解决方案来插值它。做得好!为了避免数据开始前/结束后出现平坦部分,可以执行
smin=max(np.minimum(C1x,C2x))
smax=min(np.maxium(C1x,C2x)