首页 > 编程知识 正文

python曲线和直线的交点,python 求交点

时间:2023-05-04 08:04:34 阅读:230311 作者:2870

你想找到x,使得两个结实的乌冬面函数具有相同的高度.(即相交)

您可以通过将两个结实的乌冬面函数相等并求解x来实现.最后,您将得到一个二次方程,其系数与结实的乌冬面均值和方差有关.这是最终结果:

import numpy as np

def solve(m1,m2,std1,std2):

a = 1/(2*std1**2) - 1/(2*std2**2)

b = m2/(std2**2) - m1/(std1**2)

c = m1**2 /(2*std1**2) - m2**2 / (2*std2**2) - np.log(std2/std1)

return np.roots([a,b,c])

m1 = 2.5

std1 = 1.0

m2 = 5.0

std2 = 1.0

result = solve(m1,m2,std1,std2)

输出是:

array([ 3.75])

您可以绘制找到的交叉点:

x = np.linspace(-5,9,10000)

plot1=plt.plot(x,mlab.normpdf(x,m1,std1))

plot2=plt.plot(x,mlab.normpdf(x,m2,std2))

plot3=plt.plot(result,mlab.normpdf(result,m1,std1),'o')

情节将是:

如果您的结实的乌冬面人有多个交叉点,代码也会找到所有这些交叉点(比如m1 = 2.5,std1 = 3.0,m2 = 5.0,std2 = 1.0):

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。