Skip to content
Back to formatted view

Raw Message

Message-ID: <095F4493-77AE-47E3-B926-38CB1712CCC4@comcast.net>
Date: 2011-01-03T15:56:16Z
From: David Winsemius
Subject: optimize
In-Reply-To: <alpine.LFD.2.00.1101031427300.7059@localhost6.localdomain6>

On Jan 3, 2011, at 9:52 AM, Muhammad Rahiz wrote:

> Hi all,
>
> I'm trying to get the value of y when x=203 by using the intersect  
> of three curves. The horizontal curve does not meet with the other  
> two. How can I rectify the code below?
>
> Thanks
>
> Muhammad
>
> ts <- 1:10
> dd <- 10:1
>
> ts <- seq(200,209,1)
> dd <- c(NA,NA,NA,NA,1.87,1.83,1.86,NA,1.95,1.96)
>
> plot(ts,dd,ylim=c(1.5,2))
> abline(lm(dd~ts),col="blue",lty=2)
> abline(v=203,col="blue",lty=2)
>
> xy <- lm(dd~ts)
> fc <- function(x) coef(xy)[1] + x*coef(xy)[2]
> val <- optimize(f=function(x) abs(fc(x)-203), c(1.5,2))
                                          ^???^

Joshua Wiley's answer made me realize that your question was different  
than I thought. At this point maybe you should have made your  
objective function match on the coordinate difference to be minimized.  
You are at this point taking the absolute difference between an x- 
value, 203. and a y-value. fc(x). That makes little sense. You can use  
predict() as Joshua showed you or you can change your objective  
functions so it is more meaningful. Furthermore, I have had better  
success with squared differences that with abs(differences). I'm not  
sure whether that is due to the availability of a more informative  
derivative.  (Again, looks like homework and I refrain from posting  
completed solutions.)

> abline(h=val,col="blue",lty=2)

--
David Winsemius, MD
West Hartford, CT