KonkurStudy
همه کارت‌ها

حساب ممیز شناور، شرطی‌بودن و پایداری عددی

گرد کردن هر عدد حقیقی را روی شبکه‌ای می‌نشاند که فاصلهٔ محلی‌اش یک واحد در آخرین رقم است، عدد شرطی دقیقاً همان ضریبی است که مسئله با آن این خطای اجتناب‌ناپذیر داده را در پاسخ تقویت می‌کند، و الگوریتم پایدارِ پسرو تنها قول می‌دهد که مسئله‌ای مجاور را به‌طور دقیق حل کرده است.

کارت مفهوم کنکور ارشد ریاضی

اهمیت
۰/۵

1. دستگاه ممیز شناور چیست

یک ماشین تنها مجموعه‌ای متناهی F=F(β,t,L,U)⊂R\mathbb{F}=\mathbb{F}(\beta,t,L,U)\subset\mathbb{R} از اعداد ماشینی را ذخیره می‌کند که به شکل نرمال‌شده نوشته می‌شوند:

x=± (0.d1d2⋯dt)β×βe=±(d1β+d2β2+⋯+dtβt)βe,d1≠0,L≤e≤U,x=\pm\,(0.d_1d_2\cdots d_t)_\beta\times\beta^{e}=\pm\left(\frac{d_1}{\beta}+\frac{d_2}{\beta^{2}}+\cdots+\frac{d_t}{\beta^{t}}\right)\beta^{e},\qquad d_1\neq 0,\quad L\le e\le U,

با پایهٔ β\beta، طول مانتیس tt و بازهٔ نما [L,U][L,U]. نرمال‌سازی (d1≠0d_1\neq0) نمایش را یکتا می‌کند. دو قرارداد رایج‌اند — شکل کسری بالا و شکل IEEE یعنی (d0.d1⋯dt−1)β×βE(d_0.d_1\cdots d_{t-1})_\beta\times\beta^{E} با e=E+1e=E+1 — و این دو تنها در یک انتقال نما با هم فرق دارند، هرگز در پاسخ.

کمیت شکل کسری (0.d1⋯dt)ββe(0.d_1\cdots d_t)_\beta\beta^{e} شکل IEEE (d0.d1⋯dt−1)ββE(d_0.d_1\cdots d_{t-1})_\beta\beta^{E}
فاصلهٔ محلی شبکه در xx β e−t\beta^{\,e-t} β E−t+1\beta^{\,E-t+1}
کوچک‌ترین عدد مثبت نرمال‌شده β L−1\beta^{\,L-1} β L\beta^{\,L}
بزرگ‌ترین عدد متناهی (1−β−t)βU(1-\beta^{-t})\beta^{U} (β−β1−t)βU(\beta-\beta^{1-t})\beta^{U}
تعداد اعداد نرمال‌شده 2(β−1)β t−1(U−L+1)+12(\beta-1)\beta^{\,t-1}(U-L+1)+1 همان

تصویر شبکه — تنها تصویری که باید به خاطر بسپارید. نما ee را ثابت کنید. وقتی مانتیس روی (β−1)βt−1(\beta-1)\beta^{t-1} مقدار مجاز خود می‌گردد، اعداد ماشینی واقع در [βe−1,βe)[\beta^{e-1},\beta^{e}) یک تصاعد حسابی می‌سازند که گام آن یک واحد در آخرین رقم مانتیس است:

ulp⁡(x)=β−t⋅βe=β e−t.\operatorname{ulp}(x)=\beta^{-t}\cdot\beta^{e}=\beta^{\,e-t}.

پس F\mathbb{F} به‌طور یکنواخت فاصله‌گذاری نشده است: هر بار که از یک توان β\beta عبور می‌کنید، گام در β\beta ضرب می‌شود. آنچه (تقریباً) ثابت می‌ماند فاصلهٔ نسبی است، ulp⁡(x)/∣x∣∈(β−t, β1−t]\operatorname{ulp}(x)/\lvert x\rvert\in(\beta^{-t},\,\beta^{1-t}]. بیرون از [βL−1,(1−β−t)βU][\beta^{L-1},(1-\beta^{-t})\beta^{U}] با زیرریزی / سرریز روبه‌رو می‌شوید (استاندارد IEEE انتهای پایین را با اعداد زیرنرمال ±(0.d1⋯dt)ββL\pm(0.d_1\cdots d_t)_\beta\beta^{L} ملایم می‌کند: با فاصله‌گذاری یکنواخت و دقتی که پیوسته کمتر می‌شود).

1a. فرمولی مستقل از قرارداد برای فاصله

چون دو قرارداد، ee و tt را هم‌زمان یک واحد جابه‌جا می‌کنند، بهتر است فاصله را به شکلی به یاد بسپاریم که به هیچ‌یک اشاره نکند. فرض کنید tt تعداد ارقام بامعنای واقعاً ذخیره‌شده باشد و xx در باینِد [βk,βk+1)[\beta^{k},\beta^{k+1}) قرار گیرد، یعنی k=⌊log⁡β∣x∣⌋k=\lfloor\log_\beta\lvert x\rvert\rfloor. آنگاه

 ulp⁡(x)=β 1−t⋅β ⌊log⁡β∣x∣⌋=εmach βk \boxed{\ \operatorname{ulp}(x)=\beta^{\,1-t}\cdot\beta^{\,\lfloor\log_\beta\lvert x\rvert\rfloor}=\varepsilon_{\text{mach}}\,\beta^{k}\ }

وارسی درستی: در x=1x=1 به β1−t=εmach\beta^{1-t}=\varepsilon_{\text{mach}} می‌رسیم، یعنی فاصلهٔ 11 تا عدد ماشینی بعد از آن — که دقیقاً تعریف اپسیلون ماشین است. هر چیز دیگری همین فرمول است که در βk\beta^{k} مقیاس شده باشد.

1b. شبکه در هر توان پایه نامتقارن است

در مرز دو باینِد فاصله جهش می‌کند، پس شکاف رو به بالا و شکاف رو به پایین یکسان نیستند:

موقعیت x>0x>0 فاصله تا عدد ماشینی بالاتر بعدی فاصله تا عدد ماشینی پایین‌تر بعدی
کاملاً درون یک باینِد، βk<x<βk+1\beta^{k}<x<\beta^{k+1} β k+1−t\beta^{\,k+1-t} β k+1−t\beta^{\,k+1-t} (همان)
دقیقاً در x=βkx=\beta^{k} β k+1−t\beta^{\,k+1-t} β k−t\beta^{\,k-t} — به ضریب β\beta کوچک‌تر

به‌طور مشخص با β=2\beta=2 و t=3t=3 بیت بامعنا، اعداد ماشینی پیرامون 8=238=2^{3} چنین‌اند:

…, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20,…\dots,\ 4,\ 5,\ 6,\ 7,\ \mathbf{8},\ 10,\ 12,\ 14,\ 16,\ 20,\dots

با فاصلهٔ 11 روی [4,8)[4,8) و فاصلهٔ 22 روی [8,16)[8,16). پرسشی که همسایهٔ بزرگ‌تر از یک توان پایه را می‌خواهد و پرسشی که همسایهٔ کوچک‌تر را می‌خواهد، پاسخ‌هایی دارند که دقیقاً به ضریب β\beta تفاوت می‌کنند — و هر دو عدد همیشه در میان چهار گزینه حاضرند.

1c. دستگاه چند عدد دارد

اندازهٔ F\mathbb{F} یک قاعدهٔ ضرب خالص است: انتخاب‌های مستقل را بشمارید، سپس تنها مقداری را که نرمال‌سازی نمی‌تواند بیان کند وصله بزنید.

مؤلفه تعداد انتخاب‌ها چرا
علامت 22 ++ و −-
رقم پیشرو d1d_1 β−1\beta-1 نرمال‌سازی d1=0d_1=0 را ممنوع می‌کند
ارقام باقی‌مانده d2,…,dtd_2,\dots,d_t β t−1\beta^{\,t-1} هرکدام آزادانه در {0,1,…,β−1}\{0,1,\dots,\beta-1\}
نما ee U−L+1U-L+1 شمارش شاملِ دو سر اعداد صحیح در [L,U][L,U]
عدد 00 +1+1 به d1=0d_1=0 نیاز دارد، پس با یک کد ویژه ذخیره می‌شود

 ∣F∣=2(β−1)β t−1(U−L+1)+1 \boxed{\ \lvert\mathbb{F}\rvert=2(\beta-1)\beta^{\,t-1}(U-L+1)+1\ }

خواندن ساختاری این تجزیه ارزش دارد: (β−1)βt−1(\beta-1)\beta^{t-1} تعداد مانتیس‌های مجاز است (هم‌ارز با تعداد اعداد ماشینی درون یک باینِد)، U−L+1U-L+1 تعداد باینِدها است، و ضریب پیشروی 22 همه‌چیز را نسبت به مبدأ آینه می‌کند. متمایز بودن خودبه‌خود برقرار است، زیرا نمایش‌های نرمال‌شده یکتایند.

عبارت‌بندی پرسش تعیین می‌کند کدام تکه‌ها را نگه دارید:

پرسش چه می‌خواهد فرمول
همهٔ اعداد قابل نمایش (حالت پیش‌فرض) 2(β−1)β t−1(U−L+1)+12(\beta-1)\beta^{\,t-1}(U-L+1)+1
فقط اعداد مثبت (β−1)β t−1(U−L+1)(\beta-1)\beta^{\,t-1}(U-L+1)
فقط اعداد ناصفر 2(β−1)β t−1(U−L+1)2(\beta-1)\beta^{\,t-1}(U-L+1)
دستگاهی که زیرنرمال‌ها را هم دارد 2[(β−1)β t−1(U−L+1)+β t−1−1]+12\big[(\beta-1)\beta^{\,t-1}(U-L+1)+\beta^{\,t-1}-1\big]+1

(شمارِ زیرنرمال‌ها یعنی β t−1−1\beta^{\,t-1}-1، تعداد مانتیس‌های 0.0d2⋯dt0.0d_2\cdots d_t است که همگی صفر نیستند و همه با همان تک‌نمای LL حمل می‌شوند.)

شمارش نما لغزش حسابی کلاسیک است: −4≤e≤4-4\le e\le 4 شامل 99 عدد صحیح است، نه 88، و L≤e≤UL\le e\le U شامل U−L+1U-L+1 است، نه U−LU-L. فراموش کردن +1+1 مربوط به صفر، یا ضریب 22 مربوط به علامت، دو گزینهٔ انحرافی دیگر را می‌سازد.

2. گرد کردن، قطع کردن و واحد گردکردن

نگاشت fl⁡:R→F\operatorname{fl}:\mathbb{R}\to\mathbb{F} یک عدد حقیقی را به یک عدد ماشینی می‌برد، یا با گرد کردن به نزدیک‌ترین نقطهٔ شبکه یا با قطع کردن (دور ریختن همهٔ ارقام پس از dtd_t). در هر دو حالت

fl⁡(x)=x(1+δ),∣δ∣≤u={12β1−t,round to nearest,β1−t,chopping (truncation).\operatorname{fl}(x)=x(1+\delta),\qquad \lvert\delta\rvert\le u=\begin{cases}\tfrac{1}{2}\beta^{1-t}, & \text{round to nearest},\\ \beta^{1-t}, & \text{chopping (truncation)}.\end{cases}

عدد uu واحد گردکردن است؛ و εmach=β1−t\varepsilon_{\text{mach}}=\beta^{1-t} اپسیلون ماشین است، یعنی فاصلهٔ 11 تا عدد ماشینی بعدی (در واقع 1=(0.10⋯0)β×β11=(0.10\cdots0)_\beta\times\beta^{1} در نمای e=1e=1 می‌نشیند، پس ulp آن β 1−t\beta^{\,1-t} است). به‌طور مطلق ∣fl⁡(x)−x∣≤12β e−t\lvert\operatorname{fl}(x)-x\rvert\le\tfrac12\beta^{\,e-t} (گرد کردن) و <β e−t<\beta^{\,e-t} (قطع کردن)؛ قطع کردن به سمت صفر اریب است و گرد کردن متقارن است. دقت مضاعف IEEE: β=2\beta=2، t=53t=53، εmach=2−52≈2.2×10−16\varepsilon_{\text{mach}}=2^{-52}\approx2.2\times10^{-16}.

شیوهٔ گرد کردن خطا را تغییر می‌دهد، نه شبکه را. قطع کردن، گرد کردن به نزدیک‌ترین، و گرد کردن به نزدیک‌ترینِ زوج همگی به همان مجموعهٔ F\mathbb{F} می‌نگارند، مجموعه‌ای که تنها با (β,t,L,U)(\beta,t,L,U) تعیین می‌شود. پس هر پرسشی دربارهٔ جای اعداد قابل نمایش — فاصله، عدد بعدی، عدد قبلی، تعدادشان — کاملاً نسبت به واژه‌های «گرد کردن / قطع کردن» بی‌اثر است؛ این واژه‌ها فقط بر اندازهٔ ∣fl⁡(x)−x∣\lvert\operatorname{fl}(x)-x\rvert اثر دارند.

2a. سه کمیت که همه «اپسیلون» نامیده می‌شوند — آن‌ها را جدا نگه دارید

کمیت گرد کردن به نزدیک‌ترین قطع کردن خاصیتِ چیست
اپسیلون ماشین εmach=ulp⁡(1)\varepsilon_{\text{mach}}=\operatorname{ulp}(1) β1−t\beta^{1-t} β1−t\beta^{1-t} شبکه — فاصلهٔ 11 تا عدد بعدی
واحد گردکردن uu، بیشترین خطای نسبی fl⁡\operatorname{fl} 12β1−t\tfrac12\beta^{1-t} β1−t\beta^{1-t} قاعدهٔ گرد کردن
کوچک‌ترین ε>0\varepsilon>0 با fl⁡(1+ε)>1\operatorname{fl}(1+\varepsilon)>1 12β1−t\tfrac12\beta^{1-t} β1−t\beta^{1-t} شبکه و قاعده با هم

چرا سطر آخر به ضریب 22 فرق می‌کند: در قطع کردن، هر عدد حقیقی در [1, 1+β1−t)[1,\,1+\beta^{1-t}) به 11 بریده می‌شود، پس چیزی کمتر از یک ulp کامل نمی‌تواند مقدار ذخیره‌شده را تکان دهد — از این رو β1−t\beta^{1-t}. در گرد کردن به نزدیک‌ترین، نقطهٔ میانی 1+12β1−t1+\tfrac12\beta^{1-t} همین حالا به بالا گرد می‌شود، پس نصف یک ulp کافی است (با قاعدهٔ تساوی‌به‌زوج، کمی بیش از نصف لازم است). بنابراین عبارت فارسی «روند عدد یک» در دستگاهی با قطع کردن، β1−t\beta^{1-t} را می‌خواهد و مقدار گرد کردن یعنی 12β1−t\tfrac12\beta^{1-t} دقیقاً همان گزینهٔ انحرافیِ ضریب 22 است که کنارش گذاشته‌اند.

مدل استاندارد حساب. برای ∗∈{+,−,×,÷}\ast\in\{+,-,\times,\div\} داریم fl⁡(x∗y)=(x∗y)(1+δ)\operatorname{fl}(x\ast y)=(x\ast y)(1+\delta) با ∣δ∣≤u\lvert\delta\rvert\le u: هر عمل مقدماتی روی داده‌ای اندکی آشفته دقیق است. همین یک سطر بذر تمام تحلیل خطای پسرو است.

لم اشترنبنز. اگر 12y≤x≤2y\tfrac12 y\le x\le 2y آنگاه x−yx-y در حساب ممیز شناور دقیقاً محاسبه می‌شود. درست بخوانیدش: حذف تفاضلی خطای گردکردن نمی‌سازد — بلکه خطایی را که xx و yy از پیش با خود داشتند آشکار می‌کند، چون نتیجه را کوچک می‌کند در حالی که خطای مطلق ثابت می‌ماند.

3. خطاها و «ارقام درست»

برای تقریب xˉ\bar x از x≠0x\neq0: خطای مطلق ∣xˉ−x∣\lvert\bar x-x\rvert، خطای نسبی ε=∣xˉ−x∣/∣x∣\varepsilon=\lvert\bar x-x\rvert/\lvert x\rvert. به‌طور دقیق، xˉ\bar x دارای kk رقم بامعنای درست در مبنای ده است هرگاه ε≤12×101−k\varepsilon\le\tfrac12\times10^{1-k}؛ فرهنگ واژگانِ به‌درد‌بخور در کنکور این است:

k reliable decimal digits  ⟺  ε≈10−k  ⟺  k≈−log⁡10ε.k\ \text{reliable decimal digits}\iff\varepsilon\approx10^{-k}\iff k\approx-\log_{10}\varepsilon .

چون ارقام همان −log⁡10-\log_{10} خطای نسبی‌اند، هر ضریب تقویت ضربی به یک تفریق از ارقام تبدیل می‌شود. تمام ترفند §5 همین است.

4. خطا چگونه در یک محاسبه منتشر می‌شود

انتشار مرتبهٔ اول (دیفرانسیلی) برای y=f(x1,…,xn)y=f(x_1,\dots,x_n):

Δy≈∑i∂f∂xi Δxi,Δyy≈∑ixif∂f∂xi⏟condition numbersΔxixi,\Delta y\approx\sum_{i}\frac{\partial f}{\partial x_i}\,\Delta x_i,\qquad \frac{\Delta y}{y}\approx\sum_i\underbrace{\frac{x_i}{f}\frac{\partial f}{\partial x_i}}_{\text{condition numbers}}\frac{\Delta x_i}{x_i},

و برای یک متغیر، عدد شرطی مسئلهٔ x↦f(x)x\mapsto f(x) برابر است با κf(x)=∣x f′(x)f(x)∣\kappa_f(x)=\left\lvert\dfrac{x\,f'(x)}{f(x)}\right\rvert.

عمل قاعدهٔ خطای نسبی شرطی‌بودن
xyxy و x/yx/y εxy≈εx+εy\varepsilon_{xy}\approx\varepsilon_x+\varepsilon_y، εx/y≈εx−εy\varepsilon_{x/y}\approx\varepsilon_x-\varepsilon_y κ=1\kappa=1: همیشه امن
xpx^{p}، از جمله x\sqrt{x} و 1/x1/x ε≈∣p∣ εx\varepsilon\approx\lvert p\rvert\,\varepsilon_x κ=∣p∣\kappa=\lvert p\rvert؛ مثلاً V=43πr3V=\tfrac43\pi r^{3} خطای نسبی rr را سه برابر می‌کند
x+yx+y با علامت‌های یکسان ε≤max⁡(εx,εy)\varepsilon\le\max(\varepsilon_x,\varepsilon_y) بی‌خطر
x−yx-y با x≈yx\approx y ε=xεx−yεyx−y\varepsilon=\dfrac{x\varepsilon_x-y\varepsilon_y}{x-y} κ=∣x∣+∣y∣∣x−y∣→∞\kappa=\dfrac{\lvert x\rvert+\lvert y\rvert}{\lvert x-y\rvert}\to\infty: حذف تفاضلی فاجعه‌بار
هر جمع، به‌صورت مطلق ∣Δ(x+y)∣≤∣Δx∣+∣Δy∣\lvert\Delta(x+y)\rvert\le\lvert\Delta x\rvert+\lvert\Delta y\rvert خطاهای مطلق همیشه جمع می‌شوند
exe^{x} ε≈∣x∣ εx\varepsilon\approx\lvert x\rvert\,\varepsilon_x κ=∣x∣\kappa=\lvert x\rvert: برای ∣x∣\lvert x\rvert بزرگ بد است
ln⁡x\ln x ε≈εx/∣ln⁡x∣\varepsilon\approx\varepsilon_x/\lvert\ln x\rvert κ=1/∣ln⁡x∣\kappa=1/\lvert\ln x\rvert: نزدیک x=1x=1 بد است

حذف تفاضلی تنها راهی است که یک فرمول به‌ظاهر بی‌آزار ارقام را نابود می‌کند، و درمانش بازنویسی عبارت است، نه بالا بردن دقت محاسبه:

x+1−x=1x+1+x,1−cos⁡x=2sin⁡2 ⁣x2,\sqrt{x+1}-\sqrt{x}=\frac{1}{\sqrt{x+1}+\sqrt{x}},\qquad 1-\cos x=2\sin^{2}\!\frac{x}{2},

و برای ax2+bx+cax^{2}+bx+c ریشهٔ با قدرمطلق بزرگ‌تر را از فرمول معمول بگیرید و دیگری را از x1x2=c/ax_1x_2=c/a به دست آورید.

انباشت در طول عمل‌های بسیار. جمع کردن nn عدد ماشینی به ترتیب، کران ∣s^−s∣≲(n−1)u∑i∣xi∣\lvert\hat s-s\rvert\lesssim (n-1)u\sum_i\lvert x_i\rvert را می‌دهد: خطای گردکردن (در بدترین حالت) به‌طور خطی با تعداد عمل‌ها رشد می‌کند، پس یک الگوریتم O(n3)O(n^{3}) بدترین حالت O(n3u)O(n^{3}u) دارد — که در عمل معمولاً O(n u)O(\sqrt{n}\,u) است، زیرا δi\delta_i ها مانند علامت‌های تصادفی مستقل رفتار می‌کنند. جمع کردن از کوچک‌ترین به بزرگ‌ترین، یا جمع جبرانی (کاهان)، بیشتر آن را از میان برمی‌دارد.

خطای برشی در برابر خطای گردکردن — بده‌بستان دوسویه. روش‌های گسسته‌سازی یک خطای روش دارند که با گام hh کوچک می‌شود و یک خطای گردکردن که با h→0h\to0 بزرگ می‌شود. برای تفاضل پیشرو f(x+h)−f(x)h\dfrac{f(x+h)-f(x)}{h}،

E(h) ≲ h2∣f′′∣⏟truncation+2u∣f∣h⏟roundoff,hopt∼u,Emin⁡∼u,E(h)\ \lesssim\ \underbrace{\tfrac{h}{2}\lvert f''\rvert}_{\text{truncation}}+\underbrace{\frac{2u\lvert f\rvert}{h}}_{\text{roundoff}},\qquad h_{\text{opt}}\sim\sqrt{u},\quad E_{\min}\sim\sqrt{u},

در حالی که تفاضل مرکزی hopt∼u1/3h_{\text{opt}}\sim u^{1/3} و Emin⁡∼u2/3E_{\min}\sim u^{2/3} می‌دهد. کوچک‌تر کردن پیوستهٔ hh سرانجام پاسخ را بدتر می‌کند — همان منحنی خطای V-شکل کلاسیک.

5. شرطی‌بودن دستگاه خطی Ax=bAx=b

برای AA ناتکین و یک نُرم ماتریسی القایی، عدد شرطی چنین است:

κ(A)=∥A∥ ∥A−1∥ ≥ ∥AA−1∥=1,κ(A)=∞ for singular A.\kappa(A)=\lVert A\rVert\,\lVert A^{-1}\rVert\ \ge\ \lVert AA^{-1}\rVert=1,\qquad \kappa(A)=\infty\ \text{for singular }A.

قضیهٔ اختلال. اگر AA ناتکین باشد، ∥A−1∥ ∥δA∥<1\lVert A^{-1}\rVert\,\lVert\delta A\rVert<1 و (A+δA)(x+δx)=b+δb(A+\delta A)(x+\delta x)=b+\delta b، آنگاه

∥δx∥∥x∥ ≤ κ(A)1−κ(A)∥δA∥∥A∥(∥δA∥∥A∥+∥δb∥∥b∥) ≈ κ(A)(∥δA∥∥A∥+∥δb∥∥b∥).\frac{\lVert\delta x\rVert}{\lVert x\rVert}\ \le\ \frac{\kappa(A)}{1-\kappa(A)\frac{\lVert\delta A\rVert}{\lVert A\rVert}}\left(\frac{\lVert\delta A\rVert}{\lVert A\rVert}+\frac{\lVert\delta b\rVert}{\lVert b\rVert}\right)\ \approx\ \kappa(A)\left(\frac{\lVert\delta A\rVert}{\lVert A\rVert}+\frac{\lVert\delta b\rVert}{\lVert b\rVert}\right).

این کران برای اختلال‌های مناسب حاصل می‌شود، پس κ(A)\kappa(A) دقیقاً ضریب تقویت در بدترین حالت، از خطای نسبی داده به خطای نسبی جواب است. (حالت خاص δA=0\delta A=0 می‌شود ∥δx∥/∥x∥≤κ(A)∥δb∥/∥b∥\lVert\delta x\rVert/\lVert x\rVert\le\kappa(A)\lVert\delta b\rVert/\lVert b\rVert.)

مانده در برابر خطا (تلهٔ صحیح/غلط محبوب). با r=b−Ax^r=b-A\hat{x}،

1κ(A) ∥r∥∥b∥ ≤ ∥x^−x∥∥x∥ ≤ κ(A) ∥r∥∥b∥.\frac{1}{\kappa(A)}\,\frac{\lVert r\rVert}{\lVert b\rVert}\ \le\ \frac{\lVert\hat{x}-x\rVert}{\lVert x\rVert}\ \le\ \kappa(A)\,\frac{\lVert r\rVert}{\lVert b\rVert}.

مانده‌ای بسیار کوچک وقتی κ\kappa بزرگ است گواه دقیق بودن جواب نیست — تنها گواه پایداری پسرو است.

قاعدهٔ سرانگشتی از دست رفتن ارقام. دو منبع خطای مستقل به حل‌کننده خوراک می‌دهند — دادهٔ (A,b)(A,b) که تا دقتی متناهی معلوم است، و حسابِ ماشین که تا uu دقیق است — و بدترینشان حاکم است:

digits(xˉ) ≈ min⁡{−log⁡10εdata⏟digits in the data, −log⁡10u⏟digits of the machine}  −  log⁡10κ(A).\text{digits}(\bar x)\ \approx\ \min\Big\{\underbrace{-\log_{10}\varepsilon_{\text{data}}}_{\text{digits in the data}},\ \underbrace{-\log_{10}u}_{\text{digits of the machine}}\Big\}\;-\;\log_{10}\kappa(A).

هم‌ارز، در یک خط حساب: εeff=max⁡{εdata,u}\varepsilon_{\text{eff}}=\max\{\varepsilon_{\text{data}},u\}، سپس ∥xˉ−x∥/∥x∥≲κ(A) εeff\lVert\bar x-x\rVert/\lVert x\rVert\lesssim\kappa(A)\,\varepsilon_{\text{eff}}، سپس −log⁡10-\log_{10} بگیرید. به بیان ساده: یک دستگاه بدوضع log⁡10κ(A)\log_{10}\kappa(A) رقم اعشاری از شما می‌گیرد، و هیچ الگوریتمی نمی‌تواند دقتی را که داده هرگز نداشته بازگرداند. این قاعده یک کران بالا برای دقت دست‌یافتنی است — صورت‌مسئله‌های کنکور دقیقاً به همین دلیل «حداکثر» می‌گویند.

نُرم‌هایی که باید بتوانید دستی حساب کنید.

نُرم مقدار راه رسیدن به κ\kappa
∥A∥1\lVert A\rVert_1 بیشینهٔ مجموع قدرمطلق ستون‌ها به A−1A^{-1} صریح نیاز دارد
∥A∥∞\lVert A\rVert_\infty بیشینهٔ مجموع قدرمطلق سطر‌ها به A−1A^{-1} صریح نیاز دارد
∥A∥2\lVert A\rVert_2 σmax⁡(A)=λmax⁡(ATA)\sigma_{\max}(A)=\sqrt{\lambda_{\max}(A^{\mathsf{T}}A)} κ2(A)=σmax⁡/σmin⁡\kappa_2(A)=\sigma_{\max}/\sigma_{\min}
∥A∥F\lVert A\rVert_F (∑i,jaij2)1/2=(∑iσi2)1/2\big(\sum_{i,j}a_{ij}^{2}\big)^{1/2}=\big(\sum_i\sigma_i^{2}\big)^{1/2} نُرم القایی نیست؛ ∥I∥F=n\lVert I\rVert_F=\sqrt{n}

برای ماتریس‌های 2×22\times2، A−1=1det⁡A(d−b−ca)A^{-1}=\dfrac{1}{\det A}\begin{pmatrix} d & -b\\ -c & a\end{pmatrix} — و کنکور هرگز بیش از این وارون‌گیری نمی‌خواهد. همچنین κ1(A)=κ∞(AT)\kappa_1(A)=\kappa_\infty(A^{\mathsf{T}})، و هر سه عدد شرطی تا ضرایبی از مرتبهٔ nn هم‌ارزند، پس «بزرگ» یعنی بزرگ در هر نُرم.

خواصی که ارزش حفظ کردن دارند.

  • κ(αA)=κ(A)\kappa(\alpha A)=\kappa(A): مقیاس کردن کل ماتریس هرگز کمکی نمی‌کند.
  • κ(A−1)=κ(A)\kappa(A^{-1})=\kappa(A) و κ(AB)≤κ(A)κ(B)\kappa(AB)\le\kappa(A)\kappa(B).
  • κ2(Q)=1\kappa_2(Q)=1 برای QQ متعامد — تبدیل‌های متعامد رایج‌ترین سرمایهٔ الگوریتم‌های پایدارند، و κ2(QAZ)=κ2(A)\kappa_2(QAZ)=\kappa_2(A) برای Q,ZQ,Z متعامد.
  • اگر AA متقارن (به‌طور کلی‌تر، نرمال) باشد، κ2(A)=∣λ∣max⁡/∣λ∣min⁡\kappa_2(A)=\lvert\lambda\rvert_{\max}/\lvert\lambda\rvert_{\min}. برای AA عمومی باید از مقادیر تکین استفاده کنید، نه مقادیر ویژه.
  • κ2(ATA)=κ2(A)2\kappa_2(A^{\mathsf{T}}A)=\kappa_2(A)^{2} — معادلات نرمال شرطی‌بودن را به توان دو می‌رسانند؛ کمترین مربعات را به‌جای آن با تجزیهٔ QR حل کنید.
  • معنای هندسی: min⁡{∥ΔA∥2/∥A∥2: A+ΔA singular}=1/κ2(A)\min\{\lVert\Delta A\rVert_2/\lVert A\rVert_2:\ A+\Delta A\ \text{singular}\}=1/\kappa_2(A)، پس «بدوضع» یعنی «نسبتاً نزدیک به تکین».
  • کوچک بودن ∣det⁡A∣\lvert\det A\rvert به معنای بدوضع بودن نیست (1100I2\tfrac{1}{100}I_2 det⁡=10−4\det=10^{-4} و κ=1\kappa=1 دارد)، و بزرگ بودنش هم به معنای خوش‌وضع بودن نیست. خانواده‌های بدوضع نامدار: ماتریس هیلبرت hij=1/(i+j−1)h_{ij}=1/(i+j-1) که κ2(Hn)\kappa_2(H_n) آن مانند e3.5ne^{3.5n} رشد می‌کند، و ماتریس‌های واندرموند روی گره‌های نزدیک به هم.

5a. خواندن κ2\kappa_2 مستقیماً از روی یک تجزیه

اگر A=USVTA=USV^{\mathsf{T}} با U,VU,V متعامد و S=diag⁡(s1,…,sn)S=\operatorname{diag}(s_1,\dots,s_n)، si>0s_i>0، آنگاه این یک SVD است (جابه‌جا کردن ستون‌ها مجموعهٔ قطری را تغییر نمی‌دهد): از ATA=VS2VTA^{\mathsf{T}}A=VS^{2}V^{\mathsf{T}} مقادیر ویژهٔ ATAA^{\mathsf{T}}A برابر si2s_i^{2} اند، پس σi(A)=si\sigma_i(A)=s_i و

κ2(A)=max⁡isimin⁡isi.\kappa_2(A)=\frac{\max_i s_i}{\min_i s_i}.

دلیل بی‌نیازی از هرگونه محاسبه این است که نُرم 22 نمی‌تواند UU یا VV را ببیند: ماتریس‌های متعامد طول اقلیدسی را حفظ می‌کنند، پس ∥A∥2=∥S∥2=σmax⁡\lVert A\rVert_2=\lVert S\rVert_2=\sigma_{\max}، و چون A−1=VS−1UTA^{-1}=VS^{-1}U^{\mathsf{T}} باز هم همان شکل را دارد، ∥A−1∥2=∥S−1∥2=1/σmin⁡\lVert A^{-1}\rVert_2=\lVert S^{-1}\rVert_2=1/\sigma_{\min}.

سه کمیت دیگر از همان فهرست خوانده می‌شوند و گزینه‌های انحرافی استانداردند: ∣det⁡A∣=∏isi\lvert\det A\rvert=\prod_i s_i، ∥A∥F=(∑isi2)1/2\lVert A\rVert_F=(\sum_i s_i^{2})^{1/2}، و λmax⁡(ATA)/λmin⁡(ATA)=κ2(A)2\lambda_{\max}(A^{\mathsf{T}}A)/\lambda_{\min}(A^{\mathsf{T}}A)=\kappa_2(A)^{2} — هرگز خودِ κ2\kappa_2. و چون همیشه κ2≥1\kappa_2\ge1، هر گزینهٔ کوچک‌تر از 11 را می‌توان در نگاه اول خط زد.

6. شرطی‌بودن (مسئله) در برابر پایداری (الگوریتم)

این‌ها دو چیز متفاوت‌اند و کنکور عاشق مخلوط کردنشان است.

  • شرطی‌بودن خاصیت مسئله است — خاصیت نگاشت داده ↦\mapsto جواب. کدنویسی بهتر آن را بهبود نمی‌دهد.
  • پایداری خاصیت الگوریتم است. یک الگوریتم پایدارِ پسرو است هرگاه y^\hat y محاسبه‌شده پاسخ دقیق برای دادهٔ اندکی آشفتهٔ x~\tilde x باشد، با ∥x~−x∥/∥x∥=O(u)\lVert\tilde x-x\rVert/\lVert x\rVert=O(u).
  • نامساوی اصلی که این دو را به هم گره می‌زند:

forward relative error⏟what you observe ≲ κ(problem)⏟conditioning×backward error⏟stability ≈ κ u.\underbrace{\text{forward relative error}}_{\text{what you observe}}\ \lesssim\ \underbrace{\kappa(\text{problem})}_{\text{conditioning}}\times\underbrace{\text{backward error}}_{\text{stability}}\ \approx\ \kappa\,u.

مسئلهٔ خوش‌وضع مسئلهٔ بدوضع
الگوریتم پایدار پاسخ دقیق نادقیق — مسئله مقصر است، نه کد
الگوریتم ناپایدار نادقیق — کد مقصر است ناامیدکننده

نمونه‌های شاخص: حذف گاوسی بدون محورگیری ناپایدار است (محوری بسیار کوچک ضریب رشد ρ\rho را منفجر می‌کند؛ محورگیری جزئی ضریب‌ها را با 11 کران‌دار می‌کند و در عمل آن را پایدار می‌سازد)؛ تجزیهٔ QR به روش هاوس‌هولدر و گیونز پایدارِ پسرو است؛ گرام–اشمیت کلاسیک تعامد را از دست می‌دهد (نسخهٔ اصلاح‌شده را به کار ببرید)؛ و بازیابی ریشه‌های چندجمله‌ای از روی ضرایب ذاتاً بدوضع است — برای ریشهٔ سادهٔ rr از pp، اختلال ضریبیِ δp\delta p آن را به اندازهٔ δr≈−δp(r)/p′(r)\delta r\approx-\delta p(r)/p'(r) جابه‌جا می‌کند، همان فاجعهٔ چندجمله‌ای ویلکینسون. همتای این مطلب برای مقادیر ویژه قضیهٔ باوئر–فایک است: برای A=XΛX−1A=X\Lambda X^{-1} قطری‌پذیر، هر مقدار ویژهٔ A+EA+E در فاصلهٔ κ2(X)∥E∥2\kappa_2(X)\lVert E\rVert_2 از طیف AA قرار می‌گیرد، پس شرطی‌بودن ماتریس بردارهای ویژه حاکم است (ماتریس‌های متقارن κ2(X)=1\kappa_2(X)=1 دارند: مقادیر ویژه‌شان کاملاً خوش‌وضع‌اند).

6a. یک حل‌کنندهٔ خطی واقعاً چه قولی می‌دهد (تحلیل پسروی ویلکینسون)

قضیه (ویلکینسون). فرض کنید xˉ\bar x از Ax=bAx=b با حذف گاوسی و محورگیری جزئی (سطری)، در حساب ممیز شناور با واحد گردکردن uu محاسبه شده باشد. آنگاه اختلالی مانند ΔA\Delta A وجود دارد با (A+ΔA) xˉ=b,∥ΔA∥∞∥A∥∞ ≤ c(n) ρn u,(A+\Delta A)\,\bar x=b,\qquad \frac{\lVert\Delta A\rVert_\infty}{\lVert A\rVert_\infty}\ \le\ c(n)\,\rho_n\,u, که در آن c(n)c(n) چندجمله‌ای با درجهٔ پایین برحسب nn است و ρn=max⁡i,j,k∣aij(k)∣max⁡i,j∣aij∣\rho_n=\dfrac{\max_{i,j,k}\lvert a^{(k)}_{ij}\rvert}{\max_{i,j}\lvert a_{ij}\rvert} ضریب رشد حذف است.

به بیان ساده: بردار محاسبه‌شده جواب دقیق یک دستگاه مجاور است. تمام تضمین همین است — دربارهٔ xˉ−x\bar x-x مطلقاً هیچ ادعایی نمی‌شود.

  • محورگیری جزئی هر ضریب را وادار می‌کند در ∣mik∣≤1\lvert m_{ik}\rvert\le1 صدق کند، از این رو ρn≤2 n−1\rho_n\le2^{\,n-1}؛ این کران تنها با ماتریس‌های ساختگی (نمونهٔ ویلکینسون) حاصل می‌شود و در عمل ρn\rho_n مانند O(n2/3)O(n^{2/3}) رفتار می‌کند. پس GEPP برای همهٔ مقاصد عملی پایدارِ پسرو است.
  • محورگیری کامل کران رشد به‌مراتب کوچک‌تری دارد اما O(n3)O(n^{3}) مقایسهٔ اضافی هزینه می‌برد؛ بدون هیچ محورگیری اصلاً کرانی وجود ندارد (محوری به اندازهٔ uu همه‌چیز را خراب می‌کند). ماتریس‌های متقارن معین مثبت و ماتریس‌های اکیداً قطری‌غالب به محورگیری نیاز ندارند: تجزیهٔ چولسکی به‌طور نامشروط پایدارِ پسرو است.

مانده به‌رایگان کوچک است — و این یک قضیه است، نه شانس. برای هر xˉ≠0\bar x\neq0 با ماندهٔ r=b−Axˉr=b-A\bar x، قرار دهید

ΔA=r xˉTxˉTxˉ⟹(A+ΔA)xˉ=Axˉ+r=b,∥ΔA∥2=∥r∥2∥xˉ∥2.\Delta A=\frac{r\,\bar x^{\mathsf{T}}}{\bar x^{\mathsf{T}}\bar x}\quad\Longrightarrow\quad (A+\Delta A)\bar x=A\bar x+r=b,\qquad \lVert\Delta A\rVert_2=\frac{\lVert r\rVert_2}{\lVert\bar x\rVert_2}.

قضیهٔ ریگال–گاش می‌گوید این اختلال رتبه‌یک بهینه است: کوچک‌ترین خطای پسروی نسبی xˉ\bar x دقیقاً برابر است با

η(xˉ)=min⁡{ε: (A+ΔA)xˉ=b, ∥ΔA∥≤ε∥A∥}=∥r∥∥A∥ ∥xˉ∥.\eta(\bar x)=\min\big\{\varepsilon:\ (A+\Delta A)\bar x=b,\ \lVert\Delta A\rVert\le\varepsilon\lVert A\rVert\big\}=\frac{\lVert r\rVert}{\lVert A\rVert\,\lVert\bar x\rVert}.

پس «پایدارِ پسرو» و «ماندهٔ نسبی کوچک» عیناً یک گزاره‌اند، و خطای پیشرو از x−xˉ=A−1rx-\bar x=A^{-1}r نتیجه می‌شود:

∥x−xˉ∥∥x∥ ≤ κ(A) ∥r∥∥A∥ ∥x∥ ≈ κ(A) η(xˉ) ≈ κ(A) c(n)ρnu.\frac{\lVert x-\bar x\rVert}{\lVert x\rVert}\ \le\ \kappa(A)\,\frac{\lVert r\rVert}{\lVert A\rVert\,\lVert x\rVert}\ \approx\ \kappa(A)\,\eta(\bar x)\ \approx\ \kappa(A)\,c(n)\rho_n u .

پرسش چهارگزینه‌ایِ مفهومی همیشه زیرمجموعه‌ای از این پنج ادعاست:

ادعا دربارهٔ xˉ\bar x تولیدشده با GEPP حکم
ماندهٔ نسبی ∥r∥/(∥A∥∥xˉ∥)\lVert r\rVert/(\lVert A\rVert\lVert\bar x\rVert) بسیار کوچک و از مرتبهٔ uu است درست، هرچه κ(A)\kappa(A) باشد
xˉ\bar x دقیقاً دستگاهی مانند Aˉx=bˉ\bar A x=\bar b را حل می‌کند که Aˉ\bar A نزدیک AA و bˉ\bar b نزدیک bb است درست — این تعریف پایداری پسرو است
xˉ\bar x حتی اگر AA بدوضع باشد دقیق است نادرست — دقت به قیمت ضریب κ(A)\kappa(A) تمام می‌شود
خطای پیشروی بزرگ، ماندهٔ بزرگ را ایجاب می‌کند نادرست — برای κ\kappa بزرگ این دو از هم جدا می‌شوند
باید انتظار ماندهٔ بزرگ داشت نادرست — محورگیری آن را بنا به ساخت کوچک می‌کند

وقتی خطای پیشرو اهمیت دارد، درمان‌ها این‌هاست: پالایش تکراری (مانده r=b−Axˉr=b-A\bar x را با دقت بالاتر بسازید، Ad=rAd=r را با همان عوامل LULU که دارید حل کنید و xˉ←xˉ+d\bar x\leftarrow\bar x+d بگذارید — تا وقتی κ(A)u<1\kappa(A)u<1 باشد دقت کامل را بازمی‌گرداند)، متعادل‌سازی/مقیاس‌بندی سطرها و ستون‌ها، و بازفرمول‌بندی مسئله به‌گونه‌ای که خودِ κ\kappa کاهش یابد (QR به‌جای معادلات نرمال).

7. مثال‌های کوچک حل‌شده

(الف) فاصله تا عدد قابل نمایش بعدی. بگیرید β=8\beta=8، t=3t=3، x=7x=7. نخست نرمال کنید: 7=(0.700)8×817=(0.700)_8\times8^{1}، پس 7∈F7\in\mathbb{F} با e=1e=1. آخرین رقم مانتیس را یک واحد بالا ببرید:

x+=(0.701)8×81=7+883=7+164,x+−x=β e−t=8 1−3=164.x^{+}=(0.701)_8\times8^{1}=7+\frac{8}{8^{3}}=7+\frac{1}{64},\qquad x^{+}-x=\beta^{\,e-t}=8^{\,1-3}=\frac{1}{64}.

دستور کار هرگز تغییر نمی‌کند: نرمال کن، ee را بخوان، پاسخ β e−t\beta^{\,e-t} است. توجه کنید که β−t=8−3\beta^{-t}=8^{-3} به‌تنهایی نادرست است — باید در βe\beta^{e} مقیاس شود — و اینکه گرد کردن یا قطع کردن هیچ نقشی ندارد.

(ب) κ\kappa و ارقامی که نابود می‌کند. برای A=(1111.0001)A=\begin{pmatrix}1 & 1\\ 1 & 1{.}0001\end{pmatrix} داریم det⁡A=10−4\det A=10^{-4} و A−1=(10001−10000−1000010000)A^{-1}=\begin{pmatrix}10001 & -10000\\ -10000 & 10000\end{pmatrix}، از این رو ∥A∥∞=2.0001\lVert A\rVert_\infty=2{.}0001، ∥A−1∥∞=20001\lVert A^{-1}\rVert_\infty=20001 و κ∞(A)≈4×104\kappa_\infty(A)\approx4\times10^{4}. با داده‌ای که تا 88 رقم درست است روی ماشینی با 1010 رقم،

digits(xˉ)≈min⁡{8,10}−log⁡10(4×104)≈8−4.6≈3,\text{digits}(\bar x)\approx\min\{8,10\}-\log_{10}(4\times10^{4})\approx8-4{.}6\approx3,

هرقدر هم که حل‌کننده خوب باشد. با اعداد گردی که کنکور می‌پسندد (κ=103\kappa=10^{3}، دادهٔ 88 رقمی، ماشین 1010 رقمی) همین دستور کار min⁡{8−3,  10−3}=5\min\{8-3,\;10-3\}=5 رقم قابل اعتماد می‌دهد — شاخهٔ داده برنده می‌شود، که دقیقاً همان نکتهٔ مورد آزمون است.

(ج) خواندن κ2\kappa_2 از روی یک تجزیه. اگر A=USVTA=USV^{\mathsf{T}} با U,VU,V متعامد و S=diag⁡(s1,…,sn)S=\operatorname{diag}(s_1,\dots,s_n)، آنگاه sis_i ها همان مقادیر تکین‌اند (عوامل متعامد در نُرم 22 تساوی‌سنج‌اند: ∥A∥2=∥S∥2\lVert A\rVert_2=\lVert S\rVert_2 و ∥A−1∥2=∥S−1∥2\lVert A^{-1}\rVert_2=\lVert S^{-1}\rVert_2)، پس

κ2(A)=max⁡i∣si∣min⁡i∣si∣.\kappa_2(A)=\frac{\max_i\lvert s_i\rvert}{\min_i\lvert s_i\rvert}.

وقتی sis_i ها با قاعده‌ای وابسته به اندیس داده می‌شوند (مثلاً si=is_i=i برای ii زوج و si=1/is_i=1/i برای ii فرد)، تمام تمرین یافتن عضو حدی هر خانواده است — مراقب قیدهای زوجیت و بازهٔ nn باشید، چون گزینه‌های انحرافی دقیقاً از همان‌جا ساخته می‌شوند.

(د) همان مسئله با یک قاعدهٔ یکنوا. فرض کنید Sii=iS_{ii}=\sqrt{i} برای i=1,…,ni=1,\dots,n. چون i↦ii\mapsto\sqrt{i} صعودی است، σmax⁡=n\sigma_{\max}=\sqrt{n} و σmin⁡=1=1\sigma_{\min}=\sqrt{1}=1، پس

κ2(A)=n1=n.\kappa_2(A)=\frac{\sqrt{n}}{1}=\sqrt{n}.

همسایه‌هایی را که گزینه‌ها پیشنهاد می‌کنند مقایسه کنید: ∏ii=n!=∣det⁡A∣\prod_i\sqrt{i}=\sqrt{n!}=\lvert\det A\rvert، (∑ii)1/2=n(n+1)/2=∥A∥F\big(\sum_i i\big)^{1/2}=\sqrt{n(n+1)/2}=\lVert A\rVert_F، و n=κ22=λmax⁡(ATA)/λmin⁡(ATA)n=\kappa_2^{2}=\lambda_{\max}(A^{\mathsf{T}}A)/\lambda_{\min}(A^{\mathsf{T}}A). تنها نسبت مقادیر تکین برابر κ2\kappa_2 است. (قاعدهٔ یکنوا مسئله را یک‌خطی می‌کند؛ قاعدهٔ نایکنوا آن را به جست‌وجوی دوخطی برای یافتن حدها تبدیل می‌کند — تنها تفاوت نسخهٔ آسان و متوسط این الگو همین است.)

تمام خانوادهٔ قاعده‌های توانی یک‌جا فرومی‌ریزد: اگر sii=i ps_{ii}=i^{\,p} با p>0p>0 باشد آنگاه σmax⁡=np\sigma_{\max}=n^{p}، σmin⁡=1\sigma_{\min}=1 و

κ2(A)=n p(sii=i⇒n,sii=i⇒n,sii=i2⇒n2),\kappa_2(A)=n^{\,p}\qquad\big(s_{ii}=\sqrt{i}\Rightarrow\sqrt{n},\quad s_{ii}=i\Rightarrow n,\quad s_{ii}=i^{2}\Rightarrow n^{2}\big),

و اگر p<0p<0 باشد فهرست صرفاً نزولی می‌شود و باز هم κ2=n∣p∣\kappa_2=n^{\lvert p\rvert} می‌دهد — هرگز مقداری کمتر از 11. دو گزینه از چهار گزینه همیشه توان‌های همسایه‌اند (nn در برابر n2n^{2})، یکی وارونِ n−pn^{-p} است که κ2≥1\kappa_2\ge1 فوراً آن را حذف می‌کند، و یکی همان 11 خشک‌وخالی است (واکنش غریزی «عوامل متعامدند، پس کاملاً خوش‌وضع است»، که تنها وقتی همهٔ sis_i ها برابر باشند درست است).

(ه) شکافی در یک توان پایه. پایهٔ β=2\beta=2 با t=3t=3 بیت بامعنا، در x=8x=8. اینجا 8=23=(1.00)2×238=2^{3}=(1.00)_2\times2^{3}، پس k=⌊log⁡28⌋=3k=\lfloor\log_2 8\rfloor=3 و

ulp⁡(8)=21−3⋅23=21=2,\operatorname{ulp}(8)=2^{1-3}\cdot2^{3}=2^{1}=2,

و عدد بعدی (1.01)2×23=(1+14)⋅8=10(1.01)_2\times2^{3}=(1+\tfrac14)\cdot8=10 است. در قرارداد کسری همین محاسبه چنین خوانده می‌شود: 8=(0.100)2×248=(0.100)_2\times2^{4}، e=4e=4، β e−t=24−3=2\beta^{\,e-t}=2^{4-3}=2 — یکسان، همان‌طور که قول داده شد. عدد قبلی یک باینِد پایین‌تر زندگی می‌کند، جایی که فاصله 21−3⋅22=12^{1-3}\cdot2^{2}=1 است، پس برابر 77 می‌شود: شکاف بالا دو برابر شکاف پایین است.

(و) ارقامی که از یک κ\kappa بزرگ جان به در می‌برند. دادهٔ دقیق تا 88 رقم اعشاری، ماشینی که 1616 رقم اعشاری حمل می‌کند، κ(A)=105\kappa(A)=10^{5}. آنگاه εeff=max⁡{10−8,10−16}=10−8\varepsilon_{\text{eff}}=\max\{10^{-8},10^{-16}\}=10^{-8}، خطای جواب ≲105⋅10−8=10−3\lesssim10^{5}\cdot10^{-8}=10^{-3} است، یعنی حدود 33 رقم قابل اعتماد =8−5=8-5. سه پاسخ نادرست خودشان را می‌نویسند: 1616 (طول کلمهٔ ماشین، با نادیده گرفتن شرطی‌بودن)، 88 (دقت داده، با نادیده گرفتن شرطی‌بودن)، و 16−5=1116-5=11 (اعمال قاعده روی دقت ماشین به‌جای دادهٔ درشت‌تر). همیشه بدترینِ این دو دقت را کاهش دهید.

همین الگو با دادهٔ 1010 رقمی، ماشین 1515 رقمی و κ(A)=104\kappa(A)=10^{4} به min⁡{10,15}−4=6\min\{10,15\}-4=6 می‌رسد، در حالی که 1515، 11=15−411=15-4 و یک 77 با خطای یک‌واحدی کنارش در فهرست گزینه‌ها نشسته‌اند. همان سه تله، با اعداد دیگر — شکل را بشناسید، نه ارقام را.

(ز) اندازه و تفکیک‌پذیری یک دستگاه کامل. فرض کنید F\mathbb{F} از اعداد ±(0.d1d2d3)5×5e\pm(0.d_1d_2d_3)_5\times5^{e} با −4≤e≤4-4\le e\le4 و با قطع کردن تشکیل شده باشد. آنگاه β=5\beta=5، t=3t=3، L=−4L=-4، U=4U=4، و

∣F∣=2⏟sign⋅4⏟d1≠0⋅52⏟d2,d3⋅9⏟−4≤e≤4+1⏟zero=1800+1=1801.\lvert\mathbb{F}\rvert=\underbrace{2}_{\text{sign}}\cdot\underbrace{4}_{d_1\neq0}\cdot\underbrace{5^{2}}_{d_2,d_3}\cdot\underbrace{9}_{-4\le e\le 4}+\underbrace{1}_{\text{zero}}=1800+1=1801 .

و برای تفکیک‌پذیری در 11: در مبنای 55 داریم 1=(0.100)5×511=(0.100)_5\times5^{1}، و عدد بعدی (0.101)5×51=1+5125=1.04(0.101)_5\times5^{1}=1+\tfrac{5}{125}=1{.}04 است، پس εmach=ulp⁡(1)=5 1−3=125=0.04\varepsilon_{\text{mach}}=\operatorname{ulp}(1)=5^{\,1-3}=\tfrac1{25}=0{.}04. با قطع کردن، هر عددی در [1, 1.04)[1,\,1{.}04) به 11 بریده می‌شود، پس واحد گردکردنِ عدد یک همان 0.040{.}04 کامل است؛ با گرد کردن نصف آن، یعنی 0.020{.}02، می‌شد. پاسخ‌های نادرست ساخته‌شده دقیقاً 16011601 (هشت نما به‌جای نُه) و 0.020{.}02 (واحد گرد کردن که در دستگاهی با قطع کردن نقل شده) هستند.

(ح) خواندن یک پرسش مفهومی دربارهٔ پایداری. با داشتن تنها «Ax=bAx=b که با حذف گاوسی و محورگیری جزئی حل شده، ماندهٔ r=b−Axˉr=b-A\bar x»، تنها گزارهٔ درست بدون فرض‌های اضافی این است که xˉ\bar x دقیقاً دستگاه آشفتهٔ Aˉx=bˉ\bar A x=\bar b را با Aˉ\bar A نزدیک AA و bˉ\bar b نزدیک bb حل می‌کند — یا هم‌ارز، اینکه ∥r∥\lVert r\rVert به‌طور نسبی کوچک است. هر گزینه‌ای که چیزی دربارهٔ خطای پیشرو ادعا کند (اینکه xˉ\bar x دقیق است، اینکه xˉ\bar x به‌شدت غلط است، اینکه مانده بزرگ است) یا نادرست است یا صرفاً ممکن، زیرا تصمیم‌گیری دربارهٔ آن به κ(A)\kappa(A) نیاز دارد که صورت‌مسئله هرگز نمی‌دهد. وقتی صورت‌مسئله κ\kappa را نمی‌دهد، پاسخ نمی‌تواند به آن وابسته باشد.

8. کنکور این مبحث را چگونه می‌آزماید

الگو داده‌ها حرکت
عدد ماشینی بعدی، ulp، فاصله β,t\beta,t، یک عدد، واژهٔ «قطع کردن» نرمال کن، پاسخ β e−t=β1−tβ⌊log⁡β∣x∣⌋\beta^{\,e-t}=\beta^{1-t}\beta^{\lfloor\log_\beta\lvert x\rvert\rfloor}
شکاف در یک توان پایه، یا شکاف زیرِ یک عدد β,t\beta,t، x=βkx=\beta^{k} بالا: β k+1−t\beta^{\,k+1-t}؛ پایین: β k−t\beta^{\,k-t} (به ضریب β\beta کوچک‌تر)
اپسیلون ماشین یا واحد گردکردن β,t\beta,t، شیوهٔ گرد کردن εmach=β1−t\varepsilon_{\text{mach}}=\beta^{1-t}؛ u=12εmachu=\tfrac12\varepsilon_{\text{mach}} یا εmach\varepsilon_{\text{mach}}
کوچک‌ترین، بزرگ‌ترین، و تعداد اعداد ماشینی β,t,L,U\beta,t,L,U جدول‌های §1 و §1c
شمارش و گردکردن در یک صورت‌مسئله β,t,L,U\beta,t,L,U به‌علاوهٔ شیوهٔ گرد کردن 2(β−1)β t−1(U−L+1)+12(\beta-1)\beta^{\,t-1}(U-L+1)+1، و β1−t\beta^{1-t} (قطع) یا 12β1−t\tfrac12\beta^{1-t} (گرد)
خطای نسبی یک کمیت مشتق‌شده εr\varepsilon_r و مثلاً V=43πr3V=\tfrac43\pi r^{3} در توان ضرب کن؛ برای حاصل‌ضرب‌ها خطاهای نسبی را جمع کن
ارقام قابل اعتماد یک جواب محاسبه‌شده ارقام داده، ارقام ماشین، κ(A)\kappa(A) کمینه را بگیر، سپس log⁡10κ\log_{10}\kappa را کم کن
κ\kappa یک ماتریس کوچک صریح AA و یک نُرم (11، ∞\infty یا 22) مجموع سطری/ستونی AA ضرب در همان برای A−1A^{-1}
κ2\kappa_2 از روی یک SVD یا یک طیف SS قطری (اغلب siis_{ii} با فرمولی برحسب ii)، یا مقادیر ویژهٔ یک AA متقارن σmax⁡/σmin⁡\sigma_{\max}/\sigma_{\min}؛ برای sii=ips_{ii}=i^{p} این برابر npn^{p} است
بهترین اندازهٔ گام / کمترین خطای کل یک فرمول تفاضلی و uu برشی را در برابر گردکردن متعادل کن: h∼uh\sim\sqrt{u} یا u1/3u^{1/3}
«چه انتظاری می‌توان داشت» پس از GEPP محورگیری، ماندهٔ rr، گاهی واژهٔ بدوضع ماندهٔ کوچک و حل دقیق یک دستگاه مجاور؛ دقت پیشرو تنها از راه κ\kappa
صحیح/غلط دربارهٔ پایداری ادعاهایی دربارهٔ محورگیری، مانده‌ها، معادلات نرمال شرطی‌بودن مسئله را از پایداری الگوریتم جدا کن

چهار گزینه تقریباً همیشه همان کمیت‌اند با یک گام خراب‌شده: حذف مقیاس نما (β−t\beta^{-t} به‌جای β e−t\beta^{\,e-t})، گرفتن شکاف از سمت اشتباه یک توان β\beta، اشتباه گرفتن شیوهٔ گرد کردن، شمارش بازهٔ نما با خطای یک واحد، کمینه نگرفتن دو شمارِ ارقام، یا جابه‌جا کردن σmin⁡\sigma_{\min} و σmax⁡\sigma_{\max} (یا ضرب کردن به‌جای تقسیم).

نکتهٔ کنکوری: هر پرسشی از این خانواده دقیقاً یکی از دو محاسبه است. پرسش شبکه‌ای می‌پرسد اعداد ماشینی کجایند و چند تا هستند — فاصله β e−t\beta^{\,e-t} است (تفکیک‌پذیری مانتیس یعنی β−t\beta^{-t} را بگیرید و آن را با نمای βe\beta^{e} عددی که روی آن ایستاده‌اید مقیاس کنید) و شمارش، حاصل‌ضرب انتخاب‌های مستقل به‌علاوهٔ یکی برای صفر است. پرسش تقویتی می‌پرسد چقدر دقت باقی می‌ماند — پاسخ (خطای نسبی ورودی) × κ\times\,\kappa است، که در زبان ارقام یک تفریق است: log⁡10κ\log_{10}\kappa رقم از دست می‌رود. پیش از دست زدن به یک عدد، تصمیم بگیرید در کدام‌یک از این دو هستید.

تلهٔ رایج: شش خطای نزدیک‌به‌درست، گزینه‌های نادرست را می‌سازند. (۱) «قطع کردن» کرانِ خطا را عوض می‌کند (β1−t\beta^{1-t} به‌جای 12β1−t\tfrac12\beta^{1-t}) اما هرگز فاصلهٔ F\mathbb{F} را تغییر نمی‌دهد — این واژه در پرسش فاصله طعمه است و در پرسش واحد گردکردن تعیین‌کننده. (۲) شبکه نسبت به توان پایه متقارن نیست: در x=βkx=\beta^{k} گام بالا β\beta برابر گام پایین است، پس «نزدیک‌ترین عدد قابل نمایش بزرگ‌تر از xx» و «… کوچک‌تر از xx» پاسخ‌های متفاوتی دارند و هر دو در فهرست گزینه‌ها نشسته‌اند. (۳) در شمارش F\mathbb{F}، بازهٔ L≤e≤UL\le e\le U شامل U−L+1U-L+1 نماست (پس −4≤e≤4-4\le e\le4 عدد 99 می‌دهد نه 88)، علامت ضریب 22 می‌افزاید، و صفر را باید دستی اضافه کرد چون نرمال‌شدنی نیست. (۴) حمل 1616 رقم، 1616 رقم را درست نمی‌کند: دقت xˉ\bar x با دقت داده سقف می‌خورد، پس کمینهٔ دو شمار ارقام را پیش از کم کردن log⁡10κ\log_{10}\kappa بگیرید — استفاده از دقت ماشین وقتی داده درشت‌تر است، محبوب‌ترین تله است. (۵) κ2(A)=σmax⁡/σmin⁡\kappa_2(A)=\sigma_{\max}/\sigma_{\min} با σi(A)=λi(ATA)\sigma_i(A)=\sqrt{\lambda_i(A^{\mathsf{T}}A)}؛ حاصل‌ضرب σi\sigma_i ها برابر ∣det⁡A∣\lvert\det A\rvert است، مجموع مربعاتشان ∥A∥F2\lVert A\rVert_F^{2} است، و نسبت مقادیر ویژهٔ ATAA^{\mathsf{T}}A برابر κ22\kappa_2^{2} است — در حالی که ∣λmax⁡/λmin⁡∣\lvert\lambda_{\max}/\lambda_{\min}\rvert خودِ AA تنها وقتی AA متقارن (نرمال) باشد مجاز است. (۶) ماندهٔ کوچک به معنای پاسخ دقیق نیست: یک حل‌کنندهٔ پایدارِ پسرو تنها گواهی می‌دهد که مسئله‌ای مجاور را دقیق حل کرده، و تبدیل آن به دقت پیشرو همیشه به قیمت ضریب κ(A)\kappa(A) تمام می‌شود.

فرمول‌های کلیدی

Spacing of the floating-point grid (ulp)
ulp⁡(x)=β e−t=β 1−t β⌊log⁡β∣x∣⌋forx=±(0.d1⋯dt)β×βe, d1≠0\operatorname{ulp}(x)=\beta^{\,e-t}=\beta^{\,1-t}\,\beta^{\lfloor\log_\beta\lvert x\rvert\rfloor}\quad\text{for}\quad x=\pm(0.d_1\cdots d_t)_\beta\times\beta^{e},\ d_1\neq0

Distance from a machine number to its successor: the mantissa resolution beta^(-t) scaled by the exponent beta^e; independent of rounding vs chopping, and a factor beta smaller on the lower side of a power of beta.

Rounding model, unit roundoff and machine epsilon
fl⁡(x)=x(1+δ),∣δ∣≤u,u=12β1−t (rounding),u=β1−t (chopping),εmach=ulp⁡(1)=β1−t\operatorname{fl}(x)=x(1+\delta),\quad\lvert\delta\rvert\le u,\quad u=\tfrac{1}{2}\beta^{1-t}\ (\text{rounding}),\quad u=\beta^{1-t}\ (\text{chopping}),\quad \varepsilon_{\text{mach}}=\operatorname{ulp}(1)=\beta^{1-t}

Every stored value, and every elementary operation, is exact on data perturbed by at most the unit roundoff; the chopping unit is exactly twice the round-to-nearest unit, while the grid spacing at 1 is beta^(1-t) either way.

Cardinality of a normalized floating-point system
∣F(β,t,L,U)∣=2(β−1)β t−1(U−L+1)+1\lvert\mathbb{F}(\beta,t,L,U)\rvert=2(\beta-1)\beta^{\,t-1}(U-L+1)+1

Sign times admissible mantissas times the inclusive number of exponents U-L+1, plus one for zero, which is not representable in normalized form.

Condition number, digit loss and backward stability
κ(A)=∥A∥ ∥A−1∥,κ2(A)=σmax⁡(A)σmin⁡(A),∥xˉ−x∥∥x∥≲κ(A) ∥r∥∥A∥ ∥x∥,digits(xˉ)≈min⁡{digits(data), −log⁡10u}−log⁡10κ(A)\kappa(A)=\lVert A\rVert\,\lVert A^{-1}\rVert,\quad \kappa_2(A)=\frac{\sigma_{\max}(A)}{\sigma_{\min}(A)},\quad \frac{\lVert\bar x-x\rVert}{\lVert x\rVert}\lesssim\kappa(A)\,\frac{\lVert r\rVert}{\lVert A\rVert\,\lVert x\rVert},\quad \text{digits}(\bar x)\approx\min\{\text{digits(data)},\,-\log_{10}u\}-\log_{10}\kappa(A)

The condition number is the worst-case amplification of relative data (or backward) error into relative solution error; in decimal digits that amplification becomes a subtraction, and a small residual alone certifies only backward stability.

#floating-point#machine-epsilon#condition-number#backward-stability#error-propagation#significant-digits

کارت‌های مرتبط

سوالات تمرینی · 8/10

همهٔ 10 سؤال →