البرمجة في MATLAB. مشغلي الخوارزميات مشغل Matlab Loop بينما توجد أمثلة في MATLAB

القسم: تكنولوجيا المعلومات

البرمجة فيماتلاب


العاملينماتلاب

· تصريحات حلقة

دورةل

بناء الجملة

للعد = البداية: الخطوة: النهائية

أوامر ماتلاب

وصف

عدد - متغير الحلقة,

البداية - قيمتها الأولية،

نهائي - قيمته النهائية،

الخطوة - الخطوة التي يزداد بها العدد مع كل إدخال لاحق في الحلقة

تنتهي الحلقة بمجرد أن تصبح قيمة العد أكبر من القيمة النهائية.

مثال

يجب أن يكون من الضروري استخلاص مجموعة من المنحنيات لـ x€، والتي يتم تحديدها بواسطة دالة تعتمد على المعلمة

ص (س، أ) = ه -فاس الخطيئة س،

للمعلمة قيم من -0.1 إلى 0.1. فيما يلي قائمة بملف البرنامج لعرض مجموعة من المنحنيات.

قائمة البرنامج

س = ;

ل = -0.1:0.02:0.1

y = exp (-a*x).*sin(x);

نتيجة تنفيذ البرنامج ستظهر نافذة رسومية تحتوي على عائلة المنحنيات المطلوبة.

دورةبينما

بناء الجملة

أثناء حالة الحلقة

أوامر ماتلاب

وصف

تعمل الحلقة طالما أن شرط الحلقة صحيح. لتعيين شرط تنفيذ الحلقة، يُسمح بالعمليات العلائقية التالية:

يتم تحديد شروط أكثر تعقيدًا باستخدام عوامل التشغيل المنطقية. يتم إعطاء العوامل المنطقية في الجدول التالي


مثال

مشغلي الفروع

العامل الشرطيلو

بناء الجملة

إذا كان الشرط

أوامر ماتلاب

وصف

إذا كان الشرط صحيحًا، فسيتم تنفيذ أوامر MATLAB الموجودة بين if وend، وإذا كان الشرط غير صحيح، فسيتم تنفيذ الأوامر الموجودة بعد end.

مثال

العامل الشرطيelseif

بناء الجملة

إذا الشرط1

شرط آخر 2

………………………

شرط آخر

وصف

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

مثال

المشغل أو العامليُحوّل

بناء الجملة

متغير التبديل

قيمة الحالة1

قيمة الحالة 2

……………………

معنى الحالة


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

مثال

انقطاع الدورة. حالات استثنائية.

المشغل أو العاملاستراحة

بناء الجملة

يُستخدم عامل Break لتنظيم العمليات الحسابية الدورية: for...end، while...end. عندما يتم استيفاء الشرط

إذا كان الشرط

ينهي بيان الاستراحة الحلقة (لأو أثناء) ويتم تنفيذ العبارات الموجودة في الأسطر التالية للنهاية. في حالة الحلقات المتداخلة، يخرج الكسر من الحلقة الداخلية.

معالجة الاستثناء، المشغليحاوليمسك

بناء الجملة

التصريحات التي تنفيذها

قد يسبب خطأ

تصريحات ليتم تنفيذها

عند حدوث خطأ في الكتلة

بين المحاولة والقبض

وصف

تسمح لك بنية Try...catch بتجاوز حالات الاستثناء (الأخطاء التي تؤدي إلى إنهاء البرنامج، على سبيل المثال، الوصول إلى ملف غير موجود) واتخاذ بعض الإجراءات في حالة حدوثها.

مثال

وظائف الخدمة

ديسبلايإخراج نص أو قيمة متغير إلى نافذة الأوامر

مدخل- يطلب الإدخال من لوحة المفاتيح. يُستخدم عند إنشاء التطبيقات باستخدام واجهة سطر الأوامر.

تقييمينفذ محتويات سلسلة أو متغير سلسلة، مثل أوامر MATLAB

واضح- حذف متغيرات بيئة العمل.

معإل سي- مسح نافذة الأوامر

أكثر معلومات مفصلةيمكنك التعرف على هذه الوظائف وغيرها عن طريق التشغيل سطر الأوامر

يساعداسم وظيفة


مهام العمل المختبري

يتم تحديد عدد خيار المهمة المحددة من قبل المعلم.

المهمة رقم 1

تتضمن هذه المهمة إيجاد استيفاء جبري متعدد الحدود من الدرجة n لمجموعة معينة من البيانات: ب(س) .

الهدف من العمل:

من الضروري إنشاء برنامج لحساب معاملات الاستيفاء الجبري متعدد الحدود ب(س)= أ 0 + أ 1 س+ … + ن × ن.

القواعد الارشادية:

0 1 2 3

Xأنا

1,2 1,4 1,6 1,8
8,3893 8,6251 8,9286 8,9703

احتمال أ 0 , أ 1 , …, نيتم تحديدها من حل نظام المعادلات:

هنا ن- ترتيب الاستيفاء متعدد الحدود،

ن+1 - عدد أزواج النقاط المعطاة ( س, ذ),

أ 0 , أ 1 ,… ن- المعاملات المطلوبة لكثيرة الحدود ب(س)= أ 0 + أ 1 س+ … + ن × ن).

متطلبات البرنامج

· تعيين حدود المقطع ، والتي تم بناء الاستيفاء متعدد الحدود عليها ف (س)

· تعيين ن- عدد مقاطع الاستيفاء (أو، كما هو الحال، درجة كثير الحدود)

ملحوظة: x0, xn, نتم الدخول من لوحة المفاتيح

· الحصول على البيانات الأولية (س، ص)(عدد أزواج النقاط (س ط، ذ ط)، والتي يتم من خلالها إنشاء الاستيفاء متعدد الحدود ف (س)ن1=ن+1) يمد:

ü إدخال العقد الموجودة بشكل عشوائي س ط، ط = 0، نمن لوحة المفاتيح

ü حساب العقد س ط , أنا=0, ن,المقابلة للترتيب الموحد للحجة سعلى الجزء

ü في الفقرات. 1.2 القيم ص أنا , أنا=0, نإما تم إدخالها من لوحة المفاتيح (إذا كانت الوظيفة المصدر غير معروفة) أو تم حسابها من وظيفة معينة و (خ). يتم إدخال التعبير الذي يحدد الوظيفة من لوحة المفاتيح ويجب أن يتوافق مع قواعد كتابة التعبيرات في MATLAB

ü إدخال البيانات ( س ط، ص ط، ط=0، ن) من - الملف

· حل نظام من المعادلات لتحديد معاملات كثيرة الحدود P(x)

· إنشاء رسوم بيانية للدالة الجدولية الأصلية ومتعددة الحدود P(x)

· إذا تم تقديم البيانات المصدر كدالة f(x)، قم برسم خطأ الاستيفاء /f(x) – P(x)/. احسب القيمة المطلقة القصوى لخطأ الاستيفاء عند فترة زمنية معينة.


المهمة رقم 2

استيفاء الخط

الهدف من العمل:

من الضروري إنشاء برنامج لحساب المعاملات وإنشاء دالة شريحة S(x)، "ملتصقة ببعضها البعض" من أجزاء من متعددات الحدود من الدرجة الثالثة S أنا(س), والتي لها نموذج تسجيل خاص:

المهام أنا(س) المحددة على الجزء،

متطلبات البرنامج

عند القيام بهذا العمل يجب عليك:

· تعيين حدود الجزء الذي تم إنشاء وظيفة الشريحة S(x) عليه

· المجموعة n – عدد مقاطع الاستيفاء، التي يتكون على كل منها متعدد الحدود المكعب Si(x).

· ملاحظة: يتم إدخال x0، xn، n من لوحة المفاتيح.

· تنظيم إدخال البيانات الأولية (x, y) (عدد أزواج النقاط (xi, yi) التي يتم من خلالها إنشاء دالة الشريحة S(x), n1=n+1)، مع توفير ما يلي:

ü إدخال العقد الموجودة بشكل عشوائي xi,i=0,n من لوحة المفاتيح

ü حساب العقد xi، i=0، n، المقابلة للموقع الموحد للوسيطة x على المقطع

ü في الفقرات. 1,2 يتم إدخال قيم yi، i=0، n إما من لوحة المفاتيح (إذا كانت الوظيفة الأصلية غير معروفة) أو يتم حسابها من دالة معينة f(x). يتم إدخال التعبير الذي يحدد الوظيفة من لوحة المفاتيح ويجب أن يتوافق مع قواعد كتابة التعبيرات في MATLAB

ü إدخال البيانات (xi, yi, i=0, n) من الملف

ü S1""(x0)=0, S3""(x3)=0

ü S1"(x0)=f "(x0)، S3"(x3)=f "(x3)

ü S1""(x0)=f "(x0), S3""(x0)=f "(x3)

· لتحديد معاملات الخط المكعب الطبيعي (الشروط الحدية 1) من الضروري حل نظام المعادلات التالي:

المعاملات σ 0 =0,σ n =0

· إنشاء رسوم بيانية للدالة الأصلية ووظائف الخط لجميع الأنواع الثلاثة من الشروط الحدودية.

· إنشاء رسوم بيانية لدوال خطأ الاستيفاء للخط f(x) – S(x) لجميع أنواع الشروط الحدودية الثلاثة.

ملحوظة:

في حزمة ماتلابمؤشرات أحادية البعد و مصفوفات ثنائية الأبعادابدأ من 1 وليس 0. خذ هذا في الاعتبار عند إعداد البرنامج.


المهمة رقم 3

تقريب الدالة باستخدام طريقة المربعات الصغرى (LSM).

تتضمن هذه المهمة إيجاد دالة تقريبية (متعددة الحدود من الدرجة m) لمجموعة معينة من البيانات، تم إنشاؤها بواسطة طريقة المربعات الصغرى (LSM).

الهدف من العمل:

من الضروري إنشاء برنامج لإيجاد معاملات كثيرة الحدود φ (س)= أ 0 + أ 1 * س+… ن * س مطريقة المربعات الصغرى.

لنفترض، على سبيل المثال، مجموعة البيانات التالية:

Xأنا

1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0
8,3893 8,6251 8,9286 8,9703 9,1731 9,1784 8,8424 8,7145 8,3077 7,9611

يتم البحث عن المعاملات اللازمة على النحو التالي:

أين ن - عدد النقاط ( س, ذ),

م - درجة كثيرة الحدود المطلوبة،

أ 0 , أ 1 , …, أكون – المعاملات المطلوبة ( φ ( س )= أ 0 + أ 1 س + … + م × م ).

متطلبات البرنامج

عند القيام بهذا العمل يجب عليك:

· تعيين حدود القطعة التي بنيت عليها الدالة التقريبية φ(x)=a0+a1*x+… an * xm

· مجموعة م – درجة كثير الحدود

· ملاحظة: يتم إدخال x1, xn, m من لوحة المفاتيح.

· للحصول على البيانات الأولية (x, y)، والتي منها تم إنشاء الدالة التقريبية φ(x)=a0+a1*x+... an* x m، توفير:

ü إدخال العقد الموجودة بشكل عشوائي xi,i=1,n من لوحة المفاتيح

ü حساب العقد xi، i=1، n، المقابلة للموقع الموحد للوسيطة x على المقطع

ü في الفقرات. 1,2 يتم إدخال قيم yi، i=1، n إما من لوحة المفاتيح (إذا كانت الوظيفة الأصلية غير معروفة) أو يتم حسابها من دالة معينة f(x). يتم إدخال التعبير الذي يحدد الوظيفة من لوحة المفاتيح ويجب أن يتوافق مع قواعد كتابة التعبيرات في MATLAB

ü إدخال البيانات (xi, yi, i=1, n) من الملف

· حل نظام المعادلات لتحديد معاملات كثيرة الحدود φ(x)

· إنشاء رسوم بيانية للدالة الجدولية الأصلية ومتعددة الحدود φ(x)

· إذا تم تقديم البيانات المصدر كدالة f(x)، قم برسم خطأ الاستيفاء /f(x) – φ(x)/. احسب القيمة المطلقة القصوى لخطأ الاستيفاء عند فترة زمنية معينة.

عند تنفيذ النقطة الأخيرة على المقطع خذ ما لا يقل عن 500 نقطة لإجراء العمليات الحسابية


متطلبات العمل في المختبر

يجب أن يحتوي التقرير على:

1. بيان المشكلة

2. نص البرنامج

3. نتائج الاختبار

ملاحظة: يجب أن تكون نصوص البرنامج مرفقة بالتعليقات.


1. أنوفرييف آي. دليل التعليمات الذاتية Matlab 5.3/6.x – سانت بطرسبرغ: BHV-Petersburg، 2003. – 736 صفحة: مريض.

2. ف.ب. Dyakonov MATLAB 6.5 SPI/7 + Simulink 5/6 في الرياضيات والنمذجة. سلسلة "مكتبة المحترفين". – م: مطبعة سولون، 2005. – 576 ص: مريض.

3. أنوفريف آي.إي.، سميرنوف إيه.بي.، سميرنوفا إي.إن. MathLab 7. – سانت بطرسبرغ: BHV-Petersburg، 2005. – 1104 ص: مريض.

في كثير من الأحيان، عند تنظيم حلقة، تحتاج إلى التكرار من خلال قيمة عداد في نطاق معين من القيم وبخطوة تغيير معينة. على سبيل المثال، للتكرار عبر عناصر المتجه (المصفوفة)، تحتاج إلى تنظيم عداد من 1 إلى N بخطوة 1، حيث N هو عدد عناصر المتجه. لحساب مجموع السلسلة، يتم أيضًا تحديد عداد من a إلى b مع خطوة خطوة التغيير المطلوبة. وما إلى ذلك وهلم جرا. نظرًا لحقيقة أن مثل هذه المهام غالبًا ما تتم مواجهتها في ممارسة البرمجة، فقد تم اقتراح مشغل حلقة for لتنفيذها، مما يجعل تنفيذ حلقة باستخدام عداد أسهل وأكثر وضوحًا.

بناء جملة مشغل الحلقة كما يلي:

ل<счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
نهاية

النظر في العمل من هذه الدورةباستخدام مثال تنفيذ خوارزمية للعثور على القيمة القصوى لعنصر في المتجه:

وظيفة البحث_ماكس
أ = ;
م = أ(1); % القيمة القصوى الحالية
لـ i=1:length(a) % حلقة من 1 إلى نهاية المتجه c
% في خطوات 1 (افتراضي)
إذا م< a(i) % если a(i) >م،
م = أ(ط); % ثم م = أ(ط)
نهاية
نهاية % نهاية للحلقة
ديس(م);

في هذا المثال لحلقةيضبط العداد i ويغير قيمته من 1 إلى 10 في خطوات من 1. لاحظ أنه إذا لم يتم تحديد حجم الخطوة بشكل صريح، فسيتم اعتباره افتراضيًا ليكون 1.

في المثال التالي، سننظر في تنفيذ الخوارزمية الخاصة بإزاحة العناصر المتجهة إلى اليمين، أي. يتم وضع العنصر قبل الأخير في مكان العنصر الأخير، والعنصر التالي في مكان العنصر قبل الأخير، وما إلى ذلك. إلى العنصر الأول:

قائمة انتظار الوظائف
أ = ;
ديس(أ);
بالنسبة إلى i=length(a):-1:2% دورة من 10 إلى 2 مع الخطوة -1
أ(ط)=أ(ط-1); % إزاحة عناصر المتجه أ
نهاية % نهاية للحلقة
ديس(أ);

نتيجة البرنامج

3 6 5 3 6 9 5 3 1 0
3 3 6 5 3 6 9 5 3 1

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

في الختام، دعونا نلقي نظرة على تشغيل عامل حلقة for باستخدام مثال نمذجة تسلسل عشوائي باستخدام قانون التغيير

أين المعامل من -1 إلى 1؛ - متغير عشوائي عادي مع صفر التوقع والتباين الرياضي

,

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

النمذجة الوظيفية_x
ص = 0.95؛ معامل النموذج٪
ن = 100؛ النسبة المئوية لعدد النقاط المحاكاة
على سبيل المثال = 100؛ % تباين العملية
et = ex*(1-r^2); % تباين الإضافة العشوائية
س = الأصفار(N,1); % تهيئة المتجه x
x(1) = sqrt(ex)*randn; محاكاة٪ للعينة الأولى
لـ i=2:N % دورة من 2 إلى N
x(i)=r*x(i-1)+sqrt(et)*randn; نمذجة٪ SP
نهاية % نهاية الحلقة
مؤامرة (خ) ؛ عرض٪ SP كرسم بياني

عند تشغيل هذا البرنامج، سيتم عرض تنفيذ تسلسل عشوائي محاكى.

أرز. 2.1. نتيجة نمذجة التسلسل العشوائي.

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

x(1) = sqrt(ex)*randn;

بعد ذلك، يتم تنفيذ حلقة for باستخدام العداد i من 2 إلى N مع الخطوة 1. داخل الحلقة، تتم محاكاة عينات N-1 المتبقية من العملية العشوائية وفقًا للصيغة المذكورة أعلاه. يحتوي السطر الأخير من البرنامج على الدالة Plot() التي تعرض التسلسل المحاكى على الشاشة في شكل رسم بياني. ستتم مناقشة العمل مع عرض الرسوم البيانية على الشاشة بمزيد من التفصيل في الفصل التالي.

عبارات الحلقة في MATLAB، يتم تنفيذ الإجراءات المتكررة باستخدام عبارات الحلقة for و while. أبسط استخدام لـ for هو كما يلي: 2

بالنسبة للعدد = البداية: الخطوة: نهاية أوامر MATLAB النهائية هنا، العد هو متغير حلقة؛ n البداية، النهائية – القيمة الحقيقية الأولية والنهائية؛ n step – خطوة من مجموعة أرقام حقيقية (الافتراضي هو 1، ويمكن حذفه). تنتهي الدورة عندما تصبح أكثر نهائية. العد 3 فقط

مثال 1 احسب مجموع x= -1, 0, 1. الحل لنقم بإنشاء ملف برنامج في محرر M-file. نقوم بحفظه في ملف Summa. م ق = 0؛ ل ك = 1: 10 ق = س + س. ^ك / مضروب(ك); End S في سطر الأوامر x = -1:1:1; مجموع S = -0. 6 0 1. 7 لاحظ أن المتغيرات k, s عالمية. 4

يعد استخدام وظيفة الملف أكثر ملاءمة لهذا المثال. في محرر ملف M في سطر الأوامر، قم بإنشاء ملف دالة function S = funsum(x, N) > f = funsum (-1: 1, 10) S = 0; > و = ل م = 1: ن -0. 6 0 1. 7 س = س + س. ^ م/عامل(م); النهاية هنا المتغيرات s، m محلية. 5

مثال 2 قم بإنشاء مصفوفة هيلبرت من الرتبة n. الحل ن = 4؛ أ = الأصفار (ن، ن)؛ for i = 1: n for j = 1: n a (i, j) = 1 / (i+j-1); نهاية 6

ملاحظة: قبل ملء المصفوفات والمتجهات، يجب عليك أولاً إنشاءها وتعبئتها بالأصفار باستخدام أمر الأصفار، لزيادة سرعة الخوارزمية (أي أن a = الأصفار (n, n) أسرع من a(i, j) = 0، ط، ي = 1، ...، ن). 7

تعد حلقة for مفيدة عند تنفيذ إجراءات متكررة عندما يكون عدد الإجراءات معروفًا مسبقًا. إذا كان رقمهم غير معروف مسبقًا، فيمكنك استخدام حلقة while: while حالة الحلقة MATLAB Commands End 8

مثال 3: إيجاد مجموع متسلسلة لـ x معين لن يكون من الممكن الجمع إلى ما لا نهاية، لكن يمكنك تجميع المجموع حتى تصبح الحدود صغيرة جدًا، على سبيل المثال، حتى 9

ملاحظة: إن صغر الحد هو مفهوم نسبي، فقد يكون المصطلح، على سبيل المثال، من مرتبة 10 -10، ولكن المجموع نفسه هو من نفس الترتيب. في هذه الحالة، لا يمكن إيقاف الجمع. دعونا نتجاهل هذا الآن ونعود إلى الحل. 10

Src="https://present5.com/presentation/c993b082b44b0b84b1886b8dd4d3c841/image-11.jpg" alt="(!وظيفة ملف LANG:M في وظيفة سطر الأوامر S = mysin(x) > f = mysin (1)"> M-file функция В командной строке function S = mysin(x) > f = mysin (1) S = 0; 0. 8415 k = 0; while abs(x. ^ (2*k + 1)/factorial(2*k + 1)) > 1. 0 e -10 S = S + (-1)^k * x. ^ (2*k + 1)/factorial(2*k + 1); k = k + 1; end 11!}

لتعيين شرط تنفيذ الحلقة، يتم استخدام العمليات العلائقية التالية: قيمة العلاقة = = يساوي > أكبر من > = أكبر من أو يساوي ~ = لا يساوي

والعوامل المنطقية: تدوين حالة المشغل في MATLAB التدوين المكافئ المنطقي "و" x

دعونا نعود إلى مثالنا ونلاحظ أنه إذا تباعدت المتسلسلة، فإن شرط صغر الحد الحالي قد لا يتم استيفاءه أبدًا وسيدخل البرنامج في حلقة. ولذلك، سنحدد عدد الحدود بـ 100.000. وسيبدو الشرط هكذا أو (abs (x. ^ (2*k + 1)/factorial(2*k + 1)) > 1. 0 e - 10، ك

التعامل مع المواقف الاستثنائية 1) استراحة - مقاطعة الحلقة وتنفيذ العبارة التالية للنهاية (على سبيل المثال، الخروج من الحلقة الداخلية)؛ 2) بعضها غير صحيح عمليات رياضيةفي MATLAB، لا ينهي البرنامج (على سبيل المثال، =inf، =Na.N). الإخراج هو تجربة إنشاء المشغلين الذين قد يؤدي تنفيذهم إلى خطأ في التقاط المشغلين في حالة حدوث خطأ في النهاية 15

مشغلي الفروع المشغل الشرطي يتم استخدام مشغلي الفروع التاليين في MATLAB: n if – مشغل شرطي؛ ن التبديل – تبديل المشغل 16

هيكل العبارة الشرطية: إذا (شرط) لأمر MATLAB وإلا إذا (شرط) لأمر MATLAB …………. قد يكون هذا الجزء مفقودًا elseif (الشرط) أوامر MATLAB وإلا أوامر MATLAB تنتهي 17

عند إنشاء ملف M يستخدم عوامل فرعية، من المفيد استخدام 1) أمر التحذير ("نص") - لعرض تحذير في نافذة الأوامر؛ 2) وظيفة الخطأ ("النص") - لإنهاء تنفيذ البرنامج. 18

مثال 4: بالنظر إلى معادلة تربيعية ax 2 + bx +c = 0، a ≠ 0. لنكتب دالة M تحسب جذور المعادلة التربيعية. دعونا نتحقق من عدد معلمات الإدخال والإخراج، وكذلك أن معلمات الإدخال هي أرقام وليست متجهات ومصفوفات. علاوة على ذلك، فإننا نأخذ في الاعتبار حالة الجذر المعقد. يبدو البرنامج كما يلي: 19

الدالة = جذر 2 (أ، ب، ج) إذا (نارجين

ملاحظة لكتابة بنفسك برامج الحوسبة فائدة عظيمةيمكن أن تجلب دراسة ذاتيةوظائف الملف القياسية في الدلائل الفرعية لـ Toolbox. معظمهم لديهم مفتوح المصدروالذي يسمح لك بفهم مبادئ البرمجة في MATLAB. الوظائف الأخرى (مثل cos.m) مدمجة. أنها تحتوي على تعليقات حول استخدام الوظائف. دعونا نعطي مثالا آخر. 21

الدالة y = kusfun (x) إذا كان nargin ~= خطأ واحد ("يجب أن يكون هناك وسيطة إدخال واحدة") end = size(x); ص = الأصفار(الحجم(س)); % يقوم بتهيئة وسيطة الإدخال لـ i = 1: Nx لـ j = 1: Mx if x (i, j) = -pi غير مطلوب! ذ (ط، ي) = س (ط، ي) / بي؛ آخر y (i, j) = - cos(x (i, j)) نهاية النهاية 23

يعد بيان التبديل مناسبًا للاستخدام عندما يكون هناك توافق بين القيم المنفصلة لبعض الإجراءات المتغيرة واللاحقة. 24

يمكن رؤية بنية العامل من المثال التالي: تبديل الحالة -1 disp ('a = -1') الحالة 0 disp ('a = 0') وإلا disp ('a لا يساوي -1، 0) ") نهاية 25

يعتبر مشغل التبديل مناسبًا تمامًا لحل مهمة رسم الرسوم البيانية المختلفة للوظيفة قيد الدراسة (سطح الإطار (a=1)، وخطوط المستوى (a=2)، وما إلى ذلك). 26

التعبيرات المنطقية مع المصفوفات والأرقام بطريقة عالميةتتم معالجة بيانات المصفوفة باستخدام العمليات المنطقية. بما أن MATLAB يمثل الأرقام كمصفوفات 1 × 1، فمن الطبيعي أن نتوقع أن المصفوفات يمكن أن تظهر في تعبيرات منطقية. سننظر الآن في توسيع العمليات المنطقية والعلائقية لتشمل حالة المصفوفات. 27

العمليات العلائقية يمكن أن تكون نتيجة العملية العلائقية في MATLAB إما منطقية ("صحيح") أو صفر منطقي ("خطأ"). علاوة على ذلك، على عكس العديد من لغات البرمجة، يمكن استخدام المتغيرات الحسابية بنفس التعبير مع المتغيرات المنطقية. 28

Src="https://present5.com/presentation/c993b082b44b0b84b1886b8dd4d3c841/image-29.jpg" alt="مثال 6 > أ = 1; ب = 3; ج = 1; >"> Пример 6 > a = 1; b = 3; c = 1; > a + (b > c) ans = 2 > a + (b!}

Src=====BC=30

ملاحظة كما هو الحال في عنصر بعنصر عمليات حسابيةفمن المقبول استخدام الأرقام كأحد وسيطات عملية العلاقة. في هذه الحالة، تتم مقارنة كل عنصر من عناصر المصفوفة برقم، وتكون النتيجة مصفوفة بنفس حجم العنصر الأصلي. 31

العمليات المنطقية يؤدي تطبيق العمليات المنطقية على المصفوفات إلى تنفيذها عنصرًا تلو الآخر على عناصر المصفوفة. n A وB - يعطي واحدًا إذا كانت العناصر المقابلة لا تساوي الصفر؛ n A أو B - يعطي واحدًا إذا كان عنصر واحد على الأقل ليس صفرًا؛ 32

ليس A - ينطبق على صفيف واحد، إذا كان العنصر لا يساوي الصفر، فسيتم تعيين الصفر، وإلا - واحد؛ n all (v) - يتحقق من وجود عناصر صفرية في المتجه، ويعيد واحدًا إذا لم يكن هناك عناصر صفرية. إذا كانت v مصفوفة، فإن النتيجة تكون حسب العمود؛ n أي (v) – يُرجع واحدًا إذا كان متجه الإدخال يحتوي على عنصر واحد غير صفري على الأقل. ن 33

أولوية العمليات 1. الإنكار؛ 2. التحويل، الأسي (بما في ذلك العناصر)، علامات الزائد والناقص أمام الرقم؛ 3. الضرب والقسمة (بما في ذلك العناصر الحكيمة)؛ 4. الجمع والطرح. 5. العمليات العلائقية. 6. منطقي "و" أو منطقي "أو". 34

Src="https://present5.com/presentation/c993b082b44b0b84b1886b8dd4d3c841/image-36.jpg" alt=" مثال 7 > a = ; > u"> Пример 7 > a = ; > u = find ((a = -1)) 3 4 5 > anew = a(u) 0 -1 0 36!}

مثال 8: استبدل بشكل مستقل عناصر مصفوفة مربعة مكونة من 5 × 5 أرقام عشوائية من الفاصل الزمني (0، 1)، أكبر من متوسط ​​قيمة جميع العناصر بنسبة 10%، بالقيمة المتوسطة. الحل > أ = راند(5); > S = مجموع (مجموع أ) / 25؛ > A(find (A > S* 1.1)) = S في هذه الحالة، تنتج دالة البحث متجهين لأرقام الصفوف وأرقام الأعمدة. 37

كثيرات الحدود في MATLAB كثيرات الحدود p (x) =anxn+an-1 xn-1+. . . +a 0، an≠ 0 في MATLAB تم تحديد بنية المتجه p=، حيث ai هي أي أرقام مركبة، an≠ 0. لاحظ أنه يتم حساب درجة كثير الحدود على النحو التالي: n=length(p)-1 (لـ n=0 اتضح const ). 38

الأوامر الرئيسية للعمل مع كثيرات الحدود هي كما يلي: n n n r=roots(р) – متجه عمود يحتوي على جميع جذور كثيرات الحدود؛ p=poly(r) – بناء كثير الحدود من الجذور المحددة في متجه العمود r، وإذا r مصفوفة مربعة، ثم p هو كثير الحدود المميز؛ y=polyval(p, x) - حساب عنصر بعنصر لقيم كثير الحدود p في المجموعة x، حيث يمكن أن يكون x متجهًا أو مصفوفة؛ 39

n n n polyder(p) – مشتق متجه الصف من p (تمايز كثير الحدود p); polyder(p, q) – مشتق من منتج كثيرات الحدود p و q; = polyder(p, q) - مشتق من حاصل كثير الحدود p و q، حيث a و b هما البسط والمقام للكسر الناتج؛ 40

n n n p=polyfit(x, y, n) – تقريب الدالة y(x) بواسطة كثير الحدود p الدرجة التاسعةباستخدام طريقة تقلل المسافة بين الرسم البياني متعدد الحدود وحقيقة المنحنى، بمتوسط ​​طولهما بالكامل؛ conv(p, q) - متجه الصف، منتج كثيرات الحدود p و q؛ =deconv(p, q) - قسمة p على q، مع حاصل w وr-الباقي وp=conv (q, w) +r; 41

n =residue(a, b) – تحليل دالة عقلانية إلى كسور بسيطة في مجال الأعداد المركبة، مع تسليط الضوء على الجزء الصحيح k(x) أو حيث تكون ri بقايا (العناصر r)، وpi عبارة عن أقطاب (العناصر p). يعمل هذا الأمر أيضًا بشكل عكسي =residue(r, p, k) 42

ملاحظة 1. إذا كان في البقايا (a، b) متعدد الحدود b(x) وفي الجذور (p) متعدد الحدود p(x) له جذور متعددة أو قريبة من بعضها البعض، فقد تكون النتائج غير صحيحة، لأن مثل هذا المشكلة غير مشروطة. التكييف السيئ هو اعتماد قوي للغاية للنتيجة على المعاملات (مماثل لاستقرار الحل في المعادلات التفاضلية). 43

2. عند العمل مع كثيرات الحدود، تنشأ متعددات الحدود من النموذج، لكن MATLAB لا يتحقق تلقائيًا من ≠ 0، وتحدث أخطاء (تحتاج إلى مراقبتها بنفسك). 44

القسم: تكنولوجيا المعلومات

البرمجة فيماتلاب

العاملينماتلاب

· تصريحات حلقة

دورةل

بناء الجملة

للعد = البداية: الخطوة: النهائية

أوامر ماتلاب

وصف

العد هو متغير حلقة،

البداية - قيمتها الأولية،

نهائي - قيمته النهائية،

الخطوة - الخطوة التي يزداد بها العدد مع كل إدخال لاحق في الحلقة

تنتهي الحلقة بمجرد أن تصبح قيمة العد أكبر من القيمة النهائية.

مثال

يجب أن يكون من الضروري استخلاص مجموعة من المنحنيات لـ x€، والتي يتم تحديدها بواسطة دالة تعتمد على المعلمة

ذ (س، أ) = الخطيئة الإلكترونية س،

للمعلمة قيم من -0.1 إلى 0.1. فيما يلي قائمة بملف البرنامج لعرض مجموعة من المنحنيات.

قائمة البرنامج

س = ;

ل = -0.1:0.02:0.1

y = exp (-a*x).*sin(x);

نتيجة تنفيذ البرنامج ستظهر نافذة رسومية تحتوي على عائلة المنحنيات المطلوبة.

دورةبينما

بناء الجملة

أثناء حالة الحلقة

أوامر ماتلاب

وصف

تعمل الحلقة طالما أن شرط الحلقة صحيح. لتعيين شرط تنفيذ الحلقة، يُسمح بالعمليات العلائقية التالية:

يتم تحديد شروط أكثر تعقيدًا باستخدام عوامل التشغيل المنطقية. يتم إعطاء العوامل المنطقية في الجدول التالي

مثال

مشغلي الفروع

العامل الشرطيلو

بناء الجملة

إذا كان الشرط

أوامر ماتلاب

وصف

إذا كان الشرط صحيحًا، فسيتم تنفيذ أوامر MATLAB الموجودة بين if وend، وإذا كان الشرط غير صحيح، فسيتم تنفيذ الأوامر الموجودة بعد end.

مثال

العامل الشرطيelseif

بناء الجملة

إذا الشرط1

شرط آخر 2

………………………

شرط آخر

وصف

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

مثال

المشغل أو العامليُحوّل

بناء الجملة

متغير التبديل

قيمة الحالة1

قيمة الحالة 2

……………………

معنى الحالة

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

مثال

انقطاع الدورة. حالات استثنائية.

المشغل أو العاملاستراحة

بناء الجملة

يُستخدم عامل Break لتنظيم العمليات الحسابية الدورية: for...end، while...end. عندما يتم استيفاء الشرط

إذا كان الشرط

ينهي بيان الاستراحة الحلقة (لأو أثناء) ويتم تنفيذ العبارات الموجودة في الأسطر التالية للنهاية. في حالة الحلقات المتداخلة، يخرج الكسر من الحلقة الداخلية.

معالجة الاستثناء، المشغليحاوليمسك

بناء الجملة

التصريحات التي تنفيذها

قد يسبب خطأ

تصريحات ليتم تنفيذها

عند حدوث خطأ في الكتلة

بين المحاولة والقبض

وصف

تسمح لك بنية Try...catch بتجاوز حالات الاستثناء (الأخطاء التي تؤدي إلى إنهاء البرنامج، على سبيل المثال، الوصول إلى ملف غير موجود) واتخاذ بعض الإجراءات في حالة حدوثها.

مثال

خدمةالمهام

ديسبلاي- إخراج نص أو قيمة متغيرة إلى نافذة الأوامر

مدخل- طلبات الإدخال من لوحة المفاتيح. يُستخدم عند إنشاء التطبيقات باستخدام واجهة سطر الأوامر.

تقييم - ينفذ محتويات سلسلة أو متغير سلسلة، مثل أوامر MATLAB

واضح- حذف متغيرات بيئة العمل.

معإل سي- مسح نافذة الأوامر

يمكن العثور على مزيد من المعلومات حول هذه الوظائف وغيرها من خلال التشغيل في سطر الأوامر

يساعداسم وظيفة

مهاملأداء العمل المختبري

يتم تحديد عدد خيار المهمة المحددة من قبل المعلم.

يمارس1

تتضمن هذه المهمة إيجاد استيفاء جبري متعدد الحدود من الدرجة n لمجموعة معينة من البيانات: صن(س) .

الهدف من العمل:

من الضروري إنشاء برنامج لحساب معاملات الاستيفاء الجبري متعدد الحدود صن(س)= أ0 + أ1 س+ + أنسن.

القواعد الارشادية:

Xأنا

ذأنا

احتمال أ0 , أ1 , …, أنيتم تحديدها من حل نظام المعادلات:

هنا ن- ترتيب الاستيفاء متعدد الحدود،

ن+1 - عدد أزواج النقاط المعطاة ( س, ذ),

أ0 , أ1 ,… أن- المعاملات المطلوبة من كثير الحدود صن(س)= أ0 + أ1 س+ + أنسن).

متطلبات البرنامج

· تعيين حدود المقطع ، والتي تم بناء الاستيفاء متعدد الحدود عليها ف (س)

· تعيين ن- عدد مقاطع الاستيفاء (أو، وهو نفس الشيء، درجة كثير الحدود)

ملحوظة: x0, xn, نتم الدخول من لوحة المفاتيح

· الحصول على البيانات الأولية (x, ذ) (عدد أزواج النقاط (xأنا, ذأنا) ، والتي يتم من خلالها إنشاء الاستيفاء متعدد الحدود ف (س) - ن1=ن+1) يمد:

ب إدخال العقد الموجودة بشكل عشوائي سأنا, أنا = 0, نمن لوحة المفاتيح

ь حساب العقد سأنا، ط=0, ن, المقابلة للترتيب الموحد للحجة سعلى الجزء

ب في الفقرات. 1.2 القيم ذأنا، ط=0, نإما تم إدخالها من لوحة المفاتيح (إذا كانت الوظيفة المصدر غير معروفة) أو تم حسابها من وظيفة معينة و (خ). يتم إدخال التعبير الذي يحدد الوظيفة من لوحة المفاتيح ويجب أن يتوافق مع قواعد كتابة التعبيرات في MATLAB

مدخل بيانات ( سأنا, ذأنا, أنا = 0, ن) من - الملف

· حل نظام من المعادلات لتحديد معاملات كثيرة الحدود P(x)

· إنشاء رسوم بيانية للدالة الجدولية الأصلية ومتعددة الحدود P(x)

· إذا تم إعطاء البيانات المصدر كدالة f(x)، قم برسم خطأ الاستيفاء /f(x) - P(x)/. احسب القيمة المطلقة القصوى لخطأ الاستيفاء عند فترة زمنية معينة.

يمارس2

استيفاء الخط

الهدف من العمل:

من الضروري إنشاء برنامج لحساب المعاملات وإنشاء دالة شريحة S(x)، "ملتصقة ببعضها البعض" من أجزاء من متعددات الحدود من الدرجة الثالثة S أنا(س), والتي لها نموذج تسجيل خاص:

المهام أنا(س) المحددة على الجزء،

متطلبات البرنامج

عند القيام بهذا العمل يجب عليك:

· تعيين حدود الجزء الذي تم إنشاء وظيفة الشريحة S(x) عليه

· مجموعة n - عدد مقاطع الاستيفاء، التي تم بناء كل منها على متعدد الحدود المكعب Si(x).

· ملاحظة: يتم إدخال x0، xn، n من لوحة المفاتيح.

· تنظيم إدخال البيانات الأولية (x, y) (عدد أزواج النقاط (xi, yi) التي يتم من خلالها إنشاء دالة الشريحة S(x), n1=n+1)، مع توفير ما يلي:

ب إدخال العقد الموجودة بشكل عشوائي xi، i=0، n من لوحة المفاتيح

ب حساب العقد xi، i=0، n، المقابلة للموقع الموحد للوسيطة x على المقطع

ب في الفقرات. 1,2 يتم إدخال قيم yi، i=0، n إما من لوحة المفاتيح (إذا كانت الوظيفة الأصلية غير معروفة) أو يتم حسابها من دالة معينة f(x). يتم إدخال التعبير الذي يحدد الوظيفة من لوحة المفاتيح ويجب أن يتوافق مع قواعد كتابة التعبيرات في MATLAB

ب أدخل البيانات (xi، yi، i=0، n) من الملف

ب S1""(x0)=0، S3""(x3)=0

ب S1"(x0)=f "(x0)، S3"(x3)=f "(x3)

ب S1""(x0)=f "(x0)، S3""(x0)=f "(x3)

· لتحديد معاملات الخط المكعب الطبيعي (الشروط الحدية 1) من الضروري حل نظام المعادلات التالي:

المعاملات؟0 =0،؟ن =0

· إنشاء رسوم بيانية للدالة الأصلية ووظائف الخط لجميع الأنواع الثلاثة من الشروط الحدودية.

· إنشاء رسوم بيانية لدوال خطأ الاستيفاء للخط f(x) - S(x) لجميع الأنواع الثلاثة من الشروط الحدودية.

ملحوظة:

في MATLAB، تبدأ فهارس المصفوفات أحادية البعد وثنائية الأبعاد من 1، وليس من 0. ضع ذلك في الاعتبار عند إنشاء البرنامج.

يمارس№3

تقريب الدالة باستخدام طريقة المربعات الصغرى (LSM).

تتضمن هذه المهمة إيجاد دالة تقريبية (متعددة الحدود من الدرجة m) لمجموعة معينة من البيانات، تم إنشاؤها بواسطة طريقة المربعات الصغرى (LSM).

الهدف من العمل:

هل تحتاج إلى إنشاء برنامج لإيجاد معاملات كثيرة الحدود؟ (س)= أ0 + أ1 * س+… أن * سمطريقة المربعات الصغرى.

لنفترض، على سبيل المثال، مجموعة البيانات التالية:

Xأنا

ذأنا

يتم البحث عن المعاملات اللازمة على النحو التالي:

أين ن - عدد النقاط ( س, ذ),

م - درجة كثير الحدود المطلوب،

أ 0 , أ 1 , …, أ م - المعاملات المطلوبة ( ? ( س )= أ 0 + أ 1 س + … + أ م س م ).

متطلبات البرنامج

عند القيام بهذا العمل يجب عليك:

· تعيين حدود القطعة التي بنيت عليها الدالة التقريبية؟(x)=a0+a1*x+… an * xm

· تعيين م - درجة كثير الحدود

· ملاحظة: يتم إدخال x1, xn, m من لوحة المفاتيح.

· للحصول على البيانات الأولية (x, y) التي تم بناء الدالة التقريبية منها؟ (x)=a0+a1*x+… an* xm، قدم:

ب إدخال العقد الموجودة بشكل عشوائي xi، i=1، n من لوحة المفاتيح

ب حساب العقد xi، i=1، n، المقابلة للموقع الموحد للوسيطة x على المقطع

ب في الفقرات. 1,2 يتم إدخال قيم yi، i=1، n إما من لوحة المفاتيح (إذا كانت الوظيفة الأصلية غير معروفة) أو يتم حسابها من دالة معينة f(x). يتم إدخال التعبير الذي يحدد الوظيفة من لوحة المفاتيح ويجب أن يتوافق مع قواعد كتابة التعبيرات في MATLAB

ب أدخل البيانات (xi، yi، i=1، n) من الملف

· حل نظام المعادلات لتحديد معاملات كثيرة الحدود؟(x)

· إنشاء رسوم بيانية للدالة الجدولية الأصلية ومتعددة الحدود؟(x)

· إذا تم إعطاء البيانات المصدر كدالة f(x)، قم برسم خطأ الاستيفاء /f(x) - ?(x)/. احسب القيمة المطلقة القصوى لخطأ الاستيفاء عند فترة زمنية معينة.

عند تنفيذ النقطة الأخيرة على المقطع خذ ما لا يقل عن 500 نقطة لإجراء العمليات الحسابية

متطلبات العمل في المختبر

يجب أن يحتوي التقرير على:

1. بيان المشكلة

2. نص البرنامج

3. نتائج الاختبار

ملاحظة: يجب أن تكون نصوص البرنامج مرفقة بالتعليقات.

فهرس

1. أنوفرييف آي. دليل التعليمات الذاتية Matlab 5.3/6.x - سانت بطرسبرغ: BHV-Petersburg، 2003. - 736 صفحة: مريض.

2. ف.ب. Dyakonov MATLAB 6.5 SPI/7 + Simulink 5/6 في الرياضيات والنمذجة. سلسلة "مكتبة المحترفين". - م: مطبعة سولون، 2005. - 576 ص: مريض.

3. أنوفريف آي.إي.، سميرنوف إيه.بي.، سميرنوفا إي.إن. MathLab 7. - سانت بطرسبرغ: BHV-Petersburg، 2005. - 1104 ص: مريض.

في كثير من الأحيان، عند تنظيم حلقة، تحتاج إلى التكرار من خلال قيمة عداد في نطاق معين من القيم وبخطوة تغيير معينة. على سبيل المثال، للتكرار عبر عناصر المتجه (المصفوفة)، تحتاج إلى تنظيم عداد من 1 إلى N بخطوة 1، حيث N هو عدد عناصر المتجه. لحساب مجموع السلسلة، يتم أيضًا تحديد عداد من a إلى b مع خطوة خطوة التغيير المطلوبة. وما إلى ذلك وهلم جرا. نظرًا لحقيقة أن مثل هذه المهام غالبًا ما تتم مواجهتها في ممارسة البرمجة، فقد تم اقتراح مشغل حلقة for لتنفيذها، مما يجعل تنفيذ حلقة باستخدام عداد أسهل وأكثر وضوحًا.

بناء جملة مشغل الحلقة كما يلي:

ل<счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
نهاية

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

وظيفة البحث_ماكس
أ = ;
م = أ(1); % القيمة القصوى الحالية
لـ i=1:length(a) % حلقة من 1 إلى نهاية المتجه c
% في خطوات 1 (افتراضي)
إذا م< a(i) % если a(i) >م،
م = أ(ط); % ثم م = أ(ط)
نهاية
نهاية % نهاية للحلقة
ديس(م);

في هذا المثال، تقوم حلقة for بتعيين العداد i وتغيير قيمته من 1 إلى 10 في خطوات من 1. لاحظ أنه إذا لم يتم تحديد حجم الخطوة بشكل صريح، فسيتم اعتباره افتراضيًا ليكون 1.

في المثال التالي، سننظر في تنفيذ الخوارزمية الخاصة بإزاحة العناصر المتجهة إلى اليمين، أي. يتم وضع العنصر قبل الأخير في مكان العنصر الأخير، والعنصر التالي في مكان العنصر قبل الأخير، وما إلى ذلك. إلى العنصر الأول:

قائمة انتظار الوظائف
أ = ;
ديس(أ);
بالنسبة إلى i=length(a):-1:2% دورة من 10 إلى 2 مع الخطوة -1
أ(ط)=أ(ط-1); % إزاحة عناصر المتجه أ
نهاية % نهاية للحلقة
ديس(أ);

نتيجة البرنامج

3 6 5 3 6 9 5 3 1 0
3 3 6 5 3 6 9 5 3 1

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

في الختام، دعونا نلقي نظرة على تشغيل عامل حلقة for باستخدام مثال نمذجة تسلسل عشوائي باستخدام قانون التغيير

أين المعامل من -1 إلى 1؛ - متغير عشوائي عادي مع صفر التوقع والتباين الرياضي

,

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

النمذجة الوظيفية_x
ص = 0.95؛ معامل النموذج٪
ن = 100؛ النسبة المئوية لعدد النقاط المحاكاة
على سبيل المثال = 100؛ % تباين العملية
et = ex*(1-r^2); % تباين الإضافة العشوائية
س = الأصفار(N,1); % تهيئة المتجه x
x(1) = sqrt(ex)*randn; محاكاة٪ للعينة الأولى
لـ i=2:N % دورة من 2 إلى N
x(i)=r*x(i-1)+sqrt(et)*randn; نمذجة٪ SP
نهاية % نهاية الحلقة
مؤامرة (خ) ؛ عرض٪ SP كرسم بياني

عند تشغيل هذا البرنامج، سيتم عرض تنفيذ تسلسل عشوائي محاكى.

أرز. 2.1. نتيجة نمذجة التسلسل العشوائي.

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

x(1) = sqrt(ex)*randn;

بعد ذلك، يتم تنفيذ حلقة for باستخدام العداد i من 2 إلى N مع الخطوة 1. داخل الحلقة، تتم محاكاة عينات N-1 المتبقية من العملية العشوائية وفقًا للصيغة المذكورة أعلاه. يحتوي السطر الأخير من البرنامج على الدالة Plot() التي تعرض التسلسل المحاكى على الشاشة في شكل رسم بياني. ستتم مناقشة العمل مع عرض الرسوم البيانية على الشاشة بمزيد من التفصيل في الفصل التالي.



تحميل...
قمة