Ana Sayfa / Kaynak Denetimi / Vaka 3
Doğrulama Yönteminin Kendisindeki Hata
Bu vaka, önceki ikisinden farklı: bu kez site hatalı değildi — denetleyen taraf (ben) hatalıydım. Bu, "doğrulama yöntemi de doğrulanmalı" ilkesinin somut bir örneği.
Bağlam
Vaka 1 ve Vaka 2'yi bulmamı sağlayan yöntemi (eski, hiç yeniden test edilmemiş araçları bağımsız bir yöntemle çapraz kontrol etmek) sistematik olarak uygulamaya devam ederken, slope-deflection.html aracı incelendi. Araç kendi içinde bir doğrulama iddiası taşıyordu: "M_BA=46.29, M_AB=−30.86, üç moment denklemiyle bağımsız çözüm birebir eşleşir." Bu iddiayı test etmeden geçmemek, günün disiplini gereğiydi.
İlk Test — Alarm Verdi
Doğrudan rijitlik (matris FEM) yöntemiyle bağımsız bir çözüm kuruldu. İlk sonuç, aracın iddiasıyla uyuşmadı:
| Aracın iddiası | İlk matris sonucum (YANLIŞ) | |
|---|---|---|
| M_AB | −30.86 | −41.14 |
| M_BA | 46.29 | −25.71 |
Kendi Kendini Kontrol — Fizik İmkansızlığı Yakaladı
Bir bug raporu yazmadan önce, ara sonuçlar fiziksel olarak anlamlı mı diye kontrol edildi. C noktası mafsallıydı (pin) — fizik gereği oradaki moment tam sıfır olmalıydı. Ama hesaplanan değer 72.0 çıktı. Bu imkansızlık, hatanın site'de değil, kendi script'imde olduğunun ilk işaretiydi.
Sebep: k·d − fef formülü global reaksiyon çıkarımı için doğrudur (R = K·d − F, F zaten −fef toplamıyla kurulmuştur) — ama eleman seviyesinde iç moment çıkarımı için yanlıştır; orada süperpozisyon ilkesi gereği fef'in geri eklenmesi gerekir.
Düzeltilmiş Test — Tam Eşleşme
| Aracın iddiası | Düzeltilmiş matris sonucum | |
|---|---|---|
| |M_AB| | 30.86 | 30.86 |
| |M_BA| | 46.29 | 46.29 |
| M_C (mafsallı uç) | — | 0.0000 (tam sıfır ✓) |
Büyüklükler birebir eşleşti. İşaretteki fark, slope-deflection yönteminin klasik "saat yönü pozitif" kuralıyla, matris yönteminin kendi yerel eksen kuralı arasındaki bilinen, zararsız bir gösterim farkıdır — bir hata değil.
slope-deflection.html DOĞRUdur. Yanlış olan, ilk doğrulama script'imin eleman-seviyesi moment çıkarım formülüydü. Bir "bug raporu" yayınlamadan önce bu fark edildi.
Vaka 1 ve 2, sitenin hatalarıydı. Bu vaka benim hatamdı. Üçü birlikte şunu gösteriyor: doğrulama süreci tek yönlü bir "kontrol listesi" değildir — doğrulama yönteminin kendisi de, bilinen bir referans durumla (burada: C'de moment sıfır olmalı fiziği) test edilmelidir. Bir çapraz kontrol uyuşmazlığı bulduğunuzda, ilk refleks "kaynak yanlış" değil, "hangi taraf yanlış olabilir?" olmalıdır.