عدد مختلط

عدد مختلط

متوسط

دستورالعمل‌ها

یک عدد مختلط به شکل z = a + b * i بیان می‌شود، که در آن:

  • a بخش حقیقی است (یک عدد حقیقی)،

  • b بخش موهومی است (آن هم یک عدد حقیقی) و

  • i یکه‌ی موهومی است که در رابطه‌ی i^2 = -1 صدق می‌کند.

عملیات روی اعداد مختلط

مزدوج

مزدوج عدد مختلط z = a + b * i به این صورت به دست می‌آید:

zc = a - b * i

قدر مطلق

قدر مطلق (یا مدول) عدد z به این صورت تعریف می‌شود:

|z| = sqrt(a^2 + b^2)

مربع قدر مطلق برابر است با حاصل‌ضرب z در مزدوجش zc:

|z|^2 = z * zc = a^2 + b^2

جمع

مجموع دو عدد مختلط z1 = a + b * i و z2 = c + d * i با جمع کردن بخش‌های حقیقی و موهومی آن‌ها به‌طور جداگانه محاسبه می‌شود:

z1 + z2 = (a + b * i) + (c + d * i)
        = (a + c) + (b + d) * i

تفریق

تفاضل دو عدد مختلط از تفریق بخش‌های متناظرشان به دست می‌آید:

z1 - z2 = (a + b * i) - (c + d * i)
        = (a - c) + (b - d) * i

ضرب

حاصل‌ضرب دو عدد مختلط به این صورت تعریف می‌شود:

z1 * z2 = (a + b * i) * (c + d * i)
        = (a * c - b * d) + (b * c + a * d) * i

معکوس

معکوس یک عدد مختلط غیرصفر به این صورت به دست می‌آید:

1 / z = 1 / (a + b * i)
      = a / (a^2 + b^2) - b / (a^2 + b^2) * i

تقسیم

تقسیم یک عدد مختلط بر عددی دیگر به این صورت است:

z1 / z2 = z1 * (1 / z2)
        = (a + b * i) / (c + d * i)
        = (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i

توان‌رسانی

رساندن e (پایه‌ی لگاریتم طبیعی) به توانی مختلط را می‌توان با فرمول اویلر بیان کرد:

e^(a + b * i) = e^a * e^(b * i)
              = e^a * (cos(b) + i * sin(b))

الزامات پیاده‌سازی

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

  • جمع دو عدد مختلط
  • تفریق دو عدد مختلط
  • ضرب دو عدد مختلط
  • تقسیم دو عدد مختلط
  • مزدوج یک عدد مختلط
  • قدر مطلق یک عدد مختلط
  • توان‌رسانی e (پایه‌ی لگاریتم طبیعی) به یک عدد مختلط

تغییرات مخصوص Elixir

در این تمرین، اعداد مختلط به صورت یک تاپل دوتایی نمایش داده می‌شوند که شامل بخش حقیقی و بخش موهومی است.

برای مثال، عدد حقیقی 1 برابر {1, 0} است، عدد موهومی i برابر {0, 1} است و عدد مختلط 4+3i برابر {4, 3} است.


منبع

Wikipediaاین لینک در پنجره یا تب جدیدی باز می‌شود.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Elixir Exercism

آماده‌اید عدد مختلط را شروع کنید؟

در Exercism ثبت‌نام کنید تا Elixir را همراه با 58 مفهوم168 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.