محاسبه تابع نمایی با ماشین حساب معمولی

مدیران انجمن: parse, javad123javad

ارسال پست
نمایه کاربر
assarzadeh

نام: امیر عصارزاده

عضویت : جمعه ۱۳۹۳/۱۰/۱۲ - ۲۱:۱۹


پست: 156

سپاس: 87

جنسیت:

تماس:

محاسبه تابع نمایی با ماشین حساب معمولی

پست توسط assarzadeh »

فرض کنید یک ماشین حساب معمولی (دارای چهار عمل اصلی و جذر) دارید و می‌خواهید ریشه سوم، چهارم، پنجم یا به طور کلی ریشه $n$ام یک عدد را محاسبه کنید. یا مثلاً می‌خواهید حاصل عبارتی مثل $6^\sqrt7$ را به دست بیاورید. چطور این کار را انجام می‌دهید؟
در این جستار می‌خواهم به معرفی روشی بپردازم که با آن می‌توان کلیه توان‌های حقیقی هر عدد مثبتی را فقط با استفاده از یک ماشین حساب معمولی محاسبه کرد؛ البته تا جایی که دقت ماشین حساب اجازه دهد! برای این کار از سیستم دودویی استفاده و قسمت اعشاری توان را به مبنای $2$ تبدیل می‌کنیم. ما معمولاً اعداد را در سیستم دهدهی (مبنای $10$) نمایش می‌دهیم. مانند زیر:
$$3417.625=3×10^3+4×10^2+1×10^1+7×10^0+6×10^{-1}+2×10^{-2}+5×10^{-3}$$البته منظور از «$10$» بالا همان مقدار ده است که در سیستم دهدهی به صورت $10$ (بخوانید: یک صفر) نمایش داده می‌شود. مبنای نمایش یک عدد می‌تواند هر عدد صحیح بزرگتر از $1$ باشد و ارقام عدد می‌تواند هر عدد صحیح از $0$ تا یکی کمتر از مبنا باشد. پس ارقام نمایش در مبنای ده عبارتند از $0$ تا $9$ و ارقام نمایش در مبنای دو فقط $0$ و $1$ هستند. به عنوان مثال عدد $1011.101$ در مبنای دو را که به صورت ${(1011.101)}_2$ نمایش می‌دهند، برابر است با:
$${(1011.101)}_2=1×2^3+0×2^2+1×2^1+1×2^0+1×2^{-1}+0×2^{-2}+1×2^{-3}=11\tfrac58=11.625$$کاری که باید بکنیم این است که قسمت اعشاری توان را در سیستم دودویی نمایش دهیم. مثلاً اگر بخواهیم قسمت اعشاری عدد بالا یعنی $A=0.625$ را به صورت دودویی نمایش دهیم، باید ابتدا آن را در $2$ ضرب کنیم و حاصل را با $a_1$ نشان دهیم. سپس جزء صحیح حاصل را به عنوان اولین رقم بعد از ممیز قرار داده و آن را $d_1$ بنامیم:
$a_1=A×2=1.25⟹⌊a_1⌋=d_1=1$
در مرحله بعد حاصل $a_1-d_1$ را $2$ ضرب می‌کنیم و آن را با $a_2$ نمایش می‌دهیم. سپس جزء صحیح حاصل را به عنوان رقم دوم بعد از ممیز قرار می‌دهیم و آن را با $d_2$ نمایش می‌دهیم:
$a_2=(a_1-d_1)×2=0.5⟹⌊a_2⌋=d_2=0$
با تکرار این عمل برای رقم سوم مقدار زیر را به دست می‌آوریم:
$a_3=(a_2-d_2)×2=1⟹⌊a_3⌋=d_3=1$
و به این ترتیب این عمل را می‌توانیم تا هر تعداد که خواستیم تکرار کنیم. به طور کلی به ازای هر $n∈\boldsymbol N$ مقدار رقم $n$ام که آن را با $d_n$ نشان می‌دهیم، از رابطه بازگشتی زیر به دست می‌آید:
$d_n=⌊a_n⌋~~~~~~;~~~~~~a_n=2(a_{n-1}-d_{n-1})~~~~;~~~~d_0=0,~a_0=A~~;~~0<A<1$
بنابراین نمایش عدد $A$ در سیستم دودویی از کنار هم قرار دادن ارقام پس از ممیز به ترتیب زیر خواهد بود:
$A={(0.d_1d_2d_3⋯)}_2$
که به ازای $A=0.625$ داریم $A={(0.101)}_2$ . در اینجا نمایش عدد به همین سه رقم ختم می‌شود؛ چرا که مقدار $a_4$ برابر صفر می‌شود و بنابراین از رقم چهارم به بعد همگی صفر هستند. اما در سیستم دودویی فقط اعدادی دارای نمایش مختوم هستند که اولاً گویا باشند و ثانیاً مخرج کسر ساده شده معادل آنها توانی طبیعی از $2$ باشد. که این مورد کم پیش می‌آید و بنابراین اعداد اعشاری معمولاً وقتی به سیستم دودویی منتقل می‌شوند شامل بی‌نهایت رقم هستند.

با مقدمه فوق می‌توانیم به اصل مطلب بپردازیم. فرض کنید می‌خواهیم حاصل $6^\sqrt7$ را به دست بیاوریم. چون $⌊\sqrt7⌋=2$ بنابراین:
$6^\sqrt7=6^2×6^{\sqrt7-2}=36×6^{\sqrt7-2}=36×6^{0.645751⋯}$
حالا باید نمایش توان اعشاری اخیر یعنی $\sqrt7-2$ را در سیستم دودویی بیابیم. طبق محاسبات فوق، نمایش این عدد تا ده رقم بعد از ممیز به صورت زیر است:
$$\sqrt7-2={(0.1010010101⋯)}_2=2^{-1}+2^{-3}+2^{-6}+2^{-8}+2^{-10}+~⋯$$هدف از یافتن نمایش دودویی توان اعشاری، پیدا کردن توان‌های منفی‌ای از $2$ است که مجموعشان برابر با توان اعشاری مورد نظر یا تقریبی از آن باشد. چرا که اِعمال چنین توان‌هایی با جذرگیری متوالی از پایه به شکل زیر انجام پذیر است:
$x^{(2^{-n})}=\sqrt[2^n]x=\underbrace{\sqrt{\sqrt{⋯\sqrt x}}}_{\boldsymbol n~times}~~~~~~;~~~~~~n∈\boldsymbol N$
نتیجه اخیر با استفاده از قاعده کلی $x^{ab}={(x^a)}^b$ به دست آمده و $n$ تعداد رادیکال‌ها را نشان می‌دهد. از آنجا که $2^{10}=1024≈10^3$ پس $2^{-10}≈10^{-3}$ و لذا یافتن ده رقم اول بعد از ممیز در نمایش دودویی یک عدد منجر به دست‌یابی به تقریبی از عدد می‌شود که با مقدار دقیق آن کمتر از یک‌هزارم اختلاف دارد. حال به کمک قاعده کلی $x^{a+b}=x^ax^b$ می‌توانیم حاصل عبارت $6^\sqrt7$ را به شرح زیر به دست بیاوریم:
$\boldsymbol{6^\sqrt7=6^2×6^{\sqrt7-2}=36×\sqrt6×\sqrt[2^3]6×\sqrt[2^6]6×\sqrt[2^8]6×\sqrt[2^{10}]6×⋯=114.497153⋯}$

محاسبات فوق به راحتی و بدون کمک گرفتن از حافظه ماشین حساب قابل انجامند. تا اینجا در مورد توان‌های حقیقی مثبت بحث شد. اما برای توان‌های حقیقی منفی می‌توانیم سه کار را انجام دهیم:
‌ ‌ 1- به جای توان منفی، از توان مثبت استفاده و نتیجه نهایی را معکوس کنیم (استفاده از رابطه $x^{-a}=\frac1{x^a}$).
‌ ‌ 2- توان را قرینه و پایه را معکوس کنیم (استفاده از رابطه $x^{-a}={(\frac1x)}^a$).
‌ ‌ 3- جزء صحیح توان را به آن اضافه و کم کنیم (استفاده از رابطه $x^{-a}=x^{s-s-a}=x^{s}x^{-s-a}$ که $s=⌊-a⌋$).

اگر شما دوستان راه بهتری برای محاسبه تابع نمایی دارید، لطفاً به اشتراک بگذارید.

ارسال پست