I have two non-linear sets of data A & B which I have plotted against time on the same graph. Neither A nor B have a common data point at which they intersect, however, when their dots are connected and they are graphed, the lines do intersect. Is there a command to calculate the values at this point?
Thanks.
|
|
0
|
|
|
|
Reply
|
Corbin
|
11/18/2010 10:34:04 PM |
|
On 10-11-18 04:34 PM, Corbin Hedt wrote:
> I have two non-linear sets of data A & B which I have plotted against
> time on the same graph. Neither A nor B have a common data point at
> which they intersect, however, when their dots are connected and they
> are graphed, the lines do intersect. Is there a command to calculate the
> values at this point?
I am not sure if I have understood you correctly. It appears to me that you
are indicating that A and B are finitely-sampled non-linear curves, and that
there is no member of A which is exactly the same as a member of B, but that
when you do linear (!) interpolation between the non-linear points, the linear
interpolations intersect, and you wish to know where ?
If that is the situation, then first you need to interpolate the two on to a
common x (time) base, if they are not already on a common x base. Then, in the
portions of the graph where there is data for both, examine the sign of
(A - InterpolatedB) . The places where the sign of the difference changes
between adjacent entries are the places where there is a point of intersection
somewhere between the entries. Knowing the x (time) and A and InterpolatedB
values on both sides of the intersection, you can use standard "intersection
of two lines" formulae to infer a point of intersection. It probably won't be
an especially *good* inference as you are using linear interpolation on
non-linear data, but it'll be _something_.
If my understanding of what you want to do is not correct, then my fallback
would be to something to do with finding the intersection of the tangent lines
to some point in the curve, but that would not be all that consistent with
your wording.
|
|
0
|
|
|
|
Reply
|
Walter
|
11/18/2010 11:31:17 PM
|
|
Walter Roberson <roberson@hushmail.com> wrote in message <ic4d0d$4vs$1@canopus.cc.umanitoba.ca>...
> On 10-11-18 04:34 PM, Corbin Hedt wrote:
> > I have two non-linear sets of data A & B which I have plotted against
> > time on the same graph. Neither A nor B have a common data point at
> > which they intersect, however, when their dots are connected and they
> > are graphed, the lines do intersect. Is there a command to calculate the
> > values at this point?
>
> I am not sure if I have understood you correctly. It appears to me that you
> are indicating that A and B are finitely-sampled non-linear curves, and that
> there is no member of A which is exactly the same as a member of B, but that
> when you do linear (!) interpolation between the non-linear points, the linear
> interpolations intersect, and you wish to know where ?
>
> If that is the situation, then first you need to interpolate the two on to a
> common x (time) base, if they are not already on a common x base. Then, in the
> portions of the graph where there is data for both, examine the sign of
> (A - InterpolatedB) . The places where the sign of the difference changes
> between adjacent entries are the places where there is a point of intersection
> somewhere between the entries. Knowing the x (time) and A and InterpolatedB
> values on both sides of the intersection, you can use standard "intersection
> of two lines" formulae to infer a point of intersection. It probably won't be
> an especially *good* inference as you are using linear interpolation on
> non-linear data, but it'll be _something_.
>
>
> If my understanding of what you want to do is not correct, then my fallback
> would be to something to do with finding the intersection of the tangent lines
> to some point in the curve, but that would not be all that consistent with
> your wording.
Thank you for your response.
You would be correct in your understanding of what I was trying to say. Are you saying that I should interpolate the two, one-by-one, until I notice a sign change?
The time(x) is common to both A & B sets. Perhaps I should be more specific with my current program. It is set to read specific sets of data from an excel sheet (Time, A, B) and that data is then shown graphically. First A over Time, then B over Time. A & B are then combined over time on one graph. I would then like Matlab to simply display the point of intersection and what the (x,y) values of the graph would be.
I hope this helps, thanks again for your time.
|
|
0
|
|
|
|
Reply
|
Corbin
|
11/19/2010 12:00:06 AM
|
|
On 10-11-18 06:00 PM, Corbin Hedt wrote:
> Walter Roberson <roberson@hushmail.com> wrote in message
>> on to a common x (time) base, if they are not already on a common x
>> base. Then, in the portions of the graph where there is data for both,
>> examine the sign of
>> (A - InterpolatedB) . The places where the sign of the difference
>> changes between adjacent entries are the places where there is a point
>> of intersection somewhere between the entries. Knowing the x (time)
>> and A and InterpolatedB values on both sides of the intersection, you
>> can use standard "intersection of two lines" formulae to infer a point
>> of intersection.
> You would be correct in your understanding of what I was trying to say.
> Are you saying that I should interpolate the two, one-by-one, until I
> notice a sign change?
No need for all that work. You can deduce crossings by looking at
diff(sign(A-B))
Non-zero values of this indicate that a crossing occurred.
Once you have found the index of the crossing, say K, then the lines to find
the intersection of are the segments {t(K), A(K)} to {t(K+1), A(K+1)}, and
{t(K), B(K)} to {t(K+1), B(K+1)}
|
|
0
|
|
|
|
Reply
|
Walter
|
11/19/2010 12:16:11 AM
|
|
In article <ic49ks$h9l$1@fred.mathworks.com>,
"Corbin Hedt" <corbin.hedt@gmail.com> wrote:
> I have two non-linear sets of data A & B which I have plotted against time on
> the same graph. Neither A nor B have a common data point at which they
> intersect, however, when their dots are connected and they are graphed, the
> lines do intersect. Is there a command to calculate the values at this
> point?
>
> Thanks.
<http://www.mathworks.com/matlabcentral/fileexchange/11837>
--
Doug Schwarz
dmschwarz&ieee,org
Make obvious changes to get real email address.
|
|
0
|
|
|
|
Reply
|
Doug
|
11/19/2010 12:19:33 AM
|
|
Doug Schwarz <see@sig.for.address.edu> wrote in message <see-052A54.19193318112010@news.frontiernet.net>...
> In article <ic49ks$h9l$1@fred.mathworks.com>,
> "Corbin Hedt" <corbin.hedt@gmail.com> wrote:
>
> > I have two non-linear sets of data A & B which I have plotted against time on
> > the same graph. Neither A nor B have a common data point at which they
> > intersect, however, when their dots are connected and they are graphed, the
> > lines do intersect. Is there a command to calculate the values at this
> > point?
> >
> > Thanks.
>
>
> <http://www.mathworks.com/matlabcentral/fileexchange/11837>
>
> --
> Doug Schwarz
> dmschwarz&ieee,org
> Make obvious changes to get real email address.
Thank you Doug,
I will try out your coding and make sure to give proper credit if used.
|
|
0
|
|
|
|
Reply
|
Corbin
|
12/2/2010 9:10:25 PM
|
|
|
5 Replies
1273 Views
(page loaded in 0.097 seconds)
|