مسیرها
/
C++
C++
/
تمرین‌ها
/
عدد مختلط
عدد مختلط

عدد مختلط

متوسط

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

یک عدد مختلط به شکل 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 (پایه‌ی لگاریتم طبیعی) به یک عدد مختلط

منبع

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

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

در Exercism ثبت‌نام کنید تا C++ را همراه با 19 مفهوم100 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.