Obligar a nls a ajustarse a una curva que pasa por un punto específico

Estoy tratando de colocar un sigmoide de Boltzmann1/(1+exp((x-p1)/p2)) a este pequeño conjunto de datos experimentales:

xdata <- c(-60,-50,-40,-30,-20,-10,-0,10)
ydata <- c(0.04, 0.09, 0.38, 0.63, 0.79, 1, 0.83, 0.56)

Sé que es bastante simple hacerlo. Por ejemplo, usandonls:

fit <-nls(ydata ~ 1/(1+exp((xdata-p1)/p2)),start=list(p1=mean(xdata),p2=-5))

Obtengo los siguientes resultados:

Formula: ydata ~ 1/(1 + exp((xdata - p1)/p2))

Parameters:
   Estimate Std. Error t value Pr(>|t|)    
p1  -33.671      4.755  -7.081 0.000398 ***
p2  -10.336      4.312  -2.397 0.053490 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1904 on 6 degrees of freedom

Number of iterations to convergence: 13 
Achieved convergence tolerance: 7.079e-06

Sin embargo, yonecesitar&nbsp;(debido a razones teóricas) la curva ajustada para pasar con precisión a través del punto(-70, 0). Aunque el valor de la expresión ajustada mostrada arriba pasa cerca de cero enx = -70, no es exactamente cero, que no es lo que quiero.

Entonces, la pregunta es: ¿hay alguna manera de sabernls&nbsp;(o alguna otra función) para ajustarse a la misma expresión pero forzándola a pasar por un punto específico?

Actualizar:

Como se ha mencionado en los comentarios, es matemáticamente imposible forzar el ajuste para que pase por el punto (-70,0) usando la función que proporcioné (el sigmoide de Boltzmann). Por otro lado, @Cleb y @BenBolker han explicado cómo forzar el ajuste para que pase por cualquier otro punto, por ejemplo (-50, 0.09).