Я использовал пакет nleqslv
для решения системы двух нелинейных уравнений
library(nleqslv)
read.table("C:\\Users\\Livia\\Desktop\\firm.txt",header=TRUE)
firm.txt<-"Q K r X.E t E0
"
firm<-read.table(textConnection(firm.txt),header=TRUE,stringsAsFactors=FALSE)
firm
#Loop with solver for 9 dates:
for(i in 1:9){
K<-firm[i,2]
r<-firm[i,3]
X.E<-firm[i,4]
t<-firm[i,5]
E0<-firm[i,6]
BS<-function(x){
f<-rep(NA,length(x))
f[1]<-(x[1]*pnorm((log(x[1]/K)+(r+(x[2]^2/2))*t)/(x[2]*sqrt(t)))-exp(-r*t)*K*pnorm((log(x[1]/K)+(r+(x[2]^2/2))*t)/(x[2]*sqrt(t))-x[2]*sqrt(t)))-E0
f[2]<-X.E*E0-pnorm((log(x[1]/K)+(r+(x[2]^2/2))*t)/(x[2]*sqrt(t)))*x[2]*x[1]
f
}
p0<-c((E0+K),X.E*E0/(E0+K))
print(p0)
ans<-nleqslv(p0,BS,control=list(trace=1,allowSingular=TRUE))
print(ans)
}
Очень хотелось бы понять логику этого. У меня есть два неизвестных, и я устанавливаю их начальные значения в соответствии с
p0<-c((E0+K),X.E*E0/(E0+K))
Как работает процедура итерации? Я уже пытался достать из CRAN пакеты "nleqslv" 3.0 .pdf но безуспешно.
()
- person Hack-R   schedule 02.06.2016f[1]
сK
? - person Bhas   schedule 02.06.2016nleqslv
. Не задокументировано в `nleqslv.pdf', так как это сделало бы руководство слишком большим. См. Деннис и Шнабель (в разделе «Ссылки»). - person Bhas   schedule 03.06.2016x[1]
иx[2]
, как кажется из вашего комментария. - person Bhas   schedule 04.06.2016