GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing python.github.io — cmath --- توابع ریاضی برای اعداد مختلط
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
تبدیلها به مختصات قطبی و از مختصات قطبی |
|
فاز z را برمیگرداند |
|
بازگرداندن نمایش z در مختصات قطبی |
|
عدد مختلط z را با مختصات قطبی r و phi برمیگرداند |
|
توابع توانی و لگاریتمی |
|
e به توان z را برمیگرداند |
|
لگاریتم z را در مبنای base دادهشده برمیگرداند (بهطور پیشفرض e) |
|
لگاریتم z در مبنای ۱۰ را برمیگرداند |
|
ریشه دوم z را برمیگرداند |
|
توابع مثلثاتی |
|
آرککسینوس z را برمیگرداند |
|
برگرداندن سینوس معکوس z |
|
تانژانت معکوس z را برمیگرداند |
|
کسینوس z را برمیگرداند |
|
سینوس z را برمیگرداند |
|
تانژانت z را برمیگرداند |
|
توابع هذلولی |
|
بازگرداندن کسینوس هیپربولیک معکوس z |
|
سینوس هذلولی معکوس z را برمیگرداند |
|
تانژانت هیپربولیک معکوس z را برمیگرداند |
|
کسینوس هذلولی z را برمیگرداند |
|
سینوس هذلولی z را برمیگرداند |
|
تانژانت هیپربولیک z را برمیگرداند |
|
توابع طبقهبندی |
|
بررسی متناهی بودن همهی کامپوننتهای z |
|
بررسی کنید که آیا هیچیک از کامپوننتهای z بینهایت است یا خیر |
|
بررسی کنید که آیا یکی از کامپوننتهای z یک NaN است یا خیر |
|
بررسی کنید که آیا مقادیر a و b به یکدیگر نزدیک هستند |
|
ثابتها |
|
π = 3.141592... |
|
e = 2.718281... |
|
τ = 2π = 6.283185... |
|
بینهایت مثبت |
|
بینهایت موهومی خالص |
|
«عدد نامعتبر» (NaN) |
|
NaN موهومی خالص |
|
یک عدد مختلط در پایتون z بهصورت داخلی با استفاده از مختصات مستطیلی یا دکارتی ذخیره میشود. این عدد بهطور کامل توسط بخش حقیقی z.real و بخش موهومی z.imag آن تعیین میشود.
مختصات قطبی روشی جایگزین برای نمایش یک عدد مختلط ارائه میدهد. در مختصات قطبی، یک عدد مختلط z با اندازهی r و زاویهی فاز phi تعریف میشود. اندازهی r فاصلهی z تا مبدأ است، در حالی که فاز phi زاویهای در خلاف جهت عقربههای ساعت است که بر حسب رادیان، از محور x مثبت تا پارهخطی که مبدأ را به z متصل میکند، اندازهگیری میشود.
میتوان از توابع زیر برای تبدیل از مختصات مستطیلی ذاتی به مختصات قطبی و بالعکس استفاده کرد.
فاز z (که همچنین بهعنوان آرگومان z نیز شناخته میشود) را بهصورت یک شناور برمیگرداند. phase(z) معادل math.atan2(z.imag, z.real) است. نتیجه در بازهی [-π, π] قرار دارد و اسلایس شاخهی این عملیات در امتداد محور حقیقی منفی قرار دارد. علامت نتیجه همان علامت z.imag است، حتی زمانی که z.imag صفر باشد:
>>> phase(-1+0j) 3.141592653589793 >>> phase(-1-0j) -3.141592653589793
نکته
مدول (قدر مطلق) یک عدد مختلط z را میتوان با استفاده از تابع توکار abs() محاسبه کرد. برای این عملیات، تابع جداگانهای در ماژول cmath وجود ندارد.
بازگرداندن نمایش z در مختصات قطبی. یک جفت (r, phi) برمیگرداند که در آن r اندازهی z و phi فاز z است. polar(z) معادل (abs(z), phase(z)) است.
عدد مختلط z با مختصات قطبی r و phi را برمیگرداند. معادل complex(r * math.cos(phi), r * math.sin(phi)) است.
مقدار e به توان z را برمیگرداند، که e پایهی لگاریتم طبیعی است.
لگاریتم z را در base دادهشده برمیگرداند. اگر base مشخص نشده باشد، لگاریتم طبیعی z را برمیگرداند. یک اسلایس شاخه (branch cut) از ۰ در امتداد محور حقیقی منفی تا -∞ وجود دارد.
آرککسینوس z را برمیگرداند. دو اسلایس شاخه وجود دارد: یکی از ۱ به سمت راست در امتداد محور حقیقی تا ∞ ادامه دارد. دیگری از -۱ به سمت چپ در امتداد محور حقیقی تا -∞ ادامه دارد.
آرکتانژانت z را برمیگرداند. دو اسلایس شاخه وجود دارد: یکی از 1j در امتداد محور موهومی تا ∞j ادامه دارد. دیگری از -1j در امتداد محور موهومی تا -∞j ادامه دارد.
کسینوس z را برمیگرداند.
سینوس z را برمیگرداند.
تانژانت z را برمیگرداند.
کسینوس هیپربولیک معکوس z را برمیگرداند. یک اسلایس شاخه وجود دارد که از ۱ به سمت چپ در امتداد محور حقیقی تا -∞ ادامه دارد.
سینوس هذلولی معکوس z را برمیگرداند. دو اسلایس شاخه وجود دارد: یکی از 1j در امتداد محور موهومی تا ∞j کشیده شده است. دیگری از -1j در امتداد محور موهومی تا -∞j کشیده شده است.
تانژانت هیپربولیک معکوس z را بازمیگرداند. دو اسلایس شاخه وجود دارد: یکی از 1 در امتداد محور حقیقی تا ∞ ادامه دارد. دیگری از -1 در امتداد محور حقیقی تا -∞ ادامه دارد.
کسینوس هذلولی z را برمیگرداند.
سینوس هذلولی z را برمیگرداند.
تانژانت هذلولی z را برمیگرداند.
اگر هر دو بخش حقیقی و موهومی z متناهی باشند، True و در غیر این صورت False را برمیگرداند.
اضافه شده در نسخهی 3.2.
اگر بخش حقیقی یا موهومی z بینهایت باشد، True را برمیگرداند و در غیر این صورت False را برمیگرداند.
اگر بخش حقیقی یا موهومی z برابر با NaN باشد، True و در غیر این صورت False برمیگرداند.
اگر مقادیر a و b به یکدیگر نزدیک باشند، True و در غیر این صورت False برمیگرداند.
نزدیک بودن یا نبودن دو مقدار بر اساس تحملهای مطلق و نسبی دادهشده تعیین میشود. اگر هیچ خطایی رخ ندهد، نتیجه بهصورت زیر خواهد بود: abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol).
rel_tol مدارای نسبی است — این مقدار حداکثر اختلاف مجاز بین a و b، نسبت به قدر مطلق بزرگتر بین a و b است. برای مثال، برای تنظیم مدارای ۵٪، مقدار rel_tol=0.05 را ارسال کنید. مدارای پیشفرض 1e-09 است، که تضمین میکند دو مقدار تا حدود ۹ رقم اعشاری یکسان باشند. rel_tol باید غیرمنفی و کمتر از 1.0 باشد.
abs_tol تحمل مطلق است؛ پیشفرض آن 0.0 است و باید غیرمنفی باشد. هنگامی که x را با 0.0 مقایسه میکنید، isclose(x, 0) بهصورت abs(x) <= rel_tol * abs(x) محاسبه میشود، که برای هر x و rel_tol کمتر از 1.0، False است. بنابراین آرگومان abs_tol مثبت مناسبی به فراخوانی اضافه کنید.
مقادیر ویژهی IEEE 754 یعنی NaN، inf و -inf طبق قوانین IEEE مدیریت میشوند. بهطور مشخص، NaN نزدیک به هیچ مقدار دیگری، از جمله NaN، در نظر گرفته نمیشود. inf و -inf تنها به خودشان نزدیک در نظر گرفته میشوند.
اضافه شده در نسخهی 3.5.
همچنین ببینید
PEP 485 -- تابعی برای آزمون برابری تقریبی
ثابت ریاضی π، بهعنوان یک عدد اعشاری .
ثابت ریاضی e، بهعنوان یک float.
ثابت ریاضی τ، بهصورت یک عدد اعشاری.
اضافه شده در نسخهی 3.6.
بینهایت مثبت از نوع ممیز شناور. معادل float('inf').
اضافه شده در نسخهی 3.6.
عدد مختلط با بخش حقیقی صفر و بخش موهومی بینهایت مثبت. معادل complex(0.0, float('inf')).
اضافه شده در نسخهی 3.6.
یک مقدار ممیز شناور «نه یک عدد» (NaN). معادل float('nan'). همچنین math.nan را ببینید.
اضافه شده در نسخهی 3.6.
عدد مختلط با بخش حقیقی صفر و بخش موهومی NaN. معادل با complex(0.0, float('nan')).
اضافه شده در نسخهی 3.6.
توجه داشته باشید که انتخاب توابع مشابه، اما نه یکسان، با انتخاب توابع در ماژول math است. دلیل وجود دو ماژول این است که برخی کاربران علاقهای به اعداد مختلط ندارند، و شاید حتی ندانند این اعداد چه هستند. آنها ترجیح میدهند math.sqrt(-1) بهجای برگرداندن یک عدد مختلط، یک استثنا پرتاب کند. همچنین توجه داشته باشید که توابع تعریفشده در cmath همیشه یک عدد مختلط برمیگردانند، حتی اگر پاسخ بتواند بهصورت یک عدد حقیقی بیان شود (در این حالت عدد مختلط دارای بخش موهومی صفر است).
نکتهای دربارهی اسلایسهای شاخه (branch cuts): اینها منحنیهایی هستند که تابع دادهشده در امتداد آنها پیوسته نیست. آنها ویژگی ضروری بسیاری از توابع مختلط هستند. فرض بر این است که اگر نیاز به محاسبه با توابع مختلط دارید، دربارهی اسلایسهای شاخه آگاه خواهید بود. برای روشن شدن موضوع، تقریباً به هر کتابی (نه خیلی مقدماتی) دربارهی متغیرهای مختلط مراجعه کنید. برای اطلاع از انتخاب مناسب اسلایسهای شاخه برای اهداف عددی، یک مرجع خوب باید مورد زیر باشد:
همچنین ببینید
Kahan، W: برشهای شاخهای برای توابع ابتدایی مختلط؛ یا، هیاهوی بسیار بر سر بیت علامت هیچ. در Iserles، A. و Powell، M. (ویراستاران)، وضعیت کنونی تحلیل عددی. انتشارات Clarendon (۱۹۸۷)، صص. ۱۶۵--۲۱۱.