# just to clean it up for my own understanding, the "difference" approach as 
you had suggested would be

x <- seq(.2, .3, by = .00001)
f1 <- function(x){
        x*cos(x)-2*x**2+3*x-1
}
plot(x,f1(x), type = "l")
abline(h = -.1)
abline(v = x[which.min(abs(diff((f1(x) - (-.1))**2)))], lty = 'dotted')
points(x = x[which.min(abs(diff((f1(x) - (-.1))**2)))], y = -.1)

# and the uniroot approach is:

x <- seq(.2, .3, by = .01)
f1 <- function(x){
        x*cos(x)-2*x**2+3*x-1
}
f2 <- function(x){
        -.1
}
f3 <- function(x){
        f1(x) - f2(x)
}
plot(x,f1(x), type = "l")
abline(h = -.1)
abline(v = uniroot(f = f3, interval = c(.2, .3))$root, lty = 'dotted')
points(x = uniroot(f = f3, interval = c(.2, .3))$root, y = -.1)

# Thanks David!


On Aug 12, 2010, at 1:33 PM, David Winsemius wrote:


On Aug 12, 2010, at 4:15 PM, TGS wrote:

> David, I was expecting this to work but how would I specify the vector in 
> "diff()" in order for the following to work?
> 
> x <- seq(.2, .3, by = .01)
> f <- function(x){
>       x*cos(x)-2*x**2+3*x-1
> }
> plot(x,f(x), type = "l")
> abline(h = -.1)
> abline(v = x[which.min(abs(diff(c(-.1, f(x)))))], lty = 'dotted')

f2 <- function(x) -0.1
f3 <- function(x) f(x) -f2(x)
abline(v=uniroot(f3, c(0.2, 0.3) )$root)
points(x=uniroot(f3, c(0.2, 0.3) )$root, y= -0.1)

If you are going to use the differences, then you probably want to minimize 
either the abs() or the square of the differences.

-- 
David.
> 
> On Aug 12, 2010, at 1:00 PM, David Winsemius wrote:
> 
> 
> On Aug 12, 2010, at 3:54 PM, TGS wrote:
> 
>> Actually I spoke too soon David.
>> 
>> I'm looking for a function that will either tell me which point is the 
>> intersection so that I'd be able to plot a point there.
>> 
>> Or, if I have to solve for the roots in the ways which were demonstrated 
>> yesterday, then would I be able to specify what the horizontal line is, for 
>> instance in the case where y (is-not) 0?
> 
> Isn't the abline h=0 represented mathematically by the equation y=0 and 
> therefore you are solving just for the zeros of "f" (whaich are the same as 
> for (f-0)? If it were something more interesting, like solving the 
> intersection of two polynomials, you would be solving for the  zeros of the 
> difference of the equations. Or maybe I have not understood what you were 
> requesting?
> 
> 
>> 
>> On Aug 12, 2010, at 12:47 PM, David Winsemius wrote:
>> 
>> 
>> On Aug 12, 2010, at 3:43 PM, TGS wrote:
>> 
>>> I'd like to plot a point at the intersection of these two curves. Thanks
>>> 
>>> x <- seq(.2, .3, by = .01)
>>> f <- function(x){
>>>     x*cos(x)-2*x**2+3*x-1
>>> }
>>> 
>>> plot(x,f(x), type = "l")
>>> abline(h = 0)
>> 
>> Would this just be the uniroot strategy applied to "f"? You then plot the x 
>> and y values with points()
>> 
> 
>> 
> 
> David Winsemius, MD
> West Hartford, CT
> 
> 

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to