用R中的方程填充大矩阵

时间:2014-11-09 04:41:41

标签: r loops for-loop matrix vector

我正在尝试使用两个for循环填充矩阵。内循环应该计算一行(空间中的点),外循环应该计算空间中每个点的下一个时间点。我不知道如何用每个新计算的行填充我最初制作的空白矩阵。这是我的代码:

L=100           #[m]
S=0.01
n=0.0036        #[s/m^1/3]
train=720       #[s]
qrain=0.0000027 #[m/s]
t=3600          #[s]
dx=10           #[m]
dt=0.01         #[s]
N=1/dt

h=matrix(,nrow=N*t,ncol=10)

h[1,]=0

for (j in 1:nrow(h)) {
    if(j<(train/dt)) q=qrain
    else q=0

    for (i in 1:ncol(h)) {

        h[i,j+1]=h[i,j]-(dt*S/n)*((h[(i+1),j]^(5/3)-h[i,j]^(5/3))/dx)+q

    }

    v=matrix(((S^0.5)/n)*(h^(2/3)),nrow=nrow(h),ncol=ncol(h))
}

q=matrix(v*h,nrow=nrow(h),ncol=ncol(h))

以这种方式写我的等式是否有效?我还希望整个第一行h [1,]为零,并且它只想使h [1,1]为0.不确定我是否遗漏了明显的东西。在此先感谢您的帮助! (这是我在这里的第一篇文章)。

0 个答案:

没有答案