关于Philip入渗方程参数s和k的非软件辅助手工求解方法问询
关于Philip入渗方程参数s和k的非软件辅助手工求解方法问询
当然可以不用软件,纯手工求解!你已经通过最小二乘法推导出了关于$s$和$k$的线性方程组,接下来有几种手工可行的解法,甚至还有更简化的思路,我给你一步步拆解:
一、先搞定所有必要的求和项(所有方法都需要这一步)
不管用哪种方法,首先得把方程组里的各个求和项算出来,我帮你用手工近似计算(保留合适小数位减少误差):
- $\sum t_i = 5+15+45+75+110 = 250$
- $\sum t_i^{3/2} = \sum \sqrt{t_i} \times t_i ≈ 11.18 + 58.08 + 301.86 + 649.5 + 1153.68 ≈ 2174.3$
- $\sum t_i^2 = 52+152+452+752+110^2 = 25+225+2025+5625+12100 = 20000$
- $\sum z_i\sqrt{t_i} ≈ 4.472 + 17.424 + 60.372 + 112.58 + 183.54 ≈ 378.39$
- $\sum z_i t_i = 10 + 67.5 + 405 + 975 + 1925 = 3382.5$
由此得到你推导出的二元线性方程组:
$$
\begin{cases}
250s + 2174.3k = 378.39 \
2174.3s + 20000k = 3382.5
\end{cases}
$$
二、方法1:高斯消元法(手工解二元方程组最常用的办法)
这个方法就是通过消元把二元方程变成一元,步骤很直观:
- 把第一个方程乘以$\frac{2174.3}{250}≈8.6972$,得到:
$2174.3s + 2174.3×8.6972k ≈ 378.39×8.6972$
计算后:$2174.3s + 18910.3k ≈ 3290.0$ - 用第二个方程减去这个新方程,消去$s$:
$(2174.3s + 20000k) - (2174.3s + 18910.3k) = 3382.5 - 3290.0$
化简得:$1089.7k = 92.5$,所以$k≈\frac{92.5}{1089.7}≈0.085$ cm/min - 把$k≈0.085$代入第一个方程:
$250s + 2174.3×0.085 ≈ 378.39$
计算:$250s ≈ 378.39 - 184.82 ≈ 193.57$,所以$s≈\frac{193.57}{250}≈0.774$ cm/√min
三、方法2:克莱姆法则(矩阵形式的手工解法)
你提到的矩阵解法其实就是把方程组写成$A\mathbf{x}=\mathbf{b}$的形式,然后用克莱姆法则计算:
- 系数矩阵$A = \begin{bmatrix}250 & 2174.3 \2174.3 & 20000\end{bmatrix}$,未知数$\mathbf{x}=\begin{bmatrix}s \k\end{bmatrix}$,右端向量$\mathbf{b}=\begin{bmatrix}378.39 \3382.5\end{bmatrix}$
- 计算$A$的行列式:
$det(A) = 250×20000 - (2174.3)^2 = 5000000 - 4727580.49 ≈ 272419.51$ - 计算$A_s$(把$A$的第一列换成$\mathbf{b}$)的行列式:
$det(A_s) = 378.39×20000 - 2174.3×3382.5 ≈ 7567800 - 7354579.75 ≈ 213220.25$
所以$s = \frac{det(A_s)}{det(A)}≈\frac{213220.25}{272419.51}≈0.783$ cm/√min - 计算$A_k$(把$A$的第二列换成$\mathbf{b}$)的行列式:
$det(A_k) = 250×3382.5 - 2174.3×378.39 ≈ 845625 - 822740 ≈ 22885$
所以$k = \frac{det(A_k)}{det(A)}≈\frac{22885}{272419.51}≈0.084$ cm/min
四、方法3:变形为一元线性回归(最简便的手工方法)
其实你可以把Philip方程变形,转化为我们更熟悉的一元线性模型,大幅减少计算量:
原方程$z = s\sqrt{t} + kt$,两边同时除以$\sqrt{t}$,得到:
$$\frac{z}{\sqrt{t}} = s + k\sqrt{t}$$
令$y = \frac{z}{\sqrt{t}}$,$x = \sqrt{t}$,就变成了标准的一元线性方程:$y = kx + s$,其中$k$是斜率,$s$是截距。
接下来用一元线性回归的手工公式计算:
- 先计算每组数据的$x_i$和$y_i$:
t(min) z(cm) $x=\sqrt{t}≈$ $y=\frac{z}{\sqrt{t}}≈$ 5 2 2.236 0.894 15 4.5 3.872 1.162 45 9 6.708 1.342 75 13 8.660 1.501 110 17.5 10.488 1.669 - 计算求和项:
- $\sum x_i≈31.964$,$\sum y_i≈6.568$
- $\sum x_i y_i≈2.000 + 4.500 + 9.001 + 12.999 + 17.505≈46.005$
- $\sum x_i^2 = \sum t_i = 250$(因为$x_i=\sqrt{t_i}$,所以$x_i^2=t_i$,省了计算!)
- 样本数$n=5$
- 代入一元线性回归公式:
斜率$k = \frac{n\sum x_i y_i - \sum x_i \sum y_i}{n\sum x_i^2 - (\sum x_i)^2}≈\frac{5×46.005 - 31.964×6.568}{5×250 - (31.964)^2}≈\frac{230.025 - 209.94}{1250 - 1021.7}≈\frac{20.085}{228.3}≈0.088$ cm/min
截距$s = \bar{y} - k\bar{x}≈\frac{6.568}{5} - 0.088×\frac{31.964}{5}≈1.3136 - 0.088×6.3928≈0.751$ cm/√min
这几种方法都可以纯手工完成,其中变形为一元线性回归的方法计算量最小,最适合手动操作。如果想要更精确的结果,计算时保留更多小数位即可。
备注:内容来源于stack exchange,提问作者Amirali




