____________________________________
El 05/12/2010, a las 15:26, Daniel Arismendi escribió:
Buenas Olivier.
Gracias por tu rápida respuesta
Todo lo que has dicho me parece excelente pero el detalle esta en
que mi data experimental esta tomada con respecto a la longitud de
onda y la densidad de energÃa.
Lo que tu afirmas, tomando en cuenta la frecuencia, es una forma de
escribir la ecuación para la densidad de energÃa en función de
dicha frecuencia que básicamente proviene de decir que:
donde: lamda es la longitud de onda
c es la velocidad de la luz
v es la frecuencia.
que sucede si en este caso trabajo con la frecuencia podrÃa estar
introduciendo errores sistemáticos al problema y pues eso me hace
pensar que el valor de h para la constante de Planck no sera el mas
óptimo.
puedes corroborarlo viendo este enlace sobre el tema:
http://en.wikipedia.org/wiki/Planck's_law
Lo que estoy tratando entonces de hacer es encontrar los parámetros
iniciales para la función de ajuste pero por las dos maneras que e
planteado me encuentro con esos 2 errores que coloque en mi primer
mensaje y pues e recurrido a ustedes por falta de bibliografÃa
acerca de estos en Internet.(que de seguro debe haber pero no
encuentro una solución clara al problema que se me presenta)
El 5 de diciembre de 2010 15:08, Olivier Nuñez <onunez en iberstat.es>
escribió:
Daniel
al contestar rápidamente cometà un error.
Es más bien la función
(b1, b2) -> { (b1/x_i^3) / (exp(b2/x_i/T) - 1 ) }_{ i = 1..n }
que ha de ser inyectiva para que todo vaya bien (donde los x_i son
los periodos de onda considerados en tu experimento).
Asegurarse de que dicha función es inyectiva no es trivial pero con
un poco de algebra se hace.
Un saludo. Olivier
-- ____________________________________
Olivier G. Nuñez
Email: onunez en iberstat.es
Tel : +34 663 03 69 09
Web: http://www.iberstat.es
____________________________________
El 05/12/2010, a las 13:39, Daniel Arismendi escribió:
Buenas dias comunidad antes que nada gracias a las ultimas respuestas
obtenidas por parte de ustedes.
Mientras me leia las paginas que me dejaron para guiarme me dedique
a buscar
el libro correspondiente a nlrwr
Nonlinear Regression with R de Christian Ritz ? Jens Carl Streibig
el cual
les puedo enviar por correo al que lo desee para que lo lean y lo
tengan
dentro de su repertorio bibliografico pues es al que hacen
referencia en
estos casos de regresiones no lineales la gente de R
Estuve resolviendo lo del problema del parametro de ajuste para la
constante
de Planck mediante minimos cuadrados y pues me tope con estos
problemas.
En primer lugar como no soy tan agil encontrando los parametros
para mi
funcion de ajuste en este caso
fun.ajust<-nls( y ~ (b1/x^5) * (1 / (exp(b2/x*T) - 1) ), data=datos,
trace=TRUE,
start=c(b1 = 0.01, b2 = 0.02) )
me encuentro siempre con estos errores :
1*- Error in nls(... :
step factor 0.000488281 reduced below 'minFactor' of 0.000976562
2*- Error in nls(... :
singular gradient
3*- Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Estos solamente sin usar algun algoritmo para encontrar los minimos
cuadrados pues cuando use los algoritmos siguientes encontraba otros
errores:
algorithm: specification of estimation algorithm:
? "default": the Gauss-Newton algorithm (the default)
? "plinear": for models with conditionally linear parameters
- "port": for models with constraints on the parameters
(can be used with the arguments lower/upper)
Dado que tirar piedras no me funciona pues los errores siguen
saliendo y la
experiencia es algo que te dice como podrian ser los parametros
iniciales de
ajuste me dedique a usar 2 maneras a traves de las cuales pudiera
encontrar
mis parametros de ajuste.
1*-Hago uso de la libreria nlstools
library(nlstools)
modelo<-V2~(b1/V1^5) * (1 / (exp(b2/V1*T) - 1)
preview(formula = modelo, data = datos, start = start =
list(b1=0.01,b2=0.02))
Error: no se pudo encontrar la función "preview"
Referencia a la funcion preview:
Details
The function preview helps defining the parameter starting values
prior
fitting the model. It provides a superimposed plot of observed
(circles) and
predicted (crosses) values of the dependent variable versus one of the
independent variables with the model evaluated at the starting
values of the
parameters. The function overview returns the parameters estimates,
their
standard errors as well as their asymptotic confidence intervals
and the
correlation matrix (alternately, the function confint provides better
confidence interval estimates whenever it converges).
plotfitdisplays a
superimposed plot of the dependent variable versus one the independent
variables together with the fitted model
2*- parecida a preview pero haciendo uso de una funcion predefinida
y la
funcion curve superpuesta sobre los puntos de los datos
experimentales:
datos<-read.table("datos.txt")
attach(datos)
plot(V2~V1,data=datos,xlab="longitud de onda",ylab="densidad de
energia")
T<-1595
modelo1<- function(V1,b1,b2){(b1/V1^5) * (1 / (exp(b2/V1*T) - 1) )}
plot(V2~V1,data=datos,ylim=c(0,1.85e3),xlab="longitud de
onda",ylab="densidad de energia")
curve(modelo(V1,b1=0.01,b2=0.02),add=TRUE)
Error en curve(modelo(V1, b1 = 0.01, b2 = 0.02), add = TRUE) :
'expr' must be a function, call or an expression containing 'x'
Referencia a esta segunda forma la encontre en el libro de nlrwr.
Agradeceria si alguien conoce de estos errores como podria
solucionarlos
pues es poca la bibliografia respecto a estos en la web y no logro
terminar
de hacer la funcion de ajuste.
Saludos a toda la comunidad.
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es