| |
|
 |
أساسيات
Matlab |
|
|
الدرس السادس(2)
|
|
عمل المعادلات |
|
ترقيم
المصفوفات |
| بعد عملية انشاء المصفوفات ربما تحتاج الى عنصر واحد موجود في
المصفوفة لتطبق عليه بعض العمليات وهنا تظهر فائدة الترقيم يبدأ الترقيم عن
طريق رقم الصف ثم رقم العمود والصف رقم واحد هو اعلى صف والعمود رقم واحد هو
العمود الموجود على الشمال دعنا نرى المثال التالى عن طريق المتجهين التاليين |
|
my_vector1 = [1 5 7] my_vector1 =
my_vector2 = [1; 5;
7] my_vector2 =
my_vector1(1) ans =
1
my_vector2(2) ans = 5
my_vector1(3) ans = 7
my_vector2(1) ans = 1
my_vector2(2) ans = 5
my_vector2(3) ans = 7
|
| رأينا في المثال السابق اننا نتعامل مع المتحهه اى اننا نحتاج
الى رقم واحد فقط ليحدد لنا مكان العنصر ويتم وضع هذا الرقم بين قوسين ولكن فى
حالة المصفوفات نحتاج الى رقم الصف ثم رقم العمود كما فى المثال التالى |
|
my_matrix = [8, 12, 19; 7, 3, 2;
12, 4, 23; 8, 1, 1]
my_matrix =
|
8 |
12 |
19 |
|
7 |
3 |
2 |
|
12 |
4 |
23 |
|
8 |
1 |
1 |
|
| لو كان نريد العنصر رقم 4 ثم نكتب الاتى |
|
my_matrix(3,2)
ans
= 4
|
| ليس فقط يمكننا تحديد عنصر واحد فى المصفوفة ولكن يمكننا تحديد
مجال في المصفوفة فاذا كان لدينا مصفوفة تحتوى على 5 صفوف و 7 اعمدة ونريد
تحديد العناصر من 2 الى 4 في الصفوف و من 4 الى 7 في حالة الاعمدة فاتبع المثال
التالى لتفهم اكثر |
|


new_mat =
mat(2:4,4:7)

|
|
ويمكننا ايضا تغيير قيمة عنصر فى مصفوفة بقيمة اخرى عن طريق تحديد
مكان العنصر وكتابة القيمة الجديدة كما ترى في المثال التالى |
new_mat

new_mat(2,3) =
1999

|
|
لاحظ ان المتجهه هو حالة خاصة من المصفوفة اى ما فعلناه على
المصفوفة يطبق على المتجهه
هناك انواع اخرى من المصفوفات ولكننا شرحنا هنا فقط لتفهم
مبادئ المتلاب لمعرفة اكثر انظر الى مساعدة البرنامج او انتظر الدروس القادمة
ولكن للمحترفين |
|
العمليات
على
عناصر
المصفوفات |
|
قبدا ان نبدأ بشرح هذه الجئية دعنا نعرف ما هو
العنصر العنصر ببساطة هو واحد من الارقام المخزنة بالمصفوفة وتعنى انه عند ضرب
مصفوفان عنصر عنصر فان ناتج الضرب يكون عنصريا كما فى المثال التالى المصفوفة
الاولى (1 2 3 ) والمصفوفة الثانية (4 5 6) حاصل ضرب هاتين المصفوفتين
هما (4 10 18 ) لاانا قمنا بضربهم عنصر في عنصر مباشرا ولعمل هذا بالمتلاب يجب
وضع نقطة قبل العملية مثل
عملية الضرب :
".*"
عملية الجمع
".+"
عملية الطرح
"-"
عملية الاس
".^"
لاحظ الخطأ عندما تقوم بتطبيق عمليات عنصر
لعنصر للموصفوفات لضرب متجه يحتوى على عمود مع متجهه يحتوى على صف مع بعضهم |
a
a = 1 2 3
b
b = 4
5 6
c
c = 4 5 6
d
d =
1 2 3
a .* b
ans = 4
10 18
a .* c
??? Error using ==> .* Matrix dimensions must
agree.
c .* d
ans =
4 10 18
a .^ b
ans = 1
32 729
c .^ d
ans = 4 25 216
|
|
نفس هذه الخطوات تطبق مع الارقام مثلا لو كنا
نريد ضرب مصفوفة في رقم 2 او نريد جمع رقم عليها او نرفها لاس رقم انظر المثال
التالى |
a = [1 2 3 4 5 6]
a
= 1 2 3 4 5 6
b = a .* 2
b =
2 4 6 8 10 12
c = a .^ 2
c =
1 4 9 16 25 36
d = a + 2
d = 3
4 5 6 7 8
e = a - 2
e =
-1 0 1 2 3 4
|
|
لعلك الان تتسائل لماذا نضع نقطة قبل وضع
ادارة عمليات الضرب والقسمة والاس لان هناك نوعان من العمليات التى تتم على
المصفوفات عمليات العناصر او عنصر بعنصر ويوضع بها نقطة وحسابات المصفوفات
العادية ولا يوضع بها نقطة ويكون لها نتائج مختلفة وتستعمل استعمالات اخرى
الاغلبية يعرفونها في الرياضيات كما ترى في المثال التالى |
a = [1 2 3]
a =
1 2 3
b = [4 ; 5 ; 6]
b =
4 5 6
a * b
ans =
32
|
|
لاحظنا ان الناتج النهائى لضرب المفوفتين هما
32 لانه قام بضرب 1*4 و 2*5 و 3*6 ثم جمع نتائج هذه العمليات اى 4+10+18=32
فهمت الان اعتقد ذلك |
|
تطبيقات على كل ما تعلمناه |
|
اعتقد الان انك فهمت كيفية انشاء مصفوفة
وكيفية اجراء العمليات الاساسية عليها دعنا الان نقوم بعمل تطبيق الا وهو
نريد حساب قيمة y
مع اعطاء قيمة x
حدود من 100 الى-100 بزيادة 1 للمعادلة التالية
y=x^2
اانظر الى الحل جيدا |
|
inc = 1; %
هى القيمة المراد الزيادة من 100 الى -100
x = -100:inc:100;
y = x.^2; %
حساب مربع كل قيمة في المصفوفة
|
|
اعتقد الان ان الموضوع فى غاية البساطة |
|
نحتاج الان الى تحديد عدد العناصر الموجودة في المصفوفة او طول
المصفوفة كما يقولون حيث تقوم الدالة lengthبايجاد طول المصفوفة انظر
المثال التالى ليوضح الموضوع اكثر |
len_x = length(x)
len_x =
201
midpoint_index =
round(len_x/2)
midpoint_index =
101
new_x_range =
x(midpoint_index-2:midpoint_index+2)
new_x_range = -2
-1 0 1 2
new_y_range =
y(midpoint_index-2:midpoint_index+2)
new_y_range = 4 1
0 1 4
|
|
ملحوظة : الدالة round تقوم بايجاد اقرب عدد صحيح للعدد العشرى |
|
وهذا مثال اخر ليراجع لك على ما تعلمته في الدروس السابقة وارجو
التأنى في القراءة وفهم اسطر البرنامج |
input_points = [-pi : pi/8 :
pi]
input_points =
Columns 1 through 7 -3.1416 -2.7489 -2.3562 -1.9635 -1.5708
-1.1781 -0.7854
Columns 8 through 14 -0.3927 0 0.3927 0.7854 1.1781 1.5708
1.9635
Columns 15 through 17 2.3562 2.7489
3.1416
sine_curve = 3*sin(5.*input_points)
sine_curve
=
Columns 1 through 7 0.0000 -2.7716 2.1213 1.1481 -3.0000
1.1481 2.1213
Columns 8 through 14 -2.7716 0 2.7716 -2.1213 -1.1481 3.0000
-1.1481
Columns 15 through 17 -2.1213 2.7716 0.0000
|
|
مع العلم ان pi هو ثابت رياضى يساوى 3.14
والى لقاء اخر فى دروس اخرى انشاء الله
ولا نرجو منكم الا الدعاء الخالص لوجه الله |
|
1 |
2
| 3 |
4 | 5
| 6.1 |
6.2 |
7.1
| 7.2 | 8 |
9 |
10 |