簡體   English   中英

使用Python查找兩條曲線的三個交點

[英]Finding three intersections of two curves using Python

我試圖找到兩條曲線的三個交點。 一個是v1(u) = u - u^3 ,另一個是v2(u) = (u-a0)/a1 (其中a0和a1是一些參數)。 到目前為止,我已經設法弄清楚如何繪制交點:

import matplotlib.pyplot as plt
import numpy as np
u = np.linspace(-2,2,1000)
a0 = 0
a1 = 2
v1 = u - u**2
v2 = (u - a0)/a1
plt.plot(u,v1, 'g-')
plt.plot(u,v2, 'b-')
idx = np.argwhere(np.isclose(v1, v2, atol=0.1)).reshape(-1)
plt.plot(u[idx], v1[idx], 'ro')
plt.show()

問題是如何獲得三個交點的u值。

求解二次方程ang可以得到這兩個(或一個或零,取決於系數;但顯然不是三個)交點:

在此處輸入圖片說明

但是,如果您正在尋找一種為絕對自定義函數計算交集的方法,那么唯一的方法就是數值方法,請參閱尋根算法

要解析地求解三次方程,您可以嘗試使用Cardano方法或Wiki中描述的其他方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM