[SciPy-User] [SciPy-user] How to find the intersections between two lines
Fri Apr 9 06:15:08 CDT 2010
bit rushed but seems to do the trick!
import numpy as np
from scipy import interpolate
from scipy import optimize
x = np.linspace(0,10,20)
y = np.random.random(20)*10
f = interpolate.interp1d(x,y,kind=5)
xx = np.linspace(0,10,100)
g = [(s,f(s)-s) for s in xx]
h = np.array([(i,k,l) for i, (k,l) in enumerate(g)])
for i,j in enumerate(h):
if i < 98:
if (h[i] > 0 and h[i+1] < 0) or (h[i] < 0 and
h[i+1] > 0):
print optimize.brentq(lambda x: f(x)-x, h[i],
Mobile: 07788 872118
All science is either physics or stamp collecting.
On 9 April 2010 08:23, seasoul <email@example.com> wrote:
> A nice idea. Thank you Charles. I will give it a try.
> Charles R Harris wrote:
> > On Thu, Apr 8, 2010 at 10:15 PM, seasoul <firstname.lastname@example.org> wrote:
> >> This is my first post in the mailing list.
> >> I want to find the intersections between two lines. One line is an
> >> arbitrary straight line, the other is a fitting line created by a
> >> interpolation procedure.
> >> Below is a simple code:
> >> x = linspace(0,10,20)
> >> y = rand(20)*10
> >> plt.plot(x,y,'o')
> >> f = interpolate.interp1d(x,y,kind=5)
> >> xx = linspace(0,10,100)
> >> yy = f(xx)
> >> plt.plot(xx,yy,'r-')
> >> y2 = x
> >> plt.plot(x,y2,'b-')
> >> def func(x):
> >> out = [x-x]
> >> out.append(x-f(x))
> >> return out
> >> fsolve(func,[1,1])
> >> The fitting line is a polynomial curve, the straight line is y=x. This
> >> function can only find one of the intersection points,not all.
> > This is spline interpolation, not polynomial. So I think you are stuck
> > with
> > sampling the difference of the two curves on a grid, finding adjacent
> > pairs
> > of sample points at which the function has opposite sign, and then
> > one of the 1d zero finders, brentq for instance.
> > Chuck
> > _______________________________________________
> > SciPy-User mailing list
> > SciPy-User@scipy.org
> > http://mail.scipy.org/mailman/listinfo/scipy-user
> View this message in context:
> Sent from the Scipy-User mailing list archive at Nabble.com.
> SciPy-User mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the SciPy-User