我正在使用R包Rsolnp来解决一些约束优化问题。解决优化问题后,它会自动显示通知和优化结果。有谁知道怎么沉默呢?我必须编写一个循环来在每次迭代中运行solnp。继续显示结果非常烦人。
提前致谢!
答案 0 :(得分:2)
您没有给予太多帮助,但您可以通过this.responseText
参数将trace
控制参数设置为control
。例如,使用solnp
中的exmaple:
?solnp
然后我们
fn1 <- function(x) {
exp(x[1]*x[2]*x[3]*x[4]*x[5])
}
eqn1 <- function(x) {
z1 <- x[1]*x[1]+x[2]*x[2]+x[3]*x[3]+x[4]*x[4]+x[5]*x[5]
z2 <- x[2]*x[3]-5*x[4]*x[5]
z3 <- x[1]*x[1]*x[1]+x[2]*x[2]*x[2]
return(c(z1,z2,z3))
}
x0 <- c(-2, 2, 2, -1, -1)
所以设置> powell <- solnp(x0, fun = fn1, eqfun = eqn1, eqB = c(10, 0, -1),
+ control = list(trace = 1)) # default
Iter: 1 fn: 0.03526 Pars: -1.59385 1.51051 2.07795 -0.81769 -0.81769
Iter: 2 fn: 0.04847 Pars: -1.74461 1.62029 1.80509 -0.77020 -0.77020
Iter: 3 fn: 0.05384 Pars: -1.71648 1.59482 1.82900 -0.76390 -0.76390
Iter: 4 fn: 0.05395 Pars: -1.71713 1.59570 1.82727 -0.76364 -0.76364
Iter: 5 fn: 0.05395 Pars: -1.71714 1.59571 1.82725 -0.76364 -0.76364
Iter: 6 fn: 0.05395 Pars: -1.71714 1.59571 1.82725 -0.76364 -0.76364
solnp--> Completed in 6 iterations
来抑制这个:
trace = 0
包中的其他功能也有类似的参数。