Python میں مثلثی افعال کی گنتی کریں (sin، cos، tan، arcsin، arccos، arctan)

کاروبار

ریاضی کے افعال کے لیے Python کے معیاری ماڈیول کا استعمال کرتے ہوئے، آپ مثلثی افعال (sin، cos، tan) اور الٹا مثلثی افعال (arcsin، arccos، arctan) کی گنتی کر سکتے ہیں۔

مندرجہ ذیل مواد کو نمونے کے کوڈز کے ساتھ یہاں بیان کیا گیا ہے۔

  • Pi (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()

Pi (3.1415926..):math.pi

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() ہے اور inverse sine (arcsin) کو تلاش کرنے کا فنکشن math.asin() ہے۔

ڈگری کو ریڈین میں تبدیل کرنے کے لیے math.radians() کا استعمال کرتے ہوئے 30 ڈگری کی سائن تلاش کرنے کی ایک مثال یہ ہے۔

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

30 ڈگری کا سائن 0.5 ہے، لیکن ایک خامی ہے کیونکہ pi، ایک غیر معقول نمبر، درست طریقے سے شمار نہیں کیا جا سکتا۔

اگر آپ ہندسوں کی مناسب تعداد میں گول کرنا چاہتے ہیں تو راؤنڈ() فنکشن یا فارمیٹ() طریقہ یا فارمیٹ() فنکشن استعمال کریں۔

نوٹ کریں کہ راؤنڈ() کی واپسی کی قیمت ایک عدد (int یا float) ہے، لیکن format() کی واپسی کی قیمت ایک تار ہے۔ اگر آپ اسے بعد کے حسابات کے لیے استعمال کرنا چاہتے ہیں تو round() استعمال کریں۔

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'>

راؤنڈ() فنکشن اعشاریہ مقامات کی تعداد کو اپنی دوسری دلیل کے طور پر بتاتا ہے۔ نوٹ کریں کہ یہ سختی سے گول نہیں ہے۔ تفصیلات کے لیے درج ذیل مضمون کو دیکھیں۔

format() طریقہ اور format() فنکشن فارمیٹنگ تفصیلات کے سٹرنگ میں اعشاریہ جگہوں کی تعداد بتاتے ہیں۔ تفصیلات کے لیے درج ذیل مضمون کو دیکھیں۔

اگر آپ موازنہ کرنا چاہتے ہیں تو آپ 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() ہے، اور الٹا کوزائن (آرک کوزائن، آرکوس) تلاش کرنے کا فنکشن math.acos() ہے۔

یہاں 60 ڈگری کا کوسائن اور 0.5 کا الٹا کوزائن تلاش کرنے کی ایک مثال ہے۔

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

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

اگر آپ مناسب ہندسے کو گول کرنا چاہتے ہیں، تو آپ sine کے ساتھ round() یا format() استعمال کر سکتے ہیں۔

ٹینجنٹ، الٹا ٹینجنٹ:math.tan(),math.atan(),math.atan2()

ٹینجنٹ (ٹین) کو تلاش کرنے کا فنکشن math.tan() ہے، اور الٹا ٹینجنٹ (arctan) تلاش کرنے کا فنکشن 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) کی ایک دلیل ہے اور آرکٹان(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) کے دو دلائل ہیں اور ریڈینز میں آرکٹان(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-axis کی منفی سمت (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 میں پروگرام چلانے کے نتائج ہیں۔ نوٹ کریں کہ دیگر نفاذات یا ماحول منفی صفر کو مختلف طریقے سے سنبھال سکتے ہیں۔