كيف تعمل الدوال المثلثية sin, cos .. الخ
مثال:
sin(90) = 1
ماهي العملية التي تمت بداخل sin حتى نتج الرقم 1 ؟
تم تعديل هذه المشاركة بواسطة m ahmed في 10 يونيو 2014 في 20:38
كيف تعمل الدوال المثلثية sin, cos .. الخ
مثال:
sin(90) = 1
ماهي العملية التي تمت بداخل sin حتى نتج الرقم 1 ؟
تم تعديل هذه المشاركة بواسطة m ahmed في 10 يونيو 2014 في 20:38
منذ زمن لوحظ أن النسبة بين -أو حاصل قسمة - طول أي ضلع مقابل للزاوية التي أكبر من °0 وأقل من °90 مع طول الوتر ثابت في أي مثلث قائم الزاوية، خذ أي مثلث قائم الزاوية وضاعفه كيفما تريد، فالنسبة ستنبقى ثابته، هذه العلاقة سميت الجيب sine.
في الزوايا، تستخدم دائرة الوحدة، حيث يكون هناك مثلث ضمني كهذا الذي في الدائرة (مصدر الصورة):

لاحظ أن حجم المثلث الأيسر ضعف حجم ذالك الذي في داخل الدائرة، إلا أن النسبة بين الأضلاع ثابته، فجيب sine لزاوية °30 ثابت، في المثلث الكبير، المقابل 1 والوتر 2، أي أن جيب °30 يساوي:
وفي الثاني الأصغر المقابل 1/2 والوتر 1:
النسبة كما ترى ثابته.
جيب التمام cosine نفس المبدأ، فهو النسبة بين الضلع المجاور للزاوية مع الوتر، الزاوية °30 في الكبير مجاورها √3 والوتر 2، أي أن جيب التمام للزاوية °30 يساوي:
في الصغير، المجاور √3/2 والوتر 1، أي أن:
أيضاً النسبة ثابتة. أترك لك التحقق من باقي الزوايا.
عندما تصل الزاوية للـ°0 أو °90 ونريد حساب الجيب sine مثلاً، فدخلنا في موضوع النهايات.
عندما تكون الزاوية °0، فالمقابل صغر وصغر إلى أن أصبح طوله 0 وأصبح المثلث خط أفقي، حينها المقابل 0 على الوتر أيً كان طوله، فالنتيجة صفر أي أن sine الزاوية °0 يساوي 0.
عندما تكون الزاوية °90، فالمقابل كبر إلى أن أصبح بنفس طول الوتر، مشكل خط عمودي، حينها المقابل (الذي يساوي الوتر) على الوتر يساوي 1، أي أن sine الزاوية °90 يساوي 1.
انظر لهذا التطبيق، غير زاوية المثلث ولاحظ قيمة sine (ضع صح على جميع الخيارات كي تظهر لك قيمة الـsine).
تم تعديل هذه المشاركة بواسطة Mr.B في 10 يونيو 2014 في 23:31
Mr.B يا أخي انت عسل :) بس في شي فهمته وفي اشياء مافهمتها !
تمام شرحك حلو وفهمت ان:
sine هي العلاقة/النسبة بين المقابل والوتر
لكن مدري كيف اشرح سؤالي هههههه
اللي اقصده ايش اللي صار ع الزاوية لين جاب العلاقة
طيب بتخيلها بهذا الشكل
def a(x): return x / 2
هذه الدالة ترجع دائما العدد مقسوم على اثنين اي نصف العدد
طيب لو افترضت ان sin بهذا الشكل
def sin(x): # ????
ما ادري سؤالي شاطح او ان خيالي واسع :P
تم تعديل هذه المشاركة بواسطة m ahmed في 11 يونيو 2014 في 00:24
أنت تريد حساب الـsine برمجياً، هناك طريقتين لعملها، الأولى الأسهل أن تستخدم تعليمة الـsine إذا كان المعالج يوفر واحدة، أسرع بكثير معالج أنتل x86 يوفر التعليمة fsin.
بعض طرق حساب الـsine برمجياً تستخدم عندما لايوفر المعالج مثل هذه التعليمة، وتعتمد على استخدام متسلسة تايلور وماكلورين، قبل البدئ يلزم أن تكون لديك فكرة ولو صغيرة عن الإشتقاق.
الغرض من متسلسة تايلور أنها تحول لك أي دالة لمتسلسلة يمكن استخدامها مع الكمبيوتر:
إذا كانت قيمة a = 0، تسمى هذه المتسلسلة متسلسة ماكلورين وهي حالة خاصة من متسلسلة تايلور. لاحظ أن هذه المتسلسلة تعطي قيمة الـsine تماماً إذا كان عدد الحدود لانهائي (n = للانهاية)، وهذا مستحيل حسابة. غالباً يتم حسابها لدقة محددة، دقة الحاسابات تعتمد على عدد الحدود.
سنحسب الـsine إلى المشتقة السابعة ثم نعوضها في المتسلسلة، نوجد المشتقات الست:
الآن نحسب قيمة a = 0:
بعدها نعوض كل حد في المتسلسلة:
نبسطها بإزالة الحدود المضروبة في أصفار:
نبسط زيادة:
الآن أصبح لدينا كثيرة حدود يمكن استخدامها مع الكمبيوتر تعطينا قيمة sine بدقة مقبولة (الدقة تزداد مع زيادة الحدود)، ما يقابها في بايثون (x في الراديان وليست في الدرجات):
def sin(x):
return x - x ** 3 / 6 + x ** 5 / 120 - x ** 7 / 5040تجربة لمقارنتها مع دالة الـsine في بايثون (لاحظ أن الخطأ بدأ يزاد كثيراً في دالتنا وأعطت قيم بعيدة في الأخير):
>>> def sin(x): ... return x - x ** 3 / 6 + x ** 5 / 120 - x ** 7 / 5040 ... >>> import math >>> test = lambda x : (sin(x), math.sin(x)) >>> >>> test(0) (0.0, 0.0) >>> test(0.1) (0.09983341664682541, 0.09983341664682815) >>> test(0.2) (0.19866933079365082, 0.19866933079506122) >>> test(0.3) (0.29552020660714284, 0.29552020666133955) >>> test(0.6) (0.5646424457142857, 0.5646424733950354) >>> test(0.8) (0.7173557231746032, 0.7173560908995228) >>> test(1.0) (0.841468253968254, 0.8414709848078965) >>> test(1.6) (0.9993885663492064, 0.9995736030415051) >>> test(2.0) (0.9079365079365079, 0.9092974268256817) >>> test(2.5) (0.5885339161706351, 0.5984721441039564) >>> test(3.0) (0.09107142857142847, 0.1411200080598672) >>>
لو تابعت متسلسلة الـsine ستجد أن كل حد زوجي n = 2, 4, 6, .. سيضرب في صفر، أي أن الحدود الفردية فقط ستبقى، n= 1، 3، 5، 7، 9، ... أيضاً، الحد الأول يكون موجب، والذي يليه سالب ثم موجب وسالب وهذا، يمكن اختصارها هكذا دون الحاجة لإجراء الإشتقاق:
إعادة كتابة المتسلسلة السابقة بصيغة الـsigma:
هذه صيغة عامة لحساب الـsine لأي دقة n.
تم تعديل هذه المشاركة بواسطة Mr.B في 11 يونيو 2014 في 07:58
بارك الله فيك ..
شكرا ع المجهود الرائع، الله يجعله في ميزان حسناتك.