我正在尝试从一篇科学论文建立一个数学formuala到R。
在给出的例子中,我使用了164微米的变量。这是从表3的第一个结果从我所附的文件。您将在这个表中看到计算出的当前速度(非常整洁!)。
总的观点是,我想提出两件事:侵蚀速度和沉积速度。我所附的文件使用了所给的公式。我正在尝试构建一个软件包,它可以通过这些公式运行数百个平均粒度(即变量)。在理想世界中,我的主要目标是使用给定的公式构建一个代码,它接受变量(平均晶粒大小)并输出可爱的数据.我认为这是可能的,但不幸的是,我的R技能还不够
链接到公式:https://imgur.com/a/DEN721v?
链接到原版科学论文:https://link.springer.com/article/10.1007/s00531-008-0312-5
有5个方程,所有这些方程相互补充。结果取决于我在开始时输入的一个变量。
我被赋予了四个已知的价值观:
一个变量(写为d)是沉积物样品的平均粒度。
例如,如果我的平均晶粒尺寸为164μm,它将被输入为1.64e-4。
寻求帮助,因为我的结果肯定不接近他们应该是什么。
p <- 1027.4 #water density (m^3)
ps <- 2650 #grain density (m^3)
g <- 9.81 #acceleration due to gravity (m/s^2)
v <- 1.4313e-6 #kinematic viscosity of water (m^2/s)
z100 <- 100 #level above seabed (cms)
d <- 1.64e-4 #variable (mean grain size in microns)方程式1
D1 <- 9.81*(ps-p)
D2 <- (p*v)^2
D3 <- (D1/D2)
D4 <- D3^(1/3)
D5 <- D4*d
D <- D5 #Dimensionless grain size
D方程2.3
1 - exp(-0.001374634317)
Tcr1 <- -0.020*D
Tcr2 <- 1 - exp(Tcr1)
Tcr3 <- 0.055*Tcr2
Tcr4 <- 0.30/1+(1.2*D)
Tcr5 <- Tcr4 + Tcr3
Tcr6 <- 9.81*(ps-p)
Tcr7 <- Tcr6*d
Tcr8 <- Tcr7*Tcr5
Tcr <- Tcr8 #threshold bed shear stress (N/m^2)
exp(Tcr1)
Tcr
Ucr1 <- Tcr/p
Ucr2 <- sqrt(Ucr1)
Ucr <- Ucr2 #critical shear velocity方程式3
z0 <- d/12 #roughness length
z0方程式4
Ue1 <- z100/z0
Ue2 <- Ucr/0.41
Ue3 <- log(Ue1)
Ue4 <- Ue2*Ue3
Ue <- Ue4 # critical current velocity erosional threshold from particle size distribution
Ue方程5
Usetl1 <- 10.36^(2)
Usetl2 <- D^(3)
Usetl3 <- 1.049*Usetl2
Usetl4 <- Usetl1 + Usetl3
Usetl5 <- Usetl4^(1/2)
Usetl6 <- Usetl5 - 10.36
Usetl7 <- v/d
Usetl8 <- Usetl7*Usetl6
Usetl <- Usetl8计算结果为cm/s,应在20-50 cm/s左右。
发布于 2019-07-16 11:00:59
好的,让我们从一开始就试一试。
p <- 1027.4 #water density (m^3)
ps <- 2650 #grain density (m^3)
g <- 9.81 #acceleration due to gravity (m/s^2)
v <- 1.4313e-6 #kinematic viscosity of water (m^2/s)
z100 <- 100 #level above seabed (cms)
d <- 1.64e-4 #variable (mean grain size in microns)如果平均晶粒尺寸应该是微米,则最后一个值是不正确的。它以米为单位。
D <- d * (g * (ps - p) / (p * v^2))^(1/3)结果为3.22。公式中有一个错误:(p * v)^2而不是p * (v^2)。
Tcr <- g * (ps - p) * d * (.3 / (1 + 1.2 * D) + .055 * (1 - exp(-.02 * D)) )同样,您的公式中有一个错误:.3/1 + 1.2 * D而不是.3/(1 + 1.2 * D)。结果是.17。
Ucr <- sqrt(Tcr / p)结果为.01。
z0 = d / 12结果为1.37E-5。
Ue <- Ucr / .41 * log(z100 / z0)结果为.50。不过,不知道我们为什么要计算它。我们应该把它和我们比较吗?
Uset <- v / d * ( sqrt(10.36^2 + 1.049 * D^3) - 10.36)结果为.01 (.0137014)。
这不是你说你应该得到的,但它与你得到的是不同的。另外,假设它不是厘米而是每秒米,那么它大约是每秒1厘米。
现在,让我们检查一下各单位。首先,当你指定单位时,你需要更加小心。水和谷物密度不是m^3,而是kg * m^-3。
首先,p是无声的(分子和分母都存在):
m * (m * s^-2 / (m^4 * s^-2))^(1/3) =
m * (1/m^3)^(1/3) = m / m = 1好吧,没有单位。
接下来,Tcr:公式的右半部分是无单位的(仅取决于D)。否则,
m * s^-2 * kg * m^-3 * m = (m * kg * s^-2) * m^-2 = N / m^2.好的,也好。
好的,我们现在的公式。同样,方程右侧的右半部分是无单位的。其余的是
m^2 * s / m = m / s至少单位要退房。
希望这能有所帮助。
https://stackoverflow.com/questions/57054252
复制相似问题