কম্পিউটার

জটিল সংখ্যার জন্য পাইথন প্রোগ্রাম


একটি ধনাত্মক সংখ্যার দুটি প্রকৃত মূল সবসময় থাকে। উদাহরণস্বরূপ, যদি x2 হয় 25, x হয় ±5। যাইহোক, x2 হলে -25 বাস্তব রুট নেই। যেকোনো ঋণাত্মক সংখ্যার বর্গমূল হল তার পরম মানের বর্গমূল যা একটি কাল্পনিক একক j =√−1 দ্বারা গুণিত হয়।

তাই √−25 =√25 𝑋−1 =√25 × √−1 =5j

একটি জটিল সংখ্যা বাস্তব এবং কাল্পনিক উপাদান নিয়ে গঠিত। এটি x+yj হিসাবে উপস্থাপিত হয়। x এবং y উভয়ই বাস্তব সংখ্যা। Y কাল্পনিক একক দ্বারা গুণ করলে জটিল সংখ্যার একটি কাল্পনিক অংশ হয়।

উদাহরণ:3+2j, 10-5.5J, 9.55+2.3j, 5.11e-6+4j

পাইথনের একটি অন্তর্নির্মিত জটিল ডেটা টাইপ রয়েছে। নিম্নরূপ আক্ষরিক উপস্থাপনা দ্বারা একটি জটিল সংখ্যা বস্তু তৈরি করা যেতে পারে -

>>> x = 2+3j
>>> type(x)

জটিল সংখ্যা বস্তুর দুটি বৈশিষ্ট্য আছে বাস্তব (বাস্তব উপাদান প্রদান করে) এবং imag (কাল্পনিক একক j বাদ দিয়ে কাল্পনিক উপাদান প্রদান করে)

>>> x.real
2.0
>>> x.imag
3.0

এটিতে কনজুগেট()ও আছে পদ্ধতি একটি জটিল সংখ্যার সংযোজনে বিপরীত চিহ্ন সহ একই বাস্তব উপাদান এবং কাল্পনিক উপাদান রয়েছে। তাই 2+3j এর সংযোজন হল 2-3j

>>> x.conjugate()
(2-3j)

পাইথনে বিল্ট-ইন কমপ্লেক্স() ফাংশন রয়েছে যা একটি জটিল সংখ্যা বস্তু প্রদান করে। ফাংশনটি দুটি পরামিতি নেয়, একটি বাস্তব এবং কাল্পনিক উপাদানের জন্য। এগুলি যেকোন সাংখ্যিক প্রকারের হতে পারে (int, float বা জটিল)

>>> complex(9,5)
(9+5j)
>>> complex(-6, -2.5)
(-6-2.5j)
>>> complex(1.5j, 2.5j)
(-2.5+1.5j)

যদি শুধুমাত্র একটি প্যারামিটার দেওয়া হয় তবে এটি বাস্তব উপাদান হিসাবে বিবেচিত হয়, কাল্পনিক উপাদানটি শূন্য বলে ধরে নেওয়া হয়।

>>> complex(15)
(15+0j)

ফাংশনটি আর্গুমেন্ট হিসাবে একটি স্ট্রিংও নিতে পারে যদি এতে সাংখ্যিক উপস্থাপনা থাকে।

>>> complex('51')
(51+0j)
>>> complex('1.5')
(1.5+0j)

জটিল সংখ্যার যোগ ও বিয়োগ পূর্ণসংখ্যা বা ভাসমান সংখ্যার অনুরূপ। বাস্তব এবং কাল্পনিক অংশ আলাদাভাবে যোগ/বিয়োগ করা হয়।

>>> a = 6+4j
>>> b = 3+6j
>>> a+b
(9+10j)
>>> a-b
(3-2j)

গুণের জন্য জটিল সংখ্যাটিকে দ্বিপদ হিসাবে বিবেচনা করুন এবং প্রথম সংখ্যার প্রতিটি পদকে দ্বিতীয় সংখ্যার প্রতিটি পদ দ্বারা গুণ করুন।

a = 6+4j
b = 3+2j
c = a*b
c = (6+4j)*(3+2j)
c = (18+12j+12j+8*-1)
c = 10+24j

পাইথন কনসোলে ফলাফল এটি যাচাই করে −

>>> a = 6+4j
>>> b = 3+2j
>>> a*b
(10+24j)

জটিল সংখ্যার বিভাজন নিম্নরূপ −

করা হয়

দুটি সংখ্যা হতে দিন

a =2+4j

b =1-2j

এবং আমরা a/b গণনা করতে চাই।

হর এর সংযোজক প্রাপ্ত করুন যা 1+2j

লব এবং হরকে সংযোজিত দ্বারা গুণ করুন বিভাজনের ফলাফল পেতে হর এর

c = a/b
c = (2+4j)*(1+2j)/(1-2j)(1+2j)
c = (2+4j+4j+8*-1)/(1+2j-2j-4*-1)
c = (-6+8j)/5
c = -1.2+1.6j

পাইথন কনসোল সেশন অনুসরণ করে উপরের চিকিত্সা যাচাই করে।

>>> a = 2+4j
>>> b = 1-2j
>>> a/b
(-1.2+1.6j)

cmath মডিউল

পাইথনের স্ট্যান্ডার্ড লাইব্রেরি প্রক্রিয়া ফ্লোটিং পয়েন্ট সংখ্যার গণিত মডিউলে সংজ্ঞায়িত গাণিতিক ফাংশন। জটিল সংখ্যার জন্য, পাইথন লাইব্রেরিতে cmath মডিউল রয়েছে।

জটিল সংখ্যা z =x+yj একটি কার্টেসিয়ান উপস্থাপনা। এটি অভ্যন্তরীণভাবে তার মডুলাস r (যেমন বিল্ট-ইন abs() ফাংশন দ্বারা প্রত্যাবর্তিত হয়) এবং ফেজ কোণ Φ (ফাই হিসাবে উচ্চারিত) যা রেডিয়ানে ঘড়ির কাঁটার বিপরীত কোণ, x অক্ষ এবং লাইনের মধ্যে x এর সাথে মিলিত হওয়ার মধ্যবর্তীভাবে উপস্থাপন করা হয়। মূল নিম্নোক্ত চিত্রটি জটিল সংখ্যা −

-এর মেরু প্রতিনিধিত্বকে চিত্রিত করে

জটিল সংখ্যার জন্য পাইথন প্রোগ্রাম

cmath মডিউলের ফাংশনগুলি কার্টেসিয়ান উপস্থাপনাকে পোলার প্রতিনিধিত্বে রূপান্তর করতে দেয় এবং এর বিপরীতে।

পোলার() − এই ফাংশনটি জটিল সংখ্যার কার্টেসিয়ান স্বরলিপির মেরু উপস্থাপনা প্রদান করে। রিটার্ন মান হল একটি টিপল যা মডুলাস এবং ফেজ নিয়ে গঠিত।

>>> import cmath
>>> a = 2+4j
>>> cmath.polar(a)
(4.47213595499958, 1.1071487177940904)

লক্ষ্য করুন যে মডুলাস abs() ফাংশন

দ্বারা ফেরত দেওয়া হয়
>>> abs(a)
4.47213595499958

ফেজ() − এই ফাংশনটি x অক্ষ এবং সেগমেন্ট জয়েনিং a এর মধ্যে ঘড়ির কাঁটার বিপরীত কোণ প্রদান করে উৎপত্তি সহ। কোণটি রেডিয়ানে উপস্থাপিত হয় এবং এটি π এবং -π

এর মধ্যে
>>> cmath.phase(a)
1.1071487177940904
z = x+yj
Φ

rect() − এই ফাংশনটি পোলার আকারে অর্থাৎ মডুলাস এবং ফেজে প্রতিনিধিত্ব করা জটিল সংখ্যার কার্টেসিয়ান উপস্থাপনা প্রদান করে

>>> cmath.rect(4.47213595499958, 1.1071487177940904)
(2.0000000000000004+4j)

cmath মডিউলটিতে গণিত মডিউলে সংজ্ঞায়িত সমস্ত গাণিতিক ফাংশনের বিকল্প রয়েছে। নিচে ব্যাখ্যা করা হয়েছে −

হিসাবে ত্রিকোণমিতিক এবং লগারিদমিক ফাংশন আছে

cmath.sin() − এই ফাংশন রেডিয়ানে উপস্থাপিত ফেজ কোণের সাইন ত্রিকোণমিতিক অনুপাত প্রদান করে৷

>>> import cmath
>>> a = 2+4j
>>> p = cmath.phase(a)
>>> cmath.sin(p)
(0.8944271909999159+0j)

একইভাবে, অন্যান্য অনুপাতের জন্য ফাংশন cos(), tan(), asin(), acos() এবং atan() cmath মডিউলে সংজ্ঞায়িত করা হয়েছে।

cmath.exp() − math.exp(এর মতো), এই ফাংশনটি ex ফেরত দেয় যেখানে x একটি জটিল সংখ্যা এবং e হল 2.71828

>>> cmath.exp(a)
(-1.1312043837568135+2.4717266720048188j)

cmath.log10() − এই ফাংশনটি 10

হিসাবে ভিত্তি গ্রহণ করে জটিল সংখ্যার লগ মান গণনা করে
>>> a = 1+2j
>>> cmath.log10(a)
(0.3494850021680094+0.480828578784234j)

cmath.sqrt() − এই ফাংশনটি জটিল সংখ্যার বর্গমূল প্রদান করে।

>>> cmath.sqrt(a)
(1.272019649514069+0.7861513777574233j)

এই নিবন্ধে আমরা পাইথনের জটিল সংখ্যা ডেটা টাইপের গুরুত্বপূর্ণ বৈশিষ্ট্য এবং কীভাবে এটিতে গাণিতিক ক্রিয়াকলাপ করা যায় তা শিখেছি। আমরা cmath মডিউলে সংজ্ঞায়িত বিভিন্ন ফাংশনও অন্বেষণ করেছি।


  1. যৌগিক সুদের জন্য পাইথন প্রোগ্রাম

  2. সহজ আগ্রহের জন্য পাইথন প্রোগ্রাম

  3. নির্বাচন সাজানোর জন্য পাইথন প্রোগ্রাম

  4. দুইটির বেশি (বা অ্যারে) সংখ্যার GCD-এর জন্য পাইথন প্রোগ্রাম