একটি জটিল সংখ্যা প্রকাশ করা হয় 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))
যেহেতু জটিল সংখ্যার জন্য বিল্ট-ইন সাপোর্ট ব্যবহার করা উচিত নয়, তাই নিচের ক্রিয়াগুলো বাস্তবায়ন করুন:
জটিল সংখ্যার Julia Base ইমপ্লিমেন্টেশন এখানে পাওয়া যাবে: https://github.com/JuliaLang/julia/blob/master/base/complex.jl.
বাস্তব সংখ্যা ও জটিল সংখ্যার মধ্যে পাটিগণিত সংক্রান্ত বোনাস অনুশীলনীগুলো করতে চাইলে স্টাব complex-numbers.jl-এ বা runtests.jl-এ নিচের লাইনটির কমেন্ট খুলে দিলেই হবে:
# enable_realcomplex_tests = true
বাস্তব সংখ্যা ও জটিল সংখ্যার মধ্যে বোনাস অনুশীলনীগুলো করতে চাইলে স্টাব complex-numbers.jl-এ বা runtests.jl-এ নিচের লাইনটির কমেন্ট খুলে দিলেই হবে:
# enable_syntaxsugar_tests = true
এরপর im-এর মতো করেই jm ইমপ্লিমেন্ট করুন, যাতে 1 + 1jm == ComplexNumber(1, 1) হয়।
Exercism-এ সাইন আপ করুন, Julia ট্র্যাকের 35টি কনসেপ্ট128টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।