Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

‫بسم هللا الرحمان الرحيم‬

‫والصالة والسالم على محمد ابن عبد هللا‬

‫الجبر من كراس ‪ 2‬جامعي‬

‫الجبر المتقدم من كراس حريش‬

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

‫اإلختصارات الموجودة‬

‫إقتراحات على اإلختصارات‬

‫الضغط الرياضي‬
‫األشعة‪:‬‬

‫)‪numpy.array([]).astype(float‬‬ ‫في البايثون األشعة و المصفوفات يمكن نمدجتها بواسطة‬

‫مثال الشعاع األفقي ‪ a⃗ =[ 1 ,2 , 5 ,6 ] Row Vector‬يكتب كما يلي‪:‬‬

‫)‪a = numpy.array([1,2,5,6]).astype(float‬‬

‫][‬
‫‪1‬‬
‫‪2‬‬
‫= ⃗‪ b‬يكتب كمايلي ‪:‬‬ ‫الشعاع العمودي‪Colunm Vector‬‬
‫‪5‬‬
‫‪6‬‬

‫)‪b = numpy.array([[1],[2],[5],[6]]).astype(float‬‬

‫الطويلة و شعاع الوحدة ‪:‬‬


‫الطويلة هي عدد يتعلق بمقدار العناصر المشكلة للشعاع أو المصفوفة‪ ،‬أي أن الطويلة عبارة عن دالة تحول شعاع أو مصفوفة إلى‬
‫عدد موجب‪.‬‬
‫‪‖⃗v‖≥ 0 ,‖⃗v‖=0 if ∧only if ⃗v = ⃗0‬‬
‫‖‪‖c v⃗‖=c‖⃗v‬‬
‫⃗‪‖⃗v +‬‬
‫⃗‖‪w‖≤‖⃗v‖+‬‬
‫‖‪w‬‬
‫هناك عدة أنواع من الطويالت تصنف حسب رتبتها‪:‬‬
‫|‪‖⃗v‖∞ =maxi|v i‬‬
‫‪n‬‬
‫|‪‖⃗v‖1=∑ |v i‬‬
‫‪i=1‬‬

‫) | |∑(‬
‫‪n‬‬ ‫‪1‬‬
‫=‪‖⃗v‖2‬‬
‫‪i=1‬‬
‫‪vi‬‬
‫‪2 2‬‬
‫√‬ ‫‪2‬‬ ‫‪2‬‬
‫|‪= |v 1| +|v 2| + …+|v n‬‬
‫‪2‬‬

‫الطويلة من الرتبة الثانية تعرف ب مسافة إقليدس يمكن نمدجتها بواسطة ‪ numpy‬كما يلي‪:‬‬

‫‪import numpy.linalg as la‬‬

‫)]]‪la.norm([[5.0],[3.0‬‬
‫أشعة الوحدة وهي األشعة اللتي طويلتها تساوي الواحد وتحسب كمايلي‪:‬‬

‫][‬
‫‪xu‬‬
‫‖‪‖⃗u‬‬
‫= ⃗‪u‬‬
‫‪yu‬‬
‫‖‪‖⃗u‬‬

‫‪import numpy.linalg as la‬‬


‫)]]‪u= numpy.array([[2],[7‬‬
‫)‪u_norm=la.norm(u‬‬
‫‪u_unit=u/u_norm‬‬

‫العمليات على األشعة‪:‬‬

‫يمكن جمع شعاعين ⃗‪ a‬و ⃗‪ b‬إدا و فقط إدا كان لهما نفس ع دد األس طر ‪ ،‬الجم ع يتم ع بر جم ع ك ل عنص رين من ⃗‪ a‬و ⃗‪ b‬لنفس‬
‫السطر بمعنى ‪:‬‬

‫‪c⃗ =⃗a + ⃗b‬‬

‫] [] [‬
‫‪a 1 b1‬‬
‫‪a‬‬ ‫‪b‬‬
‫‪c⃗ = 2 + 2‬‬
‫‪a3 b 3‬‬
‫‪a4 b 4‬‬

‫] [‬
‫‪a1 + b1‬‬
‫‪a +b‬‬
‫‪c⃗ = 2 2‬‬
‫‪a 3 + b3‬‬
‫‪a4 + b4‬‬

‫)]‪a = np.array([10,15‬‬
‫)]‪b = np.array([8,2‬‬
‫‪c = a + b‬‬

‫خصائص الجمع‪:‬‬

‫‪u⃗ + ⃗v =⃗v + ⃗u‬‬ ‫‪.1‬‬


‫⃗‪u⃗ + ( ⃗v +‬‬
‫⃗ ‪w )=( ⃗u + ⃗v )+‬‬
‫‪w‬‬ ‫‪.2‬‬
‫‪u⃗ + 0⃗ =⃗u‬‬ ‫‪.3‬‬
‫‪1∗⃗u =⃗u‬‬ ‫‪.4‬‬
‫‪k . ( ⃗u + ⃗v )=k . ⃗u +k . ⃗v‬‬ ‫‪.5‬‬
‫‪( k + m ) . ⃗v =k . ⃗v +m . ⃗v‬‬ ‫‪.6‬‬
:Inner product ‫الجداء السلمي أو الجداء الداخلي‬

‫الجداء السلمي عبارة عن جداء بين شعاعين يكون بين شعاعين إحداهما أفقي و اآلخر عمودي بشرط أن يك ون ع دد األعم دة‬
‫ حاصل هدا الجداء ه و ث ابت ) أي أن الحاص ل ليس ش عاع و إنم ا‬،‫في الشعاع األفقي يساوي عدد الصفوف في الشعاع العمودي‬
(‫عدد‬

[]
y1
[ x1 x2 x3] y 2 = ( x 1 + y 1 ) + ( x 2+ y 2 ) + ( x 3+ y 3 )
y3

import numpy
x = numpy.array([1,2,5,6]).astype(float)
y = numpy.array([[1],[8],[15],[3]]).astype(float)
x_dot_y = numpy.dot(x, y)
print( x_dot_y)

‫ أو مباش رة‬numpy . transpose ( y ) ‫إدا ك ان الش عاعين كالهم ا أفقي أو عم ودي يجب تحوي ل أح دهما بإس تعمال الدال ة‬
y .T ‫بإستعمال‬

import numpy
x = numpy.array([1,2,5,6]).astype(float)
y = numpy.array([1,8,15,3]).astype(float)
yt = numpy.transpose(y)
x_dot_y = numpy.dot(x, yt)
print( x_dot_y)

import numpy
x = numpy.array([1,2,5,6]).astype(float)
y = numpy.array([1,8,15,3]).astype(float)
yt = y.T
x_dot_y = numpy.dot(x, yt)
print( x_dot_y)

x , ⃗y ) ‫⃗‖ و الزاوية بينهما‬x‖,‖⃗y‖ ‫يمكن حساب الجداء السلمي بطريقة أخرى إدا كان لدينا طويلة الشعاعين‬
: ‫ نستعمل المعادلة التالية‬angle ( ⃗

⃗x . ⃗y =‖⃗x‖‖⃗y‖ cos ( angle ( ⃗x , ⃗y ) )


import numpy
import numpy.linalg as la
angle = 38.49
angle = numpy.radians(angle)
x = numpy.array([1,2,5,6]).astype(float)
y = numpy.array([1,8,15,3]).astype(float)
‫‪yt = y.T‬‬
‫)‪x_dot_y =numpy.round(la.norm(x)*la.norm(yt)*numpy.cos(angle),0‬‬
‫)‪print(x_dot_y‬‬

‫نحول الزاوية من الدرجات إلى الرادي ان بإس تعمال )( ‪ ، numpy . radians‬بع د حس اب الج داء الس لمي نج د الت دوير إلى الوح دة‬
‫بإستعمال )( ‪numpy . round‬‬

‫تطبيق آخر للمعادلة السابقة وهو إيجاد الزاوية بين الشعاعين بحيث‪:‬‬

‫‪⃗x . ⃗y‬‬
‫=) ) ‪cos ( angle ( ⃗x , ⃗y‬‬
‫‖‪‖⃗x‖.‖⃗y‬‬

‫) ) ) ‪angle ( ⃗x , ⃗y ) =cos−1 ( cos ( angle ( ⃗x , ⃗y‬‬

‫‪import numpy‬‬
‫‪import numpy.linalg as la‬‬
‫)‪x = numpy.array([1,2,5,6]).astype(float‬‬
‫)‪y = numpy.array([1,8,15,3]).astype(float‬‬
‫‪yt = y.T‬‬
‫)‪x_dot_y = numpy.dot(x, yt‬‬
‫))‪cos_of_angle = numpy.divide(x_dot_y, la.norm(x)*la.norm(yt‬‬
‫)‪angle = numpy.arccos(cos_of_angle‬‬
‫)‪angle = numpy.rad2deg(angle‬‬
‫)‪print(angle‬‬

‫الدالة )(⁡ ‪ numpy . arccos‬هي ) ‪ cos−1 ( .‬و نحول من الراديان إلى الدرجات بإستعمال )(‪numpy . rad 2 deg‬‬

‫نقول عن شعاعين ‪ x‬و ‪ y‬أنهما متعامدين ( ‪ )orthognal‬إدا كان الجداء السلمي بينهما معدوما ‪⃗x . ⃗y =0 :‬‬

‫اإلسقاط‪:‬‬

‫الشعاع ‪ ⃗x projcted‬هو المسقط العمودي للشعاع ‪ ⃗x‬على الشعاع ‪ ،⃗y‬كما يعرف أيضا على أنه ظل الش عاع ‪ ⃗x‬على الش عاع ‪ ⃗y‬إدا‬
‫ما تم تسليط أشعة ضوئية عمودية على الشعاع ‪. ⃗y‬‬

‫أشعة الضوء‬

‫ظل على‬
: ‫يمكن إيجاد طويلة شعاع اإلسقاط كما يلي‬

‖⃗x projected‖ x⃗ . ⃗y
cos (θ )= =
‖⃗x‖ ‖⃗x‖ .‖⃗y‖

⃗x . ⃗y
‖x⃗ projected‖= ‖⃗y‖

:‫أما عن شعاع اإلسقاط يمكن إيجاده كما يلي‬

⃗x projected ‫⃗ وبتالي لهما نفس اإلتجاه ومختلفان فقط في الطويلة وبتالي ف إن عب ارة الش عاع‬y ‫شعاع اإلسقاط مطابق على شعاع‬
⃗y ‫هي طويلته مضروبة في شعاع الوحدة للشعاع‬

⃗y
⃗y unit =
‖⃗y‖

⃗x projected=‖⃗x projected‖. ⃗y unit

⃗x . ⃗y ⃗y
⃗x projected=
‖⃗y‖ ‖⃗y‖

⃗x . ⃗y
⃗x projected= 2
⃗y
‖⃗y‖

import numpy
import numpy.linalg as la
x = numpy.array([1,2,5,6]).astype(float)
y = numpy.array([1,8,15,3]).astype(float)
yt = y.T
x_dot_y = numpy.dot(x, yt)
norm_square_of_yt =numpy.square(la.norm(yt))
x_projected = numpy.divide(x_dot_y,norm_square_of_yt)*yt
print( x_projected)

[0.36789298 2.94314381 5.51839465 1.10367893]

:Cross product or Outer product ‫الجداء التصالبي أو الجداء الخارجي‬

import numpy
x = numpy.array([1,2,5]).astype(float)
y = numpy.array([1,8,15]).astype(float)
‫‪yt = y.T‬‬
‫))‪x_cross_y =print(numpy.cross(x, yt‬‬

‫اما المصفوفة فيمكن رأيتها على أنها مجموعة من األشعة األفقية ‪Row Vectors‬‬

‫] [‬
‫‪1 6 1‬‬
‫‪ [ 2 7‬و ] ‪ [ 1 8 3‬يمكن‬ ‫مث ال المص فوفة ‪ A= 2 7 4‬عب ارة عن ثالث أش عة أفقي ة هي ] ‪ [ 1 6 1‬و ] ‪4‬‬
‫‪1 8 3‬‬
‫نمدجتها كما يلي‪:‬‬

‫‪A = numpy.array([[1, 6, 1],‬‬


‫‪[2, 7, 4],‬‬
‫)‪[1, 8, 3]]).astype(float‬‬

‫للوصول إلى أحد عناصر المصفوفة يستعمل عنوان العنصر (‪ ،)index‬العنوان هو رتبة العنصر في الصف والعمود‪ ،‬ويكتب‬
‫كما يلي ]‪ ، A [row , col‬أي مثال العنصر ‪ 7‬يمكن الحصول عليه بالتعليمة ]‪ A [1 , 1‬حيث يبدأ العد من الصفر وليس من الواحد‬

‫[‬ ‫]‬
‫‪Row /col‬‬ ‫‪0‬‬ ‫‪1 2‬‬
‫‪0 1‬‬ ‫‪6‬‬ ‫‪1‬‬
‫=‪A‬‬
‫‪1 2‬‬ ‫‪7‬‬ ‫‪4‬‬
‫‪2 1‬‬ ‫‪8‬‬ ‫‪3‬‬

‫‪import numpy‬‬
‫‪A = numpy.array([[1, 6, 1],‬‬
‫‪[2, 7, 4],‬‬
‫)‪[1, 8, 3]]).astype(float‬‬
‫)]‪print(A[1,1‬‬
‫كما يمكن أيضا بهده الطريقة إختيار صف كامل ب ]‪ A [row , :‬مثال الصف األول يكتب كما يلي‪:‬‬

‫‪import numpy‬‬
‫‪A = numpy.array([[1, 6, 1],‬‬
‫‪[2, 7, 4],‬‬
‫)‪[1, 8, 3]]).astype(float‬‬
‫)]‪print(A[0,:‬‬
‫إختيار عمود معين بالتعليمة ]‪ A [:, col‬مثال العمود الثاني نحصل عليه ب ‪:‬‬

‫‪import numpy‬‬
‫‪A = numpy.array([[1, 6, 1],‬‬
‫‪[2, 7, 4],‬‬
‫)‪[1, 8, 3]]).astype(float‬‬
‫)]‪print(A[:,1‬‬

‫إختيار جزء من المصفوفة‪ ،‬مثال إختيار جزء من المصفوفة من الصف األول إلى الثاني و من العمود الثاني إلى العمود الثالث‬
‫ب ]‪A [0 :2 , 0 :2‬‬
‫‪import numpy‬‬
‫‪A = numpy.array([[1, 6, 1],‬‬
‫‪[2, 7, 4],‬‬
‫)‪[1, 8, 3]]).astype(float‬‬
‫)]‪print(A[0:2,0:2‬‬

‫نقول عن المصفوفة ‪ AT‬أنها ‪ Transpose‬للمصفوفة ‪ A‬إدا كان كل صف من ‪ A‬هو العمود في ‪: AT‬‬

‫‪T‬‬
‫‪Aij = A ji‬‬

‫] [‬
‫‪1 6 1‬‬
‫‪A= 2 7 4‬‬
‫‪1 8 3‬‬

‫] [‬
‫‪1 2 1‬‬
‫‪T‬‬
‫‪A =6 7 8‬‬
‫‪1 4 3‬‬

‫‪import numpy‬‬
‫‪A = numpy.array([[1, 6, 1],‬‬
‫‪[2, 7, 4],‬‬
‫)‪[1, 8, 3]]).astype(float‬‬
‫‪A_transpose = numpy.transpose(A) # or A_transpose = A.T‬‬
‫)‪print(A_transpose‬‬

‫إدا كانت المصفوفة ‪ A‬متناظرة ‪ Symmetric‬فإن ‪ ، A=A T‬ال تكون المصفوفة متناظر إال إدا كانت مربعة أي إال إدا كان‬
‫عدد األعمدة ‪ Columns‬تساوي عدد األسطر ‪. Rows‬‬

‫مصفوفة متناظرة معناها‬

‫‪a ij=a ji‬‬

‫حيث ‪ i‬يمثل السطر و ‪ j‬يمثل العمود في ‪a ij‬‬

‫المصفوفة المتناظرة المحدودة ‪: Symmetric Banded Matrices‬‬

‫هي مصفوفة متناظرة في مجال معين أي أنها خارج هدا المجال قيم المصفوفة معدومة‬

‫‪a ij=0 for j> i+ mA‬‬

‫حيث قيمة المجال ‪ A‬هي ) ‪ ( 2 m A +1‬مثال ‪:‬‬


‫[‬ ‫]‬
‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪A= 1‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪4‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪3‬‬

‫‪a 14=0 4 >1+2 m A=2‬‬

‫‪a 25=0 5>2+2 m A=2‬‬

‫عرض المجال يساوي ‪( 2∗2+ 1 )=5‬‬

‫المصفوفة األحادية‪:‬‬

‫المصفوفة األحادية ‪ I n‬هي مصفوفة مربعة دات األبعاد ‪ nXn‬و اللتي يكون فيها العناصر الموجودة في قطرها تساوي الواح د‬
‫و باقي العناصر تساوي الصفر‪:‬‬

‫‪a ij=1 for i= j‬‬

‫مثال‪:‬‬

‫] [‬
‫‪1 0 0‬‬
‫‪I 3= 0 1 0‬‬
‫‪0 0 1‬‬

‫نستعمل الدالة )‪ numpy . eye (n‬إلنشاء دالة أحادية دات األبعاد ‪ nXn‬بإستعمال مكتبة ‪numpy‬‬

‫‪import numpy‬‬
‫)‪I_n = numpy.eye(3‬‬
‫)‪print(I_n‬‬
‫المصفوفة القطرية ‪: Diagonal Matrix‬‬

‫إدا كانت جميع عناصر المصفوفة قيمتها ‪ 0‬بإستثناء العناصر الموجودة حيث تتساوى رتبة السطر و العمود أي ‪:‬‬

‫‪a ij ≠ 0 for i= j‬‬

‫مثال‪:‬‬

‫[‬ ‫]‬
‫‪1 0 0‬‬
‫‪D= 0 12 0‬‬
‫‪0 0 5‬‬

‫نستعمل الدالة )‪ numpy . diag(n‬إلنشاء دالة قطرية دات األبعاد ‪ nXn‬بإستعمال مكتبة ‪numpy‬‬

‫‪import numpy‬‬
‫)]‪D = numpy.array([1, 12, 5‬‬
‫)‪D = numpy.diag(D‬‬
‫)‪print(D‬‬
‫على هدا فإن المصفوفة األحادية عبارة عن مصفوفة قطرية ‪:‬‬

‫] [‬
‫‪1 0 0‬‬
‫‪I 3= 0 1 0‬‬
‫‪0 0 1‬‬

‫تفيدنا هده الخصائص كثيرا خاصة في عملية التخزين و قراءة المصفوفات في الحاسوب الرقمي‪.‬‬

‫فمثال ال نحت اج إلى تخ زين األص فار باإلض افة إدا ك انت المص فوفة متن اظرة تحت اج إلى تخ زين الج زء العل وي فق ط ‪،‬في‬
‫حسابات ‪ FEM‬فإن المصفوفات أيضا محدودة أي متناظرة و محدودة ‪.‬‬

‫جمع مصفوفات ‪:‬‬

‫يمكن جمع مصفوفتين ‪ A‬و ‪ B‬إدا و فق ط إدا ك ان لهم ا نفس ع دد األعم دة و نفس ع دد األس طر ‪ ،‬الجم ع يتم ع بر جم ع ك ل‬
‫عنصرين من ‪ A‬و ‪ B‬لنفس السطر و نفس العود بمعنى ‪:‬‬

‫‪C= AnXm + BnXm‬‬

‫[‬ ‫]‬
‫‪c11 c12 c13‬‬
‫‪C= c21 c22 c23‬‬
‫‪c31 c32 c33‬‬

‫‪c ij =a ij +b ij‬‬

‫مثال ‪:‬‬

‫=‪A‬‬
‫‪[ 0.52‬‬ ‫‪1 1‬‬
‫‪3 0‬‬ ‫]‬
‫=‪B‬‬
‫‪[ 32‬‬ ‫‪1 2‬‬
‫‪4 1‬‬ ‫]‬
‫أوال أبعاد ‪ A‬هي ‪ 2 X 3‬و أبعاد ‪ B‬أيضا ‪ 2 X 3‬وبالتالي يمكن جمع المصفوفتين ‪:‬‬

‫=‪C‬‬
‫‪[0.52‬‬ ‫‪1 1 3 1 2‬‬
‫‪+‬‬
‫‪3 0 2 4 1‬‬‫[]‬ ‫]‬
‫=‪C‬‬
‫‪[0.5+‬‬
‫‪2+3‬‬
‫‪2‬‬
‫‪1+1 1+2‬‬
‫‪3+ 4 0+1‬‬ ‫]‬
C=
[2.55 2 3
7 1 ]
import numpy
A = numpy.array([[ 2, 1, 1],
[0.5, 3, 0]
]).astype(float)
B = numpy.array([[3, 1, 2],
[2, 4, 1]
]).astype(float)
C = A + B
print(C)
D= A−B ‫لتكن‬، ‫نفس مراحل عملية الجمع تستخدم في عملية الطرح‬

D=
[ 0.52 3 0

][
1 1 3 1 2
2 4 1 ]
D=
[ 0.5−2
2−3 1−1 1−2
3−4 0−1 ]
D=
[−1.5
−1 0 −1
−1 −1 ]
import numpy
A = numpy.array([[ 2, 1, 1],
[0.5, 3, 0]
]).astype(float)
B = numpy.array([[3, 1, 2],
[2, 4, 1]
]).astype(float)
D = A - B
print(D)
: ‫جداء مصفوفة مع عدد ثابت‬

: ‫جداء عدد ثابت مع مصفوفة هي مصفوفة قيمة كل عنصر منها هو حاصل جداء هدا الثابت مع كل عنصر من المصفوفة‬

S=k A

sij =k aij

S=4∗
[ 0.52 1 1
3 0 ]
S=
[ 4∗0.5
4∗2 4∗1 4∗1
4∗3 4∗0 ]
‫=‪S‬‬
‫‪[ 82‬‬ ‫‪4 4‬‬
‫‪12 0‬‬ ‫]‬
‫‪import numpy‬‬
‫‪A = numpy.array([[ 2, 1, 1],‬‬
‫]‪[0.5, 3, 0‬‬
‫)‪]).astype(float‬‬
‫‪k = 4‬‬
‫‪S = k * A‬‬
‫)‪print(S‬‬

‫جمع أو طرح مصفوفتين لديها األبعاد ‪ nXm‬يحتاج إلى ‪ n∗m‬عملية جمع أو طرح في حين جداء عدد ثابت في مصفوفة دات‬
‫األبعاد ‪ nXm‬يحتاج إلى ‪ n∗m‬عملية ضرب‪ .‬وبالتالي إدا كانت المصفوفة متناظرة يمكن تقليص عدد العمليات الحسابية‪.‬‬

‫جداء مصفوفتي ‪ A‬و ‪: B‬‬

‫يمكن ضرب مصفوفتين ‪ A‬و ‪ B‬إدا و فقط إدا كانت عدد أعمدة المصفوفة ‪ A‬تساوي عدد أسطر المصفوفة ‪. B‬‬

‫‪A is pXm‬‬
‫‪B is mXq‬‬
‫‪C is pXq‬‬

‫‪m‬‬
‫‪c ij =∑ a ir b rj‬‬
‫‪r =1‬‬

‫مثال‪:‬‬

‫[‬ ‫]‬ ‫] [‬
‫‪5 3 1‬‬ ‫‪1 5‬‬
‫‪A= 4 6 2 , p=3 ,m=3 , B= 2 4 m=3 ,q=2‬‬
‫‪10 3 4‬‬ ‫‪3 2‬‬

‫‪C is 3 X 2‬‬

‫[‬ ‫]‬
‫) ‪( 5∗1+3∗2+1∗3 ) ( 5∗5+3∗4 +1∗2‬‬
‫) ‪C= ( 4∗1+6∗2+2∗3 ) ( 4∗5+ 6∗4+ 2∗2‬‬
‫) ‪( 10∗1+3∗2+4∗3 ) ( 10∗5+ 3∗4+ 4∗2‬‬
‫] [‬
‫‪14 39‬‬
‫‪C= 22 48‬‬
‫‪28 70‬‬

‫‪import numpy‬‬
‫‪A = numpy.array([[ 5, 3, 1],‬‬
‫‪[ 4, 6, 2],‬‬
‫)‪[10, 3, 4]]).astype(float‬‬
‫‪B = numpy.array([[1, 5],‬‬
‫‪[2, 4],‬‬
‫)‪[3, 2]]).astype(float‬‬
‫)‪C = numpy.dot(A, B‬‬
‫)‪print(C‬‬
‫عدد العمليات الحسابية لضرب مصفوفة دات ‪ pXm‬وأخرى دات ‪ mXq‬هي ‪p∗q∗m‬‬

‫خصائص‪:‬‬

‫‪AB≠ BA‬‬ ‫‪.1‬‬

‫=‪{E‬‬ ‫‪( A + B)C‬‬


‫‪E= AC + BC‬‬
‫‪.2‬‬

‫‪G= ( AB ) C=A ( BC )= ABC‬‬ ‫‪.3‬‬


‫إدا كان ‪ AB=CB‬ال يعني أن ‪A=C‬‬ ‫‪.4‬‬
‫إدا كان ‪ AB=0‬ال يعني أن ‪ A=0‬أو أن ‪B=0‬‬ ‫‪.5‬‬
‫مثال ‪:‬‬

‫=‪A‬‬
‫‪[ 12 00] , B=[ 03 04 ] ,C= AB=[ (( 1∗0+‬‬ ‫) ‪0∗3‬‬
‫) ‪2∗0+0∗3‬‬
‫) ‪( 1∗0+0∗4‬‬
‫) ‪( 2∗0+0∗4‬‬ ‫] [ ]‬
‫=‪, C‬‬
‫‪0 0‬‬
‫‪0 0‬‬

‫‪( AB )T =BT A T‬‬ ‫‪.6‬‬


‫إدا كانت ‪ A‬متناظرة فإن ) ‪ ( BT AB‬أيضا متناظرة‬ ‫‪.7‬‬
‫البرهان ‪:‬‬
‫‪T‬‬ ‫‪T‬‬
‫) ‪( BT AB ) =( AB )T ( BT‬‬
‫‪T‬‬ ‫‪T‬‬
‫‪¿B A B‬‬
‫‪T‬‬
‫‪( BT AB ) =B T AB‬‬

‫مقلوب مصفوفة‪:‬‬

‫في عالم المصفوفات ال توجد هناك عملية القس مة ب دال من دل ك هن اك مقل وب مص فوفة ‪.‬في المقل وب نتعام ل م ع المص فوفات‬
‫المربعة فقط أي اللتي عدد سطورها يساوي عدد أعمدتها‪.‬‬

‫مقلوب المصفوفة ‪ A‬يرمز له ب ‪ A−1‬بفرض المقوب المصفوفة ‪ A‬موجود يمكن كتابة ‪ A A−1 =I‬أو ‪. A−1 A=I‬‬
‫المصفوفة اللتي ل ديها مقل وب تس مى ب ‪ Nonsingular‬أي ليس ال تحت وي على قيم ممنوع ة ن أم ا المص فوفة الل تي له ا قيم‬
‫ممنوعة فتسمى ‪ Singular‬أي لها قيم ممنوعة‪.‬‬

‫إدا وجد مقلوب لمصفوفة فإنه وحيد‪.‬‬

‫مقلوب جداء مصفوفتين‪:‬‬

‫‪( AB )−1=B−1 A−1‬‬

‫‪:Trace and Determinant‬‬

‫هما عبارة عن دالتين تحوالن مصفوفة مربعة إلى عدد وبالتالي فإن ‪ Trace and Determinant‬معرفتان من أجل مص فوفة‬
‫مربعة‪.‬‬

‫‪ Trac‬لمصفوفة ‪ A‬يرمز له ب ) ‪ Tr ( A‬ويحسب بالعالقة التالية‪:‬‬

‫‪n‬‬

‫‪∑ aii‬‬
‫‪i=1‬‬

‫حيث ‪ n‬تمثل رتبة ‪A‬‬

‫مثال ‪:‬‬

‫[‬ ‫]‬
‫‪4‬‬ ‫‪3‬‬ ‫‪1 2‬‬
‫‪3‬‬ ‫‪6‬‬ ‫‪2 1‬‬
‫=‪A‬‬
‫‪1‬‬ ‫‪2‬‬ ‫‪8 6‬‬
‫‪2‬‬ ‫‪1‬‬ ‫‪6 12‬‬

‫‪Tr ( A )=a11 +a 22+ a33+ a44‬‬

‫‪Tr ( A )=4+ 6+8+12‬‬

‫‪Tr ( A )=30‬‬

‫نستعمل الدالة ) ‪ numpy . trace ( A‬لحساب ‪ Trace‬للمصفوفة ‪ A‬بإستعمال مكتبة ‪numpy‬‬

‫‪import numpy‬‬
‫‪A = numpy.array([[4, 3, 1,‬‬ ‫‪2],‬‬
‫‪[3, 6, 2,‬‬ ‫‪1],‬‬
[1, 2, 8, 6],
[2, 1, 6, 12]])
T = numpy.trace(A)
print(T)
: ‫ و يحسب كمايلي‬det ( A ) ‫ يرمز له ب‬A ‫ لمصفوفة‬Determinant ‫أما‬

n
det ( A )=∑ (−1 )
1+ j
a1 j det ( A1 j ) ; A1 j means we elimenate the 1st row∧the j th column ¿ A ¿
j=1

: ‫مثال‬

A=
[ ]
a 11 a12
a 21 a22

1 +1 1+2
det ( A )=(−1 ) a 11 det ( A 11 ) + (−1 ) a12 det ( A 12)

det ( A )=(−1 )2 a11 det ( A11 ) + (−1 )3 a12 det ( A 12 )

det ( A )=a11 det ( a22 )−a 12 det ( a21 )

det ( A )=a11 a22−a12 a 21

:2‫مثال‬

[ ]
1 0 −3 5
2 2 4 −2
A=
3 1 1 0
4 −1 0 1

n
det ( A )=∑ (−1 )
1+ j
a1 j det ( A1 j )
j=1

1 +1 1+2 1+3 1 +4
det ( A )=(−1 ) a 11 det ( A 11 ) + (−1 ) a12 det ( A 12) + (−1 ) a13 de t ( A13 ) + (−1 ) a12 det ( A14 )

([ ]) ([ ]) ([ ]) ([ ])
2 4 −2 2 4 −2 2 2 −2 2 2 4
det ( A )=1 det 1 1 0 −0 det 3 1 0 −3 det 3 1 0 −5 det 3 1 1
−1 0 1 40 1 4 −1 1 4 −1 0

([ ]) ([ ]) ([ ])
2 4 −2 2 2 −2 2 2 4
det ( A )=det 1 1 0 −3 det 3 1 0 −5 det 3 1 1
−1 0 1 4 −1 1 4 −1 0
([ ])
2 4 −2
det 1 1 0 =2 ( ( 1∗1 )−( 0∗0 ) ) −4 ( ( 1∗1 )− ( 0∗−1 )) −2 ( ( 1∗0 )−( 1∗−1 ) )
−1 0 1

([ ])
2 4 −2
det 1 1 0 =2−4−2
−1 0 1

([ ])
2 4 −2
det 1 1 0 =−4
−1 0 1

([ ])
2 2 −2
det 3 1 0 =2 ( ( 1∗1 )−( 0∗−1 ) )−2 ( ( 3∗1 )− ( 0∗4 ) ) −2 ( ( 3∗−1 )−( 1∗4 ))
4 −1 1

([ ])
2 2 −2
det 3 1 0 =2−6+14
4 −1 1

([ ])
2 2 −2
det 3 1 0 =10
4 −1 1

([ ])
2 2 4
det 3 1 1 =2 ( ( 1∗0 )−( 1∗−1 ) )−2 ( ( 3∗0 ) −( 1∗4 ) ) + 4 ( ( 3∗−1 )−( 1∗4 ) )
4 −1 0

([ ])
2 2 4
det 3 1 1 =2+8−28
4 −1 0

([ ])
2 2 4
det 3 1 1 =−18
4 −1 0

det ( A )=−4−3∗10−5∗(−18)

det ( A )=−124

:Determinant ‫خصائص ال‬

det ( BC … F )=det ( B ) det ( C ) … det ( F )


‫إدا كانت ‪ A‬متناظرة معناه ‪ A=LD LT‬حيث ‪ L‬هو الجزء السفلي للمصفوفة ‪ A‬و ‪ D‬هو القطر ومنه‬

‫) ‪det ( A )=det ( L ) det ( D ) det ( LT‬‬

‫حل المعادالت الخطية ‪.‬‬


‫طريقة ‪:Gauss siedel‬‬

‫لتكن جملة المعادالت الموالية‪:‬‬

‫‪10 x 1+2 x 2+ x3 =13‬‬

‫‪2 x1 +10 x 2+ x3 =13‬‬

‫‪2 x1 + x 2 +10 x3 =13‬‬

‫الخطوة األولى هي الحل من أجل ‪ ❑1‬ثم ‪ x 2‬ثم ‪x 3‬‬

‫‪x 1=1.3−0.2 x 2−0.1 x 3‬‬

‫‪x 2=1.3−0.2 x 1−0.1 x 3‬‬

‫‪x 3=1.3−0.2 x 1−0.1 x 2‬‬

‫الخط وة الثاني ة يق ترح ح ل إبت دائي نس تعمل ‪ x 2=0‬و ‪ x 3=0‬من المعادل ة األولى نج د ‪ x 1=1.3‬ه ذه القيم ة اإلبتدائ ة‬
‫تستعمل في المعادلة ‪ 2‬إليجاد المجهول ‪ x 2=1.3−0.2∗1.3−0.1∗0=1.05‬وتستعمل هذه القيمة مع القيمة السابقة ل ‪x 1‬‬
‫لحساب قيمة ‪x 3‬‬

‫تكرر هذه العملية في كل مرة بالقيم المتحصل عليها في السابق ‪ ،‬بعد تكرار العملية ‪ k‬مرة نتحصل على القيم القريب ة ج دا‬
‫من الحل العملية تتوقف إذا وصل الفارق بين قيم المجهول في المرة ‪ k −1‬و الم رة ‪ k‬أق ل من ع دد ص غير يح دد من ط رف‬
‫المستعمل‬

‫‪def lin_solve(b,x,x0,a,c):‬‬

‫‪cR = 1.0/c‬‬
‫‪for k in range(0,ite):‬‬
‫‪for j in range(0,N-1):‬‬
‫‪for i in range(0,N-1):‬‬
‫‪x[IX(i,j)] = (x0[IX(i,j)] + a * ( x[IX(i+1,j)] + x[IX(i-‬‬
‫‪1,j)] + x[IX(i,j+1)] + x[IX(i,j-1)])) * cR‬‬

You might also like