چگالی با اصل ارشمیدس — وقتی تفریقِ دو عدد همه‌چیز را خراب می‌کند

این از کجا آمده

داستانِ وانِ حمام و فریادِ eureka را همه شنیده‌اند، ولی ویترویوس آن را دو قرن بعد از مرگِ ارشمیدس نوشت و در نسخهٔ او ارشمیدس حجمِ تاج را با سرریزِ آب می‌سنجد. گالیله در ۱۵۸۶، در اولین رسالهٔ عمرش که اسمش La Bilancetta («ترازوی کوچک») بود، نوشت که این روش نمی‌تواند درست باشد: سرریزِ آب آن‌قدر کم‌دقت است که تقلبِ زرگر را لو نمی‌دهد. پیشنهادِ خودش این بود که جسم را داخلِ آب وزن کنیم — و همان روشی است که امروز هم استفاده می‌شود. گالیله در نوزده‌سالگی فهمیده بود چیزی که این صفحه دربارهٔ آن است: دقتِ جواب را نه ابزار، که شکلِ فرمول تعیین می‌کند.

پس‌زمینهٔ نظری

جسمی به حجمِ V و چگالیِ ρ را روی ترازو می‌گذاری: عدد ma = ρV است. بعد همان جسم را با نخ داخلِ آب آویزان می‌کنی. آب به اندازهٔ وزنِ آبِ جابه‌جاشده به بالا هلش می‌دهد، پس ترازو mw = ρV − ρwV را نشان می‌دهد. اختلافِ این دو دقیقاً جرمِ آبِ جابه‌جاشده است: ma − mw = ρwV.

حجم را تقسیم می‌کنیم و می‌رود: ρ = ρw · ma / (ma − mw). زیباست — چگالی را بدونِ اینکه حجم را اندازه بگیری به دست می‌آوری، و برای جسمِ بدشکل که حجمش اصلاً قابلِ محاسبه نیست، این تنها راه است.

ولی به مخرج نگاه کن. آن یک تفریق است. اگر جسم چگال و کوچک باشد، ma و mw هر دو بزرگ‌اند و اختلافشان کوچک — و خطای ترازو که روی دو عددِ بزرگ ناچیز بود، روی آن اختلافِ کوچک درصدِ بزرگی می‌شود. ترازو عوض نشده، دستِ تو هم نلرزیده؛ فقط فرمول خطا را بزرگ کرده. این پدیده اسم دارد: حذفِ فاجعه‌بار (catastrophic cancellation).

۱. چیدمان

یک ترازوی سه‌بازویی داری که تا ۰٫۱ گرم می‌خواند، یک بشر آب، یک دماسنج، و یک سینی با پنج نمونه به نام‌های A تا E. جنسشان به تو گفته نشده — فقط می‌بینی که اندازه‌هایشان خیلی فرق دارد.

هر نمونه را می‌توانی روی کفهٔ ترازو وزن کنی، یا با نخ داخلِ آب آویزان کنی و دوباره وزن کنی. هر پنج نمونه در دسترسِ تو هستند و می‌توانی هر تعداد بار که خواستی وزن کنی — انتخابِ اینکه جوابِ نهایی را از کدام نمونه بدهی، با خودت است.

نمونه‌ها به نسبتِ حجمِ واقعی‌شان کشیده شده‌اند.

—
هنوز چیزی وزن نشده
یک نمونه انتخاب کن و در هوا وزنش کن.

نخ خودش وزن و شناوریِ ناچیزی دارد که از آن صرف‌نظر شده؛ هر چیزِ دیگری که ببینی واقعی است.

۲. جدول خوانش‌ها

۳. محاسبه

برای هر نمونه، میانگینِ خوانش‌های هوا و میانگینِ خوانش‌های آب گرفته می‌شود و ρ = ρw · ma/(ma − mw) حساب می‌شود. ستونِ آخر چیزی است که باید بهش نگاه کنی: خطای پیش‌بینی‌شدهٔ همان جواب، که مستقیم از پخشِ خطای ترازو در همین فرمول درمی‌آید.

ترازو برای همهٔ سطرها دقیقاً یکی است. اگر ستونِ خطا بینِ نمونه‌ها ده‌ها برابر فرق کرد، علتش ابزار نیست — علتش این است که مخرجِ کسر برای بعضی نمونه‌ها تفریقِ دو عددِ نزدیک است و برای بعضی نیست.

چگالیِ آبی که در محاسبه استفاده شد:—
دمای خواندهٔ آب:—
بهترین نمونه (کم‌ترین خطای پیش‌بینی‌شده):—
جرمِ آبِ جابه‌جاشده در همان نمونه:—
بدترین نمونه‌ای که اندازه گرفتی:—
نسبتِ خطای بدترین به بهترین:—
بهترین جوابِ تو برای چگالی: —

۴. تحلیل با Python

داده‌های تو در trials_data هستند: یک دیکشنری با rho_w (چگالیِ آبی که استفاده کردی)، sigma (خطای یک خوانشِ ترازو بر حسب گرم) و rows. هر سطر sid («A» تا «E»)، kind («air» یا «water») و g (خوانشِ ترازو) دارد.

بخشِ ۳ خطا را با فرمولِ استانداردِ پخشِ خطا حساب کرد و جواب را به شکلِ ρ ± σ نوشت. این نوشتن یک فرضِ پنهان دارد: که توزیعِ جوابِ تو متقارن است. کدِ آماده این فرض را امتحان می‌کند — دویست هزار بار آزمایش را با همان خطای ترازو شبیه‌سازی می‌کند و می‌بیند جواب‌ها واقعاً کجا می‌افتند. وقتی مخرج یک تفریقِ نامطمئن باشد، دُمِ راستِ توزیع به‌شدت درازتر از دُمِ چپ می‌شود و ±σ دیگر حرفِ درستی نیست. نمودارِ دوم هم نشان می‌دهد خطا با جرمِ آبِ جابه‌جاشده چطور بالا می‌رود.

Pyodide هنوز لود نشده
خروجی پایتون اینجا می‌آید

۵. افشای مقدار واقعی

وقتی روی یک جواب ایستادی، این را بزن.