| 查看: 183 | 回复: 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) } |
» 猜你喜欢
导师想让我从独立一作变成了共一第一
已经有8人回复
博士读完未来一定会好吗
已经有23人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有11人回复
读博
已经有4人回复
JMPT 期刊投稿流程
已经有4人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
小论文投稿
已经有3人回复
申请2026年博士
已经有6人回复













回复此楼