從實驗數據、47 種公式搜索到 Model F 14+5 正式模型
達文西橋是一種不需要釘子、膠水或繩子,純粹靠木棍互相交疊、摩擦力與重力就能撐住的橋梁結構。但同樣的搭法,換不同長度的棍子、改變接點位置,承重能力就天差地別。
我們想找出一組公式,輸入以下 5 個變數,就能算出預測承重:
| 符號 | 名稱 | 說明 |
|---|---|---|
| L | 棍長 | 每根木棍的長度 (cm) |
| b | 棍寬 | 木棍的寬度 (cm) |
| t | 棍厚 | 木棍的厚度 (cm) |
| H | 水平接點 | 水平方向的交疊距離 (cm) |
| V | 垂直接點 | 垂直方向的交疊距離 (cm) |
目標:建立一個對數線性迴歸模型,讓我們不必實際搭橋測試,就能估算最大承重。
為了控制變因,我們固定了部分條件,只改變想研究的變數:
操縱變因:
總共進行了 19 組實驗。每一組都實際搭建橋梁,然後逐步加重,直到橋梁崩塌為止,記錄崩塌前的最大承重(單位:克)。
| 棍長 (cm) | 實驗組數 | H 範圍 (cm) | V 範圍 (cm) |
|---|---|---|---|
| 15 | 4 組 | 2 ~ 3 | 1 ~ 3 |
| 18 | 4 組 | 2 ~ 4 | 2 ~ 4 |
| 20 | 7 組 | 2 ~ 5 | 2 ~ 5 |
| 25 | 4 組 | 3 ~ 6 | 2 ~ 5 |
每組實驗都做了至少 3 次重複測試,取平均值作為該組的最大承重數據。
橋梁會在哪裡斷裂或變形?答案是:V0 和 V1 之間沒有支撐的那段懸空區間。
懸空段 S 是 V0 到 V1 之間水平棍沒有被垂直棍支撐的距離:
根據材料力學的樑彎曲理論,一根矩形截面的樑在集中載重下的最大承受力,與截面寬度 b 成正比、與厚度 t 的平方成正比、與跨距 S 成反比。
我們把這些跟木棍尺寸相關的因子整合成一個數值,稱為材料強度 M:
M 把三個幾何變數(b、t、S)壓縮成一個數值,大幅簡化了模型。接下來只需要考慮 M 和 V 就能預測承重。
我們先嘗試了較簡單的 Model E,發現它的限制後,才改良出 Model F。
有了 V×L 項,最佳 V 就不再是固定值,而是一個隨棍長變化的公式:
確定了 Model F 的公式架構後,我們用兩種方式來訓練模型的係數:
模擬器實際計算使用完整精度係數 2.047639 / 0.649840 / -0.058821 / -0.009847 / 18.646435;本頁公式為四捨五入展示。
模型評估分成三層:10-split CV 用來公平比較 Model E 和 Model F;14+3 held-out 驗證用來確認 V×L 公式在未見資料上的表現;14+5 正式模型再用 LOO-CV 估計上線時的泛化誤差。
| 指標 | Model E (3 特徵) | Model F (4 特徵) | 結果 |
|---|---|---|---|
| 平均 MAPE | 20.2% | 18.3% | Model F 低 1.9 個百分點 |
| 勝出次數 | 3 / 10 | 5 / 10 | 另有 2 次平手 |
14+3 驗證版在最佳分割 F515255 的 held-out 結果如下:
| 驗證樣本 | 實測 | Model F 預測 | 偏差 |
|---|---|---|---|
| Exp53: 15cm H2 V2 | 3800 g | 4279 g | +12.6% |
| Exp54: 25cm H3 V4 | 1000 g | 997 g | -0.3% |
| 平均偏差 | F515255 held-out 驗證 | 6.5% | |
14+5 正式模型的 LOO(留一法)交叉驗證指標:
| 指標 | 數值 | 說明 |
|---|---|---|
| LOO R² | 0.8879 | 模型可解釋 88.8% 的變異 |
| 訓練 R² | 0.9286 | 訓練擬合度 |
| MAE | 181 g | 訓練平均絕對誤差 |
| LOO MAE | 235 g | 留一法平均絕對誤差 |
以下結果以頁面實際使用的 14+5 完整精度係數,並在目前整數 H、V 與搭建限制條件下搜尋所得:
不是任意的 L、H、V 組合都能搭出穩定的橋。以下是必須滿足的物理限制條件:
| 條件 | 公式 | 白話說明 |
|---|---|---|
| 最短棍長 | L ≥ 13b | 棍子太短會無法交疊出穩定結構 |
| 水平接點上限 | H ≤ (L - 2b) / 4 | H 太大會讓懸空段消失,左右棍撞在一起 |
| 垂直接點上限 | V ≤ (L - 10b) / 2 | V 太大會讓橋腳太窄,容易左右搖晃 |
| 懸空段正值 | S > 0 | V0 和 V1 之間必須有空間 |
以 L = 20 cm、b = 1.0 cm 為例:
| 條件 | 計算 | 結果 |
|---|---|---|
| 最短棍長 | 13 × 1.0 = 13 cm | 20 ≥ 13 ✔ |
| H 上限 | (20 - 2) / 4 = 4.5 cm | H ≤ 4.5 |
| V 上限 | (20 - 10) / 2 = 5.0 cm | V ≤ 5.0 |
| 懸空段(H=4, b=1) | 20 - 8 - 2 = 10.0 cm | S = 10.0 > 0 ✔ |
模擬器會即時檢查這些條件。當參數超出範圍時,預測卡片會變成黃色(警告)或紅色(錯誤),並顯示具體的違規項目。