小弟初学乍道,做了一个R的函数程序,但是在运行的过程中出现了问题,具体程序和问题如下:
程序设置:
mr=function(f0,num,pm,dt,N)#pm=c(ratio,Kfac1,Kfac2,Kfac3,advpart,advfresh)
{
f=matrix(nrow=2,ncol=N)
f[1,1]=f0[1]
f[2,1]=f0[2]
for(t in 1:(N-1))
{
ds1=num*((pm[1]*(pm[2]+pm[3]+pm[4])*f[1,t])^(1/2))
f[1,t+1]=f[1,t]+dt*ds1
ds2=f[1,t]*(pm[5]+pm[6])
f[2,t+1]=f[2,t]+dt*ds2
}
f
}
在运行赋值的时候赋值如下
pm=c(0.4,0.31,0.07,0.12,0.3,0.15)
BJ=mr((0.25,0.35),2.3,pm,0.001,10000)#注,其中我希望f0[1]=0.25,f0[2]=0.35
但是plot(BJ)的时候,只显示两个点即0.25和0.35,而单独检查后面num,dt部分都是没有的,程序报告如下
> f
错误: 找不到对象'f'
> f0
[1] 0.25 0.35
> num
错误: 找不到对象'num'
> dt
function (x, df, ncp, log = FALSE)
{
if (missing(ncp))
.Call(C_dt, x, df, log)
else .Call(C_dnt, x, df, ncp, log)
}
<bytecode: 0x07550cd4>
<environment: namespace:stats>
> N
错误: 找不到对象'N'
>
我猜测应该是矩阵函数的赋值上有问题,求教各位指点,小弟跪谢!!


雷达卡




京公网安备 11010802022788号







