24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1385  |  回复: 0

michunrong

木虫 (小有名气)

[求助] 如何使用R软件编写循环迭代程序 求大神帮助

##求最终的Tb和Theta_T##
##数据
Tmax=c(35.0,30.0,28.0,25.0,25.5,26.0)
Tmin=c(15.4,15.8,13.2,9.8,9.5,9.4)
X=c(0.233,0.233,0.220,0.065,0.138,0.083)
D=c(12,25,46,41,45,62)
Ts=40
To=30
Tbo=0

##Theta_g 其中一个过程量
if (Tbo<Tmin){
  Theta_g=(Tmax+Tmin)/2
} else if (Tbo<Tmax & Tbo>Tmin){
  Theta_g=(Tmax+Tmin)/2+(Tbo-Tmin)^2/2*(Tmax-Tmin)
} else
  Theta_g=Tbo

##Theta_a 另一个过程量
if (To>Tmin & Tmax<Ts){
  Theta_a=(Ts-Tbo)*(Tmax-To)^2/(2*(Ts-To)*(Tmax-Tmin))
} else if (To>Tmin & Tmax>=Ts){
  Theta_a=(Tmax*(Tmax-2*Tbo)-To*(Ts-Tbo)+Ts*Tbo)/(2*(Ts-To))
} else if (Tmin>=To & Tmin<Ts & Tmax<Ts){
  Theta_a=(Ts-Tbo)*(Tmax+Tmin-2*To)/(2*(Tmax-Tmin))
} else if (Tmin>=To & Tmin<Ts & Tmax>Ts){
  Theta_a=(Tmax+Tmin)/2-Tbo-(To-Tbo)*(Ts-Tmin)^2/(2*(Ts-To)*(Tmax-Tmin))
} else
  Theta_a=(Tmax+Tmin)/2-Tbo

## Theta_s
Theta_s=(Theta_g-Theta_a)*D

## Linear formular: Theta_s/X=Theta_T+Tb(D/X) 最小二乘法回归
y=Theta_s/X
x=D/X

##Least square linear regress simulation
Tb=sum((x-mean(x))*(y-mean(y)))/sum((x-mean(x))^2)
Theta_T=mean(y)-Tb*mean(x)

###判定条件是 |Tb-Tbo|<0.01则停止,如果|Tb-Tbo|>=0.01,则令Tbo=Tb,然后回到上面三个方程重新计算Tb,再进行判定,直到|Tb-Tbo|<0.01为止
##请问该如何设置循环迭代语句
回复此楼
做实践的理想主义者
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 michunrong 的主题更新
信息提示
请填处理意见