পাইথনে ত্রিকোণমিতিক ফাংশন গণনা করুন (sin, cos, tan, arcsin, arccos, arctan)

ব্যবসায়

গণিত ব্যবহার করে, গাণিতিক ফাংশনের জন্য পাইথনের স্ট্যান্ডার্ড মডিউল, আপনি ত্রিকোণমিতিক ফাংশন (sin, cos, tan) এবং বিপরীত ত্রিকোণমিতিক ফাংশন (আর্কসিন, আর্কোস, আর্কটান) গণনা করতে পারেন।

নিম্নলিখিত বিষয়বস্তু নমুনা কোড সহ ব্যাখ্যা করা হয়েছে.

  • পাই (3.1415926..):math.pi
  • কোণ রূপান্তর (রেডিয়ান, ডিগ্রি):math.degrees(),math.radians()
  • সাইন, ইনভার্স সাইন:math.sin(),math.asin()
  • কোসাইন, বিপরীত কোসাইন:math.cos(),math.acos()
  • স্পর্শক, বিপরীত স্পর্শক:math.tan(),math.atan(),math.atan2()
  • নীচে পার্থক্য:math.atan(),math.atan2()

পাই (3.1415926..):math.pi

গণিত মডিউলে একটি ধ্রুবক হিসাবে পাই প্রদান করা হয়। এটি নিম্নরূপ প্রকাশ করা হয়।
math.pi

import math

print(math.pi)
# 3.141592653589793

কোণ রূপান্তর (রেডিয়ান, ডিগ্রি):math.degrees(),math.radians()

গণিত মডিউলে ত্রিকোণমিতিক এবং বিপরীত ত্রিকোণমিতিক ফাংশনগুলি কোণের একক হিসাবে রেডিয়ান ব্যবহার করে।

রেডিয়ান (আর্ক ডিগ্রি পদ্ধতি) এবং ডিগ্রি (ডিগ্রি পদ্ধতি) এর মধ্যে রূপান্তর করতে math.degrees() এবং math.radians() ব্যবহার করুন।

Math.degrees() রেডিয়ান থেকে ডিগ্রীতে রূপান্তরিত হয় এবং math.radians() ডিগ্রী থেকে রেডিয়ানে রূপান্তরিত হয়।

print(math.degrees(math.pi))
# 180.0

print(math.radians(180))
# 3.141592653589793

সাইন, ইনভার্স সাইন:math.sin(),math.asin()

সাইন (পাপ) খুঁজে বের করার ফাংশনটি হল math.sin() এবং ইনভার্স সাইন (আর্কসিন) খুঁজে বের করার ফাংশনটি হল math.asin()।

এখানে 30 ডিগ্রির সাইন খুঁজে বের করার একটি উদাহরণ দেওয়া হল, math.radians() ব্যবহার করে ডিগ্রীকে রেডিয়ানে রূপান্তর করুন।

sin30 = math.sin(math.radians(30))
print(sin30)
# 0.49999999999999994

30 ডিগ্রির সাইন হল 0.5, কিন্তু একটি ত্রুটি রয়েছে কারণ পাই, একটি অমূলদ সংখ্যা, সঠিকভাবে গণনা করা যায় না।

আপনি যদি সঠিক সংখ্যায় রাউন্ড করতে চান তাহলে রাউন্ড() ফাংশন বা ফরম্যাট() পদ্ধতি বা ফরম্যাট() ফাংশন ব্যবহার করুন।

লক্ষ্য করুন যে round() এর রিটার্ন মান একটি সংখ্যা (int বা float), কিন্তু ফরম্যাট() এর রিটার্ন মান একটি স্ট্রিং। আপনি যদি পরবর্তী গণনার জন্য এটি ব্যবহার করতে চান তবে রাউন্ড() ব্যবহার করুন।

print(round(sin30, 3))
print(type(round(sin30, 3)))
# 0.5
# <class 'float'>

print('{:.3}'.format(sin30))
print(type('{:.3}'.format(sin30)))
# 0.5
# <class 'str'>

print(format(sin30, '.3'))
print(type(format(sin30, '.3')))
# 0.5
# <class 'str'>

রাউন্ড() ফাংশন তার দ্বিতীয় আর্গুমেন্ট হিসাবে দশমিক স্থানের সংখ্যা নির্দিষ্ট করে। মনে রাখবেন যে এটি কঠোরভাবে বৃত্তাকার নয়। বিস্তারিত জানার জন্য নিম্নলিখিত নিবন্ধ দেখুন.

ফরম্যাট() পদ্ধতি এবং ফরম্যাট() ফাংশন ফরম্যাটিং স্পেসিফিকেশন স্ট্রিং-এ দশমিক স্থানের সংখ্যা নির্দিষ্ট করে। বিস্তারিত জানার জন্য নিম্নলিখিত নিবন্ধ দেখুন.

আপনি যদি তুলনা করতে চান তবে আপনি math.isclose() ব্যবহার করতে পারেন।

print(math.isclose(sin30, 0.5))
# True

একইভাবে, এখানে 0.5 এর বিপরীত সাইন খুঁজে বের করার একটি উদাহরণ। math.asin() রেডিয়ান প্রদান করে, যা math.degrees() দিয়ে ডিগ্রিতে রূপান্তরিত হয়।

asin05 = math.degrees(math.asin(0.5))
print(asin05)
# 29.999999999999996

print(round(asin05, 3))
# 30.0

কোসাইন, বিপরীত কোসাইন:math.cos(),math.acos()

কোসাইন (cos) খুঁজে বের করার ফাংশন হল math.cos(), এবং ইনভার্স কোসাইন (আর্ক কোসাইন, arccos) খুঁজে বের করার ফাংশন হল math.acos()।

এখানে 60 ডিগ্রির কোসাইন এবং 0.5 এর বিপরীত কোসাইন খুঁজে বের করার একটি উদাহরণ রয়েছে।

print(math.cos(math.radians(60)))
# 0.5000000000000001

print(math.degrees(math.acos(0.5)))
# 59.99999999999999

আপনি যদি উপযুক্ত অঙ্কে রাউন্ড করতে চান, আপনি সাইনের মতো রাউন্ড() বা ফরম্যাট() ব্যবহার করতে পারেন।

স্পর্শক, বিপরীত স্পর্শক:math.tan(),math.atan(),math.atan2()

স্পর্শক (ট্যান) খুঁজে বের করার ফাংশনটি হল math.tan(), এবং বিপরীত স্পর্শক (আর্কটান) খুঁজে বের করার ফাংশনটি হল math.atan() বা math.atan2()।
Math.atan2() পরে বর্ণনা করা হয়েছে।

45 ডিগ্রির স্পর্শক এবং 1 ডিগ্রির বিপরীত স্পর্শক খুঁজে বের করার একটি উদাহরণ নীচে দেখানো হয়েছে।

print(math.tan(math.radians(45)))
# 0.9999999999999999

print(math.degrees(math.atan(1)))
# 45.0

math.atan() এবং math.atan2() এর মধ্যে পার্থক্য

math.atan() এবং math.atan2() উভয়ই ফাংশন যা বিপরীত স্পর্শক প্রদান করে, কিন্তু তারা আর্গুমেন্টের সংখ্যা এবং রিটার্ন মানের পরিসরে ভিন্ন।

math.atan(x) এর একটি যুক্তি আছে এবং রেডিয়ানে arctan(x) প্রদান করে। রিটার্ন মান হবে -pi \ 2 এবং pi \ 2 (-90 থেকে 90 ডিগ্রি) এর মধ্যে।

print(math.degrees(math.atan(0)))
# 0.0

print(math.degrees(math.atan(1)))
# 45.0

print(math.degrees(math.atan(-1)))
# -45.0

print(math.degrees(math.atan(math.inf)))
# 90.0

print(math.degrees(math.atan(-math.inf)))
# -90.0

উপরের উদাহরণে, math.inf অসীম প্রতিনিধিত্ব করে।

math.atan2(y, x) এর দুটি আর্গুমেন্ট আছে এবং রেডিয়ানে arctan(y \ x) প্রদান করে। এই কোণটি হল সেই কোণ (পতন) যা উৎপত্তি থেকে স্থানাঙ্ক (x, y) পর্যন্ত ভেক্টরটি মেরু স্থানাঙ্ক সমতলে x অক্ষের ধনাত্মক দিক দিয়ে তৈরি করে এবং প্রত্যাবর্তিত মান হল -pi এবং pi (-180) এর মধ্যে 180 ডিগ্রি পর্যন্ত)।

যেহেতু দ্বিতীয় এবং তৃতীয় চতুর্ভুজের কোণগুলিও সঠিকভাবে পাওয়া যায়, তাই মেরু স্থানাঙ্ক সমতল বিবেচনা করার সময় math.atan2() math.atan() এর চেয়ে বেশি উপযুক্ত।

উল্লেখ্য, আর্গুমেন্টের ক্রম y, x, x, y নয়।

print(math.degrees(math.atan2(0, 1)))
# 0.0

print(math.degrees(math.atan2(1, 1)))
# 45.0

print(math.degrees(math.atan2(1, 0)))
# 90.0

print(math.degrees(math.atan2(1, -1)))
# 135.0

print(math.degrees(math.atan2(0, -1)))
# 180.0

print(math.degrees(math.atan2(-1, -1)))
# -135.0

print(math.degrees(math.atan2(-1, 0)))
# -90.0

print(math.degrees(math.atan2(-1, 1)))
# -45.0

উপরের উদাহরণের মতো, x-অক্ষের নেতিবাচক দিক (y শূন্য এবং x ঋণাত্মক) হল pi (180 ডিগ্রি), কিন্তু যখন y ঋণাত্মক শূন্য হয়, তখন এটি -pi (-180 ডিগ্রি)। আপনি যদি চিহ্নটি কঠোরভাবে পরিচালনা করতে চান তবে সতর্ক থাকুন।

print(math.degrees(math.atan2(-0.0, -1)))
# -180.0

নেতিবাচক শূন্য নিম্নলিখিত ক্রিয়াকলাপগুলির ফলাফল

print(-1 / math.inf)
# -0.0

print(-1.0 * 0.0)
# -0.0

পূর্ণসংখ্যাকে ঋণাত্মক শূন্য হিসাবে গণ্য করা হয় না।

print(-0.0)
# -0.0

print(-0)
# 0

এমনকি যখন x এবং y উভয়ই শূন্য হয়, ফলাফলটি চিহ্নের উপর নির্ভর করে।

print(math.degrees(math.atan2(0.0, 0.0)))
# 0.0

print(math.degrees(math.atan2(-0.0, 0.0)))
# -0.0

print(math.degrees(math.atan2(-0.0, -0.0)))
# -180.0

print(math.degrees(math.atan2(0.0, -0.0)))
# 180.0

অন্যান্য উদাহরণ রয়েছে যেখানে নেতিবাচক শূন্যের উপর নির্ভর করে ফলাফলের চিহ্ন পরিবর্তিত হয়, যেমন math.atan2() পাশাপাশি math.sin(), math.asin(), math.tan(), এবং math.atan() .

print(math.sin(0.0))
# 0.0

print(math.sin(-0.0))
# -0.0

print(math.asin(0.0))
# 0.0

print(math.asin(-0.0))
# -0.0

print(math.tan(0.0))
# 0.0

print(math.tan(-0.0))
# -0.0

print(math.atan(0.0))
# 0.0

print(math.atan(-0.0))
# -0.0

print(math.atan2(0.0, 1.0))
# 0.0

print(math.atan2(-0.0, 1.0))
# -0.0

মনে রাখবেন যে এখন পর্যন্ত উদাহরণ হল CPython এ প্রোগ্রাম চালানোর ফলাফল। মনে রাখবেন যে অন্যান্য বাস্তবায়ন বা পরিবেশ নেতিবাচক শূন্য ভিন্নভাবে পরিচালনা করতে পারে।