Numerical_Lec_5_-_First_16_minutes_-_Made_with_Clipchamp
السلام عليكم ازيكم يا شباب عاملين ايه؟ النهارده إن شاء الله هنبتدي في المحاضرة الخامسة اللي هي استكمالاً للمحاضرة الرابعة بدأنا فيها ـhow to   solve non-linear equation، how to find the root of non-linear equation. كان في عندنا طريقة خدناها المرة اللي فاتت اللي هي الـ fixed-point iteration.
طبعاً أنا في محاضرة النهارده راجعت عليها بس هو المفروض إن في presentations فـ نقدر نراجع عليها وما نضيعش الوقت يعني. لكن عشان تبقى بس الناس فاهمة يعني إيه root of non-linear equation وإزاي أجيبها. المحاضرة اللي فاتت اتكلمنا عن حاجات عامة ثلاث حاجات نقدر نتكلم عليهم في كل طريقة اللي هي الـ workability conditions والـ convergence test والـ rate of convergence.
لو رجعتوا المحاضرة اللي فاتت وسمعتوها هتفهموا كل حاجة من دول يعني إيه. النهارده إن شاء الله هناخد الطريقة التانية اللي هي الـ bisection والطريقة التالتة اللي هي الـ false position أو الـ regula falsi position. إن شاء الله الطريقتين سهلين ولو أنت ما كنتش فاهم الـ fixed point كويس فملهمش علاقة، هي طريقة تانية. العلاقة اللي ما بين الطرق وبعضها اللي في الchapter إنها بتحل نفس الـ
إنها بتحاول ت find the root for the non-linear equation. نمسك بقى بالنسبة لطريقة الـ bisection. طريقة الـ bisection أو بيسموها أحياناً الـ midpoint methods أو الـ bracketing method زي ما إحنا سميناها في في تعريفها المرة اللي فاتت في المحاضرة اللي فاتت.
كل دي أسامي لنفس الطريقة. هي بتعتمد على إن أولاً هي بتشتغل على closed interval [a,b] يعني أنت لازم تديها الـ interval اللي اللي أنت بتدور فيها على الـ root. بتعتمد أو هي الرؤية بتاعتها في وجود الـ root أو عدم وجوده الـ signs بتاعة طرفين الـ interval.
إن لازم sign بتاع يعني لما تيجي تعوض في الـ function بالـ A تطلع مثلاً بـ negative وتعوض بـ B تطلع بـ positive أو العكس. المهم إن في واحدة positive والتانية negative. وهي دي اللي من خلالها بتشوف إذا كان في root في الـ interval ولا لأ. يعني بمعنى آخر إن لما أجي أضرب الـ f(A)×f(B) يطلع negative يعني <0.
لو طلعت واحدة فيهم لو طلعوا الاتنين positive أكيد هيطلع الناتج positive يعني > 0. طلعوا الاتنين negative فـ هيطلع برضه بـ positive حاصل ضربهم بـ positive يعني > 0. لو في واحدة فيهم بـ zero فأكيد هي الـ root فـ أنا مش محتاجة استخدم أي algorithm عشان أجيبه. ده معناه يبقى هي بتهمني الـ signs بتاعة الإشارات واحدة positive والتانية negative. ده معناه اللي هو الـ tangent root اللي هو لما تبقى الـ function كلها فوق الـ x-axis وبتـ مس الـ x-axis
عند الـ root الـ bisection مش هتقدر تجيبه. يعني لو أنا قلت مين في دول هتقدر الـ bisection تجيبها؟ فـ هتبقى في الـ interval من 0 لـ 2 هتبقى أول function بس اللي هي رقم A. أما رقم B ملهاش أصلاً real root في الـ interval. رقم C ده اللي هو الـ tangent root اللي هو لو أنا جيت أجيب الـ sign عند الـ zero هيطلع positive والـ sign عند الـ 2 هيطلع برضه positive.
يبقى هي ال شروطها إن تبقى الـ signs عند طرفين الـ interval اللي أنا شغالة عليهم تبقى مختلفة وهنعرف ليه دلوقتي. طيب قدامنا الـ function f(x) ديت المفروض إن أشوف إيه هي فكرة الـ bisection؟ الـ idea for the bisection algorithm فكرتها بتشتغل إزاي؟ هي بتمسك الـ interval
اللي موجودة قدامي ديت وتجيب الـ midpoint اللي هي النقطة C0​. بتعمل إيه في الـ midpoint ديت؟ الـ C0​ دي بتجيبها إزاي؟ إنها بتجمع A+B/2. يعني لو أنا الـ interval مثلاً 4 و 5، تجمع 4+5/2 فتطلع 4.5.طب 4 okay تطلع 4.5.
تعمل إيه في الـ c ديت؟ بتشوف الإشارة عند الـ c ديت positive ولا negative؟ أهي الـ c0​ عبارة عن a0​+b0​ على 2 اللي هي الـ xmid​ اللي هي الـ mid point. تشوف بقى كده الـ c ديت قسمت الـ interval A و B لنصين قد بعض. النص الأولاني اللي هو a و c0​ والنص الثاني c0​ و b.
المفروض إنها تختار نص وترمي نص. هتختار النص اللي فيه الـ root. إيه اللي عرفها؟ يعني النص اللي ناحية اليمين هو ده اللي فيه الـ root. إيه اللي عرفها إن ده فيه الـ root؟ لأن أنا مش المفروض برسم. إيه اللي عرفها إن ده اللي فيه الـ root؟ لما نيجي نجيب الـ f عند c0​ يعني الـ c0​ لما تيجي تشوف إشارتها positive ولا negative، هتلاقي الـ f عند c0​ positive لأنها مرسومة فوق.
ده معناه إن أنت هتمسح الـ positive القديم النقطة القديمة a ويبقى الـ interval الجديدة اللي أنت هتشتغل عليها وتجيب الـ root هي c0​ و b. ودي اللي هنسميها a1​ و b1​. طيب، بعد كده بتجيب النقطة c اللي في نص الـ interval وليكن اسمها بقى c1​
خلاص؟ وتشوف كده بقى عندك نصين، نص ناحية اليمين، النص ده الـ bracket الأحمر دوت، لما تقسمه نصين، هتشوف مين النص اللي فيه الـ root، اللي هو يطلع نص الـ interval اللي ناحية اليمين هي دي اللي فيها الـ root. ليه؟ لأن أنت لما تيجي تجيب الـ f عند الـ c الجديدة هتطلع positive، يبقى أنت هتاخد الـ positive مع الـ negative، هتاخد الـ c مع الـ b، الـ c الجديدة مع الـ b اللي كانت موجودة قبل كده.
وهكذا، يبقى الـ interval الجديدة هي الـ interval ديت ويبتدي يقسم كل مرة الـ interval النص، يرمي نص وياخد النص اللي موجود فيه الـ root. هي دي طريقة الـ bisection. ويفضل شغال لغاية ما يوصل لـ c، اثنين c ورا بعض متفقين في عدد معين من الـ decimal digits. يبقى احنا كده دي الطريقة اللي بتفكر فيها الـ bisection.
هل فيه احتمال لما استخدم الـ bisection ما يحصلش convergence؟ أكيد لأ، ده أنا كل مرة بقسم الـ interval لنصين قد بعض، برمي نص وبشتغل على نص، فعمال أحدد منطقة الـ search بتاعتي. فأكيد أكيد لازم هيحصل convergence باستخدام الـ bisection. يعني مفيش condition زي اللي كان موجود في الـ fixed point؟ لأ مفيش condition.
أنا الـ fixed point كانت فيه احتمالات للـ g′، يا أقل من واحد يا أكبر من واحد يا بيساوي 0. لو كانت أقل من واحد هيحصل convergence، مش أقل مش هيحصل convergence. هنا بقى مفيش condition. هنا طالما الـ bisection طلعت workable، هتطلع convergent. طيب، إيه هي بقى الـ workability condition بتاعت الـ bisection؟ بما أنها بتعتمد على رؤيتها للـ root على الـ signs بتاعت الـ function يمين وشمال الـ root،
يبقى هي لازم أولًا تبقى الـ function f continuous، دالة متصلة. ويبقى sign f(a) مبيساويش sign f(b)، يعني واحدة positive والتانية negative. وإن الـ interval اللي أنا شغالة عليها تكون فيها single root، عشان يقدر يركز ويconverge للـ single root دوت. يعني أنا لو عندي دالة continuous، دالة متصلة، ما فيهاش holes ولا jump point ولا أي حاجة خالص،
وأنت كنت فوق في الـ positive ونزلت رحت للـ negative، مش يبقى أكيد عديت على الـ x-axis، يعني ده معناه هي بتشوف الـ root بالطريقة دي، بتعرف إن فيه root هنا لو كانت الإشارة إشارة عند طرف interval positive وعند الطرف التاني negative، تمام؟ فهي دي الـ workability condition بتاعت الـ bisection.
مفيش حاجة تانية. طب هل في convergence test؟ اتفقنا إن مفيش convergence test. الطريقة ديت لو أنا عندي دلوقتي مسألة زي x3−2x−3 وبيقولك إن ليها root في الـ interval من 0 لـ 2 وعايز يجيب الـ root دوت approximated up to 2 decimal digits، فعايز 2 decimal digits accurate.
الجدول اللي قدامنا دوت هيعتمد على إن الأول بعوض بطرفين الـ interval. ال f عند 0 هيطلع ب negative 3، يعني عدد negative. f عند 2 هيطلع بعدد positive. يبقى الـ signs مختلفة، يبقى الـ bisection workable. ودي طبعًا polynomial فأكيد continuous، وهو قايلي إن فيها root واحد بس. يبقى التلاتة workability condition متحققة.
أروح أجيب الـ root إزاي؟ هنعمل كده جدول هنحط عمود للـ A وعمود للـ B. ففي الأول خالص أول A عندنا اللي هي الـ 0 الـ f عندها كانت negative. والـ B كانت positive، فهحط فوق الـ A ان ده عمود الـ negative، وأحط فوق الـ B أن ده عمود الـ positive. هحسب الـ cn​ إزاي؟ إن اما بجمع a زائد b على 2، يعني 0+2 على 2 فيها ال 1.
أروح أجيب الـ f عند الـ c عشان أعرف إشارتها positive ولا negative. ومش لازم تجيب قيمتها كام، المهم الـ sign بتاعتها إيه. فطلعت بـ negative 4، يبقى معنى كده الـ f عند الـ c negative. يبقى الـ interval الجديدة، يبقى الـ c ديت أحطها في الـ iteration الجديدة مكان الـ A ولا مكان الـ B؟ مكان الـ A في العمود اللي أنا قلت عليه بتاع الـ negative.
يعني الـ c ديت اللي هي قيمتها الـ f عندها negative هتمسح الـ A اللي قبليها. يبقى الـ interval الجديدة 1 و 2. هنجيب النص فيها يعني 1+2 على 2 تطلع 1.5. هجيب الـ f عند 1.5 هلاقيها negative. يبقى برضه هحط الـ 1.5 في عمود الـ negative، وعمود الـ positive هيفضل عند الـ 2.
يبقى الـ interval الجديدة اللي هي a3​ و b3​ هتبقى 1.5 و 2. أجمعهم وأقسم على 2 هتطلع 1.75. الإشارة عندها negative. أشوف الـ negative يبقى برضه أحطها في عمود الـ negative. خلاص؟ لغاية مثلًا في رقم 5 ألاقي الإشارة f عند c طلعت بـ positive، يبقى أحطها في عمود الـ positive وعمود الـ negative ينزل زي ما هو.
هفضل أشتغل لغاية الـ iterations اللي أنا بعملها اللي هي c0​,c1​,c2​ لغاية ما يبقى في اتنين iterations ورا بعض شبه بعض في اتنين decimal digits. طيب هل في طريقة لحساب عدد الـ iterations في الـ bisection؟ فيه، في قانون هحسب منه عدد الـ iteration هنثبته دلوقتي ونقدر نستخدمه بعد كده.
طيب حتة الـ convergence هل الـ bisection إحنا قلنا ملهاش convergence test؟ بس هل في طريقة أثبت بيها in general إن طالما الـ bisection workable هتطلع convergent؟ برضه هنشوفها دلوقتي. يبقى الجملة دي لو جاتلك جملة true/false، "Bisection is always convergent if it is workable" الجملة دي true.
أو لو قلتلك Bisection is always convergent، خلاص يبقى هي طالما بقولك Bisection يبقى دايمًا هتـ converge لو هي workable. ليه؟ فالإثبات ده بنعرفه مرة إن هو خلاص in general الـ Bisection convergent، مبيتطلبش منك كل مسألة، لكن مطلوب عليك الإثبات ممكن ييجي سؤال في الامتحان "Prove that Bisection is always convergent".
Okay؟ لو جينا نشوف هنا انا محتاجة لو انا قلت الفرق ما بين النقطة الحمرة دي ال exact root و انت بعد n iterations وصلت لل cn ل iteration c5 بعد 5 iterations
يبقى الفرق ما بين الـ exact root وما بين الـ cn​ هو ده اللي بقول عليه الـ error بعد n خطوة. المفروض إن أنا أول حاجة في الجزء اللي إحنا هنثبته، أنا عايزة أثبت إن الـ limit للـ errors ديت تؤول للـ 0، يعني الـ errors ديت هتقعد تقل تقل لغاية ما تـ converge للـ root.
الـ root، خلاص؟ ده اللي أنا عايز أثبته في الـ slide الموجودة قدامنا دي. يبقى الـ r minus الـ cn​ ديت هل يبقى الـ error في الخطوة رقم n عبارة عن الـ r minus الـ cn​. إيه علاقة الـ r minus الـ cn​ بطول الـ interval اللي هي an​,bn​؟
ال طبعا الـ r عندي يا يمي الـ cn​ يا يمين يا شمال الـ root. وأنا عندي الـ cn​ دي نص الـ interval. يبقى أكيد r minus الـ cn​ طولها أقل من أو يساوي نص الـ interval اللي هي bn​−an​ على 2. نص طول الـ interval اللي الـ cn​ نصها. فأكيد الـ r minus الـ cn​ أقل من أو يساوي bn​−an​ على 2.
طيب الـ an​ minus الـ bn​ ديت هل أقدر أجيبها بدلالة هل أقدر أجيب الطول ده؟ ده طول الـ interval بعد n خطوة. هل أقدر أجيبه بدلالة طول الـ interval الـ initial خالص اللي هي b و a لان هم دول اللي أنا عارفاهم؟ فإحنا عندنا طول الـ interval اللي هي bn​ ناقص an​ إيه علاقتها بطول الـ interval اللي قبلها؟ نصها.
يبقى بتساوي 2/1​(bn−1​−an−1​). طب الـ interval bn−1​ و an−1​ إيه علاقتها بطول الـ interval اللي قبلها؟ نصها. وديت bn−1​ و an−1​ إيه علاقتها باللي قبلها؟ نصها. فلما كان عندنا n−1 كان جنبيها نص واحد.
n−2 كان جنبيها نصين. n−3 جنبيها تلات أنصاص. يبقى لو اشتغلت لغاية a0​,b0​ قعدت أفك كده لغاية أول الـ interval خالص اللي هنسميها a0​,b0​. يبقى هتبقى إيه علاقتها؟ 2^n/1​. يبقى جنبيها n half. اللي هي 2n1​(b−a). يعني معنى كده بعد خمس iterations مثلًا الـ interval b5​−a5​ يعني طول الـ interval
بعد خمسة iterations إيه علاقتها بطول الـ interval الأولانية خالص؟ 2^5/1​ من طول الـ interval الأولانية خالص. لو رجعنا بقى وعوضنا في الـ equation رقم 1 عوضنا من 2 في 1 يعني شيلنا bn​−an​ وحطينا مكانها 2^n/1​(b−a)
Okay. هيطلع أنا عندي أصلًا كان فيه نص وهشيل الـ bn​−an​ وأحط 2^n/1​(b−a)، يبقى معنى كده الـ r ناقص الـ cn​ بتساوي 2^n+1/1​(b−a). لو أنا جيت أجيب أنا هدفي إن أنا عايزة أتأكد إن limit الـ error هيؤول للصفر.
فالـ error بعد n خطوة اللي هو r - cn​ أنا جبته بدلالة n اللي هو 2^n+1/1​(b−a). لو أنا جيت أجيب limit الطرفين، limit(r−cn​) هيساوي limit(2^n+1/1​(b−a)). لو أنا جيت أعوض بـ ∞، فيطلع 2^∞ بـ ∞، ∞/1​ بـ 0.
معنى كده إن limit الـ error بيقل بيؤول لـ 0. يبقى معنى كده الـ bisection مالها؟ الـ bisection method is always convergent. هل وأنا بأثبت ده قلت لو حصل شرط كذا هيحصل convergence، لو محصلش مش هيحصل convergence؟ ما قلتش أي condition. علاقة أي interval، علاقة طولها بطول اللي قبلها نصها.
دايمًا هو ده طريقة الـ bisection. خلاص؟ just إن أنا أثبت إن limit الـ error لما n تؤول لـ ∞ بيساوي 0 لو أنا استخدمت طريقة الـ bisection. فالـ proof ده لو اتطلب منك إن الـ bisection is always convergent، prove that، فهو ده الـ slide ديت. خلاص؟ وطبعًا توضح من على الرسمة عشان تبقى الأمور واضحة بالنسبة
السؤال التاني بقى هل في طريقة لحساب عدد الـ iterations اللي هعملها عشان أوصل لـ accuracy D decimal digits؟ فيه طريقة، دايمًا لو فيه قانون بيبقى أفضل إن أنا أعرف أنا بالكتير هعمل كام iteration. كبيري في الطريقة دي كام iteration.