在R'上添加连接点的线;s等值线图

在R'上添加连接点的线;s等值线图,r,plot,R,Plot,我需要画一个特定函数的等高线图,在上面画几个点,然后连接这些点。除了最后一个,我已经做了所有这些事情:我不知道如何使用lines()函数连接点 下面是生成点的代码(这是一个最小化过程,点包含在名为“tabela”的表中) 这是它的样子。我需要连接点的线!谢谢你的帮助 这是响应面方法吗?使用点创建绘图后,可以通过代码线(tabela[1:7,2:3],col=“black”)将点与线连接起来 我想我已经试过了。谢谢这就是优化。特别是在坐标轴方向上的循环极小化方法。我被要求实现该算法并直观地演示其收

我需要画一个特定函数的等高线图,在上面画几个点,然后连接这些点。除了最后一个,我已经做了所有这些事情:我不知道如何使用
lines()
函数连接点

下面是生成点的代码(这是一个最小化过程,点包含在名为“tabela”的表中)

这是它的样子。我需要连接点的线!谢谢你的帮助


这是响应面方法吗?使用点创建绘图后,可以通过代码
线(tabela[1:7,2:3],col=“black”)
将点与线连接起来


我想我已经试过了。谢谢这就是优化。特别是在坐标轴方向上的循环极小化方法。我被要求实现该算法并直观地演示其收敛性。
n=2; x=c(1,4) # número de tentativa, ponto inicial
f = function(x,y){((x)-3)^2+(3*x-2*y)^4} # função objetivo
fexpr=expression(((x+lambda*e1)-3)^2+(3*(x+lambda*e1)-2*(y+lambda*e2))^4) # transforma em expressão
deriv_1=function(x,y,e1,e2,lambda){eval(D(fexpr,'lambda'))} # derivada
deriv_2=function(x,y,e1,e2,lambda){eval(D(D(fexpr,'lambda'),'lambda'))}
tabela=data.frame() # inicia uma tabela a ser preenchida pelo for loop
i=1
for (k in 0:100){
  e=diag(1,nrow = n)[,i]
  lambda=0
  for (j in 1:10){
    lambda=lambda-deriv_1(x=x[1],y=x[2],e1=e[1],e2=e[2],lambda=lambda)/
      deriv_2(x=x[1],y=x[2],e1=e[1],e2=e[2],lambda=lambda)
  }
  f_x=eval(fexpr,list(x=x[1],y=x[2],e1=0,e2=0,lambda=0))
  linha_tabela=data.frame(k=k,x=x[1],y=x[2],f_x=f_x,lambda=lambda)
  
  tabela=rbind(tabela,linha_tabela)
  x=x+lambda*e
  if (i<n){i=i+1}else{i=1}
}
funcao = function(x,y){((x)-3)^2+(3*x-2*y)^4} # função objetivo
x1 = seq(0,5,length=100)
x2 = seq(0,5,length=100)
all.x = expand.grid(x1,x2)
eval.fx = funcao(x=all.x$Var1, y=all.x$Var2)
fx = matrix(data = eval.fx, nrow=length(x1), ncol=length(x2), byrow=FALSE)
# persp(x=x1, y=x2, z=fx, col="red", xlim=c(-15,15), ylim=c(-15,15), scale=TRUE, shade=0.4)

par(pty="m")
contour(x=x1, y=x2, z=fx, col='navy', lwd=2,
       main= expression(paste("Gráfico de Contorno para a função ", f(x,y))),
       xlab = expression(x[1]),
       ylab= expression(x[2]),
       xlim=c(0,5),
       ylim=c(0,5), levels = seq(1,100,length=10))
       
# gerando uma grade no plot
abline(h = seq(from = -10, to = 30, by = 5), lty = "dotted", col = "lightgray")
abline(v = seq(from = -10, to = 30, by = 5), lty = "dotted", col = "lightgray")

# marcando os eixos x e y
abline(h = 0, lwd = 2)
abline(v = 0, lwd = 2)

# exibe os pontos convergindo

points(tabela[1:7,2:3], col='red', pch=19)