0 تصويتات
في تصنيف تعليم بواسطة (2.0مليون نقاط)

بحث عن استخدام الارقام العشوائية في الـ MAT LAB

الفصل الاول: مقدمة حول الارقام العشوائية

١,١ المقدمة :

نحن أمام موضوع مهم التي تلزم أي متخصص في الرياضيات او البرمجة ، هو الحصول على عدد ما بشكل عشوائي وبشروط معينة . هناك عمليات التي يتم تطبيقها باستخدام الأرقام العشوائية ، وهناك ارقام تتكرر بتفاصيلها في كل مرة ، وكم من الملل سيواجه المطبق حينها، تلك هي الأرقام العشوائية.

عندما نقول عدد عشوائي فهذا لا يعني بالضرورة انه عشوائي بالمعنى العام. العدد العشوائي هو العدد المولد من الطرف دالة مجهولة السلوك (نسبيا) عندما نقول نسبيا فأنا نقصد المستخدم أي ان المستخدم عندما نقوم بتشغيل دالة سنقوم بإرجاع عدد عشوائي كما يتصور هو ولكن في الحقيقة هذا العدد العشوائي يخضع لقانون معين ... المبرمج فقط هو من يعرفه اذ ان بعض التناقض في كلامنا السابق ، قلنا ان العدد العشوائي ثم قلنا بأنه يخضع لقانون معين كيف ؟ بداية ..... نحب أن نلفت الانتباه الى جدال الدائرة حول العدد العشوائي فالمبرمجون ارادوا برمجة دالة تمكن من توليد ارقام عشوائية وكانت المشكلة تمكن في برمجة الدالة العشوائية .... فنحن حين نقول دالة مبرمجة فهذا يعني أن الدالة تخضع لقانون محدد اما العدد العشوائي فلا يخضع لأي قانون .. والا فسيكون عددا محددا وسيفقد عشوائية ... تفيد الارقام العشوائية في مجموعة متنوعة للأغراض والاهداف ، مثل توليد مفاتيح لتشفير البيانات ، والنمذجة، ومحاكاه الظواهر المعقده ، واختيار عينات عشوائية من مجموعات البيانات الضخمة كما تم استخدامها من الناحية الجمالية في الأدب والموسيقى وبالطبع هي ايضا مشهورة الاستخدام في الالعاب الاليكترونية الرقم العشوائي هو احد الارقام التي يتم الحصول عليها من مجموعة من القيم الممكنة ، كل رقم من المجموعة له احتمال متساوي مع البقية للحصول عليه ، أي تتوزع احتمالاتها توزيعا منتظما . عند مناقشة سلسله من الارقام العشوائية ، يجب ان يكون كل عدد مستخرج مستقل احصائيا عن الآخرين ، أي ان الحصول على عدد ما لا يؤثر على احتمال الحصول على عدد آخر.

ومع ظهور الحاسوب ، احتاج المبرمجون الى وسيلة لاستحداث وتوليد العشوائية في برنامج الحاسوب وعلى الرغم من ذلك من الصعب ايجاد حاسوب يقوم بشيء مصادفه او عشوائية لان الحاسوب يمثل التعليمات بصوره عمياء محددة له مسبقا ، وبالتالي يمكن التنبأ بها تماما.

١,٢ مقدمة في MATLAB :

جاءت كلمة ماتلاب MATLAB من الأحرف الأولى للعبارة Matrix Laboratory أي مختبر المصفوفات ، الماتلاب هو برنامج هندسي متقدم يقوم بإجراء العمليات الحسابية ومحاكاة الانظمة المختلفة لذا يستخدم كوسيلة تحليل في عدة مجالات مثل العلوم والرياضيات المتقدمة وفي الصناعة كأداة بحث وتصميم ذات مردود عالي ويستعمل لغرض اجراء العمليات الحسابية ، واشتقاق اللوغاريتمات ، ومحاكاة وتصميم الانظمة في جميع فروع العلوم والصناعة ، وتحليل البيانات واستكشافها ، وكذلك لرسم المجسمات الهندسية والصناعية ذات الثلاثة ابعاد ويعتبر MATLAB من البرامج ذات الاستجابة السريعة حيث عنصر البيانات الاساسي فية عبارة عن مصفوفة بدون أبعاد قياسية ، لذلك يمكن استخدامة في حل معظم المسائل الحسابية المعقدة بسهولة وفي زمن قصير مقارنة باستخدام لغات البرمجة الأخرى مثل C او Fortran.

تتعامل لغة MATLAB مع الثوابت والمتحولات كمصفوفات رياضية ، وبناء على ذلك العمليات الرياضية الافتراضية في MATLAB هي عمليات على مصفوفات مثلا ab هي عملیات ضرب بين مصفوفتين الأولى a والثانية b. 

١,٣ أغراض الـ MATLAB :

• اجراء العمليات الحسابية المعقدة بسرعة عالية.

• اشتقاق اللوغاريتم.

• محاكاة وتصميم الانظمة المختلفة في جميع فروع العلوم والصناعة.

• تحليل البيانات واستكشافها.

• رسم مجسمات ذات ابعاد ثلاثية هندسية وصناعية.

١.٤ مكونات نظام MATLAB :

١- لغة MATLAB: وهي لغة بشكل مصفوفة عالية المستوى وتحتوي على اوامر للادخال والاخراج وتحتوي ايضا على امكانية البرمجة الكائنية Object oriented Programming تستطيع بواسطة لغة MATLAB تطوير برامج بسيطة سريعة وتستطيع ايضا تطوير مجموعة برامج وتطبيقات كاملة وواسعة ومعقدة. 

٢- بيئة عمل MATLAB: وهي مجموعة الادوات والامكانيات التي يتم استعمالها في MATLAB مثل سطح المكتب نافذة الأوامر ، نافذة الأوامر السابقة، مستعرضات محتويات ساحة العمل وغيرها.

٣- المخططات: يحتوي برنامج MATLAB على أوامر عالية المستوى من اجل اظهار المخططات ثنائية وثلاثية الابعاد ومعالجة الصور وتحريك الرسوم.

٤- مكتبة التوابع الرياضية ل MATLAB: وهي مجموعة من الالغورتيمات تتراوح من الالغورتيمات البسيطة مثل : الجمع ، الجيب ، الجيب تمام او العمليات على الاعداد العقدية أو التوابع المعقدة مثل مقلوب مصفوفة ، توابع بيزل تحويلات فوريية وتحويلات لابلاس.

٥- واجهة برامج التطبيقات MATLAB: وهي مكتبة تسمح بكتابة برامج بلغة البرمجة ++C او بلغة Fortran لاستعمالها في MATLAB كما تسمح لبرنامج MATLAB باستدعاء البرامج الفرعية .

الفصل الثاني: تطبيق الارقام العشوائية في الماتلاب

,٢,١ مقدمة :

ان الماتلاب يحوي عدد كبير من الاساليب المدمجة والتي تجعل جبر المصفوفات سهل جدا. كما استخدمت وظائف (rand, srand, randn, and randperm) لانشاء تسلسل ارقام عشوائية ، واستخدام وظيفة الـ rang للسيطرة على التكرارات في النتائج الحاصلة .

۲,٢ توليد الارقام العشوائية في الماتلاب :

تستخدم البرمجيات لانشاء ارقام عشوائية ، والنتائج ليست عشوائية بالمعنى الرياضي الصارم ، ومع ذلك فان تطبيقات البرمجيات مثل الخوارزميات التي تجعل النتائج الخاصة بك تبدو عشوائية ومستقلة النتائج ايضا بالاختبارات الاحصائية العشوائية والاستقلال هذه الارقام المستقلة العشوائية على ما يبدو غالبا ما توصف بأنها عشوائية. يمكن استخدام هذه الارقام كما لو هي عشوائية حقا ومستقلة كرقم عشوائي واحد، الارقام الزائفة مستقلة هي انه يمكن تكرار الحساب في اي وقت ، يمكن ان يكون هذا النهج مفيدا في الاختبارات او الحالات على الرغم من انه يمكن ان يكون من المفيد تكرار النتائج عن طريق الخطأ عندما كانت حقا النتائج مختلفة.

۲,۳ تكوين مصفوفة الارقام العشوائية :

هناك اربع وظائف عشوائية rand, srand, randn, and randperm وظيفتها هي ارجاع ارقام عشوائية.

وظيفة rand returns :

ان الارقام الحقيقية هي بين 0 و 1 فلإرجاع قيم بين هذين الحدين يكون كما في المثال التالي:

>> r1 = rand(10,1)

r1 =

0.6312

0.3551

0.9970

0.2242

0.6525

0.6050

0.3872

0.1422

0.0251

0.4211

هو متجه عمودي 1 - 10 - by يحتوي على ارقام حقيقية نقطة تم رسمها من توزيع موحد ، كافة القيم في r1 هي في الفترة المفتوحة بين (0,1) ، ان الرسم بياني لهذه القيم مسطح تقريبا مما يدل على اخذ العينات موحدة الى حد ما من الارقام. 

وظيفة srand returns :

يعطي عشوائية أكثر حيث أتاح المجال للمستخدم بوضع حجر الأساس للعشوائية وغالبا ما تستعمل بذرة الوقت مع التابع ()srand لإعطاء عشوائية شبه مطلقه.

R2=srand(time(NULL))

x=rand

وظيفة randn returns :

التي تستعمل ارقام مصفوفة حقيقية مستمدة من توزيع عادي معياري فمثلا :

r3 randn(10,1)

r3 =

-0.4326

-1.6656

0.1253

0.2877

-1.1465

1.1909

1.1892

-0.0376

0.3273

0.1746

هو عمود متجه يحتوي على ارقام مرسومة من معيار حقيقي الرسم البياني R3 يشبه التوزيع العادي تقريبا البيائي هو 0 والانحراف المعياري هو 1 .

وظيفة randperm returns :

يمكنك استخدام الدالة randperm لانشاء مصفوفات من القيم الصحيحة العشوائية التي ليس لها قيم متكررة فمثلا :

r4 = randperm (15)

r4=

13 7 15 1 11 9 3 12 6 14 2 5 4 10 8

مجموعة تحتوي على قيم صحيحة مختارة عشوائيا على الفاصل الزمني مغلقة. على عكس rand والتي يمكن أن ترجع مصفوفة تحتوي على قيم متكررة .

٢,٤ توليد الاقام العشوائية ضمن نطاق معين :

يمكن توليد ارقام عشوائية ضمن نطاق معين ويوضح هذا المثال كيفية انشاء مصفوفات من ارقام النقطة العائمة العشوائية التي يتم رسمها من التوحيد الموحد ضمن الفاصل الزمني المفتوح (50,100) يقوم rand returns الافتراضي بارجاع القيم المعيارية بين (1-0) التي يتم رسمها من توزيع موحد لتغيير نطاق التوزيع الى نطاق جديد (a,b) ضرب كل قيمة من خلال عرض النطاق الجديد (b) ثم بتحويل كل قيمة بواسطتها. 

اولا: قم بتهيئه مولد الارقام العشوائية لجعل النتائج كما في هذا المثال (rng(0, twister . 

ثانيا: انشاء متجة من 100 قيمة عشوائية ، باستخدم الداله rand لرسم القيم من توزيع موحد في الفاصل الزمني المفتوح من (50,100).

>> a = 50

>> b = 100

>> r = (b-a).*rand(1000,1) + a

r=

52.2526

86.1587

67.3719

71.8987

تحقق من ان القيم في ٢ تقع ضمن النطاق المحدد

r_range = [min(r) max(r)]

r_range =

99.9746 50.0261

والنتيجة في الفاصل الزمني المفتوح (50,100).

٢,٥ لماذا تتكرر الارقام العشوائية بعد ان نبدأ بتوليدها :

جميع وظائف مولدات الرقم العشوائي rand, randn, srand, and randperm المشتركة في كل مره بتوليد ارقام عشوائية والمولد يعيد نفسه الى نفس الارقام مثل (22)rand تعود بنفس النتيجة في أي وقت تقوم بتنفيذه مباشرة بعد بدء التشغيل ، أي ان وظائف الرقم العشوائي returns لها نفس النتيجة كلما قمت باعادة تشغيل اذا كنت ترغب في تجنب تكرار نفس الرقم العشوائي للمصفوفة عند اعادة تشغيل ماتلاب ثم تنفيذ الأمر قبل اذا كنا نريد تكرار النتيجة التي ، rand, randn, srand, or randperm استدعاء الـ حصلت في بداية استخدام الماتلاب دون اعادة التشغيل ، يمكن اعادة تعيين المولد الى حاله بدء التشغيل في أي وقت باستخدام ;('rng('default أي المجال الافتراضي. 

عند تنفيذ ;('rng(default سوف تكون المخرجات تطابق التنفيذ الاخير:

A = rand(2,2)

A =

0.8147 0.1270

0.9058 0.9134

القيم في A تطابق اخراج (22) rand كلما قمت باعادة تشغيل الماتلاب .

٢,٦ تولید ارقام عشوائية قابلة للتكرار :

يوضح هذا المثال كيفية تكرار مصفوفات الارقام العشوائية عن طريق تحديد seed first في كل مرة تقوم بتهيئة مولد باستخدام نفس البذره او القيمة الابتدائية ، وكنت دائما تريد الحصول على نفس النتيجه. 

- تهيئة مولد الارقام العشوائية لجعل النتائج في هذا المثال قابله للتكرار .rng('default');

- تهيئه مولد باستخدام 1 seed of أي القيمة الافتراضية 1. 

(1)rng ثم انشاء مجموعة من الارقام

مثال:

A = rand(3,3)

A =

0.1863 0.3023 0.4170

0.3456 0.1468 0.7203

0.3968 0.0923 0.0001

كرر نفس الامر

A = rand(3,3)

A =

0.1863 0.3023 0.4170

0.3456 0.1468 0.7203

0.3968 0.0923 0.0001

اول تنفيذ للـ rand لتغير حاله المشغل ، وبالتالي فان النتيجة الثانية تكون مختلفة. الان ان تنفيذ المشغل للأوامر باستخدام الـ seed ثم اعادة اول مصفوفة matrix A كما في التنفيذ التالي:

rng(1);

A = rand(3,3)

A =

0.4170

0.3023

0.1863

0.7203

0.1468

0.3456

0.0001

0.0923

0.3968

في بعض الحالات، وضع الـseed وحدها لن يضمن النتائج، ويرجع ذلك الى ان المشغل الذي يتم من خلاله استخدام وظائف الارقام العشوائية منه قد يكون مختلفا عما تتوقعه عند تنفيذ التعليمات البرمجية. فالتكرار على المدى الطويل عند تحديد seed ونوع المشغل معا.

1 إجابة واحدة

0 تصويتات
بواسطة (2.0مليون نقاط)
 
أفضل إجابة

٢,٧ توليد ارقام عشوائية مختلفة :

يوضح هذا المثال كيفية تجنب تكرار نفس العدد العشوائي عند اعادة تشغيل الماتلاب. جميع وظائف الرقم العشوائي المختلفة في الماتلاب، لرسم القيم من متغير عشوائي مثل rand، randn، s rand، وrandperm في كل مرة تقوم بتشغيل ماتلاب والمشغل عادة يعيد نفسه لبدء التنفيذ. لذلك الامر مثال rand(2,2) يرجع نفس النتيجة في أي وقت تقوم بتنفيذها مباشرة بعد بدء التشغيل او مرات عديدة بنفس الطريقة كما كان بإعادة التشغيل. طريقة لتجنب الحصول على ارقام عشوائية مختلفة هو تهيئة مرة ثانية مع إعادة التشغيل باستخدام الـseed المختلفة في كل مرة، القيام بذلك يضمن عدم تكرار النتائج من جلسة سابقة بتنفيذ الـrng('shuffle') . يمكنك تنفيذ هذا الامر في إطار أوامر الماتلاب او يمكنك اضافته الى ملف بدء التشغيل وهو برنامج نصي خاص لن قابله ينفذ في كل مرة تقوم فيها بإعادة تشغيل الآن التنفيذ امر يولد رقم عشوائي.

A = rand(2,2);

في كل مرة كانت استدعاء rng('shuffle') باستخدام seed المختلفة على اساس الوقت الحالي مبدئيا. تحديد seed مختلفة على سبيل المثال:

rng(1);

rng(2);

B = rand(2,2);

المصفوفات B و A مختلفة لأن المشغل يتم تهيئته مع كل تنفيذ الى وظيفة rand.

الفصل الثالث: الاستنتاجات

٣,١ الاستنتاجات :

من ميزات برنامج الـ MATLAB بانه برنامج رائع يستخدم لاغراض الحسابات الرياضيه المتقدمة ويتمتع بكونه برنامجاً متخصصاً، كما يشير عمل الى المختصين في مختلف الدراسات العليا و ما قبلها ، فهو يتعامل مع المعادلات الرياضية ، ، والتفاضلات والتكاملات ، والمصفوفات بانواعها بسهولة وسرعة عاليه ، ويعامل مع الأعداد المركبة بنفس الطريقة التي يعامل بها مع الأعداد العادية . ويمكن المستخدم لبرنامج الـ MATLAB من رسم المعادلات الرياضية في الإحداثيات المختلفة ، ويعد الكثير من الدوال الجاهزة التي توفر جهد ووقت المبرمج عند إنشاء البرامج بسهولة ودقة في الفهم والاستعمال.

نستنتج من خلال هذا البحث أن بإمكاننا استخدام برنامج الـ MATLAB لدراسة وفهم وحل اغلب المواد التي تدرس في قسمنا الرياضيات لما يتمتع بيه البرنامج من سهولة في الاستخدام الدقة العالية في الحل.

٣,٢ التوصيات :

نوصي بإجراء بحوث مكثفة في مادة الرياضيات ، في كل مجال من مجالاته ، وتطبيقها بشكل أكثر تفصيليا ودقة باستعمال الماتلاب وبيان مدى أهميته للطلبة من ضمن اختصاص الرياضيات وما يقاربه من الاختصاصات الاخرى.

اسئلة متعلقة

مرحبًا بك إلى مناهل العلم، حيث يمكنك طرح الأسئلة وانتظار الإجابة عليها من المستخدمين الآخرين.

التصنيفات

...