| 查看: 184 | 回复: 0 | |||
| 当前主题已经存档。 | |||
| 【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 cheng2169 的 10 个金币 | |||
cheng2169木虫 (正式写手)
|
[交流]
【求助】求助: 帮忙看看这是什么高级程序,把它改成MATLAB 应该怎么写?
|
||
|
Sim<- function(alpha=1,beta=0.5,gamma=2,epsilon=200) { Funk<-function(x1,x2) 100*(x2-x1^2)^2+(1-x1)^2 P1=c(2,1)# 初期点 P2=c(9,2) P3=c(1,5) Dim1 <- 3 #点的数 Q<-P<- matrix(c(P1,P2,P3),ncol=3,nrow=2) y<-0 for(i in 1:dim1) y<-funk(P[1,i],(P[2,j])) y<-sort(y) for(i in 1:dim1) for(j in 1:dim1) if(y==funk(P[1,j],P[2,j])) Q[,i] <-P[,j] for(i in 1:dim1){ if(y==funk(Q[1,dim1],Q[2,dim1])){ xh=c(Q[1,dim1],Q[2,dim1]) } else if(y==funk(Q[1,1],Q[2,1])){ x1=c(Q[1,1],Q[2,1]) }else if(y !=funk(Q[1,dim1],Q[2,dim1])&& y !=funk(Q[1,1],Q[2.1])){ xs=c(Q[1,i],Q[2,i]) } } x0<-0 p<-q<-seq(-5,5,length=100) r<-outer(p,q,funk) contour(p,q,r,labels=””) par(new=T) #stop condition z<-y for(i in 1:dim1) z=(y-(1/dim1)*sum(y))^2 for(v in 1:100){ segments(xh[1],xh[2],xl[1],xl[2]) segments(xs[1],xs[2],xl[1],xl[2]) segments(xs[1],xs[2],xh[1],xh[2]) if((1/dim1*sum(z))^(1/2) < epsilon) break #停止条件 x0<-(xs+xl)/2 #Reflcetion xr=(1+alpha)*x0-alpha*xh if(funk(xr[1],xr[2]) <=funk(xs[1],xs[2])){ if(funk(xr[1],xr[2]) if(funk(xe[1],xe[2]) } else if(funk(xe[1],xe[2]) } } else if(funk(xr[1],xr[2]) >=funk(xl[1],xl[2])){ xh <-xr } } else if(funk(xr[1],xr[2]) >funk(xs[1],xs[2])){ if(funk(xr[1],xr[2]) } xc=beta * xr + (1-beta)* x0 #contraction if(funk(xc[1],xc[2]) < funk(xh[1],xh[2])){ xh<-xc }else if(funk(xc[1],xc[2]) >=funk(xh[1],xh[2])){ xh <- 1/2(xh+xl) xs <- 1/2(xs+xl) } } } return(xh) } |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有27人回复
所感
已经有3人回复
要不要辞职读博?
已经有7人回复
不自信的我
已经有11人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复












回复此楼