عدد مختلط

عدد مختلط

دشوار

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

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

پیاده‌سازی اعداد مختلط در بخش Base جولیا را می‌توانید اینجا ببینید: https://github.com/JuliaLang/julia/blob/master/base/complex.jl.


امتیاز A

می‌توانید با خارج کردن خط زیر از حالت کامنت، روی تمرین‌های امتیازی مربوط به محاسبات میان اعداد حقیقی و اعداد مختلط کار کنید: # enable_realcomplex_tests = true در فایل اسکلت complex-numbers.jl یا در runtests.jl

امتیاز B

می‌توانید با خارج کردن خط زیر از حالت کامنت، روی تمرین‌های امتیازی میان اعداد حقیقی و اعداد مختلط کار کنید: # enable_syntaxsugar_tests = true در فایل اسکلت complex-numbers.jl یا در runtests.jl سپس، jm را مشابه im پیاده‌سازی کنید تا 1 + 1jm == ComplexNumber(1, 1) برقرار باشد.


منبع

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

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

در Exercism ثبت‌نام کنید تا Julia را همراه با 35 مفهوم128 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.