ﻣﺪﺧﻞ ﺣﺪﻳﺚ ﻟﻠﺒﺮﻣﺠﺔ ﺑﺎﺳﺘﺨﺪام ﺑﺮﻧﺎﻣﺞ
Mathematica ﺗﺄﻟﻴﻒ اﻟﺪﻛﺘﻮرة /ﺛﺮوت ﻣﺤﻤﺪ ﻋﺒﺪ اﻟﻤﻨﻌﻢ ﻣﺤﻤﺪ اﺑﺮاﻫﻴﻢ أﺳﺘﺎذ ﻣﺸﺎرك ﺟﺎﻣﻌﺔ اﻟﺪﻣﺎم ﻛﻠﻴﺔ اﻟﻌﻠﻮم ﺑﺎﻟﺪﻣﺎم – ﻗﺴﻢ اﻟﺮﻳﺎﺿﻴﺎت )ﺳﺎﺑﻘﺎ( ٢٠١٣م
١
٢
اﻟﻰ اﺧﻰ اﻟﻣﻬﻧدس اﻟزراﻋﻰ ﻣﺣﻣود ﻣﺣﻣد ﻋﺑد اﻟﻣﻧﻌم اﻟﻰ اﺧﺗﻰ اﻟدﻛﺗورة ﻓﺎطﻣﺔ اﻟزﻫراء اﻟﻰ اﺧﻰ اﻟﻣﺣﺎﺳب ﻛﻣﺎل اﻟدﯾن ﻣﺣﻣد ﻋﺑد اﻟﻣﻧﻌم اﻟﻰ اﺧﺗﻰ ﻓﻰ اﷲ اﻟدﻛﺗورة ﻣﻧﻰ ﻣﺻطﻔﻰ ﺣﺳﯾن اﻟﺗﻰ ﺗﺣﺎﺑﺑﻧﺎ ﻓﻰ اﷲ اﻟﻰ اوﻻد اﺧواﺗﻰ ﻣﺣﻣد ﻋز وﻣﺣﻣد ﺣﺳﯾن واﺣﻣد ﻋز وﺑﻬﺎء ﺣﺳﯾن اﻟذﯾن ﻋﻠﻣﺗﻬم ﻓﻰ ﺻﻐرﻫم اﻟﺣﺎﺳب اﻻﻟﻰ ﺛم اﺳﺗﺷرﺗﻬم ﻓﻰ ﺑﻌض اﻟﻣواﺿﯾﻊ واﻧﺎ ﻛﺑﯾرة وﺑﻌد ان ﺗﻘدﻣت ﻋﻠوم اﻟﺣﺎﺳب اﻻﻟﻰ واﺻﺑﺣوا اﻛﺛر ﻣﻌرﻓﺔ ﻣﻧﻰ ﻓﻰ ﺑﻌض اﻟﻣﺟﺎﻻت اﻓﺎدوﻧﻰ ﻓﻠﻬم ﻣﻧﻰ اﻟﺷﻛر ﺟﻣﯾﻌﺎ اﻟﻰ ﻛل ﻣن ﯾﻌﻣل ﺑﺟد ﻟﺻﺎﻟﺢ اﻟﻌﺎﻟم ﺑﺎﻛﻣﻠﻪ وﻻ ﯾﺑﻐﻰ اﻻ وﺟﻪ اﷲ د .ﺛروت ﻣﺣﻣد ﻋﺑد اﻟﻣﻧﻌم
٣
ﺑﺳم اﷲ اﻟرﺣﻣن اﻟرﺣﯾم
ﺗﻣﻬﯾد
اﻟﺣﻣـد ﷲ رب اﻟﻌــﺎﻟﻣﯾن واﻟﺻــﻼة واﻟﺳـﻼم ﻋﻠــﻰ أﺷــرف اﻟﻣرﺳـﻠﯾن ﻣﺣﻣــد وﻋﻠــﻰ آﻟـﻪ وﺻــﺣﺑﻪ أﺟﻣﻌــﯾن .أﻣــﺎ ﺑﻌــد ،ﻓﺎﻟﺣﻣــد ﷲ اﻟــذي ﻫــداﻧﺎ وﻣــﺎ ﻛﻧــﺎ ﻟﻧﻬﺗــدي ﻟــوﻻ أن ﻫــداﻧﺎ اﷲ اﻟــذي أﻧﻌــم ﻋﻠــﻲ ﺑﻛﺗﺎﺑــﺔ ﻫــذا اﻟﻛﺗــﺎب ﺗﻠﺑﯾــﺔ ﻟﻧــداء اﻟﺗﻌرﯾب اﻟذي ﯾﺗﺑﻧﺎﻩ اﻟﻛﺛﯾر ﻣن اﻟﻌﻠﻣﺎء واﻟﻣﺛﻘﻔﯾن. ﯾﺧــدم ﺑرﻧــﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛــﺎ Mathematicaﻗطﺎﻋــﺎ ﻛﺑﯾ ـ ار ﻣــن اﻟﺗﺧﺻﺻــﺎت اﻟﻌﻠﻣﯾــﺔ اﻟﻣﺧﺗﻠﻔــﺔ ﺣﯾــث ﯾﻘــوم ﺑـﺈﺟراء اﻟﻌﻣﻠﯾـﺎت اﻟﺣﺳـﺎﺑﯾﺔ اﻟﻌددﯾـﺔ Numerical Calculationsاﻟﻣﺗﻌـﺎرف ﻋﻠﯾﻬـﺎ ﻣﺛـل اﻟﺟﻣـﻊ واﻟطـرح واﻟﻘﺳـﻣﺔ وﺣﺳﺎب اﻻﺳس واﻟﻠوﻏﺎرﺗﻣﺎت و اﻟدوال اﻟﻣﺛﻠﺛﯾـﺔ و اﻟزاﺋدﯾـﺔ ﺳـواء ﻟﻼﻋـداد اﻟﺣﻘﯾﻘﯾـﺔ او اﻻﻋـداد اﻟﻣرﻛﺑـﺔ وﻛـذﻟك ﯾﻘـوم ﺑﺈﺟراء اﻟﻌﻣﻠﯾﺎت اﻟرﯾﺎﺿﯾﺔ اﻟرﻣزﯾﺔ Symbolicاﻟﻣﺗﻌﺎرف ﻋﻠﯾﻬﺎ ﻓﻰ ﻓروع ﻛﺛﯾرة ﻣن اﻟرﯾﺎﺿـﯾﺎت ﻣﺛـل اﻟﺟﺑـر اﻟﺧطـﻰ واﻻﺣﺻﺎء واﻟﺗﻔﺎﺿل واﻟﺗﻛﺎﻣـل واﻟـدوال اﻟﺧﺎﺻـﺔ واﻟﻣﻌـﺎدﻻت اﻟﺗﻔﺎﺿـﻠﯾﺔ واﻟﺗﺣﻠﯾـل اﻟﻌـددى واﻟﺑرﻣﺟـﺔ اﻟﺧطﯾـﺔ .ﻛﻣـﺎ ﯾﻘوم ﺑرﺳم اﻟدوال ﺳواء اﻟﻣﺑﺎﺷرة او اﻟﺑﺎراﻣﺗرﯾﺔ ﻓﻰ ﺑﻌدﯾن او ﺛﻼث اﺑﻌـﺎد .ﻛﻣـﺎ ﯾﻣﻛـن اﺳـﺗﺧدام ﺑرﻧـﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛـﺎ ﻛﻠﻐـﺔ ﺑرﻣﺟــﺔ ﻟﻛﺗﺎﺑـﺔ ﺑـراﻣﺞ ﺗﺣــل ﻣﺷـﻛﻼت ﻛﺑﯾـرة ،ﻓــﻰ ﻣﺟـﺎﻻت ﻛﺛﯾـرة ﻣﺛــل اﻟرﯾﺎﺿـﯾﺎت واﻻﺣﺻــﺎء واﻻﺣﺗﻣــﺎﻻت، ﯾﻌﺟز ﺣﻠﻬﺎ اﻣر واﺣد وﻫذا ﻫدﻓﻧﺎ ﻓﻰ ﻫذا اﻟﻛﺗﺎب .وﻟﻘد اﻋﺗﻣدت ﻓﻰ وﺿـﻊ ﻫـذا اﻟﻛﺗـﺎب ﻋﻠـﻰ اﻻﺻـدار 5ﻟﺑرﻧـﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ وﯾﻣﻛن ﻟﻠﻣﺳﺗﺧدم ﻻى اﺻدار اﺧر اﻻﻋﺗﻣﺎد ﻋﻠﯾﻪ ﻻﻧﻪ ﯾﺗﻧﺎول اﻻﺳﺎﺳﯾﺎت واﻟﻣوﺟودة ﻓﻰ اى اﺻدار . ـرر ﻟطـﻼب اﻟد ارﺳـﺎت اﻟﻌﻠﯾـﺎ ﻫذا اﻟﻛﺗـﺎب ﯾﺻـﻠﺢ ﻛﻣﻘـرر ﻟطـﻼب ﻛﻠﯾـﺎت اﻟﻌﻠـوم ،ﻛﻣـﺎ ﯾﺻـﻠﺢ ﻷن ﯾﻛـون ﻣﻘ ا ﻟﺗﺳــﺎﻋدﻫم ،ﻓــﻰ رﺳــﺎﻟﺔ اﻟﻣﺎﺟﺳــﺗﯾر واﻟــدﻛﺗوراﻩ ،ﻓــﻰ ﻋﻣــل ﺑ ـراﻣﺞ ﻓــﻰ ﻣﺟــﺎل اﻟﻔــرع اﻟــذى ﯾﻌﻣﻠ ـون ﻓﯾــﻪ .ﯾﺻــﻠﺢ ﻫــذا اﻟﻛﺗﺎب أﯾﺿﺎً ﻷن ﯾﻛون ﻣرﺟﻌﺎً ﻟﻛل اﻟﻣﺳﺗﺧدﻣﯾن ﻟﻬذا اﻟﺑرﻧﺎﻣﺞ ﻣﺛـل اﻟطﻠﺑـﺔ و اﻟﻣﻬﻧدﺳـﯾن ورﺟـﺎل اﻻﻋﻣـﺎل واﻋﺿـﺎء ﻫﯾﺋﺔ اﻟﺗدرﯾس واﻟذﯾن ﯾﻠﻣـون ﺑﺎﻟﺑرﻧـﺎﻣﺞ .ﻫـذا وﯾﻣﻛـن ﻓـﻰ ﺣﺎﻟـﺔ ﻋـدم اﻻﻟﻣـﺎم ﺑﺎﻟﺑرﻧـﺎﻣﺞ اﻻﺳـﺗﻌﺎﻧﺔ ﺑﺎﻟﻣﺗﺧﺻﺻـﯾن ﻓـﻰ ادﺧﺎل اﻟﺑﯾﺎﻧﺎت واﻟﺣﺻول ﻋﻠﻰ اﻟﻣﺧرﺟﺎت .واﻧﻰ اﻗﺗرح ان ﯾدرس ﻟﻠطﻼب ﻓﻰ اﻟﻣرﺣﻠـﺔ اﻻﻋدادﯾـﺔ و اﻟﺛﺎﻧوﯾـﺔ ﻋﻠـﻰ ان ﯾﻘ ــوم ﻣﺗﺧﺻﺻ ــﯾن ﻓ ــﻰ ﻫـ ـذا اﻟﺑرﻧ ــﺎﻣﺞ ،ﺗ ــم ﺗ ــدرﯾﺑﻬم ﻋﻠﯾ ــﻪ ،ﻓ ــﻰ اﺳ ــﺗﺧدام اواﻣ ــر اﻟﺑرﻧ ــﺎﻣﺞ ﻓ ــﻰ ﺣ ــل ﻣﺳ ــﺎﺋل اﻟرﯾﺎﺿﯾﺎت ﻣﺛﻼ ﺑﻌد ﺗﻌﻠﯾﻣﻬم اﻟﺣل ﯾدوﯾﺎ .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻣﺳـﺎﻟﺔ ﻓـﻰ اﻟﻧﻬﺎﯾـﺎت ﯾﻣﻛـن ﺣﻠﻬـﺎ ﻓـﻰ ﺛـوان ﺑﺎﺳـﺗﺧدام ٤
اﻟﺑرﻧﺎﻣﺞ واﻟﺗﻰ ﺗﺳﺗﻐرق ﻣﻊ اﻟطﺎﻟب اﻟوﻗت اﻟطوﯾل .اﯾﺿﺎ ﺗﻌﻠﯾم اﻟطﺎﻟب اﻻﻣﺗﺣﺎن اﻟﻣﻔﺗـوح وﻟـو ﻣـرة واﺣـدة واﻟـدﺧول ﺑﺎﻟﻛﺗب واﻟﺟﻠوس اﻣﺎم ﺟﻬﺎز اﻟﺣﺎﺳب واﻟﺣـل ﺣﺗـﻰ ﻧـوﻓر ﻟﻠطﺎﻟـب اﻟوﻗـت واﻟﻣﺟﻬـود وﻧﻌﻠﻣـﻪ اﻟﻔﻬـم وﻟـﯾس اﻟﺣﻔـظ وﻫـذا اﻻﺳــﻠوب ﯾطﺑــق ﻓــﻰ اﻟﺧــﺎرج .ﻛﻣــﺎ ﯾﻣﻛــن ﻟﻠطﺎﻟــب اﻟﺗﺎﻛــد ﻣــن ﺣﻠوﻟــﺔ اﻟﺗــﻰ ﯾﺟرﯾﻬــﺎ ﯾــدوﯾﺎ ﻣــﻊ اﻟﺣﻠــول اﻟﺳــﺗﺧرﺟﺔ ﻣــن اﻟﺑرﻧﺎﻣﺞ . وﻓﻲ وﺿﻊ ﻫذا اﻟﻛﺗﺎب اﺳﺗﻌﻧت ﺑﻌـدد ﻣـن اﻟﻣ ارﺟـﻊ واﻷﺟﻧﺑﯾـﺔ وﻣرﺟـﻊ واﺣـد ﺑﺎﻟﻠﻐـﺔ اﻟﻌرﺑﯾـﺔ ﻛﻣـﺎ اﺳـﺗﻌﻧت ﺑﺧﺑرﺗﻲ ﻓﻲ ﺗدرﯾس ﻫذا اﻟﻣﻘرر ﻟطﻼب اﻟدراﺳﺎت اﻟﻌﻠﯾﺎ ﻓﻲ ﻣرﺣﻠﺔ اﻟﻣﺎﺟﺳﺗﯾر واﻟدﻛﺗوراﻩ . وﯾﻌﺗﺑر ﻫذا اﻟﻛﺗﺎب ﻣن اﻟﻣراﺟﻊ اﻟﺗﻰ ﺗﻌـد ﻋﻠـﻰ اﻻﺻـﺎﺑﻊ ﻓـﻰ اﻟﻌـﺎﻟم اﻟﻌرﺑـﻰ ﻓـﻰ ﻫـذا اﻟﻣﺟـﺎل ﻛﻣـﺎ اﻋﺗﺑـرﻩ ﻻ ﯾﻘـل ﻋـن اﻟﻛﺗــب اﻻﺟﻧﺑﯾــﺔ ﻓـﻰ ﻫــذا اﻟﻣﺟــﺎل وﺳــوف اﺗـرك اﻟﺣﻛــم ﻟﻛــم .وﻟﻘـد اﻟﻔــت ﻣــن ﻗﺑــل ﻛﺗـﺎب ﻓــﻰ اﻟﺑرﻣﺟــﺔ ﺑﺎﺳــﺗﺧدام اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻓﻰ ﻣﺟﺎل اﻻﺳﺗدﻻل اﻻﺣﺻﺎﺋﻰ وﻫو ﻓﻰ ﻣﻧﺗدى اﻻﺣﺻﺎﺋﯾﯾن اﻟﻌرب ﻓـﻰ اﻟﻛﺗـب واﻟﻣ ارﺟـﻊ اﻟﻌرﺑﯾـﺔ وﻟﻣـﺎ ﻛـﺎن ﻫـذا اﻟﻛﺗـﺎب ﯾﺣﺗـﺎج اﻣـﺎ اﻟــﻰ ﻋﺿـو ﻫﯾﺋـﺔ ﺗـدرﯾس ﻟﺷـرﺣﺔ او ان ﯾﻛــون اﻟﻣﺳـﺗﺧدم ﻋﻧـدﻩ ﻣﻌﻠوﻣـﺎت ﻋـن اﻟﺑرﻧــﺎﻣﺞ ﻟذﻟك اﻗدﻣت ﻋﻠﻰ ﺗﺎﻟﯾف ﻫذا اﻟﻛﺗﺎب واﻟذى ﯾﺑدا ﻣن ﻧﻘطـﺔ اﻟﺻـﻔر وﯾﻧﺗﻬـﻰ ﺑﻣﻌرﻓـﺔ اﻟﺑرﻣﺟـﺔ ﻓـﻰ ﻣﺟـﺎﻻت ﻛﺛﯾـرة ﻣﺛـل اﻟرﯾﺎﺿﯾﺎت واﻻﺣﺻﺎء .واﻻﻟﻣﺎم ﺑﺎﻟﺑرﻣﺟﺔ ﺑﺎﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﺳﻬل ﺟدا وﯾﺣﺗﺎج اﻟﻰ ﻣﻣﺎرﺳـﺔ واﻟﺗـﻰ ﺗﻌطـﻰ اﻟﻣﺳـﺗﺧدم ﺧﺑـرة ﻓﻰ اﻟﺗﻌﺎﻣل ﻣﻊ اﻟﺑرﻧﺎﻣﺞ واﻧﺎ ﺗﻌﻠﻣـت ﻫـذﻩ اﻟﻠﻐـﺔ ﺑﻧﻔﺳـﻰ ﺑـﺎﻻطﻼع واﻟﻣﻣﺎرﺳـﺔ وﻋﻠﻣﺗﻬـﺎ ﻟﻛﺛﯾـر ﻣـن اﻟـزﻣﻼء .وﯾﻧﺻـﺢ ﻓﻰ ﺣﺎﻟﺔ ﺣدوث ﻣﺷﺎﻛل ﻓﻰ اﻟﺑرﻧﺎﻣﺞ اﻟﺧروج ﻣﻧﻪ ﺛم اﻟﻌودة ﻣرة اﺧرى . ﯾﺣﺗوي ﻫـذا اﻟﻛﺗـﺎب ﻋﻠـﻰ ﺳـﺗﺔ ﻓﺻـول ،ﯾﻘـدم اﻟﻔﺻـل اﻷول ﺑـدا اﻟﻌﻣـل ﺑﺑرﻧـﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛـﺎ أﻣـﺎ اﻟﻔﺻـل اﻟﺛـﺎﻧﻲ ﻓﯾﻬـﺗم ﺑﺎﻟﻌﻣﻠﯾــﺎت اﻟرﯾﺎﺿــﯾﺔ ﻋﻠــﻰ اﻻﻋــداد واﻟﺗﻌﺑﯾ ـرات واﻟــدوال ،أﻣــﺎ اﻟﻔﺻــل اﻟﺛﺎﻟــث ﻓﯾﺗطــرق اﻟــﻰ رﺳــوم اﻟــدوال واﻟﺗﻌﺑﯾ ـرات واﻟﻣﻌــﺎدﻻت ،ﺑﯾﻧﻣ ــﺎ ﯾﻬ ــﺗم اﻟﻔﺻ ــل اﻟ ارﺑ ــﻊ ﺑﻣواﺿ ــﯾﻊ ﻓ ــﻰ اﻟﺟﺑ ــر ،وواﺧﯾـ ـ ار ﯾﺗط ــرق اﻟﻔﺻ ــل اﻟﺧ ــﺎﻣس إﻟ ــﻰ اﻟﺗﻔﺎﺿ ــل واﻟﺗﻛﺎﻣل. وﻗد ﻛﻧت اﻧوى اﺿﺎﻓﺔ ﻓﺻل ﻋن اﺳﺗﺧدام ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻓـﻰ ﻣﺟـﺎل اﻻﺣﺻـﺎء واﻻﺣﺗﻣـﺎﻻت وﻟﻛـن اﺟﻠـت ذﻟـك اﻟﻰ ﻛﺗﺎب ﻗﺎدم ﻣوﺳﻊ ،ان ﺷﺎء اﷲ ،اﻋﻣل ﻓﯾﻪ ﺣﺎﻟﯾﺎ. وأﺳﺄل اﷲ أن أﻛون ﻗد وﻓﻘت ﻓﻲ ﻫذا اﻟﻣﺟﻬود اﻟﻣﺗواﺿﻊ ﺧدﻣﺔً ﻟﻘﺿﺎﯾﺎ اﻟﺑﺣث اﻟﻌﻠﻣﻲ ﻓﻲ وطﻧﻧﺎ اﻟﻌرﺑﻲ. ٕواﻧﻧﻲ أرﺣب ﺑﻛل ﻧﻘد ﺑﻧﺎء ﯾﻬدف إﻟﻰ اﻷﻓﺿل ،وﻣﺎ اﻟﻛﻣﺎل إﻻ ﷲ وﺣدﻩ.
واﷲ وﻟﻲ اﻟﺗوﻓﯾق د .ﺛروت ﻣﺣﻣد ﻋﺑد اﻟﻣﻧﻌم
٥
اﻟﻔﺻـل اﻷول :ﺑدا اﻟﻌﻣل ﺑﺑرﻧﺎﻣﺞ Mathematica )(١ -١
ﻓﺗﺢ اﻟﺑرﻧﺎﻣﺞ
)(٢ -١
وﺻف ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ
)(٣ -١
ﺗﺷﻐﯾل اﻟﺑرﻧﺎﻣﺞ
)(٤ -١
اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻣن اﻟﺑرﻧﺎﻣﺞ
)(٥ -١
اﻻﺧطﺎء
)(٦ -١
ﺗﺷﻐﯾل اﻟﺣزم اﻟﺟﺎﻫزة اﻟﻣوﺟودة ﻓﻰ اﻟﺑرﻧﺎﻣﺞ
)(٧ -١
اﺳﺗﺧدام اﻻﻣر Helpﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ اﻟﻔﺻل اﻟﺛﺎﻧﻰ :اﻟﻌﻣﻠﯾﺎت اﻟﻼرﯾﺎﺿﯾﺔ ﻋﻠﻰ ﻛل ﻣن اﻻﻋداد واﻟﺗﻌﺑﯾرات واﻟدوال
)(١ -٢
اﻟﺣﺳﺎﺑﺎت اﻟﻌددﯾﺔ
)(٢ -٢
اﻟﺛواﺑت اﻟرﯾﺎﺿﯾﺔ
)(٣ -٢
اﻟﻣﺗﻐﯾرات
)(٤ -٢
اﻟدوال اﻟﻣﻌرﻓﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ
)(٥ -٢
اﻟﺗﻌﺑﯾرات
)(٦ -٢
ﺗﻌرﯾف وﺗﻘدﯾر اﻟدوال ﻣن ﻗﺑل اﻟﻣﺳﺗﺧدم
)(٧-٢
اﻟﻌﻣﻠﯾﺎت اﻟﻌﻼﻗﯾﺔ واﻟﻌﻣﻠﯾﺎت اﻟﻣﻧطﻘﯾﺔ اﻟﻔﺻـل اﻟﺛﺎﻟث :رﺳم اﻟدوال واﻟﺗﻌﺑﯾرات واﻟﻣﻌﺎدﻻت
٦
)(١ -٣
رﺳم داﻟﺔ ﻟﻣﺗﻐﯾر واﺣد )ﻓﻰ اﻟﻣﺳﺗوى(
)(٢ -٣
رﺳوم ﻓﻰ اﻟﺑﻌد اﻟﺛﺎﻟث )اﻟﻔراغ(
)(٣ -٣
رﺳم اﻟدوال اﻟﺑﺎراﻣﺗرﯾﺔ اﻟﻔﺻـل اﻟراﺑﻊ :ﻣواﺿﯾﻊ ﻓﻰ اﻟﺟﺑر
)(١ -٤
اﻟﻌﻣﻠﯾﻠت اﻟﺟﺑرﯾﺔ ﻋﻠﻰ اﻟﻣﺗﻐﯾرات
)(٢ -٤
ﻋﻣﻠﯾﺎت اﻟﺟﻣﻊ ﻋﻠﻰ اﻟﺣدود اﻟﻣﻧﺗظﻣﺔ
)(٣ -٤
ﻋﻣﻠﯾﺎت اﻟﺿرب ﻋﻠﻰ اﻟﺣدود اﻟﻣﻧﺗظﻣﺔ
)(٤ -٤
اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ واﻟﺗﻘرﯾﺑﯾﺔ ﻟﻠﻣﻌﺎدﻻت
)(٥-٤
اﻟﻘواﺋم
)(١-٥-٤
ﺗﻌرﯾف اﻟﻘواﺋم
)(٢-٥-٤
اﺑﻌﺎداﻟﻘواﺋم
)(٣-٥-٤
اﻟﻌﻣل ﻣﻊ ﻋﻧﺎﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ
)(٤-٥-٤
اﻟﻌﻣل ﻣﻊ ﻋدة ﻗواﺋم
)(٥-٥-٤
اﻟدوال ﻋﺎﻟﯾﺔ اﻟرﺗﺑﺔ
)(٦-٥-٤
رﺳم ﻗواﺋم ﻣن ﻧﻘﺎط وﻗواﺋم ﻣن دوال
)(٧-٥-٤
اﺟراء اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻋﻠﻰ ﻗﺎﺋﻣﺗﯾن
)(٨-٥-٤
ﺗطﺑﯾق اﻟدوال ﻋل اﻟﻘواﺋم ﺑﺻور ﻣﺗﻛررةة
)(٩-٥-٤
Nested Functions Call
)(١٠-٥-٤
Anonymous Functions
)(١١-٥-٤
ﻗواﻋد اﻟﺗﺣوﯾل
٧
)(١٢-٥-٤
اﻟﺣروف وﻣﺗﺗﺎﺑﻌﺔ ﻣن اﻟﺣروف
)(١٣-٥-٤
ﻣﻧظوﻣﺔ اﻻﺟراءات
)(١٤-٥-٤
اﻟدوال ) اﻻواﻣر اﻟﺷرطﯾﺔ (
)(١٥-٥-٤ )(٦-٤
اﻟﺣﻠﻘﺎت اﻟﺗﻛ اررﯾﺔ اﻟﻣﺻﻔوﻓﺎت
)(١-٦-٤
ﻣﻘدﻣﺔ
)(٢-٦-٤
اﺳﺗﺧﻼص ﻋﻧﺎﺻر ﻣن اﻟﻣﺻﻔوﻓﺎت
)(٣-٦-٤
اﻟﺣﺳﺎﺑﺎت اﻻوﻟﯾﺔ ﻋﻠﻰ اﻟﻣﺻﻔوﻓﺎت واﻟﻣﺗﺟﻬﺎت
)(٤-٦-٤
اﻟﻌﻼﻗﺎت اﻟﻣﺗﻛررة
)(٥-٦-٤
ﺣﺳﺎب اﻟﺣﻠول ﻻﻧظﻣﺔ ﺧطﯾﺔ ﻣن اﻟﻣﻌﺎدﻻت
)(٦-٦-٤
اﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة اﻟﻔﺻـل اﻟﺧﺎﻣس :اﻟﺗﻔﺎﺿل واﻟﺗﻛﺎﻣل
)(١-٥
ﺣﺳﺎب اﻟﻧﻬﺎﯾﺎت
)(٢-٥
اﻟﺗﻔﺎﺿل
)(٣-٥
اﻟﺗﻛﺎﻣل
)(٤-٥
اﻟﻣﺗﺳﻠﺳﻼت
٨
اﻟﻔﺻل اﻻول ﺑدا اﻟﻌﻣل ﺑﺑرﻧﺎﻣﺞ Mathematica
٩
) (١-١ﻓﺗﺢ اﻟﺑرﻧﺎﻣﺞ
ﺑﻌد ﺗﺣﻣﯾل اﻟﺑرﻧﺎﻣﺞ واذا ﻛﺎن ﺑرﻧﺎﻣﺞ اﻟﻧواﻓذ ﻫو اﻟﻣﺳﺗﺧدم ﻓﺳوف ﺗظﻬر اﻻﯾﻘوﻧﺔ ﺑﺑرﻧﺎﻣﺞ ﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ اﻻﺻدارMathematica 5
اﻟﺧﺎﺻﺔ
اذا ﻛﺎن ﻗد ﺗم وﺿﻌﻬﺎ ﺑواﺳطﺔ اﻟﻣﺳﺗﺧدم واﻟﻣﺷﺎر
اﻟﯾﻬﺎ ﺑﺎﻟﺳﻬم ﻋﻠﻰ ﺳطﺢ اﻟﻣﻛﺗب )ﻧﺎﻓذة ادارة اﻟﺑراﻣﺞ (Program Managerﻛﻣﺎ ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
وﺑﺎﻟﺿﻐط ﻋﻠﻰ ﻫذﻩ اﻻﯾﻘوﻧﺔ وﺑﻌد ﻟﺣظﺎت ﺗظﻬر ﻧﺎﻓذة ادﺧﺎل اﻟﺑﯾﺎﻧﺎت او ﻧﺎﻓذة اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ Mathematica Windowاﻟﺗﺎﻟﯾﺔ واﻟﺗﻰ ﺳوف ﻧطﻠق ﻋﻠﯾﻬﺎ ﻓﯾﻣﺎ ﺑﻌد ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻟﻠﺗﺳﻬﯾل:
او ﯾﻣﻛن ﻓﺗﺢ اﻟﺑرﻧﺎﻣﺞ وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﯾﻘوﻧﺔ start اﺳﻔل اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ ﺟﻬﺔ اﻟﯾﺳﺎر :
١٠
واﻟﻣﺷﺎر اﻟﯾﻬﺎ ﺑﺎﻟﺳﻬم واﻟﻣوﺟود
ﺣﯾث ﺗظﻬر اﻟﻘﺎﺋﻣﺔ All Programsاﻟﺗﺎﻟﯾﺔ :
١١
وﺑﺗﺣرﯾك ﻣؤﺷر اﻟﻔﺎرة اﻟﻰ اﯾﻘوﻧﺔ ﺑرﻧﺎﻣﺞ ﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ
اﻟﻣﺷﺎر ﻋﻠﯾﻬﺎ ﺑﺎﻟﺳﻬم ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ واﻟﺿﻐط ﻋﻠﯾﻬﺎ ﯾﺑدا ﺗﺣﻣﯾل اﻟﺑرﻧﺎﻣﺞ و ﺗظﻬر ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ اﻟﺳﺎﺑق ذﻛرﻫﺎ اى اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ:
) (٢-١وﺻف ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺗﻧﻘﺳم ﻧﺎﻓذة ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ اﻟﻰ ﺛﻼﺛﺔ اﺟزاء .اﻟﺟزء اﻟﻌﻠوى واﻟﺟزء اﻟﺳﻔﻠﻰ واﻟﺟزء اﻻوﺳط .اﻟﺟزء اﻟﺳﻔﻠﻰ ﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻋﺑﺎرة ﻋن ﺷرﯾط رﻣﺎدى اﻟﻠون ﯾﺳﻣﻰ ﺷرﯾط اﻟﺗﺻﻔﺢ او ﺷرﯾط اﻟﺗﻣرﯾر وﻋن طرﯾق اﻟﻣؤﺷر اﻟﻣوﺟود ﺑﻪ ﯾﻣﻛن رؤﯾﺔ اﻟﻣزﯾد ﻣن اﻟﻣﻌﻠوﻣﺎت ﯾﻣﯾﻧﺎ وﯾﺳﺎ ار .اﻟﻣﺳﺎﺣﺔ اﻟﺑﯾﺿﺎء ﺑﯾن اﻟﺟزء اﻟﻌﻠوى واﻟﺳﻔﻠﻰ ﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻧﺞ ﺗﻣﺛل ﻣﻧطﻘﺔ ﻋﻣل وﯾﺗم ﻓﯾﻬﺎ ﻛﺗﺎﺑﺔ اﻻواﻣر او اﻟﻌﻣﻠﯾﺎت اﻟﻣطﻠوب ﺗﻧﻔﯾذﻫﺎ .اﻟﺟزء اﻟﻌﻠوى ﯾﺗﻛون ﻣن ﺻﻔﯾن ﻣوﺿﺣﯾن ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
ﺣﯾث اﻟﺻف اﻟﻌﻠوى ﻫو ﺷرﯾط اﻟﻌﻧوان وﯾﺣﺗوى ﻋﻠﻰ اﻻﺗﻰ :ﻓﻰ اﻟرﻛن اﻻﯾﻣن ﻣن اﻟﺷرﯾط ﯾوﺟد ﺛﻼث ﻣرﺑﻌﺎت ﺻﻐﯾرة .اﻟﻣرﺑﻊ اﻻول ﻧﺎﺣﯾﺔ اﻟﯾﺳﺎر ﯾﺳﺗﺧدم ﻟﺗﺻﻐﯾر اﻟﻧﺎﻓذة Minimizeوذﻟك ﺑﺗﺣرﯾك ﻣؤﺷر
١٢
اﻟﻔﺎرة ﻧﺣوﻩ واﻟﺿﻐط ﻋﻠﯾﻪ اﻣﺎ اﻟﻣرﺑﻊ اﻟذى ﯾﻠﯾﻪ ﻣن ﻧﺎﺣﯾﺔ اﻟﯾﻣﯾن ﻓﻬو ﻟﺗﻛﺑﯾر ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ Maximize واﻟﻣرﺑﻊ اﻻﺧﯾر ﻧﺎﺣﯾﺔ اﻟﯾﻣﯾن ﻓﻬو ﻟﻐﻠق اﻟﻧﺎﻓذة .Closeوﻓﻰ اﻟرﻛن اﻻﯾﺳر ﻣن اﻟﺷرﯾط ﯾوﺟد ﻋﻧوان اﻟﺑرﻧﺎﻣﺞ ) Mathematica( 5واﺳم اﻟﻣﻠف اﻟذى ﯾﺗم اﻟﺗﻌﺎﻣل ﻣﻌﻪ واﻟﺑرﻧﺎﻣﺞ ﯾﻘوم ﺑﺎﻋطﺎء اﻻﺳم ] Untitle [1ﻟﻠﻣﻠف ﻋﻧد ﺑداﯾﺔ اﻟﺗﺷﻐﯾل وﯾﻣﻛن ﻟﻠﻣﺳﺗﺧدم ﺣﻔظ اﻟﻣﻠف ﺑﻌد ذﻟك ﺑﺎﻻﺳم اﻟذى ﯾرﯾدﻩ . اﻟﺻف اﻟﺳﻔﻠﻰ ﯾﻣﺛل اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ Bar Menuﻟﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ وﺑﻬﺎ ﻣﺟﻣوﻋﺔ ﻣن اﻻواﻣر اﻟﻣوﺿﺣﺔ ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
وﺑﺗﺣرﯾك اﻟﻣؤﺷر ﻧﺣو اﻻﻣر اﻟﻣطﻠوب ﺛم اﻟﺿﻐط ﻋﻠﻰ زر اﻟﻣﺎوس اﻻﯾﺳر ﻓﺈﻧﻪ ﯾﺧرج ﻣن ﻫذا اﻻﻣر ﻗﺎﺋﻣﺔ ﻣﺳﺣوﺑﺔ ﺗﺳﻣﻰ اﻟﻘﺎﺋﻣﺔ اﻟﻌﻣودﯾﺔ وﺑﻬﺎ ﻣﺟﻣوﻋﺔ ﻣن اﻻواﻣر اﻟﺗﻰ ﺗﺳﻬل اﻟﻌﻣل داﺧل اﻟﺑرﻧﺎﻣﺞ .ﻓﻣﺛﻼ ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Helpﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﯾﻣﻛن اﻟﺗﻌرف ﻋﻠﻰ ﺷرح واﻓﻰ ﻟﻣﺣﺗوﯾﺎت اﻟﺑرﻧﺎﻣﺞ . اﯾﺿﺎ ﻋﻧد اﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Fileاﻟﻣوﺟود ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﻌﻣودﯾﺔ اﻟﺗﺎﻟﯾﺔ وﺑﻬﺎ ﻣﺟﻣوﻋﺔ ﻣن اﻻواﻣر اﻟﻔرﻋﯾﺔ:
١٣
ﻓﻣﺛﻼ اﻟﻘﺎﺋﻣﺔ اﻟﺧﺎﺻﺔ ﺑﺎﻻﻣر Fileﺗﺣﺗوى ﻋﻠﻰ اﻻواﻣر اﻟﻔرﻋﯾﺔ اﻟﺗﺎﻟﯾﺔ : -
Newواﻟذى ﯾﻘوم ﺑﻌﻣل ﻣﻠف ﺟدﯾد داﺧل اﻟﺑرﻧﺎﻣﺞ.
-
Openواﻟذى ﯾﻘوم ﺑﻔﺗﺢ ﻣﻠف ﺳﺑق ﺗﺧزﯾﻧﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ .
-
Closeواﻟذى ﯾﻘوم ﺑﺎﻏﻼق ﻣﻠف ﻣﻔﺗوح .
-
Printواﻟذى ﯾﻘوم ﺑﺎرﺳﺎل اﻟﻣﻠف اﻟﻰ ﺟﻬﺎز اﻟطﺑﺎﻋﺔ .
وﻓﻰ ﻧﻬﺎﯾﺔ اﻟﻘﺎﺋﻣﺔ اﻟﻌﻣودﯾﺔ اﻟﺧﺎﺻﺔ ﺑﺎﻻﻣر Fileﺗظﻬر اﺳﻣﺎء اﺧر ﻣﻠﻔﺎت ﺗم اﻟﺗﻌﺎﻣل ﻣﻌﻬﺎ ﺣﯾث ﯾﺗم ﻓﺗﺣﻬﺎ ﺑﻣﺟرد اﻟﺿﻐط ﻋﻠﻰ اﺳم اﻟﻣﻠف اﻟﻣطﻠوب .وﻋﻧد اﻟﺗﻌﺎﻣل ﻣﻊ ﺑﻌض اﻻواﻣر ﺑﺎﻟﻘواﺋم اﻟﻌﻣودﯾﺔ ﺗظﻬر ﺻﻧﺎدﯾق ﺣوارﯾﺔ ﯾطﻠق ﻋﻠﯾﻬﺎ ، Dialog Boxﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻋﻧد اﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Openﯾظﻬر اﻟﺻﻧدوق اﻟﺗﺎﻟﻰ :
وﯾﻣﻛن اﺧﺗﯾﺎر اﻟﻣﻠف اﻟﻣﺣﻔوظ واﻟﻣراد اﻟﺗﻌﺎﻣل ﻣﻌﻪ وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟدﻟﯾل اﻟﻣوﺟود ﻓﻰ اﻟﺟﺎﻧب اﻻﯾﺳر ﻣن اﻟﺻﻧدوق واﻟﻣوﺟود ﺑﻪ اﻟﻣﻠف ﺣﯾث ﺗظﻬر ﻣﻠﻔﺎت اﻟدﻟﯾل ﻓﻰ اﻟﺟﺎﻧب اﻻﯾﻣن ﻣن اﻟﺻﻧدوق
١٤
وﯾﻣﻛن ﺗﺣدﯾد )اﺧﺗﯾﺎر( اﻟﻣﻠف اﻟﻣطﻠوب وذﻟك ﺑوﺿﻊ اﻟﻣﺎوس ﻋﻠﯾﻪ ﻛﻣﺎ ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ ﺣﯾث اﺳم اﻟدﻟﯾل Dواﺳم اﻟﻣﻠف : kkkkk
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر
ﻓﻰ اﻟﺻﻧدوق اﻟﺣوارى ﯾﺗم ﻓﺗﺢ اﻟﻣﻠف ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .وﻋﻧد
اﻟرﻏﺑﺔ ﻓﻰ اﻟﻌودة اﻟﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺑدون ﻓﺗﺢ ﻣﻠف ﯾﺗم اﻟﺿﻐط ﻋﻠﻰ اﻻﻣر
.
وﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ اﻧﺷﺎء ﻣﻠف ﺟدﯾد ﺳواء ﻗﺑل اﻟﻌﻣل ﻋﻠﯾﻪ او ﺑﻌد اﻟﻌﻣل ﻋﻠﯾﻪ ﯾﺧﺗﺎر ﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ اﻣر Fileﺛم ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻻﻣر Saveﻓﯾظﻬر اﻟﺻﻧدوق اﻟﺣوارى اﻟﺗﺎﻟﻰ وﯾﻛﺗب اﺳم اﻟﻣﻠف ﻓﻰ ﺧﺎﻧﺔ
١٥
File Nameوﻫو ﻫﻧﺎ ss1اﻟﻣﺣﻔوظ ﻓﻰ اﻟدﻟﯾل Dوﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر اﻟﺣوارى ﯾﺗم ﺣﻔظ اﻟﻣﻠف واﻟرﺟوع اﻟﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .
) (٣-١ﺗﺷﻐﯾل اﻟﺑرﻧﺎﻣﺞ
١٦
ﻓﻰ اﻟﺻﻧدوق
ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ وﻟﺗﻧﻔﯾذ ﻋدد ﻣن اﻻواﻣر )او اﻣر واﺣد ( وﻓﻰ اﻟﺟزء اﻻوﺳط ﻣن اﻟﺷﺎﺷﺔ ﯾﺗم ﻛﺗﺎﺑﺔ اﻻواﻣر اﻟﻣطﻠوب ﺗﻧﻔﯾذﻫﺎ ﺑﻧﻔس اﻟطرﯾﻘﺔ اﻟﺗﻰ ﯾﻛﺗب ﺑﻬﺎ ﻓﻰ ﺑرﻧﺎﻣﺞ ﻣﻌﺎﻟﺟﺔ اﻟﺑﯾﺎﻧﺎت Word Processing ﺣﯾث ﯾﺗم اﻟﻧﻘر اﻟﻣﺎوس وﻛﺗﺎﺑﺔ اﻻﻣر اﻻول ﻓﻰ اﻋﻠﻰ اﻟﺟزء ﻣن اﻟﻧﺎﻓذة .ﻓﻣﺛﻼ ﺑﻔرض اﺟراء ﻋﻣﻠﯾﺔ ﺑﺳﯾطﺔ ﻣﺛل 10*5ﯾﻛﺗب ﻫذا اﻻﻣر ﻛﻣﺎ ﻫو ﻣوﺿﺢ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر ) Kernalواﻟذى ﯾﻌﺗﺑر ﻋﻘل او ﻣﺦ اﻟﺑرﻧﺎﻣﺞ ( واﻟﻣﺷﺎر ﻟﻪ ﺑﺎﻟﺳﻬم ﻛﻣﺎ ﻫو ﻣوﺿﺢ ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
١٧
ﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ ﺣﯾث ﯾﺧﺗﺎر ﻣﻧﻬﺎ اﻻﻣر : Evalution
ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ واﻟﺗﻰ ﯾﺧﺗﺎر ﻣﻧﻬﺎ اﻻﻣر : Evalute Notebook
١٨
ﻓﺗظﻬر ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
رﻗم اﻻﻣر اﻻول ﯾﻣﺛل ﺑﺎﻟﻌﻼﻣﺔ = In[1]:وﯾظﻬر ﻓﻰ اﻟﺟﺎﻧب اﻻﯾﺳر ﻣن اﻟﺷﺎﺷﺔ ﻋﻠﻰ ﯾﺳﺎر اﻻﻣر وﯾﺳﻣﻰ اﻟﻣﺣث Prompوﺑﺻورة ﻋﺎﻣﺔ = In[n]:ﯾﻣﺛل اﻟﻣدﺧل رﻗم .nوﻓﻰ اﻟﺳطر اﻟﺛﺎﻧﻰ ﺗظﻬر ﻋﻼﻣﺔ اﻟﻣﺧرج اﻻول = Out [1]:ﺣﯾث ﯾﻘوم اﻟﺑرﻧﺎﻣﺞ ﺑطﺑﺎﻋﺔ اﻟﻧﺎﺗﺞ ﺑﺟﺎﻧب ﻋﻼﻣﺔ اﻟﻣﺧرج= . Out [1]:وﻓﻰ ﺣﺎﻟﺔ وﺟود اﻛﺛر ﻣن اﻣر وﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ ﺗﻧﻔﯾذ ﺑﻌض اﻻواﻣر وﻟﯾس ﻛل اﻻواﻣر ﯾﺧﺗﺎر اﻻواﻣر اﻟﻣطﻠوب ﺗﻧﻔﯾذﻫﺎ وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻗواس اﻟﻣوﺟودة ﻓﻰ ﻧﻬﺎﯾﺔ اﻟﺟﺎﻧب اﻻﯾﺳر ﻣن ﺗﻠك اﻻوﻣر ﺣﯾث ﯾﺗم ﺗﺣدﯾد اوﺗظﻠﯾل ﻫذﻩ اﻻﻗواس ﻛﻣﺎ ﻧﺷﺎﻫد ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ ﺑﺎﻟﻧﺳﺑﺔ ﻟﻼﻣر اﻻول :
١٩
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Kernalﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ :
واﻟﺗﻰ ﯾﺧﺗﺎر ﻣﻧﻬﺎ اﻻﻣر Evaluateوﺑﺎﻟﺿﻐط ﻋﻠﻰ ﻫذا اﻻﻣر ﺗظﻬر ﻟﻧﺎ اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺗﺎﻟﯾﺔ ﯾﺧﺗﺎر ﻣﻧﻬﺎ اﻻﻣر Evaluate Cellﺑدﻻ ﻣن اﻻﻣر Evaluate Notebookﻛﻣﺎ ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
٢٠
وﺑﺎﻟﺿﻐط ﻋﻠﯾﻬﺎ ﻧرﺟﻊ اﻟﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯨﺔ ﻛﻣﺎ ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
وﯾﻼﺣظ ان ﺷﻛل اﻟﻘوس اﻟﻣوﺟود ﻓﻰ ﻧﻬﺎﯾﺔ اﻟﺟﺎﻧب اﻻﯾﺳر ﻣن اﻣر اﻻدﺧﺎل ﯾﺧﺗﻠف ﻋن ﺷﻛل اﻟﻘوس اﻟﻣوﺟود ﻟﻠﻣﺧرج . ٢١
وﻟﺗﺣوﯾل ﻣﺧرج اﻟﻰ ﻣدﺧل ﻟﻠﺗﻌﺎﻣل ﻣﻌﻪ ﯾﺿﻐط ﺑﺎﻟﻣﺎوس ﺗﺣﺗﻪ ﺛم ﯾﺿﻐط ﻋﻠﻰ اﻻﻣر Inputﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ اﻻﻣر . Copy Input from Aboveوﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻛﺛر ﻣن ﻋﻣﻠﯾﺔ رﯾﺎﺿﯾﺔ ﻋﻠﻰ ﺳطر واﺣد ﺑﺟﻣﻠﺔ ادﺧﺎل واﺣدة ﺑﺷرط ان ﯾﻔﺻل ﻛل ﻋﻣﻠﯾﺔ ﻋن اﻻﺧرى ﺑﺎﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ ; وﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﻓﺎن ﻧﺎﺗﺞ اﻟﺗﻧﻔﯾذ ﯾﻌطﻰ ﻧﺎﺗﺞ اﺧر ﻋﻣﻠﯾﺔ ﺗم ادﺧﺎﻟﻬﺎ ﻓﻰ اﻟﺳطر اﻣﺎ اذا اﻧﺗﻬﻰ ﺳطر اﻻدﺧﺎل ﺑﺎﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ ﻓﻬذا ﯾﻌﻧﻰ رﻏﺑﺔ اﻟﻣﺳﺗﺧدم ﻓﻰ ﻋدم ظﻬور اﻟﻧﺎﺗﺞ وﺧﺻوﺻﺎ اذا ﻛﺎن ﺣﺟﻣﻪ ﻛﺑﯾر وﯾﻔﺿل اﻟﻣﺳﺗﺧدم ﻓﻰ ﺗﺻﻐﯾر ﺣﺟم اﻟﺑرﻧﺎﻣﺞ اﻟﻰ اﻗل ﺣﺟم ﻣﻣﻛن ﺣﺗﻰ ﯾﺳﻬل ﻣراﺟﻌﺗﻪ ﻋﻧد وﺟود اﺧطﺎء ﻓﯾﻪ . وﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ ﻣﺳﺢ اﻣر او ﺣرف ﻓﺎﻧﻪ ﯾﻣﻛن اﻟذﻫﺎب اﻟﯾﻪ وﺗظﻠﯾﻠﻪ ﺑﺎﻟﻣﺎوس واﻟﺿﻐط ﻋﻠﻰ Delﻣن ﻟوﺣﺔ اﻟﻣﻔﺎﺗﯾﺢ وﻋﻧدﻣﺎ ﻧرﯾد اﺧذ ﻧﺳﺧﺔ ﻣن اﻣر ﺗم ﻛﺗﺎﺑﺗﻪ ﻣن ﻗﺑل ﻓﺎﻧﻪ ﯾﻣﻛن اﻟذﻫﺎب اﻟﯾﻪ وﺗظﻠﯾﻠﻪ ﺑﺎﻟﻣﺎوس ﺛم اﻟذﻫﺎب اﻟﻰ اﻻﻣر Editﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﺛم اﻟﺿﻐط ﻋﻠﻰ اﻣر Copyﻟﻌﻣل ﻧﺳﺧﺔ ﻣﻧﻪ وﺑﻌد ذﻟك ﻧذﻫب ﺑﺎﻟﻣوﺷر اﻟﻰ اﻟﻣﻛﺎن اﻟﻣطﻠوب ﻟﺻق اﻟﻧﺳﺧﺔ ﻓﯾﻪ ﺛم اﻟﺿﻐط ﻋﻠﻰ اﻣر Editﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﺛم اﻟﺿﻐط ﻋﻠﻰ اﻣر Pastﻟﻌﻣل ﻧﺳﺧﺔ ﻣﻧﻪ. وﻟﻣﺎ ﻛﺎن اﻟﺑرﻧﺎﻣﺞ ﯾرﻗم ﻟﻧﺎ ﻛل ﻣن ﻣدﺧﻼﺗﻪ وﻣﺧرﺟﺎﺗﻪ ﺗرﻗﯾم ﺗﺻﺎﻋدى وﻋﻠﻰ ذﻟك اذا ﻛﺎن اﻟﻣطﻠوب اﺟراء ﻋﻣﻠﯾﺔ ﻋﻠﻰ ﻧﺎﺗﺞ اﺧرﺟﻪ اﻟﺑرﻧﺎﻣﺞ ﻗﺑل اﻟﻌﻣﻠﯾﺔ اﻟﺣﺎﻟﯾﺔ ﺑﻌدد ﻛﺑﯾر ﻣن اﻟﻌﻣﻠﯾﺎت وﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﺗوﺿﻊ ﻋﻼﻣﺔ اﻟﻧﺳﺑﺔ اﻟﻣﺋوﯾﺔ %ﯾﻠﯾﻬﺎ رﻗم ذﻟك اﻟﻧﺎﺗﺞ ﺣﺳب اﻟﺗرﻗﯾم اﻟﻣﻌطﻰ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ .واذا ﻛﺎن اﻟﻧﺎﺗﺞ ﯾﺳﺑق اﻟﻌﻣﻠﯾﺔ اﻟﻣطﻠوب ﺗﻧﻔﯾذﻫﺎ ﺑﻌﻣﻠﯾﺗﯾن ﻓﺎﻧﻧﺎ ﻧﺷﯾﯨر اﻟﻰ اﻟﻧﺎﺗﺞ ﺑﻌﻼﻣﺗﻰ ﻧﺳﺑﺔ ﻣﺋوﯾﺔ .%%واذا ﻛﺎن اﻟﻧﺎﺗﺞ ﯾﺳﺑق اﻟﻌﻣﻠﯾﺔ اﻟﻣطﻠوب ﺗﻧﻔﯾذﻫﺎ ﻣﺑﺎﺷرة ﻓﺎﻧﻧﺎ ﻧﺷﯾر اﻟﻰ اﻟﻧﺎﺗﺞ ﺑﻌﻼﻣﺔ ﻧﺳﺑﺔ ﻣﺋوﯾﺔ.%
ﻣﺛﺎل ﺑﻔرض اﻧﻧﺎ ادﺧﻠﻧﺎ اﻟﻰ اﻟﺑرﻧﺎﻣﺞ ﻋﻣﻠﯾﺔ ﻣﺛل 10*3ﻓﺎن اﻟﻧﺎﺗﺞ ﯾﻛون 30واذا اردﻧﺎ اﺟراء ﻋﻣﻠﯾﺔ ﻋﻠﻰ ﻫذا اﻟﻧﺎﺗﺞ ﻣﺛل طرح 9ﻣﻧﻪ ﻓﺎﻧﻧﺎ ﻧﺷﯾر اﻟﻰ ﻫذا اﻟﻧﺎﺗﺞ ﺑﻌﻼﻣﺔ اﻟﻧﺳﺑﺔ اﻟﻣﺋوﯾﺔ وﺑﺎﻟﺗﺎﻟﻰ ﺑدﻻ ﻣن ﻛﺗﺎﺑﺔ 30-9 ﻧﻛﺗب %-9ﻓﯾﺧرج ﻟﻧﺎ اﻟﻧﺎﺗﺞ . 21واذا اردﻧﺎ اﺟراء ﻋﻣﻠﯾﺔ اﺧرى ﻋﻠﻰ ﻧﻔس اﻟﻧﺎﺗﺞ اﻻول 30ﻣﺛل اﺿﺎﻓﺔ 5 ﻟﻪ ﻓﺎﻧﻧﺎ ﻧﺷﯾر اﻟﻰ اﻟﻧﺎﺗﺞ 30ﺑﻌﻼﻣﺗﻰ ﻧﺳﺑﺔ ﻣﺋوﯾﺔ %%ﻻن اﻟﻧﺎﺗﺞ 30ﯾﺳﺑق ﻫذﻩ اﻟﻌﻣﻠﯾﺔ ﺑﻌﻣﻠﯾﺗﯾن وﺑذﻟك ﻧﻛﺗب اﻻﻣر ﻛﺎﻟﺗﺎﻟﻰ %%+5ﻓﯾﺧرج ﻟﻧﺎ اﻟﻧﺎﺗﺞ . 35اواﻣر اﻻدﺧﺎل ﻣوﺿﺣﺔ ﻛﻣﺎ ﯾﻠﻰ :
٢٢
وﯾﻣﻛن ادﺧﺎل اﻟﻣﻌﺎدﻻت او اﻟدوال اﻟرﯾﺎﺿﯾﺔ ﻓﻰ ﺻورة ادﺧﺎل Inpur Formاو ﻓﻰ ﺻورة ﻗﯾﺎﺳﯾﺔ ، StandardFormﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻛل ﻣن
ﺗﻣﺛل ﺻﯾﻐﺔ اﻻدﺧﺎل و
و Piﯾﻣﺛﻠون اﻟﺛﺎﺑت اﻟرﯾﺎﺿﻰ 3.14159ﺣﯾث Pi
ﺗﻣﺛل اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ.
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟرﻣز
وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Fileاﻟﻣوﺟود ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻣن ﻧﺎﻓذة
اﻟﺑرﻧﺎﻣﺞ ﺛم ﻧﺧﺗﺎر ﻣن ﻗﺎﺋﻣﺔ Fileاﻟﺗﺎﻟﯾﺔ اﻻﻣر :Palette
٢٣
ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺗﺎﻟﯾﺔ وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر :BasicInput
ﯾﺗم اﻟﺣﺻول ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ واﻟﺗﻰ ﺗظل ﻣوﺿوﻋﺔ ﻋﻠﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ طول اﻟﺗﺷﻐﯾل واﻟﺗﻰ ﺗﻣد اﻟﻣﺳﺗﺧدم ﺑﻛﺛﯾر ﻣن اﻟرﻣوز اﻟﻣﻔﯾدة
واﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻣﺛل اﻟﻘﺳﻣﺔ واﯾﺟﺎد اﻟﺟذر واﻟرﻣز
ﻣوﺿﺢ ﺑﺎﻟﺳﻬم .
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اى رﻣز ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ ﻓﻧﺣﺻل ﻋﻠﯾﻪ ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻓﻰ اﻟﻣﻛﺎن اﻟﻣﺣدد ﺳﺎﺑﻘﺎ ،وﻓﯾﻣﺎ ﯾﻠﻰ اﻣﺛﻠﺔ ﻋﻠﻰ ذﻟك ﺗم ﺗﻧﻔﯾذﻫﺎ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ: ]N[Pi
3.14159 ﺣﯾث ] N[Piﺗﻌﻧﻰ ﺗﻘرﯾب ﻟﻠﺛﺎﺑت . ٢٤
] N[
3.14159 ﺣﯾث] N[ ﺗﻌﻧﻰ ﺗﻘرﯾب ﻟﻠﺛﺎﺑت . ان ﺗرﺑﯾﻊ اﻟرﻗم ﻋﺷرة ﯾﻣﻛن ان ﯾﺗم ﺑﺛﻼث طرق ﻓﻔﻰ اﻟطرﯾﻘﺔ اﻻوﻟﻰ ﯾﻛﺗب ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﯾﺳﯾﺔ ﺑﺎﺳﺗﺧدام اﻟرﻣز
ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺳﺎﺑﻘﺔ وذﻟك ﻟﻛﺗﺎﺑﺔ اﻟﺗﺎﻟﻰ :
102 100 اﻟطرﯾﻘﺔ اﻟﺛﺎﻧﯾﺔ ﻓﺗﺗم ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﻣﺎ ﯾﻠﻰ : 10*10 100
اﻟطرﯾﻘﺔ اﻟﺛﺎﻟﺛﺔ ﺗﺗم ﺑﺷﻛل اﺧر ﻟﺻﯾﻐﺔ اﻻدﺧﺎل : 10^2 100
ﻛﻣﺎ ان ﻗﺳﻣﺔ ﺛﻼﺛﺔ ﻋﻠﻰ ﺧﻣﺳﺔ ﯾﻣﻛن ان ﺗﺗم ﺑطرﯾﻘﺗﯾن ﻓﻔﻰ اﻟطرﯾﻘﺔ اﻻوﻟﻰ ﯾﻛﺗب ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﯾﺳﯾﺔ ﺑﺎﺳﺗﺧدام اﻟرﻣز
ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺳﺎﺑﻘﺔ وذﻟك ﻟﻛﺗﺎﺑﺔ اﻟﺗﺎﻟﻰ :
3 5 3 5
او ﺑﺎﺳﺗﺧدام ﺻﯾﻐﺔ اﻻدﺧﺎل :
3/5
3 5
ﺟذر ﻋﺷرة ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﻣﺎ ﯾﻠﻰ :
]Sqrt[10
10
او ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﺑﺎﺳﺗﺧدام اﻟرﻣز
ﻣن اﻟﻘﺎﺋﻣﺔ ااﻟﺳﺎﺑﻘﺔ وذﻟك ﻟﻛﺗﺎﺑﺔ اﻟﺗﺎﻟﻰ
10
10
٢٥
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ yﻣن ﺻﻔر اﻟﻰ واﺣد ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﺑﺎﺳﺗﺧدام اﻟرﻣز ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺳﺎﺑﻘﺔ وذﻟك ﻟﻛﺗﺎﺑﺔ اﻟﺗﺎﻟﻰ :
1
y y 0
1 2
وﺑﺻﯾﻐﺔ اﻻدﺧﺎل :
]}Integrate[y,{y,0,1
1 2 ﻫذا وﺳوف ﯾﺗﻌود اﻟﻣﺳﺗﺧدم ﻋﻠﻰ ﻫذﻩ اﻻﺷﻛﺎل واﺷﯾﺎء اﺧرى ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ ﻣن ﻛﺛرة اﺳﺗﺧداﻣﻬﺎ.
) (٤-١اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻣن اﻟﺑرﻧﺎﻣﺞ ﻓﻰ ﻛﺛﯾر ﻣن اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ اﻟﺗﻌرف ﻋﻠﻰ اﻟﻣﻌﻠوﻣﺎت اﻟﺧﺎﺻﺔ ﺑﺎﻻواﻣر او اﻟدوال اﻟﻣﺧﺗﻠﻔﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ وﻟﻠﺗﻌرف ﻋﻠﻰ اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ وﻛﯾﻔﯾﺔ ﻛﺗﺎﺑﺔ ﻛل ﻣن ﻫذﻩ اﻻواﻣر او اﻟدوال اﻟﻣﺧﺗﻠﻔﺔ ﯾﺗم ذﻟك ﻋن طرﯾق اﻣر ﻣﻌﯾن .اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻬذا اﻻﻣر ﻫﻰ : ? Objectﺣﯾث Objectﺗﻣﺛل اﺳم اﻻﻣر او اﻟداﻟﺔ اﻟﻣطﻠوب اﻻﺳﺗﻌﻼم ﻋﻧﻬﺎ وﺑﻣﺟرد ﺗﻧﻔﯾذ اﻻﻣر ﻛﻣﺎ ﺳﺑق ﺗوﺿﯾﺣﺔ ﺗظﻬر اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ وﺟﻣﯾﻊ اﻟﻣﻌﻠوﻣﺎت ﻋن اﻻﻣر او اﻟداﻟﺔ وﯾراﻋﻰ ان ﯾﻛون اﻟﺣرف اﻻول ﻣن اﻻﻣر او اﻟداﻟﺔ ﻛﺑﯾر Capitalواذا ﻛﺎن اﻻﻣر ﯾﺣﺗوى ﻋﻠﻰ ﻛﻠﻣﺗﯾن او اﻛﺛر ﻓﺈن ﻛل ﻛﻠﻣﺔ ﻓﻰ اﻻﻣر ﺗﺑدا ﺑﺣرف ﻛﺑﯾر .ﻓﻣﺛﻼ ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻟداﻟﺔ Cosineﯾﻛﺗب اﻻﻣر ? Cosوﯾﺗم ﺗﻧﻔﯾذ اﻻﻣر ﻓﯾظﻬر اﻟﺗﺎﻟﻰ : ?Cos
…Cosz gives the cosine of z. More وﻟﻣﻌرﻓﺔ اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻠداﻟﺔ Logﯾﻛﺗب اﻻﻣر ? Logوﯾﺗم ﺗﻧﻔﯾذ اﻻﻣر ﻓﯾظﻬر اﻟﺗﺎﻟﻰ : ?Log
Logz gives the natural logarithm of z logarithm to base e. Logb, z …gives the logarithm to base b. More ٢٦
ﯾﺣﺳب ﻗﯾﻣﺔLog[b,z] واﻻﻣرe ﻟﻼﺳﺎسz ﯾﺣﺳب ﻗﯾﻣﺔ اﻻوﻏﺎرﯾﺗم اﻟطﺑﯾﻌﻰ ﻟﻠﻌددLog[z] اى ان اﻻﻣر .b واﻻﺳﺎسz اﻻوﻏﺎرﯾﺗم ﻟﻠﻌدد : ؟ وﺑﻌد ﺗﻧﻔﯾذ اﻻﻣر ﯾﺗم اﻟﺣﺻول ﻋﻠﻰ اﻟﺗﺎﻟﻰPlot وﻟﻣﻌرﻓﺔ اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻻﻣر اﻟرﺳم ﯾﻛﺗب اﻻﻣر ?Plot
Plotf, x, xmin, xmax generates a plot of f as a function of x from xmin to xmax. Plotf1, f2, ... , x, xmin, xmax plots several functions fi. More… . xmax اﻟﻰx=xmin ﻣن اﻟﻧطﺎقf(x) ﯾﻘوم ﺑرﺳم اﻟداﻟﺔPlot[f,{x,min,max}] اى ان اﻻﻣر ﻣﺛل اﻟﺗﻌرف ﻋﻠﻰ اﻟﺧﯾﺎرات اﻟﺗﻰ ﯾﻣﻛن اﺿﺎﻓﺗﻬﺎ اﻟﻰPlot وﻟﻠﺗﻌرف ﻋﻠﻰ ﻣﻌﻠوﻣﺎت اﺿﺎﻓﯾﺔ ﻋن اﻣر اﻟرﺳم : اﻟرﺳم ﻧﺗﺑﻊ اﻻﺗﻰ ??Plot
Plotf, x, xmin, xmax generates a plot of f as a function of x from xmin to xmax. Plotf1, f2, ... , x, xmin, xmax plots several functions fi. More…
ﻧﺗﺑﻊ اﻻﺗﻰPlot ﻟﻠﺣﺻول ﻋﻠﻰ ﻛل اﻟدوال واﻟﺗﻰ ﺗﺑدا ﺑﻛﻠﻣﺔ
Names["Plot"] {Plot}
: ﺛم ﻧﺗﺑﻊ ﻣﺎ ﯾﻠﻰ Names["Plot*"]
{Plot,Plot3D,Plot3Matrix,PlotDivision,PlotJoined,PlotLabel,PlotPoints,PlotRange,Pl otRegion,PlotStyle} : ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰSolve اﯾﺿﺎ ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت اﻛﺛر ﻋن اﻻﻣر
??Solve ٢٧
Solveeqns, vars attempts to solve an equation or set of equations for the variables vars. Solve eqns, vars, elims attempts to solve the equations for vars, eliminating the variables elims. More… AttributesSolve Protected OptionsSolve InverseFunctions Automatic, MakeRules False, Method 3, Mode Generic, Sort True, VerifySolutions Automatic, WorkingPrecision ﻧﺗﺑﻊ اﻻﺗﻰParametricPlot اﯾﺿﺎ ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻻﻣر
?ParametricPlot
ParametricPlotfx, fy, t, tmin, tmax produces a parametric plot with x and y coordinates fx and fy generated as a function of t. ParametricPlot fx, fy, gx, gy, ... , t, tmin, tmax plots several parametric curves. More… : ﻓﻧﺣﺻل ﻛل اﻟﺧﯾﺎرات اﻟﻣﺳﺗﺧدﻣﺔ ﻓﻰ ﻫذا اﻻﻣر ﻛﺎﻟﺗﺎﻟﻰOption[ParametricPlot] او ﻛﺗﺎﺑﺔ اﻻﻣر
Options[ParametricPlot] Options[ParametricPlot]
٢٨
1 , Axes Automatic, GoldenRatio AxesLabel None, AxesOrigin Automatic, AxesStyle Automatic, Background Automatic, ColorOutput Automatic, Compiled True, DefaultColor Automatic, DefaultFont $DefaultFont, DisplayFunction $DisplayFunction, Epilog , FormatType $FormatType, Frame False, FrameLabel None, FrameStyle Automatic, FrameTicks Automatic, GridLines None, ImageSize Automatic, MaxBend 10., PlotDivision 30., PlotLabel None, PlotPoints 25, PlotRange Automatic, PlotRegion Automatic, PlotStyle Automatic, Prolog , RotateLabel True,
AspectRatio
TextStyle $TextStyle, Ticks Automatic
: ﻣﺛﻼ ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰP وﻟﻠﺗﻌرف ﻋﻠﻰ ﺟﻣﯾﻊ اﻻواﻣر او اﻟدوال واﻟﺗﻰ ﺗﺑدا ﺑﺣرف
?P*
٢٩
S ys te m ` P addedF orm Po lynomi alForm P adLeft Po lynomi alGCD P adRigh t Po lynomi alLCM P ageBre akAbo ve Po lynomi alMod P ageBre akBel ow Po lynomi alQ P ageBre akWit hin Po lynomi alQuot ient P ageFoo terLi nes Po lynomi alRedu ce P ageFoo ters Po lynomi alRema inder P ageHea derLi nes Po lynomi als P ageHea ders Po sition P ageHei ght Po sitive P ageWid th Po stfix P alette Path Po stScri pt P aperWi dth Po wer P aragra phInd ent Po werExp and P aragra phSpa cing Po werMod P aramet erVar iables Po werMod List P aramet ricPl ot Pr eceden ce P aramet ricPl ot3D Pr eceden ceForm P arentC onnec t Pr ecisio n P arentD irect ory Pr ecisio nGoal P arentF orm Pr eDecre ment P arenth esize Pr eferen cesPat h P art Pr efix P artiti on Pr eIncre ment P artiti onsP Pr epend P artiti onsQ Pr ependT o P asteBo xForm Inline Cells Pr eserve StyleS heet P ath Pr evious P attern Pr imaryP laceho lder P attern Test Pr ime P ause Pr imePi P eriodi cInte rpolat ion Pr imeQ P ermuta tions Pr imes Pi Pr incipa lValue P ivotin g Pr int P laceho lder Pr intAct ion P lain Pr intFor m P lay Pr inting Copies P layRan ge Pr inting Option s P lot Pr inting PageRa nge P lot3D Pr inting Starti ngPag eNumbe r P lot3Ma trix Pr inting StyleE nviro nment P lotDiv ision Pr intPre cision P lotJoi ned Pr ivateC ellOpt ions P lotLab el Pr ivateE valuat ionOp tions P lotPoi nts Pr ivateF ontOpt ions P lotRan ge Pr ivateN oteboo kOpti ons P lotReg ion Pr ivateP aths P lotSty le Pr oduct P lus Pr oductL og P ochham mer Pr olog P oint Pr omptFo rm P ointFo rm Pr otect P ointSi ze Pr otecte d P olyGam ma Ps eudoIn verse P olygon Pu t P olygon Inter sectio ns Pu tAppen d ٣٠ P olyLog
وﻗد اﺳﺗﺧدﻣﻧﺎ اﻟرﻣز * ﻟﯾﺣل ﻣﻛﺎن اى ﻋدد ﻣن اﻟﺣروف ﺗﻛﺗب ﺑﻌد اﻟﺣرف ) Pﻓﻰ ﺣﺎﻟﺔ ﻧﺳﯾﺎن ﺗﻠك اﻟﺣروف او ﺑﻌﺿﻬﺎ( ﺣﯾث ﯾظﻬر ﺑﯾﺎن ﺑﺟﻣﯾﻊ اﻻواﻣر واﻟدوال اﻟﻣوﺟودة ﻓﻰ اﻟﺑرﻧﺎﻣﺞ واﻟﺗﻰ ﺗﺑدا ﺑﺣرف .P
) (٥-١اﻻﺧطﺎء ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﯾﻘﻊ اﻟﻣﺳﺗﺧدم ﻓﻰ ﺑﻌض اﺧطﺎء ﻋﻧد ﻛﺗﺎﺑﺔ اﺣد اﻻواﻣر او ﻛﺗﺎﺑﺔ داﻟﺔ ﻣﺎ او ﻓﻰ ﻋدد اﻻﻗواس او ﻓﻰ ﺷﻛل اﻻﻗواس وﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﯾرﺳل اﻟﺑرﻧﺎﻣﺞ رﺳﺎﻟﺔ ﻻﺣﺗﻣﺎﻻت اﻟﺧطﺎ ﻓﻰ ﻛﺗﺎﺑﺔ اﻻﻣر واﻟﺣﻠول اﻟﻣﻣﻛﻧﺔ ،ﻫﻧﺎ ﺗﺑﺳﯾط ﻟﻧوع ﻣن اﻻﺷﯾﺎء اﻟﺗﻰ ﻋﺎدة ﻣﺎ ﺗﺣدث: ]Sine[1.5 General ::spell : Possible spelling error : new symbol name "Sine " is …similar to existing symbols Line , Sin , Sinh . More ]Sine[1.5
ﯾﺗﺿﺢ ﻣن اﻟرﺳﺎﻟﺔ اﻟﺳﺎﺑﻘﺔ ان اﻟﺧطﺎ ﻓﻰ ﻛﺗﺎﺑﺔ اﻟداﻟﺔ وﻗد اﻋطﻰ اﻟﺑرﻧﺎﻣﺞ اﺳﻣﺎء دوال ﻛﺛﯾرة ﻣن اﻟﻣﺣﺗﻣل ان ﺗﻛون داﻟﺔ اﻟﻣﺳﺗﺧدم واﺣدة ﻣﻧﻬم ﺛم اﻋﺎد ﻛﺗﺎﺑﺔ اﻟﻣدﺧل ﻟﻌدم ﻓﻬﻣﻪ .وﺑﺎﻟﺧﺑرة ﯾﻣﻛن اﻻﺳﺗﻔﺎدة ﻣن ﻫذﻩ اﻟرﺳﺎﺋل ﻓﻰ ﺗﺻﺣﯾﺢ اﻻﺧطﺎء.
) (٦-١ﺗﺷﻐﯾل اﻟﺣزم اﻟﺟﺎﻫزة اﻟﻣوﺟودة ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻣن اﻟﻣﻣﯾزات اﻟﻬﺎﻣﺔ ﻓﻰ ﺑرﻧﺎﻣﺞ Mathematicaاﻧﻪ ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻟدوال اﻟﻛﺛﯾرة اﻟﻣوﺟودة ﻓﯾﻪ واﻟﺗﻰ ﺗﺷﺗﻣل اﻟﻌدﯾد ﻣن ﻓروع اﻟرﯾﺎﺿﯾﺎت ﻓﺈﻧﻪ ﯾﻣﻛن ﻟﻠﻣﺳﺗﺧدم ﺗﻌرﯾف اﻟدوال اﻟﺧﺎﺻﺔ ﺑﻪ وذﻟك ﻻن اﻟﺑرﻧﺎﻣﺞ ﯾﺳﺗﺧدم ﻛﻠﻐﺔ ﺑرﻣﺟﺔ ،اﯾﺿﺎ ﺗوﺟد ﺣزم )ﺑراﻣﺞ ﺟﺎﻫزة ( Packagesﻟﻣوﺿوﻋﺎت ﻣﺗﺧﺻﺻﺔ ﻓﻰ اﻟﺟﺑر – اﻟﺗﻔﺎﺿل واﻟﺗﻛﺎﻣل – اﻻﺣﺻﺎء -اﻟﺟﺑر اﻟﺧطﻰ – اﻟﺑرﻣﺟﺔ اﻟﺧطﯾﺔ -ﺗﺣوﯾﻼت ﻻﺑﻼس -ﺗﺣوﯾﻼت ﻓورﯾر ﺗﺣﻠﯾل اﻟﻣﺗﺟﻬﺎت – اﻟﺗﺣﻠﯾل اﻟﻌددى – اﻟﻬﻧدﺳﺔ وﻏﯾرﻫﺎ )ﻣﺛل اﻟﺟﻐراﻓﯾﺎ( .وﻛل ﺣزﻣﺔ ﺗﺣﺗوى ﻋﻠﻰ ﺑراﻣﺞ ﺟﺎﻫزة ﻟﻔرع دﻗﯾق ﻓﻰ اﻟﻣﺟﺎﻻت اﻟﺳﺎﺑﻘﺔ .وﯾﺗم اﺳﺗدﻋﺎء اﻟﺣزﻣﺔ ﻋن طرﯾق ﻛﺗﺎﺑﺔ اﻻﻣر اﻟﺗﺎﻟﻰ : '<< directo'packagename
ﺣﯾث directorﯾﻣﺛل ﻣﻛﺎن اﻟﺣزﻣﺔ اﻟﻣﺳﻣﺎﻩ packagenameاﻟﻣطﻠوب اﺳﺗدﻋﺎﺋﻬﺎ . ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺑﻔرض اﻧﻧﺎ ﻧﺣﺗﺎج اﻟﻰ ﻣﻌﻠوﻣﺎت ﻋن ﺑﻌض اﻟﻌﻧﺎﺻر اﻟﻛﯾﻣﺎﺋﯾﺔ .ﯾﻣﻛن ﺗﺣﻣﯾل اﻟﺣزﻣﺔ اﻟﺧﺎﺻﺔ ﺑذﻟك ﺑﻛﺗﺎﺑﺔ اﻻﻣر '<<Miscellaneous'ChemicalElements
٣١
وﺑﻣﺟرد ﺗﺣﻣﯾل ﻫذﻩ اﻟﺣزﻣﺔ ﻓﺎن ﻛل اﻟدوال اﻟﻣﻌرﻓﺔ ﺗﻛون ﻣﺗوﻓرة .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺗﺣﺗوى اﻟﺣزﻣﺔ ﻋﻠﻰ اﻟدوال اﻟﺗﻰ ﺗﻌطﯾﻧﺎ اﺧﺗﺻﺎرات ﻟﻠﻌﻧﺎﺻر اﻟﻛﯾﻣﺎﺋﯾﺔ ﻣﺛل اﻟوزن اﻟذرى وﺣ اررة اﻻﺑﺧرة...اﻟﺦ . `<<Miscellaneous`ChemicalElements Wolfram Tungsten ]Abbreviation[Wolfram W ]AtomicWeight[W 183.84 ]HeatOfVaporization[W
824.2 Joule Kilo Mole ]ElectronConfiguration[W }}{{2},{2,6},{2,6,10},{2,6,10,14},{2,6,4},{2
ﻓﻣﺛﻼ ﺑﻛﺗﺎﺑﺔ اﻻﻣر ' <<Graphics'Graphicsﯾﻣﻛن اﺳﺗﺧداﻣﻪ ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ اﻟداﺋرة اﻟﺑﯾﺎﻧﯾﺔ ﻛﻣﺎ ﯾﺗﺿﺢ ﻓﯾﻣﺎ ﯾﻠﻰ ﺑﻌدة اﺷﻛﺎل ودون اﻟدﺧول ﻓﻰ ﺗﻔﺎﺻﯾل اﻟﺑرﻧﺎﻣﺞ وﻟﻛن ﻟﺑﯾﺎن اﻫﻣﯾﺔ ﺗﻠك اﻟﺣزم اﻟﺟﺎﻫزة . `<<Graphics`Graphics ;}revenue={3000,2500,4600,1200,3300,1100,800,900 ]PieChart[revenue
2
1 3
8 7 4
6 5
Graphics ;}spending={3000,2500,4600,1200,3300,1100,800,900
٣٢
PieChart[spending,PieLabels-
>{"arts","law","economics","engineering","computer","Mpharmacy","medicine","agric ulture"},PieExploded->{{9,0.1}}]
law
arts economics
agriculture medicine engineering
Mpharmacy computer
Graphics grays=Table[GrayLevel[i],{i,0.4,1,0.6/8}];
PieChart[spending,PieLabels-
>{"arts","law","economics","engineering","computer","Mpharmacy","medicine","agric ulture"},PieExploded->{{1,0.1},{2,0.3},{3,0.1}},PieStyle->grays]
law
arts economics
agriculture medicine engineering
Mpharmacy computer
ŮŁŮŁ
Graphics
ﻟرﺳم اﻋﻣدة ﻟﻣﺟﻣوﻋﺔ اﻟﺑﯾﺎﻧﺎت اﻟﺗﻰ ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ :
ﻧﺳﺗدﻋﻰ اﻟﺣزﻣﺔ ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ :
}{218.3,265,373.3
`<<Graphics`Graphics وﺑﻌد ﺗﺣﻣﯾل اﻟﺣزﻣﺔ ﻧﻛﺗب اﻻواﻣر اﻻزﻣﺔ ﻟﻠﺗﻧﻔﯾذ ﻛﻣﺎ ﯾﻠﻰ ﻓﻧﺣﺻل ﻋﻠﻰ اﻟرﺳم .
`<<Graphics`Graphics
}aa1={218.3,265,373.3 }{218.3,265,373.3 ]BarChart[aa1
350 300 250 200 150 100 50 3
1
2
Graphics ﻋﻧد ﻛﺗﺎﺑﺔ اﻟﺑرﻧﺎﻣﺞ ﺑدون ﻛﺗﺎﺑﺔ اﻣر اﺳﺗدﻋﺎء اﻟﺣزﻣﺔ ﻧﺣﺻل ﻋﻠﻰ اﻟﺗﺎﻟﻰ : }aa1={218.3,265,373.3 }{218.3,265,373.3 ]BarChart[aa1
]}BarChart[{218.3,265,373.3 اى ان اﻟﺑرﻧﺎﻣﺞ ﯾﻌﯾد ﻛﺗﺎﺑﺔ اﻟﻣدﺧل ﺑدون ﺗﻧﻔﯾذ. وﺑﺻورة ﻋﺎﻣﺔ ﻓﻰ ﺣﺎﻟﺔ وﺟود ﺧطﺎ ﻓﻰ ﻛﺗﺎﺑﺔ اﻻﻣر ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﻌﯾد ﻛﺗﺎﺑﺔ اﻻﻣر ﺑدون ﺗﻧﻔﯾذ.
٣٤
) (٧-١اﺳﺗﺧدام اﻻﻣر Helpﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﯾﻣﻛن ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻣر Helpﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ اﻟﺗﻌرف ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻣر ﻣﺎ ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ اﻟﺗﺎﻟﯾﺔ:
واﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Help Browserﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ :
٣٥
وﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اى ﻣوﺿوع ﻋن اﻟﺑرﻧﺎﻣﺞ ﻣﺛل اﻟرﺳم ﻣﺛﻼ وﻋﻧد ﻛﺗﺎﺑﺔ Plotﻓﻰ اﻟﺧﺎﻧﺔ اﻟﻣوﺿﺣﺔ ﺑﺎﻟﺳﻬم ﺛم اﻟﺿﻐط ﻋﻠﻰ اﻻﻣر
ﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ :
ﺣﯾث ﻧﺣﺻل ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻟرﺳم وﺑﺗﺣرﯾك اﻟﻣؤﺷر اﻟذى ﻓﻰ اﻟﺟﺎﻧب اﻻﯾﻣن واﻟﻣﺷﺎر ﻋﻠﯾﻪ ﺑﺎﻟﺳﻬم ﻓﻰ اﻟﻧﺎﻓذة اﻟﺳﺎﺑﻘﺔ ﻧﺣﺻل ﻋﻠﻰ اﻣﺛﻠﺔ ﻛﻣﺎ ﻓﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ :
٣٦
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟﻌﻼﻣﺔ اﻟﻣﺷﺎر اﻟﯾﻬﺎ ﺑﺎﻟﺳﻬم ﺑﺟوار Further Examplesﻓﻧﺣﺻل ﻋﻠﻰ ﻋدة اﻣﺛﻠﺔ ﻛﻣﺎ ﻓﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ وﯾﻣﻛن اﺧذ ﻧﺳﺦ ﻣﻧﻬﺎ اﻟﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .
٣٧
اﯾﺿﺎ )ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل( ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻟﺣزم اﻟﺟﺎﻫزة اﻟﺧﺎﺻﺔ ﺑﺎﻻﺣﺻﺎء ﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ وﺑﻌد اﻟﺿﻐط ﻋﻠﻰ اﻟﻌﻧوان اﻟﻣﺷﺎر اﻟﯾﻪ ﺑﺎﻟﺳﻬم ﻓﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ ﺛم اﻟﺿﻐط ﻋﻠﻰ Standard Pachagesﻓﻰ اﻟﺧﺎﻧﺔ اﻻوﻟﻰ ﻣن اﻟﻘﺎﺋﻣﺔ وﻋﻠﻰ Statisticsﻓﻰ اﻟﺧﺎﻧﺔ اﻟﺛﺎﻧﯾﺔ ﻣن اﻟﻘﺎﺋﻣﺔ :
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟﻌﻧوان اﻟﻣﺷﺎر ﻟﻪ ﺑﺎﻟﺳﻬم ﻓﻰ اﻟﺧﺎﻧﺔ اﻟﺛﺎﻟﺛﺔ ﻧﺣﺻل ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن ﻓﺗرات اﻟﺛﻘﺔ ﻣﻊ اﻣﺛﻠﺔ )ﻫذا ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺣﯾث ﯾﻣﻛن ﺗﺣدﯾد اﺧﺗﯾﺎرات اﺧرى(:
٣٨
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟﻌﻧوان Mathematica Bookاﻟﻣﺷﺎر ﻟﻪ ﺑﺎﻟﺳﻬم اﻻﺳود وﺑﻌد ﺗﺣدﯾد اﻟﺧﯾﺎرات اﻟظﺎﻫرة ﺑﺎﻟﻠون اﻻزرق ﻓﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ ﻧﺣﺻل ﻋﻠﻰ اﻣﺛﻠﺔ ﻋن اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻛﻣﺎ ﻓﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ :
وﯾﻣﻛن ﻟﻠﻣﺳﺗﺧدم اﻟﺗدرب اﻛﺛر ﻋﻠﻰ ﻛﯾﻔﯾﺔ اﻻﺳﺗﻔﺎدة ﻣن اﻟﻣﻌﻠوﻣﺎت ﻓﻰ ﻧﺎﻓذة .Help Browser
٣٩
اﻟﻔﺻل اﻟﺛﺎﻧﻰ اﻟﻌﻣﻠﯾﺎت اﻟرﯾﺎﺿﯾﺔ ﻋﻠﻰ ﻛل ﻣن اﻻﻋداد واﻟﺗﻌﺑﯾرات و اﻟدوال
٤٠
ﯾﻘدم ﻫذا اﻟﻔﺻل اﻟﻌﻣﻠﯾﺎت اﻻﺳﺎﺳﯾﺔ ﻋﻠﻰ ﻛل ﻣن اﻻﻋداد واﻟﺗﻌﺑﯾرات واﻟدوال .
) (١-٢اﻟﺣﺳﺎﺑﺎت اﻟﻌددﯾﺔ Numerical Calculations اﻟﻌﻣﻠﯾــﺎت اﻟﺣﺳــﺎﺑﯾﺔ اﻟﺑﺳــﯾطﺔ )اﻟﺟﻣــﻊ واﻟطــرح واﻟﺿــرب واﻟﻘﺳــﻣﺔ( ﺗﻌــرض ﺑــﻧﻔس اﻟطرﯾــق اﻟطﺑﯾﻌــﻰ ﻣــﻊ ﺑرﻧــﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ. ﻓﻌﻠـﻰ ﺳـﺑﯾل اﻟﻣﺛـﺎل " " a plus bﺗـدﺧل a+b
و " "a minus bﺗـدﺧل a-bو " " a times bﺗـدﺧل
a*bاو ﻋﻠـﻰ اﻟﺻـورة ) a bﺣﯾـث ﺗوﺟـد ﻣﺳـﺎﻓﺔ ﺑـﯾن ( a,bو " " a divided bﺗـدﺧل . a/bﻓـﻰ اﻟﻌﻣﻠﯾـﺎت اﻟﺣﺳﺎﺑﯾﺔ ﯾﺗﻌﺎﻣل اﻟﺑرﻧﺎﻣﺞ ﻣﻊ ارﺑﻌﺔ اﻧواع ﻣن اﻻﻋداد وﻫﻰ : -
اﻻﻋداد اﻟﺻﺣﯾﺣﺔ Integers
-
اﻻﻋداد اﻟﻧﺳﺑﯾﺔ Rational
-
اﻻﻋداد اﻟﺣﻘﯾﻘﯾﺔ Real
-
اﻻﻋداد اﻟﻣرﻛﺑﺔ Complex
ﻓﻰ اﻟﺟزء اﻟﺗﺎﻟﻰ ﺳوف ﻧﺗﻧﺎول ﻛﯾف ﺗﺗم اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ اﻻﺳﺎﺳﯾﺔ )اﻟﺟﻣﻊ واﻟطرح و اﻟﺿرب واﻟﻘﺳﻣﺔ( ﺣﯾث ﯾﺳﺗﺧدم اﻟﺑرﻧﺎﻣﺞ ﻛﺎداﻩ ﻻﺟراء اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﺗﻣﺎﻣﺎ ﻣﺛل اﻻﻟﺔ اﻟﺣﺎﺳﺑﺔ Calculatorﻛﻣﺎ ﯾﻠﻰ :
ﻣﺛﺎل اﺣﺳب
)ا(342+23
)ب( 456-45
)ج( ) -23*76د( .568/8
اﻟﺣل: اﻟﻌﻣﻠﯾﺎت اﻟﺳﺎﺑﻘﺔ ﻛﺗﺑت ﺑﺎﻻﺳﻠوب اﻟﺗﺎﻟﻰ ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم ﺗم ﺗﻧﻔﯾذﻫﺎ ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻣر . Kernal )ا( 342+23 365
)ب( 456-45 411
)ج( -23*76 ٤١
-1748 ﯾﻣﻛن وﺿﻊ ﻣﺳﺎﻓﺔ ﻻﺟراء ﻋﻣﻠﯾﺔ اﻟﺿرب ﺑدﻻ ﻣن اﻟرﻣز* -23 76
-1748
) د ( اﻟرﻣز /ﯾﻌﻧﻰ اﻟﻘﺳﻣﺔ )ﺻﯾﻐﺔ اﻻدﺧﺎل( وﯾﻼﺣظ ان اﻟﻧﺎﺗﺞ ﻓﻰ ﺻورة ﻋدد ﻧﺳﺑﻰ وذﻟك ﻻن اﻟﺑﯾﺎﻧﺎت
اﻟﻣﺳﺗﺧدﻣﺔ اﻋداد ﺻﺣﯾﺣﺔ وﯾﻣﻛن وﺿﻊ اﻟﻣدﺧل ﻓﻰ اﻟﺻورة اﻟﻘﯾﺎﺳﯾﺔ واﻟﺗﻰ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟرﻣز
ﺛم ﻧﺿﻊ 568ﻓوق و 8ﺗﺣت وﻫذة اﻻﯾﻘوﻧﺔ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﺑﺎﻟﺿﻐط ﻋﻠﻰ Palettesﻣن اﻟﻘﺎﺋﻣﺔ
اﻟرﺋﯾﺳﯾﺔ ﻟﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ BasicInputﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ ﻓﻧﺣﺻل ﻋﻠﻰ ﻗﺎﺋﻣﺔ ﺗظﻬر ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻣن ﺿﻣﻧﻬﺎ ﻫذﻩ اﻻﯾﻘوﻧﺔ ﻛﻣﺎ ﺳﺑق ان ذﻛرﻧﺎ . 568/8 71
568 8
71
ﻫﻧﺎ اﻟﻧﺎﺗﺞ رﻗم ﺻﺣﯾﺢ .ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﯾﻛون اﻟﻧﺎﺗﺞ ﻋﻠﻰ ﻫﯾﺋﺔ ﻛﺳر ﻛﻣﺎ ﯾﻠﻰ :
36 796
وﻟﺗﺟﻧب ذﻟك ﯾﻛﺗب اﻟﺑﺳط ﻣﺛﻼ ﻓﻰ ﺻورة ﻋﺷرﯾﺔ ﻛﻣﺎ ﯾﻠﻰ :
9 199
36. 796 وﺑﺎﻟﺗﺎﻟﻰ ﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ ﻓﻰ ﺻورة ﻋﺷرﯾﺔ :
0.0452261
ﻣﺛﺎل اﺣﺳب
3.6 8.96 ٤٢
اﻟﺣل: اﻟﻌﻣﻠﯾﺎت اﻟﺳﺎﺑﻘﺔ ﻛﺗﺑت ﺑﺎﻻﺳﻠوب اﻟﺗﺎﻟﻰ ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم ﺗم ﺗﻧﻔﯾذﻫﺎ ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻣر : Kernal ﻧﺟد ان اﻟﻧﺎﺗﺞ ﻓﻰ اﻟﺻورة اﻟﻌﺷرﯾﺔ ﻻن اﻻﻋداد اﻟﻣﺳﺗﺧدﻣﺔ ﻓﻰ ﺻورة ﻋﺷرﯾﺔ.
3.6 7.96 0.452261
واﻟﻌﻣﻠﯾﺔ اﻟﺣﺳﺎﺑﯾﺔ
ab
" " a raised to bth powerﺗﻛﺗب ﻓﻰ اﻟﺑرﻧﺎﻣﺞ . a^b
ﻣﺛﺎل اﺣﺳب
50
. 4
اﻟﺣل: 50
ﺳوف ﻧﺣﺻل ﻋﻠﻰ ﻗﯾﻣﺔ ﻣﺿﺑوطﺔ ﻟﻠﻌد د . 4 ﻣﻊ ھذا اﻟﺑرﻧﺎﻣﺞ ﻓﻐﺎﻟﺑﺎ ﻣﺎ ﻧﺣﺻل ﻋﻠﻰ ﻧﺗﺎﺋﺞ ﻣﺿﺑوطﺔ ،ﺑﯾﻧﻣﺎ ﻋﻧد اﺟراء اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻋﻠﻰ اﻻﻟﺔ اﻟﺣﺎﺳﺑﺔ ﻓﺎن اﻟﻧﺗﺎﺋﺞ ﺗﻛون اﻟﻰ دﻗﺔ ﻣﻌﯾﻧﺔ ﻓﻣﺛﻼ ﻋﺷرة ارﻗﺎم ﻋﺷرﯾﺔ.
450 1267650600228229401496703205376
وﻗد ﺗم اﺳﺗﺧدام اﻟرﻣز
ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ:
450 ﻫذا وﯾﻣﻛن اﺳﺗﺧدام ﺻﯾﻐﺔ اﻻدﺧﺎل واﻟﺣﺻول ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻛﻣﺎ ﯾﻠﻰ :
4^50 1267650600228229401496703205376
ﻣﺛﺎل
٤٣
اﺣﺳب
5ﺳواء ﺑﺻﯾﻐﺔ اﻻدﺧﺎل او ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ .
121
اﻟﺣل: ﺳوف ﻧدﺧل اﻻﻣر ﻓﻰ ﺻﯾﻐﺔ اﻻدﺧﺎل وﻓﻰ اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﺎﻟﺗﺎﻟﻰ واﻟﻧﺗﯾﺟﺔ واﺣدة : 5^121 376158192263132002549995691911118616901972978167068006882 8005460090935230255126953125
5121 376158192263132002549995691911118616901972978167068006882800 5460090935230255126953125 1
1
اﯾﺿﺎ ﻓﺎن a a 2
ﺗﺣﺳب ﺑﺎدﺧﺎل اﻣﺎ ) a ^ (1/ 2او ] .Sqr[aاﯾﺿﺎ a a 3
3
ﺗﺣﺳب ﺑﺎدﺧﺎل
n
) a ^ (1/ 3و m a n ( m a ) n
m
aﺗﺣﺳب ﺑﺎدﺧﺎل ) ) a^(n/mﺗذﻛر ان ادﺧﺎل a^n/mﺗﺣﺳب
.a /m n
وﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻋدد ﺗﻘرﯾﺑﻰ ﻟﻠﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ اﻟﺳﺎﺑﻘﺔ وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Nﻛﻣﺎ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﻧﺗﺎﺋﺞ ﻣﻘرﺑﺔ اﻟﻰ اى درﺟﺔ ﻣطﻠوﺑﺔ ﻛﺎﻻﺗﻰ :
اﻟﻌﻣل اﻟذى ﯾﻘوم ﺑﻪ اﻻﻣر
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر
ﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﻋددﯾﺔ ﺗﻘرﯾﺑﯾﺔ
] N[expessionاوexpession//N
ﻟﻠﺗﻌﺑﯾر expession ]N[expession,n
ﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﻋددﯾﺔ ﻟﻠﺗﻌﺑﯾرexpession ﻣﻘرب اﻟﻰ nﻣن اﻻرﻗﺎم اﻟﻌﺷرﯾﺔ ﻟﻠﺣﺻول ﻋﻠﻰ ﻋدد ﻧﺳﺑﻲ Rationalﺗﻘرﯾﺑﻰ ﻟﻠﻌدد x
]Rationalize[x
ﻣﺛﺎل )أ( اﺣﺳب ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد ) 450ب( اﺣﺳب اﻟﻌدد 450
اﻟﺣل: ٤٤
ﻣﻘرب اﻟﻰ 11رﻗم ﻋﺷرى
)ا( ﻧﺣﺻل ﻋﻠﻰ ﻗﯾﻣﺔ ﻋددﯾﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد 4ﻛﺎﻟﺗﺎﻟﻰ: 50
N450 1.26765 1030 50
اﺳﺗﺧدام Nﻋﻠﻰ اﻟﺗﻌﺑﯾر 4ادى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ ﻓﻰ ﺻﯾﻐﺔ Scientific notation وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﺑطرﯾﻘﺔ اﺧرى ﻛﺎﻟﺗﺎﻟﻰ :
450 N 1.26765 1030 )ب( ﻛﻣﺎ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ 450
ﻣﻘرﺑﺎ اﻟﻰ 11ﻣن اﻻرﻗﺎم اﻟﻌﺷرﯾﺔ ﻛﺎﻟﺘﺎﻟﻰ:
N250, 11 1.1258999068 1015
ﻣﺛﺎل 1
اﺣﺳب ﻗﯾﻣﺔ ﻣﺿﺑوطﺔ وﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد 5 9
اﻟﺣل: 1
ﻧﺣﺻل ﻋﻠﻰ ﻗﯾﻣﺔ ﻋددﯾﺔ ﻣﺿﺑوطﺔ وﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد 5 9ﻛﺎﻟﺗﺎﻟﻰ: )5^(1/9
519 N519 1.19581 . 1
ﻧﻼﺣﻆ ان اﻟﺒﺮﻧﺎﻣﺞ اﻋﺎد
)^(1/ 9
9 5ﻛﻤﺎ ھﻰ ﻋﻠﻰ اﻟﺼﯿﻐﺔ اﻟﻤﻀﺒﻮطﺔ وﻟﻜﻦ ﻋﻠﻰ اﻟﺸﻜﻞ . 5
1
اﻟﻘﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد 5 9ﺑﺎﺳﺗﺧدام Nﺗﻛون ﻛﺎﻟﺗﺎﻟﻰ : 1
N5 9 1.19581 9
N 5 1.19581
٤٥
ﻣﺛﺎل
اﺣﺳب 533 اﻟﺣل: ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Sqrﻟﺣﺳﺎب . 533اﻟﻧﺎﺗﺞ ﻧﻔﺳﻪ اﻟﻘﯾﻣﺔ اﻟﻣﺿﺑوطﺔ ﻟﻠﻣدﺧل وﻟﻛن ﻋﻠﻰ ﺷﻛل ﺻﯾﻐﺔ ﻗﯾﺎﺳﯾﺔ . ]Sqrt[533
533
ﻋﻧد ادﺧﺎل //Nﺑﻌد اﻻﻣر ﻧﺣﺻل ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟـ 533 Sqrt[533]//N 23.0868
ﻣﺛﺎل 1
اﺣﺳب 4 (4) 5
5
اﻟﺣل: 1
ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Sqrﻟﺣﺳﺎب . 4 (4) 5اﻟﻧﺎﺗﺞ ﻧﻔﺳﻪ اﻟﻘﯾﻣﺔ اﻟﻣﺿﺑوطﺔ ﻟﻠﻣدﺧل وﻟﻛن ﻋﻠﻰ 5
ﺷﻛل ﺻﯾﻐﺔ ﻗﯾﺎﺳﯾﺔ .
415 115 225 1
ﻋﻧد ادﺧﺎل //Nﺑﻌد اﻻﻣر ﻧﺣﺻل ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟـ 4 (4) 5
5
415 N 1.0675 +0.775587 ﻧﻼﺣظ ﻋﻧد ادﺧﺎل
//Nﺑﻌد اﻻﻣر ﻓﺎن اﻟﺗﻌﺑﯾر اﻟﻧﺎﺗﺞ ﯾﺣﺗوى ﻋﻠﻰ iوھذا اﻟرﻣز ﯾﻣﺛل اﻟﻌدد اﻟﺗﺧﯾﻠﻰ . i 1
٤٦
ﯾﺗم ﻣﻌرﻓﺔ اﻟﻣﻌﻠوﻣﺎت اﻻﺳﺎﺳﯾﺎت ﻋن Nﺑﺎدﺧﺎل ? Nاﻟﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ وﺗﻧﻔﯾذﻫﺎ ﻓﻧﺣﺻل ﻋﻠﻰ اﻟﺗﺎﻟﻰ: ?N
Nexpr gives the numerical value of expr. Nexpr, n attempts to give …a result with ndigit precision. More اى ﻣﻌﻠوﻣﺎت ﻋن اﻻﻣر .N ﻛﻣﺎ ﯾﺗم اﻟﺣﺻول ﻋﻠﻰ اﻟﻣﻌﻠوﻣﺎت اﻻﺳﺎﺳﯾﺎت ﻋن Nﺑﺎﻟﺿﻐط ﻋﻠﻰ Helpﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ Help Browserوﻓﻰ اﻟﺧﺎﻧﺔ اﻟﻣوﺿﺣﺔ ﺑﺎﻟﺳﻬم ﻧﻛﺗب اﻟﺗﺎﻟﯾﺔ وﻧﺿﻐط ﻋﻠﻰ اﻻﻣر
ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت واﻣﺛﻠﺔ :
ﻣﺛﺎل 1
اﺣﺳب ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد . 6 8
اﻟﺣل:
٤٧
Nﻛﻣﺎ ﻓﻰ اﻟﻧﺎﻓذة
1
اﻟﺑرﻧﺎﻣﺞ ﺳوف ﯾﺣول ) 6 ^ (1/8اﻟﻰ ﺻورﺗﻬﺎ اﻟﻣﺑﺳطﺔ . 6 8 Simplified Formوﯾﻼﺣظ ﻫﻧﺎ ان 1
وﺿﻊ اﻻﻗواس ﻣﻬم .وﻗد ﺗم ﺗﻘرﯾب 6 8وذﻟك ﺑﺎﺳﺗﺧدام ﺻﯾﻐﺗﯾن ﻛﻣﺎ ﻫو ﻣوﺿﺢ ﻓﻰ اﻻﻣر اﻟﺛﺎﻧﻰ واﻟﺛﺎﻟث. )6^(1/8
618 1
8
N6
1.25103 8
N 6 1.25103 وﻓﻰ اﻟﻨﮭﺎﯾﺔ ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ﺗﻌﻠﯿﻖ )commentاو ﺑﻌﺾ اﻟﻜﻠﻤﺎت اﻟﺘﻰ ﻻ ﺗﺪﺧﻞ ﻓﻰ اﻟﺤﺴﺎب (ﻋﻠﻰ ان ﺗﻮﺿﻊ ﻛﺎﻟﺘﺎﻟﻰ )*.(*commentﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل )*.(*Example
) (٢-٢اﻟﺛواﺑت اﻟرﯾﺎﺿﯾﺔ Mathematical Constants ﯾﻘــوم اﻟﺑرﻧــﺎﻣﺞ ﺑﺗﻌرﯾــف ﻛﺛﯾــر ﻣــن اﻟﺛواﺑــت .ﻓﻌﻠــﻰ ﺳــﺑﯾل اﻟﻣﺛــﺎل اﻟﺛﺎﺑــت 3.14159واﻟــذى ﯾﻌــرف ﻓــﻰ اﻟﺑرﻧـ ــﺎﻣﺞ ﺑواﺳـ ــطﺔ Piاو . اﯾﺿـ ــﺎ e 2.71828ﺗﻣﺛـ ــل ﺑـ ــﺎﻟﺣرف Eو i 1ﺗﻣﺛـ ــل ﺑـ ــﺎﻟﺣرف . I وﻫﻧ ــﺎك ﺛواﺑـــت اﺧـــرى ﻣﺛـــل واﻟﺗـــﻰ ﺗﻣﺛـــل ﻣـــﺎﻻ ﻧﻬﺎﯾـــﺔ Infinityو
constant
0.577216ﯾﻣﺛـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــل ﺑـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ EulerGammaو 180 1 5 1061803 2
Euler'sاى
= Degreeو=.GoldenRatio
.وﻫﻧــﺎك ﺛواﺑــت اﺧــرى ﯾﻣﻛــن ﻟﻠﻣﻬــﺗم ﺑﻬــﺎ اﺳــﺗﺧدام Helpﻟﻠﺣﺻــول ﻋﻠــﻰ ﻣﻌﻠوﻣــﺎت
ﻋﻧﻬ ــﺎ .اﻻﻣ ــر اﻟﻣﺳـــﺗﺧدم ﻟﻠﺣﺻ ــول ﻋﻠ ــﻰ ﻗﯾﻣـــﻪ ﺗﻘرﯾﺑﯾ ــﺔ ﻟﻠﺛﺎﺑ ــت aﻫـــو ] N[aاو اﻟﻣﻛ ــﺎﻓﺊ ﻟ ــﻪ .a//Nاﻻﻣـــر اﻟﻣﺳﺗﺧدم ﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻌدد aوذﻟك ﻟـ nﻣن اﻻرﻗـﺎم اﻟﻌﺷـرﯾﺔ ﻫـو ]. N[a,nﻋﻠـﻰ ﺳـﺑﯾل اﻟﻣﺛـﺎل ﻋﻧد ادﺧﺎل : ]N[E,30 2.71828182845904523536028747135 ﻧﺣﺻل ﻋﻠﻰ eﻣﻘرﺑﺔ اﻟﻰ 30رﻗم ﻋﺷرى. ﯾﺳﺗﺧدم اﻻﻣر ] Round[aﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻗﺮب رﻗﻢ ﺻﺤﯿﺢ ﻟـ .a اﻻﻣﺮ اﻟﺘﺎﻟﻰ ﯾﺆدى ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻗﺮب رﻗﻢ ﺻﺤﯿﺢ ﻟـ : e ]Round[E 3 اﻻﻣﺮﯾﻦ اﻟﺘﺎﻟﯿﯿﻦ ﯾﺆدﯾﺎن اﻟﻰ ﻧﻔﺲ اﻟﻘﯿﻤﺔ اﻟﺘﻘﺮﯾﺒﯿﺔ ﻟـ e
٤٨
E//N 2.71828 ]N[E 2.71828 ادﺧل : ]N[,30 3.14159265358979323846264338328 ﯾﺤﺴﺐ اﻟﻰ 30رﻗم ﻋﺷرى .
ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﺑﺎدﺧﺎل ]N[Pi,30 ]N[Pi,30 3.14159265358979323846264338328 ﺑﺎدﺧﺎل :
16 4
ﺗﺣﺳب 16 i 16 4i وﻟﻠﻌﻠم 1
ﻓﻰ اﻻدﺧﺎل ﺗﻛﺗب ﺑﺻورة اﻻدﺧﺎل Iاو ﺑﺎﻟﺻورة اﻟﻘﯾﺎﺳﯾﺔ .i
) (٣-٢اﻟﻣﺗﻐﯾرات Variables ﻋﻧد ﻛﺗﺎﺑﺔ ﺑرﻧﺎﻣﺞ ﺑﻠﻐﺔ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﯾﻛون ﻣن اﻟﺿرورى اﻋطﺎء اﺳﻣﺎء ﻟﻠﻘﯾم اﻟﻌددﯾﺔ او اﻟﻛﻣﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ وﺗﺳﻣﻰ اﻟﻣﺗﻐﯾرات وﻫﻰ ﺗﻣﺛل ﻋﻧوان اﻟﻣﺧزن اﻟﻣوﺿوع ﻓﯾﻪ اﻟﻘﯾﻣﺔ او اﻟﻛﻣﯾﺔ اﻟﺣﺳﺎﺑﯾﺔ واﻟﺑرﻧﺎﻣﺞ ﯾﺣﺗﻔظ ﺑﻬذا اﻻﺳم ﻟﻠﻘﯾﻣﺔ اﻟﻌدد ﯾﺔ او اﻟﻛﻣﯾﺔ اﻟﺣﺳﺎﺑﯾﺔ ﺣﺗﻰ ﯾﻘوم اﻟﻣﺳﺗﺧدم ﺑﺣذﻓﻪ او ﺗﻐﯾﯾرﻩ . ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل : rent=23 23 food=156 156 heat=56 56 ٤٩
rent+food+heat 235
وﻋﻧد اﺧﺗﯾﺎر اﺳﻣﺎء اﻟﻣﺗﻐﯾرات ﯾﺟب ﻣراﻋﺎة ﻣﺎ ﯾﺎﺗﻰ : )أ( ﻻ ﯾوﺟد ﻗﯾود ﻋﻠﻰ ﻋدد اﻟﺣروف او اﻻرﻗﺎم اﻟﻣﺳﺗﺧدﻣﺔ ﻓﻰ اﺳم اﻟﻣﺗﻐﯾر وﯾﺟب ﻋدم اﺳﺗﺧدام اﻟﻌﻼﻣﺎت اﻟﺧﺎﺻﺔ ﻣﺛل) ( + , ^ ,* ,/ﻓﻰ اﺳم اﻟﻣﺗﻐﯾر . )ب( ﯾﻣﻛن اﺳﺗﺧدام اﻟﺣروف اﻟﻛﺑﯾرة واﻟﺻﻐﯾرة ﻓﻰ اﺳﻣﺎء اﻟﻣﺗﻐﯾرات وﻟﻛن ﻻ ﯾﺑدا اﺳم اﻟﻣﺗﻐﯾر ﺑﺣرف ﻛﺑﯾر ﺣﺗﻰ ﻻ ﯾﺣدث ﺗداﺧل ﺑﯾن اﺳﻣﺎء اﻟﻣﺗﻐﯾرات اﻟﺗﻰ ﻧﻘوم ﺑﺗﻌرﯾﻔﻬﺎ واﺳﻣﺎء اﻟﻣﺗﻐﯾرات او اﻟدوال اﻟﻣﻌرﻓﺔ ﻣن ﻗﺑل اﻟﺑرﻧﺎﻣﺞ . )ت( اﺳم اﻟﻣﺗﻐﯾر ﻻ ﯾﺑدا ﺑﻌدد ،ﻓﻣﺛﻼ 8aﺗﻣﺛل ﺣﺎﺻل ﺿرب 8ﻓﻰ aﺑﯾﻧﻣﺎ a2ﺗﻣﺛل اﺳم ﻣﺗﻐﯾر . )ث( ﻋدم وﺿﻊ ﻣﺳﺎﻓﺔ ﺑﯾن ﻣﺗﻐﯾرﯾن ﻓﻬذا ﯾﻌﻧﻰ اﺟراء ﻋﻣﻠﯾﺔ اﻟﺿرب . )ج( ﯾﺟب اﻻﻫﺗﻣﺎم ﺑوﺿﻊ اﻻﻗواس ﻋﻠﻰ اﻟﺷﻛل )( ﺑﯾن ﺑﻌض اﻟﻣﺗﻐﯾرات ﺣﺗﻰ ﻻ ﯾﺣدث اﺧطﺎء ﻓﻰ اﻟﺣﺳﺎب ﻓﻣﺛﻼ : )aa^(2y
aa2y (aa^2)y
aa2 y aa^2y
aa2 y ﻧﻼﺣظ ان اﻻﻣر اﻻول ﯾﺧﺗﻠف ﻋن اﻻﻣر اﻟﺛﺎﻧﻰ ﻧﺗﯾﺟﺔ اﺧﺗﻼف وﺿﻊ اﻻﻗواس .ﻛﻣﺎ ان 2yﻓﻰ اﻻﻣر اﻻول ﺗﻌﻧﻰ ﺣﺎﺻل ﺿرب 2ﻓﻰ yاى ﯾﻣﻛن اﻻﺳﺗﻐﻧﺎء ﻋن ﻋﻼﻣﺔ اﻟﺿرب * او اﻟﻣﺳﺎﻓﺔ ﺑﯾن ﻋدد وﻣﺗﻐﯾر ﺑﺷرط ان ﯾﻛن اﻟﻌدد اوﻻ .اﯾﺿﺎ اﻻﻣر اﻟﺛﺎﻧﻰ ﻫو ﻧﻔﺳﺔ اﻻﻣر اﻟﺛﺎﻟث ﻻن اﻟﺑرﻧﺎﻣﺞ ﯾﺣﺳب اوﻻ اﻻس . وﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻋﻧد اﻟﺣﺳﺎب ﯾﺣﺳب اوﻻ اﻟذى ﺑﯾن اﻻﻗواس ﺛم اﻻس ﺛم اﻟﻘﺳﻣﺔ او اﻟﺿرب ﺣﺳب اﻻوﻟوﯾﺔ ﺛم اﻟﺟﻣﻊ واﻟطرح ﺣﺳب اﻻوﻟوﯾﺔ . ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اذا ﻛﺎن اﻟﻣطﻠوب ﺗﻌرﯾف اﻟﺑرﻧﺎﻣﺞ ان ﺣﺟم ﻋﯾﻧﺔ 10ﻓﻧﻛﺗب a=10وﯾﻔﺿل اﺧﺗﯾﺎر اﺳم ﻟﻪ ﻋﻼﻗﺔ ﺑﺎﻟﻘﯾﻣﺔ اﻟﺗﻰ ﺳوف ﯾﻌطﻰ ﻟﻬﺎ ﻫذا اﻻﺳم ﻓﻣﻣﻛن اﺧﺗﯾﺎر اﻻﺳم nﻟﺣﺟم اﻟﻌﯾﻧﺔ وﻧﻛﺗب n=10او ﯾﻛﺗب ; n=10ﺣﯾث اﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ ; ﺗﻌﻧﻰ ﻋدم رﻏﺑﺔ اﻟﻣﺳﺗﺧدم ﻓﻰ ظﻬور ﻧﺎﺗﺞ اﻟﺗﻧﻔﯾذ .وﻋﻠﻰ ذﻟك ﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻛﺛر ﻣن اﻣر ﻓﻰ ﻧﻔس اﻟﺳطر وﺑﯾن ﻛل اﻣر اﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ وﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﻓﺎن ﻧﺎﺗﺞ اﻟﺗﻧﻔﯾذ ﯾﻌطﻰ ﻧﺎﺗﺞ اﺧر ﻋﻣﻠﯾﺔ ﺗم ادﺧﺎﻟﻬﺎ ﻓﻰ اﻟﺳطر وﻫذا ﯾﺗﺿﺢ ﻓﻰ اﻻﻣر اﻻول اﻟﺗﺎﻟﻰ اﻣﺎ ﻓﻰ اﻻﻣر اﻟﺛﺎﻧﻰ اﻟﺗﺎﻟﻰ ﻓﻠم ﺗظﻬر اى ﻧﺗﯾﺟﺔ ﻟوﺟود اﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ ﺑﯾن ﻛل اﻣر واﯾﺿﺎ ﻓﻰ ﻧﻬﺎﯾﺔ اﻻﻣر اﻻﺧﯾر : cc1=2;ww3=3;eew1=cc1^ww3 ٥٠
8 ;zz1=cc1+ww3;dd3=cc1-eew1
) (٤-٢اﻟدوال اﻟﻣﻌرﻓﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﯾوﺟد ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ اﻛﺛر ﻣن 1000داﻟﺔ ﻣﻌرﻓﺔ اﻟﻰ ﺟﺎﻧب اﻟﻌدﯾد ﻣن اﻟدوال اﻟﻣﻌرﻓﺔ ﻓﻰ اﻟﺣزم اﻟﺟﺎﻫزة وﻫذﻩ اﻟدوال ﻟﻬﺎ اﺳﻣﺎء وﻓﻘﺎ ﻟﻠﻘواﻋد اﻟﺗﺎﻟﯾﺔ : ﯾﺗﻛون اﺳم اﻟداﻟﺔ ﻣن اﻟﻛﻠﻣﺎت اﻻﻧﺟﻠﯾزﯾﺔ اﻟﻛﺎﻣﻠﺔ ﻻﺳم اﻟداﻟﺔ او اﻻﺧﺗﺻﺎر اﻟرﯾﺎﺿﻰ ﻻﺳم اﻟداﻟﺔ . اﻟﺣرف اﻻول ﻣن ﻛل ﻛﻠﻣﺔ ﻓﻰ اﺳم اﻟداﻟﺔ ﯾﻛﺗب ﻛﺑﯾر وﺑﺎﻗﻰ اﻟﺣروف ﺗﻛﺗب ﺻﻐﯾرة . اذا اﻧﺗﻬﻰ اﺳم اﻟداﻟﺔ ﺑﺎﻟﺣرف Qﻓﻬذا ﯾﻌﻧﻰ ان اﻟداﻟﺔ ﺗﻣﺛل ﺳؤال ﻣﻧطﻘﻰ وﺗﻛون اﻻﺟﺎﺑﺔ ﺻواب Trueاوﺧطﺎ .False ﻣن اﻣﺛﻠﺔ ﻫذﻩ اﻟدوال اﻟداﻟﺔ اﻻﺳﯾﺔ ] Exp[xوداﻟﺔ اﻟﻘﯾﻣﺔ اﻟﻣطﻠﻘﺔ] Abs[xواﻟدوال اﻟﻣﺛﻠﺛﯾﺔ The Trigonometric Functionsﻣﺛل ] Sin[xو] Cos[xو ] Tan[xواﻟدوال اﻟﻣﺛﻠﺛﯾﺔ اﻟﻌﻛﺳﯾﺔ ﻣﺛل ] ArcSin[xو] .ArcCos[xﺗذﻛر ان ﻛل داﻟﺔ ﻣن ﺗﻠك اﻟدوال ﺗﺑدا ﺑﺣرف ﻛﺑﯾر وﻣﺣﺗوى اﻟداﻟﺔ Argumentsﯾﻛون ﺑﯾن ﻗوﺳﯾن ﻣرﺑﻌﯾن .ادﺧل اﻟداﻟﺔ اﻻﺳﯾﺔ ] Exp[xﺗﺣﺻل ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﺎﺋﺞ ﻛﻣﺎ ﻟو ادﺧﻠﻧﺎ . E^xادﺧل ] Log[xﺗﺣﺻل ﻋﻠﻰ اﻟﻠوﻏﺎرﯾﺗم ﻟﻼﺳﺎس اﻟطﺑﯾﻌﻰ ﻟـ .xادﺧل ] Logn [n,xﺗﺣﺻل ﻋﻠﻰ اﻟﻠوﻏﺎرﯾﺗم ﻟﻼﺳﺎس .nﻟﻠﺣﺻول ﻋﻠﻰ اﻛﺑر ﻋدد ﻣن اﻻﻋداد x1 , x 2 ,...ﻧﺳﺗﺧدم اﻻﻣر ] Max[ x1 , x 2 ,...وﻟﻠﺣﺻول ﻋﻠﻰ اﺻﻐر ﻋدد ﻣن اﻻﻋداد x1 , x 2 ,...ﻧﺳﺗﺧدم اﻻﻣر ] .Min[ x1 , x 2 ,...ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻟﺣﺳﺎب اﻟﻌدداﻻﻛﺑر واﻟﻌدد اﻻﺻﻐر ﻣن ﻗﺎﺋﻣﺔ اﻻﻋداد 1,4,5,6 ﻧﺗﺑﻊ اﻻﺗﻰ : ]Max[1,4,5,6 6
]Min[1,4,5,6 1 اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺣﺳﺎب داﻟﺔ ﻣﺿروب nھﻰ
!n
ﻟﺣﺳﺎب ﻣﺿروب !: 20 !20 ٥١
2432902008176640000
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺣﺳﺎب ﻣﻌﺎﻣل ذى اﻟﺣدﯾن
!n n m !) m!(n m
وھﻰ Binomial[m,n]:
!10 10 ﻟﺣﺳﺎب اﻟﻘﯾﻣﺔ : 2 !) 2!(10 2 ]Binomial[10,2 45
ﻣﺛﺎل اوﺟد )ا( ) n 1 ب( 101 2 2
اﻟﺣل: ) ا( ]Binomial[n+1,2
1 n 1 n 2 )ب( ]Binomial[101,2 5050
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺣﺳﺎب ﺑﺎﻗﻰ ﺧﺎرج ﻗﺳﻣﺔ
m n
) (m modulo nﻫﻰ ]Mod[m,n
ﻟﺣﺳﺎب ﺑﺎﻗﻰ 21ﻋﻠﻰ:3 ]Mod[21,3 0 وﻟﺣﺳﺎب ﺑﺎﻗﻰ 28ﻋﻠﻰ:5 ]Mod[28,5 3
m اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺣﺳﺎب اﻟﺟزء اﻟﺻﺣﯾﺢ ﻣن ﺧﺎرج اﻟﻘﺳﻣﺔ n ﻟﺣﺳﺎب اﻟﺟزء اﻟﺻﺣﯾﺢ ﻣن ﺧﺎرج ﻗﺳﻣﺔ 19ﻋﻠﻰ :4 ٥٢
ﻫو ]Quotient[m,n
]Quotient[19,4 4
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺣﺳﺎب اﻟﻘﺎﺳم اﻟﻣﺷﺗرك اﻻﻋﻠﻰ ﻟﻼﻋداد n1,n 2 ,...ﻫو ]GCD[n1 ,n 2 ,... ﻟﺣﺳﺎب اﻟﻘﺎﺳم اﻟﻣﺷﺗرك اﻻﻋﻠﻰ ﻟﻼﻋداد :12,16,24, ]GCD[12,16,24 4
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﺣﺳﺎب اﻟﻣﺿﺎﻋف اﻟﻣﺷﺗرك اﻻدﻧﻰ ﻟﻼﻋداد n1,n 2 ,...ﻫﻰ
]LCM[n1 ,n 2 ,...
ﻟﺣﺳﺎب اﻟﻣﺿﺎﻋف اﻟﻣﺷﺗرك اﻻدﻧﻰ ﻟﻼﻋداد : 12,16,24 ]LCM[12,16,24 48 اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻌﻣل ﻗﺎﺋﻣﺔ ﺑﺎﻻﻋداد اﻟﺻﺣﯾﺣﺔ اﻟﺗﻰ ﺗﻘﺳم اﻟﻌدد nﻫﻰ ]Divisors[n
ﻟﻌﻣل ﻗﺎﺋﻣﺔ ﺗﺣﺗوى ﻋﻠﻰ ﻗواﺳم اﻟﻌدد : 32 ]Divisors[32 }{1,2,4,8,16,32 اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻻﯾﺟﺎد اﻟﻌدد اﻻوﻟﻰ رﻗم kﻫﻰ ]Prime[k ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌدد اﻻوﻟﻰ رﻗم : 4 ]Prime[4 7
اﻻﻋداد اﻟﻌﺷواﺋﯾﺔ ﻟﻠﺣﺻول ﻋﻠﻰ رﻗم ﻋﺷواﺋﻰ ﻣﺣﺻور ﺑﯾن ﺻﻔر وواﺣد :
][Random 0.923609
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻠﺣﺻول ﻋﻠﻰ ﻋدد ﻋﺷواﺋﻰ ﻣن اﻟﻧوع typeوﻓﻰ اﻟﻣدى ) rangeاﻟﻧوع type ﻗد ﯾﻛون ﺣﻘﯾﻘﻰ Realاو ﺻﺣﯾﺢ Integerاو ﻣرﻛب ( Complexواﻟﻣدى range ٥٣
ﯾﻛون ﺑﺎﻟﺻورة } ( {min,maxھو :
]}Random[type,{min,max ﻟﻠﺣﺻول ﻋﻠﻰ ﻋدد ﺣﻘﯾﻘﻰ ﻋﺷواﺋﻰ ﻣﺣﺻور ﺑﯾن : 5, 0
]}Random[Real,{0,5 4.67659 ﻟﻠﺣﺻول ﻋﻠﻰ ﻋدد ﺻﺣﯾﺢ ﻋﺷواﺋﻰ ﻣﺣﺻور ﺑﯾن :15,20 ]}Random[Integer,{15,20 18 ﻟﻠﺣﺻول ﻋﻠﻰ ﻋدد ﺣﻘﯾﻘﻰ ﻋﺷواﺋﻰ ﻣﺣﺻور ﺑﯾن 15,20وﺑدﻗﺔ ﺛﻣﺎﻧﯾﺔ ارﻗﺎم ﻋﺷرﯾﺔ: ]Random[Real,{15,20},8 16.013759
وﯾﺟب ان ﻧﻌﻠم ان داﻟﺔ Randomﺗﻌطﻰ ﻗﯾﻣﺔ ﻣﺧﺗﻠﻔﺔ ﻓﻰ ﻛل ﻣرة ﯾﺗم اﺳﺗدﻋﺎﺋﻬﺎ وﻟﺿﻣﺎن ذﻟك ﻧﺳﺗﺧدم اﻻﻣر ] SeedRandom[mﺣﯾث mاى ﻗﯾﻣﺔ ﯾﺧﺗﺎرﻫﺎ اﻟﻣﺳﺗﺧدم ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻟﺗوﻟﯾد ﺛﻼث ارﻗﺎم ﻗﯾﻣﺗﻬم ﺗﻧﺣﺻر ﻣن ﺻﻔر اﻟﻰ واﺣد ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : }][{Random[],Random[],Random }{0.764286,0.650675,0.0243112 ﻋﻨﺪ اﻋﺎدة اﻻدﺧﺎل ﺗﺨﺘﻠﻒ اﻟﻨﺘﯿﺠﺔ : }][{Random[],Random[],Random }{0.373755,0.39334,0.941159
وﻋﻨﺪ اﻟﺮﻏﺒﺔ ﻓﻰ اﻋﺎدة اﻻدﺧﺎل ﻣﻊ ﻋﺪم اﺧﺘﻼف اﻟﻨﺘﯿﺠﺔ ﯾﺴﺘﺨﺪم اﻻﻣﺮ : ]SeedRandom[m ﺣﯾث mاى رﻗم ﻋﺷواﺋﻰ ﯾﺧﺗﺎرﻩ اﻟﻣﺳﺗﺧدم ﻣﺛل اﻟﯾوم اﻟﺣﺎﻟﻰ او اﻟﺳﺎﻋﺔ اﻟﺣﺎﻟﯾﺔ ﻛﻣﺎ ﻫو ﻣوﺿﺢ ﻓﻰ اﻟﺗﺎﻟﻰ : ]SeedRandom[128 }][{Random[],Random[],Random }{0.355565,0.486779,0.00573919 ]SeedRandom[128 }][{Random[],Random[],Random }{0.355565,0.486779,0.00573919
٥٤
ﺗﻘﺎس ﺟودة اﻻﻋداد اﻟﻌﺷواﺋﯾﺔ اﻟﻣوﻟدة ﺑﺎن اﻻرﻗﺎم ﺗﺗوزع ﻋﻠﻰ ﻋدد ﻛﺑﯾر ﻣن اﻟﻣﺣﺎوﻻت .ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺑﻔرض اﻧﻧﺎ ﻧرﻏب ﻓﻰ ﺗوﻟﯾد ﻗﺎﺋﻣﺔ ﻣن 1000ﻋدد ﻋﺷواﺋﻰ ﺻﺣﯾﺢ ﯾﻘﻊ ﺑﯾن ﺻﻔر وﺗﺳﻌﺔ .
;]}aa1=Table[Random [Integer,{0,9}],{1000 وﺗم رﺳم اﻟﺗﻛ اررات ﻟﻛل ﻋدد ﻣن اﻻﻋداد ﻣن ﺻﻔر اﻟﻰ ﺗﺳﻌﺔ ﻛﺎﻟﺗﺎﻟﻰ :
`<<Graphics`Graphics `<<Statistics`DataManipulation ]]BarChart[Frequencies[aa1
100 80 60 40 20
9
8
6
7
5
4
3
2
0 1 Graphics
ﯾﻼﺣظ ان ﻛل ﻋدد ﻣن اﻻﻋداد ﻣن ﺻﻔر اﻟﻰ ﺗﺳﻌﺔ ﯾظﻬر ﺣواﻟﻰ 1/100ﻣن اﻟﻣرات .ﻣﻊ اﻟﻌﻠم اﻧﻧﺎ ﻻ ﻧرﯾد ان ﯾﻛون ﻋدد ﻣرات ظﻬور اﻟﻌدد ﺑﺎﻟﺿﺑط 1/100ﻣن اﻟﻣرات .ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﻟﻠﺗوزﯾﻊ اﻟﻣﻧﺗظم ﻟﻼﻋداد ﻣن ﺻﻔر اﻟﻰ ﺗﺳﻌﺔ ﻓﺎن اﻟﻣﺗﺗﺎﺑﻌﺔ ﻣن اﻻﻋداد ﻣن ﺻﻔر اﻟﻰ ﺗﺳﻌﺔ اﻣﻛﺎﻧﯾﺔ وﻗوﻋﻬﺎ ﻣﺛل اى ﻣﺗﺗﺎﺑﻌﺔ اﺧرى ﻣن 1000ﻣن اﻻﻋداد .ﻓﺎﻟﻣﺗﺗﺎﺑﻌﺔ ﻣن 1000واﻟﺗﻰ ﺗﺣﺗوى ﺑﺎﻟﺿﺑط ﻋﻠﻰ 100ﻣن ﻛل ﻋدد ﻣن اﻻﻋداد ﻣن ﺻﻔر اﻟﻰ ﺗﺳﻌﺔ ﻟﻬﺎ اﻣﻛﺎﻧﯾﺔ وﻗوع ﻣﺛل اﻟﻣﺗﺗﺎﺑﻌﺔ ﻣن 1000رﻗم ﻛﻠﻬم ﯾﻣﺛﻠون اﻟﻌدد 7ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل .
دوال اﻟﺗﻧﺑﺎ Predicates Functions ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ اﺗﺧﺎذ ﻗرار ﺑﺷﺎن ﺑﯾﺎﻧﺎﺗﻧﺎ وﻫل ﺗﺣﻘق ﺧﺻﺎﺋص ﻣﻌﯾﻧﺔ ام ﻻ .ﺗﺳﺗﺧدم اﻟداﻟﺔ Predicateﻻﺧراج ﻛﻠﻣﺔ )Trueﺻواب ( او ) Falseﺧطﺎ( ﺑﻧﺎء ﻋﻠﻰ اﺧﺗﺑﺎر ﺗﻘوم ﺑﻪ .ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ٥٥
اﻟداﻟﺔ ]: PrimeQ[k ﺗﺧﺗﺑر اذا ﻛﺎن اﻟﻌدد ﻋدد اوﻟﻰ ﻓﺎن اﻟﻧﺎﺗﺞ ﯾﻛون ﺻواب Trueوﺧﻼف ذﻟك ﯾﻛون ﺧطﺎ False ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻟداﻟﺔ ] PrimeQ[145ﺗﺧﺗﺑر ﻫل 145ﻋدد اوﻟﻰ ام ﻻ واﻟﻧﺗﯾﺟﺔ Falseﻛﻣﺎ ﻧرى : ]PrimeQ[145 False
اﻟداﻟﺔ: ] PrimeQ[2^3-1ﺗﺧﺗﺑر ﻫل ﻧﺎﺗﺞ اﻟﻌﻣﻠﯾﺔ 2^3-1ﻋدد اوﻟﻰ ام ﻻ : ]PrimeQ[2^3-1 True اﻟدوال اﻟﺗﺎﻟﯾﺔ ﺗﺧﺗﺑر ﻫل اﻟﻌدد اﻟﻣﻌطﻰ ﻓردى او زوﺟﻰ او ﺻﺣﯾﺢ : ]OddQ[21 True ]EvenQ[21 False ]IntegerQ[5/9 False
اﺧﺗﺑﺎر ﻣﺎ اذا ﻛﺎن اﻟﻌدد 90ﻋدد اوﻟﻰ ]PrimeQ[90 False
دوال اﻟﻘﯾﻣﺔ اﻟﻣطﻠﻘﺔ واﻻﺳﯾﺔ واﻟﻠوﻏﺎﺗﻣﯾﺔ The Absolute Value,Exponential,and Logarithmic Functions اﻟﺣﺳﺎﺑﺎت اﻟﺗﻰ ﺗﺧص اﻟدوال ] Abs[x] , Exp[x] , Log[xﺗظﻬر ﻓﻰ اﻻﻣﺛﻠﺔ اﻻﺗﯾﺔ .ﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﻋددي ﻟـ] Exp[xﯾﻔﺿل اﺳﺗﺧدام اﻻﻣر ]] N[Exp[xاو اﻻﻣر Exp[x]//Nوﻏﯾر ذﻟك اﻟﻘﯾﻣﺔ اﻟﻣﺿﺑوطﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ واﻟﺗﻰ ﻓﻰ ﺣﺎﻻت ﻛﺛﯾرة ﻟﯾﺳت ﺿرورﯾﺔ ﻣﺛل اﻟﺗﻘرﯾب اﻟﻌددى .
ﻣﺛﺎل
ﻗرب 1/ e6
6
eوﻣﺛﻠﻬﺎ ﺑﯾﺎﻧﯾﺎ:
اﻟﺣل: ﺳوف ﻧدﺧل : ٥٦
]Exp[-6
1 6
واﻟﺗﻰ ﺗؤدى اﻟﻰ اﻟﻘﯾم اﻟﻣﺿﺑوطﺔ ﻟـ 1/ e6
6
eﺑﯾﻧﻣﺎ ادﺧﺎل : Exp[-6]//N 0.00247875
ﺗؤدى اﻟﻰ اﻟﻘﯾﻣﺔ اﻟﻣﻘرﺑﺔ .ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻧﺣﺻل ﻋﻠﯾﻬﺎ اذا ادﺧﻠﻧﺎ ]]: N[Exp[6 ]]N[Exp[-6 0.00247875
اﻟدوال اﻟﺣﻘﯾﻘﯾﺔ ﻟﻣﺗﻐﯾر واﺣد ﯾﻣﻛن ﺗﻣﺛﯾﻠﻬﺎ ﺑﯾﺎﻧﯾﺎ ﺑﺎﺳﺗﺧدام ) Plotدون اﻟدﺧول ﻓﻰ اﻟﺗﻔﺎﺻﯾل اﻻن ( ﺣﯾث اﻻﻣر ﯾﻛﺗب ﺑﺻورة ﻣﺑﺳطﺔ ﻛﺎﻟﺗﺎﻟﻰ : ]]} Plot[f[x]],{x,a,bواﻟذى ﯾرﺳم اﻟداﻟﺔ ] f[xﻓﻰ اﻟﻔﺗرة ] . [a,bﻟرﺳم eﻓﻰ اﻟﻔﺗرة ]. [2,4 x
]}Plot[Exp[x],{x,2,4 50 40 30 20 10
4
3.5
3
2.5
Graphics
ﺑﺎﻻﺿــﺎﻓﺔ اﻟــﻰ اﻻﻋــداد اﻟﺣﻘﯾﻘﯾــﺔ ،ﻓــﺎن اﻟداﻟــﺔ ] Abs[xﯾﻣﻛــن اﺳــﺗﺧداﻣﻬﺎ ﻟﻠﺣﺻــول ﻋﻠــﻰ اﻟﻘﯾﻣــﺔ اﻟﻣطﻠﻘــﺔ ﻟﻌــدد ﺗﺧﯾﻠﻰ a+biﺣﯾث ] . Abs[a+bi]=Sqrt[a^2+b^2ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺑﺎدﺧﺎل : ]Abs[-10 10 ﺗﺣﺳب | 10 | 10وﺑﺎدﺧﺎل : ]Abs[120 120 ٥٧
ﺗﺣﺳب |120 | 120
.
ﻣﺛﺎل | | xﻓﻰ اﻟﻔﺗرة ][-5,5
ارﺳم
اﻟﺣل: ﺳوف ﻧﺳﺗﺧدم Plotﻟرﺳم اﻟداﻟﺔ ] . Abs[xاﻟﺧﯾﺎر} PlotRange->{-1,5ﯾﻌﻧﻰ ان اﻟﻣﺣور اﻻﻓﻘﻰ ﻣﺣدد ﻓﻰ اﻟﻔﺗرة } {-1,5واﻟﺧﯾﺎر > AspectRatio-ﯾﺣدد اﻟﻧﺳﺑﺔ ﺑﯾن طول اﻟﻣﺣور اﻟراﺳﻰ اﻟﻰ اﻟﻣﺣور اﻻﻓﻘﻰ : ]Plot[Abs[x],{x,-5,5},PlotRange{-1,5},AspectRatio.5 5 4 3 2 1 4
-2
2
-4
-1
Graphics
اﻻوﻏﺎرﯾﺗﻣﺎت ﯾﻣﻛن ﺣﺳﺎﺑﻬﺎ ﺑﺎﺳﺗﺧدام اﻟداﻟﺔ ] Log[xﺣﯾث ﻧﺣﺻل ﻋﻠﻰ اﻻوﻏﺎرﯾﺗم اﻟطﺑﯾﻌﻰ ﻟـ xواﻟﺗﻰ ﻋﺎدة ﺗﻣﺛل ﺑﺎﻟرﻣز lnxاو . log e x ?Log
Logz gives the natural logarithm of z logarithm to base e. Logb, z …gives the logarithm to base b. More ادﺧل : ]Log[E 1 اﻟﻧﺗﯾﺟﺔ واﺣد ﺻﺣﯾﺢ .ادﺧل 5
LogE 5 اﻟﻧﺗﯾﺟﺔ . 5ادﺧل ]]Exp[Log[
اﻟﻧﺗﯾﺟﺔ ٥٨
lnb داﻟﺔ اﻻوﻏﺎرﯾﺗم ﺗﺳﺗﺧدم ﻓﻰ ﺣﺳﺎب ﻟوﻏﺎرﯾﺗﻣﺎت ﺑﺎﺳﺎﺳﺎت ﻏﯾر Log[a,b] . eﺗﺣﺳب ln a
log a b
وﻋﻠﻰ ذﻟك ﺑﺎدﺧﺎل :
]Log[3,9 2 ﻧﺣﺻل ﻋﻠﻰ 2
وﺑﺎدﺧﺎل : ]Log[2,10
Log10 Log2 ﻧﺣﺻل ﻋﻠﻰ اﻣر اﻻدﺧﺎل ﻧﻔﺳﮫ .ﺗﻘرﯾب ﻟﻌﺷرة ارﻗﺎم ﻋﺷواﺋﯾﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﮫ ﺑﺎﺳﺗﺧدام N
]]N[Log[2,10 3.32193
ﻣﺛﺎل ارﺳم
ln xﻓﻰ اﻟﻔﺗرة ][0.002,8
اﻟﺣل:
ﺳوف ﻧﺳﺗﺧدم Plotﻟرﺳم اﻟداﻟﺔ ] ln[xواﻟﺧﯾﺎر }} PlotRange{{0,8},{-2,2ﯾﻌﻧﻰ ان اﻟﻣﺣور اﻻﻓﻘﻰ ﯾﺣدد ﻓﻰ اﻟﻔﺗرة } {0,8واﻟﻣدى ﯾﺣدد ﻓﻰ اﻟﻔﺗرة } {-2,2واﻟﺧﯾﺎر AspectRatio->1ﯾﻌﻧﻰ ان اﻟﻧﺳﺑﺔ ﺑﯾن طول اﻟﻣﺣور اﻟراﺳﻰ اﻟﻰ اﻟﻣﺣور اﻻﻓﻘﻰ ﺗﺳﺎوى واﺣد . {Plot[Log[x],{x,0.002,8},PlotRange{{0,8},]2,2}},AspectRatio1
٥٩
2 1.5 1 0.5
8
7
5
6
4
3
2
1 -0.5 -1 -1.5 -2
Graphics
اﻟدوال اﻟﻣﺛﻠﺛﯾﺔ Trigonometric Functions ﯾﺗﻧﺎول ﻫذا اﻟﻘﺳم اﻣﺛﻠﺔ ﻋﻠﻰ اﻟﻌﻣﻠﯾﺎت اﻟﺗﻰ ﺗﺟرى ﻋﻠﻰ اﻟدوال اﻟﻣﺛﻠﺛﯾﺔ ]Sin[x],Cos[x],Tan[x],Csc[x],Sec[x],Cot[x ﺣﯾث xﻣﻘﺎﺳﺔ ﺑﺎﻟﺗﻘدﯾر اﻟداﺋرى .ﯾﻘدم اﻟﺑرﻧﺎﻣﺞ اﻟﻘﯾم اﻟﻣﺿﺑوطﺔ ﻟﻠدوال اﻟﻣﺛﻠﺛﯾﺔ ﻟﺑﻌض اﻟزواﯾﺎ ﺑﯾﻧﻣﺎ اﻟﺗﻘرﯾﺑﺎت اﻟﻌددﯾﺔ ﺗﺳﺗﺧدم ﻟﻐﯾر ذﻟك .
ﻣﺛﺎل 3 9 اﺣﺳب ) cos( ),sin( ),tan( ),cos( ),cos( ),sin( 4 3 4 12 5 8
اﻟﺣل:
4
Cos 1
٦٠
3
2
Sin
3 4
3 2
Tan -1
12
Cos
3
1
2 2
اﻟﺑرﻧﺎﻣﺞ ﻟم ﯾﺳﺗطﯾﻊ اﯾﺟﺎد ﻗﯾﻣﺔ ﻣﺿﺑوطﺔ ﻟـ ) (cos 12 وﻟذﻟك ﯾﻣﻛن اﺳﺗﺧدام Nﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ :
12
NCos
0.965926
5
Cos
1 1 5 4
اﯾﺿﺎ اﻟﺑرﻧﺎﻣﺞ ﻟم ﯾﺳﺗطﯾﻊ اﯾﺟﺎد ﻗﯾﻣﺔ ﻣﺿﺑوطﺔ ﻟـ ) (cos 5 ﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ : وﻟذﻟك ﯾﻣﻛن اﺳﺗﺧدام N
5
NCos
0.809017
9 اﯾﺿﺎ اﻟﺑرﻧﺎﻣﺞ ﻟم ﯾﺳﺗطﯾﻊ اﯾﺟﺎد ﻗﯾﻣﺔ ﻣﺿﺑوطﺔ ﻟـ ) 8
(cos
وﻟذﻟك ﯾﻣﻛن اﺳﺗﺧدام Nﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ :
9
8
Sin
9 8 9 NSin
Sin
8
0.382683 ٦١
) sin 2واﻟﺗﻰ ﻣﻌﻧﺎﻫﺎ ﺣﺳﺎب وﯾﺟب اﻟﺣرص ﻓﻰ ﻛﺗﺎﺑﺔ اﻟدوال ﻓﻣﺛﻼ اﻟﺗﻌﺑﯾر 6 6 2 . sin اﻟﻧﺎﺗﺞ ( اى (sin ) 2 6 6
sinاوﻻ ﺛم ﺗرﺑﯾﻊ
وﻋﻧد اﻟﻛﺗﺎﺑﺔ ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﺗﻛﺗب :
Sin[Pi/6]^2
1 4 1 4
]Sin^2[Pi/6 وﻟﯾس :
2 Sin 6
واﻟﺗﻰ ﺗرﻓﻊ رﻣز Sinاﻟﻰ اﻟﻘوى ] [2 6
.
ﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ اﺳﺗﺧدام اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻣرة اﺧرى ﺗﺎﻛد ﻣن ﺗرﺑﯾﻊ sinﻟﻠﺣﺻول ﻋﻠﻰ 6 6
2
: sin
2
6
Sin
ﻣﺛﺎل ارﺳم sin x,csc x, tan x,cot x
اﻟﺣل: ﻓﻰ ﻛل ﺣﺎﻟﺔ ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم اﻟداﻟﺔ اﻟﻣطﻠوﺑﺔ .اوﻻ ﺳوف ﻧرﺳم sin xو cs cxﻓﻰ اﻟﻔﺗرة
٦٢
1 4
]. [2, 2 ]}Plot[Sin[x],{x,-2,2 1
0.5
6
4
2
6
4
2
-2
-4
-6
-0.5
-1
Graphics ]}Plot[Csc[x],{x,-2,2 15 10 5 -2
-4
-6
-5 -10 -15
Graphics
ﺑﺻورة ﻋﺎﻣﺔ ﺳوف ﻧﺳﺗﺧدم اﻟﺻﯾﻐﺔ اﻻﺗﯾﺔ ﻟﻼﻣر Plotﻟرﺳم داﻟﺗﯾن ) f(x),g(xﻣﻌﺎ ﻓﻰ اﻟﻔﺗرة ] [a,bﻛﺎﻟﺗﺎﻟﻰ :
]}Plot[{f[x],g[x]},{x,a,b ﺗﻔﺎﺻﯾل رﺳم اﻟدوال ﺳوف ﻧﻌرﺿﻬﺎ ﻓﻲ ﻓﯾﻣﺎ ﺑﻌد . ﻫﻧﺎ ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻣﻊ اﻟﺧﯾﺎرات PlotRange And AspectRatioو اﻟﺧﯾﺎر } ] PlotStyle->{GrayLevel[0],Gray[.5واﻟﺗﻰ ﺗﻌﻧﻰ اﻧﻪ ﻋﻧد رﺳم داﻟﺗﯾن اﻻوﻟﻰ sin xﺗرﺳم ﺑﺎﻟﻠون اﻻﺳود واﻟﺛﺎﻧﯾﺔ csc xﺗرﺳم ﺑﺎﻟﻠون اﻟرﻣﺎدى اﻟﺧﻔﯾف .اﻟﺧﯾﺎر } PlotRange->{-2Pi,2Piﺗﻌﻧﻰ ان ﻣدى اﻟﻣﺣور اﻟراﺳﻰ ﻓﻰ اﻟﻔﺗرة ] . [2, 2ﻧﺳﺑﺔ اﻟﻣﺣور اﻻﻓﻘﻰ اﻟﻰ اﻟﻣﺣور اﻟراﺳﻰ واﺣدة وذﻟك ﺑﺳﺑب اﻟﺧﯾﺎر . AspectRatio 1 ٦٣
Plot[{Sin[x],Csc[x]},{x,-2,2},PlotRange{2,2},PlotStyle{GrayLevel[0],GrayLevel[.5]},AspectRatio 1] 6
4
2
-6
-4
-2
2
4
6
-2
-4
-6
Graphics
: ﻣﻌﺎ ﻛﺎﻟﺗﺎﻟﻰtan x cot x ﯾﻣﻛن رﺳم
Plot[{Tan[x],Cot[x]},{x,-2,2},PlotRange{2,2},PlotStyle{GrayLevel[0],GrayLevel[.5]},AspectRatio 1]
٦٤
6
4
2
6
4
-2
2
-6
-4
-2
-4
-6
Graphics
اﻟدوال اﻟﻣﺛﻠﺛﯾﺔ اﻟﻌﻛﺳﯾﺔ Inverse Trigonometric Functions اﻻواﻣــر اﻟﺧﺎﺻــﺔ ﺑﺎﻟــدوال اﻟﻣﺛﻠﺛﯾــﺔ اﻟﻌﻛﺳــﯾﺔ ﺗﺷــﺑﺔ ﻣــﺎ ﺗــم اﺳــﺗﺧداﻣﻪ ﻓــﻰ اﻟــدوال اﻟﻣﺛﻠﺛﯾــﺔ .ﻣ ـرة اﺧــرى اﻟﺣــرﻓﯾن اﻟﻛﺑﯾرﯾن ﻓﻰ ﻛﺗﺎﺑﺔ اﻟدوال اﻟﻣﺛﻠﺛﯾﺔ اﻟﻌﻛﺳﯾﺔ .اﻟدوال اﻟﻣﺛﻠﺛﯾﺔ ﺗﻛﺗب ﻛﺎﻟﺗﺎﻟﻰ : ]ArcCos[x], ArcSec[x], ArcTan [x], ArcCsc [x], ArcCot[x], ArcSin [x اذا ﻛﺎﻧت اﻟﻘﯾم ﻣﻌروﻓﺔ ﺟﯾدا ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺧرﺟﻬﺎ ،ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
1 ArcCos 2
3
1 اى ان cos 1 ( ) 2 3 ]ArcSin[-1
2
٦٥
اى ان 2
sin 1 (1)
وﺑﺎدﺧﺎل :
1 ArcSin 2
6
1 ﺗﺧرج 2 6
tan 1
ﻓﻰ ﻣﻌظم اﻻﺣوال ﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﯾﻛون ﻣن اﻟﺿرورى اﺳﺗﺧدام Nﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﯾﻣﻛن اﺳﺗﺧدام //Nﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ :
1 ArcSin N 2 0.523599
1 ﺗﺧرج ﺗﻘرﯾب ﻟـ 2
tan 1
ﻣﺛﺎل اﺧر :
ArcTan[99]//N 1.5607
ﻣﺛﺎل ارﺳم )cot 1 (x
اﻟﺣل: ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم اﻟداﻟﺔ اﻟﻣطﻠوﺑﺔ . ]}Plot[ArcCot[x],{x,-1,1 1.5 1 0.5
1
-0.5
0.5
-1
-0.5 -1 -1.5
Graphics ٦٦
اﻟدوال اﻟزاﺋدﯾﺔ Hyperbolic Functions اﻻواﻣر اﻟﺧﺎﺻﺔ ﺑﺎﻟدوال اﻟزاﺋدﯾﺔ ﺗﺷﺑﺔ ﻣﺎ ﺗم اﺳﺗﺧداﻣﻪ ﻓﻰ اﻟدوال اﻟﻣﺛﻠﺛﯾﺔ .اذا ﻛﺎﻧت اﻟﻘﯾم ﻣﻌروﻓﺔ ﺟﯾدا ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺧرﺟﮭﺎ. ﻓﻰ ﻣﻌظم اﻻﺣوال ﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﯾﻛون ﻣن اﻟﺿرورى اﺳﺗﺧدام //Nﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻛﻣﺎ ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ: ]Sinh[4 ]Sinh[4 Sinh[4]//N 27.2899
اﻟدوال اﻟزاﺋدﯾﺔ اﻟﻌﻛﺳﯾﺔ Inverse Hyperbolic Functions
اﻻواﻣــر اﻟﺧﺎﺻــﺔ ﺑﺎﻟــدوال اﻟزاﺋدﯾــﺔ اﻟﻌﻛﺳــﯾﺔ ﺗﺷــﺑﺔ ﻣــﺎ ﺗــم اﺳــﺗﺧداﻣﻪ ﻓــﻰ اﻟــدوال اﻟﻣﺛﻠﺛﯾــﺔ اﻟﻌﻛﺳــﯾﺔ .اذا ﻛﺎﻧــت اﻟﻘــﯾم ﻣﻌروﻓﺔ ﺟﯾدا ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺧرﺟﻬﺎ . ﻓﻰ ﻣﻌظم اﻻﺣوال ﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﯾﻛون ﻣن اﻟﺿرورى اﺳﺗﺧدام //Nﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﺗﻘرﯾﺑﯾﺔ ﻛﻣﺎ ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ:
]ArcCosh[6 ]ArcCosh[6 ArcCosh[6]//N 2.47789 ArcSinh[5]//N 2.31244
1 ArcTanh N 2 -0.549306
ﻣﺛﺎل ارﺳم )sinh 1 (x
اﻟﺣل: ٦٧
ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم اﻟداﻟﺔ اﻟﻣطﻠوﺑﺔ . ]}Plot[ArcSinh[x],{x,-3,3},PlotRange{-3,3 3 2 1
3
2
-1
1
-2
-3
-1 -2 -3 Graphics
) (٥-٢اﻟﺗﻌﺑﯾرات Expressions ﻛل ﻛﻣﯾﺔ ﺗدﺧل اﻟﺑرﻧﺎﻣﺞ ،ﺑﺻـرف اﻟﻧظـر ﻋـن اﻟﻛﯾﻔﯾـﺔ اﻟﺗـﻰ ﺗظﻬـر ﺑﻬـﺎ ﺗﺳـﻣﻰ ﺗﻌﺑﯾـر . expressionاى ﺗﻌﺑﯾـر ﯾﺎﺧذ اﻟﺷﻛل اﻟﺗﺎﻟﻰ:
] head[arg1 ,arg 2 ,...,arg n ﺣﯾث headﯾﺳﻣﻰ راس اﻟﺗﻌﺑﯾر و arg1 ,arg 2 ,...,arg nﺗﺳﻣﻰ اﻟﻣﻌﺎﻣﻼت وﻣـن اﻟﻣﻣﻛـن ان ﯾﻣﺛﻠـون ﺗﻌﺑﯾـرات اﺧرى . وﻣن اﻣﺛﻠﺔ اﻟﺗﻌﺑﯾرات x+y+zوﯾﻣﻛن ان ﺗﺎﺧذ ﺷﻛل اﻟﺗﻌﺑﯾر وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر : FullForm ]FullForm[x+y+z ]Plus[x,y,z اﯾﺿﺎ x*yﯾﻣﻛن ان ﺗﺎﺧذ ﺷﻛل اﻟﺗﻌﺑﯾر وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر : FullForm ]FullForm[x*y ]Times[x,y وھﻧﺎك اﻣﺛﻠﺔ اﺧرى : ]FullForm[x*y+2z ]]Plus[Times[x,y],Times[2,z ]FullForm[4+4x^2 ٦٨
]]]Plus[4,Times[4,Power[x,2
]FullForm[x+2y+z^2 ]]Plus[x,Times[2,y],Power[z,2 x
ﻟﻼﺳﺗﻌﻼم ﻋن اﺳم اﻟﺗﻌﺑﯾر ﯾﺳﺗﺧدم اﻻﻣر : Head ]Head[x^2+y+z Plus
ﻟﯾوﺿﺢ ﻟﻧﺎ ان اﺳم اﻟﺗﻌﺑﯾر x^2+y+zﻫو .Plus
) (٦-٢ﺗﻌرﯾف وﺗﻘدﯾر اﻟدوال ﻣن ﻗﺑل اﻟﻣﺳﺗﺧدم ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ ﻓﺎﻧ ﮫ ﯾﻤﻜ ﻦ ﻟﻠﻤﺴ ﺘﺨﺪم اﺿ ﺎﻓﺔ دوال ﺟﺪﯾ ﺪة ﯾﺤﺘ ﺎج اﻟﯿﮭ ﺎ وﺑﺎﺳ ﻤﺎء ﯾﻘﺘﺮﺣﮭﺎ .واﻟﺪوال ﺗﻤﺜﻞ ﺗﻌﺒﯿﺮات ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ وﺳﻮف ﻧﺴﺘﺨﺪم اﻟﺤﺮوف اﻟﺼﻐﯿﺮة ﻓﻰ ﻛﺘﺎﺑ ﺔ ھ ﺬه اﻟ ﺪوال ﺣﺘ ﻰ ﻻ ﯾﺤﺪث ﺗﺪاﺧﻞ ﺑﯿﻦ اﺳﻤﺎء اﻟ ﺪوال اﻟﻤﻮﺟ ﻮدة ﻓ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ واﺳ ﻤﺎء اﻟ ﺪوال اﻟﺠﺪﯾ ﺪة اﻟﺘ ﻰ ﯾﻘ ﻮم اﻟﻤﺴ ﺘﺨﺪم ﺑﺘﻌﺮﯾﻔﮭ ﺎ 2 ﺗﺒﻌ ﺎ ﻟﻘﻮاﻋ ﺪ ﻣﻌﯿﻨ ﺔ .ﻓﻤ ﺜﻼ ﻓ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ اﻟﺪاﻟ ﺔ f (x) xﯾﻜﺘ ﺐ ﻋﻠ ﻰ اﻟﺼ ﻮرة = f[x_]:واﻟﺘ ﻰ ﺗﻤﺜ ﻞ ﺗﻌﺒﯿﺮ ﻓ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ وذﻟ ﻚ ﻟﺘﻌﺮﯾ ﻒ داﻟ ﺔ ) f(xﻟﮭ ﺎ اﻻﺳ ﻢ fوذات ﻣﺘﻐﯿ ﺮ واﺣ ﺪ . xاﻟﻌﻼﻣ ﺔ _ واﻟﻤﻮﺟ ﻮدة ﻓ ﻰ اﻟﻄﺮف اﻻﯾﺴ ﺮ ﺑﺠﺎﻧ ﺐ اﻟﻤﺘﻐﯿ ﺮ xﺗﺴ ﻤﻰ اﻟﻔ ﺮاغ اﻟﺨ ﺎﻟﻰ blank spaceو _ xاﻟ ﻨﻤﻂ . Patternاﻟﺼ ﯿﻐﺔ ﺣﯿ ﺚ functionnameاﺳ ﻢ اﻟﺪاﻟ ﺔ و اﻟﻌﺎﻣ ﺔ ﻟﻜﺘﺎﺑ ﺔ اﻟﺪاﻟ ﺔ ھ ﻰ =functionname[argument_]: argumentﺗﺮﻣ ﺰ اﻟ ﻰ اﻟﻤﺘﻐﯿ ﺮ .وﻋﻨ ﺪ ﻛﺘﺎﺑ ﺔ اﻟﺪاﻟ ﺔ ﻧﺒ ﺪا اوﻻ ﺑ ﺎﻻﻣﺮ Clearوﺻ ﯿﻐﺘﮫ ]Clear[expression وذﻟ ﻚ ﻟﺤ ﺬف ﻛ ﻞ اﻟﺘﻌﺮﯾﻔ ﺎت اﻟﺴ ﺎﺑﻘﺔ ﻟﻠﺘﻌﺒﯿ ﺮ ) expressionاﻟﺪاﻟ ﺔ ھﻨ ﺎ( ﺣﺘ ﻰ ﻻ ﯾﺤ ﺪث ﺗ ﺪاﺧﻞ ﻓ ﻰ اﻟ ﺪوال اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻰ اﻟﺨﻄﻮات اﻟﺴﺎﺑﻘﺔ او ﻣﻊ ﺑﺮﻧﺎﻣﺞ اﺧﺮ وﯾﻔﻀﻞ داﺋﻤﺎ ﻣﻦ ﺗﺠﺮﺑﺘﻰ اﻟﺸﺨﺼﯿﺔ اﻟﺨﺮوج ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ واﻟ ﺪﺧﻮل ﻣ ﺮة اﺧ ﺮى ﻋﻨ ﺪ ﺗﻨﻔﯿ ﺬ ﺑﺮﻧ ﺎﻣﺞ ﺟﺪﯾ ﺪ.وﺑﻌ ﺪ ﻛﺘﺎﺑ ﺔ اﻟﺪاﻟ ﺔ ﺑﺎﻟﻄﺮﯾﻘ ﺔ اﻟﻘﯿﺎﺳ ﯿﺔ )وﯾﻤﻜ ﻦ ﻛﺘﺎﺑﺘﮭ ﺎ ﺑﺼ ﯿﻐﺔ اﻻدﺧﺎل( ﻧﻘﻮ م ﺑﺎﻟﺘﻨﻔﯿﺬ ذﻟﻚ ﻛﻤﺎ ﯾﺘﻀﺢ ﻣﻦ اﻻﻣﺜﻠﺔ اﻟﺘﺎﻟﯿﺔ .
ﻣﺛﺎل ﻋرف )f (x) x 2 ,g(x) x , h(x) 3 sin x,f (4),g(9), h( / 2
اﻟﺣل: ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Clearوذﻟك ﻟﺣذف ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠدوال f,g,hﻣن اﻟذاﻛرة ﺛم ﻧدﺧل ﺗﻌرﯾف ﻛل داﻟﺔ .
ﯾﻣﻛن ادﺧﺎل f[x _]: x ^ 2وذﻟك اﺗﻌرﯾف اﻟداﻟﺔ f (x) x 2
اواﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﻣﺎ ﯾﻠﻰ :
]Clear[f,g,h
fx_ : x2 ﻧﻼﺣظ ان اﻟﺑرﻧﺎﻣﺞ ﻟم ﯾﻘدر اﻟداﻟﺔ وﻟذﻟك ﻻ ﯾوﺟد ﻣﺧرج وﻟﻛن ﺗﻌرف ﻋﻠﯾﮭﺎ .
٦٩
ﺳوف ﻧرى f(4) =16وذﻟك ﺑﺣﺳﺎب ] f[4ﺑطرﯾﻘﺗﯾن :
]f[4 16 f[x]/.x4 16
ﻟﺤﺴﺎب اﻟﺪاﻟﺔ fﻋﻧد a+bﻣﺛﻼ ﻧدﺧل :
fx_ : x2 ]f[a+b a b2
ﯾﻣﻛن اﺳﺗﺑدال اﻟﺣرف x
ﺑﺎى ﺣرف اﺧر ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل t 2
ft_ : t
]f[a+b a b2 ]f[4 16 f[t]/.t4 16
ﻧدﺧل g(x) xوﻧﺤﺴﺐ g(9) 3
x
gx_ : ]g[9 3
او : g[x]/.x9 3 ﺑﺎدﺧﺎل : ]h[x_]:=3+Sin[x
ﺣﯿﺚ ) h( 2ﺗﻢ ﺣﺴﺎﺑﮭﺎ ﺑﻄﺮﯾﻘﺘﯿﻦ : ]h[x_]:=3+Sin[x
2
٧٠
2
h 4
hx . x 4
ﯾﻣﻛن ﻣﺷﺎﻫدة ﺗﻌرﯾف hوذﻟك ﺑﺎدﺧﺎل ?hﻛﻣﺎ ﯾﺎﺗﻰ : ?h Global`h hx_ : 3 Sinx ﯾﻣﻛن ﺗﻌرﯾف دوال ﻓﻰ اﻛﺛر ﻣن ﻣﺗﻐﯾر ﻓﻣﺛﻼ = h[x_,y_]:ﯾﻣﺛل ﺗﻌﺑﯾر ﻓﻰ اﻟﺑرﻧﺎﻣﺞ وذﻟك ﻟﺗﻌرﯾف اﻟداﻟﺔ ) h(x,yﻟﻬﺎ اﻻﺳم hوذات ﻣﺗﻐﯾرﯾن . x,y
ﻣﺛﺎل ﻋ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــرف ) f (x, y) 1 sin(x yواﺣﺳ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــب 2
2 2 2 2 ) ,f (0,a), f (a b , b a 2
2
. f (1, 2),f 2 ,3
اﻟﺣل: fx_, y_ : 1 Sinx2 y2 ]f[1,2 ]1-Sin[5
3 f2 ,
2
1
1
2
]f[0,a 1 Sina2 fa2 b2, b2 a2 2
2
1 Sina2 b2 a2 b2
:Composition Functions
ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺣﺳﺎب اﻟداﻟﺔ ))(fg)(x) f (g(x ﺣﯿﺚ ) f (x),g(xداﻟﺘﯿﻦ . ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺑﻔرض اﻟداﻟﺗﯾن اﻟﺗﺎﻟﯾﺗﯾن :
f (x) x 2 x , g(x) x 3 1 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟداﻟﺔ :
٧١
(fg)(x) f (g(x)) : ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ Clear[f,g]
fx_ : x2 x; gx_ : x3 1; f[g[x]] 2 1 x3 1 x3 : وﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﯿﮭﺎ ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ اﻟﺘﺎﻟﻰ Composition[f,g][x] 2 1 x3 1 x3 : اﯾﺿﺎ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟداﻟﺔ : ( ﻛﺎﻟﺘﺎﻟﻰfg)(x 1) f (g(x 1))
Composition[f,g][x-1] 2 1 1 1 x3 1 x3 : ﺑﻔﺮض ﺗﻌﺮﯾﻒ داﻟﺔ ﺟﺪﯾﺪة ﻛﺎﻟﺘﺎﻟﻰ
k(x) sin x cos x : واﻟﺗﻰ ﺗﻌرف ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻛﺎﻟﺗﺎﻟﻰ
k[x_]:=Sin[x]+Cos[x]; : اﯾﻀﺎ ﺑﻔﺮض ﺗﻌﺮﯾﻒ اﻟﺪاﻟﺔ
(fk)(x) f (k(x)) : واﻟﺗﻰ ﺗﻌرف ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻛﺎﻟﺗﺎﻟﻰ aa2=Composition[f,k][x] Cosx Sinx Cosx Sinx2
Compositionf, k 3 3 2
3
وﻗﺪ ﺗﻢ ﺗﻘﺪﯾﺮ ﻗﯿﻤﺘﮭﺎ ﻋﻨﺪ 3 Simplify
٧٢
وﯾﻣﻛن ﺗﺑﺳﯾط )ﻓك( اﻟداﻟﺔ aa2ﺑﺎﺳﺗﺧدام اﻻﻣر Expand
]Expand[aa2 Cosx Cosx2 Sinx 2 Cosx Sinx Sinx2 ﺑﻔﺮض اﻟﺪاﻟﺔ :
ff (x) x 2 10 واﻟﺗﻰ ﺗﻌرف ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻛﺎﻟﺗﺎﻟﻰ :
ffx_ : x2 10 ﺳوف ﻧﺣﺳب ﻗﯾﻣﺗﮭﺎ ﻋﻧد x=2ﻛﺎﻟﺗﺎﻟﻰ : ]ff[2 14 ﺳوف ﻧﻌرف اﻟداﻟﺔ :
))ff (ff (ff (x ﻛﺎﻟﺗﺎﻟﻰ : ]t[x_]=Nest[ff,x,3 2 2
10 10 10 x2
ﺛم ﻧﺣﺳب ﻗﯾﻣﺗﮭﺎ ﻋﻧدx=2 ]t[2 42446
ﯾﻣﻛن اﻟﻣﻘﺎرﻧﺔ ﺑﯾن ﻋدة دوال ﺑﺎﻟرﺳم اﻟﺗﺎﻟﻰ :
}Plot[{f[x],g[x],ff[x]},{x,0,10},PlotStyle{Dashing[{0.01 ]}]],GrayLevel[.4],GrayLevel[0
٧٣
200
150
100
50
10
6
8
4
2 Graphics
وﻓﻰ اﻟﻧﮭﺎﯾﺔ ﯾﺟب ﺗوﺧﻰ اﻟﺣذر ﻋﻧد ﻛﺗﺎﺑﺔ اﺳم اﻟداﻟﺔ ﻓﻼ ﻧﺳﺗﺧدم اﺳﻣﺎء ﻣﺧﺻﺻﺔ ﻟدوال ﺗﺧص اﻟﺑرﻧﺎﻣﺞ .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻋﻧدﻣﺎ ﻧﻛﺗب :
Cosx_ : x2 …SetDelayed ::write : Tag Cos in Cos x_ is Protected . More
$Failed
ﯾﻼﺣظ ظﮭور رﺳﺎﻟﺔ ﺗﺣذﯾر واﻟﺗﻰ ﺗﻌﻧﻰ ان اﺳم اﻟداﻟﺔ Cos
) (٧-٢اﻟﻌﻣﻠﯾـﺎت اﻟﻌﻼﻗﯾـﺔ واﻟﻌﻣﻠﯾـﺎت اﻟﻣﻧطﻘﯾـﺔ
ﺧطﺎ ﻻﻧﮭﺎ اﺳم داﻟﺔ ﺗﺧص اﻟﺑرﻧﺎﻣﺞ .
Relational and Logical
Operations ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻫﻧﺎك اﻟﻌﻣﻠﯾﺎت اﻟﻌﻼﻗﯾﺔ Relation Operatorsواﻟﺗﻰ ﺗﻘﺎرن ﺑﯾن ﺗﻌﺑﯾرﯾن او ﻣﺗﻐﯾرﯾن وﯾﻛون اﻟﻧﺎﺗﺞ ﻛﻣﯾﺔ ﻣﻧطﻘﯾﺔ ﺻواب Trueاو ﺧطﺎ .False
اﻟﻌﻣﻠﯾﺎت اﻟﻌﻼﻗﯾﺔ : اﻟﻌﻣﻠﯾﺎت اﻟﻌﻼﻗﯾﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻫﻰ اﻟﻣﺳﺎواﻩ (==)Equalوﻋدم اﻟﺗﺳﺎوى (!=) Unequalواﻛﺑر )>( و اﺻﻐر )<( واﻛﺑر او ﯾﺳﺎوى (>=) GreaterEqualو اﺻﻐر او ﯾﺳﺎوى (<=) LessEqualواﻟﺗﻰ ﯾﻣﻛن اﺳﺗﺧداﻣﻬم ﻟﻣﻘﺎرﻧﺔ اﻋداد .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل:
9>10 False 48-4 True اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ :
٧٤
)3(7-4 True ﺗﺧﺗﻠف ﻋن اﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ : (3==7)-4 -4+False
اﻟﺟدول اﻟﺗﺎﻟﻰ ﯾﻌطﻰ اﻟﻌﻣﻠﯾﺎت اﻟﻌﻼﻗﯾﺔ وﺻﯾﻎ اﻻدﺧﺎل اﻟﻣﺧﺗﻠﻔﺔ ﻟﮭم .
اﻟﻣﻌﻧﻰ
اﻟﺻﯾﻐﺔ اﻟداﻟﯾﺔ
اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ
اﻟﻣﺳﺎواة
]Equal[x,y
x==y
ﻋدم اﻟﻣﺳﺎواة
]UnEqual[x,y
x!=y
اﻛﺑر ﻣن
]Greater[x,y
x>y
اﻗل ﻣن
]Less[x,y
x<y
اﻛﺑر ﻣن او ﯾﺳﺎوى
]GreaterEqual[x,y
x>=y
اﺻﻐر ﻣن او ﯾﺳﺎوى
]LessEqual[x,y
x<=y
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]Equal[3,7-3,6/2 False
اﻟﻌﻣﻠﯾﺎت اﻟﻣﻧطﻘﯾﺔ:
٧٥
اﻟﻌﻣﻠﯾـﺎت اﻟﻣﻧطﻘﯾــﺔ ) ﻓـﻰ ﺑﻌــض اﻻﺣﯾــﺎن ﺗﺳـﻣﻰ ) (Boolean Operationﺗﻘـدر ﺻــﺣﺔ ﺗﻌﺑﯾـر ﺑﺎﻻﻋﺗﻣــﺎد ﻋﻠــﻰ رﻣز ﯾﺳﻣﻰ " " Boolean Arithematic
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻟﻌﻣﻠﯾﺔ اﻟﻣﻧطﻘﯾـﺔ "و" )" ( "And Operationﺗﻣﺛـل
ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﺑﺎﻟرﻣز && .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻻﺗﺣﺎد ﺑﯾن ﺟﻣﻠﺗﯾن ﺻﺣﯾﺣﺗﯾن داﺋﻣﺎ ﺻﺣﯾﺢ : 4<5&&8>1 True ﻓﯾﻣﺎ ﯾﻠﻰ ﺟدول ﻟﻛل اﻟﻘﯾم اﻟﻣﻣﻛﻧﺔ ﻟﻌﻣﻠﯾﺔ " و" ) " :("And operation
TableForm[{{True&&True,True&&False},{False&&True,False&&F ]} }alse}},TableHeadings{{T,F},{T,F
F False False
T True False
T F
اﻟﻌﻣﻠﯾﺔ اﻟﻣﻧطﻘﯾـﺔ " او " )" ("Orﺗﻣﺛـل ﻓـﻰ اﻟﺑرﻧـﺎﻣﺞ ﺑـﺎﻟرﻣز ||وﺗﻛـون ﺻـﺣﯾﺣﺔ اذا ﻛـﺎن اﺣـدى اﻟﺟﻣﻠﺗـﯾن ﺻـﺣﯾﺢ .ﻓﻌﻠـﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
43||36/2 True 0==0||36/2 True
وﻋﻠﻰ ذﻟك اذا ﻛﺎن A and Bﻛﻼﻫﻣﺎ ﺻﺣﯾﺢ ﻓﺎن A||Bاﯾﺿﺎ ﺻﺣﯾﺢ : True||True True اﻟﺟدول اﻟﺗﺎﻟﻰ ﯾﻌطﻰ اﻟﻌﻣﻠﯾﺎت اﻟﻣﻧطﻘﯾﺔ وﺻﯾﻎ اﻻدﺧﺎل اﻟﻣﺧﺗﻠﻔﺔ ﻟﮭم .
اﻟﻣﻌﻧﻰ
اﻟﺻﯾﻐﺔ اﻟداﻟﯾﺔ
اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ
ﻻ
]Not[x
!x
ﻻ ﯾﺳﺎوى
]UnEqual[x,y
x!=y
و
]And[x,y
x&&y
٧٦
او
]Or[x,y
X||y
ﻣﺛﺎل ﺑﺎﺣﻼل 10,11,12ﻓﻰ اﻟﻣﺗﻐﯾرات aa1,aa2,aa3ﻋﻠﻰ اﻟﺗرﺗﯾب ﺛم اﺧﺗﺑﺎر ﻣﺎ اذا ﻛﺎن aa1>aa2-aa3ﺗﺗم ﻛﺎﻟﺗﺎﻟﻰ: اوﻻ :ﺑﺻﯾﻐﺔ اﻻدﺧﺎل واﻟﻧﺗﯾﺟﺔ ﺻواب )(True aa1=10;aa2=11;aa3=12;aa1>aa2-aa3 True ﺛﺎﻧﯾﺎ ﺑﺻﯾﻐﺔ داﻟﺔ : ])Greater[aa1,(aa2-aa3 True
وﻗد ﺣﺻﻠﻧﺎ ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ. ﻛﻣﺛﺎل اﺧر ﺑﺎﺣﻼل 10,15,17ﻓﻰ اﻟﻣﺗﻐﯾرات aa1,aa2,aa3ﻋﻠﻰ اﻟﺗرﺗﯾب ﺛم اﺧﺗﺑﺎر ﻣﺎ اذا ﻛﺎن aa1اﻛﺑر ﻣن او ﯾﺳﺎوى aa2ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ :
اوﻻ ﺑﺻﯾﻐﺔ اﻻدﺧﺎل واﻟﻧﺗﯾﺟﺔ ﺧطﺎ )(False ;aa1=10;aa2=15;aa3=17 aa1aa2 False ﺛﺎﻧﯾﺎ ﺑﺻﯾﻐﺔ داﻟﺔ : ]GreaterEqual[aa1,aa2 False
ﻻﺧﺗﺑﺎر ﻣﺎ اذا ﻛﺎن aa2اﻛﺑر ﻣن aa1+aa3او aa1<aa3ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : اوﻻ ﺑﺻﯾﻐﺔ اﻻدﺧﺎل واﻟﻧﺗﯾﺟﺔ ﺻواب )(True
٧٧
aa2>aa1+aa3||aa1<aa3 True :ﺛﺎﻧﯾﺎ ﺑﺻﯾﻐﺔ داﻟﺔ Or[Greater[aa2,aa1+aa3],Less[aa1,aa3]] True
٧٨
اﻟﻔﺻل اﻟﺛﺎﻟث رﺳم اﻟدوال واﻟﺗﻌﺑﯾرات واﻟﻣﻌﺎدﻻت
٧٩
) ( ١-٣رﺳـم داﻟـﺔ ﻟﻣﺗﻐﯾـر واﺣـد )ﻓـﻰ اﻟﻣﺳـﺗوى ( Graphing Function of a Single Variable ﺑﻔرض داﻟﺔ ذات ﻣﺗﻐﯾر واﺣد ﯾرﻣز ﻟﻬﺎ ) y=f(xﺣﯾث xﯾﺳﻣﻰ اﻟﻣﺗﻐﯾر اﻟﻣﺳﺗﻘل و yﯾﺳﻣﻰ اﻟﻣﺗﻐﯾر اﻟﺗﺎﺑﻊ وﻧطﺎق اﻟداﻟﺔ ﯾﻘﻊ ﻋﻠﻰ ﻣﺣور xواﻟﻣدى ﯾﻘﻊ ﻋﻠﻰ ﻣﺣور yوﺗرﺳم اﻟداﻟﺔ ﻓﻰ اﻟﻣﺳﺗوى وﯾﻣﺛﻠﻬﺎ ﻣﺟﻣوع اﻟﻧﻘﺎط ) (x,yﻓﻰ اﻟﻣﺳﺗوى اﻟﺗﻰ ﺗﺣﻘق ).y=f(x اﻻﻣر اﻟذى ﯾﺳﺗﺧدم ﻓﻰ رﺳم اﻟداﻟﺔ ھو :
]}Plot[f[x],{x,a,b واﻟذى ﯾرﺳم اﻟداﻟﺔ) f(xﻓﻰ اﻟﻔﺗرة]. [a,b ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن ھذا اﻻﻣر ﯾﻣﻛن ﻛﺗﺎﺑﺔ ? Plotوﺗﻧﻔﯾذھﺎ ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻓﻧﺣﺻل ﻋﻠﻰ اﻟﺗﺎﻟﻰ : ?Plot
Plotf, x, xmin, xmax generates a plot of f as a function of x from xmin to xmax. Plotf1, f2, ... , x, xmin, …xmax plots several functions fi. More
ﻣﺛﺎل ﻟﯾﻛن . f (x) 5x 2x 8x 1ارﺳم اﻟداﻟﺔ ) f(xﻓﻰ اﻟﻔﺗرة ]: [-4,3 2
3
اﻟﺣل: ﺑﻌد ازاﻟﺔ ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ fاذا وﺟـدت ﺛـم ﻧﻌـرف اﻟداﻟـﺔ fﺛـم ﻧﺳـﺗﺧدم اﻻﻣـر Plotﻟرﺳـم اﻟداﻟـﺔ ﻓـﻰ اﻟﻔﺗرة ].[-4,3 ]Clear[f
fx_ : 5x3 2x2 8x 1 ]}Plot[f[x],{x,-4,3
٨٠
15 10 5 3
2
1
-2
-1
-3
-4
-5 -10 -15
Graphics ﯾﻼﺣظ ﻓﻰ اﻟﻣﺛﺎل اﻟﺳﺎﺑق اﻧﻪ ﺗم رﺳم اﻟداﻟﺔ ﺑدون اﺿﺎﻓﺔ اى ﺧﯾﺎرات اﻟﻰ اﻣر اﻟرﺳم وذﻟك ﻟوﺟود اﻟﻌدﯾد ﻣن اﻟﺧﯾﺎرات اﻟﻣﻔﺗرﺿﺔ )اﻟﻔﻌﺎﻟﺔ( Defaultﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ واﻟﺗﻰ ﯾﻘوم اﻟﺑرﻧﺎﻣﺞ ﺑﺗﻧﻔﯾذھﺎ اﺗوﻣﺎﺗﯾك Automaticﻋﻧد ﺑداﯾﺔ اﻟﺗﺷﻐﯾل ﻣﺛل ﺗﺣدﯾد ﻣﻘﯾﺎس رﺳم ﻣﻧﺎﺳب واﺧﺗﯾﺎر اﻟﻣدى ﻟﻠداﻟﺔ ﻣوﺿﻊ اﻻھﺗﻣﺎم وﺗرﻗﯾم اﻟﻣﺣﺎور. اﻻﻣر Plotﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ رﺳم دوال ﻟﮭﺎ ﻧﻘﺎط ﺷﺎذة ﻓﻰ ﻧطﺎق اﻟﺗﻌرﯾف ﺣﯾث ﯾﻘوم اﻟﺑرﻧﺎﻣﺞ ﺑﺎﺧﺗﯾﺎر ﻣﻘﯾﺎس رﺳم ﻣﻧﺎﺳب .
ﻣﺛﺎل ﻟﺗﻛن . f (x) tan xارﺳم اﻟداﻟﺔ ) f(xﻓﻰ اﻟﻔﺗرة ]: [-3,3
اﻟﺣل: ﺑﻌد ازاﻟﺔ ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ fاذا وﺟدت ﻓﺎﻧﻧﺎ ﻧﻌرف اﻟداﻟﺔ fﺛم ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم اﻟداﻟﺔ ﻓﻰ اﻟﻔﺗرة ].[-3,3 ]f[x_]:=Tan[x ]}Plot[f[x],{x,-3,3 40 20
3
2
-1
1 -20 -40
٨١
-2
-3
Graphics
ﻣﺛﺎل
1 ﻟﺗﻛن x
. f (x) sinارﺳم اﻟداﻟﺔ ) f(xﻓﻰ اﻟﻔﺗرة ]: [-1,1
اﻟﺣل: اﻟداﻟﺔ
1 x
f (x) sinﻟﮭﺎ ﻧﻘطﺔ ﺷﺎذة ﻋﻧد x=0وﺳوف ﻧﺷﺎﻫد ﺗوﺿﯾﺢ اﻟرﺳم اﻛﺛر ﺑﺟوار ﻫذﻩ اﻟﻧﻘطﺔ:
1 fx_ : Sin x ]}Plot[f[x],{x,-1,1 1
0.5
1
-0.5
0.5
-1
-0.5
-1
Graphics
ﯾﻣﻛن اﺳﺗﺧدام اﻟﺧﯾﺎر PlotStyleﻣﻊ اﻻﻣر Plotوذﻟك ﻻﺿﺎﻓﺔ ﺧﯾﺎرات اﺧرى ﻟﻠرﺳم . اﻟﺻورة اﻟﻌﺎﻣﺔ ﻟﻠﺧﯾﺎر PlotStyleھﻰ :
PlotStyle Style
ﺣﯾث ﯾﺗم ﺗﺣدﯾد اﻻﺳﻠوب
Style
ﻟرﺳم اﻟداﻟﺔ اﻟﻣوﺟودة ﻓﻰ اﻻﻣر . Plot
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ رﺳم اﻟداﻟﺔ ﻓﻰ اﻟوان ﻣﺧﺗﻠﻔﺔ ﻓﺎن اﻣر اﻟرﺳم ﺳوف ﯾﺻﺑﺢ :
]]Plot[f (x),{x,a,b}, PlotStyle GrayLevel[w ﺣﯾث wرﻗم ﯾﻘﻊ ﺑﯾن ﺻﻔر وواﺣد .اﻟﺧﯾﺎر ] PlotStyle GrayLevel[0ﯾﻣﺛل رﺳم اﺳود واﻟﺧﯾﺎر
]PlotStyle GrayLevel[1
ﯾﻣﺛل رﺳم اﺑﯾض .ﻋﻧد اﺳﺗﺧدام طﺎﺑﻌﺔ ﻣﻠوﻧﺔ ﻓﺎن اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﺳﺗﺧدم :
]]Plot[f (x),{x,a,b},PlotStyle RGBColor[r,g,b ﺣﯾث r,g,bارﻗﺎم ﺑﯾن اﻟﺻﻔر واﻟواﺣد اﻟﺻﺣﯾﺢ .اﻟﺧﯾﺎر ] PlotStyle RGBColor[1,0,0ﯾﻣﺛل اﻟﻠون اﻻﺣﻣر واﻟﺧﯾﺎر:
PlotStyle RGBColor[0,1,0] ٨٢
ﯾﻣﺛل اﻟﻠون اﻻﺧﺿر واﻟﺧﯾﺎر:
]PlotStyle RGBColor[0,0,1 ﯾﻣﺛل اﻟﻠون اﻻزرق.
اﯾﺿﺎ ﯾﺳﺗﺧدم اﻟﺧﯾﺎر ]}PlotStyle Dashing[{n ﻟرﺳم ﻣﻧﺣﻧﻰ ﻣﺗﻘطﻊ ﺑﺎﺟزاء ﻣﺗﻌﺎﻗﺑﺔ طوﻟﻬﺎ nﺣﯾث n ﺗﻤﺜﻞ ﻛﺴﺮ ﻣﻦ اﻟﻌﺮض اﻟﻜﻠﻰ ﻟﻠﺮﺳﻢ. اﻣﺎ اﻟﺧﯾﺎر ]}PlotStyle Dashing[{n1 ,n 2 ,...
ﻓﯾﺳﺗﺧدم ﻟرﺳم ﻣﻧﺣﻧﻰ ﻣﺗﻘطﻊ ﺑﺎﺟزاء ﻣﺗﻌﺎﻗﺑﺔ طوﻟﻬﺎ n1 ,n 2 ,...وﺑﺻورة دورﯾﺔ ﺣﯾث ﻛﻼ ﻣن ni ﯾﻤﺜﻞ ﻛﺴﺮ ﻣﻦ اﻟﻌﺮض اﻟﻜﻠﻰ ﻟﻠﺮﺳﻢ. رﺳم اﻟدوال ﻣﺛل اﻟﺗﻌﺑﯾرات ﯾﻣﻛن اﻋطﺎﺋﻪ اﺳﻣﺎء .وﻫذا ﻟﻪ اﻫﻣﯾﺔ ﺧﺎﺻﺔ ﻋﻧد ﺗﻛرار اﺳﺗدﻋﺎء رﺳوم دوال ﺧﺎﺻﺔ او ﻋﻧدﻣﺎ ﯾﺗم ﻋرض ﻋدة رﺳوﻣﺎت ﻟدوال ﻋﻠﻰ ﻧﻔس اﻟﻣﺣﺎور .وﯾﻘوم اﻟﺑرﻧﺎﻣﺞ ﺑﺣﻔظ اﻟﻣﻌﻠوﻣﺎت اﻟﺧﺎﺻﺔ ﺑﻛل رﺳم ﯾﺗم
ﺗﻧﻔﯾذﻩ ﺑﺣﯾث ﯾﻣﻛن اﻋﺎدة اﻟرﺳم ﻓﻰ اى وﻗت ﺑﻌد ذﻟك ﻣﻊ اﻣﻛﺎﻧﯾﺔ اﺿﺎﻓﺔ ﺑﻌض اﻟﺧﯾﺎرات اﻟﻰ اﻟرﺳم ،ﻛﻣﺎ ﯾﻣﻛن ﻋرض اﻛﺛر ﻣن رﺳم ﻣﻌﺎ وﯾﺗم ذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Show
ﻓﻼﻋﺎدة ﻋرض رﺳﻣﺔ واﺣدة ﻟﻬﺎ اﻻﺳم dd1واﻟﻧﺎﺗﺟﺔ ﻣن اﻻﻣر Plotﻓﺎن ﺻﯾﻐﺔ اﻻﻣر Showﺗﻛون ﻛﺎﻟﺗﺎﻟﻰ : Show[dd1] وﻻﻋﺎدة ﻋرض رﺳم اﻟﻣﻧﺣﻧﯾﺎت d1,d2,...اﻟﻧﺎﺗﺟﺔ ﻣن اﻣر Plotﻣﻌﺎ ﻋﻠﻰ ﻧﻔس اﻟرﺳم ﻓﺎن ﺻﯾﻐﺔ اﻻﻣر Showﺗﻛون ﻛﺎﻟﺗﺎﻟﻰ :
]Show[dd1,dd2,... ﻛﻣﺎ ﻗد ﺗﺣﺗوى ﺻﯾﻐﺔ اﻻﻣر Showﻋﻠﻰ ﺧﯾﺎرات ﻛﻣﺎ ﺳوف ﻧوﺿﺣﻪ ﻓﯾﻣﺎ ﺑﻌد.
ﻣﺛﺎل ارﺳم اﻟدوال اﻟﺗﺎﻟﯾﺔ ﻋﻠﻰ ﻧﻔس اﻟﻣﺣﺎور ﻓﻰ اﻟﻔﺗرة ][-4,2
h(x) 10x 2 3x 8,g(x) 34x 13 اﻟﺣل: اوﻻ ﺳ ـ ـ ـ ـ ـ ـ ــوف ﻧﻌ ـ ـ ـ ـ ـ ـ ــرف h,gﺛ ـ ـ ـ ـ ـ ـ ــم ﻧرﺳ ـ ـ ـ ـ ـ ـ ــم hﻓ ـ ـ ـ ـ ـ ـ ــﻰ اﻟﻔﺗـ ـ ـ ـ ـ ـ ـ ـرة ] [-4,2وﺳ ـ ـ ـ ـ ـ ـ ــوف ﻧﺳ ـ ـ ـ ـ ـ ـ ــﺗﺧدم اﻟﺧﯾ ـ ـ ـ ـ ـ ـ ــﺎر ]} PlotStyleDashing[{0.01ﺑﺣﯾــث ﯾﻛــون ﻣﻧﺣﻧــﻰ hﻣﺗﻘطــﻊ واﻟﻧﺗﯾﺟــﺔ ﺳــوف ﺗوﺿــﻊ ﻓــﻰ اﻻﺳم : rr1
٨٣
Clear[h,g]
hx_ : 10x2 3x 8 g[x_]:=34x+13 rr1=Plot[h[x],{x,-4,2},PlotStyleDashing[{0.01}]] 80
60
40
20
-4
-3
-2
-1
1
2
Graphics tt2 ﻋﻠﻰ اﻟﺮﺳﻤﺔ اﻻوﻟﻰ و اﻻﺳمtt1 [ وﺳوف ﻧطﻠق اﻻﺳم-4,2] ﻣﻌﺎ ﻓﻰ اﻟﻔﺘﺮةg,h ﯾﻠﻰ ذﻟﻚ رﺳﻢ : و ﻓﻰ ﻛل ﺣﺎﻟﺔ ﺳوف ﻧﺳﺗﺧدم اﻟﺧﯾﺎر اﻟﺗﺎﻟﻰ. ﻋﻠﻰ اﻟرﺳﻣﺔ اﻟﺛﺎﻧﯾﺔ DisplayFunctionIdentity وﯾﺟ ب ان ﻧﺗ ذﻛر اﻧ ﮫ ﺑ دونShow وﺳ وف ﻧﺣﺻ ل ﻋﻠ ﻰ اﻟرﺳ ﻣﺗﯾن ﻣﻌ ﺎ ﺑﺎﺳ ﺗﺧدام اﻻﻣ ر.وذﻟك ﻟﻣﻧﻊ ظﮭور اﻟرﺳﻣﺔ اﻟﺧﯾﺎر . ﻓﻠن ﺗظﻬر اى رﺳوﻣﺎتShow ﻓﻰ اﻣرDisplayFunction$DisplayFunction
tt1=Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],DisplayFunctionIdentity]; tt2=Plot[g[x],{x,4,2},PlotStyleGrayLevel[0.4],DisplayFunctionIdentity]; Show[tt1,tt2,DisplayFunction$DisplayFunction] 150 100 50 -4
-3
-2
-1
1 -50 -100 -150
Graphics Graphics ٨٤
2
وﺗﻧﻔﯾ ذهOptions[Plot] اﻟﻘﺎﺋﻣ ﺔ اﻟﻛﺎﻣﻠ ﺔ ﻣ ن اﻟﺧﯾ ﺎرات اﻟﻣﻔﺗرﺿ ﺔ واﻟﻣﺗ وﻓرة ﻟﻠرﺳ م ﯾﻣﻛ ن اﻟﺣﺻ ول ﻋﻠﯾﮭ ﺎ ﺑﻛﺗﺎﺑ ﺔ : ﻛﺎﻟﺗﺎﻟﻰ
Options[Plot] 1 , Axes Automatic, GoldenRatio AxesLabel None, AxesOrigin Automatic, AxesStyle Automatic, Background Automatic, ColorOutput Automatic, Compiled True, DefaultColor Automatic, DefaultFont $DefaultFont, DisplayFunction $DisplayFunction, Epilog , FormatType $FormatType, Frame False, FrameLabel None, FrameStyle Automatic, FrameTicks Automatic, GridLines None, ImageSize Automatic, MaxBend 10., PlotDivision 30., PlotLabel None, PlotPoints 25, PlotRange Automatic, PlotRegion Automatic, PlotStyle Automatic, Prolog , RotateLabel True,
AspectRatio
TextStyle $TextStyle, Ticks Automatic
وﻟﻠﺗﻌرف ﻋﻠﻰ ﺗﻠك اﻟﺧﯾﺎرات ﺳ وف ﻧﺿ ﻊ اﻟﺻ ﯾﻐﺔ اﻟﻌﺎﻣ ﺔ ﻟﻛ ل ﻣ نoptions ﻟﮭﻣﺎ ﺧﯾﺎرات ﻣﺗﻌددةPlot,Show اﻻﻣرﯾن : اﻻﻣرﯾن ﻛﺎﻟﺗﺎﻟﻰ واﻟﺻ ﯾﻐﺔ اﻟﻌﺎﻣ ﺔ
Plot[f[x],{x,a,b},options]
ﻓ ﻰ ﺣﺎﻟ ﺔ وﺟ ود ﺧﯾ ﺎراتPlot اﻟﺻ ﯾﻐﺔ اﻟﻌﺎﻣ ﺔ ﻟﻼﻣ ر : ﻓﻰ ﺣﺎﻟﺔ وﺟود ﺧﯾﺎرات ھﻰShow ﻟﻼﻣر . Show[graphs,options] : وﻓﯾﻣﺎ ﯾﻠﻰ ﺑﻌض ھذه اﻟﺧﯾﺎرات
AspectRatio number
(١)
اﻻﺧﺗﯾ ﺎر. number (ﻋ ن طرﯾ قy ( اﻟﻰ اﻟﻣﺣو اﻟراﺳﻰ)ﻣﺣورxھذا اﻟﺧﯾﺎر ﯾﺣدد اﻟﻧﺳﺑﺔ ﺑﯾن طول اﻟﻣﺣور اﻻﻓﻘﻰ)ﻣﺣور : اﻟﻣﻔﺗرض ھﻧﺎ ھو
. ﻣﻊ اﻟﻌﻠم ان ھذا اﻟﺧﯾﺎر اﻟﻣﻔﺗرض ﻻ ﯾظﮭر
.Pi اى اﻧﮫ ﺛﺎﺑت ﻣﺛل
AspectRatio
1 GoldenRatio
1 GoldenRatio (1 5) 1.61803 2 ٨٥
ﺣﯾث
ﻟرﺳم اﻟدوال اﻟﺗﺎﻟﯾﺔ h(x) 10x 3x 8 , g(x) 34x 13ﻋﻠﻰ اﻟﻔﺗرة 2
] [-4,2واﺳﺗﺧدام اﻟﺧﯾﺎر AspectRatio 1 ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ :
]Clear[h,g
hx_ : 10x2 3x 8 g[x_]:=34x+13 Plot[{h[x],g[x]},{x,4,2},PlotStyle{Dashing[{0.01}],GrayLevel[0.5]}, ]AspectRatio1 y 150
100
50 x 2
0
1
-1
-3
-2
-4
-50
-100
Graphics
وﻓﻰ اﻟﺧﯾﺎر }]PlotStyle{Dashing[{0.01}],GrayLevel[0.5
ﯾﺗم ﺗﺣدﯾد ]} Dashing[{0.01ﻟﻠداﻟﺔ اﻻوﻟﻰ hو] GrayLevel[0.5ﻟﻠداﻟﺔ اﻟﺛﺎﻧﯾﺔ .g واﻟﺻورة اﻟﻌﺎﻣﺔ ﻟﻠﺧﯾﺎر PlotStyleﻫﻰ } PlotStyle {style1,style2,...ﺣﯾث ﯾﺗم ﺗﺣدﯾد اﻻﺳـﺎﻟﯾب style1,style2,...ﻟﻼﺳﺗﺧدام ﺑﺻورة دورﯾﺔ ﻣـﻊ ﻣﻧﺣﻧﯾـﺎت اﻟـدوال اﻟﻣوﺟـودة ﻓـﻰ اﻻﻣـر Plotﻓﻣﻧﺣﻧـﻰ اﻟداﻟـﺔ اﻻوﻟﻰ ﯾرﺳم ﺑﺎﺳﻠوب style1وﻣﻧﺣﻧﻰ اﻟداﻟﺔ اﻟﺛﺎﻧﯾﺔ ﯾرﺳم ﺑﺎﺳﻠوب ...style2اﻟﺦ . )(٢
اﻟﺧﯾ ﺎر }"AxesLabel {"x axis label","y axis label
ووظﯾﻔﺗ ﮫ ﻛﺗﺎﺑ ﺔ
y axis label
ﻋﻠﻰ ﻣﺣور yاى
اﻟﻌﻧوان
x axis label
ﻋﻠﻰ ﻣﺣور xو ﻛﺗﺎﺑﺔ اﻟﻌﻧوان
ﻛﺗﺎﺑﺔ ﻋﻧﺎوﯾن ﻋﻠﻰ اﻟﻣﺣﺎور .اﻟﺧﯾﺎر اﻟﻣﻔﺗرض ھو :
AxesLabel None ﻟرﺳم اﻟداﻟﺔ
اى ﻋدم ﻛﺗﺎﺑﺔ ﻋﻧﺎوﯾن ﻋﻠﻰ اﻟﻣﺣﺎور.
g(x) 10x 2 3x 8
ووﺿﻊ اﻟﻌﻧ وان xﻋﻠ ﻰ اﻟﻣﺣ ور اﻻﻓﻘ ﻰ واﻟﻌﻧ وان yﻋﻠ ﻰ اﻟﻣﺣ ور اﻟراﺳ ﻰ
ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ :
٨٦
hx_ : 10x2 3x 8 Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],AxesLabel{"x","y"}] y 80 60 40 20 x -4 -3 Graphics
-2
-1
1
2
اﻟﺧﯾﺎر اﻟﻣﻔﺗرض ھو ﻋدم ﻋﻣل اطﺎر. ووظﯾﻔﺗﮫ ﻋﻣل اطﺎر ﺣول اﻟرﺳم
Frame True
اﻟﺧﯾﺎر
(٣)
. Frame False : ﻣﻊ ﻋﻣل اطﺎر ﺣول اﻟرﺳم وﻛﺗﺎﺑﺔ ﻋﻧوان ﻟﮭذا اﻻطﺎر ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
g(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
hx_ : 10x2 3x 8 Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],}],AxesLabel{"x","y"}, FrameTrue,FrameLabel->"Gragh"] y 80
Gragh
60 40 20 x 0 -4 -3 Graphics
-2
-1
0
1
2
اﻟﺧﯾﺎر
٨٧
(٤)
AxesOrigin {x coordinate, y coordinate} : ووظﯾﻔﺗﮫ ﺗﺣدﯾد اﻟﻧﻘطﺔ . اى ﺗﺣدﯾد ﻧﻘطﺔ اﻻﺻل، ﻛﻧﻘطﺔ اﺻل : ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
x coordinate, y coordinate
[0,10] وﺟﻌل ﻧﻘطﺔ اﻻﺻلg(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
hx_ : 10x2 3x 8 Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],AxesLabel{"x","y"},AxesOr igin{0,10}] y 80 60 40 20 x -4
-3
-2
-1
1
0
2
Graphics
ووظﯾﻔﺗﮫ ﻋدم ﺗرﻗﯾم اﻟﻣﺣﺎور
Ticks None اﻟﺧﯾﺎر
(٥)
ﻟﺗرﻗﯾم اﻟﻣﺣور اﻻﻓﻘﻰ ﻓﻘط
Ticks {Automatic, None} واﻟﺧﯾﺎر
: اﻣﺎ اﻻﺧﺗﯾﺎر اﻟﻣﻔﺗرض ﻓﮭو. ﻟﺗرﻗﯾم اﻟﻣﺣور اﻟراﺳﻰ ﻓﻘط
Ticks {None,Automatic} واﻟﺧﯾﺎر
. اى ﻋ دم ﺗ رﻗﯾم
Ticks None
Ticks Automatic
ﻣ ﻊ اﺳ ﺗﺧدام اﻟﺧﯾ ﺎر
g(x) 10x 2 3x 8
ﻟرﺳ م اﻟداﻟ ﺔ اﻟﺳ ﺎﺑﻘﺔ : اﻟﻣﺣﺎور ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
Plot[h[x],{x,4,2},PlotStyle{Dashing[{0.01}],GrayLevel[0.5]},AxesLabel {"x","y"},AxesOrigin{0,10},TicksNone]
٨٨
y
x
Graphics
Ticks {None,Automatic} ﻣﻊ اﺳﺗﺧدام اﻟﺧﯾﺎرg(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
: اى ﺗرﻗﯾم اﻟﻣﺣور اﻟراﺳﻰ ﻓﻘط ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
Plot[h[x],{x,4,2},PlotStyle{Dashing[{0.01}],GrayLevel[0.5]},AxesLabel {"x","y"},AxesOrigin{0,10},Ticks{None,Automatic}] y 80 60 40 20 x 0
Graphics
Ticks {Automatic, None} ﻣﻊ اﺳﺗﺧدام اﻟﺧﯾﺎرg(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
: اى ﺗرﻗﯾم اﻟﻣﺣور اﻻﻓﻘﻰ ﻓﻘط ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
Plot[h[x],{x,4,2},PlotStyle{Dashing[{0.01}],GrayLevel[0.5]},AxesLabel {"x","y"},AxesOrigin{0,10},Ticks{Automatic,None}]
٨٩
y
x 2
-1
1
-2
-3
-4
Graphics
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
g(x) 10x 2 3x 8
وﺣذف اﻟﻣﺣﺎور ﻣن ﻋﻠﻰ اﻟرﺳم ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ :
hx_ : 10x2 3x 8 ]Plot[h[x],{x,-4,2},PlotStyleDashing[{0.01}], AxesNone
Graphics
)(٦
اﻟﺧﯾﺎر
"PlotLabel "name ووظﯾﻔﺗﮫ ﻛﺗﺎﺑﺔ اﻟﻌﻧوان
name
ﻋﻠﻰ اﻟرﺳم اى ﻛﺗﺎﺑﺔ ﻋﻧوان ﻋﻠﻰ اﻟرﺳم .اﻻﺧﺗﯾﺎر اﻟﻣﻔﺗرض ھو
PlotLabel None اى ﻋدم ﻛﺗﺎﺑﺔ ﻋﻧوان .
٩٠
: وﻛﺗﺎﺑﺔ اﻟﻌﻧوان ﻋﻠﻰ اﻟرﺳم ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
g(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
Clear[h,g]
hx_ : 10x2 3x 8 g[x_]:=34x+13 Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],AxesLabel{"x","y"},AxesOr igin{0,10},PlotLabel->"adress"] y
adress 80 60 40 20
x -4
-3
-2
-1
1
0
2
Graphics
اﻟﺧﯾﺎر
(٧)
PlotRange {y min imum, y max imum} : ووظﯾﻔﺗﮫ ﺗﺣدﯾد اﻟﻣدى ﻟﻠﻣﺣور اﻟراﺳﻰ ﻓﻰ اﻟرﺳم اﻟﻧﮭﺎﺋﻰ ﻓﻰ اﻟﻔﺗرة
[y minimum, y max imum] اﻟﺧﯾﺎر
(٨)
PlotRange {x minimum, x maximum},{y minimum, y maximum} : ووظﯾﻔﺗﮫ ﺗﺣدﯾد ﻣدى اﻻﺣداﺛﯾﺎت
{x min imum, x max imum},{y minimum, y maximum} . اﻟﺗﻰ ﯾﺗم اﻟﺗﻌﺎﻣل ﻣﻌﮭﺎ ﻓﻰ اﻟرﺳم :اﻟﺧﯾﺎر اﻟﻣﻔﺗرض ھو .
PlotRange Automatic
: وﺗﺣدﯾد ﻣدى اﻟﻣﺣور اﻟراﺳﻰ ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
hx_ : 10x2 3x 8 ٩١
g(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
Plot[h[x],{x,-4,2},PlotRange{20,100},PlotStyleDashing[{0.01}],AxesLabel{"x","y"}, AxesOrigin{0,10}] y 100 80 60 40 20 x -4
-3
-2
-1
1
0
2
-20
Graphics : وﻗﺪ ﺗﻢ اﺳﺘﺨﺪام اﻟﺨﯿﺎر PlotRange{-20,100} و ﻟﺗﺣدﯾد ﻣدى اﻻﺣداﺛﯾﺎت اﻟﺗﻰ ﺳوف ﯾﺗم اﻟﺗﻌﺎﻣل ﻣﻌﻬﺎ ﻓﻰ اﻟرﺳم ﯾﺳﺗﺧدم. ﻟﺗﺣدﯾد اﻟﻣدى ﻟﻠﻣﺣور اﻟراﺳﻰ : اﻟﺧﯾﺎر PlotRange{{-10,6},{-20,100}} Plot[h[x],{x,-4,2},PlotRange{{-10,6},{20,100}},PlotStyleDashing[{0.01}],AxesLabel{"x","y"} ,AxesOrigin{0,10}] y 100 80 60 40 20 x -10
-8
-6
-4
-2
2
0
4
6
-20
Graphics : ﯾﻘوم اﻟﺑرﻧﺎﻣﺞ ﺑﺗﺣدﯾد ﻣدى اﻻﺣداﺛﯾﺎت ﻛﻣﺎ ﯾﻠﻰPlotRangeAll وﻋﻧد اﺳﺗﺧدام اﻟﺧﯾﺎر
٩٢
Plot[h[x],{x,4,2},PlotRangeAll,PlotStyleDashing[{0.01}],AxesLabel {"x","y"},AxesOrigin{0,10}] y 150 125 100 75 50 25 x -4
-3
-2
0
-1
1
2
Graphics
: وﻋﻧد ﻋدم اﺳﺗﺧدام اى ﺧﯾﺎر ﻓﺎن اﻟﺧﯾﺎر اﻟﻣﻔﺗرض ھو
PlotRange Automatic وﺗﻛون اﻟﻧﺗﺎﺋﺞ ﻛﻣﺎ ﯾﻠﻰ Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],AxesLabel{"x","y"},AxesOr igin{0,10}] y 80 60 40 20 x -4
-3
-2
-1
1
0
2
Graphics اﻟﺧﯾ ﺎر.ووظﯾﻔﺗﮫ ﻋﻣل رﺳم ﺷﺑﻛﻰ ﯾﺣﺗوى ﺑداﺧﻠ ﮫ ﻋﻠ ﻰ رﺳ م اﻟداﻟ ﺔ
: ﻣﻊ ﻋﻣل ﺧطوط ﺷﺑﻛﯾﺔ ﻋﻠﻰ اﻟرﺳم ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
Clear[h] ٩٣
GridLines Automatic ( اﻟﺧﯾﺎر٩) . GradLines None اﻟﻣﻔﺗرض ھو h(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
hx_ : 10x2 3x 8 Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],AxesLabel{"x","y"},AxesOr igin{0,10},GridLinesAutomatic] y 80 60 40 20 x -4
-3
-2
-1
1
0
2
Graphics
Background GrayLevel[k] ( اﻟﺧﯾ ﺎر١٠) . Background Automatic اﻟﺧﯾﺎر اﻟﻣﻔﺗرض ھو.ﯾﺗراوح ﺑﯾن ﺻﻔر وواﺣد
k ووظﯾﻔﺗ ﮫ ﺟﻌ ل اﻟﺧﻠﻔﯾ ﺔ ﺑ ﺎﻟﻠون اﻟرﻣ ﺎدى ﺑﻣﺳ ﺗوى ﺗﻠ وﯾن
: ﻣﻊ ﺟﻌل اﻟﺧﻠﻔﯾﺔ ﺑﺎﻟﻠون اﻟرﻣﺎدى ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ
h(x) 10x 2 3x 8
ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
hx_ : 10x2 3x 8 Plot[h[x],{x,4,2},PlotStyleDashing[{0.01}],AxesLabel{"x","y"},AxesOr igin{0,10},PlotLabel->"adress",BackgroundGrayLevel[.5]] y
adress 80 60 40 20
x -4
-3
-2
-1
1
0
2
Graphics
PlotStyle Thickness[m] ( ﯾﺳﺗﺧدم اﻟﺧﯾﺎر١٠) m ﺣﯾثm ﻟرﺳم اﻟﻣﻧﺣﻧﻰ ﺑﺣﯾث ﯾﻛون ﺳﻣك اﻟﺧط اﻟﻣﺳﺗﺧدم ﯾﺳﺎوى ٩٤
ﺗﻣﺛل ﻛﺳر ﻣن اﻟﻌرض اﻟﻛﻠﻰ ﻟﻠرﺳم . ﻟرﺳم اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ
h(x) 10x 2 3x 8
ﻣﻊ ﺟﻌل اﻟﺧط ﺳﻣﯾك اﺳﺗﺧدم اﻟﺧﯾﺎر:
] PlotStyleThickness[.007ﻓﻰ اﻟرﺳﻣﺔ اﻟﺗﺎﻟﯾﺔ .
hx_ : 10x2 3x 8 ]]Plot[h[x],{x,-4,2},PlotStyleThickness[.007 80
60
40
20
2
-1
1
-3
-2
-4
Graphics
وﺑﺻورة ﻋﺎﻣﺔ ﻛل ﺧﯾﺎر ﻟﻠرﺳم ﻟﻪ اﺳم
nameوﯾﺎﺧذ ﻗﯾﻣﺔ Valueوﯾﺗم وﺿﻊ اﻟﺧﯾﺎر Option
داﺧل اﻣر اﻟرﺳم Plotﻓﻰ اﻟﺻورة اﻟﺗﺎﻟﯾﺔ :
Name Value وﯾﻣﻛن وﺿﻊ اﻛﺛر ﻣن ﺧﯾﺎر داﺧل اﻣر Plotﺑﺣﯾث ﯾﻔﺻل ﻛل ﻣﻧﻬﺎ ﻋﻼﻣﺔ اﻟﻔﺎﺻﻠﺔ " ",وﻣن اﻟﻘﯾم Value اﻟﻣﺳﺗﺧدﻣﺔ ﻓﻰ ﺑﻌض ﻫذﻩ اﻟﺧﯾﺎرات :
Automatic
اﻟﺧﯾﺎر اﺗوﻣﺎﺗﯾﻛﻰ وﻓﻘﺎ ﻻﺳﻠوب اﻟﺑرﻧﺎﻣﺞ
All
ﻋﻣل ﻛل ﻣﺎ ﻫو ﻣﺗﺎح ﻣن اﻟﺑرﻧﺎﻣﺞ ﻓﻰ ﻫذا اﻻﺧﺗﯾﺎر
None
ﻋدم اﺳﺗﺧدام ﻣﺎ ﻫو ﻣﺗﺎح ﻣن اﻟﺑرﻧﺎﻣﺞ ﻓﻰ ﻫذا اﻟﺧﯾﺎر
True
ﺗﻧﻔﯾذ اﻟﺧﯾﺎر
False
ﻋدم ﺗﻧﻔﯾذ اﻟﺧﯾﺎر
اﻟﺗﻣﺛﯾل اﻟﺑﯾﺎﻧﻰ ﻟﻌدة دوال ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر Plotﻟﺗﻣﺛﯾل اﻟدوال ) f (x),g(x),h(xﺑﯾﺎﻧﯾﺎ ﻓﻰ اﻟﻔﺗرة : ] [a,bوﻋﻠﻰ ﻧﻔس اﻟﻣﺣﺎور وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر اﻟﺗﺎﻟﻰ :
٩٥
]}Plot[f[x],g[x].h[x],{x,a.b ھذا اﻻﻣر ﯾﻣﻛن ﺗﻌﻣﯾﻣﮫ ﻟﯾﺷﻣل اﻛﺛر ﻣن ﺛﻼث دوال .
ﻣﺛﺎل ارﺳم اﻟدوال اﻟﺗﺎﻟﯾﺔ
f (x) cos[x],g(x) sin(x),h(x) e xﻋﻠﻰ ﻧﻔس اﻟﻧطﺎق ][, ﻋﻠﻰ ﺷﻛل ﺧطوط ﻣﺗﻘطﻌـﺔ وﻣﻧﺣﻧـﻰ ) g(xﻋﻠـﻰ ﺻـورة ﺧطـوط وﻧﻘـط وﻣﻧﺣﻧـﻰ
ﺑﺣﯾث ﯾﻛون ﻣﻧﺣﻧﻰ )f(x ) h(xﺳﻣﯾك.
اﻟﺣل: ]f[x_]:=Cos[x ]g[x_]:=Sin[x
hx_ : x Plot[{f[x],g[x],h[x]},{x,,},PlotStyle{Dashing[{0.01}],Dashing[{0.01,.03,.03}], ]}]Thickness[.007 4 3 2 1
3
2
-1
1
-2
-3
-1
Graphics
ﻣﺛﺎل
ارﺳ م اﻟ دوال اﻟﺗﺎﻟﯾ ﺔ
][0,4
x 2
f (x) sin x , g(x) 2sin x , h(x) sinﻋﻠـ ــﻰ ﻧﻔـ ــس اﻟﻔﺗــ ـرة
ﺑﺣﯾث ﯾﻛون ﻣﻧﺣﻧﻰ ) f(xﻋﻠﻰ ﺷﻛل ﺧطوط ﻣﺗﻘطﻌﺔ وﻣﻧﺣﻧﻰ ) g(xﻋﻠﻰ ﺻورة ﺧطوط وﻧﻘط
٩٦
وﻣﻧﺣﻧــﻰ
3 3 2 2
) h(xﺳــﻣﯾك وﻣــدى اﻟﻣﺣــور اﻟ ارﺳــﻰ ] [ ,وﻗــد اﺳــﺗﺧدم اﻟﺧﯾــﺎر Ticksﺑﺣﯾــث ﯾــﺗم ﺗــرﻗﯾم
اﻟﻣﺣور اﻻﻓﻘﻰ Automaticsو ﺗرﻗﯾم اﻟﻣﺣور اﻟراﺳﻰ ﻋﻧد -1وﻋﻧد 1ﻓﻘط .
اﻟﺣل: ﺳوف ﻧﺳﺗﺧدم اﻟﺧﯾﺎر PlotStyleﺑﺣﯾث ﯾﻛون ﻣﻧﺣﻧﻰ ) Sin(xﻣﺗﻘطﻊ وﻣﻧﺣﻧـﻰ )Sin(2xﻋﻠـﻰ ﺻـورة ﺧطـوط
x ﻣﺗﻘطﻌـ ــﺔ وﻧﻘـ ــط وﻣﻧﺣﻧـ ــﻰ 2
sinﺳـ ــﻣﯾك .اﯾﺿـ ــﺎ اﺳـ ــﺗﺧدم اﻟﺧﯾـ ــﺎر Ticksﻟﺟﻌـ ــل ﺗـ ــرﻗﯾم اﻟﻣﺣـ ــور اﻻﻓﻘـ ــﻰ
Automaticsاﻣﺎ ﺗرﻗﯾم اﻟﻣﺣور اﻟراﺳﻰ ﻓﯾﻛون ﻣن ) .(-1,1ﻛﻣﺎ ﺳوف ﯾﺗم ﺗﺣدﯾد اﻟﻣـدى ﻟﻠﻣﺣـور اﻟ ارﺳـﻰ ﻣـن اﻣر .PlotRange
x PlotSinx, Sin2x, Sin , x, 0, 4, 2 PlotStyle Dashing0.01, Dashing0.01, .03, .03, 3 3 Thickness.007, PlotRange , , Ticks Automatic, 1, 1 2 2 1
12
8
10
6
4
2
-1
Graphics
ﻣﺛﺎل ارﺳم اﻟداﺋرة
x 2 4x y2 2y 4
اﻟﺣل:
٩٧
ﯾﻣﻛن اﻟﺣﺻول ﻋﻠ ﻰ ﻣرﻛ ز centerو radiusﻟﻠ داﺋرة ﻋﻠﻰ اﻟﻣﻌﺎدﻟﺔ
(x 2)2 (y 1)2 32
ھذه اﻟﻣﻌﺎدﻟﺔ ﻓﻰ yﻧﺣﺻل ﻋﻠﻰ
x 2 4x y2 2y 4
ﺑﺎﻛﻣ ﺎل اﻟﻣرﺑ ﻊ واﻟﺣﺻ ول
وﻋﻠﻰ ذﻟك ﻣرﻛز اﻟداﺋرة ھ و ) (2,1و radiusﻟﻠ داﺋرة ھ و 3وﺑﺣ ل
y 1 9 (x 2) 2
وﻋﻠﻰ ذﻟك اﻟداﻟﺔ اﻟﺗﻰ ﺗﺻف اﻟﺟزء اﻟﻌﻠوى ﻣن اﻟداﺋرة
ھﻰ :
y1 1 9 (x 2) 2
واﻟداﻟﺔ اﻟﺗﻰ ﺗﺻف اﻟﺟزء اﻟﺳﻔﻠﻰ ﻣن اﻟداﺋرة ھﻰ:
. y 2 1 9 (x 2) 2ﺳوف ﻧﻌرف y1 , y2 ﻋﻠﻰ اﻟﺗواﻟﻰ .وﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم
اﻻﻣر
y1 , y 2ﻓﻰ اﻟﻔﺗرة ][1,5
ﺗﺣت اﻻﺳ م p1,p2ﻋﻠ ﻰ اﻟﺗ واﻟﻰ .
DisplayFunction Identity
وﺳوف ﻻ ﺗظﮭر اﻟرﺳوﻣﺎت وذﻟك ﺑﺳﺑب اﻟﺧﯾﺎر
Show
ﻛدوال ﺗﺻف اﻟﺟ زء اﻟﻌﻠ وى واﻟﺟ زء اﻟﺳ ﻔﻠﻰ ﻣ ن اﻟ داﺋرة
ﻟﻌرض اﻟرﺳﻣﺗﯾن ﻣﻌﺎ .اﻟﺧﯾﺎر اﻟﻣﻔﺗ رض
1 GoldenRatio
وﺑﻌد ذﻟك ﺳوف ﻧﺳ ﺗﺧدم
AspectRatio ﺳ وف ﯾ ؤدى
اﻟﻰ ان اﻟرﺳم ﻟن ﯾﻛون ﻋﻠﻰ ﺷﻛل داﺋرة ﻛﻣﺎ ﯾﻠﻰ:
]Clear[y1,y2 ; y1 1 9 x 22
; 9 x 22
y2 1
;]p1=Plot[y1,{x,-1,5},DisplayFunctionIdentity ;]p2=Plot[y2,{x,-1,5},DisplayFunctionIdentity ]Show[p1,p2,DisplayFunction$DisplayFunction 4 3 2 1
5
3
4
2
-1
1 -1 -2
Graphics
ﻋﻧد وﺿﻊ اﻟﺧﯾﺎر AspectRatio 1
ﺳوف ﻧﺣﺻل ﻋﻠﻰ ﺷﻛل داﺋرة ﻛﻣﺎ ﯾﻠﻰ : ٩٨
Show[p1,p2,AspectRatio1,DisplayFunction$DisplayFunction ] 4
3
2
1
5
3
4
2
-1
1
-1
-2 Graphics
ﺗﻣﺛﯾل اﻟدوال اﻟﺗﻰ ﻟﻬﺎ اﻛﺛر ﻣن ﻧطﺎق Piecewise-Defined Functions ﯾﻣﻛن ﺗﻌرﯾف ورﺳم اﻟدوال اﻟﺗﻰ ﻟﻬﺎ اﻛﺛر ﻣن ﻧطﺎق ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ .ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ اﻟداﻟﺔ
)f (x
ﺳوف ﺗﻌرف ﻓﻰ ﻧطﺎﻗﯾن .اﻟﺷرط ; /ﯾﻌرف ان اﻟداﻟﺔ ﻟﮭﺎ ﻧطﺎﻗﺎت ﻣﺧﺗﻠﻔﺔ و ﺗﻣﺛل اﻟرﻣز " " و ﺗﻣﺛل اﻟرﻣز
"" ﻣﺛﺎل اذا ﻛﺎﻧت :
x 2 2, x 0 f (x) x 1, x 0
ارﺳم ﻫذﻩ اﻟداﻟﺔ ﻓﻰ اﻟﻔﺗرة ][3,3
.
اﻟﺣل:
٩٩
]Clear[f
fx_ : x2 2 ; x 0 f[x_]:=x-1/;x<0 ]Plot[f[x],{x,-3,3},PlotRange{-2,4},AspectRatio1 4
3
2
1
2
3
-1
1
-3
-2
-1
-2
Graphics
) (٢-٣رﺳوم ﻓﻰ اﻟﺑﻌد اﻟﺛﺎﻟث )اﻟﻔراغ( Three-Dimentional Graphics
ﯾﻣﻛن ﻟﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ رﺳم اﻟداﻟﺔ
x, y
z f (x, y),a x b,c y d
ﺣﯾث zﻣﺗﻐﯾر ﺗﺎﺑﻊ وﻧطﺎق اﻟداﻟﺔ ﯾﻘﻊ ﻓﻰ اﻟﻣﺳﺗوى
ﻓﻰ ﻣﺗﻐﯾرﯾن ﻣﺳﺗﻘﻠﯾن
xyوﯾﻣﺛﻠﮫ ﻣﺟﻣوع اﻟﻧﻘﺎط )(x, y
اﻟﻣﻌرف ﻋﻧدھﺎ
اﻟداﻟﺔ ﺑﯾﻧﻣﺎ اﻟﻣدى ﻟﻠداﻟﺔ ) z f (x, yﯾﻘﻊ ﻋﻠﻰ ﻣﺣور zﻓﻰ اﻟﻔراغ ورﺳم اﻟداﻟﺔ )z f (x, y ﻋن ﺳطﺢ ﻓﻰ اﻟﻔراغ ﯾﻣﺛﻠﮫ ﻣﺟﻣوع اﻟﻧﻘﺎط ) (x, y,zاﻟﺗﻰ ﺗﺣﻘق اﻟﻣﻌﺎدﻟﺔ ) . z f (x, yاﻻﻣر اﻟذى ﯾﺳﺗﺧدم ھو ﻋﺑﺎرة
ﻓﻰ ھذه اﻟﺣﺎﻟﺔ ھو :
]}Plot3D[f[x, y],{x,a,b},{y,c,d ﯾﻣﻛن اﻻﺳﺗﻌﻼم ﻋن اﻟﻌدﯾ د ﻣ ن اﻟﺧﯾ ﺎرات اﻟﺗ ﻰ ﺗ ﺗﺣﻛم ﻓ ﻰ ﺷ ﻛل اﻟرﺳ م ﻓ ﻰ اﻟﻔ راغ ﻟﻼﻣ ر اﻟﻣﻔﺗرﺿﺔ ﻟﻼﻣر
Plot3D
ﺑﺎﺳﺗﺧدام
??Plot3D
Plot3D
وﻛ ذﻟك اﻟﺧﯾ ﺎرات
ﻛﻣﺎ ﺳﺑق ان وﺿﺣﻧﺎ .
??Plot3D
١٠٠
Plot3Df, x, xmin, xmax, y, ymin, ymax generates a threedimensional plot of f as a function of x and y. Plot3Df, s, x, xmin, xmax, y, ymin, ymax generates a threedimensional plot in which the height of the surface is specified by f, and the shading is specified by s. More… AttributesPlot3D HoldAll, Protected
OptionsPlot3D AmbientLight GrayLevel0, AspectRatio Automatic, Axes True, AxesEdge Automatic, AxesLabel None, AxesStyle Automatic, Background Automatic, Boxed True, BoxRatios 1, 1, 0.4, BoxStyle Automatic, ClipFill Automatic, ColorFunction Automatic, ColorFunctionScaling True, ColorOutput Automatic, Compiled True, DefaultColor Automatic, DefaultFont $DefaultFont, DisplayFunction $DisplayFunction, Epilog , FaceGrids None, FormatType $FormatType, HiddenSurface True, ImageSize Automatic, Lighting True, LightSources 1., 0., 1., RGBColor1, 0, 0, 1., 1., 1., RGBColor0, 1, 0, 0., 1., 1., RGBColor0, 0, 1, Mesh True, MeshStyle Automatic, Plot3Matrix Automatic, PlotLabel None, PlotPoints 25, PlotRange Automatic, PlotRegion Automatic, Prolog , Shading True, SphericalRegion False, TextStyle $TextStyle, Ticks Automatic, ViewCenter Automatic, ViewPoint 1.3, 2.4, 2., ViewVertical 0., 0., 1. Options[Plot3D] {AmbientLightGrayLevel[0],AspectRatioAutomatic,AxesTrue,Axe sEdgeAutomatic,AxesLabelNone,AxesStyleAutomatic,Background Automatic,BoxedTrue,BoxRatios{1,1,0.4},BoxStyleAutomatic,Cl ipFillAutomatic,ColorFunctionAutomatic,ColorFunctionScaling ١٠١
True,ColorOutputAutomatic,CompiledTrue,DefaultColorAutomati c,DefaultFont$DefaultFont,DisplayFunction$DisplayFunction,Ep ilog{},FaceGridsNone,FormatType$FormatType,HiddenSurfaceTr ue,ImageSizeAutomatic,LightingTrue,LightSources{{{1.,0.,1.} ,RGBColor[1,0,0]},{{1.,1.,1.},RGBColor[0,1,0]},{{0.,1.,1.},RGB Color[0,0,1]}},MeshTrue,MeshStyleAutomatic,Plot3MatrixAutom atic,PlotLabelNone,PlotPoints25,PlotRangeAutomatic,PlotRegi onAutomatic,Prolog{},ShadingTrue,SphericalRegionFalse,Text Style$TextStyle,TicksAutomatic,ViewCenterAutomatic,ViewPoin t{1.3,-2.4,2.},ViewVertical{0.,0.,1.}}
: ﻛﻣﺎ ﯾﻠﻰ
Plot3D
ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن
١٠٢
Help Browser
ﻛﻣﺎ ﯾﻣﻛن اﺳﺗﺧدام
ﻣﺛﺎل ارﺳــ ـ ـ ـ ـ ـ ـ ــم اﻟداﻟـ ـ ـ ـ ـ ـ ـ ـ ــﺔ f (x, y) x 3x y 5yﻋﻠــ ـ ـ ـ ـ ـ ـ ــﻰ اﻟﻣﻧطﻘـ ـ ـ ـ ـ ـ ـ ـ ــﺔ اﻟﻣﺳــ ـ ـ ـ ـ ـ ـ ــﺗطﯾﻠﺔ اﻟﺷـ ـ ـ ـ ـ ـ ـ ـ ــﻛل 2
2
. 0 x 5, 3 y 4
اﻟﺣل: ﺑﻌــ ـ ـ ــد ﺣــ ـ ـ ــذف ﻛــ ـ ـ ــل اﻟﺗﻌرﯾﻔــ ـ ـ ــﺎت اﻟﺳــ ـ ـ ــﺎﺑﻘﺔ ﻟﻠداﻟــ ـ ـ ــﺔ fاذا وﺟــ ـ ـ ــدت ﻧﺳــ ـ ـ ــﺗﺧدم اﻻﻣــ ـ ـ ــر ) f(x,yﻟرﺳــ ـ ـ ــم fﺣﯾـ ـ ـ ـ ــث . 0 x 5, 3 y 4 ]Clear[f
fx_, y_ : x2 3x y2 5 y ]}Plot3D[f[x,y],{x,0,5},{y,-3,4
30 20 10 0
4 2
0
0
1 2 3
-2 4 5
ﻣﺛﺎل
١٠٣
SurfaceGraphics
x 2 3y 2 cos ارﺳـ ـ ـ ـ ـ ــم اﻟداﻟـ ـ ـ ـ ـ ــﺔ 2 4 . 6 x 6, 3 y 3
x 2 y2 ) 4 2
(
f (x, y) eﻋﻠـ ـ ـ ـ ـ ــﻰ اﻟﻣﻧطﻘـ ـ ـ ـ ـ ــﺔ اﻟﻣﺳـ ـ ـ ـ ـ ــﺗطﯾﻠﺔ اﻟﺷـ ـ ـ ـ ـ ــﻛل
اﻟﺣل: ]Clear[f 2 3 y 4
2 y2 Cos x 2 2
2
fx_, y_ : Exp x4
]}Plot3D[f[x,y],{x,-6,6},{y,-3,3
0.1 0.05 0 -0.05 -0.1
2
0
-5 -2.5 0
-2
2.5 5
SurfaceGraphics ﯾﺘﻀﺢ ﻣﻦ اﻟﺮﺳﻢ اﻟﺴﺎﺑﻖ وﺟﻮد ﻣﺎ ﯾﺴﻤﻰ " ."choppyاﻟﺒﺮﻧﺎﻣﺞ ﺳﻮف ﯾﻌﻤﻞ ﻣﺎ ﯾﺴﻤﻰ " "clipﻟﻠﺠﺰء اﻟﻌﺎﻟﻰ ﺑﺎﺳﺗﺧدام اﻟﺧﯾﺎر :
PlotPoint s n ﻓﻰ اﻻﻣر:
]Plot3D[f[x, y],{x,a,b},{y,c,d},PlotPoint s n او ﯾﺳﺗﺧدم اﻟﺧﯾﺎر اﻟﺗﺎﻟﻰ :
}PlotPoint s {nx,ny وﻋﻠﻰ ذﻟك ﻗﯾﻣﺔ ﻋﺎﻟﯾﺔ ﻣن nاو ) (nx,nyﺗؤدى اﻟﻰ رﺳم ﻧﺎﻋم . ھﻨﺎ ﺳﻮف ﻧﺴﺘﺨﺪم اﻟﺨﯿﺎر: وﻫذا اﻟﺧﯾﺎر ﻻ ﯾﺳﺗﺧدم ﻣﻊ اﻻﻣر .Show
PlotPoint s 30
١٠٤
اﻻﻣر : }ViewPoint{1.679,1.732,2.374 ﯾﺆدى اﻟﻰ ﺗﺤﺪﯾﺪ اﺣﺪاﺛﯿﺎت ﻧﻘﻄﺔ ﻓﻰ اﻟﻔﺮاغ ﯾﺘﻢ اﻟﻨﻈﺮ ﻣﻦ ﻋﻨﺪھﺎ اﻟﻰ اﻟﺴﻄﺢ وھﺬه اﻻﺣﺪاﺛﯿﺎت ﺗﻜﻮن ﺑﺎﻟﻨﺴﺒﺔ اﻟﻰ ﻣﺮﻛﺰ اﻟﺼﻨﺪوق.اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭﺬا اﻻﻣﺮ ھﻮ : }ViewPoint{xv,yv,zv ﻟﺗﺣدﯾد اى ﻧﻘطﺔ) (xv,y v,zvﻓﻰ اﻟﻔراغ . اﻟﺨﯿﺎرات اﻟﺘﺎﻟﯿﺔ :
PlotRange {z min,z max},PlotRange {x min, x max}, PlotRange {ymin, ymax},PlotRange All ﺗﺴﺘﺨﺪم ﻟﺘﺤﺪﯾﺪ ﻣﺪى اﻻﺣﺪاﺛﯿﺎت ﻓﻰ اﻟﺮﺳﻢ واﻟﺨﯿﺎر اﻟﻤﻔﺘﺮض وھﻮ :
PlotRange Automatic ﻓﻰ ﻣﺜﺎﻟﻨﺎ اﺳﺘﺨﺪم اﻟﺨﯿﺎر : PlotRangeAll ﻓﻰ اﻻﻣر اﻟﺗﺎﻟﻰ ﻟﻠﺣﺻول ﻋﻠﻰ اﻟرﺳم اﻟﻣطﻠوب . Plot3D[f[x,y],{x,-6,6},{y,3,3},PlotPoints30,PlotRangeAll,ViewPoint{1.679,1.732,2 ]}.374
1 0.5 0 -5
-2 -2.5 0
0 2.5 2 5
SurfaceGraphics ١٠٥
وﻓﯾﻣﺎ ﯾﻠﻰ ﺑﻌض اﻟﺧﯾﺎرات ووظﯾﻔﺔ ﻛل ﺧﯾﺎر .
اﻟﺨﯿﺎر
وظﯿﻔﺘﮫ ﻛﺘﺎﺑﺔ ﻋﻨﺎوﯾﻦ ﻋﻠﻰ اﻟﻤﺤﺎور
"PlotLabel "Label
ﻛﺘﺎﺑﺔ ﻋﻨﻮان ﻋﻠﻰ اﻟﺮﺳﻢ ﺗﺮﻗﯿﻢ ﻣﺤﺎور اﻻﺣﺪاﺛﯿﺎت
"AxesLabel "z Label "AxesLabel "x","y","z
Ticks None }Ticks {xt, yt,zt
اﻻﺧﺘﯿﺎر اﻟﻔﻌﺎل
AxesLabel None PlotLabel None Ticks Automatic
ﺣﯿﺚ xt, yt,zt ﯾﻤﻜﻦ ان ﺗﺎﺧﺬ اﻟﻘﯿﻢ
None or Automatic Boxed False }BoxeRatios {nx,ny,nz ﺟﻌﻞ اﻟﻨﺴﺒﺔ
nx : ny : nz
ﺑﯿﻦ اطﻮال اوﺟﮫ اﻟﺼﻨﺪوق
HiddenSurface False Mesh False
ClipFill None
رﺳﻢ ﺻﻨﺪوق ﺣﻮل اﻟﺴﻄﺢ ﺗﺤﺪﯾﺪ اﻟﻨﺴﺒﺔ ﺑﯿﻦ اطﻮال اوﺟﮫ اﻟﺼﻨﺪوق ﻓﻰ اﺗﺠﺎه اﻟﻤﺤﺎور x, y,zﻋﻠﻰ اﻟﺘﺮﺗﯿﺐ ﻣﻨﻊ ظﮭﻮر اﻻﺟﺰاء اﻟﺨﻠﻔﯿﺔ ﻣﻦ اﻟﺴﻄﺢ رﺳﻢ ﺷﺒﻜﺔ ﻋﻠﻰ اﻟﺴﻄﺢ ﻓﻰ اﺗﺠﺎه اﻟﻤﺤﺎور x,y ﺗﻮﺿﯿﺢ اﻻﻣﺎﻛﻦ اﻟﺘﻰ ﻋﻨﺪھﺎ ﻗﻄﻊ ﻋﻠﻰ اﻟﺴﻄﺢ وﻓﻘﺎ ﻟﻠﻤﻮاﺻﻔﺎت اﻟﻔﻌﺎﻟﺔ ﻟﻠﺮﺳﻢ
١٠٦
Boxed True }BoxeRatios {6,3,1
HiddenSurface True Mesh True
ClipFill Automatic
ﻣﺛﺎل ﻋﻠـ ـ ــﻰ اﻟﻣﻧطﻘـ ـ ــﺔ اﻟﻣﺳـ ـ ــﺗطﯾﻠﺔ اﻟﺷـ ـ ــﻛلf (x, y) sin(x, y) ﺑﺎﺳـ ـ ــﺗﺧدام اﻟﺧﯾـ ـ ــﺎرات اﻟﺳـ ـ ــﺎﺑﻘﺔ ارﺳـ ـ ــم اﻟداﻟـ ـ ــﺔ . 0 x 4,0 y 4 : اﻟﺨﯿﺎر AxesLabel{"x","y","z"} . ﻋﻠﻰ ﻣﺣﺎور اﻻﺣداﺛﯾﺎتx, y,z ﯾؤدى اﻟﻰ ﻛﺗﺎﺑﺔ اﻟﻌﻧﺎوﯾن aa1=Plot3D[Sin[x y] ,{x,0,4},{y,0,4},AxesLabel{"x","y","z"},DisplayFunction Identity]; : اﻟﺨﯿﺎر
BoxRatios{1,1,1}
. ﯾؤدى اﻟﻰ ﻋرض اﻟﺳطﺢ داﺧل ﺻﻧدوق ﻣﻛﻌب اﻟﺷﻛل aa2=Plot3D[Sin[x y] ,{x,0,4},{y,0,4},AxesLabel{"x","y","z"},PlotRange{.5,.5},BoxRatios{1,1,1},DisplayFunctionIdentity]; : اﻟﺨﯿﺎر Ticks{None,None,Automatic} . ﻓﻘطz ﯾؤدى اﻟﻰ ﺗرﻗﯾم اﻻﺣداﺛﯾﺎت
aa3=Plot3D[Sin[x y] ,{x,0,4},{y,0,4},PlotPoints40,Ticks{None,None,Automatic },DisplayFunctionIdentity]; : اﻟﺨﯿﺎر
BoxedFalse
١٠٧
.ﯾؤدى اﻟﻰ ﻋرض اﻟﺳطﺢ ﻓﻘط ﺑدون ﺻﻧدوق ﻣن ﺣوﻟﻪ
aa4=Plot3D[Sin[x y] ,{x,0,4},{y,0,4},PlotPoints40,BoxedFalse,DisplayFunctio nIdentity]; Show[GraphicsArray[{{aa1,aa2},{aa3,aa4}}]] y 34 2
1 0. z5 - 0. 50 -1 0
1 0 .5 0 0 .2 5 z 0 -0 .2 5 -0 .5 0 1 x2
4 1
3 2 y x2
1 3
4 0
1 0. 5 -0 .50 -1 0
1 0. 5 0 - 0. 5 -1
3
4
4 3 1
2 2
1 3
4 0
GraphicsArray
ﻣﺛﺎل ﻋﻠـ ـ ـ ــﻰ اﻟﻣﻧطﻘـ ـ ـ ــﺔ اﻟﻣﺳـ ـ ـ ــﺗطﯾﻠﺔ اﻟﺷـ ـ ـ ــﻛلf (x, y) e
x 2 y2 ( ) 2 3
x 2 4y2 Cos ( ) ارﺳـ ـ ـ ــم اﻟداﻟـ ـ ـ ــﺔ 4 2 . 0 x 5, 3 y 4 : اﻟﺣل
Clear[f]
x2
fx_, y_ : Exp
4
y2 x2 4 y2 Cos 2 2 4
Plot3D[f[x,y],{x,-6,6},{y,3,3},PlotPoints30,PlotRangeAll,BoxRatios{6,3,1},ViewPo int{1.679,1.732,2.374},BoxedFalse,AxesAutomatic];
١٠٨
-5 1 0.5 0
-2.5 0 -2 2.5
0 2
5
ﻣﺛﺎل . 0 x 2 ,0 y 4 ﻋﻠﻰ اﻟﻣﻧطﻘﺔ اﻟﻣﺳﺗطﯾﻠﺔ اﻟﺷﻛلf (x, y) e
cos y
sin x ارﺳم اﻟداﻟﺔ :اﻟﺣل : اﻟﺨﯿﺎر
LightingFalse
.ﯾﺆدى اﻟﻰ ظﮭﻮر اﻟﺮﺳﻢ ﺑﻠﻮن اﺑﯿﺾ و اﺳﻮد aa1=Plot3D[Sin[x] Exp[Cos[y]],{x,0,2},{y,0,4},PlotPoints30,BoxRatios{6, 3,1},TicksNone,LightingFalse,DisplayFunctionIdentity]; : اﻟﺨﯿﺎر ShadingFalse .ﯾﺆدى اﻟﻰ ﻋدم ﺗﻈﻠﯿﻞ اﻟﺮﺳﻢ
١٠٩
aa2=Plot3D[Sin[x] Exp[Cos[y]],{x,0,2},{y,0,4},PlotPoints30,BoxRatios{6, 3,1},TicksNone,ShadingFalse,DisplayFunctionIdentity]; : اﻟﺨﯿﺎر
RGBColor[1,0,0] .ﯾﺆدى اﻟﻰ ظﮭﻮر اﻟﻠﻮن اﻻﺣﻤﺮ ﻋﻠﻰ اﻟﺮﺳﻢ
aa3=Plot3D[{Sin[x] Exp[Cos[y]],RGBColor[1,0,0]},{x,0,2},{y,0,4},PlotPoints 30,TicksNone ,DisplayFunctionIdentity]; : اﻟﺨﯿﺎر RGBColor[1,Abs[Sin[x]Cos[y]],0] .ﯾﺆدى اﻟﻰ ظﮭﻮر ظﻼل ﻣﺧﺗﻠﻔﺔ ﻣن اﻟﻠﻮن اﻻﺧﻀﺮ ﻋﻠﻰ اﻟﺮﺳﻢ ﻣﻊ اﻟﻠون اﻻﺣﻣر
aa4=Plot3D[{Sin[x] Exp[Cos[y]],RGBColor[1,Abs[Sin[x]Cos[y]],0]},{x,0,2},{y, 0,4},PlotPoints30,TicksNone,DisplayFunctionIdentity ]; Show[GraphicsArray[{{aa1,aa2},{aa3,aa4}}]]
١١٠
GraphicsArray
ﻣﺛﺎل ارﺳم اﻟداﻟﺔ ) f (x, y) sin(xyﻋﻠﻰ اﻟﻣﻧطﻘﺔ اﻟﻣﺳﺗطﯾﻠﺔ اﻟﺷﻛل . 0 x 4 ,0 y 4
اﻟﺣل: اﻟﺨﯿﺎر : MeshFalse ﯾﺆدى اﻟﻰ ﻋﺪم ظﮭﻮر ﺷﺒﻜﺔ ﻋﻠﻰ اﻟﺮﺳﻢ. اﻟﺨﯿﺎر اﻟﻤﻔﺘﺮض MeshTrue ﯾﺆدى اﻟﻰ ظﮭﻮر ﺷﺒﻜﺔ ﻋﻠﻰ اﻟﺮﺳﻢ.
aa1=Plot3D[Sin[x ;]y],{x,0,4},{y,0,4},MeshFalse,DisplayFunctionIdentity اﻟﺨﯿﺎر : ShadingFalse ﯾﺆدى اﻟﻰ ﻋﺪم ﺗﻈﻠﯿﻞ اﻟﻤﺮﺑﻌﺎت ﻋﻠﻰ اﻟﺮﺳﻢ. اﻟﺨﯿﺎر اﻟﻤﻔﺘﺮض ShadingTrue ﯾﺆدى اﻟﻰ ﺗﻈﻠﯿﻞ اﻟﻤﺮﺑﻌﺎت ﻋﻠﻰ اﻟﺮﺳﻢ. aa2=Plot3D[Sin[x y],{x,0,4},{y,0,4},ShadingFalse,DisplayFunctionIdentity ;] اﻟﺨﯿﺎر :
ClipFillNone. ﯾؤدى اﻟﻰ ﻋرض اﻟﺳطﺢ ﺑﺣﯾث ﺗﺗرك اﻻﺟزاء اﻟﻣﻘطوﻋﺔ واﺿﺣﺔ ﺑدون ﺗظﻠﯾل اﻟﺨﯿﺎر اﻟﻤﻔﺘﺮض :
١١١
ClipFillAutomatic
aa3=Plot3D[Sin[x y],{x,0,4},{y,0,4},PlotRange{-.5,.5}, ,DisplayFunctionIdentity]; : اﻟﺨﯿﺎر
ClipFillGrayLevel[1] .ﯾﺆدى اﻟﻰ ظﮭﻮراﻻﺟﺰاء اﻟﻤﻘﻄﻮﻋﺔ ﻟﻠﺴﻄﺢ ﺑﺎﻟﻠﻮن اﻟﺮﻣﺎدى aa4=Plot3D[Sin[x y],{x,0,4},{y,0,4},PlotRange{.5,.5},ClipFillGrayLevel[1],DisplayFunctionIdentity];
: اﻟﺨﯿﺎر ClipFill{GrayLevel[0],GrayLevel[1]} . ﯾﺆدى اﻟﻰ ظﮭﻮراﻻﺟﺰاء اﻟﻤﻘﻄﻮﻋﺔ ﻟﻠﺴﻄﺢ ﻣﻦ اﻋﻠﻰ ﺑﺎﻟﻠﻮن اﻻﺑﯿﺾ وﻣﻦ اﺳﻔﻞ ﺑﺎﻟﻠﻮن اﻻﺳﻮد aa5=Plot3D[Sin[x y],{x,0,4},{y,0,4} ,ClipFill{GrayLevel[0],GrayLevel[1]},DisplayFunctionIde ntity]; : اﻟﺨﯿﺎر GrayLevel[1],GrayLevel[0] . ﯾﺆدى اﻟﻰ ظﮭﻮراﻻﺟﺰاء اﻟﻤﻘﻄﻮﻋﺔ ﻟﻠﺴﻄﺢ ﻣﻦ اﻋﻠﻰ ﺑﺎﻟﻠﻮن اﻻﺳﻮد وﻣﻦ اﺳﻔﻞ ﺑﺎﻟﻠﻮن اﻻﺑﯿﺾ
aa6=Plot3D[Sin[x y],{x,0,4},{y,0,4} ,ClipFill{GrayLevel[1],GrayLevel[0]},DisplayFunctionIdentity];
: اﻻﻣﺮ اﻟﺘﺎﻟﻰ ﯾﺆدى اﻟﻰ ﺗﻈﻠﯿﻞ اﻟﺴﻄﺢ وﻓﻘﺎ ﻟﻠﻤﻌﺎدﻟﺔ GrayLevel[(x+y)/8 aa7=Plot3D[{Sin[x y],GrayLevel[(x+y)/8]},{x,0,4},{y,0,4},DisplayFunctionId entity]; : اﻻﻣﺮ اﻟﺘﺎﻟﻰ ﯾﺆدى اﻟﻰ ﺗﻈﻠﯿﻞ اﻟﺴﻄﺢ وﻓﻘﺎ ﻟﻠﺪاﻟﺔ GrayLevel [Abs[y]/5]
١١٢
aa8=Plot3D[{Sin[x y],GrayLevel[Abs[y]/5]},{x,0,4},{y,0,4},DisplayFunctionI dentity]; : اﻻﻣﺮ اﻟﺘﺎﻟﻰ ﯾﺆدى اﻟﻰ ﺗﻈﻠﯿﻞ اﻟﺴﻄﺢ وﻓﻘﺎ ﻟﻠﺪاﻟﺔ GrayLevel [Abs[x]/5]
aa9=Plot3D[{Sin[x y],GrayLevel[Abs[x]/5]},{x,0,4},{y,0,4},DisplayFunctionI dentity]; Show[GraphicsArray[{{aa1,aa2,aa3},{aa4,aa5,aa6},{aa4,aa5, aa6}}]]
1 0.50 -0.5 -1 0
4 3 2 1
0.5 0.25 0 -0.25 -0.5 0 1
0.5 0.25 0 -0.25 -0.5 0 1
2
2
2
1 0.50 -0.5 -1 0
1 3
0.51 0 -0.5 -1 0
40
0.51 0 -0.5 -1 0
2
1 3
2 1
2
1 3
2 2
1 3
4 3 2 2
0.51 0 -0.5 -1 0
40
0.51 0 -0.5 -1 0
1 3
40
4 3 2 1
2
40
4 3 1
0.5 0.250 -0.25 -0.5 0 1
40
4 3
40
4 3 2 1 3
2 1
40
4 3 2 1 3
4 3
1 3
40
4 3 2 1
2
1 3
40
GraphicsArray
رﺳم ﻣﻧﺣﻧﯾﺎت اﻟﻣﺳﺗوى ﻟدوال ﻓﻰ ﻣﺗﻐﯾرﯾن f(x,y)=C ﺗﺣﻘق اﻟﻣﻌﺎدﻟﺔxy ﻫﻰ ﻣﻧﺣﻧﯾﺎت ﻓﻰ اﻟﻣﺳﺗوىf(x,y) ﻟﻠداﻟﺔCurves Level ﻣﻧﺣﻧﯾﺎت اﻟﻣﺳﺗوى . ﺛﺎﺑتC ﺣﯾث ﻣﻧﺣﻧﯾﺎت اﻟﻣﺳﺗوى ﺗﺳﻣﻰ اﯾﺿﺎ ﺧرﯾطﺔ ﻟﻣﻘﺎطﻊ اﻟﺳطﺢ ﺑطرﯾﻘﺔ ﺧطوط اﻟﻛوﻧﺗور
١١٣
: ﯾﻘدم ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻋدة رﺳوم ﻟﻣﻧﺣﻧﯾﺎت ﻣﺳﺗوى ﻟﻠداﻟﺔ
f (x, y),a x b,c y d . ContourPlot[f[x, y],{x,a,b},{y,c,d}] وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر : ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﻛﺎﻟﺗﺎﻟﻰ
ContourPlot اﻟﻣﻌﻠوﻣﺎت ﻋن
??ContourPlot
ContourPlotf, x, xmin, xmax, y, ymin, ymax generates a contour plo
AxesOrigin Automatic,AxesStyle Automatic,Background Automatic, Automatic,Compiled True,ContourLines True,Contours 10, ContourShading True, omatic,DefaultFont $DefaultFont,DisplayFunction $DisplayFunction,Epilog , Automatic,FrameTicks Automatic,ImageSize Automatic,PlotLabel None, ,RotateLabel True,TextStyle $TextStyle, Ticks Automatic Options[ContourPlot] {AspectRatio1,AxesFalse,AxesLabelNone,AxesOriginAutomatic, AxesStyleAutomatic,BackgroundAutomatic,ColorFunctionAutomat ic,ColorFunctionScalingTrue,ColorOutputAutomatic,CompiledTr ue,ContourLinesTrue,Contours10,ContourShadingTrue,ContourSm oothingTrue,ContourStyleAutomatic,DefaultColorAutomatic,Def aultFont$DefaultFont,DisplayFunction$DisplayFunction,Epilog {},FormatType$FormatType,FrameTrue,FrameLabelNone,FrameStyl eAutomatic,FrameTicksAutomatic,ImageSizeAutomatic,PlotLabel None,PlotPoints25,PlotRangeAutomatic,PlotRegionAutomatic,P rolog{},RotateLabelTrue,TextStyle$TextStyle,TicksAutomatic }
: ﺗظﻠل اﻻ ﻋﻧد اﺳﺗﺧدام اﻟﺧﯾﺎرContourPlot ﻛل
ContourShading False
ﻣﺛﺎل : ارﺳم ﻋدة ﻣﻧﺣﻧﯾﺎت ﻣﺳﺗوى ﻟﻠداﻟﺔ ١١٤
f (x, y) xsiny ysin x وذﻟك ﻓﻰ اﻟﻣﻧطﻘﺔ 0 x 5,0 y 5 اﻟﺣل: ﺳـ ـ ـ ـ ــوف ﻧﺳـ ـ ـ ـ ــﺗﺧدم اﻻﻣـ ـ ـ ـ ــر ContourPlotوذﻟـ ـ ـ ـ ــك ﻟﺗوﻟﯾـ ـ ـ ـ ــد ﻣﻧﺣﻧﯾـ ـ ـ ـ ــﺎت ﻣﺳـ ـ ـ ـ ــﺗوى ﻟﻠداﻟـ ـ ـ ـ ــﺔ . fاﻟﺧﯾـ ـ ـ ـ ــﺎر PlotPoint s 60ﺳوف ﯾﺳﺗﺧدم ﻟﻠﺣﺻول ﻋﻠﻰ 60ﻧﻘطﺔ ﻋﯾﻧﺔ ﻟﻠرﺳم ﻓﻰ اﻻﺗﺟﺎﻫﯾن .x,y ]f[x_,y_]:=x Sin[y]+y Sin[x ]ContourPlot[f[x,y],{x,0,5},{y,0,5},PlotPoints60 15
12.5
10
7.5
5
2.5
0 15
12.5
10
5
7.5
0
2.5
ContourGraphics
اﻻن ﺳــوف ﻧﺿــﯾف اﻟﺧﯾــﺎر Contours 20ﻟﻠﻣﺛــﺎل اﻟﺳــﺎﺑق واﻟــذى ﯾــؤدى اﻟــﻰ اﻟﺣﺻــول ﻋﻠــﻰ 20 ) contourﻛوﻧﺗور( .اﻟﺧﯾﺎر ContoursShading Falseﺳوف ﯾؤدى اﻟﻰ ﻋدم ﺗظﻠﯾل اﻟرﺳم.اﻟﺧﯾﺎر Axes Automaticﺳوف ﯾؤدى اﻟﻰ وﺟـود اﻟﻣﺣـﺎور .اﻟﺧﯾـﺎر Frame Falseﺳـوف ﯾـؤدى اﻟـﻰ ﻋدم وﺟود اطﺎر ﻟﻠرﺳـم .اﻟﺧﯾـﺎر } AxesOriginal {0,0ﯾﺟﻌـل ﺗﻘـﺎطﻊ اﻟﻣﺣـﺎور ﻋﻧـد ). (0,0اﻟﺧﯾـﺎر PlotPoint s 120ﯾؤدى اﻟﻰ ان ﻋدد ﻧﻘﺎط اﻟﻌﯾﻧﺔ 120ﻓﻰ اﻻﺗﺟﺎﻫﯾن .x,y ]Clear[f ]f[x_,y_]:=x Sin[y]+y Sin[x ContourPlot[f[x,y],{x,0,5},{y,0,5},PlotPoints120,Conto ١١٥
urShadingFalse,Axes>Automatic,AxesOrigin{0,0},FrameFalse,Contours20] 15
12.5
10
7.5
5
2.5
2.5
5
7.5
10
12.5
15
ContourGraphics
ﻣﺛﺎل : ارﺳم ﻋدة ﻣﻧﺣﻧﯾﺎت ﻣﺳﺗوى ﻟﻠداﻟﺔ
f (x, y) x 2 4x y 2 2y 5 2 x 6, 3 y 5 وذﻟك ﻓﻰ اﻟﻣﻧطﻘﺔ :اﻟﺣل اﻟﺧﯾﺎر. f وذﻟك ﻟﺗوﻟﯾد ﻋدة ﻣﻧﺣﻧﯾﺎت ﻣﺳﺗوى ﻟﻠداﻟﺔContourPlot ﺳوف ﻧﺳﺗﺧدم اﻻﻣر وذﻟك ﻻﯾﺟﺎد اﻟرﺳمx,y ﻧﻘطﺔ ﻋﯾﻧﺔ ﻓﻰ اﻻﺗﺟﺎﻫﯾن60 ﺳوف ﯾﺳﺗﺧدم ﻟﻠﺣﺻول ﻋﻠﻰ
Clear[f]
fx_, y_ : x2 4x y2 2 y 5 ContourPlot[f[x,y],{x,-2,6},{y,3,5},PlotPoints60,ContourShadingFalse]
١١٦
PlotPoint s 60
4
2
0
-2
4
6
2
-2 0 ContourGraphics
ﻣﺛﺎل ارﺳم ة اﻟداﺋرة :
x 2 4x y2 2y 5 9 وذﻟك ﻓﻰ اﻟﻣﻧطﻘﺔ 2 x 6, 3 y 5 اﻟﺣل:
ﻟرﺳم اﻟداﺋرة x 2 4x y2 2y 5 9واﻟﺗﻰ ﻫﻰ ﻧﻔس اﻟداﺋرة (x 2)2 (y 2)2 32 اى ان رﺳم x 4x y 2y 5 9ﯾﻣﺛل ﻣﻧﺣﻧﻰ اﻟﻣﺳﺗوى ﻟﻠداﻟﺔ ) f (x, yواﻟﻣﻘﺎﺑل اﻟﻰ 9اى 2
2
. f (x, y) 9 ﺳوف ﻧﺳﺗﺧدم اﻻﻣر ContourPlotوذﻟك ﻟرﺳم اﻟﻣﻧﺣﻧﻰ اﻟﺧﺎص وذﻟك ﺑﺎﺳﺗﺧدام اﻟﺧﯾﺎر
}Contour {9
واﻟذى ﯾﺣدد ان اﻟﻛوﻧﺗور ﯾﻘﺎﺑل 9
]Clear[f ١١٧
fx_, y_ : x2 4x y2 2 y 5 ContourPlot[f[x,y],{x,-2,6},{y,3,5},PlotPoints120,ContourShadingFalse,Axes>Automatic,AxesOrigin{0,0},FrameFalse,Contours{9}]
4
2
-2
2
4
6
-2
ContourGraphics ﺳوف ﻧﺳﺗﺧدم اﻟﺧﯾﺎر
Contours9 .( ﻛﻧﺗورات9) ﻣﻧﺣﻧﯾﺎت ﻣﺳﺗوى9 ﺣﯾث ﯾؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ واﻟذى ﯾﺧﺗﻠف ﻋن اﻟﺧﯾﺎر
اﻟﺴﺎﺑﻖContours{9 } .( واﺣد )ﻛﻧﺗور واﺣدﻣﻧﺣﻧﻰ ﻣﺳﺗوى واﻟذى ادى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ
ContourPlot[f[x,y],{x,-2,6},{y,3,5},PlotPoints120,ContourShadingFalse,Axes>Automatic,AxesOrigin{0,0},FrameFalse,Contours9]
١١٨
4
2
-2
2
4
6
-2
ContourGraphics : ﺑﺎﺳﺗﺧدام اﻟﺧﯾﺎر اﻟﺗﺎﻟﻰ 4,9,16,25 ﻧﺣﺻل ﻋﻠﻰ ﻛﻧﺗورات ﺗﺧص Contour {4,9,16,25}
Clear[f]
fx_, y_ : x2 4x y2 2 y 5 ContourPlot[f[x,y],{x,-2,6},{y,3,5},PlotPoints120,ContourShadingFalse,Axes>Automatic,AxesOrigin{0,0},FrameFalse,Contours{4,9,16, 24}]
ﻣﺛﺎل ﺛم ارﺳم ﻋدة ﻣﻧﺣﻧﯾﺎت ﻣﺳﺗوى ﻟﻬذﻩ اﻟداﻟﺔf ارﺳم اﻟداﻟﺔ
x 2 y2 f (x, y) 2 x y2 2 x 2, 2 y 2 وذﻟك ﻓﻰ اﻟﻣﻧطﻘﺔ ١١٩
اﻟﺣل:
ﻓﻰ اﻟرﺳم اﻟﺗﺎﻟﻰ ﻓﺎن ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻻ ﯾﺳﺗطﯾﻊ ﺣﺳﺎب ) f (0,0وﻣﻊ ذﻟك ﻟم ﺗظﻬر رﺳﺎﻟﺔ ﺧطﺎ ﺑﺎﻟرﻏم ﻣن
ﻣﻦ ان اﻟﺪاﻟﺔ ﻏﯿﺮ ﻣﻌﺮﻓﺔ ﻋﻨﺪx=0,y=0 ]Clear[f
x2 y2 x2 y2
fx_, y_ :
aa1=Plot3D[f[x,y],{x,-2,2},{y,2,2},PlotPoints30,ShadingFalse,DisplayFunctionIdentity ] SurfaceGraphics aa2=ContourPlot[f[x,y],{x,-2,2},{y,2,2},FrameFalse,Axes>Automatic,AxesOrigin{0,0},PlotRange{1,1},PlotPoints60,ContourShadingFalse,DisplayFunctionIde ]ntity ContourGraphics ]]}Show[GraphicsArray[{aa1,aa2 2 1 2 2
-1
1
-2
-1 -2
1 0 -1 -2 2
1
0
-1
1 0.5 -0.50 -1 -2
GraphicsArray
) ( ١-٣رﺳم اﻟدوال اﻟﺑﺎراﻣﺗرﯾﺔ Parametric Plots ﻟﻠﺗﺑﺳﯾط ﺳوف ﻧوﺿﺢ رﺳم اﻟدوال اﻟﺑﺎراﻣﺗرﯾﺔ .اذا ﻛﺎن داﻟﺔ ) f(xوﺣﯾدة اﻟﻘﯾﻣﺔ ﻓﺎن اﻟﻣﻌﺎدﻻت اﻟﺗﻰ ﻋﻠﻰ اﻟﺻورة)y=f(x ﺗﺻف ﻣﻧﺣﻧﯾﺎت ﻓﻰ اﻟﻣﺳﺗوى ﯾﻘطﻌﮭﺎ اى ﺧط راﺳﻰ ﻣرة واﺣدة ﻓﻘط ﻓ ﻰ ﻧط ﺎق اﻟﺗﻌرﯾ ف ،واﻻﺣ داﺛﻰ yﻟﻛ ل ﻧﻘط ﺔ ﯾﻛ ون داﻟﺔ ﻓﻰ اﻻﺣداﺛﻰ xوﻟﻛن ﺗوﺟد ﻣﻧﺣﻧﯾﺎت اﻛﺛر ﺗﻌﻘﯾدا ﺗﺿﺎﻋف ﻧﻔﺳﮭﺎ وﻣﺛل ھذه اﻟﻣﻧﺣﻧﯾﺎت ﯾﻣﻛن دراﺳ ﺗﮭﺎ ﺑﺳ ﮭوﻟﺔ ﺑﺎﺳ ﺗﺧدام اﻟﺻورة اﻟﺑﺎراﻣﺗرﯾﺔ وﯾﺗم ذﻟك ﺑﺟﻌل اﻟﻣﺗﻐﯾرات x,yدوال ﻓﻰ ﻣﺗﻐﯾر اﺧر tﻣﺛل) y=h(t) ,x=g(tوﻛل ﻗﯾﻣ ﺔ ﻟﻠﻣﺗﻐﯾ ر tﺗﻌ ﯾن ﻗﯾﻣﺔ ﻟﻠﻣﺗﻐﯾرات x,yﯾﻣﻛن اﻋﺗﺑﺎرھﺎ اﺣداﺛﯾﺎت ﻧﻘطﺔ ﻓﻰ اﻟﻣﺳﺗوى . xyﻓﺋﺔ ﺟﻣﯾﻊ اﻟﻧﻘط )) (g(t),h(tﺗﻛون ﻣﻧﺣﻧﻰ واﻟﻣﻌﺎدﻟﺗﺎن ) y=h(t) ,x=g(tﺗﺳﻣﯾﺎت اﻟﻣﻌﺎدﻻت اﻟﺑﺎراﻣﺗرﯾﺗﺎن ﻟﻠﻣﻧﺣﻧﻰ واﻟﻣﺗﻐﯾر tﯾﺳﻣﻰ ﺑﺎراﻣﺗر .اﻻﻣر اﻟذى ﯾﺳﺗﺧدم ﻓﻰ اﻟرﺳ م ھﻧ ﺎ ھو :
ParametricPlot[{x[t], y[t]},{t,a, b} : ContourGraphics
١٢٠
ﻣﺛﺎل ارﺳم اﻟﻣﻧﺣﻧﻰ اﻟذى ﻣﻌﺎدﻻﺗﺔ اﻟﺑﺎراﻣﺗرﯾﺗﺎن
x t 2 1, y t, 3 t 3 اﻟﺣل: ParametricPlott2 1, t, t, 3, 3 3 2 1
8
4
6
2 -1 -2 -3 Graphics
اﻻن ﺳ وف ﻧوﺿ ﺢ اﻟرﺳ م اذا ﻛﺎﻧ ت ﻟ دﯾﻧﺎ اﻟداﻟ ﺔ )z f (x, y
اى داﻟ ﺔ ﻓ ﻰ ﻣﺗﻐﯾ رﯾن .ﯾﻣﻛ ن دراﺳ ﺗﮭﺎ ﺑﺳ ﮭوﻟﺔ
ﺑﺎﺳ ﺗﺧدام اﻟﺻ ورة اﻟﺑﺎراﻣﺗرﯾ ﺔ وﯾ ﺗم ذﻟ ك ﺑﺟﻌ ل اﻟﻣﺗﻐﯾ رات x, y,zدوال ﻓ ﻰ ﻣﺗﻐﯾ ر اﺧ ر tﺣﯾ ث
) x g(t), y h(t),z w(tوﻛل ﻗﯾﻣﺔ ﻟﻠﻣﺗﻐﯾ ر tﺗﻌ ﯾن ﻗﯾﻣ ﺔ ﻟﻠﻣﺗﻐﯾ رات x, y,z اﻟرﺳم ھﻧﺎ ھو :
ParametricPlot3D[{x[t], y[t], z(t)},{t,a, b} :
ﻣﺛﺎل ارﺳم :
x cos 2t y sin 2t ,0 t 8 t z 5 ١٢١
واﻻﻣ ر اﻟ ذى ﯾﺳ ﺗﺧدم ﻓ ﻰ
:و
x t cos 2t y tsin 2t ,0 t 8 t z 5 .ﻣﻌﺎ
:اﻟﺣل
t , t, 0, 8 5 , PlotPoints 120, Ticks None, DisplayFunction Identity
aa1 ParametricPlot3DCos2t, Sin2t, Graphics3D
t , t, 0, 8 5 , PlotPoints 120, Ticks None, DisplayFunction Identity
aa2 ParametricPlot3Dt Cos2t, t Sin2t, Graphics3D Show[GraphicsArray[{aa1,aa2}]]
GraphicsArray
١٢٢
اﻟﻔﺻل اﻟراﺑﻊ
ﻣواﺿﯾﻊ ﻓﻰ اﻟﺟﺑر
١٢٣
) ( ١-٤اﻟﻌﻣﻠﯾﺎت اﻟﺟﺑرﯾﺔ ﻋﻠﻰ اﻟﺗﻌﺑﯾرات ﻓﻰ ﻫذا اﻟﺑﻧـد ﯾﺗﻧـﺎول ﺑرﻧـﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛـﺎ اﻟﻌﻣﻠﯾـﺎت اﻟﺟﺑرﯾـﺔ اﻟﻘﯾﺎﺳـﯾﺔ اﻟﺗـﻰ ﺗﺟـرى ﻋﻠـﻰ اﻟﺗﻌﺑﯾـرات اﻟرﯾﺎﺿـﯾﺔ .ﻋﻠـﻰ ﺳﺑﯾل اﻟﻣﺛﺎل : اﻻﻣـر
] Factor[expressionﯾﻘـوم ﺑﺗﺣﻠﯾـل اﻟﺗﻌﺑﯾـر .اﻟﺗﻌﺑﯾـر expressionﻗـد ﯾﻛـون ﻛﺛﯾـرة اﻟﺣـدود وﯾﻘـوم
اﻻﻣر ﺑﺗﺣﻠﯾﻠﺔ اﻟﻰ ﻗوى ﺻﺣﯾﺣﺔ. اﻻﻣــر ] Expand[expressionﯾﻘــوم ﺑﺎﯾﺟــﺎد ﻣﻔﻛــوك ﺣﺎﺻ ـل اﻟﺿــرب واﻟﻘــوى اﻟﺻــﺣﯾﺣﺔ اﻟﻣوﺟﺑــﺔ ﻓــﻰ اﻟﺑﺳــط ﻟﻠﺗﻌﺑﯾر. expression اﻻﻣر ] Together[ expressionﯾﻘوم ﺑﺗوﺣﯾد اﻟﻣﻘﺎﻣﺎت ﻟﻠﻛﺳور اﻟﻣوﺟودة ﻓﻰ اﻟﺗﻌﺑﯾر . expression
اﻻﻣـر ] Simplify[expressionﯾﻘــوم ﺑﺎﯾﺟـﺎد ﺻــورة ﻣﺑﺳـطﺔ ﻟﻠﺗﻌﺑﯾــر expressionﺑﺎﺻـﻐر ﻋــدد ﻣﻣﻛـن ﻣــن اﻻﺟزاء. ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻣﻌﻠوﻣﺎت اﻻﺳﺎﺳـﯾﺔ ﻋـن ﺗﻠـك اﻻواﻣـر ،ﻋﻠـﻰ ﺳـﺑﯾل اﻟﻣﺛـﺎل ﻟﻼﻣـر Expandﻧﻛﺗـب ? Expand وﯾﺗم ﺗﻧﻔﯾذة ﻛﺎﻟﺗﺎﻟﻰ:
?Expand
Expandexpr expands out products and positive integer powers in expr. Expand expr, patt leaves unexpanded any parts of …expr that are free of the pattern patt. More او اﻟﺿﻐط ﻋﻠﻰ Helpﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ Help Browserﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ وﺑﻛﺗﺎﺑﺔ Expandﻓﻰ اﻟﺧﺎﻧﺔ ااﻟﻣﺷﺎر اﻟﯾﻬﺎ ﺑﺎﻟﺳﻬم واﻟﺿﻐط ﻋﻠﻰ Goﻧﺣﺻل ﻋﻠﻰ ﺷرح ﻟﻼﻣر واﻣﺛﻠﺔ .
١٢٤
ﻣﺛﺎل ) ا ( ﺣﻠل ﻛﺛﯾرة اﻟﺣدود 12x 2 27xy 84y 2اﻟﻰ ﻋواﻣﻠﻬﺎ ) ب ( ﻓك اﻻﻗواس ﻟﻠﺗﻌﺑﯾر :
x2 1 4 x2 اﻟﺗﻌﺑﯾر ﺗﺑﺳﯾط اﻟﻣطﻠوب ( د ) ) ) (x y) 3 (2x yج ( وﺣد اﻟﻣﻘﺎم 2 2 x 3x 1 x 6
:
اﻟﺣل: 2 2 ) ا ( ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Factorﻟﺗﺣﻠﯾل ﻛﺛﯾرة اﻟﺣدود 12x 27xy 84yاﻟﻰ ﻋﻮاﻣﻠﮭﺎ .
ﻋﻧد ادﺧﺎل اﻻﻣر Factorﻻ ﺑد ﻣن اﻟﺗﺎﻛد ﻣن وﺟود اﻟﻣﺳﺎﻓﺔ او * ﺑﯾن xو yﻟﺗﻣﺛﯾل ﺣﺎﺻل اﻟﺿرب ﺣﯾث xyﺗﻣﺛل ﺗﻌﺑﯾر ﺑﯾﻧﻣﺎ x yاو x*yﺗﻣﺛل ﺣﺎﺻل ﺿرب xﻓﻰ : y
Factor12x2 27x y 84 y2 )3 (4 x-7 y) (x+4 y 3 ) ب ( ﻟﻔك اﻻﻗواس ﻟﻠﺗﻌﺑﯾر ) (x y) (2x yﻧﺳﺗﺧدم اﻻﻣر Expandﻛﺎﻟﺗﺎﻟﻰ :
Expandx y32x y 2 x4 5 x3 y 3 x2 y2 x y3 y4 ﺣﯿﺚ اﻻﻣﺮ Expandھﻨﺎ ﯾﻌﺘﺒﺮ ﻋﻜﺲ اﻻﻣﺮ . Factor ١٢٥
4 x2 ) ج ( ﺳوف ﻧﺳﺗﺧدم Togetherﻟﺗوﺣﯾد اﻟﻣﻘﺎﻣﺎت ﻓﻰ x2 6
:
4 x2 x2 6
Together 24 x4 6 x2
x2 1 ) د ( ﺳوف ﯾﺳﺗﺧدم اﻻﻣر Simplifyﻟﺗﺑﺳﯾط ﺷﻛل اﻟﺗﻌﺑﯾر x 2 2x 1
x2 1 Simplify 2 x 2x 1 1x 1 x
ﻣﺛﺎل n اوﺟد ﻣﻔﻛوك (a b) n a k b n k , n 2,3, 4 k k
اﻟﺣل: ]Expand[(a+b)^2 a2 2 a b b2 ]Expand[(a+b)^3 a3 3 a2 b 3 a b2 b3 ]Expand[(a+b)^4 a4 4 a3 b 6 a2 b2 4 a b3 b4
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت اﻛﺛر ﻋن اﻻواﻣر اﻟﺳﺎﺑق اﻟﻛﻼم ﻋﻧﻬﺎ وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ Fileﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ Palettesﺛم اﻟﺿﻐط ﻋﻠﻰ AlgebraicManipulationﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﻪ واﻟﺗﻰ ﯾﻣﻛن اﺧﺗﯾﺎر ﻣﻧﻬﺎ اﻻﻣر ﺟﺎﻫز ﻛﻣﺎ ﯾﺗﺿﺢ ﻣن اﻟﺷﻛل اﻟﺗﺎﻟﻰ ﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ اﺧﺗﯾﺎر اﻻﻣر Factorواﻟﻣوﺿﺢ ﺑﺎﻟﺳﻬم:
١٢٦
ﻣﺛﺎل اﻟﻣطﻠوب ﺗﺑﺳﯾط اﻟﺗﻌﺑﯾر x 2 2x 1
اﻟﺣل: اوﻻ ﻧﻛﺗب اﻟﺗﻌﺑﯾر:
ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم ﻧﻘوم ﺑﺗﺣدﯾد اﻟﺗﻌﺑﯾر
ﻧﺣرك اﻟﻣؤﺷر اﻟﻰ Fileﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ Palettesﺛم اﻟﺿﻐط ﻋﻠﻰ AlgebraicManipulationﻣن اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ وﻧﺿﻐط ﻋﻠﻰ Simplify وﻋﻧدﺋذن ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺑﺳط اﻟﺗﻌﺑﯾر ﻛﺎﻟﺗﺎﻟﻰ :
ﻫذا وﯾﻣﻛن اﻟﺣل ﻛﺎﻟﺗﺎﻟﻰ وذﻟك ﺑﻛﺗﺎﺑﺔ اﻻﻣر :Simplify
Simplifyx2 2x 1 1 x2 ١٢٧
ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻻواﻣر اﻟﺳﺎﺑﻘﺔ ﻫﻧﺎك اواﻣر اﺧرى ﻣﻌرﻓﺔ ﻓﻰ اﻟﺟدول اﻟﺗﺎﻟﻰ : اﻟﻌﻣل اﻟذى ﯾﻘوم ﺑﻪ اﻻﻣر
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر
اﯾﺟﺎد ﻣﻔﻛوك ﺣﺎﺻل اﻟﺿرب واﻟﻘوى اﻟﺻﺣﯾﺣﺔ
]ExpandAll[expression
اﻟﻣوﺟﺑﺔ اﻟﻣوﺟودة ﻓﻰ ﻛل اﺟزء اﻟﺗﻌﺑﯾر expression ]Apart[expression
ﻛﺗﺎﺑﺔ اﻟﺗﻌﺑﯾر اﻟﻛﺳرى expressionﻋﻠﻰ ﺻورة ﻣﺟﻣوع ﻟﻛﺳورة اﻟﺟزﺋﯾﺔ
]Coefficient[expression,form
اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﺎﻣل formﻓﻰ ﻛﺛﯾرة اﻟﺣدود expression
]Exponent[expression,form
اﻟﺣﺻول ﻋﻠﻰ اﻛﺑر ﻗوى ﻟﻠﻣﻘدار formﻓﻰ اﻟﺗﻌﺑﯾر expression
]Numerator [expression
اﻟﺣﺻول ﻋﻠﻰ اﻟﺑﺳط ﻓﻰ اﻟﺗﻌﺑﯾر expression
]Denominator [expression
اﻟﺣﺻول ﻋﻠﻰ اﻟﻣﻘﺎم ﻓﻰ اﻟﺗﻌﺑﯾر expression
]PolynomialQuotient [p,q,x
اﯾﺟﺎد ﺧﺎرج ﻗﺳﻣﺔ pﻋﻠﻰ qﻣﻊ اھﻣﺎل اﻟﺟزء اﻟﺑﺎﻗﻰ ﺣﯾث p,qﻛﺛﯾرات ﺣدود ﻓﻰ اﻟﻣﺗﻐﯾر x
]PolynomialRemainder [p,q,x
اﯾﺟﺎد اﻟﺟزء اﻟﺑﺎﻗﻰ ﻣن ﺧﺎرج ﻗﺳﻣﺔ pﻋﻠﻰ q ﺣﯾث p,qﻛﺛﯾرات ﺣدود ﻓﻰ اﻟﻣﺗﻐﯾر x
]Cancel [expression
ﯾﺣﻠل اﻟﺑﺳط واﻟﻣﻘﺎم ﻟﻠﺗﻌﺑﯾر وﯾﺣول اﻟﺗﻌﺑﯾر expressionاﻟﻰ lowest term
]Collect[ expression,x
ﺟﻣﻊ اﻟﺣدود اﻟﺗﻰ ﺗﺣﺗوى ﻋﻠﻰ ﻧﻔس ﻗوى xﻓﻰ اﻟﺗﻌﺑﯾر
ﻟﻠﺗﻌﺑﯾر اﻟﺗﺎﻟﻰ ﺳوف ﻧطﺑق ﻋﻠﯾﻪ ﺑﻌض اﻻواﻣر اﻟﺳﺎﺑﻘﺔ اﻟذﻛر :
)(x 1) 2 (x 3 (x 4)(x 2) 2 اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﻘوم ﺑﺎﯾﺟﺎد ﻣﻔﻛوك ﺣﺎﺻل اﻟﺿرب واﻟﻘوى اﻟﺻﺣﯾﺣﺔ اﻟﻣوﺟﺑﺔ اﻟﻣوﺟودة ﻓﻰ ﻛل اﻟﺑﺳط ﻟﻠﺗﻌﺑﯾر اﻟﺳﺎﺑق:
١٢٨
x 12x 3
Expand
x 4x 22 3 7x 2 x2 4 x 2 x2 4 x
5 x2 x3 2 x2 4 x 2 x2 4 x اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﻘوم ﺑﺎﯾﺟﺎد ﻣﻔﻛوك ﺣﺎﺻل اﻟﺿرب واﻟﻘوى اﻟﺻﺣﯾﺣﺔ اﻟﻣوﺟﺑﺔ اﻟﻣوﺟودة ﻓﻰ ﻛل اﺟزء اﻟﺗﻌﺑﯾر اﻟﺳﺎﺑق :
x 12x 3
ExpandAll
x 4x 22 3 7x 5 x2 x3 16 12 x x3 16 12 x x3 16 12 x x3 16 12 x x3 اﻻﻣﺮ اﻟﺘﺎﻟﻰ ﯾﻘﻮم ﺑﺘﺠﻤﯿﻊ اﻟﺘﻌﺒﯿﺮ اﻟﻜﺴﺮى اﻟﺴﺎﺑﻖ ﻋﻠﻰ ﺻورة ﻣﺟﻣوع ﻟﻛﺳورة اﻟﺟزﺋﯾﺔ :
x 12x 3 x 4x 22
Apart
15 21 1 2 2 x2 4 2 x 4 4 x
1
اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﻘوم ﺑﺗﺟﻣﯾﻊ اﻟﺣدود اﻟﺗﻰ ﺗﺣﺗوى ﻋﻠﻰ ﻧﻔس ﻗوى xﻓﻰ اﻟﺗﻌﺑﯾر اﻟﺳﺎﺑق :
x 12y 3
, y x 4x 22 3 1 x2 1 x2 y 2 x2 4 x
Collect
2 x2 4 x
ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﺎﻣل yﻓﻰ اﻟﺗﻌﺑﯾر اﻟﺳﺎﺑق ﻧﺳﺗﺧدم اﻻﻣر اﻟﺗﺎﻟﻰ :
, y
x 12y 3 x 4x 22
Coefficient 1 x2
2 x2 4 x ﻟﻠﺣﺻول ﻋﻠﻰ اﻛﺑر ﻗوى ﻟﻠﻣﺗﻐﯾر yﻓﻰ اﻟﺗﻌﺑﯾر اﻟﺳﺎﺑق ﻧﺳﺗﺧدم اﻻﻣر اﻟﺗﺎﻟﻰ :
, y
x 12y 3 x 4x 22
Exponent 1
ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﺒﺴﻂ ﻓﻰ اﻟﺘﻌﺒﯿﺮ اﻟﺴﺎﺑﻖ ﻧﺴﺘﺨﺪم اﻻﻣﺮ اﻟﺘﺎﻟﻰ :
١٢٩
x 12y 3
Numerator
x 4x 22 2 1 x 3 y
ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻤﻘﺎم ﻓﻰ اﻟﺘﻌﺒﯿﺮ اﻟﺴﺎﺑﻖ ﻧﺴﺘﺨﺪم اﻻﻣﺮ اﻟﺘﺎﻟﻰ:
x 12 y 3
Denominator
x 4x 22 2 2 x 4 x
ﺑﻔرض اﻧﮫ ﺗم ﺗﻌرﯾف ﻛﺛﯾرة اﻟﺣدود p,qﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻛﺎﻟﺗﺎﻟﻰ :
p x 12; q x 4 4+x ﻻﯾﺟﺎد ﺧﺎرج ﻗﺳﻣﺔ ﻛﺛﯾرة اﻟﺣدود pﻋﻠﻰ q
ﻣﻊ اﻫﻣﺎل اﻟﺟزء اﻟﺑﺎﻗﻰ ﻧﺳﺗﺧدم اﻻﻣر اﻟﺗﺎﻟﻰ: ]PolynomialQuotient[p,q,x -2+x
ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺟزء اﻟﺑﺎﻗﻰ ﻣن ﺧﺎرج ﻗﺳﻣﺔ ﻛﺛﯾرة اﻟﺣدود pﻋﻠﻰ ﻛﺛﯾرة اﻟﺣدود qﻧﺳﺗﺧدم اﻻﻣر اﻟﺗﺎﻟﻰ: ]PolynomialRemainder[p,q,x 9
ﺑﺎﻻﺿﺎف اﻟﻰ اﻻواﻣر اﻟﺗﺎﻟﯾﺔ ھﻧﺎك اﻣر Can celواﻟذى ﯾﺣﻠل اﻟﺑﺳط واﻟﻣﻘﺎم ﻟﻠﺗﻌﺑﯾر وﯾﺣول اﻟﺗﻌﺑﯾر اﻟﻰ lowest termوﺳوف ﻧوﺿﺣﻪ ﺑﺎﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ :
x2 1 Cancel 2 x 2x 1 1 x 1 x
ﺗﻘدﯾر اﻟﺗﻌﺑﯾرات ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ وﺿﻊ ﻗﯾد ﻋﻠﻰ ﺗﻌﺑﯾر ﻣﻌﯾن وذﻟك ﺑﺎﺳﺗﺧدام ﻗﺎﻋدة ﻣﺎ ﻋﻠﯾﮫ ،اى ﺗﻘدﯾره .اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻛﺗﺎﺑﺔ اﻟﺗﻌﺑﯾرھﻰ : ]Expression/.Rule[ihs,rhs داﻟﺔ اﻟﻘﺎﻋدة ﺗﻛﺗب ﻓﻰ ﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﺎﻟﺗﺎﻟﻰ : ihs->rhs
ﻟﺗﻘدﯾر
x2 1 x 2 2x 1
ﻋﻧد ,x=-2,x=4
١٣٠
x2 1 aa1 2 x 2x 1 1 x2
1 2 x x2 aa1/.x4
5 3 aa1/.x-2
1 3 ﺣﯾث ﺗم اوﻻ ﺗﺳﻣﯾﺔ اﻟﺗﻌﺑﯾر ﺑﺎﻻﺳم aa1ﺛم اﺳﺗﺧدم /.ﻟﺗﻘدﯾر اﻟﺗﻌﺑﯾر ﻋﻧد x=4,x=-2
) ( ٢-٤ﻋﻣﻠﯾﺎت اﻟﺟﻣﻊ ﻋﻠﻰ اﻟﺣدود اﻟﻣﻧﺗظﻣﺔ ﻓﻰ ﻛﺛﯾر ﻣن اﻟﻣﺳﺎﺋل اﻟرﯾﺎﺿﯾﺔ ﻧﺣﺗﺎج اﻟﻰ ﺣﺳﺎب ﻣﺟﻣوع ﺣدود اﻟﻣﺗﺳﻠﺳﻠﺔ .ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ذﻟك ﻣن ﺧﻼل اﻻﻣر Sumوﻓﯾﻣﺎ ﯾﻠﻰ اﻟﺻﯾﻎ اﻟﻣﺧﺗﻠﻔﺔ ﻟﮭذا اﻻﻣر ﺳواء ﺻﯾﻎ اﻻدﺧﺎل او اﻟﺻﯾﻎ اﻟﻘﯾﺎﺳﯾﺔ.
ﺻﯾﻐﺔ اﻻدﺧﺎل InputForm
اﻟﻌﻣل اﻟذى ﯾﻘوم ﺑﻪ
اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ StandardForm
ﺣﺳﺎب اﻟﻣﺟﻣوع
i max
f
]}Sum[f,{i,max
i 1
ﺣﺳﺎب اﻟﻣﺟﻣوع
i max
f
ﺣﺳﺎب اﻟﻣﺟﻣوع f
f i 1
]}Sum[f,{i,min,max
i min
ﻣن
i max
i max
f
i i min
]}Sum[f,{i,min,max,step
i
imin اﻟﻰ imaxﺑﺧطوة ﻣﻘدارﻫﺎstep
١٣١
ﻻ ﯾوﺟد
ﺣﺳﺎب اﻟﻣﺟﻣوع
Sum[f,{i,min,max },{j,min,max
i max jmax
f
]},
i max jmax
f
ii min jmin
ii min jmin
وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Fileاﻟﻣوﺟود ﻓﻰ
ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﯾﺳﺗﺧدم اﻟرﻣز
ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ وﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻼﻣر Fileاﻟﺗﺎﻟﯾﺔ ﻧﺧﺗﺎر اﻻﻣر : Palette
١٣٢
ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺗﺎﻟﯾﺔ وﻧﺿﻐط ﻋﻠﻰ اﻻﻣر :BasicInput
ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ ﻓﻰ اﻟﻧﺎﻓذة اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺑرﻧﺎﻣﺞ وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟرﻣز
ﯾﻧﻘل اﻟﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻓﻰ اﻟﻣﻛﺎن اﻟﻣﺣدد ﺳﺎﺑﻘﺎ ﺑﻣؤﺷر اﻟﻔﺎرة )اﻟﻣﺎوس(.
١٣٣
و اﻟﻣوﺿﺢ ﺑﺎﻟﺳﻬم
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻟرﻣز
وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ Helpﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻧﺎﻓذة
اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟﺿﻐط ﻋﻠﻰ Help Browserﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ وﺑﻛﺗﺎﺑﺔ Sumﻓﻰ اﻟﺧﺎﻧﺔ اﻟﻣﺷﺎر اﻟﯾﻬﺎ ﺑﺎﻟﺳﻬم واﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Goﻧﺣﺻل ﻋﻠﻰ ﺷرح ﻟﻼﻣر واﻣﺛﻠﺔ .
١٣٤
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻣر اﻟﺟﻣﻊ ﺑﻛﺗﺎﺑﺔ ? Sumﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم ﺗﻧﻔﯾذ اﻻﻣر ﻓﻧﺣﺻل ﻋﻠﻰ :
?Sum
… M o re
i n , i m a x s t a r t s w i t h i s u m o v e r m u l t i p l e i n d i c e s .
ﻣﺛﺎل اﻟﻣطﻠوب ﺣﺳﺎب
10
i i 1
اﻟﺣل: ]}Sum[i,{i,1,10 55 ١٣٥
ﻣﺛﺎل 1 اﻟﻣطﻠوب ﺣﺳﺎب ﻛل ﻣﻣـﺎ ﯾـﺎﺗﻰ ) :ا ( i2 i
7
3
) ب ( )(x i
ﻣـن i=1اﻟـﻰ i=7ﺑﺧطـوة step=2
i 1
5
) ج (!) x ^ i / iد( x i y j i 1 j1
i 1
اﻟﺣل: 1
) ا ( ﺳوف ﯾﺗم ﺣﺳﺎب
3
3
i
ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﺛم ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﺎﻟﺗﺎﻟﻰ:
i 1
]}Sum[1/i^2,{i,3
49 36 3
1 2 i1 i
) ب ( ﺳوف ﯾﺗم ﺣﺳﺎب
) (x i
ﻣن i=1اﻟﻰ i=7ﺑﺧطوة step=2ﻛﺎﻟﺗﺎﻟﻰ :
49 36
]}Sum[x+i,{i,1,7,2 )(1+x) (3+x) (5+x) (7+x ) ج ( ﺳوف ﯾﺗم ﺣﺳﺎب
7
! x ^ i / i i 1
ﻛﺎﻟﺘﺎﻟﻰ ﺑﺼﯿﻐﺔ اﻻدﺧﺎل : ]}Sum[x^i/i!,{i,7
x2 x3 x4 x5 x6 x7 x 2 6 24 120 720 5040 او ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ : 7
xi i i1
١٣٦
x2 x3 x4 x5 x6 x7 x 2 6 24 120 720 5040
: ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﺎﻟﺗﺎﻟﻰ
5
i i
x y
j
)د( ﯾﺗم ﺣﺳﺎب
i 1 j1
Sum[(x^i)*(y^j),{i,1,5},{j,1,i}]
x y x2 y x3 y x4 y x5 y x2 y2 x3 y2 x4 y2 x5 y2 x3 y3 x4 y3 x5 y3 x4 y4 x5 y4 x5 y5 x55 y35 : او ﺑﺎﻟﺼﯿﻐﺔ اﻟﻘﯿﺎﺳﯿﺔ ﻛﺎﻟﺘﺎﻟﻰ 5
i
xi yj i1 j1 2
x y x y x3 y x4 y x5 y x2 y2 x3 y2 x4 y2 x5 y2 x3 y3 x4 y3 x5 y3 x4 y4 x5 y4 x5 y5
ﻣﺛﺎل i
2
2 1 4i ( ج ) ( ب ) ( )ا: اﻟﻣطﻠوب ﺣﺳﺎب ﻛل ﻣﻣﺎ ﯾﺎﺗﻰ x i 2 2 4i 8i 4 i1 i 1 i 1
:اﻟﺣل
:ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﺛم ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﺎﻟﺗﺎﻟﻰ
4i i 1
Sum[1/(4i^2+8i+4),{i,1,Infinity}]
1 6 2 24
1 2 i1 4i 8i 4
1 6 2 24
١٣٧
2
1 ) ا ( ﺳوف ﯾﺗم ﺣﺳﺎب 8i 4
) ب ( ﺳوف ﯾﺗم ﺣﺳﺎب
4i
x
ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﺛم ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﺎﻟﺗﺎﻟﻰ:
i 1
]}Sum[x^(4i),{i,1,Infinity
x4 1 x4
x4i i1
x4 1 x4 i
22 ) ج ( ﺳوف ﯾﺗم ﺣﺳﺎب i i1 2
ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﺛم ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﺎﻟﺗﺎﻟﻰ:
]}Sum[(2^(i/2))/(2^i),{i,1,Infinity 2 2 2 i
22 i 2
i1
2
2
2
) ( ٣-٤ﻋﻣﻠﯾﺎت اﻟﺿرب ﻋﻠﻰ اﻟﺣدود اﻟﻣﻧﺗظﻣﺔ ﻓﻰ ﻛﺛﯾر ﻣن اﻟﻣﺳﺎﺋل اﻟرﯾﺎﺿﯾﺔ ﻧﺣﺗﺎج اﻟﻰ ﻋﻣﻠﯾﺎت اﻟﺿرب ﻋﻠﻰ اﻟﺣدود اﻟﻣﻧﺗظﻣﺔ .ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺣﺳﺎب ذﻟك ﺑﺎﺳﺗﺧدام ﺑﻌض اﻻواﻣر ﺣﯾث ﯾﺳﺗﺧدم اﻻﻣر ) Productﺻﯾﻐﺔ اﻻدﺧﺎل (InputFormاو ﺑﺎﺳﺗﺧدام
اﻟرﻣز
وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Fileاﻟﻣوﺟود ﻓﻰ ﺻف اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺑرﻧﺎﻣﺞ ﺛم ﻧﺧﺗﺎر ﻣن
اﻟﻘﺎﺋﻣﺔ اﻻﻣر Paletteﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻼﻣر Fileاﻟﺗﺎﻟﯾﺔ :
١٣٨
ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﻔرﻋﯾﺔ اﻟﺗﺎﻟﯾﺔ وﻧﺿﻐط ﻋﻠﻰ اﻻﻣر :BasicInput
ﻓﺣﺻل ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺑرﻧﺎﻣﺞ وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟرﻣز
ﯾﻧﻘل اﻟﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻓﻰ اﻟﻣﻛﺎن اﻟﻣﺣدد ﺳﺎﺑﻘﺎ.
١٣٩
و اﻟﻣوﺿﺢ ﺑﺎﻟﺳﻬم
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻟرﻣز
وذﻟك ﺑﺎﻟﺿﻐط ﻋﻠﻰ Helpﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ
ﺛم اﻟﺿﻐط ﻋﻠﻰ Help Browserﻓﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ وﺑﻛﺗﺎﺑﺔ Productﻓﻰ اﻟﺧﺎﻧﺔ ااﻟﻣﺷﺎر اﻟﯾﻬﺎ ﺑﺎﻟﺳﻬم واﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Goﻧﺣﺻل ﻋﻠﻰ ﺷرح ﻟﻼﻣر واﻣﺛﻠﺔ .
١٤٠
? ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم ﺗﻧﻔﯾذ اﻻﻣر ﻓﻧﺣﺻلproduct ﺑﻛﺗﺎﺑﺔProduct وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻣر اﻟﺿرب : ﻋﻠﻰ
?Product
Productf, i, imax evaluates the product of the expressions f as evaluated for each i from 1 to imax. Productf, i, imin, imax starts with i imin. Productf, i, imin, imax, di uses steps di. Productf, i, imin, imax, j, jmin, jmax, ... evaluates a product over multiple indices. More… ١٤١
اﻟﺻﯾﻎ اﻟﻣﺧﺗﻠﻔﺔ ﻻﻣر اﻟﺿرب ﺳواء ﺻﯾﻎ اﻻدﺧﺎل او اﻟﺻﯾﻊ اﻟﻘﯾﺎﺳﯾﺔ ﻣوﺿﺣﮫ ﻓﻰ اﻟﺟدول اﻟﺗﺎﻟﻰ ﺣﯾث
ﻣن ﻧﻔس اﻟﻘﺎﺋﻣﺔ اﻟﺗﻰ اﺳﺗﺧدﻣﻧﺎھﺎ ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ
ﺗﺳﺗﺧرج
.
اﻟﻌﻣل اﻟذى ﯾﻘوم ﺑﻪ
ﺻﯾﻐﺔ اﻻدﺧﺎل InputForm
ﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
]}Product[f,{I,max
اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ StandardForm i max
f
i max
i 1
f i 1
ﺣﺳﺎب ﺣﺎﺻﺎل اﻟﺿرب
]}Product[f,{I,min,max
i max
f
i max
i i min
f
i i min
ﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
f
]}Product[f,{I,min,max,step
ﻻ ﯾوﺟد
ﻣن imin
i
اﻟﻰ imaxﺑﺧطوة ﻣﻘدارﻫﺎstep ﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
Sum[f,{I,min,max },{j,min,max ]},
i max jmax
f
i max jmax
f ii min jmin
ii min jmin
ﻣﺛﺎل اﻟﻣطﻠوب ﺣﺳﺎب ﻣﺎ ﯾﺎﺗﻰ ) :ا (
3
1 2
i
) ب ( )(x i
i 1
7
i
5
i 1
j1
i 1
) ج ( ! ) x ^ i / iد ( x i y j
١٤٢
ﻣن i=1اﻟﻰ i=7ﺑﺧطوة step=2
:اﻟﺣل 3
1
i
) ا ( ﻟﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
3
i 1
Product[1/i^2,{i,3}]
1 36 3
1 2 i1 i
1 36 : step=2 ﺑﺧطوةi=7 اﻟﻰi=1 ﻣن
(x i) ) ب ( ﻟﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
Product[x+i,{i,1,7,2}] (1+x) (3+x) (5+x) (7+x) 7
x ^ i / i!
) ج ( ﻟﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
i 1
Product[x^i/i!,{i,7}]
x28 125411328000 7
i1
xi i
x28 125411328000 5
i i
x y i 1
j1
Product[(x^i)*(y^j),{i,1,5},{j,1,i}]
١٤٣
j
) د ( ﻟﺣﺳﺎب ﺣﺎﺻل اﻟﺿرب
x55 y35 5 i
x^i y^j i1 j1 55 35
x y
) ( ٤-٤اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ واﻟﺗﻘرﯾﺑﯾﺔ ﻟﻠﻣﻌﺎدﻻت اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ ﻟﻠﻣﻌﺎدﻻت Exact Solution of Equations ﺑﺎﺳﺗﺧدام ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﺣﻠول ﻣﺿﺑوطﺔ ﻟﻌدﯾد ﻣن اﻟﻣﻌﺎدﻻت واﻻﻧظﻣﺔ ﻣن اﻟﻣﻌﺎدﻻت ﺑﻣﺎ ﻓﯾﻬﺎ اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ ﻟﻣﻌﺎدﻻت ﻛﺛﯾرة اﻟﺣدود ﻣن اﻟدرﺟﺔ اﻟﺧﺎﻣﺳﺔ او اﻗل .ﺗﻛﺗب اﻟﻣﻌﺎدﻻت ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻋﻠﻰ اﻟﺻورة اﻟﺗﺎﻟﯾﺔ :
left-hand side==right-hand sideﺣﯾث اﻟرﻣز "==" ﯾوﺿﻊ ﺑﯾن اﻟطرف اﻻﯾﺳر left-hand sideو اﻟطرف اﻻﯾﻣن . right-hand side ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻟﻣﻌﺎدﻟﺔ 4+3=7ﺗﻛﺗب ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : 4+3==7 وﻫو ﯾﻌﻧﻰ اﺧﺗﺑﺎر ﻣﺎ اذا ﻛﺎن اﻟطرف اﻻﯾﻣن ﯾﺳﺎوى اﻟطرف اﻻﯾﺳر .اى ان اﻟﻣﻌﺎدﻻت ﻓﻰ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﺗﻌﺎﻣل ﻋﻠﻰ اﻧﮭﺎ ﻋﻼﻗﺎت ﻣﻧطﻘﯾﺔ ﻓﻣﺛﻼ ﻋﻧد ادﺧﺎل اﻟﻣﻌﺎدﻟﺔ : 4+3==7 ﻓﺎن اﻟﻧﺎﺗﺞ ﯾﻛون ﺻواب ﻛﻣﺎ ﯾﻠﻰ :
4+37 True وﻋﻧد ادﺧﺎل اﻟﻣﻌﺎدﻟﺔ : 2
x 4x 3 2 ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺧرﺟﮭﺎ ﻛﻣﺎ ھﻰ ﻻﻧﮫ ﻟم ﯾﺳﺗطﯾﻊ اﺧﺗﺑﺎر ﻣﺎ اذا ﻛﺎﻧت اﻟﻣﻌﺎدﻟﺔ :
x 2 4x 3 2
ﺻواب او ﺧطﺎ وذﻟك ﻟﻌدم وﺟود ﻗﯾﻣﺔ ﻣﺳﺑﻘﺔ ﻟﻠﻣﺗﻐﯾر x
x2 4x 3 6 3 4 x x2 6 اﻻﻣر :
]Solve[lhs rhs,x ﯾﺣل اﻟﻣﻌﺎدﻟﺔ lhs rhs ﻓﻰ . xاﯾﺿﺎ اﻻﻣر ] Solve[lhs rhsﯾﺣل اﻟﻣﻌﺎدﻟﺔ lhs rhsﻓﻰ x اذا ﻛﺎن xاﻟﻣﺟﻬول اﻟوﺣﯾد ﻓﻰ اﻟﻣﻌﺎدﻟﻪ ، lhs rhsوﻋﻠﻰ ذﻟك ﻟﺣل اﻟﻣﻌﺎدﻟﺔ 4x+3=6
ﻛﻼ اﻻﻣرﯾن ]Solve[4x 3 6],Solve[4x 3 6,x ١٤٤
ﯾﻌطﯾﺎن ﻧﻔس اﻟﻧﺗﯾﺟﺔ .
ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Help Browserﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن اﻻﻣر Solveواﯾﺿﺎ اﻟﺣﺻول ﻋﻠﻰ ﻋدة اﻣﺛﻠﺔ ﻛﻣﺎ ﻫو ﻣوﺿﺢ ﻓﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ :
ﻫذا وﺗﻌﺗﺑر ﻣﻌﺎدﻻت ﻛﺛﯾرات اﻟﺣدود Polynomial equatiosﻣـن اﻫـم اﻟﻣﻌـﺎدﻻت اﻟﺗـﻰ ﯾـﺗم ﺣﻠﻬـﺎ ﺑﺎﺳـﺗﺧدام اﻻﻣر . Solve
ﻣﺛﺎل ﺣل اﻟﻣﻌﺎدﻻت اﻟﺗﺎﻟﯾﺔ :
x2 1 4x 8 10, 0, x 3 x 2 x 1 0 x 1
اﻟﺣل:
١٤٥
ﻓﻰ ﻛل ﺣﺎﻟﺔ ﺳوف ﻧﺳﺗﺧدم Solveوذﻟك ﻟﺣل اﻟﻣﻌﺎدﻻت اﻟﺳﺎﺑﻘﺔ .وﯾﺟب اﻟﺗﺎﻛد ﻣن وﺟود اﻟرﻣز
"=="
ﺑﯾن اﻟﺟﺎﻧب اﻻﯾﺳر واﻻﯾﻣن ﻟﻛل ﻣﻌﺎدﻟﺔ واﻟﺣل ﻫو :
]Solve[4x+810
1 2
x
واﻟذى ﯾﻌﻧﻰ ان اﻟﺣل ﻫو x = 0.5
ﻛﻣﺎ ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر Rootsﻛﺎﻟﺗﺎﻟﻰ :
x2 1 0, x x 1
Roots x-1
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر: Roots
]Roots[lhs rhs,x
x2 1 Solve 0 x 1
}} {{x-1
واﻟذى ﯾﻌﻧﻰ ان اﻟﺣل ﻫو x=-1
Solvex3 x2 x 1 0 }} {{x-1},{x-},{x
واﻟذى ﯾﻌﻧﻰ ان ﻫﻧﺎك ﺛﻼث ﺣﻠول وﻫم x 1, x i ,i 1
اﻻﻣــر Solveﻗــﺎدر ﻋﻠــﻰ اﯾﺟــﺎد ﺣﻠــول ﺻ ـرﯾﺣﺔ ﻟﻠﻌدﯾــد ﻣــن ﻣﻌــﺎدﻻت ﻛﺛﯾ ـرات اﻟﺣــدود ذات اﻟدرﺟــﺔ اﻟﻌﺎﻟﯾــﺔ ﺧﺎﺻــﺔ اﻟﻣﻌـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺎدﻻت اﻟﺗ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﻰ ﯾﻣﻛ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــن ﺗﺣﻠﯾﻠﻬ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺎ ﻓﻌﻠـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﻰ ﺳ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺑﯾل اﻟﻣﺛ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺎل اﻟﻣﻌﺎدﻟ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺔ 120 274x 225x 85x 15x x 0ﯾﻣﻛـ ـ ــن اﻟﺣﺻـ ـ ــول ﻋﻠـ ـ ــﻰ ﺣـ ـ ــل ﺻ ـ ـ ـرﯾﺢ ﻟﻬـ ـ ــﺎ 5
4
3
2
ﻛﺎﻟﺗﺎﻟﻰ :
١٤٦
Solve120 274x 225 x2 85 x3 15 x4 x5 0 }}{{x1},{x2},{x3},{x4},{x5
واذا ﻛـﺎن اﻟﺑرﻧـﺎﻣﺞ ﻗـﺎدر ﻋﻠـﻰ اﯾﺟـﺎد ﺣﻠـول ﻟﻣﻌﺎدﻟـﺔ ﻣـن اﻟدرﺟـﺔ nﻓﺎﻧـﻪ ﯾﻌطـﻰ nﻣـن اﻟﺟـذور ﺣﺗـﻰ ﻓـﻰ ﺣﺎﻟـﺔ وﺟــود ﺟذور ﻣﻛررة ﻛم ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ : : (x 2)(x 1) 0 2
Solvex 2x 12 0 }}{{x-2},{x-1},{x-1
ﻋﻧدﻣﺎ ﺗﺣﺗوى اﻟﻣﻌﺎدﻟﺔ ﻋﻠﻰ اﻛﺛر ﻣن ﻣﺗﻐﯾر ﻻﺑد ﻣن ﺗﺣدﯾد اﻟﻣﺗﻐﯾر )اﻟﻣﺗﻐﯾرات ( ﻣوﺿﻊ اﻻﻫﺗﻣﺎم.
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻟﺣل ﻟـ sin 2 (x) 2sin(x) 3 0 وﻋﻧد اﺳﺗﺧدام اﻻﻣر ] Solve[Sin[x] ^ 2 2sin(x) 3 0ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﺳوف ﯾﺣل اﻟﻣﻌﺎدﻟﺔ ﻓﻰ
] Sin[xوﻟﻛـــن ﻋﻧـ ــد اﺳـ ــﺗﺧدام اﻻﻣـــر ] Solve[Sin[x] ^ 2 2sin(x) 3 0, xﻓـ ــﺎن اﻟﺑرﻧـ ــﺎﻣﺞ ﺳوف ﯾﺣل اﻟﻣﻌﺎدﻟﺔ ﻓﻰ. x ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﺟذور ﻣﻌﯾﻧﺔ ﻣن ﺣل اﻟﻣﻌﺎدﻟﺔ وذﻟك ﺑﺎﺳـﺗﺧدام اﻻﻗـواس اﻟﻣزدوﺟـﺔ ] ] [ [ .ﻓﻌﻠـﻰ ﺳـﺑﯾل اﻟﻣﺛـﺎل
ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺟذر اﻻول ﻣن اﻟﻣﻌﺎدﻟﺔ 120 274x 225x 2 85x3 15x 4 x5 0 ﻧﻛﺗب اﻻﻣر Solveﻛﺎﻟﺗﺎﻟﻰ :
Solve120 274 x 225 x2 85 x3 15 x4 x5 01 }{x1
وﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺣل ﻣﺟﻣوﻋﺔ ﻣن اﻟﻣﻌﺎدﻻت ﻓﻰ ان واﺣد وذﻟـك ﺑﺎﺳـﺗﺧدام اﻻﻣـر Solveوذﻟـك ﻛﻣـﺎ ﯾﻠﻰ : اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر
اﻟﻌﻣل اﻟذى ﯾﻘوم ﺑﻪ اﻻﻣر
ﺣل ﻣﺟﻣوﻋـﺔ ﻣـن اﻟﻣﻌـﺎدﻻت eqnsﺑﺎﻟﻧﺳـﺑﺔ اﻟـﻰ ﺟﻣﯾـﻊ ]Solve[eqns اﻟﻣﺗﻐﯾرات اﻟﻣوﺟودة ﻓﯾﻬـﺎ ﺣﯾـث ﺗﻛﺗـب eqnsﻓـﻰ ﺻـورة ﻗﺎﺋﻣﺔ } …{ lh1==rh1,lh2==rh2, ﺣ ـ ــل ﻣﺟﻣوﻋــ ــﺔ اﻟﻣﻌ ـ ــﺎدﻻت
eqnsﺑﺎﻟﻧﺳــ ــﺑﺔ اﻟــ ــﻰ ]Solve[eqns,vars
اﻟﻣﺗﻐﯾـرات varsﺣﯾـث varsﺗﻛﺗـب ﻓـﻰ ﺻـورة ﻗﺎﺋﻣـﺔ }…{x1,x2, ﺣــل ﻣﺟﻣوﻋــﺔ اﻟﻣﻌــﺎدﻻت ﺑﺎﻟﻧﺳــﺑﺔ اﻟــﻰ اﻟﻣﺗﻐﯾ ـ ارت Solve[eqns,{vars},{elims}] vars ١٤٧
ﻓﻘط وﺣذف اﻟﻣﺗﻐﯾرات elimsﻣن اﻟﻧﺗﺎﺋﺞ
ﻣﺛﺎل ﺣل اﻟﻧظم اﻟﺗﺎﻟﯾﺔ :
2x y 5 )ا( x y 4 ) ب(
4x 2y 5z 7 2x 3y z 4 x y z 1 )ج(
5x 2y 5z 7 2x y 4z 0 4x 2y 4z 1 ) د(
2x 2y 2z 2 3x 2y 2z 2 x 3y 3z 3
اﻟﺣل: }aa1={2x-y5,x+y4 ]}aa2=Solve[aa1,{x,y }}{{x3,y1 )ا( ﺣﯾث aa1اﺳم ﻧظﺎم اﻟﻣﻌﺎدﻻت وﻗد ﺗم اﺳﺗﺧدام Solveﻟﺣل ﻧظﺎم اﻟﻣﻌﺎدﻻت واﻟﻣﺳﻣﻰ aa2 وﺳوف ﻧﺗﺎﻛدد ﻣن ﺻﺣﺔ اﻟﻧﺗﯾﺟﺔ : }} {{x3,y1ﯾﻌﻧﻰ ان . x=3,y=1 ﺑوﺿﻊ اﻟﻘﯾم اﻟﺗﻰ ﺣﺻﻠﻧﺎ ﻋﻠﯾﮭﺎ ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ : aa1/.aa2
}}{{True,True ١٤٨
اﻟﺣل ﻟـ )ب( ﻓﯾﻣﺎ ﯾﻠﻰ : ]}aa1= Solve[{4x-2y+5z7,2x+3y+z4,x+y-z1},{x,y,z
11 1 5 , y , z 9 3 9
x
اﻟﻤﻌﺎدﻟﺔ ﻓﻰ اﻻﻣﺮ aa1ﻓﻰ ﺛﻼث ﻣﺟﺎھﯾل . x,y,z )ج( ]}Solve[{5x-2y+5z7,2x-y+4z0,-4x+2y-4z1},{x,y,z
31 33 1 , y , z 4 2 4
x
) د ( اﻟﻧﺗﯾﺟﺔ ﺗوﺿﺢ ان اﻟﻧظﺎم ﻟم ﯾﻌطﻰ ﺣﻠول ﻟﻛل اﻟﻣﺗﻐﯾرات ﺣﯾث اﻟﺣﻠول ﻫﻰ: }} {{x0,y-1+z
]}Solve[{-2x+2y-2z-2,3x-2y+2z2,x+3y-3z-3},{x,y,z Solve ::svars : Equations may not …give solutions for all "solve " variables . More }}{{x0,y-1+z
ﻣﺛﺎل
اﻟﻧظﺎم اﻟﺗﺎﻟﻰ :
y 2x 9 x 3z 1 ﻓﻰ ﺛﻼث ﻣﺟﺎھﯾل x,y,zﻓﺎذا ﺗم ﺣﺳﺎب اﻟﺣل ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ : x,y
ﻧﺣﺻل ﻋﻠﻰ اﻟﺗﺎﻟﻰ : }aa1={y-2x==9, x+3 z1 ]}Solve[aa1,{x,y }}{{x1-3 z,y11-6 z
aa1ﻓﻰ ﺛﻼث ﻣﺟﺎھﯾل x,y,zﻓﺎذا ﺗم ﺣﺳﺎب اﻟﺣل ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ اﻟﻤﻌﺎدﻻت ﻓﻰ اﻻﻣﺮ xﻣﻊ ﺣذف
y
١٤٩
ﻧﺣﺻل ﻋﻠﻰ اﻟﺗﺎﻟﻰ : }aa1={y-2x==9, x+3 z1 }{-2 x+y9,x+3 z1
]}Solve[aa1,{x},{y }} {{x1-3 z
اﯾﺿﺎ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﯾﻣﻛن ﺣذف ﻋدد ﻣن اﻟﻣﺗﻐﯾرات ﻣن ﻣﺟﻣوﻋﺔ اﻟﻣﻌﺎدﻻت واﻋﺎدة ﻛﺗﺎﺑﺗﮭﺎ وﯾﺗم ذﻟك ﺑﺎﻻﻣر Eliminateﻛﺎﻟﺗﺎﻟﻰ : ;}aa1={y-2x==9, x+3 z1 ]Eliminate[aa1,x 11-6 zy وﻓﻰ ﺣﺎﻟﺔ ﻋدم اﺳﺗطﺎﻋﺔ اﻟﺑرﻧﺎﻣﺞ اﻟﺣﺻول ﻋﻠﻰ ﺣﻠول ﺟﺑرﯾﺔ ﺻرﯾﺣﺔ ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺗرك اﻟﻣﻌﺎدﻟﺔ )او ﻧظم اﻟﻣﻌﺎدﻻت ( ﻓﻰ ﺻورﺗﮭﺎ اﻟرﻣزﯾﺔ.
اﻻن ﺳــوف ﻧﺷــرح ﻛﯾﻔﯾــﺔ اﻟوﺻــول اﻟــﻰ ﺣﻠــول ﻟﻠــﻧظم اﻟﻐﯾــر ﺧطﯾــﺔ ﻣــن اﻟﻣﻌــﺎدﻻت و ذﻟــك ﺑﺎﻻﺳــﺗﻌﺎﻧﺔ ﺑﺎﻟرﺳــم ﻛﻣــﺎ ﯾﺗﺿﺢ ﻣن اﻻﻣﺛﻠﺔ اﻟﺗﺎﻟﯾﺔ .
ﻣﺛﺎل
ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ :
x 2 y 2 6 2 2 x 6y 8
اﻟﺣل : اﻟرﺳم ﻟﻠﻣﻌﺎدﻟﺗﯾن اﻟﺳﺎﺑﻘﺗﯾن ﻋﺑﺎرة ﻋن ﻗطوع .ellipsesﺳوف ﻧﺳﺗﺧدم اﻻﻣر: ContourPlot ﻟرﺳم ﻛل ﻣﻌﺎدﻟﺔ وﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2ﻋﻠﻰ اﻟﺗواﻟﻰ ﺛم اﺳﺗﺧدام اﻻﻣر Show وذﻟك ﻻظﻬﺎر اﻟرﺳﻣﺗﯾن ﻣﻌﺎ .اﻟﺣﻠول ﻟﻠﻧظﺎم اﻟﺳﺎﺑق ﺗﻣﺛل ﺑﻧﻘط اﻟﺗﻘﺎطﻊ ﻟﻠرﺳﻣﺗﯾن.
١٥٠
aa1 ContourPlotx2 y2 6, x, 3, 3, y, 3, 3, Contours 0, ContourShading False, PlotPoints 60, DisplayFunction Identity; aa2 ContourPlotx2 6 y2 8, x, 3, 3, y, 3, 3, Contours 0, ContourShading False, PlotPoints 60, DisplayFunction Identity; Show[aa1,aa2,Frame ->False,Axes>Automatic,AxesOrigin{0,0},DisplayFunction$DisplayFunct ion ] 2
1
-2
-1
1
2
-1
-2
Graphics : ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺣﻠول ﻟﻠﻧظﺎمSolve وﻓﻰ اﻟﻧﻬﺎﯾﺔ ﺳوف ﻧﺳﺗﺧدم
Solvex2 y2 6, x2 6 y2 8 7 5
2 5
7 5
2 5
x 2 , y , x 2 , y ,
7 5
2 5
7 5
2 5
x 2 , y , x 2 , y
ﻣﺛﺎل : ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ ١٥١
x 2 y2 6 , y mx ; a,b 0 a 2 b2
اﻟﺣل :
اﯾﺿﺎ ﺳوف ﻧﺳﺗﺧدم Solveﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺣﻠول ﻟﻠﻧظﺎم .وﻻن اﻟﻣﺟﺎﻫﯾل ﻓﻰ اﻟﻣﻌﺎدﻟﺔ ﻫم a,b,m,x,y
ﻓﻼ ﺑد ان ﻧﺣدد ﻓﻰ اﻻﻣر اﻧﻧﺎ ﻧرﯾد اﻟﺣل ﻓﻰ .x,y
,
6 ab
x2 y2 6, y m x, x, y a2 b2
Solve
, x
6 abm
b2 a2 m2
b2 a2 m2 6 ab ,x 2 2 2 b a m
y
6 abm
b2 a2 m2
y
ﻋﻠــﻰ اﻟــرﻏم ﻣــن ان اﻟﺑرﻧــﺎﻣﺞ ﯾوﺟــد اﻟﺣــل اﻟﻣﺿــﺑوط ﻻى ﻣﻌﺎدﻟــﺔ ﻛﺛﯾ ـرة اﻟﺣــدود ﻣــن اﻟدرﺟــﺔ اﻟﺧﺎﻣﺳــﺔ او اﻗــل ﻓــﺎن اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ ﻟﺑﻌض اﻟﻣﻌﺎدﻻت ﻻ ﺗﻛون ذات ﻣﻌﻧﻰ .ﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﻣدﻧﺎ ﺑﺗﻘرﯾﺑﺎت ﻟﻠﺣﻠـول اﻟﻣﺿـﺑوطﺔ وذﻟك ﺑﺎﺳﺗﺧدام اﻣﺎ اﻻﻣر:
]N[exp ression او اﻻﻣر :
exp ression // N
ﻣﺛﺎل اوﺟد ﺣل ﺗﻘرﯾﺑﻰ ﻟﻠﻣﻌﺎدﻟﺔ اﻟﺗﺎﻟﯾﺔ :
x 3 4x 2 1 x
اﻟﺣل :
اوﻻ :ﺳوف ﻧوﺟد اﻟﺣل اﻟﻣﺿﺑوط ﺛم ﻧوﺟد اﻟﺣل اﻟﺗﻘرﯾﺑﻰ ﺑطرﯾﻘﺗﯾن ﻛﻣﺎ ﯾﻠﻰ : 2
3
Solvex 4x 1 x ١٥٢
13
4 1 119 3 597 x 3 3 2 2 1 3 1 1 119 3 597 , 3 2 13
119 4 1 3 597 x 1 3 3 6 2 2
1 1 13 1 3 119 3 597 , 6 2 13
4 1 3 597 119 x 1 3 3 6 2 2
1 1 13 1 3 119 3 597 6 2 3 2 NSolvex 4x 1 x {{x3.8063},{x0.0968496 +0.503331 },{x0.0968496}}0.503331 Solvex3 4x2 1 x N },{x0.0968496 }}0.503331
{{x3.8063},{x0.0968496
+0.503331
اوﻻ اوﺟدﻧﺎ اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ ﻟﻠﻣﻌﺎدﻟﺔ x 4x 1 xﺛم ﺑﻌد ذﻟك ﺗم ﺣﺳﺎب ﺣﻠول ﺗﻘرﯾﺑﯾﺔ . 2
3
ﺑرﻧـﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛـﺎ ﻗـﺎدر ﻋﻠــﻰ ﺣـل ﻣﻌﺎدﻟـﺔ ﺗﺣﺗـوى ﻋﻠــﻰ اﻛﺛـر ﻣـن ﻣﺗﻐﯾـر وﻟﻛــن ﻟﻣﺗﻐﯾـر واﺣـد ﺑدﻻﻟـﺔ اﻟﻣﺗﻐﯾـرات اﻻﺧرى :
ﻣﺛﺎل r 2 w ﺑدﻻﻟﺔ : h ﺣل اﻟﻣﻌﺎدﻟﺔ h
اﻟﺣل : ﻫذﻩ اﻟﻣﻌﺎدﻟﺔ ﺗﺷﺗﻣل ﻋﻠﻰ اﻛﺛر ﻣن ﻣﺗﻐﯾر وﻟذﻟك ﻻ ﺑد ﻣن ﺗﺣدﯾد اﻟﻣﺗﻐﯾر اﻟﺗﻰ ﺳوف ﺗﺣل اﻟﻣﻌﺎدﻟﺔ ﺑدﻻﻟﺗﻪ:
, h
١٥٣
r2
h
Solvew
ﺗﺎﻛد ﻣن وﺿﻊ ﻣﺳﺎﻓﺔ ﺑﯾن , r
w
h
. وﯾﺟب ان ﻧﺗذﻛر اﻧﮫ ﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ ﺣل اﻟﻣﻌﺎدﻟﺔ ﻓﻰ rﺑدﻻ ﻣن hﻓﺎﻧﻧﺎ
r2 ﻧﺳﺗﺧدم اﻻﻣر ]Solve[w ,r h
وﻋﻠﻰ ذﻟك :
, r
w
ﻣﺛﺎل
ﺣل اﻟﻣﻌﺎدﻟﺔ a 2 b2 c2
r2
h
r2
h
Solvew
, r
w
h
r
ﺑدﻻﻟﺔ : a
اﻟﺣل : ﻫذﻩ اﻟﻣﻌﺎدﻟﺔ ﺗﺷﺗﻣل ﻋﻠﻰ اﻛﺛر ﻣن ﻣﺗﻐﯾر وﻟذﻟك ﻻ ﺑد ﻣن ﺗﺣدﯾد اﻟﻣﺗﻐﯾر اﻟﺗﻰ ﺳوف ﺗﺣل اﻟﻣﻌﺎدﻟﺔ ﺑدﻻﻟﺗﻪ:
Solvea2 b2 c2, a
ﺣﻠول ﻋددﯾﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻣﻌﺎدﻻت
a b2 c2 , a b2 c2 h w h w r , r
ﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ ﺣﻠﻮل ﻋﺪدﯾﺔ ﺗﻘﺮﯾﺒﯿﺔ ﻣﺒﺎﺷﺮة ﻟﻤﻌﺎدﻟﺔ او ﻧﻈﺎم ﻣﻦ اﻟﻤﻌﺎدﻻت ﺑﺪون اﻟﺤﺎﺟﺔ اﻟﻰ اﯾﺠﺎد اﻟﺤﻞ اﻟﻣﺿﺑوط اوﻻ وذﻟك ﺑﺎﺳﺗﺧدام ﻋدة اواﻣر ﻟﺗﻘرﯾب ﺟذور اﻟﻣﻌﺎدﻻت ﻣﺛل:
FindRoot, NRoots, NSolve ﯾﺴﺘﺨﺪم اﻻﻣﺮ :
NRoots ﻟﻠﺣﺻول ﻋﻠﻰ ﺣل ﻋددى ﺗﻘرﯾﺑﻰ ﻟﺟذور اى ﻣﻌﺎدﻟﺔ ﻛﺛﯾرة اﻟﺣدود .اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر ﻫﻰ :
]NRoots[poly1 poly2, x ١٥٤
ﺣﯾث ﻛﻼ ﻣن poly1,poly2ﻛﺛﯾرات اﻟﺣدود ﻓﻰ . xﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻻﻣر اﻟﺳﺎﺑق ﻋﻠﻰ اﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ :
]NRoots[poly1 poly2, x, n وذﻟك ﻟﻠﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻰ ﻻى ﻣﻌﺎدﻟﺔ ﻛﺛﯾرة اﻟﺣدود وﺑدﻗﺔ . n اﻻﻣر NSolveﯾﻌطﻰ ﻧﻔس ﻧﺗﯾﺟﺔ اﻻﻣر.NRoots اﯾﺟﺎد ﺣﻠول ﻋددﯾﺔ ﻟﻣﻌﺎدﻻت ﻋﺎﻣﺔ )ﺗﺣﺗوى ﻋﻠﻰ دوال ﻣﺛﻠﺛﯾﺔ او دوال اﺳﯾﺔ او ﻟوﻏﺎرﯾﺗﻣﯾﺔ ...اﻟﺦ( ﯾﻛون اﻛﺛر ﺻﻌوﺑﺔ .
ﻻﯾﺟﺎد اﻧﺳب ﺟذر ﺗﻘرﯾﺑﻰ ﻟﻠﻣﻌﺎدﻟﺔ ﺳوف ﻧﺳﺗﺧدم اﻻﻣر FindRoot اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر FindRootﻫﻰ : ]}FindRoot[lhs==rhs,{ x,firstguess ﺣﯾث ﯾﻘوم ﺑﺎﻟﺑﺣث ﻋن ﺣل ﻋددى ﻟﻠﻣﻌﺎدﻟﺔ lhs==rhsﻣﺑﺗدﺋﺎ ﻣن اﻟﻧﻘطﺔ .x= firstguess واﺣد ﻣن اﻟطرق ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻘﯾﻣﺔ اﻟﻣﺑدﺋﯾﺔ firstguessﻫو رﺳم ﻛﻼ ﻣن lhs==rhsﺑﺎﺳﺗﺧدام اﻻﻣر Plotواﯾﺟﺎد ﻧﻘطﺔ )ﻧﻘط( اﻟﺗﻘﺎطﻊ وﺣﺳﺎب ﻗﯾم xﻋﻧد اﻟﺗﻘﺎطﻊ .
ﻣﺛﺎل اوﺟد ﺣﻠول ﺗﻘرﯾﺑﯾﺔ ﻟﻣﻌﺎدﻟﺔ ﻛﺛﯾرة اﻟﺣدود :
x 5 x 4 4x 3 2x 2 3x 7 0 ﻻن اﻟﻣﻌﺎدﻟﺔ ﻛﺛﯾرة اﻟﺣدود ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر NRootsﻟﻠﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻰ ﻟﻠﻣﻌﺎدﻟﺔ ﻛﺎﻟﺗﺎﻟﻰ :
NRootsx5 x4 4x3 2x2 3x 7 0, x x-2.74463||x-0.880858||x0.41452 -1.19996 ||x0.41452 +1.19996 ||x1.79645 اﻟرﻣز //اﻟذى ﯾظﻬر ﻓﻰ اﻟﻣﺧرج ﯾﻌﻧﻰ" او" . ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻧﻔس اﻟﺣل ﻣﻊ اﻻﻣر.NSolve
NSolvex5 x4 4x3 2x2 3x 7 0, x {{x-2.74463},{x-0.880858},{x0.41452 -1.19996 }}},{x0.41452 +1.19996 },{x1.79645 اﯾﺿﺎﻻﻣر FindRootsﯾﻣﻛن اﺳﺗﺧداﻣﻪ ﻟﺗﻘرﯾب ﻛل ﺟذر ﻓﻰ اﻟﻣﻌﺎدﻟﺔ .وﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﻻﺑد ﻣن اﻣداد ا اﻻﻣر ﺑﻧﻘطﺔ اﻟﺑداﯾﺔ . initial approximationاﻟﺣﻠول ﻟـ
x 5 x 4 4x 3 2x 2 3x 7 0 واﻟﻣﻘﺎﺑﻠﺔ ﻟﻘﯾم xﺣﯾث اﻟرﺳم :
x 5 x 4 4x 3 2x 2 3x 7 0
ﯾﻘطﻊ اﻟﻣﺣور اﻻﻓﻘﻰ .ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم:
x 5 x 4 4x 3 2x 2 3x 7 0 Plotx5 x4 4x3 2x2 3x 7, x, 3, 2 ١٥٥
20 10
2
1
-2
-1
-3
-10 -20 -30
Graphics ﯾﺗﺿﺢ ﻟﻧﺎ ان اﻟرﺳم ﯾﻘطﻊ اﻟﻣﺣور اﻻﻓﻘﻰ ﻗرﯾﺑﺎ ﻋﻧد . x 2.5,x 1,x 1.5 ﺳوف ﻧﺳﺗﺧدم ﻫذﻩ اﻟﻘﯾم ﻛﻧﻘط ﺑداﯾﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻛل ﺣل .وﻋﻠﻰ ذﻟك ادﺧﺎل :
FindRootx5 x4 4x3 2x2 3x 7 0, x, 2.5 }{x-2.74463 ﺗؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻲ ﻗرﯾب ﻣن .x=-2.5 ﺑﺎدﺧﺎل :
2
3
5
4
FindRootx x 4x 2x 3x 7 0, x, 1 }{x-0.880858 ﺗؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻲ ﻗرﯾب ﻣن .x=-1 ﺑﺎدﺧﺎل :
FindRootx5 x4 4x3 2x2 3x 7 0, x, 2 }{x1.79645 ﺗؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻲ ﻗرﯾب ﻣن.x=2 اﻟﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﻟﺣﻠول ﻧظﺎم ﺑﺎﺳﺗﺧدام اﻻﻣر FindRootﯾﺗﺿﺢ ﻣن اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ :
ﻣﺛﺎل
x 2 4xy y 2 4, . اوﺟد ﺗﻘرﯾب ﻟﺣﻠول اﻟﻧظﺎم 2 2 5x 4xy 2y 8 اﻟﺣل : ١٥٦
aa1 ContourPlotx2 4x y y2 4, x, 4, 4, y, 4, 4, PlotPoints 60, ContourShading False, Contours 0, ContourStyle Dashing0.01, DisplayFunction Identity; aa2 ContourPlot5x2 4x y 2 y2 8, x, 4, 4, y, 4, 4, PlotPoints 60, ContourShading False, Contours 0, ContourStyle Dashing0.01, DisplayFunction Identity; Show[aa1,aa2,Axes->Automatic,AxesOrigin{0,0}, FrameFalse,DisplayFunction$DisplayFunction] 4
2
-4
-2
2
4
-2
-4
Graphics
ﺑﺎﻟﺗﻌوﯾض ﻓﻰ ﻛل ﻣن اﻟﻣﻌﺎدﻟﺗﯾن ﺑﺎﻟﻘﯾم. ( ﻟﻠﻣﻌﺎدﻟﺗﯾن0,2),(0,-2)ﻣن اﻟرﺳم ﯾﺗﺿﺢ ان اﻟﺣﻠول اﻟﻣﻣﻛﻧﺔ ﻫﻰ اﻟﺣﻠﯾن. ﺳوف ﻧﺗﺣﻘق ﻣن ان ﺗﻠك اﻟﻧﻘﺎط ﺗﻣﺛل اﻟﺣﻠول اﻟﻣﺿﺑوطﺔ ﻟﻠﻣﻌﺎدﻟﺗﯾنx=0 and y=-2 and x=0,y=2 .FindRootاﻟﺑﺎﻗﯾﯾن ﯾﻣﻛن اﯾﺟﺎد ﺗﻘرﯾﺑﺎت ﻟﻬم ﻣن اﻻﻣر
FindRootx2 4x y y2 4, 5x2 4x y 2 y2 8, x, 1, y, .25 {x1.39262,y0.348155} ١٥٧
FindRootx2 4x y y2 4, 5x2 4x y 2 y2 8, x, 1, y, .25 }{x-1.39262,y-0.348155 ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻻﻣر FindRootو اﻻﻣر NRootsﻓﺎن اﻻﻣر Nsolveﯾﻣﻛن ان ﯾﺳﺗﺧدم ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ ﺗﻘرﯾﺑﺎت ﻟﺟذور ﺑﻌض اﻟﻣﻌﺎدﻻت .
ﻣﺛﺎل اذا ﻛﺎﻧت :
f (x) x 3 8x 2 11x 10, x2 1 g(x) x 3 6 اوﺟد اﻟﺣﻠول اﻟﺗﻘرﯾﺑﯾﺔ ﻟـ ) . f(x)=g(x
اﻟﺣل :
ﺑﻌد ازاﻟﺔ ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺗﯾن f,gاذا وﺟدا ﻧﺳﺗﺧدم اﻻﻣر NRootﻟﺗﻘرﯾب اﻟﺣﻠول ﻟﻠﻣﻌﺎدﻟﺔ . ]Clear[f,g
fx_ : x3 8x2 11x 10 x2 1 gx_ : x 3 6 ]NRoots[f[x]g[x],x x0.605027 -1.00717 ||x0.605027 +1.00717 ||x7.12328 وﻛﻣﺎ ﻫو ﻣﺗوﻗﻊ ﺣﺻﻠﻧﺎ ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻣﻊ اﻻﻣر.NSolve ]NSolve[f[x]g[x],x {{x0.605027 -1.00717 },{x0.605027 +1.00717 }}},{x7.12328
ﺗطﺑﯾﻘﺎت :اﻟﺣﺻول ﻋﻠﻰ ﻧﻘط اﻟﺗﻘﺎطﻊ ﻓﻰ رﺳم اﻟدوال ﻓﻰ اﻟﻌدﯾد ﻣن اﻻﻣﺛﻠﺔ اﻟﺳﺎﺑﻘﺔ ﻛﻧﺎ ﻧﺑﺣث ﻋن ﻧﻘط اﻟﺗﻘﺎطﻊ ﻋﻧد رﺳم اﻟدوال .ﻫﻧﺎ ﺳوف ﻧﻧﺎﻗش ﻋدة اﻣﺛﻠﺔ ﻟﺗﺣدﯾد ﻧﻘط اﻟﺗﻘﺎطﻊ ﻋﻧد رﺳم اﻟﻣﻧﺣﻧﯾﺎت .
١٥٨
ﻣﺛﺎل اوﺟد اﻟﻧﻘطﺔ )اﻟﻧﻘﺎط ( واﻟﺗﻰ ﻋﻧدﻫﺎ اﻟرﺳﻣﯾن اﻟﺗﺎﻟﯾﯾن ﯾﺗﻘﺎطﻌﺎن :
f (x) 3x 2 12x 5, g(x) 2x 2 4x 3
اﻟﺣل : اوﻻ ﺳوف ﻧرﺳم ﻛل ﻣن اﻟداﻟﺔ)f(x),g(x ]Clear[f,g
;fx_ : 3x2 12x 5 ;gx_ : 2x2 4x 3 Plot[{f[x],g[x]},{x,]}]1,5},PlotStyle{GrayLevel[0],GrayLevel[0 20
10
5
4
3
2
-1
1 -10
-20
Graphics
ﻣن اﻟرﺳم ﯾﻼﺣظ وﺟود ﺗﻘﺎطﻊ ﻟﻠداﻟﺗﯾن ﻣرﺗﯾن .ﺳوف ﻧﺣل اﻟﻣﻌﺎدﻟﺔ ) f(x)=g(xوﺳوف ﻧﺣﺻل ﻋﻠﻰ اﻟﺣل اﻟﻣﺿﺑوط ﻻﻧﻬﺎ ﻣﻌﺎدﻟﺔ ﻛﺛﯾرة اﻟﺣدود ﻣن درﺟﺔ اﻗل ﻣن ﺧﻣﺳﺔ . ]]aa1=Solve[f[x]g[x 1 1 x 8 3 6 , x 8 3 6
5
5
aa1//N }}{{x0.130306},{x3.06969 yy=f[x]/.aa1//Simplify 1 1 1 36 6 , 1 36 6
25
١٥٩
25
yy//N }{-3.48727,3.56727 وﻋﻠﻰ ذﻟك ﯾﻣﻛن اﺳﺗﻧﺗﺎج ان رﺳم f,gﯾﺗﻘﺎطﻌﺎن ﻣﻌﺎ ﻋﻧد : )(3.06969,3.56727), (0.130306, -3.48727 ﻋﻧد ﻋدم اﻟﺣﺻول ﻋﻠﻰ اﻟﺣل اﻟﻣﺿﺑوط ﻓﺎن اﻻﻣر ) FindRootاو اﻻﻣر NRoots اذا ﻛﺎﻧت اﻟﻣﻌﺎدﻟﺔ ﻋﻠﻰ ﺷﻛل ﻛﺛﯾرة اﻟﺣدود( ﯾﺳﺗﺧدﻣﺎن وذﻟك ﻟﺗﻘدﯾر ﻧﻘﺎط اﻟﺗﻘﺎطﻊ.
ﻣﺛﺎل اوﺟد اﻟﻧﻘطﺔ )اﻟﻧﻘﺎط ( واﻟﺗﻰ ﻋﻧدﻫﺎ اﻟرﺳﻣﯾن اﻟﺗﺎﻟﯾﯾن ﯾﺗﻘﺎطﻌﺎن :
x ) (cos
x ( )2 4
f (x) ,e
3 5 sin 2 4
g(x)
اﻟﺣل :
اوﻻ :ﺳوف ﻧرﺳم ﻛل ﻣن اﻟداﻟﺔ) f(x),g(xوﻗد وﺟد ان اﻟداﻟﺗﯾن ﻗد ﺗﻘﺎطﻌﺎ
ﻣرﺗﯾن ﻛﻣﺎﯾﻠﻰ: ]Clear[f,g
x 2 x ;fx_ : Exp Cos 4 3 5 ;gx_ : Sinx 2 4 Plot[{f[x],g[x]},{x,0,5},PlotStyle{RGBColor[1,0,0],RGBCo ]}]lor[0,0,1 Graphics
١٦٠
2
1.5
1
0.5
5
ﯾﺗﺿﺢ ﻟﻧﺎ ﻣن
4
2
3
1
اﻟرﺳم ان اﻟﻣﻧﺣﻧﯾن ﺗﻘﺎطﻌﺎ ﻗرﯾﺑﺎ ﻣن . x 2.5,x 3
ﺳوف ﻧﺳﺗﺧدم ﻫذﻩ اﻟﻘﯾم ﻛﻧﻘط ﺑداﯾﺔ ﺗﻘرﯾﺑﯾﺔ ﻟﻛل ﺣل ،وﻋﻠﻰ ذﻟك ادﺧﺎل : ]}aa1=FindRoot[f[x]g[x],{x,2.5 }{x2.54105 ﺗؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻲ ﻗرﯾب x=2.5وﻫو} {x2.54105وذﻟك ﻋﻧد y=0.461103 واﻟﺗﻰ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ :
aa2=f[x]/.aa1//Simplify 0.461103 اﯾﺿﺎ ﺑﺎدﺧﺎل : ]}aa3=FindRoot[f[x]g[x],{x,3 }{x2.9746 ﺗؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﺣل ﺗﻘرﯾﺑﻲ ﻗرﯾب x=3وذﻟك ﻋﻧد: y= 0.336065
واﻟﺗﻰ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ : aa4=f[x]/.aa3//Simplify 0.336065
)(٥-٤اﻟﻘواﺋم Lists ﺗﺳﺗﺧدم اﻟﻘواﺋم ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﺑﺷﻛل ﻛﺑﯾر ﻋﻧدﻣﺎ ﯾﻛون ﻫﻧﺎك ﺣﺎﺟﺔ اﻟﻰ ﺗﻧظﯾم ﻋدد ﻣن اﻟﻘﯾم ﺑﻐرض اﻟﺗﻌﺎﻣل ﻣﻌﻬﺎ ﻛوﺣدة واﺣدة .ﯾﻘدم ﻫذا اﻟﺑﻧد ﻣﺑﺎدئ اﻟﻌﻣﻠﯾﺎت اﻟﺗﻰ ﺗﺗم ﻋﻠﻰ اﻟﻘواﺋم واﻟﺟداول واﻟﺗﻰ ﺗﻔﯾد ﻓﻰ ﻣﺟﺎﻻت ﻛﺛﯾرة ﻣﺛل اﻟﺟﺑر اﻟﺧطﻰ واﻻﺣﺻﺎء .
١٦١
) (١-٥-٤ﺗﻌرﯾف اﻟﻘواﺋم ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﺗﺗﻛون اﻟﻘﺎﺋﻣﺔ listﻣن nﻣن اﻟﻌﻧﺎﺻر ﺗﺎﺧذ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : }]{elemene[[1]], elemene[[2]],…, elemene[[n-1]], elemene[[n ﺣﯾث ]] elemene[[iاﻟﻌﻧﺻر رﻗم . iاﻟﻌﻧﺎﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﺗﻔﺻل ﻓﯾﻣﺎ ﺑﯾﻧﻬﺎ ﻓﺻﻠﺔ " , " comma
.ﻋﺎدة اﻟﻘﺎﺋﻣﺔ
ﺗﻐﻠق ﺑﻘوﺳﯾن }…{ .ﻛل ﻗﺎﺋﻣﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﯾﺟب ان ﯾﻛون ﻟﻬﺎ اﺳم .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل } aa1={4,5,6,7,8و } bb1={4,5,6,7,8ﺗﻣﺛﻼن ﻗﺎﺋﻣﺗﺎن . ﻣﺣﺗوﯾﺎت اﻟﻘﺎﺋﻣﺔ )ﻋﻧﺎﺻر اﻟﻘﺎﺋﻣﺔ ( ﺗﻣﺛل اى ﻧوع ﻣن اﻟﻘﯾم ﻣﺛل اﻟرﻣوز او اﻟدوال او ﺟﻣل واﻟذى ﯾﺗﺿﺢ ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ واﻟﻣﺳﻣﺎﻩ : a11
]a11=[3,dog,"read ",Pi,{5,3},{} ,Sin }{3,dog,read ,,{5,3},{},Sin وﻛل ﻋﻧﺻر ﻣﻌروف ﻣوﻗﻌﻪ ﻓﻰ اﻟﻘﺎﺋﻣﺔ ،ﻓﻣﺛﻼ ﻣﻌروف ان Sinﻫو اﻟﻌﻧﺻر اﻻﺧﯾر ﻓﻰ اﻟﻘﺎﺋﻣﺔ و}{ اﻟﻌﻧﺻر اﻟﺳﺎدس ﻓﻰ اﻟﻘﺎﺋﻣﺔ و ﯾﻣﺛل ﻗﺎﺋﻣﺔ ﻻ ﺗﺣﺗوى ﻋﻠﻰ اى ﻋﻧﺎﺻر وﺗﺳﻣﻰ اﻟﻘﺎﺋﻣﺔ اﻟﻔﺎرﻏﺔ .empty list وﻣﻣﺎ ﯾﺟد اﻻﺷﺎرة اﻟﯾﻪ ان اﻻواﻣر ﻫﻧﺎ ﺑﻌض اﻟﻣراﺟﻊ ﺗﻌﺗﺑرﻫﺎ دوال . ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻓﻰ اﻟﻐﺎﻟب ﯾﺳﺗﺧدم اﻻﻣر Listﻟﻠﺣﺻول ﻋﻠﻰ ﻗﺎﺋﻣﺔ واﻟﺗﻰ ﯾﺎﺧذ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : ]]List [elemene[[1]], elemene[[2]],…, elemene[[n-1]], elemene[[n ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]List[3,5,6,8,9 }{3,5,6,8,9
وﯾﻣﻛن ﺗﻛوﯾن اﻟﻘواﺋم وذﻟك ﺑﻛﺗﺎﺑﺗﻬﺎ ﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﺎﻟﺗﺎﻟﻰ :
}{1,4,6,9,10 }{1,4,6,9,10 وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﻘواﺋم ﻣن ﺑراﻣﺞ اﺧري او ﯾﻣﻛن ﺗﻛوﯾﻧﻬﺎ ﺑﺎﺳﺗﺧدام اواﻣر اﻟﺟداول Tablesاو . Array ﺑﻔرض داﻟﺔ fوﻋدد : n اﻻﻣر :
١٦٢
]} Table[f[i],{i,nﯾﻛون ﻗﺎﺋﻣﺔ ﻣﻛوﻧﺎﺗﻬﺎ } ]. {f[1], f[2],…, f[n اﻻﻣر : ]} Table[f[i],{i,0,nﯾﻛون ﻗﺎﺋﻣﺔ ﻣﻛوﻧﺎﺗﻬﺎ } ]. {f[0], f[1],…, f[n اﻻﻣر : ]} Table[f[i],{i,n,mﯾﻛون ﻗﺎﺋﻣﺔ ﻣﻛوﻧﺎﺗﻬﺎ }]. {f[n], f[n+1],…, f[m-1], f[m اﻻﻣر : ]} ) Table[f[i],{i,imin,imax,stepﺣﯾث iﻣن i=iminاﻟﻰ i=imaxﺑﺧطوة ﻣﻘدارﻫﺎ istepﺗﻛون ﻗﺎﺋﻣﺔ ﻣﻛوﻧﺎﺗﻬﺎ ﻛﺎﻟﺗﺎﻟﻰ: }]. {f[imin],f[imin+step],f[imin+2*step],…,f[imax ﻫذا وﯾﻣﻛن ان ﺗﺳﺗﺑدل fﺑﺎى ﺗﻌﺑﯾر .expression
ﻣﺛﺎل ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]}Table[3k,{k,1,10,2 }{3,9,15,21,27 وﻫﻧﺎك ﻣﺛﺎل اﺧر :
]}Table[k,{k,1.5,6,.75 }{1.5,2.25,3.,3.75,4.5,5.25,6. وﻫﻧﺎك ﻣﺛﺎل اﺧر :
]}Table[book,{5 }{book,book,book,book,book وﻫﻧﺎك ﻣﺛﺎل اﺧر :
]}Table[Random[],{3 }{0.217321,0.389985,0.560344
ﻣﺛﺎل اﻟﻣطﻠوب ﺗﻛوﯾن ﻗﺎﺋﻣﺔ ﺗﺣﺗوى ﻋﻠﻰ اول ﻋﺷرة اﻋداد ﻣﺛﻠﺛﯾﺔ .
١٦٣
اﻟﺣل: ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Tableﻟﺗﻛوﯾن اول ﻋﺷرة اﻋداد ﻣﺛﻠﺛﯾﺔ .Triangle numbrs
]}f=Sum[i,{i,1,n
1 n 1 n 2 ]}Table[f,{n,1,10 }{1,3,6,10,15,21,28,36,45,55 وﯾﻣﻛن اﺳﺗﺧدام اﻟداﻟﺔ ) Arrayوﻗد ﺗﺳﻣﻰ اﻣر ﻓﻰ ﺑﻌض اﻟﻣراﺟﻊ ( ﻛﺎﻟﺗﺎﻟﻰ: ]Array[f,n واﻟﺗﻰ ﺗﻛون اﻟﻘﺎﺋﻣﺔ } ].{f[1], f[2],…, f[n
ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل : ]Array[f,5 }]{f[1],f[2],f[3],f[4],f[5
وﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻛﺎﻟﺘﺎﻟﻰ : ]}Array[f,{3,5 [{{f[1,1],f[1,2],f[1,3],f[1,4],f[1,5]},{f[2,1],f[2,2],f[2,3],f }}]2,4],f[2,5]},{f[3,1],f[3,2],f[3,3],f[3,4],f[3,5
ﺳوف ﻧﻌرف اﻟداﻟﺔ :
n 1 2 2
f [n _]
ﺛﻢ ﻧﺴﺘﺨﺪم اﻻﻣﺮ Arrayﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻘﺎﺋﻤﺔ.
n 1 ; 2 2
fn_
]aa2=Array[f,7
3 5 7 , 2, , 3, , 4 2 2 2
1,
وﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ ﺗﻛوﯾن اﻟﻘواﺋم ﺑﺎﺳﺗﺧدام اﻻﻣرﯾن Table , Rangeﻓﯾﻣﻛن ﺗﻛوﯾن ﻗواﺋم اﻻﻋداد ﺑﺎﺳﺗﺧدام اﻻﻣر Range ] Range[nﺣﯾث ﺗوﻟد اﻟﻘﺎﺋﻣﺔ } {1,2,…,nو ] Range[ n1,n2ﺗوﻟد اﻟﻘﺎﺋﻣﺔ } {n1,n1+1,…,n2-1 , n2و ١٦٤
] Range[n1,n2 , stepﺗوﻟد اﻟﻘﺎﺋﻣﺔ ﻣن اﻋداد ﻣرﺗﺑﺔ ﻣن n1اﻟﻰ n2ﺑﺧطوة step
ﻣﺛﺎل اﺳﺗﺧدم اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻟﺗوﻟﯾد اﻟﻘﺎﺋﻣﺔ }.{1,2,3,4,5,6,7,8,9,10
اﻟﺣل : ﻋﻣوﻣﺎ اﻟﻘﺎﺋﻣﺔ اﻟﻣﻌطﺎﻩ ﯾﻣﻛن ﺗﻛوﯾﻧﻬﺎ ﺑﻌدة طرق .ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﻛل ﻣن اﻟﺧﻣﺳﺔ اواﻣر اﻟﺗﺎﻟﯾﺔ ﺗوﻟد اﻟﻘﺎﺋﻣﺔ }.{1,2,3,4,5,6,7,8,9,10
}{1,2,3,4,5,6,7,8,9,10 }{1,2,3,4,5,6,7,8,9,10 ]}Table[i,{i,10 }{1,2,3,4,5,6,7,8,9,10 ]}Table[i,{i,1,10 }{1,2,3,4,5,6,7,8,9,10
i Table , i, 2, 20, 2 2 }{1,2,3,4,5,6,7,8,9,10 ]Range[10 }{1,2,3,4,5,6,7,8,9,10
ﻣﺛﺎل اﺳﺗﺧدم اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻟﺗوﻟﯾد اﻟﻘﺎﺋﻣﺔ }. {4, 1, 2,5
اﻟﺣل :
]Range[-4,7,3 }{-4,-1,2,5 اذا ﻟم ﺗﺣدد اﻟﻘﻔزة stepﻓﺎن اﻟزﯾﺎدة ﺗﻛون واﺣد ﻓﻰ ﻛل ﻣرة ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]Range[4,8 }{4,5,6,7,8
ﻣﺛﺎل اﺳﺗﺧدم اﻟداﻟﺔ Rangeﻟﺗوﻟﯾد اول ﻋﺷرون ﻋدد ﺻﺣﯾﺢ ﻣوﺟب
١٦٥
]aa1=Range[20 }{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
ﻣﺛﺎل اﺳﺗﺧدم اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻟﺗوﻟﯾد اﻟﻘﺎﺋﻣﺔ } {1,3/2,2,5/2,3,7/2,4ﺑﺎﻻﺳم .aa2
اﻟﺣل : ﻓﻰ ﻫذا اﻟﻣﺛﺎل ﺳوف ﻧوﻟد ﻗﺎﺋﻣﺔ واﻻﺳم ﻟﻠﻘﺎﺋﻣﺔ اﻟﻧﺎﺗﺟﺔ ﻫو aa2وﺳوف ﻧﻛون aa2ﺑطرق ﻣﺧﺗﻠﻔﺔ .
3 5 7 , 2, , 3, , 4 2 2 2
aa2 1,
3 5 7 , 2, , 3, , 4 2 2 2
1 2
ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻻواﻣر اﻟﺳﺎﺑﻘﺔ ﻓﻬﻧﺎك اﻻﻣر اﻟﺗﺎﻟﻰ :
]}Table[g[i,j]{i,imin,imax],{j,jmin,jmax
١٦٦
1,
aa2 Tablei, i, 1, 4, 3 5 7 , 2, , 3, , 4 2 2 2
1,
واﻟذى ﯾؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﻗﺎﺋﻣﺔ ﺗﺣﺗوى ﻋﻠﻰ ﻗﯾم fﻓﻰ اﻛﺛر ﻣن ﺑﻌد اى ﻧﺣﺻل ﻋﻠﻰ ﻗﺎﺋﻣﺔ ﻗواﺋم list of lists )اﻟﻘواﺋم اﻟﻣﺗداﺧﻠﺔ .(nested listsوﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻟﻘﺎﺋﻣﺔ اﻟﻣﺗداﺧﻠﺔ ﻓﻰ اﻟﺷﻛل اﻟﺗﻘﻠﯾدى ﻟﻠﻣﺻﻔوﻓﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر: . MatrixForm ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]}Table[i+j,{i,1,3},{j,1,4 }}{{2,3,4,5},{3,4,5,6},{4,5,6,7 واﻟﺗﻰ ﺗﺧﺗﻠف ﻋن اﻻﻣر اﻟﺗﺎﻟﻰ : ]}Table[i+j,{j,1,4},{i,1,3 }}{{2,3,4},{3,4,5},{4,5,6},{5,6,7
وﻋﻨﺪ اﺿﺎﻓﺔ اﻻﻣﺮ TableFormﯾﻈﮭﺮ اﻟﻨﺎﺗﺞ ﻓﻰ ﺷﻜﻞ ﻣﺼﻔﻮﻓﺔ . Table[i+j,{j,1,4},{i,1,3}]//TableForm
4 5 6 7
3 4 5 6
2 3 4 5
ﻣﺛﺎل ﻟﺗوﻟﯾد ﻗﺎﺋﻣﺔ aa3ﺗﺣﺗوى ﻋﻠﻰ ﻗﯾم اﻟداﻟﺔ h(i,j)=i+jﺣﯾث i=1,2,3,4 ; j=1,2,2,4,ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : h[i_,j_]:=i+j ]}aa3=Table[h[i,j],{i,1,4},{j,1,5 }}{{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8},{5,6,7,8,9 ]TableForm[aa3
6 7 8 9
5 6 7 8
4 5 6 7
3 4 5 6
2 3 4 5
ﻣﺛﺎل اﺳﺗﺧدم اﻻﻣر Tableﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺻﻔوف اﻟﺗﺳﻌﺔ اﻻوﻟﻰ ﻣن ﻣﺛﻠث ﺑﺎﺳﻛﺎل Pascal's Triangleﺛم وﺿﻊ اﻟﻧﺗﯾﺟﺔ اﻟﻧﻬﺎﺋﯾﺔ ﻓﻰ ﺻورة اﻟﺟدول اﻟﺗﻘﻠﯾدﯾﺔ .
;]}aa1=Table[Binomial[n,k],{n,0,8},{k,0,n ]aa2=TableForm[aa1 ١٦٧
1 8
1
1 7 28
1 6 21 56
1 5 15 35 70
1 3 6 10 15 21 28
1 4 10 20 35 56
1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8
ﻣﺛﺎل اﻟﻣطﻠوب اﺳﺗﺧدام Tableﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻣود اﻟﺛﺎﻟث ﻣن ﻣﺛﻠث ﺑﺎﺳﻛﺎل Pascal's Triangleﺣﯾث
n 2
ووﺿﻊ
اﻟﻧﺎﺗﺞ ﻓﻰ ﻗﺎﺋﻣﺔ :
اﻟﺣل : ]}aa2=Table[Binomial[n,2],{n,1,10 }{0,1,3,6,10,15,21,28,36,45
) (٢-٥-٤اﺑﻌﺎد اﻟﻘواﺋم Dimension of Lists ﯾﻣﻛن ﺗﻘدﯾر ﺣﺟم sizeاﻟﻘﺎﺋﻣﺔ وذﻟك ﺑﺎﺳﺗﺧدام داﻟﺔ اﻟطول Lengthودوال اﻻﺑﻌﺎد . Dimensionsﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻓﻰ ﺣﺎﻟﺔ اﻟﻘﺎﺋﻣﺔ اﻟﺑﺳﯾطﺔ اﻟﻐﯾر ﻣﺗداﺧﻠﺔ ) un-nestedاﻟﺧطﯾﺔ (linearﻓﺎن داﻟﺔ اﻟطول Length functionﺗﻌطﻰ ﻟﻧﺎ ﻋدد اﻟﻌﻧﺎﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]}Length[{a,b,c,d,e,f 6 اﻟﺻورة اﻟﻌﺎﻣﺔ ﻟﻠداﻟﺔ Lengthﻫﻰ ] Length[listﺣﯾث listﺗﻣﺛل اﻟﻘﺎﺋﻣﺔ . ﻓﻰ ﺣﺎﻟﺔ اﻟﻘﺎﺋﻣﺔ اﻟﺗﻰ ﺑداﺧﻠﻬﺎ ﻗواﺋم nested listﻓﺎن ﻛل ﻗﺎﺋﻣﺔ داﺧﻠﯾﺔ ﺗﻣﺛل ﻋﻧﺻر .وﻋﻠﻰ ذﻟك ﻓﺎن اﻟطول ﻟﻠﻘﺎﺋﻣﺔ اﻟﻣﺗداﺧﻠﺔ ﯾﻣﺛل ﻋدد اﻟﻘواﺋم اﻟداﺧﻠﯾﺔ inner listsوﻟﯾس اﺣﺟﺎﻣﻬﺎ ،ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]}}}Length[{{{1,2},{3,4},{5,6}},{{a,b},{c,d},{e,f 2 ١٦٨
ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت اﻛﺛر ﻋن اﻟﻘواﺋم اﻟداﺧﻠﯾﺔ ﺗﺳﺗﺧدم داﻟﺔ اﻻﺑﻌﺎد .Dimensions functionﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]}}}Dimensions[{{{1,2},{3,4},{5,6}},{{a,b},{c,d},{e,f }{2,3,2 واﻟﺗﻰ ﺗوﺿﺢ وﺟود ﻗﺎﺋﻣﺗﯾن داﺧل اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ وﻛل ﻗﺎﺋﻣﺔ داﺧﻠﯾﺔ ﺗﺣﺗوى ﻋﻠﻰ ﺛﻼث ﻗواﺋم وﻛل ﻗﺎﺋﻣﺔ ﻣن اﻟﺛﻼث ﻗواﺋم ﺗﺣﺗوى ﻋﻠﻰ ﻋﻧﺻرﯾن .
) (٣-٥-٤اﻟﻌﻣـل ﻋﻠـﻰ ﻋﻧﺎﺻـر اﻟﻘـواﺋم Working with the Elements of a Lists )أ( اﻟﻣوﻗﻊ ﻓﻰ اﻟﻘﺎﺋﻣﺔ Positions in a list اﻟﻣوﻗﻊ ﻟﻌﻧﺎﺻر ﺧﺎﺻﺔ ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﯾﻣﻛن ﺗﻘدﯾرﻩ ﺑﺎﺳﺗﺧدام اﻣر اﻟﻣوﻗﻊ .
]Position[{5,7,5,2,1,4},5 }}{{1},{3 اى ان اﻟﻣﺧرج ﯾوﺿﺢ ان اﻟﻌدد 5ﯾظﻬر ﻓﻰ اﻟﻣﻛﺎن اﻻول واﻟﻣﻛﺎن اﻟﺛﺎﻟث ﻣن اﻟﻘﺎﺋﻣﺔ . ﻟﻣﻌرﻓﺔ ﻣوﻗﻊ اﻟﻌدد 19ﻓﻰ اﻟﻘﺎﺋﻣﺔ rr1ﯾﺳﺗﺧدم اﻻﻣر Position
}rr1={1,4,6,9,19 ]Position[rr1,19 }}{{5 او ﯾﻜﺘﺐ ﻛﺎﻟﺘﺎﻟﻰ:
]Position[{1,4,6,9,19},19 }}{{5 ظﻬور اﻻﻗواس ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ }} {{ ﻓﻰ اﻟﻣﺧرج ﻣﻔﯾد وذﻟك ﻟﻣﻧﻊ اﻟﻠﺑس ﻓﻰ اﻻواﻣر اﻟﺳﺎﺑﻘﺔ ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]Position[{{a,b,c},{d,e,f}},f }}{{2,3 واﻟﺗﻰ ﺗﻌﻧﻰ ان fﺗظﻬر ﻣرة واﺣدة ﻓﻰ اﻟﻣﻛﺎن اﻟﺛﺎﻟث داﺧل اﻟﻘﺎﺋﻣﺔ اﻟداﺧﻠﯾﺔ اﻟﺛﺎﻧﯾﺔ . )ب( اﺳﺗﺧﻼص ﻋﻧﺎﺻر واﻋﺎدة ﺗرﺗﯾب اﻟﻘﺎﺋﻣﺔ Extracting Elements and Rearranging Lists
ﯾﻣﻛن اﺳﺗﺧﻼص اﻟﻌﻧﺎﺻر ﺑﺳﻬوﻟﺔ ﻣن ﻣوﻗﻊ ﺧﺎص ﻣن اﻟﻘﺎﺋﻣﺔ ﺑﺎﺳﺗﺧدام اﻟداﻟﺔ . Part اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻬذﻩ اﻟداﻟﺔ ﻫﻰ ] Part[list,iاى اﺳﺗﺧﻼص اﻟﻌﻧﺻر رﻗم iﻓﻰ اﻟﻘﺎﺋﻣﺔ . list ﻫذﻩ اﻟداﻟﺔ ﻟﻬﺎ ﺻﯾﻐﺔ ادﺧﺎل ﻗﯾﺎﺳﯾﺔ ]] ، list[[iﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﺳﺗﺧﻠص اﻟﻌﻧﺻر رﻗم ﺛﻼﺛﺔ ﻓﻰ اﻟﻘﺎﺋﻣﺔ ١٦٩
]Part[{2,3,7,8,1,4},3 7 او ﺑﺎﺳﺗﺧدام اﻟﺻﯾﻐﺔ اﻻدﺧﺎل اﻟﻘﯾﺎﺳﯾﺔ
]] list[[iﻟﻠﺣﺻول ﻋﻠﻰ ﻧﻔس ﻧﺗﺎﺋﺞ:
]]{2,3,7,8,1,4}[[3 7
ﻟﻠﺘﺴﮭﯿﻞ ﯾﻤﻜﻦ اﻋﻄﺎء اﻟﻘﺎﺋﻤﺔ اﺳﻢ ﻛﺎﻟﺘﺎﻟﻰ : }a={2,3,7,8,8,1,4,1 }{2,3,7,8,8,1,4,1 ]Part[a,3 7 ]]a[[3 7 اذا ﻛﺎن اﻫﺗﻣﺎﻣﻧﺎ ﺑﺎﻟﻌﻧﺎﺻر ﻓﻰ اﻛﺛر ﻣن ﻣوﻗﻊ ﻓﺎﻧﻪ ﯾﻣﻛن اﺳﺗﺧﻼﺻﻬم ﺑﺎﺳﺗﺧدام اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ]] list[[i,jو
i j
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]]}{2,3,7,8,1,4}[[{2,1 }{3,2
]]}a[[{2,1 }{3,2 وﻛﻣﺛﺎل اﺧر ﻟﻘﺎﺋﻣﺔ ﻣﺗداﺧﻠﺔ : ]]{{1,4},{2,6},{5,4}}[[2,1 2 }}c11={{1,4},{2,6},{5,4 }}{{1,4},{2,6},{5,4 ]]c11[[2,1 2
وﻛﻣﺛﺎل اﺧر ﻟﻠﺗوﺿﯾﺢ: }aa1={1,4,5,6 }{1,4,5,6 ]]aa1[[1 1 ﯾﺳﺗﺧﻠص اﻟﻌﻧﺻر رﻗم واﺣد ﻓﻰ اﻟﻘﺎﺋﻣﺔ او ﺗﺳﺗﺧدام اﻟداﻟﻪ ] Part[list,iﻟﻠﺣﺻول ﻋﻠﻰ ﻧﻔس ﻧﺗﺎﺋﺞ اﻻﻣر اﻟﺳﺎﺑق :
]Part[aa1,1 1 اﯾﺿﺎ اﻻﻣر اﻟﺗﺎﻟﻰ : ]]}aa1[[{1,3 }{1,5
١٧٠
ﯾﺳﺗﺧﻠص اﻟﻌﻧﺻر رﻗم واﺣد و اﻟﻌﻧﺻر رﻗم ﺛﻼﺛﺔ ﻣن اﻟﻘﺎﺋﻣﺔ . اﻻﻣر Partﯾﻌﺗﺑر ﺗﻌﺑﯾر : ]Part[{a,b,c,d,e},2 b ﻛﻣﺎ ﯾﻼﺣظ ان اﻟﻣﻌﺎﻣل اﻻول ﻟﻠﺗﻌﺑﯾر اﻟﺳﺎﺑق ﯾﻣﺛل ﻧﻔﺳﻪ ﺗﻌﺑﯾر اﺧر: وﻛﺎﻣﺛﻠﺔ اﺧرى ﻟﻼﻣر Partﻛﺗﻌﺑﯾر : ]Part[x+2y+z^2,3
z2 ]Part[x+2y+z^2,-3 x ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻧﻪ ﯾﻣﻛن اﺳﺗﺧﻼص ﻋﻧﺎﺻر ﻣن اﻣﺎﻛن ﺧﺎﺻﺔ ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﻓﺎﻧﺔ ﯾﻣﻛن اﺧذ ﻋﻧﺎﺻر اﻣﺎ ﻣن اﻟﻣﻘدﻣﺔ او اﻟﻣؤﺧرة ﻟﻠﻘﺎﺋﻣﺔ :
]Take[{2,3,7,8,1,4},2 }{2,3
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻬذﻩ اﻟداﻟﺔ ﻫﻰ ] Take[list,iاى اﺳﺗﺧﻼص اﻟﻌﻧﺎﺻر اﻻوﻟﻰ اﻟﺗﻰ ﻋددﻫﺎ iﻣن اﻟﻘﺎﺋﻣﺔ .list ]Take[{2,3,7,8,1,4},-2 }{1,4
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻬذﻩ اﻟداﻟﺔ ﻫﻰ ] Take[list,-iاى اﺳﺗﺧﻼص اﻟﻌﻧﺎﺻر اﻻﺧﯾرة اﻟﺗﻰ ﻋددﻫﺎ iﻣن اﻟﻘﺎﺋﻣﺔ .list اذا ﻛﺎن اﻫﺗﻣﺎﻣﻧﺎ ﻓﻰ اﺳﺗﺧﻼص ﻋدد ﻣن اﻟﻌﻧﺎﺻر اﻟﻣﺗﺗﺎﻟﯾﺔ وﻟﯾس ﻣن اﻟﺿرورى اﻟﻌﻧﺎﺻر اﻻﻣﺎﻣﯾﺔ او اﻟﺧﻠﻔﯾﺔ :
]}Take[{2,3,7,8,1,4},{2,4 }{3,7,8 اى اﺧﺗﯾﺎر اﻟﻌﻧﺎﺻر اﻟﺗﻰ ﺗرﺗﯾﺑﻬﺎ ﻣن اﻟﺛﺎﻧﻰ اﻟﻰ اﻟراﺑﻊ واﻟﺗﻰ ﺗﺧﺗﻠف ﻋن اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ :
]}Take[{2,3,7,8,1,4},{-5,-3 }{3,7,8 اى اﺧﺗﯾﺎر اﻟﻌﻧﺎﺻر اﻟﺗﻰ ﺗرﺗﯾﺑﻬﺎ ﻣن اﻟﺧﺎﻣس ﻣن اﻟﺧﻠف اﻟﻰ اﻟﺛﺎﻟث ﻣن اﻟﺧﻠف واﻟﺗﻰ ﺗﺧﺗﻠف ﻋن اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ :
]}Take[{2,3,7,8,1,4},{-5,4 }{3,7,8 اى اﺧﺗﯾﺎر اﻟﻌﻧﺎﺻر اﻟﺗﻰ ﺗرﺗﯾﺑﻬﺎ اﻟﺧﺎﻣس ﻣن اﻟﺧﻠف اﻟﻰ اﻟراﺑﻊ ﻣن اﻻﻣﺎم .ﻋﻧد اﺳﺗﺧدام اﻟداﻟﺔ Takeﻧﺳﺗﺧﻠص ﻋﻧﺎﺻر ﻣن اﻟﻘﺎﺋﻣﺔ وﺗﺣﺗﻔظ اﻟﻘﺎﺋﻣﺔ ﺑﻌﻧﺎﺻرﻫﺎ . ﻣن اﻟﻣﻣﻛن ازاﻟﺔ ﺑﻌض اﻟﻌﻧﺎﺻر ﻣن اﻟﻘﺎﺋﻣﺔ ﺳواء ﻣن اﻻﻣﺎم او ﻣن اﻟﺧﻠف او ﻋﻧﺎﺻر ﻣﺗﺗﺎﺑﻌﺔ ﺑﺎﺳﺗﺧدام اﻟداﻟﺔ Drop واﻟﻣﺧرج ﻋﺑﺎرة ﻋن ﻗﺎﺋﻣﺔ ﺑﻌد اﻻزاﻟﺔ : ١٧١
]Drop[{2,3,7,8,1,4},2 }{7,8,1,4
]Drop[{2,3,7,8,1,4},-2 }{2,3,7,8
]}Drop[{2,3,7,8,1,4},{3,5 }{2,3,4
ﻣﺛﺎل ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Rangeﻟﺗوﻟﯾد اول ﻋﺷرون رﻗم ﺻﺣﯾﺢ ﻣوﺟب ]aa1=Range[20 }{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
ﺛم ﻧﻌرف اﻻواﻣر اﻟﺗﺎﻟﯾﺔ : ]Drop[aa1,4 }{5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 ﺣﯾث ﯾﺗم ﺣذف ارﺑﻌﺔ ﻋﻧﺎﺻر ﻣن ﺑداﯾﺔ اﻟﻘﺎﺋﻣﺔ aa1 ]Drop[aa1,-4 }{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ﺣﯾث ﯾﺗم ﺣذف ارﺑﻌﺔ ﻋﻧﺎﺻر ﻣن ﻧﮭﺎﯾﺔ اﻟﻘﺎﺋﻣﺔ aa1 ]}Drop[aa1,{3 }{1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 ﺣﯾث ﯾﺗم ﺣذف اﻟﻌﻧﺻر اﻟﺛﺎﻟث ﻣن اﻟﻘﺎﺋﻣﺔ ]}Drop[aa1,{4,8 }{1,2,3,9,10,11,12,13,14,15,16,17,18,19,20 ﺣﯾث ﯾﺗم ﺣذف اﻟﻌﻧﺎﺻر ﻣن اﻟراﺑﻊ اﻟﻰ اﻟﺛﺎﻣن ﻣن اﻟﻘﺎﺋﻣﺔ . وﻓﯾﻣﺎ ﯾﻠﻰ اﻟﺻﯾﻎ اﻟﻣﺧﺗﻠﻔﺔ ﻟﻼﻣر Drop اﻟﻌﻣل اﻟﺗﻰ ﯾﻘوم ﺑﻪ اﻻﻣر
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر
ﺣذف nﻣن اﻟﻌﻧﺎﺻر ﻣن ﺑداﯾﺔ اﻟﻘﺎﺋﻣﺔ list
]Drop[list,n
ﺣذف nﻣن اﻟﻌﻧﺎﺻر ﻣن ﻧﻬﺎﯾﺔ اﻟﻘﺎﺋﻣﺔ list
]Drop[list,-n
١٧٢
ﺣذف اﻟﻌﻧﺻر رﻗم nﻣن اﻟﻘﺎﺋم list
]}Drop[list,{n
ﺣذف ﻋﻧﺎﺻر ﻣن اﻟﻘﺎﺋﻣﺔ listاﺑﺗداء ﻣن اﻟﻌﻧﺻر رﻗم n
]}Drop[list,{m,n
اﻟﻰ اﻟﻌﻧﺻر رﻗم m ﯾﻣﻛن ازاﻟﺔ ﻋﻧﺎﺻر ﻋﻧد ﻣواﻗﻊ ﺧﺎﺻﺔ .ﯾﺳﺗﺧدم اﻻﻣر Deleteﻻزاﻟﺔ اﻟﻌﻧﺻر اﻟﺛﺎﻧﻰ ﻣن اﻟﻘﺎﺋﻣﺔ ﻛﻣﺎ ﯾﻠﻰ :
]Delete[{2,3,7,8,1,4},2 }{2,7,8,1,4 وﻓﻰ اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﺳﺗﺧدم ﻻزاﻟﺔ اﻟﻌﻧﺻر اﻟﺛﺎﻧﻰ واﻟﺧﺎﻣس ﻣن اﻟﻘﺎﺋﻣﺔ
]}}Delete[{2,3,7,8,1,4},{{2},{5 }{2,7,8,4
اﯾﺿﺎ اﻻﻣر Insertﯾﺳﺗﺧدم ﻻدﺧﺎل ﻋﻧﺻر ﻓﻰ ﻣوﻗﻊ ﻣﻌﯾن ،ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻻدﺧﺎل اﻟﻌﻧﺻر 9ﻓﻰ اﻟﻣوﻗﻊ اﻟﺛﺎﻧﻰ ﻣن اﻟﻘﺎﺋﻣﺔ ]Insert[aa1,9,2
}{1,9,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭﺬا اﻻﻣﺮ ھﻮ ]Insert[list,element,n اى اﺿﺎﻓﺔ اﻟﻌﻧﺻر elementﻓﻰ اﻟﻘﺎﺋﻣﺔ listﻓﻰ اﻟﻣوﻗﻊ رﻗم .n اﻟﻌﻧﺎﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﯾﻣﻛن اﺳﺗﺑداﻟﮭﺎ ﺑﻌﻧﺎﺻر اﺧرى .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻓﻰ اﻻﻣر اﻟﺗﺎﻟﻰ ﺗﺳﺗﺑدل 3ﺑـ 5ﻓﻰ
اﻻﻣر اﻟﺗﺎﻟﻰ : ]ReplacePart[{2,3,7,8,1,4},5,2 }{2,5,7,8,1,4 اﻻﻣر ] First[listﺗﺳﺗﺧدم ﻓﻰ اﯾﺟﺎد اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟﻘﺎﺋﻣﺔ list
]}First[{2,3,7,8,1,4 2 اﻻﻣﺮ ] Last[listﺗﺳﺗﺧدم ﻓﻰ اﯾﺟﺎد اﻟﻌﻧﺻر اﻻﺧﯾر ﻓﻰ اﻟﻘﺎﺋﻣﺔ list
]}Last[{2,3,7,8,1,4 4 اﻻﻣﺮ ] Rest[listﺗﺳﺗﺧدم ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ listﺑﻌد ﺣذف اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟﻘﺎﺋﻣﺔ
]}Rest[{2,3,7,8,1,4 }{3,7,8,1,4 اﯾﻀﺎ ھﻨﺎك اﻣﺮ ﯾﺴﺘﺨﻠﺺ ﺑﻌﺾ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻰ ﺗﺤﻘﻖ ﺷﺮوط ﻣﻌﯿﻨﺔ )اى اﻟﺘﻰ ﺗﺤﻘﻖ اﻟﺼﻮاب ﻋﻨﺪﻣﺎ ﺗﻄﺒﻖ داﻟﺔ اﻟﺘﻨﺒﺎ Predicate functionﻋﻠﯿﮭﻢ (
]Select[{2,3,7,8,1,4},EvenQ ١٧٣
}{2,8,4 اﻟﺘﺮﺗﯿﺐ ﻟﻌﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ ﯾﻤﻜﻦ ﻋﻜﺴﺔ ﺑﺎﻻﻣﺮ Reverse
]}Reverse[{2,3,7,8,1,4 }{4,1,8,7,3,2 اﻟﻌﻨﺎﺻﺮ ﯾﻤﻜﻦ اﻋﺎدة ﺗﺮﺗﯿﺒﮭﺎ ﻓﻰ ﺗﺮﺗﯿﺐ ﯾﺴﻤﻰ Canonical orderاى ان اﻻرﻗﺎم اوﻻ ﺛﻢ اﻟﺤﺮوف ،ﻛﻤﺎ ان اﻻرﻗﺎم ﺗﺮﺗﺐ ﺗﺼﺎﻋﺪﯾﺎ اﻣﺎ اﻟﺤﺮوف ﻓﺘﺮﺗﺐ اﺑﺠﺪﯾﺎ وﯾﺗم ذﻟك ﺑﺎﻻﻣر Sort
]}Sort[{2,7,e,1,a,5 }{1,2,5,7,a,e وﻋﻨﺪ ﺗﻄﺒﯿﻖ ھﺬا اﻻﻣﺮ ﻋﻠﻰ اﻟﻘﺎﺋﻤﺔ اﻟﻤﺘﺪاﺧﻠﺔ ﻓﺎن اﻟﺪاﻟﺔ ﺗﺴﺘﺨﺪم اﻟﻌﻨﺼﺮ ﻻول ﻓﻰ ﻛﻞ ﻗﺎﺋﻤﺔ ﻣﺘﺪاﺧﻠﺔ ﻓﻰ اﻟﺘﺮﺗﯿﺐ
]}}Sort[{{2,c},{7,9},{e,f,g},{1,4.5},{x,y,z }}{{1,4.5},{2,c},{7,9},{e,f,g},{x,y,z
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻬذﻩ اﻟداﻟﺔ ] Sort[listﺣﯾث ﯾﺗم ﺗرﺗﯾب ﻋﻧﺎﺻر اﻟﻘﺎﺋﻣﺔ ﺑﺣﯾث ﯾﺗم ﺗرﺗﯾب اﻻﻋداد ﺗﺻﺎﻋدﯾﺎ ﺛم
ﺗرﺗﯾب اﻟﺣروف اﺑﺟدﯾﺎ ﻓﻰ اﻟﻘﺎﺋﻣﺔ . list
ﻛﻞ اﻟﻌﻨﺎﺻﺮ ﯾﻤﻜﻦ ﺗﺪوﯾﺮھﺎ ﺣﺴﺐ ﻣﻮﻗﻊ رﻗﻢ ﻣﻌﯿﻦ اﻣﺎ ﻣﻦ اﻟﯿﺴﺎر او ﻣﻦ اﻟﯿﻤﯿﻦ ﻛﺎﻟﺘﺎﻟﻰ :
]RotateLeft[{2,e,1,a,5},2 }{1,a,5,2,e ]RotateRight[{2,e,1,a,5},2 }{a,5,2,e,1
ﯾﻣﻛن ان ﻧﻔرد اﻟﻘﺎﺋﻣﺔ اﻟﻣﺗداﺧﻠﺔ اﻟﻰ اﻣﺗدادات ﻣﺧﺗﻠﻔﺔ .اى ﯾﻣﻛن ازاﻟﺔ ﻛل اﻻﻗواس واﻟﺣﺻول ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺧطﯾﺔ ﻣن اﻟﻌﻧﺎﺻر وﯾﺗم ذﻟك ﺑﺎﻻﻣر اﻟﺗﺎﻟﻰ :
]}}}Flatten[{{{3,1},{1,2}},{{5,3},{7,4 }{3,1,1,2,5,3,7,4 او ﯾﻣﻛن ﺗﺣدﯾد درﺟﺔ اﻻزاﻟﺔ ،ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﯾﻣﻛن ازاﻟﺔ ﺑﻌض اﻟﻘواﺋم اﻟﻣﺗداﺧﻠﺔ .ﻣﺛﻼ اذا ﻛﺎن ﻟدﯾﻧﺎ ﻗﺎﺋﻣﺗﯾن ﻣﺗداﺧﻠﺗﯾن وﻛل واﺣدة ﺗﺣﺗوى ﻋﻠﻰ زوﺟﯾن ﻣرﺗﺑﯾن ﯾﻣﻛن ﺗﺣوﯾﻠﻬﺎ اﻟﻰ ﻗﺎﺋﻣﺔ واﺣدة ﺗﺣﺗوى ﻋﻠﻰ ارﺑﻌﺔ ازواج ﻣرﺗﺑﺔ ]Flatten[{{{3,1},{1,2}},{{5,3},{7,4}}},1 }}{{3,1},{1,2},{5,3},{7,4
اﻟداﻟﺔ Partitionﺗﻌﯾد ﺗرﺗﯾب ﻋﻧﺎﺻر اﻟﻘﺎﺋﻣﺔ وذﻟك ﻟﻠﺣﺻول ﻋﻠﻰ ﻗﺎﺋﻣﺔ ﻣﺗداﺧﻠﺔ .
]Partition[{2,3,7,8,1,4},2 }}{{2,3},{7,8},{1,4 ١٧٤
ﯾﻣﻛن اﺧﺗﯾﺎر ﺑﻌض اﻟﻌﻧﺎﺻر ﻣن اﻟﻘﺎﺋﻣﺔ .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﺧذ اﻟﻌﻧﺎﺻر اﻟﺗﻰ ﻓﻰ ﻣوﻗﻊ ﻓردى .
]Partition[{2,3,7,8,1,4},1,2 }}{{2},{7},{1 اﯾﺿﺎ ﯾﻣﻛن وﺿﻊ اﻟﻌﻧﺎﺻر ﻓﻰ ازواج ﺑﺣﯾث ان اﻟﻌﻧﺻر اﻟﺛﺎﯨﻰ ﻫو اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟزوج اﻟذى ﯾﻠﯾﻪ .
]Partition[{2,3,7,8,1,4},2,1 }}{{2,3},{3,7},{7,8},{8,1},{1,4
اﻻﻣر: Transposeﯾﻌﻣل ﻛﺎﻟﺗﺎﻟﻰ : ]}}Transpose[{{5,2,7,3},{4,6,8,4 }}{{5,4},{2,6},{7,8},{3,4 ]}}Transpose[{{5,2,7,3},{4,6,8,4},{6,5,3,1 }}{{5,4,6},{2,6,5},{7,8,3},{3,4,1 ﻋﻨﺎﺻﺮ ﯾﻤﻜﻦ ان ﺗﻀﺎف ﻓﻰ اﻟﻤﻘﺪﻣﺔ او ﻓﻰ اﻟﺨﻠﻒ او ﻓﻰ ﻣﻜﺎن ﺧﺎص ﻓﻰ اﻟﻘﺎﺋﻤﺔ .
]Append[{2,3,7,8,1,4},5 }{2,3,7,8,1,4,5 اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭذا اﻻﻣر]Append[list,element اى اﺿﺎﻓﺔ اﻟﻌﻧﺻر elementﻓﻰ ﻧﻬﺎﯾﺔ اﻟﻘﺎﺋﻣﺔ . list ﻫذا اﻻﻣر ﯾﻣﺛل ﺗﻌﺑﯾر ]Append[w+xy,z w+xy+z اﯾﺿﺎ اﻟﻣﻌﺎﻣل اﻻول ﻓﻰ اﻟﺗﻌﺑﯾر ﯾﻣﺛل ﺗﻌﺑﯾر ]FullForm[w+xy ]Plus[w,xy اﯾﺿﺎ ﻧﺎﺗﺞ اﻻﻣر ﯾﻣﺛل ﺗﻌﺑﯾر .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ]FullForm[w+xy+z ]Plus[w,xy,z
اﯾﺿﺎ ﯾﻣﻛن اﺿﺎﻓﺔ ﻋﻧﺎﺻر ﻓﻰ ﺑداﯾﺔ اﻟﻘﺎﺋﻣﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر Prepend
]Prepend[{2,3,7,8,1,4},5 }{5,2,3,7,8,1,4 ١٧٥
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭذا اﻻﻣر ھﻰ ]Prepend[list,element اى اﺿﺎﻓﺔ اﻟﻌﻧﺻر elementﻓﻰ ﺑداﯾﺔ اﻟﻘﺎﺋﻣﺔ . list
اﻟﻌﻨﺎﺻﺮ ﻓﻰ اﻟﻘﺎﺋﻤﺔ ﯾﻤﻜﻦ اﺣﻼﻟﮭﺎ ﺑﻌﻨﺎﺻﺮ اﺧﺮى ،ﻓﻌﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﯾﻤﻜﻦ اﺳﺘﺒﺪال اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻰ ﺑﺎﻟﻌﻨﺼﺮ
5
]ReplacePart[{2,3,7,8,1,4},5,2 }{2,5,7,8,1,4
ﻣﺛﺎل ﯾﻣﻛن ﺗوﺿﯾﺢ اﻟدوال اﻟﺳﺎﺑﻘﺔ ﻣن ﺧﻼل اﻟﻘﺎﺋﻣﺔ }{1,4,6,9,19
}rr1={1,4,6,9,19 }{1,4,6,9,19 ﻟﻠﺣﺻول ﻋﻠﻰ ﻋدد اﻟﻌﻧﺎﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ :
]Length[rr1 5 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻧﺻر اﻻول اﻟﻘﺎﺋﻣﺔ ]First[rr1 1 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻧﺻر اﻻﺧﯾر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ]Last[rr1 19 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻧﺻر اﻟذى ﺗرﺗﯾﺑﮫ اﻟراﺑﻊ ﻓﻰ اﻟﻘﺎﺋﻣﺔ ]]rr1[[4 9 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻧﺻر اﻟذى ﺗرﺗﯾﺑﮫ اﻟﺧﺎﻣس ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر Partﺑدﻻ ﻣن ]]rr1[[5 ]Part[rr1,5 19 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻧﺻراﻻول واﻟراﺑﻊ ﻓﻰ اﻟﻘﺎﺋﻣﺔ
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﻧﺎﺗﺞ اﻟﺳﺎﺑق ﺑﺎﺳﺗﺧدام اﻻﻣر Part
]]}rr1[[{1,4 }{1,9 ﺑدﻻ ﻣن اﻻﻣر ]]}rr1[[{1,4 ]}Part[rr1,{1,4 }{1,9
ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﺜﻼث اﻋﺪاد اﻻوﻟﻰ ﻓﻰ اﻟﻘﺎﺋﻤﺔ ]Take[rr1,3 ١٧٦
}{1,4,6 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌدد اﻟراﺑﻊ واﻟﺧﺎﻣس ﻓﻰ اﻟﻘﺎﺋﻣﺔ ]}Take[rr1,{4,5 }{9,19 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟرﻗﻣﯾن اﻻﺧﯾرﯾن ﻓﻰ اﻟﻘﺎﺋﻣﺔ ]Take[rr1,-2 }{9,19
) (٤-٥-٤اﻟﻌﻣل ﻣﻊ ﻋدة ﻗواﺋم Working with Several Lists ﻫﻧﺎك اﻟﻌدﯾد ﻣن اﻟدوال )اﻻواﻣر( اﻟﺗﻰ ﺗﺗم ﻋﻠﻰ اﻟﻘواﺋم واﻟﻣوﺿﺣﺔ ﻓﻰ اﻟﺟدول اﻟﺗﺎﻟﻰ : اﻟﻌﻣل اﻟذى ﯾﻘوم ﺑﻪ
اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻠداﻟﺔ
اﺿﺎﻓﺔ اﻟﻘواﺋم ﻋﻠﻰ ﺑﻌﺿﻬﺎ ﺑﺣﯾث ﺗﺣﺗوى اﻟﻘﺎﺋﻣﺔ اﻟﻧﺎﺗﺟﺔ
]…Joint[]list1,list2,
ﻋﻠﻰ ﻋدد ﻣن اﻟﻌﻧﺎﺻر ﯾﺳﺎوى ﻣﺟﻣوع اﻋداد اﻟﻌﻧﺎﺻر ﻓﻰ ﻛل ﻗﺎﺋﻣﺔ
اﺗﺣﺎد اﻟﻔﺋﺎت list1 list2 list3...
ﺣﯾث
]Union[list1,list2,...
ﯾﺗم ﺣذف اﻟﻌﻧﺎﺻر اﻟﻣﻛررة ﻓﻰ اﻟﻘواﺋم
ﺗﻘﺎطﻊ اﻟﻔﺋﺎت list1 list2 list3 ...
]Inter sec tion[list1,list2,...
ﺗﺟزﺋﺔ اﻟﻘﺎﺋﻣﺔ listاﻟﻰ ﻗواﺋم ﻓرﻋﯾﺔ ﻣﺗﺑﺎﻋدة ﻛل ﻣﻧﻬﺎ ﯾﺣﺗوى
]Partition [list,n
ﻋﻠﻰ nﻣن اﻟﻌﻧﺎﺻر اﯾﺟﺎد ﻣﻛﻣﻠﺔ اﻟﻔﺋﺔ eallﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻔﺋﺎت … ، e1,e2,اى
]…Complement[eall,e1,e2,
اﯾﺟﺎد اﻟﻌﻧﺎﺻر ﻓﻰ اﻟﻔﺋﺔ eallواﻟﻐﯾر ﻣوﺟودة ﻓﻰ اﻟﻔﺋﺎت …e1,e2,
ﺑﻔرض اﻟﻘواﺋم qq1,qq2,qq3 }qq1={a,b,c,d }{a,b,c,d }qq2={c,d, e,h }qq3={a,c,j,k }{a,c,j,k ١٧٧
اﺿﺎﻓﺔ اﻟﻘواﺋم qq1,qq2,qq3ﻣﻌﺎ ﺑﺣﯾث ﺗﺣﺗوى اﻟﻘﺎﺋﻣﺔ اﻟﻧﺎﺗﺟﺔ ﻋﻠﻰ ﻋدد ﻣن اﻟﻌﻧﺎﺻر ﯾﺳﺎوى ﻣﺟﻣوع اﻟﻌﻧﺎﺻر ﻓﻰ ﻛل ﻓﺋﺔ ]Join[qq1,qq2,qq3 }{a,b,c,d,c,d,e,h,a,c,j,k
اﺗﺣﺎد اﻟﻔﺋﺎت qq1 qq2 qq3 ﺣﯿﺚ ﯾﺘﻢ ﺣﺬف اﻟﻌﻨﺎﺻﺮ اﻟﻤﻜﺮرة ﻓﻰ اﻟﻘﻮاﺋﻢ ]Union[qq1,qq2,qq3 }{a,b,c,d,e,h,j,k
ﺗﻘﺎطﻊ اﻟﻔﺌﺘﯿﻦ qq1 qq2 وﺗﻣﺛل ﻓﺋﺔ اﻟﻌﻧﺎﺻر اﻟﻣﺷﺗرﻛﺔ ﻓﻰ اﻟﻔﺋﺗﯾن
qq1,qq2 ]Intersection[qq1,qq2 }{c,d
اﯾﺟﺎد ﻣﻛﻣل اﻟﻔﺋﺔ qq1ﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻔﺋﺔ qq2 ]Complement[qq1,qq2 }{a,b
) (٥-٥-٤اﻟدوال اﻟﻌﺎﻟﯾﺔ اﻟرﺗﺑﺔ High- Order Functions ﻫﻧﺎك ﻋدد ﻣن اﻻواﻣر ﺗﻌﺗﺑر دوال و ﺗﺗﺧذ دوال اﺧرى ﻛﻣﺣﺗوﯾﺎت ﻟﻬﺎ argumentsوﻫذﻩ اﻟدوال ﺗﺳﻣﻰ اﻟدوال ﻋﺎﻟﯾﺔ اﻟرﺗﺑﺔ واﻟﺗﻰ ﺗﻌﺗﺑر اداﻩ ﻗوﯾﺔ ﻓﻰ اﻟﺑرﻣﺟﺔ .وﺗﺳﺗﺧدم ﻫذﻩ اﻻواﻣر ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ ﻗواﺋم ﺑﺎﺳﺗﺧدام اﻟدوال. اﻻﻣر ] Map[f,listواﻟذى ﯾﻛون ﻗﺎﺋﻣﺔ ﻋﻧﺎﺻرﻫﺎ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﺑﺗﻘدﯾر fﻋﻧد ﻛل ﻗﯾﻣﺔ ﻣن اﻟﻘﯾم ﻣن اﻟﺟدول واﻟذى ﯾؤدى اﻟﻰ ان ﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﻫو ﻋﻧﺻر ﻓﻰ اﻟﻧطﺎق domainﻟﻠداﻟﺔ . fوﯾﺟب ان ﻧﺗذﻛر اﻧﻪ اذا ﻛﺎﻧت ﻗﯾم fﻗﺎﺑﻠﺔ ﻟﺗﻛوﯾن ﻗﺎﺋﻣﺔ ﻓﺈن ] f[istﺗؤدى ﻧﻔس ﻧﺗﯾﺟﺔ ] . Map[f,listﻟﻣﻧﻊ اﻟوﻗوع ﻓﻰ اﺧطﺎر ﻻ ﺑد ﻣن اﻟﺗﺣﻘق ان ﻛل ﻛل ﻋﻧﺻر ﻓﻰ listﻣوﺟود ﻓﻰ اﻟﻧطﺎق ﻟﻠداﻟﺔ fوذﻟك ﻗﺑل اﻟﺑدا ﻓﻰ اﺳﺗﺧدام اﻻﻣر ]Map[f,list .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل : ]}Map[f,{3,5,7,2,6 }]{f[3],f[5],f[7],f[2],f[6 ١٧٨
ﻫﻧﺎك اﺷﻛﺎل اﺧرى ﻟﻬذا اﻻﻣر ﻧﺗﻌرف ﻋﻠﯾﻬﺎ ﻣن ﺧﻼل اﻻﻣﺛﻠﺔ اﻟﺗﺎﻟﯾﺔ : اﺳﺗﺧدام اﻟداﻟﺔ اﻟﻌﻛﺳﯾﺔ Reverseﻣﻊ اﻻﻣر Mapﯾﻣﻛن ﻋﻛس ﺗرﺗﯾب
اﻟﻌﻧﺎﺻر ﻓﻰ ﻛل ﻗﺎﺋﻣﺔ ﻣن اﻟﻘواﺋم اﻟﻣﺗداﺧﻠﺔ
]}}Map[Reverse,{{a,b},{c,d},{e,f }}{{b,a},{d,c},{f,e اﻟﻌﻧﺎﺻر ﻓﻰ ﻛل ﻗﺎﺋﻣﺔ ﻣﺗداﺧﻠﺔ ﯾﻣﻛن ﺗرﺗﯾﺑﻬم: ]}}Map[Sort,{{2,6,3,5},{7,4,1,3 }}{{2,3,5,6},{1,3,4,7 ﻓﻰ ﺣﺎﻟﺔ اﻟﻘﺎﺋﻣﺔ اﻟﻣﻔردة ﻻ ﻧﺣﺗﺎج اﻟﻰ اﻻﻣر Mapوﯾﻣﻛن ﺗطﺑﯾق اﻟﻠوﻏﺎرﯾﺗم ﻋﻠﻰ ﻛل ﻋﻧﺻر ]}Log[{1.2,.916,1.3 }{0.182322,-0.0877389,0.262364
ﻧﻔس اﻟﻧﺗﺎﺋﺞ ﻧﺣﺻل ﻋﻠﯾﮭﺎ ﻛﺎﻟﺗﺎﻟﻰ : ]}Map[Log,{1.2,.916,1.3 }{0.182322,-0.0877389,0.262364 ﺑﺎﺳﺗﺧدام داﻟﺔ اﻟﻐﯾر ﻣﻌرﻓﺔ gواﻟﻘﺎﺋﻣﺔ اﻟﻣﺗداﺧﻠﺔ اﻟﺗﺎﻟﯾﺔ ﺳوف ﻧرى ان ﻓﻰ اﻻﻣر اﻟﺗﺎﻟﻰ gﺗطﺑق ﻋﻠﻰ اﻟﻘواﺋم اﻟداﺧﻠﯾﺔ ﻛﺎﻟﺗﺎﻟﻰ : ]}}MapThread[g,{{a,b,c},{x,y,z }]{g[a,x],g[b,y],g[c,z ﯾﻣﻛن رﻓﻊ ﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻻوﻟﻰ اﻟﻰ اﻟﻘوى اﻟﻣﻌطﺎﻩ ﻣن اﻟﻌﻧﺻر اﻟﻣﻘﺎﺑل ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺛﺎﻧﯾﺔ ]}}MapThread[Power,{{2,6,3},{5,1,2 }{32,6,9 ﻓﻰ اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﺗم ﻋﻣل ﻗﺎﺋﻣﺔ ﺗﺿم اﻟﻌﻧﺻر اﻻول ﻣن اﻟﻘﺎﺋﻣﺔ اﻟداﺧﻠﯾﺔ اﻻوﻟﻰ ﻣﻊ اﻟﻌﻧﺻر اﻻول ﻣن اﻟﻘﺎﺋﻣﺔ اﻟداﺧﻠﯾﺔ اﻟﺛﺎﻧﯾﺔ ﻣﻊ اﻟﻌﻧﺻر اﻻول ﻣن اﻟﻘﺎﺋﻣﺔ اﻟداﺧﻠﯾﺔ اﻟﺛﺎﻟﺛﺔ وﻫﻛذا اﻟﻘﺎﺋﻣﺔ اﻟداﺧﻠﯾﺔ اﻟﺛﺎﻧﯾﺔ واﻟﻘﺎﺋﻣﺔ اﻟداﺧﻠﯾﺔ اﻟﺛﺎﻟﺛﺔ ]}}MapThread[List,{{5,3,2},{6,4,9},{4,1,4 }}{{5,6,4},{3,4,1},{2,9,4
ﻓﻰ اﻻﻣر Outerﺗطﺑق اﻟداﻟﺔ fﻋﻠﻰ ﻛل اﻟﺗﺑﺎدﯾل ﻟﻠﻌﻧﺎﺻر ﻓﻰ اﻟﻘواﺋم اﻟداﺧﻠﯾﺔ ]}Outer[f,{a,b},{2,3,4 }}]{{f[a,2],f[a,3],f[a,4]},{f[b,2],f[b,3],f[b,4 اﻟﻌﻤﻠﯿﺔ اﻟﺘﺎﻟﯿﺔ ﺗﺠﻤﻊ ﻛﻞ ﻋﻨﺼﺮ ﻓﻰ اﻟﻘﺎﺋﻤﺔ اﻻوﻟﻰ ﻣﻊ اﻟﻌﻨﺼﺮ اﻟﻤﻘﺎﺑﻞ ﻟﮫ ﻓﻰ اﻟﻘﺎﺋﻤﺔ اﻟﺜﺎﻧﯿﺔ }{4,6,3}+{5,1,2 }{9,7,5 ١٧٩
)ﺑﺷرط ان ﻋدد اﻟﻌﻧﺎﺻر واﺣدة ﻓﻰ ﻛل ﻗﺎﺋﻣﺔ داﺧﻠﯾﺔ ( ﺗﻣﺎﺛل اﻟﺗﺎﻟﯾﺔ :
]}}MapThread[Plus,{{4,6,3},{5,1,2 }{9,7,5
ﻣﺛﺎل اﻟﻣطﻠوب ﺗﻛوﯾن ﻗﺎﺋﻣﺔ ﺗﺗﻛون ﻣن اول 20رﻗم ﻓردﯾﺎ ﺛم ﻧﺣﺻل ﻋﻠﻰ ﺗﻛﻌﯾب اﻟﻘﯾم .
اﻟﺣل: ﺳوف ﻧﺑدا ﺑﺎﺳﺗﺧدام اﻻﻣر Tableﻟﺗﻛوﯾن اول 20رﻗم ﻓردﯾﺎ وﻧﺳﻣﻰ اﻟﻘﺎﺋﻣﺔ .kkk ]}kkk=Table[2i-1,{i,1,20 }{1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39 ﯾﻠﻰ ذﻟك ﺗﻌرﯾف اﻟداﻟﺔ f (x) x 3 ﺛﻢ اﺳﺘﺨﺪام اﻻﻣﺮ Mapﻟﺤﺴﺎب ) f(xﻟﻜﻞ ﻋﻨﺼﺮ ﻓﻰ اﻟﻘﺎﺋﻤﺔ : 3
fx_ : x
]Map[f,kkk {1,27,125,343,729,1331,2197,3375,4913,6859,9261,12167,156 }25,19683,24389,29791,35937,42875,50653,59319 ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﻣن اﻻﻣر: f/@kkk
{1,27,125,343,729,1331,2197,3375,4913,6859,9261,12167,156 }25,19683,24389,29791,35937,42875,50653,59319 اﯾﺿﺎ ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﻣن اﻻﻣر ]f[kkk
{1,27,125,343,729,1331,2197,3375,4913,6859,9261,12167,15625,19 }683,24389,29791,35937,42875,50653,59319 اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر اﻟﺗﺎﻟﻰ ﻫو ] Apply[Plus,listوﯾﺳﺗﺧدم ﻟﺟﻣﻊ اﻟﻌﻧﺎﺻر ﻟﻠﻘﺎﺋﻣﺔ .list
١٨٠
]}Apply[Plus,{1,4,5,3 13 واﻻﻣر اﻟﺗﺎﻟﻰ ﯾؤدى ﻧﻔس اﻟﻐرض }Plus@@{1,4,5,3 13 واﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻬذا اﻻﻣر ﻫﻰ . Plus@@list
ھﻧﺎك اﺷﻛﺎل ﻛﺛﯾرة ﻟﻼﻣر Applyﯾﻣﻛن اﻟﺗﻌرف ﻋﻠﯾﮭم ﻣن ﺧﻼل اﻻﻣﺛﻠﺔ اﻟﺗﺎﻟﯾﺔ : ]]Apply[f,List[1,4,5,3 ]f[1,4,5,3
]}}Apply[f,{{1,2,3},{5,6,7 ]}f[{1,2,3},{5,6,7 ]}}Apply[Plus,{{1,2,3},{5,6,7 }{6,8,10 ]Apply[f,{{1,2,3},{5,6,7}},2 }]{f[1,2,3],f[5,6,7 ]Apply[Plus,{{1,2,3},{5,6,7}},2 }{6,18 ﻟﺿرب اﻟﻌﻧﺎﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﯾﺳﺗﺧدم اﻻﻣر ] Apply[Times,listﻛﺎﻟﺗﺎﻟﻰ ]}Apply[Times,{1,4,6,9,19 4104 اﻻﻣر اﻟﻣﻣﺎﺛل ﻟﻪ ﻫوTime@@list }Times@@{1,4,6,9,19 4104
اﺟزاء ﻣن اﻟﻘﺎﺋﻣﺔ ﯾﻣﻛن ﺗﻘدﯾرﻫﺎ ﺑﺎﻟدوال ﻣﻊ اﻻﻣر ] MapAt[f,list,jواﻟذى ﯾطﺑق fﻋﻠﻰ اﻟﺟزء رﻗم jﻓﻰ اﻟﻘﺎﺋﻣﺔ listوﯾﻌﯾد اﻟﻘﺎﺋﻣﺔ : ]]] {list[[1]],…,list[[j-1]],f[list[[jوﺑﻧﻔس اﻟﺷﻛل : ]}MapAt[f,list,{j1,j2,…,jk واﻟذى ﯾطﺑق fﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ ]][[j1,j2,…jk ١٨١
ﻣﺛﺎل )أ( اﻟﻣطﻠوب ﺗوﻟﯾد 20ﻋدد ﻋﺷواﺋﻰ ﺑﯾن -4,4وﺗﺳﻣﯾﺔ اﻟﻘﺎﺋﻣﺔ اﻟﻧﺎﺗﺟﺔ ﺑﺎﻻﺳم .tt2 )ب( اﺧﺗزل اﻟﻌدد اﻟراﺑﻊ ﻓﻰ اﻟﻘﺎﺋﻣﺔ tt2اﻟﻰ اﻟﺑﺎﻗﻰ ﻣن ﻗﺳﻣﺗﻪ ﻋﻠﻰ واﺣد. )ت( اﺧﺗزل ﻛل اﻻﻋداد ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﻰ اﻟﺑﺎﻗﻰ ﻟﻠﻌدد ﺑﻌد ﻗﺳﻣﺗﺔ ﻋﻠﻰ واﺣد .
اﻟﺣل : ﺳوف ﻧﺳﺗﺧدم اﻻﻣرﯾن Tableو Randomﻟﺗوﻟﯾد ﺟدول ﻣن 20ﻋدد ﺑﯾن . -4,4وﯾﺟب اﻻﻧﺗﺑﺎﻩ اﻧﻪ ﺑﺎﺳﺗﺧدام اﻻﻣر Randomﻓﺎن اﻟﻣﺳﺗﺧدم ﻋﻧد ادﺧﺎل اﻟﺣﺳﺎﺑﺎت اﻟﺗﺎﻟﯾﺔ ﻟن ﯾﺣﺻل ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﺎﺋﺞ . ]}tt2=Table[Random[Real,{-4,4}],{20 {-0.55778,-1.65726,3.6507,1.88323,-2.85322,3.06029,2.78841,3.84913,3.66665,-2.84051,1.71095,3.65474,1.09272,0.408193,2.92652,3.51407,1.9031,3.30308,0.0242689,3.42642 } اﻻﻣر] Mode[a,bﯾﻣﺛل اﻟﺑﺎﻗﻰ ﻣن ﺧﺎرج ﻗﺳﻣﺔ (a modulo b) a/b ﺗﻌرف اﻟﺑﺎﻗﻰ ﻣن ﺧﺎرج ﻗﺳﻣﺔ xﻋﻠﻰ : 1 اﻟداﻟﺔ f ]f[x_]:=Mod[x,1 ﺧﺗزل اﻟرﻗم اﻟراﺑﻊ )اﺳﺗﺑداﻟﻪ او اﺣﻼﻟﻪ ( ﻓﻰ اﻟﻘﺎﺋﻣﺔ tt2اﻟﻰ اﻟﺑﺎﻗﻰ ﻣن ﻗﺳﻣﺗﻪ ﻋﻠﻰ واﺣد ﻧﺳﺗﺧدم اﻻﻣر ﻻ ا اﻟﺗﺎﻟﻰ . ]MapAt[f,tt2,4 {-0.55778,-1.65726,3.6507,0.883227,-2.85322,3.06029,2.78841,3.84913,3.66665,-2.84051,1.71095,3.65474,1.09272,0.408193,2.92652,3.51407,1.9031,3.30308,0.0242689,3.426 }42 ﺧﺗزل ﻛل اﻻﻋداد ﻓﻰ اﻟﻘﺎﺋﻣﺔ tt2اﻟﻰ اﻟﺑﺎﻗﻰ ﻟﻠﻌدد ﺑﻌد ﻗﺳﻣﺗﺔ ﻋﻠﻰ واﺣد ﻧﺳﺗﺧدم اﻻﻣر اﻟﺗﺎﻟﻰ : ﻻ ا ]Map[f,tt2 {0.44222,0.342744,0.650698,0.883227,0.146781,0.93971,0.78841 5,0.849131,0.666652,0.159493,0.710951,0.345263,0.0927212,0.5 }91807,0.926524,0.514069,0.9031,0.303078,0.0242689,0.426423
ﻣﺛﺎل
١٨٢
اﻟﻣطﻠوب ﻋﻣل ﻗﺎﺋﻣﺔ ﺑﺎول 100اﻋداد ﻣوﺟﺑﺔ ﺛم ﺣﺳﺎب Sum,Productﻋﻠﯾﻬم .
اﻟﺣل : ;]aa1=Range[200 ]Apply[Plus,aa1 20100 Plus@@aa1 20100 ]]N[Apply[Times,aa1 7.886578673647905 10374 ]N[Times@@aa1 7.886578673647905 10374 ﻓﻰ ﻫذا اﻟﻣﺛﺎل Sum, Productﯾﺳﺗﺧدﻣﺎن ﻟﻠﺟﻣﻊ واﻟﺿرب ﻋﻠﻰ اﻟﺗواﻟﻰ ،ﯾﻣﻛن اﺳﺗﺧدام
و
ﺑدﻻ ﻣﻧﻬﻣﺎ ﻛﺎﻟﺗﺎﻟﻰ : ]}Sum[i,{i,1,200 20100 200
i i1
20100 ]]}N[Product[i,{i,1,200 7.886578673647905 10374 200
N i i1
7.886578673647905 10374 ﻻﻧﻬﻣﺎ ﯾﻣﺛﻼن اﻟﺟﻣﻊ واﻟﺿرب ﻋﻠﻰ اﻟﻘﯾم اﻟﻣﻧﺗظﻣﺔ . اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣر Applyھو] Apply[operation,listوﯾﻣﻛن وﺿﻌﮫ ﻓﻰ ﺻورة
ﻣﺧﺗﺻرة ﻛﺎﻟﺗﺎﻟﻰ . operation@@listاﯾﺿﺎ اﻻﻣر Mapﯾﻣﻛن ﻋﻣل اﺧﺗﺻﺎرات ﻟﮫ ﻛﻣﺎ ﯾﺗﺿﺢ ﻣن اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ :
ﻣﺛﺎل ﻋرف aa1ﻟﺗﻣﺛل ﻓﺋﺔ ﻣن ﻛﺛﯾرة اﻟﺣدود ﺗﺗﻛون ﻣن :
15x 2 6x 9,14x 2 24x 8,8x 2 17x 21,4x 2 39x 56 ١٨٣
)أ( اﺳﺗﺧدم اﻻﻣر Factorﻟﻛل ﻣﻧﻬﻣﺎ )ب( اوﺟد اﻟﻣﺟﻣوع ﻛﺛﯾرة اﻟﺣدود ﻓﻰ aa1
اﻟﺣل : ]Clear[aa1,x aa1 15x2 6x 9, 14x2 24x 8, 8x2 17x 21,
;4x2 39x 56 ) ا( ]Map[Factor,aa1 ){3 (-1+x) (3+5 x),2 (2+x) (-2+7 x),(-3+x) (7+8 x),(-8+x })(-7+4 x aa1//Factor ){3 (-1+x) (3+5 x),2 (2+x) (-2+7 x),(-3+x) (7+8 x),(-8+x })(-7+4 x Factor/@aa1 ){3 (-1+x) (3+5 x),2 (2+x) (-2+7 x),(-3+x) (7+8 x),(-8+x })(-7+4 x )ب( Plus@@aa1 18 38 x 41 x2
) ( ٦-٥-٤رﺳم ﻗواﺋم ﻣن اﻟﻧﻘﺎط وﻗواﺋم اﻟدوال Graphing Lists of Points and Lists of Functins ﺑﻔرض ان ﻟدﯾﻧﺎ اﻟﻘﺎﺋﻣﺔ listاﻟﺗﺎﻟﯾﺔ : }]] List={element[[1]], element [[2]],…, element [[nﻓﺎن اﻻﻣر : ] ListPlot[Listﯾرﺳم اﻟﻧﻘﺎط : )]](1,element[[1]]),(2,element[[2]]) ,…,n,element[[n ﻟﻠﺗوﺿﯾﺢ ﺑﻔرض اﻧﻧﺎ ﻧرﻏب ﻓﻰ رﺳم ﻓﺋﺔ ﻣن اﻟﻧﻘﺎط ) (x , sin xﻋددﻫم 1000وﻧرﻏب ﻓﻰ ﻋدم اظﻬﺎر ﻛل اﻟﻧﻘﺎط ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .ﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﺳوف ﻧﺿﻊ اﻟﻔﺎﺻﻠﺔ اﻟﻣﻧﻘوطﺔ ﻓﻰ ﻧﻬﺎﯾﺔ اﻻﻣر Tableوﻟﻛن ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ ﻣﺷﺎﻫدة ﺑﻌض اﻟﻧﻘﺎط وﯾﺗم ذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Shortواﻟذى ﯾظﻬر ﺳطر واﺣد ﻣن اﻟﻣﺧرﺟﺎت .اﻟﻣﺧرج ﻓﻰ اﻻﻣر Shortﯾﺷﺗﻣل ﻋﻠﻰ ﻋﻧﺻر ﻋﻠﻰ اﻟﺷﻛل>> <<nواﻟذى ﯾﻌﻧﻰ ان nﻣن اﻟﻌﻧﺎﺻر ﻗد ﺗم ﺣذﻓﻬﺎ واﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ ﯾوﺿﺢ ذﻟك : ١٨٤
;]}aa1=Table[N[Sin[x]],{x,1,1000 ]Short[aa1 }{0.841471,998,0.82688 ]ListPlot[aa1 1
0.5
1000
600
800
200
400
-0.5
-1
Graphics
ﻓﺑﺎﻟﻧﺳﺑﺔ ﻟﻼﻣر Shortﻓﺈﻧﻧﺎ ﻧرى ﻓﻰ اﻟﻣﺧرج ﻟﻪ ﻓﻘط ﻋﻧﺎﺻرﯾن ﻣن اﻟﻘﺎﺋﻣﺔ aa1و 997ﻗد ﺗم ﺣذﻓﻬﺎ .
ﻣﺛﺎل ﺗﻣﺛل اﻟﺑﯾﺎﻧﺎت اﻟﺗﺎﻟﯾﺔ ﻋدد اﻟﻣوظﻔﯾن ﺧﻼل اﻻﻋوام 2004-1998ﻓﻰ وظﯾﻔﺔ ﻣﺎ اﻟﻣطﻠوب ﺗﻣﺛﯾﻠﻬﺎ ﺑﯾﺎﻧﯾﺎ. اﻟﺳﻧﺔ
ﻋدد اﻟﻣوظﻔﯾن
1998
670
1999
690
2000
740
2001
780
2002
900
2003
870
2004
910
2004
920
ﺳوف ﻧوﺿﺢ اﻟرﺳم ﺑﺛﻼث طرق ﻛﺎﻟﺗﺎﻟﻰ : اﻟطرﯾﻘﺔ اﻻوﻟﻰ : }a11={1998,1999,2000,2001,2002,2003,2004,2005 }{1998,1999,2000,2001,2002,2003,2004,2005 }a22={670,690,740,780,900,870,910,920 }{670,690,740,780,900,870,910,920 ١٨٥
aa3={{1998,670},{1999,690},{2000,740},{2001,780},{2002,90 0},{2003,870},{2004,910},{2005,920}} aa3=Transpose[{a11,a22}] {{1998,670},{1999,690},{2000,740},{2001,780},{2002,900},{2003, 870},{2004,910},{2005,920}}
{{1998,670},{1999,690},{2000,740},{2001,780},{2002,900},{ 2003,870},{2004,910},{2005,920}} . ﻓﻰ ازواجaa1,a22 اﻻﻣر اﻟﺳﺎﺑق ﯾﺿﻊ ﻗﯾم ListPlot[aa3] 900 850 800 750
1999
2000
2001
2002
2003
2004
2005
Graphics . اﻣر اﻟرﺳم اﻟﺳﺎﺑق ﯾرﺳم ﺑدون ﺧﯾﺎرات
: اﻟطرﯾﻘﺔ اﻟﺛﺎﻧﯾﺔ
Transpose ﺗم ﺑطرﯾﻘﺔ ﻣﺧﺗﻠﻔﺔ ﻋن اﻻﻣرaa3 ﻟﻠﺣﺻول ﻋﻠﻰ
Map اﺳﺗﺧدام اﻻﻣر
: aa3 اﻟﻣﺳﺗﺧدم ﻓﻰ اﻟطرﯾﻘﺔ اﻻوﻟﻰ ﻟﻠﺣﺻول ﻋﻠﻰ Map[Point,aa3] {Point[{1998,670}],Point[{1999,690}],Point[{2000,740}],Po int[{2001,780}],Point[{2002,900}],Point[{2003,870}],Point [{2004,910}],Point[{2005,920}]} aa4=Show[Graphics[{PointSize[0.03],Map[Point,aa3]}],Axes Automatic]
١٨٦
900 850 800 750
2005
2004
2003
2002
2001
2000
1999
Graphics اﻣر اﻟرﺳم اﻟﺳﺎﺑق ﯾرﺳم ﺑﺧﯾﺎرات . اﻟطرﯾﻘﺔ اﻟﺛﺎﻟﺛﺔ : ]]ListPlot[aa3,PlotStyle->PointSize[0.03 900 850 800 750
2005
2004
2003
2002
2001
2000
1999
Graphics
ﻣﺛل اﻟطرﯾﻘﺔ اﻻوﻟﻰ وﻟﻛن اﻣر اﻟرﺳم ﺑﺧﯾﺎرات .
) ( ٧-٥-٤اﺟراء اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻋﻠﻰ ﻗﺎﺋﻣﺗﯾن ﺗﻧﻔﯾذ اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ ﻣن ﺟﻣﻊ وطرح وﺿرب وﻗﺳﻣﺔ ﻋﻠﻰ ﻗﺎﺋﻣﺗﯾن ﯾﺗم ﻋﻠﻰ اﻟﻌﻧﺎﺻر اﻟﻣﺗﻧﺎظرة ﻓﻰ اﻟﻘﺎﺋﻣﺗﯾن ﺑﺷرط ان ﯾﻛون اﻟﻘﺎﺋﻣﺗﯾن ﺑﻬﻣﺎ ﻧﻔس اﻟﻌﻧﺎﺻر وﯾﻣﻛن ﺗوﺿﯾﺣﺔ ﺑﺎﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ .
ﻣﺛﺎل ﺑﻔرض ان ﻟدﯾﻧﺎ اﻟﻘﺎﺋﻣﺗﯾن : ww1,ww2 ١٨٧
}ww1={1,2,3,4 }{1,2,3,4 }ww2={3,4,5,6 }{3,4,5,6 ﺟﻣﻊ اﻟﻘﺎﺋﻣﺗﯾن ww1,ww2ﯾﺗم ﺑﺟﻣﻊ اﻟﻌﻧﺎﺻر اﻟﻣﻧﺎظرة ﻟﻠﻘﺎﺋﻣﺗﯾن ww1+ww2 }{4,6,8,10 طرح اﻟﻘﺎﺋﻣﺗﯾن ww1,ww2ﯾﺗم ﺑطرح اﻟﻌﻧﺎﺻر اﻟﻣﻧﺎظرة ﻓﻰ اﻟﻘﺎﺋﻣﺗﯾن ww1-ww2 }{-2,-2,-2,-2 ﻗﺳﻣﺔ اﻟﻘﺎﺋﻣﺗﯾن ww1,ww2ﯾﺗم ﺑﻘﺳﻣﺔ اﻟﻌﻧﺎﺻر اﻟﻣﻧﺎظرة ﻓﻰ اﻟﻘﺎﺋﻣﺗﯾن
ww1 ww2
1 1 3 2 , , , 3 2 5 3
وﯾﻣﻛن اﺟراء اى ﻋﻣﻠﯾﺔ ﺣﺳﺎﺑﯾﺔ ﺑﯾن ﻗﺎﺋﻣﺔ وﻋدد ﺛﺎﺑت ﻓﻣﺛﻼ ﺟﻣﻊ اﻟﻘﺋﻣﺔ ww1ﻋﻠﻰ اﻟﻌدد اﻟﺛﺎﺑت 10ﺣﯾث ﯾﺗم اﺿﺎﻓﺔ اﻟﻌدد 10ﻟﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ : ww1+10 }{1,2,3,4 }{11,12,13,14
ﺿرب اﻟﻘﺎﺋﻣﺗﯾن ww1,ww2ﯾﺗم ﺑﺿرب اﻟﻌﻧﺎﺻر اﻟﻣﻧﺎظرة ﻓﻰ اﻟﻘﺎﺋﻣﺗﯾن ww1*ww2 }{3,8,15,24 ﺿرب اﻟﻘﺎﺋﻣﺔ ww1ﻓﻰ ﻋدد ﺛﺎﺑت .ﻓﻌﻠﻰ ﺳﺑﯾل ﺿرب ﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ww1ﻓﻰ ﺧﻣﺳﺔ 5ww1 }{5,10,15,20 وﯾﻣﻛن رﻓﻊ اﻟﻘﺎﺋﻣﺔ اﻟﻰ اس ﻋددى ﺣﯾث ﯾﺗم رﻓﻊ ﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﻰ ھذا اﻻس اﻟﻌددى ww1^3 }{1,8,27,64
وﯾﻣﻛن رﻓﻊ اى ﻗﯾﻣﺔ ﻋددﯾﺔ اﻟﻰ اس ﻋﺑﺎرة ﻋن ﻗﺎﺋﻣﺔ
4^ww1 }{4,16,64,256
١٨٨
وﯾﻣﻛن رﻓﻊ ﻗﺎﺋﻣﺔ اﻟﻰ اس ﻋﺑﺎرة ﻋن ﻗﺎﺋﻣﺔ اﺧرى
ww1^ww2 }{1,16,243,4096
وﯾﻣﻛن ﺗطﺑﯾق اﻟدوال ﻋﻠﻰ اﻟﻘواﺋم ﺣﯾث ﯾﺗم ﺗطﺑﯾق اﻟداﻟﺔ ﻋﻠﻰ ﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ
ww1 N
}{1.,1.41421,1.73205,2. Cos[ww1]//N }{0.540302,-0.416147,-0.989992,-0.653644
) (٨-٥-٤ﺗطﺑﯾق اﻟدوال ﻋﻠﻰ اﻟﻘواﺋم ﺑﺻورة ﻣﺗﻛررة Applying Functions to Lists Repeatedly ﯾﻣﻛن ﺗطﺑﯾق اﻟداﻟﺔ ﻋﻠﻰ ) Argumentﻗﯾﻣﺔ ﻣﺎ ﻣﺑدﺋﯾﺔ ( ﺛم ﺗطﺑق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻧﺎﺗﺞ ﺛم ﺗطﺑق اﻟداﻟﺔ ﻣرة اﺧرى ﻋﻠﻰ اﻟﻧﺎﺗﺞ وﻫﻛذا ،ﻟﻌد ﻣﺣدد ﻣن اﻟﻣرات .ﺑﻔرض داﻟﺔ ﻏﯾر ﻣﻌرﻓﺔ gوﺗم اﻟﺑدا ﺑﻘﯾﻣﺔ aﻓﺎن : ]Nest[g,a,5 ]]]]]g[g[g[g[g[a
اﻻﻣر )اﻟداﻟﺔ ( NestListﺗرﺟﻊ ﻛل اﻟﻘﯾم اﻟداﺧﻠﯾﺔ ﻣن ﻋﻣﻠﯾﺔ اﻟﺗداﺧل : ]NestList[g,a,5 }]]]]]{a,g[a],g[g[a]],g[g[g[a]]],g[g[g[g[a]]]],g[g[g[g[g[a
ﺑﺎﺳﺗﺧدام اﻟداﻟﺔ cosواﻟﻘﯾﻣﺔ اﻟﻣﺑدﺋﯾﺔ ﻫﻰ 0.85ﯾﻣﻛن ﺗوﻟﯾد اﻟﻘﺎﺋﻣﺔ ]NestList[Cos,.85,10 {0.85,0.659983,0.790003,0.703843,0.76236,0.723208,0.749687,0.7 }31902,0.743904,0.73583,0.741274
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل اﻟﻌﻧﺎﺻر اﻟﺛﻼﺛﺔ اﻻواﺋل ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ ﻫﻣﺎ ].85 , Cos[.85] , Cos[Cos[.85 ﻓﯾﻣﻛن ان ﻧرى }]]{.85,Cos[.85],Cos[Cos[.85 }{0.85,0.659983,0.790003
١٨٩
ﺑﺎﺳﺗﺧدام اﻻﻣر Folderﺗطﺑق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻘﯾﻣﺔ اﻟﻣﺑدﺋﯾﺔ و ﻋﻠﻰ اول ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ ،ﺛم ﺗطﺑق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻧﺎﺗﺞ واﻟﻌﻧﺻر اﻟﺛﺎﻧﻰ ﻣن اﻟﻘﺎﺋﻣﺔ .ﻋﻧدﺋذ ﺗطﺑق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻧﺎﺗﺞ و اﻟﻌﻧﺻر اﻟﺛﺎﻟث ﻣن اﻟﻘﺎﺋﻣﺔ وﻫﻛذا . ]}Fold[f,0,{a,b,c,d ]f[f[f[f[0,a],b],c],d ﻋﻧد اﺳﺗﺧدام اﻻﻣر FoldListﯾﻣﻛن ﻣﺷﺎﻫدة ﻛل اﻟﻧﺗﺎﺋﺞ اﻟوﺳطﯾﺔ ﻟﻼﻣر Fold ]}FoldList[f,0,{a,b,c,d ]{0,f[0,a],f[f[0,a],b],f[f[f[0,a],b],c],f[f[f[f[0,a],b],c }],d ﯾﻣﻛن ﺑﺳﻬوﻟﺔ ﻣﺷﺎﻫدة ﻣﺎ ﯾﺣدث ﻓﻰ اﻻﻣر وذﻟك ﺑﺎﻟﻌﻣل ﻣﻊ اﻟﻌﻣﻠﯾﺔ اﻟﺣﺳﺎﺑﯾﺔ اﻟﺗﺎﻟﯾﺔ : ]}FoldList[Plus,0,{a,b,c,d }{0,a,a+b,a+b+c,a+b+c+d ]}FoldList[Plus,0,{3,5,2,4 ]}FoldList[Times,1,{3,5,2,4
}{0,3,8,10,14 }{1,3,15,30,120
ﺑﺎﺳﺗﺧدام اﻟداﻟﺗﯾن اﻟﻐﯾر ﻣﻌرﻓﺗﯾن f , gﯾﻣﻛن ﻣﻌرﻓﺔ ﻛﯾف ﯾﻌﻣل اﻻﻣر اﻟﺗﺎﻟﻰ : ]Inner[f,{a,b,c},{d,e,f},g }Inner[Times,{a,b,c},{d,e,f},Plus وﻓﻰ اﻟﻧﮭﺎﯾﺔ اﻻواﻣر اﻟﺗﺎﻟﯾﺔ :
]Inner[f,{a,b,c},{d,e,f},g ]]g[f[a,d],f[b,e],f[c,f ]Inner[Times,{a,b,c},{d,e,f},Plus a d+b e+c f ]Inner[List,{a,b,c},{d,e,f},Plus }{a+b+c,d+e+f
)Nested Functions Calls ( ٩-٥-٤ ﻓﻰ اﻟﺒﻨﻮد اﻟﺴﺎﺑﻘﺔ ﺗﻨﺎوﻟﻨﺎ اﻟﻜﺜﯿﺮ ﻣﻦ اﻻواﻣﺮ )اﻟﺪوال ( ﺣﯿﺚ ﻣﻌﻈﻢ ھﺬه اﻻواﻣﺮ ﺗﻄﺒﻖ ﻣﺮة واﺣﺪة ﻋﻠﻰ data objectﺛﻢ ﺗﺮﺟﻊ اﻟﻨﺘﯿﺠﺔ .ﻓﻌﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل :
]Mod[5,3 2 ]}Sort[{1,6,2,5,4,3 }{1,2,3,4,5,6
١٩٠
اﯾﺿﺎ ﺗﻧﺎوﻟﻧﺎ اﻟﻌدﯾد ﻣن اﻻواﻣر واﻟﺗﻰ ﺗﻌﺗﺑر دوال و ﺗﺗﺧذ دوال اﺧرى ﻛﻣﺣﺗوﯾﺎت ﻟﻬﺎ argumentsواﻟﺗﻰ ﺗﺳﻣﻰ ﻋﺎﻟﯾﺔ اﻟرﺗﺑﺔ ]}Fold[Plus,0,{a,b,c,d a+b+c+d اﻟﺘﻄﺒﯿﻖ اﻟﻤﺘﺘﺎﺑﻊ ﻟﻌﺪة دوال ﯾﻌﺮف . nested function callﺗﻠﻚ اﻟﺪوال ﻟﯿﺴﺖ ﻣﺤﺪدة ﻓﻰ اﺳﺘﺨﺪام داﻟﺔ ﻣﻔﺮدة ﺗﻜﺮر ﻋﺪة ﻣﺮات ،وﻟﻛن ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ھذه اﻟداﻟﺔ ﺑﺎﺳﺗﺧدام ﻋدة دوال ﻛﻣﺎ ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ :
]]]Cos[Sin[Tan[4.0 0.609053 ﻗﻰ ھﺬه اﻟﺪاﻟﺔ ﻓﺎن ) tan(4.0ﺗﺣﺳب وﺑﻌد ذﻟك ﺗﺣﺳب sinﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ ﺛم ﺑﻌد ذﻟك ﺗﺳب cosinﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ . ﻟﻠﺗوﺿﯾﺢ ﯾﻣﻛن اﺟراء ذﻟك ﻋﻠﻰ ﻋدة ﺧطوات ﻛﺎﻟﺗﺎﻟﻰ :
]Tan[4.0 1.15782 ]Sin[% 0.915931 ]Cos[% 0.609053 وﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر Traceﻟﺗوﺿﯾﺢ اﻟﺧطوات ﻛﺎﻟﺗﺎﻟﻰ :
]]]]Trace[Cos[Sin[Tan[4.0 {{{Tan[4.],1.15782},Sin[1.15782],0.915931},Cos[0.915931],0.609 }053 اﻟداﻟﺔ nested function callﺗﻘرا اﻻواﻣر ﺑﻧﻔس اﻧﺷﺎﺋﮭﺎ ﺣﯾث ﺗﺑدا ﻣن اﻟداﺧل اﻟﻰ اﻟﺧﺎرج .ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]]}Apply[And,Map[EvenQ,{2,4,6,7,8 False ﯾﻤﻜﻦ وﺻﻒ اﻟﻌﻤﻠﯿﺎت ﻛﺎﻟﺘﺎﻟﻰ : )أ(
ﯾﻄﺒﻖ اﻻﻣﺮ EvenQﻟﻛل ﻋﻧﺻر ﻓﻰ اﻟﻘﺎﺋﻣﺔ } {2,4,6,7,8ﻛﺎﻟﺗﺎﻟﻰ :
]}Map[EvenQ,{2,4,6,7,8 }{True,True,True,False,True )ب( ﯾطﺑق اﻻﻣﺮ اﻟﻤﻨﻄﻘﻰ Andﻋﻠﻰ ﻧﺗﯾﺟﺔ اﻟﺨﻄﻮة اﻟﺴﺎﺑﻘﺔ :
]Apply[And,% False ﻛﻣﺛﺎل اﺧر اﻛﺛر ﺗﻌﻘﯾدا ﺣﯾث ﺗﺳﺗﺧرج اﻟﻌﻧﺎﺻر ﻣن اﻟﻘﺎﺋﻣﺔ ) اﻟﺗﻰ ﺗﺣﺗوى ﻋﻠﻰ اﻋداد ﻣوﺟﺑﺔ ( واﻟﺗﻰ اﻛﺑر ﻣن اﻻﻋداد اﻟﺳﺎﺑﻘﺔ ﻟﮭﺎ ﻓﻰ اﻟﻘﺎﺋﻣﺔ:
]]]}Union[Rest[FoldList[Max,0,{3,1,6,5,4,8,7 ١٩١
}{3,6,8
ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ Traceﻟﻠﺗوﺿﯾﺢ :
]]]]}Trace[Union[Rest[FoldList[Max,0,{3,1,6,5,4,8,7 {{{3 FoldList[Max,0,{3,1,6,5,4,8,7}],{3 Max[0,3],3 3},{3 Max[3,1],3 Max[1,3],3 3},{3 Max[3,6],3 6},{3 Max[6,5],3 Max[5,6],3 6},{3 Max[6,4],3 Max[4,6],3 6},{3 Max[6,8],3 8},{3 Max[8,7],3 Max[7,8],3 8},3 {0,3,3,6,6,6,8,8}},3 Rest[{0,3,3,6,6,6,8,8}],3 {3,3,6,6,6,8,8}},6 }}Union[{3,3,6,6,6,8,8}],8 {3,6,8
اﻟﻌﻣﻠﯾﺎت اﻟﺳﺎﺑﻘﺔ اﻟﺗﻰ ﺗﻘوم ﺑﻬﺎ اﻟداﻟﺔ nested function call ﯾﻤﻜﻦ ﺗﻮﺿﯿﺤﮭﺎ ﻛﺎﻟﺘﺎﻟﻰ : )أ( اﻻﻣﺮ FoldListﯾطﺑق اوﻻ ﻋﻠﻰ اﻟداﻟﺔ }. Max,0,{3,1,6,5,4,8,7
]}FoldList[Max,0,{3,1,6,5,4,8,7 }{0,3,3,6,6,6,8,8 )ب( اﻻﻣﺮ Restﯾطﺑق ﻋﻠﻰ ﻧﺎﺗﺞ اﻟﺧطوة اﻟﺳﺎﺑﻘﺔ :
]Rest[% }{3,3,6,6,6,8,8 )ج( وﻓﻰ اﻟﻨﮭﺎﯾﺔ اﻻﻣﺮ Union
ﯾطﺑق ﻋﻠﻰ ﻧﺗﯾﺟﺔ اﻟﺧطوة اﻟﺳﺎﺑﻘﺔ . ]Union[% }{3,6,8
ﺑﻔرض اﻟداﻟﺔ nested function callاﻟﺗﺎﻟﯾﺔ : ]]}Flatten[Outer[List,{c,d,d,s},Join[Range[2,10],{J,Q,K,A ],1
{{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10}, c,J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7 },{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3}, {d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d },K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9 }},{s,10},{s,J},{s,Q},{s,K},{s,A ﻟﻔﮭم ﻣﺎ ﺗﻘوم ﺑﻌﻣﻠﮫ اﻟداﻟﺔ nested function callاﻟﺳﺎﺑﻘﺔ ﻧﺗﺑﻊ اﻟﺧطوات اﻟﺗﺎﻟﯾﺔ :
)ا( اﻻﻣﺮ Joinاﻟﺗﺎﻟﻰ ﯾﻘﻮم ﺑﺪﻣﺞ اﻟﻘﺎﺋﻤﺔ ﻣﻦ اﻻﻋﺪاد ﻣﻦ 2اﻟﻰ )10واﻟﺗﻰ ﺗم اﻟﺣﺻول ﻋﻠﯾﮭﺎ ﻣن اﻻﻣﺮ] (Range[2,10ﻣﻊ اﻟﻘﺎﺋﻣﺔ}{J,Q,K,Aﻣن ارﺑﻌﺔ ﻋﻧﺎﺻر ﻛﺎﻟﺗﺎﻟﻰ :
١٩٢
Join[Range[2,10],{j,Q,K,A}] {2,3,4,5,6,7,8,9,10,j,Q,K,A} : Outer )ب( ﻣن اﻻﻣر ﯾﺗم ﻋﻤﻞ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﯿﺔ ﻣﻦ ازواج ﻣﻦ اﻟﻘﯿﻢ ﺣﯿﺚ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻰ ﻋﻧﺻر ﻣن اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ واﻟﻌﻧﺻر اﻻول ﻧﺎﺗﺞ ﻣن ﻋﻧﺻر ﻣن اﻟﻘﺎﺋﻣﺔ13 ﻣن واﺣد ﻣن اﻟـ . {c,d,d,s}]
Outer[List,{c,d,d,s},%] {{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10}, {c,j},{c,Q},{c,K},{c,A}},{{d,2},{d,3},{d,4},{d,5},{d,6},{ d,7},{d,8},{d,9},{d,10},{d,j},{d,Q},{d,K},{d,A}},{{d,2},{ d,3},{d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,j},{d, Q},{d,K},{d,A}},{{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8 },{s,9},{s,10},{s,j},{s,Q},{s,K},{s,A}}} Flattenﻣن اﻻﻣر . ﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ اﻟﻧﻬﺎﺋﯾﺔ Flatten[%,1] {{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10},{c,j}, {c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7},{d,8},{d ,9},{d,10},{d,j},{d,Q},{d,K},{d,A},{d,2},{d,3},{d,4},{d,5},{d, 6},{d,7},{d,8},{d,9},{d,10},{d,j},{d,Q},{d,K},{d,A},{s,2},{s,3 },{s,4},{s,5},{s,6},{s,7},{s,8},{s,9},{s,10},{s,j},{s,Q},{s,K} ,{s,A}}
: وﯾﻔﺿل ﺗﺳﻣﯾﺔ اﻟﻌﻣﻠﯾﺔ اﻟﺳﺎﺑﻘﺔ ﺑﺎﺳم ﯾﻣﻛن اﻟرﺟوع اﻟﯾﻪ ﻛﺎﻟﺗﺎﻟﻰ aa1=Flatten[Outer[List,{c,d,d,s},Join[Range[2,10],{J,Q,K, A}]],1]
{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10},{ c,J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7 },{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3}, {d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d ,K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9} ,{s,10},{s,J},{s,Q},{s,K},{s,A}} : ﻓﻌﻧد ﻛﺗﺎﺑﺔ اﻻﺳم اﻟﺗﺎﻟﻰ ﻧﺣﺻل ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ اﻟﺳﺎﺑﻘﺔ aa1
{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10},{c ,J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7} ,{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3},{ d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d, ١٩٣
K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9}, {s,10},{s,J},{s,Q},{s,K},{s,A}} وﯾﻔﯾد اﻋطﺎء اﻻﺳم ﺣﺗﻰ ﯾﻣﻛن اﺳﺗﺧداﻣﻬﺎ ﻓﻰ ﻋﻣﻠﯾﺔ اﺧرى ﻛﺎﻟﺗﺎﻟﻰ aa1=Flatten[Outer[List,{c,d,d,s},Join[Range[2,10],{J,Q,K, A}]],1] {{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10},{ c,J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7 },{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3}, {d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d ,K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9} ,{s,10},{s,J},{s,Q},{s,K},{s,A}} Partition[aa1,26] {{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10}, {c,J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d, 7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A}},{{d,2},{d, 3},{d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q} ,{d,K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s ,9},{s,10},{s,J},{s,Q},{s,K},{s,A}}} Transpose[%] {{{c,2},{d,2}},{{c,3},{d,3}},{{c,4},{d,4}},{{c,5},{d,5}}, {{c,6},{d,6}},{{c,7},{d,7}},{{c,8},{d,8}},{{c,9},{d,9}},{ {c,10},{d,10}},{{c,J},{d,J}},{{c,Q},{d,Q}},{{c,K},{d,K}}, {{c,A},{d,A}},{{d,2},{s,2}},{{d,3},{s,3}},{{d,4},{s,4}},{ {d,5},{s,5}},{{d,6},{s,6}},{{d,7},{s,7}},{{d,8},{s,8}},{{ d,9},{s,9}},{{d,10},{s,10}},{{d,J},{s,J}},{{d,Q},{s,Q}},{ {d,K},{s,K}},{{d,A},{s,A}}} Flatten[%,1] {{c,2},{d,2},{c,3},{d,3},{c,4},{d,4},{c,5},{d,5},{c,6},{d ,6},{c,7},{d,7},{c,8},{d,8},{c,9},{d,9},{c,10},{d,10},{c, J},{d,J},{c,Q},{d,Q},{c,K},{d,K},{c,A},{d,A},{d,2},{s,2}, {d,3},{s,3},{d,4},{s,4},{d,5},{s,5},{d,6},{s,6},{d,7},{s, 7},{d,8},{s,8},{d,9},{s,9},{d,10},{s,10},{d,J},{s,J},{d,Q },{s,Q},{d,K},{s,K},{d,A},{s,A}} : وﯾﻣﻛن ﻛﺗﺎﺑﻪ اﻟﻌﻣﻠﯾﺔ اﻟﺳﺎﺑﻘﺔ ﺑﺷﻛل ﻣﺧﺗﺻر ﻛﺎﻟﺗﺎﻟﻰ Flatten[ Transpose[Partition[aa1,26]],1] {{c,2},{d,2},{c,3},{d,3},{c,4},{d,4},{c,5},{d,5},{c,6},{d ,6},{c,7},{d,7},{c,8},{d,8},{c,9},{d,9},{c,10},{d,10},{c, J},{d,J},{c,Q},{d,Q},{c,K},{d,K},{c,A},{d,A},{d,2},{s,2}, {d,3},{s,3},{d,4},{s,4},{d,5},{s,5},{d,6},{s,6},{d,7},{s, 7},{d,8},{s,8},{d,9},{s,9},{d,10},{s,10},{d,J},{s,J},{d,Q },{s,Q},{d,K},{s,K},{d,A},{s,A}}
١٩٤
)Anonymous Functions (١٠-٥-٤ اﻟﺪاﻟﺔ anonymousھﻰ داﻟﺔ ﻻ ﯾوﺿﻊ ﻟﮭﺎ اﺳم ﻓﻰ اﻟﺑرﻧﺎﻣﺞ وﯾﻣﻛن اﺳﺗﺧداﻣﮭﺎ ﻓﻰ ﻧﻔس اﻟﻠﺣظﺔ اﻟﺗﻰ ﻧﻧﺷﺎھﺎ ﻓﯿﮭﺎ .وﻏﺎﻟﺒﺎ ﻣﺎ ﺗﺴﺘﺨﺪم اذا ﻛﺎﻧﺖ اﻟﺪاﻟﺔ ﺳﻮف ﺗﺴﺘﺨﺪم ﻣﺮة واﺣﺪة ﻓﻘﻂ ﻛﻤﺎ ﻓﻰ اﻟﺪوال ذات اﻟﺮﺗﺒﺔ اﻟﻌﺎﻟﯿﺔ ﻣﺜﻞ Mapاو .Fold وﻟﺗوﺿﯾﺢ طرﯾﻘﺔ ﻛﺗﺎﺑﺗﮭﺎ ﺑﻔرض ﺗﻌرﯾف اﻟداﻟﺔ
f (x) x 2
f (x) x 2
.ﻋرﻓﻧﺎ ﻣن ﻗﺑل طرﯾﻘﺔ ﺗﻌرﯾف ھذه اﻟداﻟﺔ ﻛﺎﻟﺗﺎﻟﻰ :
.ﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ ﻓﻰ ﺻورة داﻟﺔ anonymousﻛﺎﻟﺗﺎﻟﻰ :
&) (#^2وذﻟك ﺑدﻻ ﻣن x2
ﺣﯾث ﺗﺳﺗﺑدل xﺑـ اﻟرﻣز ) #ﻓﻰ ﺣﺎﻟﺔ وﺟود اﻛﺛر ﻣن ﻣﺗﻐﯾر ﻓﻰ اﻟداﻟﺔ ﻧﺿﻊ
… (#,#,وﺗوﺿﻊ اﻟﺻﯾﻐﺔ اﻟﻣﻘﺎﺑﻠﺔ ﻟـ x2
ﺑﯾن ﻗوﺳﯾن وﯾﻠﻰ ذﻟك اﻟرﻣز
& .وﯾﻣﻛن ﺗطﺑﯾق ھذه اﻟداﻟﺔ ﺑﺎﻻﺳﻠوب اﻟﻌﺎدى وذﻟك ﺑﻛﺗﺎﺑﺗﮭﺎ ﻣﺗﺑوﻋﺔ ﺑـ argument valuesﻣوﺿوﻋﺔ ﺑﯾن ﻗوﺳﯾن ﻣرﺑﻌﯾن ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
](#^2)&[6 36
اى اﻧﻧﺎ ﺣﺳﺑﻧﺎ 62
واﻟﺗﻰ ﯾﻣﻛن ﺣﺳﺎﺑﻬﺎ ﺑطرﯾﻘﺔ اﺧرى ﻛﺎﻟﺗﺎﻟﻰ :
fx_ : x2 ]f[6 36 وﻛﻣﺛﺎل اﺧر ﻋﻠﻰ ﺗطﺑﯾق داﻟﺔ anonymous ﺑﻔرض اﻟﻘﺎﺋﻣﺔ اﻟﻣﺗداﺧﻠﺔ اﻟﺗﺎﻟﯾﺔ :
}}aa1={{1,3,2,4},{5,8,9,1},{12,13,15 }}{{1,3,2,4},{5,8,9,1},{12,13,15 وﺑﻔرض اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ: f[x_]:=x>3 اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ ﺗﻘوم ﺑﺎﺧﺗﯾﺎر اﻟﻘﯾم اﻟﺗﻰ اﻛﺑر ﻣن ﺛﻼﺛﺔ ﻓﻰ ﻛل ﻗﺎﺋﻣﺔ داﺧﻠﯾﺔ ﻓﻰ اﻟﻘﺎﺋﻣﺔaa1 ]Map[(Select[#,f])&,aa1 }}{{4},{5,8,9},{12,13,15
اﻟداﻟﺔ nested function callاﻟﺗﺎﻟﯾﺔ :
]]}Apply[And,Map[EvenQ,{2,3,4,5,6 ١٩٥
False ﯾﻣﻛن ﻛﺗﺎﺑﺗﮭﺎ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : }aa1={2,3,4,5,6 }{2,3,4,5,6 ](Apply[And,Map[EvenQ,#]])&[aa1 False او ﯾﻣﻛن ﻛﺗﺎﺑﺗﻬﺎ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : ]]f[x_]:=Apply[And,Map[EvenQ,x ]f[aa1 False اﯾﻀﺎ ﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ داﻟﺔ اﻟﻤﺜﺎل :
) nested anonymousﻣﺗداﺧﻠﺔ( .ﻋﻠﻰ ﺳﺑﯾل
]}(Map[(#^2)&,#])&[{3,2,7 }{9,4,49 واذا ﻛﺎن ﻫﻧﺎل ﺻﻌوﺑﺔ ﻓﻰ ﻛﺗﺎﺑﺗﻬﺎ ﯾﻣﻛن اﺳﺗﺧدام اﻟداﻟﺔ Functionﻛﺎﻟﺗﺎﻟﻰ : ]}Function [y,Map[Function[x,x^2],y]][{3,2,7 }{9,4,49
) (١١-٥-٤ﻗواﻋد اﻟﺗﺣوﯾل Transformation Rules ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ وﺿﻊ ﻗﯾد ﻋﻠﻰ ﺗﻌﺑﯾر ﻣﻌﯾن وذﻟك ﺑﺎﺳﺗﺧدام ﻗﺎﻋدة ﻣﺎ ﻋﻠﯾﮫ .ﺳوف ﻧﺷرح اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻛﺗﺎﺑﺔ اﻟﺗﻌﺑﯾر ﺑطرﯾﻘﺗﯾن : ﻓﻔﻰ اﻟطرﯾﻘﺔ اﻻوﻟﻰ ﺗﻛﺗب اﻟﺻﯾﻐﺔ ﻛﺎﻟﺗﺎﻟﻰ : ]Expression/.Rule[ihs,rhs ﺣﯾث داﻟﺔ اﻟﻘﺎﻋدة] Rule[ihs,rhsﺗﻛﺗب ﻓﻰ ﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﺎﻟﺗﺎﻟﻰ : ihs->rhs وھذه اﻟطرﯾﻘﺔ اﻻﻛﺛر ﺷﯾوﻋﺎ ﻣن اﻟطرﯾﻘﺔ اﻟﺗﺎﻟﯾﺔ . ﺣﯾث ﺗﻛﺗب اﻟﺻﯾﻐﺔ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : ]Expression/.RuleDelayed[ihs,rhs ﺣﯾث داﻟﺔ اﻟﻘﺎﻋدة] Rule[ihs,rhsﺗﻛﺗب ﻓﻰ ﺻﯾﻐﺔ اﻻدﺧﺎل ﻛﺎﻟﺗﺎﻟﻰ : ihs:>rhs
اﻟﺗﻌﺑﯾرﯾن اﻟﺳﺎﺑﻘﯾن ﻟﮭﻣﺎ ﻧﻔس اﻟﻧﺎﺗﺞ وﻟﻛن ﯾﺧﺗﻠﻔوا ﻓﻰ اوﻟوﯾﺔ اﻟﺗﻧﻔﯾذ ﻟﻠﺗﻌﺑﯾر واﻟذى ﯾﺗﺿﺢ ﻣن اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر : Trace
][Table[x,{5}]/.xRandom ١٩٦
{0.156218,0.156218,0.156218,0.156218,0.156218} Trace[Table[x,{5}]/.xRandom[]] {{Table[x,{5}],{x,x,x,x,x}},{{Random[],0.771537},x0.7715 37,x0.771537},{x,x,x,x,x}/. x0.771537,{0.771537,0.771537,0.771537,0.771537,0.771537} } Table[x,{5}]/.x:>Random[] {0.61346,0.913524,0.160735,0.220387,0.21172} Trace[Table[x,{5}]/.x:>Random[]] {{Table[x,{5}],{x,x,x,x,x}},{xRandom[],xRandom[]},{x,x,x,x,x }/. xRandom[],{Random[],Random[],Random[],Random[],Random[]},{Ran dom[],0.842305},{Random[],0.343925},{Random[],0.322344},{Rando m[],0.125731},{Random[],0.640212},{0.842305,0.343925,0.322344, 0.125731,0.640212}} : ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل
{a,b,c,d}/.ListPlus a+b+c+d
{a,b,c,d}/.List:>Plus a+b+c+d: وﻛﻣﺛﺎل اﺧر {{3,4},{7,2},{1,5}}/.{x_,y_}->{y,x} {{4,3},{2,7},{5,1}} {a,b,c}/.{cb,ba}
{a,a,b} : وﻛﻣﺛﺎل اﺧر
10+x^2/.x->2 14 : وﻛﻣﺛﺎل اﺧر x^2+2y^2+3/.{x->2,y3} 25 : وﻛﻣﺛﺎل اﺧر {a,b,c}//.{ca,ba} ١٩٧
}{a,a,a ﺳوف ﻧﺳﺗﺧدم ﻗواﻋد اﻟﺗﺣوﯾل ﻓﻰ اﻟﺗﺣﻘق ﻣن ﺻﺣﺔ اﻟﺻﯾﻎ اﻟرﯾﺎﺿﯾﺔ. n
ﺑﻔرض اﻧﻧﺎ ﻧﺑﺣث ﻋن ﺻﯾﻐﺔ ﻟﺟﻣﻊ ﻣرﺑﻌﺎت nﻣن اول اﻋداد ﺻﺣﯾﺣﺔ ،اى ﺣﺳﺎب
2
i
ﺳوﻓﻧﺑدا ﺑﻘﯾم ﺻﻐﯾرة ﻟـ n
i 1
]}Sum[i^2,{i,1,2
5
ﻫذا اﻻﻣر ﯾﺟﻣﻊ ﻣرﺑﻌﺎت iواﻟﻣﺎﺧوذة ﻣن iﺗﺳﺎوى واﺣد اﻟﻰ اﺛﻧﯾن اى 12 22 ]}Sum[i^2,{i,1,3 14 ]}Sum[i^2,{i,1,4 30 ]}Sum[i^2,{i,1,5 55 n
ﻣن اﻟﻣﻌروف ان n(2n 1)(n 1) / 6
2
i i 1
ﺑﻔرض اﻧﻧﺎ ﯾوﺟد ﻟدﯾﻧﺎ ﺷك ﻓﻰ ﺻﺣﺔ اﻟﺻﯾﻐﺔ اﻟﺳﺎﺑﻘﺔ : n
ﺳوف ﻧﻘوم ﺑﺗوﻟﯾد 1000ﻋدد ﺻﺣﯾﺢ ﺛم ﻧﻘوم ﺑﺎﺳﺗﺧدام اﻻﻣر
2
i i 1
ﺛم اﻟﺻﯾﻐﺔ n(2n 1)(n 1) / 6 ﻓﻰ ﺣﺳﺎب ﻣﺟﻣوع ﻣرﺑﻌﺎت اﻻﻋداد ﻣن واﺣد اﻟﻰ اﻟف وﺳوف ﻧﺛﺑت اﻧﻬﻣﺎ ﻣﺗﺳﺎوﯾﯾن . ]}aa1=Random [Integer,{1,1000 556 ]}Sum[i^2,{i,1,aa1 57447866 ((2aa1+1)(aa1+1)aa1)/6 57447866 وﻟﻠﺗﺣﻘق اﻛﺛر ﺳوف ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ :
]}r[x_]:=Sum[i^2,{i,1,x Table[(r[x]((2x+1)(x+1)x)/6)/.x]}>Random[Integer,{1,1000}],{10 }{True,True,True,True,True,True,True,True,True,True ﺻﯾﻐﺔ اﻟﺟﻣﻊ اﻟﺗﻰ ﺗﺣﻘﻘﻧﺎ ﻣﻧﮭﺎ ﻣﻌروﻓﺔ ﺟﯾدا ﻟﻠرﯾﺎﺿﯾن وﻟﻛن اﺳﺗﺧدﻣﻧﺎھﺎ ﻓﻘط ﻟﻠﺗوﺿﯾﺢ .
) ( ١٢-٥-٤اﻟﺣروف وﻣﺗﺗﺎﺑﻌﺔ ﻣن اﻟﺣروفStrings and Character
١٩٨
ﯾﻣﻛن ﺗﻌرﯾف اﻟﺣروف Charactersﺑﺎﻧﻬﺎ اﻟـ objectsاﻟﺗﻰ ﺗظﻬر ﻓﻰ ﺷﺎﺷﺔ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺑﯾن "" "" ﻣﺛل "" ""aاو "" ""3او "."Tﻋﻣوﻣﺎ ﺗﺷﻣل اﻟﺣروف اﻟﻛﺑﯾرة A,B,C,…,Zاو اﻟﺣروف اﻟﺻﻐﯾرة a,b,c,…,aاﻻﻋداد 0,1,2,…,9واﻟﻣﺳﺎﻓﺔ واﻟﻔﺻﻠﺔ ,و اﻟﻧﻘطﺔ .و ! ﻋﻣوﻣﺎ اﻟﻣﺗﺗﺎﺑﻌﺔ ﻣن اﻟﺣروف Sequences Charactersاﻟﺗﻰ ﺗوﺿﻊ ﺑﯾن "" "" ﺗﺳﻣﻰ . stringsﻋﻧدﻣﺎ ﯾطﺑﻊ اﻟﺑرﻧﺎﻣﺞ stringsﻓﻰ اﻟﻣﺧرج ﺗظﻬر ﺑدون "" "" وﻟﻛن ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر InputForm ﻟرؤﯾﺔ " " ""Book Book ]"InputForm["Book ""Book
ﯾﺟب ان ﻧﻌرف ان stringﻫﻰ ﻗﯾﻣﺔ ﻣﺛﻠﻬﺎ ﻣﺛل اﻟﻘﯾم اﻻﺧرى )ﻣﺛل اﻻﻋداد واﻟﻘواﺋم ( و ﯾﻣﻛن اﺳﺗﺧدام اﻻواﻣر ﻟﻠﺗﻌﺎﻣل ﻣﻌﻬﺎ .ﺗﻠك اﻟﻌﻣﻠﯾﺎت ﻣﻌروﻓﻪ ﺑﺎﺳﻣﺎﺋﻬﺎ ]"StringLength["Book 4 ]"StringReverse["abcd dcba ]StringTake["abcd",3 abc ]StringDrop["abcd",-1 abc ]"StringPosition["abcd","bc }}{{2,3 ]StringInsert["abcd","t",3 abtcd ]"StringReplace["abcd","cd"->"uv abuv ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﺳﺗﺧدام اﻻواﻣر ﻓﻰ اﻟﺗﻌﺎﻣل ﻣﻊ stringﯾﻣﻛن ﺗﺣوﯾل stringاﻟﻰ ﻗﺎﺋﻣﺔ ﻣن characters ﺑﺎﺳﺗﺧدام اﻻﻣرCharacters ]"Characters["abcd }{a,b,c,d اﯾﻀﺎ ﯾﻤﻜﻦ اﺳﺘﺨﺪام اﻻواﻣﺮ اﻟﺘﺎﻟﯿﺔ ]}Take[%,{2,3 }{b,c ]StringJoin[% bc
١٩٩
) (١٣-٥-٤ﻣﻧظوﻣﺔ اﻻﺟراءات Procedure ﻋﻧد ﺑﻧﺎء اﻟﺣﺳﺎﺑﺎت ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻏﺎﻟﺑﺎ ﻣﺎ ﻧﺣﺗﺎج ان ﻧرﺑط ﻣﺟﻣوﻋﺔ ﻣن اﻻواﻣر ﻣﻌﺎ وﯾﻣﻛن ان ﯾﺗم ذﻟك ﺑﺎﺳﺗﺧدام ﻣﻧظوﻣﺔ اﻻﺟراءات وﻫﻰ ﻋﺑﺎرة ﻋن ﻣﺗﺗﺎﺑﻌﺔ ﻣن اواﻣر اﻟﺑرﻧﺎﻣﺞ ﺑﺣﯾث ﯾﻔﺻل ﺑﯾن ﻛﻼ ﻣﻧﻬﻣﺎ ﻋﻼﻣﺔ اﻟﻔﺻﻠﺔ اﻟﻣﻧﻘوطﺔ
;
وﻗﯾﻣﺔ اﻻﻣر اﻻﺧﯾر ﯾﻣﺛل اﻟﻧﺎﺗﺞ اﻟﻧﻬﺎﺋﻰ .اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻪ ﻫو :
…;Command1;Command2 ﻟﻠﺘﻮﺿﯿﺢ ﺑﻔﺮض اﻟﻤﺜﺎل اﻟﺬى ﺳﺒﻖ ذﻛﺮه ﻓﻰ ) (٩-٥-٤ﻛﺘﺐ ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ: ;]Range[2,10 ;]}Join[Range[2,10],{j,Q,K,A ;]Outer[List,{c,d,d,s},% ]aa1= Flatten[%,1
{{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10}, c,j},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7 },{d,8},{d,9},{d,10},{d,j},{d,Q},{d,K},{d,A},{d,2},{d,3}, {d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,j},{d,Q},{d },K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9 }},{s,10},{s,j},{s,Q},{s,K},{s,A ﻓﻰ ھذا اﻟﻣﺛﺎل ﻧﻼﺣظ ان ﻣﻧظوﻣﺔ اﻻﺟراءات ﺗﺗﻛون ﻣن ارﺑﻌﺔ اواﻣر ﯾﻔﺻل ﻛل ﻣﻧﮭﺎ ﻋن اﻻﺧر ﺑﻔﺻﻠﺔ ﻣﻧﻘوطﺔ ﻛﻣﺎ ﻧﻼﺣظ ان اﻟﻧﺎﺗﺞ اﻟﻧﮭﺎﺋﻰ ھو ﻗﯾﻣﺔ اﻻﻣر اﻻﺧﯾر : ﻓﻰ ﻣﻧظوﻣﺔ اﻻﺟراءات. ]aa1= Flatten[%,1
وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﺣل ﻟﮭذا اﻟﻣﺛﺎل ﺑﺗﻌرﯾف اﻟداﻟﺔ gواﻟﺗﻰ ﻋﻧد ادﺧﺎﻟﮭﺎ ﻻ ﻧﺣﺻل ﻋﻠﻰ ﻣﺧرج ﺣﯾث ﺗﺳﺗﺧدم اﻻﻗواس)(و ﻟﺗوﺿﯾﺢ ان ﻛل اﻻﺟراءات ﻣﻌﺎ ﺗﻣﺛل اﻟداﻟﺔ {g[x_,y_]:=(Flatten[Outer[List,{c,d,d,s},Join[Range[x,y], )]J,Q,K,A}]],1 وﯾﻣﻛن اﺳﺗدﻋﺎء اﻟداﻟﺔ وﻛﺗﺎﺑﺔ اﻟﺟﺎﻧب اﻻﯾﺳر ﻣن اﻟداﻟﺔ ﻣﻌرﻓﺔ ﺑﻘﯾﻣﺔ ﻣرﻏوب ﻓﯾﻬﺎ ،ﻓﻔﻰ ﻣﺛﺎﻟﻧﺎ : : x=2,y=10 ]g[2,10 {{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10}, c,J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7 },{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3}, {d,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d ٢٠٠
},K},{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9 }},{s,10},{s,J},{s,Q},{s,K},{s,A ﻋﻧد وﺿﻊ ﻗﯾﻣﺔ اﺧرى ﻟﻣﺣﺗوى اﻟداﻟﺔ ﻧﺣﺻل ﻋﻠﻰ ﻧﺗﯾﺟﺔ ﻣﺧﺗﻠﻔﺔ ﻛﺎﻟﺗﺎﻟﻰ : ]g[2,18 {{{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10}, c,11},{c,12},{c,13},{c,14},{c,15},{c,16},{c,17},{c,18},{c },J},{c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7 ,{d,8},{d,9},{d,10},{d,11},{d,12},{d,13},{d,14},{d,15},{d ,16},{d,17},{d,18},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3},{d ,4},{d,5},{d,6},{d,7},{d,8},{d,9},{d,10},{d,11},{d,12},{d },13},{d,14},{d,15},{d,16},{d,17},{d,18},{d,J},{d,Q},{d,K ,{d,A},{s,2},{s,3},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9},{s ,10},{s,11},{s,12},{s,13},{s,14},{s,15},{s,16},{s,17},{s, }}18},{s,J},{s,Q},{s,K},{s,A وﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻟداﻟﺔ اﻟﺳﺎﺑق ﺑدون اﻗواس ﻛﺎﻟﺗﺎﻟﻰ . g[x_,y_]:=Flatten[Outer[List,{c,d,d,s},Join[Range[x,y],{J ],Q,K,A}]],1 ]g[2,10 {{c,2},{c,3},{c,4},{c,5},{c,6},{c,7},{c,8},{c,9},{c,10},{c,J}, {c,Q},{c,K},{c,A},{d,2},{d,3},{d,4},{d,5},{d,6},{d,7},{d,8},{d ,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{d,2},{d,3},{d,4},{d,5},{d, 6},{d,7},{d,8},{d,9},{d,10},{d,J},{d,Q},{d,K},{d,A},{s,2},{s,3 }},{s,4},{s,5},{s,6},{s,7},{s,8},{s,9},{s,10},{s,J},{s,Q},{s,K }},{s,A
ﻛﺜﯿﺮا ﻣﺎ ﯾﺤﺪث ﻟﺒﺲ ﻓﻰ اﺳﻤﺎء اﻟﻤﺘﻐﯿﺮات ﻣﻊ ﺑﺮاﻣﺞ اﺧﺮى وﻟﺬﻟﻚ ﺑﻌﺪ ﻛﻞ ﺑﺮﻧﺎﻣﺞ ﯾﻔﺿل اﻣﺎ اﻟﺧروج ﻣن ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﺛم اﻟدﺧول ﻣرة اﺧرى او ﻋﻧد اﺳﺗﺧدام ﻣﻧظوﻣﺔ اﺟراءات ﻧﺟﻌل اﻟﻣﺗﻐﯾرات اﻟﻣﺳﺗﺧدﻣﺔ ﻛﻣﺗﻐﯾرات ﻣوﺿﻌﯾﺔ Localﺑﻣﻌﻧﻰ ان ھذا اﻟﻣﺗﻐﯾرات ﺗﺣﺗﻔظ ﺑﺎﻟﻘﯾم داﺧل ﻣﻧظوﻣﺔ اﺟراءات ﻓﻘط وﻟﻛن ﺗﻔﻘد ھذه اﻟﻘﯾم ﺑﻌد اﻧﺗﮭﺎء اﻟﺣﺳﺎﺑﺎت ﻓﻰ اﻟﻣﻧظوﻣﺔ واﻟﺧروج ﻣﻧﮭﺎ وﯾﺗم ذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Blockاو اﻻﻣﺮ. Moduleاﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣرﯾن ھﻰ : ]Block[{x,y,…},Procedure ]Module[{x,y,…},Procedure
و
وذﻟك ﻟﻼﻋﻼن ان اﻟﻣﺗﻐﯾرات … x,y,ﺗﻣﺛل ﻣﺗﻐﯾرات ﻣوﺿﻌﯾﺔ داﺧل ﻣﻧظوﻣﺔ اﻻﺟراءات .Procedure وﻋﻧد ﺗﺣدﯾد اﻟﻘﯾم اﻟﻣﺑدﺋﯾﺔ … x=xo,y=yo,ﻟﻠﻣﺗﻐﯾرات ﻓﺎن اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻼﻣرﯾن ﺗﺻﺑﺢ :
]Block[{x=xo,y=yo,… },Procedure ]Module[{x=xo,y=yo,…},Procedure
و
وﻋﻠﻰ ذﻟك ﺑﺎﺳﺗﺧدام اﺣدى اﻻﻣرﯾن اﻟﺳﺎﺑﻘﯾن ﯾﻣﻛن ﺗﻌرﯾف اى ﻣﺗﻐﯾرات داﺧل ﻣﻧظوﻣﺔ اﻻﺟراءات دون اﻟﺗﺎﺛﯾر ﻋﻠﻰ اﻟﻘﯾم ﺑﺧﺎرج اﻟﻣﻧظوﻣﺔ وﺑﺎﻟﺗﺎﻟﻰ ﯾﻣﻛن ﺗﻌرﯾف ﻧﻔس اﻟﻣﺗﻐﯾر اﻟﻣوﺿﻌﻰ داﺧل اﻛﺛر ﻣن ﻣﻧظوﻣﺔ اﺟراءات . ﻓﻣﺛﻼ ﺑﺎﻟﻧﺳﺑﺔ ﻟﻼﻣر : ٢٠١
aa1=Flatten[Outer[List,{c,d,d,s},Join[Range[2,10],{J,Q,K, ]A}]],1 وﺑﻔرض اﺳﺗﺧداﻣﮫ ﻓﻰ اﻣر اﺧر : ]Flatten[Transpose[Partitation[aa1,26]],1 ﻓﺎﻧﮫ ﯾﻤﻜﻦ ﺿﻤﮭﻢ ﻣﻌﺎ ﻓﻰ ﻣﻨﻈﻮﻣﺔ ﻛﺎﻟﺘﺎﻟﻰ :
[Module[{aa1},aa1=Flatten[Outer[List,{c,d,d,s},Join[Range ]]2,10],{J,Q,K,A}]],1];Flatten[Transpose[Partition[aa1,26 ]],1 {{{c,2},{d,2},{c,3},{d,3},{c,4},{d,4},{c,5},{d,5},{c,6},{d,6}, {c,7},{d,7},{c,8},{d,8},{c,9},{d,9},{c,10},{d,10},{c,J},{d,J}, c,Q},{d,Q},{c,K},{d,K},{c,A},{d,A},{d,2},{s,2},{d,3},{s,3},{d, }4},{s,4},{d,5},{s,5},{d,6},{s,6},{d,7},{s,7},{d,8},{s,8},{d,9 },{s,9},{d,10},{s,10},{d,J},{s,J},{d,Q},{s,Q},{d,K},{s,K},{d,A }},{s,A
) (١٤-٥-٤اﻟدوال)اﻻواﻣر( اﻟﺷرطﯾﺔ Coditional functions ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ وﻓﻰ ﺑﻧﺎء ﻣﻧظوﻣﺔ اﻻﺟراءات ﻏﺎﻟﺑﺎ ﻣﺎ ﻧﺣﺗﺎج اﻟﻰ ﺗﻧﻔﯾذ ﺑﻌض اﻟﻌﻣﻠﯾﺎت اذا ﺗﺣﻘﻘت ﺷروط ﻣﻌﯾﻧﺔ وﯾﺗم ذﻟك ﺑﺎﺳﺗﺧدام دوال اﻻﻧﺗﻘﺎل اﻟﻣﺷروط واﻟﻣﺳﻣﺎه ﺑﺎﻟدوال اﻟﺷرطﯾﺔ واﻟﺗﻰ ﺗﻘوم ﺑﺎﻋﺎدة اﻟﻘﯾم ﻟﺗﻌﺑﯾرات ﻣﺧﺗﻠﻔﺔ ﺑﻧﺎء ﻋﻠﻰ ﺷروط .ﺳوف ﻧﺗﻧﺎول اﻟدوال اﻟﺗﺎﻟﯾﺔ : داﻟﺔ Ifاو اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭﺎ ھﻰ :
] If[Cond,exp r1 ,exp 2واﻟﺗﻰ ﺗﻌﯾد اﻟﻘﯾﻣﺔ ﻟـ exp r1اذا ﻛﺎن Condﺻواب وﺗﻌﯾد اﻟﻘﯾﻣﺔ ﻟـexpr2 x اذا ﻛﺎن Condﻏﯾر ذﻟك .ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ]If[n 0,5,9
ﺗﻌﯾد 5اذا ﻛﺎﻧت ﻗﯾﻣﺔ nاﻛﺑر ﻣن 5وﺗﻌﯾد 9ﻏﯾر
ذﻟك . ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
]]aa1=5;aa2=9;If[aa1>aa2,Print[x],Print[y y ﺣﯾث ﯾﺗم ادﺧﺎل ﻗﯾم aa1,aa2ﺛم طﺑﺎﻋﺔ اﻟﻌدد اﻻﻛﺑر .وﯾﻣﻛ ن ان ﯾﻛﺗ ب اﻻﻣ ر اﻟﺳ ﺎﺑق ﻋﻠ ﻰ اﻟﺻ ورة اﻟﺗﺎﻟﯾ ﺔ ﺣﯾ ث ] Print[x],Print[yاﺳﺗﺑدل ﺑـ]". Print["x"],Print["y
]]"aa1=5;aa2=9;If[aa1>aa2,Print["x"],Print["y y وﻛﻣﺛﺎل اﺧر :
]}g[x_]:=If[x>0,4,-4];Plot[g[x],{x,-4,4
٢٠٢
4
2
4
-2
2
-4
-2
-4
Graphics ﺣﯾث ﺗم اﺳﺗﺧدام اﻻﻣر Ifﻓﻰ ﺗﻌرﯾف اﻟداﻟﺔ gﺛم رﺳم اﻟداﻟﺔ. ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ ﻣﺗﺗﺎﺑﻌﺔ ﻣن اﻟداﻟﺔ Ifوﻛل اﻣر ﯾﺎﺗﻰ ﻣن اﻟﺟزء اﻟﺧطﺎ ﻣن اﻻﻣر اﻟﺳﺎﺑق ﻟ ﮫ .وﻋﻠ ﻰ ذﻟ ك ﻓ ﺎن ﺗرﻛﯾﺑ ﺔ اﻟﺣﺳ ﺎﺑﺎت ﺗﻣﺛ ل ﻣﺗﺗﺎﺑﻌ ﺔ ﻣ ن اﻻﺧﺗﺑ ﺎرات ﻟﻠﻣﺗﻧﺋ ﺎت Predicatesﺣﺗ ﻰ اﻟوﺻ ول اﻟ ﻰ واﺣ دة ﺗﻛ ون ﻧﺗﯾﺟﺗﮭﺎ ﺻواب .اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﮭذه اﻟﻣﺗﺗﺎﺑﻌﺔ ﺗﻛون ﻛﺎﻟﺗﺎﻟﻰ :
If[Cond1 , result1 ], If[Cond 2, result 2 ], If[Cond n, result n ], ] If[True, result n 1
ﻓﻰ اﻟﻣﺗﺗﺎﺑﻌﺔ اﻟﺳﺎﺑﻘﺔ اذا ﺗﺣﻘ ق Cond iﻓ ﻰ اﻟﻣﺗﺗﺎﺑﻌ ﺔ ﻟ ـ I fﻓ ﺎن result i اﻟﺷروط اﻟﺗﻰ ﻋددھﺎ nﻓﺎن اﻟﺷرط ﻓﻰ اﻻﻣر Ifاﻟذى رﻗﻣﮫ n+1ھو Trueو result n 1ﺗؤﺧذ ﻛﻧﺗﯾﺟﮫ.
ﺗؤﺧ ذ ﻛﻧﺗﯾﺟ ﺔ واذا ﻟ م ﯾﺗﺣﻘ ق اى ﻣ ن
ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﯾﻣﻛن اﺳﺗﺧدم اﻻﻣر Whichﺑدﻻ ﻣن Ifﻓﻰ اﻟﻣﺗﺗﺎﺑﻌ ﺔ اﻟﺳ ﺎﺑﻘﺔ .اﻟﺻ ﯾﻐﺔ اﻟﻌﺎﻣ ﺔ ﻟﻼﻣ ر Whichﺳ وف ﺗﻛون ﻛﺎﻟﺗﺎﻟﻰ :
Which[Cond1 , result1 , [Cond 2, result 2 , Cond n , result n , ] True, result n 1 ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
f[x_]:=Which[x<0,x^3,x>0&&x<3,2x,True,6];Plot[f[x],{x,;]}4,4
٢٠٣
5 2.5 2
4
-4
-2 -2.5 -5 -7.5 -10 -12.5
ﺣﯾث اﺳﺗﺧدم اﻻﻣر Whichﻓﻰ ﺗﻌرﯾف اﻟداﻟﺔ ]f[xﺛم رﺳﻣﮭﺎ . ﻛﻣﺛﺎل اﺧر :
;5x, True, 5
fx_ : Whichx 0, x^2, x 0&& x 5, ;Plotfx, x, 8, 8 12 10 8 6 4 2
7.5
5
-2.5
2.5
-5
-7.5
ﺣﯾث اﺳﺗﺧدم اﻻﻣر Whichﻓﻰ ﺗﻌرﯾف اﻟداﻟﺔ ]f[xﺛم رﺳﻣﮭﺎ . ﺳوف ﻧﺳﺗﺧدم اﻣﺛﻠﺔ وﺿﯾﺣﯾﺔ ﻟﻠدوال اﻟﺷرطﯾﺔ .
ﻣﺛﺎل ﺳوف ﻧﺳﺗﺧدم اﻟداﻟﺔ ApplyCharواﻟﺗﻰ داﻟﺔ ﻓﻰ ﻗﺎﺋﻣﺔ ﺣﯾث اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﻻ ﺑد ان ﯾﺣﺗوى ﻋﻠﻰ واﺣد ﻣن اﻟﺣروف " "+او " "-او "*" او " "/ﺛم ﯾﺗﺑﻌﺔ ﺑﻘﯾﺔ اﻻﻋداد ﻓﻰ اﻟﻘﺎﺋﻣﺔ .اﻟداﻟﺔ ApplyCharﺗطﺑق داﻟﺔ ﺑﺎﺳم اﻟﺣرف ﻋﻠﻰ اﻻﻋداد ﻓﻰ اﻟﻘﺎﺋﻣﺔ ﺑﻌد اﺳﺗﺑﻌﺎد اﻟﺣرف ﻣن اﻟﻘﺎﺋﻣﺔ ،اوﻻ ﺳوف ﻧﺳﺗﺧدم Ifﻓﻰ اﻟﺣﺳﺎب :
=applyChar[lis_]: Module[{op=First[lis],nums=Rest[lis]}, If[op=="+",Apply[Plus,nums], If[op=="-",Apply[Minus,nums], If[op=="*",Apply[Times,nums], If[op=="/",Apply[Divide,nums], ٢٠٤
Print["bad argument to applyChar"]]]]]] applyChar[{"+",1,2,3,4}] 10 : ﻓﻰ اﻟﺣﺳﺎبWhich اﻻن ﺳوف ﻧﺳﺗﺧدم
applyChar[lis_]:= Module[{op=First[lis],nums=Rest[lis]}, Which[op=="+",Apply[Plus,nums], op=="-",Apply[Minus,nums], op=="*",Apply[Times,nums], op=="/",Apply[Divide,nums], True,Print["bad argument to applyChar"]]] applyChar[{"+",1,2,3,4}] 10
ﻣﺛﺎل : ﻣﺛﺎل اﺧر ﻟﻠﺗوﺿﯾﺢ
{ ﻓﻰ اﻟﻣﺳﺗوى ﺣﺳب اﻟﺗﺻﻧﯾفx,y} واﻟﺗﻰ وظﯾﻔﺗﮭﺎ ﺗﺻﻧﯾف ﻟﻠﻧﻘطﺔpointLog ﺳوف ﻧﻌرف اﻟداﻟﺔ : اﻟﻣوﺿﺢ ﻓﻰ اﻟﺟدول اﻟﺗﺎﻟﻰ
اﻟﻧﻘطﺔ {0,0} x ﻋﻠﻰ ﻣﺣورy=0 y ﻋﻠﻰ ﻣﺣورx=0 اﻟرﺑﻊ اﻻول اﻟرﺑﻊ اﻟﺛﺎﻧﻰ اﻟرﺑﻊ اﻟﺛﺎﻟث اﻟرﺑﻊ اﻟراﺑﻊ
اﻟﺗﺻﻧﯾف 0 -1 -2 1 2 3 4
٢٠٥
: اﻟﺣل اﻻول ﻟﮭذا اﻟﻣﺛﺎل ھو
PointLog[{0,0}]:=0 PointLog[{x_,0}]:=-1 PointLog[{0,y_}]:=-2 PointLog[{x_,y_}]:=1/;x>0&&y>0 PointLog[{x_,y_}]:=2/;x<0&&y>0 PointLog[{x_,y_}]:=3/;x<0&&y<0 PointLog[{x_,y_}]:=4(*/;x>0&&y<0*) :{5,-9} ﺑﺗطﺑﯾق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ
PointLog[{5,-9}] 4 :If اﻟﺣل اﻟﺛﺎﻧﻰ ﻟﮭذا اﻟﻣﺛﺎل ھو اﺳﺗﺧدام
PointLog[x_,y_]:= If[x0&&y0,0, If[y0,-1, If[x0,-2, If[x>0&&y>0,1, If[x<0&&y>0,2, If[x<0&&y<0,3,(*x>0&&y<0*)4]]]]]] :{5,-9} ﺑﺗطﺑﯾق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ
PointLog[-5,-9] 3 :Which اﻟﺣل اﻟﺛﺎﻟث ﻟﮭذا اﻟﻣﺛﺎل ھو اﺳﺗﺧدام
PointLog[x_,y_]:= Which[ x0&&y0,0, y0,-1, x0,-2, x>0&&y>0,1, x<0&&y>0,2, x<0&&y<0,3, True(*x>0&&y<0*),4] :{5,-9} ﺑﺗطﺑﯾق اﻟداﻟﺔ ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ
٢٠٦
]PointLog[-5,-9 3
ﺳوف ﻧوﺿﺢ ﺧطوات اﻟﻌﻣل ﻋﻠﻰ اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ ﻋﻧد ﺗطﺑﯾﻘﮭﺎ ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ }.{-5,-9اﻟﺧطوة اﻻوﻟﻰ ﺗﻘدﯾر x==0 وﺑﻣﺎ اﻧﮭﺎ ﺧطﺎ ﻓﺎن اﻟﻣراﻓق y==0ﻻ ﯾﻘدر ﯾﻠﻰ ذﻟك اﻟﺧطوة اﻟﺛﺎﻧﯾﺔ وھ و ﺗﻘ دﯾر y==0ﻓ ﻰ اﻟﺳ طر اﻟﺗ ﺎﻟﻰ وﺑﻣ ﺎ اﻧﮭ ﺎ ﺧطﺎ ﻧذھب اﻟﻰ اﻟﺧطوة اﻟﺛﺎﻟﺛﺔ وھﻰ ﺗﻘدﯾر x==0ﻓﻰ اﻟﺳطر اﻟﺛﺎﻟث وﺑﻣﺎ اﻧﮭﺎ ﺧطﺎ ﻧذھب اﻟﻰ اﻟﺧطوة اﻟراﺑﻌﺔ وﻧﻘ در x>0ﻓﻰ اﻟﺳطر اﻟﺗﺎﻟﻰ وﺑﻣﺎ اﻧﮭﺎ ﺧطﺎ ﻓﺎن اﻟﻣراﻓق y>0ﻻ ﯾﻘدر ﯾﻠ ﻰ ذﻟ ك اﻟﺧط وة اﻟﺧﺎﻣﺳ ﺔ وھ ﻰ ﺗﻘ دﯾر x<0ﻓ ﻰ اﻟﺳطر اﻟﺗﺎﻟﻰ وﺑﻣﺎ اﻧﮭﺎ ﺻواب ﻧﻘدر y>0وﺑﻣﺎ اﻧﮭﺎ ﺧطﺎ ﻧذھب اﻟﻰ اﻟﺧطوة اﻟﺳﺎدﺳﺔ ﺣﯾث x<0و y<0واﻟﻧﺗﯾﺟﺔ ﺻواب وﺑﺎﻟﺗﺎﻟﻰ اﻻﺟﺎﺑﺔ ﺳوف ﺗﻛون .3 اﻟﺣل اﻟراﺑﻊ ﻟﮭذا اﻟﻣﺛﺎل ھو اﺳﺗﺧدام Which, Ifواﺧﺗﺻﺎر ﻓﻰ اﻟﻌﻣﻠﯾﺎت :
=PointLog[x_,y_]: [Which x==0,If[y==0,0,-2], x>0,Which[y>0,1, y<0,4, True,-1], True, Which[y<0,3, y>0,2, ]]True,-1 ]}PointLog[{-5,-9 3 واﺧﯾرا اﻟﺣل اﻟﺧﺎﻣس ﻟﮭذا اﻟﻣﺛﺎل ﻛﺎﻟﺗﺎﻟﻰ:
PointLog[{0,0}]:=0 PointLog[{x_,0}]:=-1 PointLog[{0,y_}]:=-2 PointLog[{x_,y_}]:=If[x<0,2,1]/;y>0 )*PointLog[{x_,y_}]:=If[x<0,3,4](*/;y<0 ]}PointLog[{-5,-9 3
) ( ١٥-٥-٤اﻟﺣﻠﻘﺎت اﻟﺗﻛ اررﯾﺔ Loops ٢٠٧
ﻓﻰ ﻣﻧظوﻣﺔ اﻻﺟراءات ﯾﺗم ﺗﻧﻔﯾذ ﻣﺟﻣوﻋﺔ ﻣن اﻻواﻣر وﻓﻘﺎ ﻟﺗرﺗﯾب ﻫذﻩ اﻻواﻣر داﺧل ﻣﻧظوﻣﺔ اﻻﺟراءات .ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻧﺣﺗﺎج اﻟﻰ ﺗﻧﻔﯾذ ﺑﻌض اﻟﻌﻣﻠﯾﺎت ﺑﺻورة ﻣﺗﻛررة داﺧل اﻟﺑراﻣﺞ ﺑﺎﺳﺗﺧدام اواﻣر ﺧﺎﺻﺔ ﺑﺎﻟﺣﻠﻘﺎت اﻟﻣﺗﻛررة ﺣﯾث ﺗﻌﻣل اﻟﺣﻠﻘﺎت اﻟﻣﺗﻛررة ﻋﻠﻰ ﺗﻛرار ﻣﺟﻣوﻋﺔ ﻣﺗﺗﺎﻟﯾﺔ ﻣن اﻻواﻣر ﺑﺻورة ﻣﺗﻛررة ﻟﻌدد ﻣﺣدود ﻣن اﻟﻣرات ﻣﻊ اﻣﻛﺎﻧﯾﺔ اﻟﺗﻐﯾﯾر اﻻوﺗوﻣﺎﺗﯾﻛﻰ ﻟﻘﯾم اﻟﻣﺗﻐﯾرات داﺧل اﻟﺣﻠﻘﺎت اﻟﺗﻛ اررﯾﺔ .وﻣن اواﻣر اﻟﺑرﻧﺎﻣﺞ اﻟﺧﺎﺻﺔ ﺑﺎﻟﺣﻠﻘﺎت اﻟﺗﻛ اررﯾﺔ اﻻﻣر Doوﻗد ﯾﺎﺧذ اﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ ]} Do[expression,{i,imin,imax,stepﺣﯾث ﯾﻛرر expressionﻣﻊ اﻟﻣﺗﻐﯾر iواﻟذى ﯾﺎﺧذ اﻟﻘﯾم mini,imin+stepوﻫﻛذا ﺣﺗﻰ اﻟوﺻول اﻟﻰ اﻟﻘﯾﻣﺔ .imaxوﻋﻠﻰ ذﻟك اﻟﺣﻠﻘﺔ ﺗﻛرر ﻣﺟﻣوع ﻋدد imax-imin/stepﻣن اﻟﻣرات .واﻛﺛر ﻣن ذﻟك ﻋﻧد ﺗﺟﺎﻫل اﻟﻘﻔزة stepﻓﺎﻧﻧﺎ ﻧﻌﺗﺑرﻫﺎ ﺗﺳﺎوى واﺣد ﺻﺣﯾﺢ .وﻋﻧدﻣﺎ ﺗﻌطﻰ i,imaxﻓﺎن ﻛﻼ i,iminﻧﻌﺗﺑرﻫم ﯾﺳﺎوﯾﺎت واﺣد ﺻﺣﯾﺢ .وﻗد ﯾﺎﺧذ اﻻﻣر Doاﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ : ]} Do[]expr,{nﺣﯾث ﯾﺗم ﺣﺳﺎب exprﻋدد nﻣن اﻟﻣرات .ﻛﻣﺎ ﻗد ﯾﺎﺧذ اﻟﺻورة اﻟﺗﺎﻟﯾﺔ ]]} Do[expr,{I,imin,imax},{j,imin,imaxﺣﯾث ﯾﺗم ﺣﺳﺎب exprﻟﻘﯾم i,jاﻟﻣﻌطﺎﻩ .وﺳوف ﻧﺗﻛﻠم ﻋن اﻻﻣر Doﺑﺎﻟﺗﻔﺻﯾل ﻋﻧد اﺳﺗﺧدام طرﯾﻘﺔ ﻧﯾوﺗن ﻟﻠﺣﺻول ﻋﻠﻰ ﺟذور ﺑﻌض اﻟدوال. ﻓﻌﻠﻰ ﺳﺑﯾل ااﻣﺛﺎل : ]}Do[c=i^2;Print[c],{i,4 1 4 9 16 ﯾﻼﺣظ اﻧﻧﺎ اﺿﻔﻧﺎ Printاﻟﻰ اﻻﻣر Doوذﻟك ﻟﻛﺗﺎﺑﺔ ﻗﯾم c=i^2ﻋﻧد ﺗﻐﯾﯾر ﻗﯾم i ﻣن واﺣد اﻟﻰ ﺛﻼﺛﺔ . ﻛﻣﺎ ﯾﻣﻛن ان ﯾﻛﺗب ﺑﺎﻟﺷﻛل اﻟﺗﺎﻟﻰ وذﻟك ﻟطﺑﻊ ﻛل اﻟﻘﯾﻣﺔ ﻣﻊ ﺧطوات ﺗﻧﻔﯾذﻫﺎ ]}Do[c=i^2;Print[" c ",i," : ",c],{i,4 c 1 : 1 c 2 : 4 c 3 : 9 c 4 : 16 وﻛﻣﺛﺎل اﺧر : ]}Do[c=i^2+j;Print[c],{i,3},{j,1,2 2 3 5 6 10 11
٢٠٨
اﻻن ﺳوف ﻧﺗﻛﻠم ﻋن اﻻﻣر Whileواﻟذى ﯾﺎﺧذ اﻟﺷﻛل اﻟﺗﺎﻟﻰ ] While[cond,expressionﺣﯾث condﯾﻣﺛل اﻻﺧﺗﺑﺎر testاو اﻟﺷرط و expressionﯾﻣﺛل اﻟﺟﺳم . bodyﺣﯾث ﯾﻌﻣل ﻫﻛذا :ﺗﻘدﯾر اﻻﺧﺗﺑﺎر واذا ﻛﺎن ﺻواب ﻓﺎﻧﻪ ﯾﻘدر اﻟﺟﺳم ﺛم ﯾﻛرر اﻻﺧﺗﺑﺎر ﻣرة اﺧرى ،اذا ﻛﺎن اﻻﺧﺗﺑﺎر ﺻواب ﻓﻌﻧدﺋذن ﯾﻘدر اﻟﺟﺳم . ﯾﺳﺗﻣر ﻋﻠﻰ ﻫذﻩ اﻟطرﯾﻘﺔ ﺣﺗﻰ ﯾﺻﺑﺢ ﺗﻘدﯾر اﻻﺧﺗﺑﺎر ﺧطﺎ .وﯾﺟب ان ﻧﺗذﻛر ان اﻟﺟﺳم ﻗد ﻻ ﯾﻘدر )اذا ﻛﺎن ﺗﻘدﯾر اﻻﺧﺗﺑﺎر ﺧطﺎ ﻓﻰ اﻟﻣرة اﻻوﻟﻰ ( وﻗد ﯾﻘدر ﻣرة واﺣدة وﻗد ﯾﻘدر اﻻف ﻣن اﻟﻣرات .وﺳوف ﻧﺗﻛﻠم ﻋن ﻫذا اﻻﻣر ﺑﺎﻟﺗﻔﺻﯾل ﻋﻧد اﺳﺗﺧدام طرﯾﻘﺔ ﻧﯾوﺗن ﻟﻠﺣﺻول ﻋﻠﻰ ﺟذور ﺑﻌض اﻟدوال .ﻓﻌﻠﻰ ﺳﺑﯾل ااﻣﺛﺎل : ]i=1;While[i<10,Print[i];i=i+2 1 3 5 7 9
) ( ٦-٤اﻟﻣﺻﻔوﻓﺎت واﻟﻣﺗﺟﻬﺎت Matrices and Vectors ) ( ١-٦-٤ﻣﻘدﻣﺔ ﯾﻣﻛن اﺳﺗﺧدام ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻓﻰ اﺟراء اﻟﻌﻣﻠﯾﺎت اﻟرﯾﺎﺿﯾﺔ اﻟﺧﺎﺻﺔ ﺑﺎﻟﻣﺻﻔوﻓﺎت واﻟﺗﻰ ﻛﺎﻧت ﺗﺳﺗﻐرق اﻟﻛﺛﯾر ﻣن اﻟوﻗت وﺧﺎﺻﺔ اذا ﻛﺎﻧت اﻟﻣﺻﻔوﻓﺎت ﻓﻰ اﺑﻌﺎد ﻛﺑﯾرة . .وﻗﺑل اﻟﺑدء ﻓﻰ ﻋرض اﻟﻌﻣﻠﯾﺎت ﻓﻰ ﺟﺑر اﻟﻣﺻﻔوﻓﺎت ﻻ ﺑد ﻣن ﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺔ .اﻟﻣﺻﻔوﻓﺔ ﻓﻰ ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻋﺑﺎرة ﻋن ﻗﺎﺋﻣﺔ ﻣن ﻗواﺋم list of ) listsﻗواﺋم ﻣﺗداﺧﻠﺔ ( Nested Listsﺣﯾث ﻛل ﻗﺎﺋﻣﺔ ﺗﻣﺛل ﺻف ﻣن اﻟﻣﺻﻔوﻓﺔ .وﻋﻠﻰ ذﻟك اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ ﻣن اﻟﺑﻌد : mxn
a 1n a 2n a 3n a mn
a 13
a12
a 23 a 33
a 22 a 32
a m3
a m2
a11 a 21 A a 31 a m1
ﯾﻣﻛن ادﺧﺎﻟﮭﺎ ﺑﺻورة ﻗواﺋم ﻛﺎﻟﺗﺎﻟﻰ :
} A {{a11 ,a 12 ,...,a 1n },{a 21 ,a 22 ,...,a 2n },...,{a m1 ,a m 2 ,..., a mn ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻻﺳﺗﺧدام اﻟﺑرﻧﺎﻣﺞ ﻟﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺔ : ٢٠٩
a12 a 22
a11 a 21
ﻓﺎﻧﻧﺎ ﻧدﺧل اﻻﻣر:
aa1 {{a 11 , a12 },{a 21 ,a 22 ,}}. اﻻﻣر Arrayﯾﻌطﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ ]}aa1=Array[a,{2,2
}}]{{a[1,1],a[1,2]},{a[2,1],a[2,2 وﺑﻣﺟرد دﺧول اﻟﻣﺻﻔوﻓﺔ Aﯾﻣﻛن ﺗﺣوﯾﻠﮭﺎ اﻟﻰ اﻟﺷﻛل اﻟﺗﻘﻠﯾدى )ﺻﻔوف واﻋﻣدة ( وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر ]. MatrixForm[A ﯾﻣﻛن ﺑﺳﮭوﻟﺔ ﺗﻛوﯾن ﻣﺻﻔوﻓﺔ 2X2وذﻟك ﺑﺎﺳﺗﺧدام اﻟﻘﺎﺋﻣﺔ BasicTypesettingواﻟﺗﻰ ﻧﺣﺻل ﻋﻠﯾﮭﺎ ﺑﺎﻟذھﺎب اﻟﻰ اﻻﻣر Fileﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟذھﺎب اﻟﻰ Palettesﺛم اﻟﻰ BasicTypesettingﻓﻧﺣﺻل ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ :
ﺛم ﺿﻐط ﻋﻠﻰ اﻟرﻣز
واﻟﻣﺷﺎر ﻟﻪ ﺑﺎﻟﺳﻬم .وﻛﺑدﯾل ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ ﻣﺻﻔوﻓﺎت ﺑﺎى اﺑﻌﺎد وذﻟك
ﺑﺎﻟذﻫﺎب اﻟﻰ اﻟﻰ Inputﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟذھﺎب اﻟﻰ Creat Table/Matrix/Palette وﺑﺎﻟﺿﻐط ﻋﻠﯾﮭﺎ ﻛﻣﺎ ھو ﻣوﺿﺢ ﻓﯾﻣﺎ ﯾﻠﻰ :
٢١٠
ﻧﺣﺻل ﻋﻠﻰ اﻟﺻﻧدوق اﻟﺗﺎﻟﻰ :
واﻟذى ﻣﻧﻪ ﯾﻣﻛن ﺗﻛوﯾن ﻣﺻﻔوﻓﺎت وﺟداول و.Palettesﻻﻧﺷﺎء ﻣﺻﻔوﻓﺔ ﻧﺧﺗﺎر Matrixوﻧدﺧل ﻋدد اﻟﺻﻔوف ﻓﻰ ﺧﺎﻧﺔ اﻟﺻﻔوف وﻋدد اﻻﻋﻣدة ﻓﻰ ﺧﺎﻧﺔ اﻻﻋﻣدة ﺛم اﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Okﻓﺗظﻬر اﻟﻣﺻﻔوﻓﺔ اﻟﻣرﻏوﺑﺔ ﻣﻛﺎن ﻣؤﺷر اﻟﻔﺎرة ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .
ﻣﺛﺎل
٢١١
: اﺳﺗﺧدم اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻟﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺗﯾن a11 a 21 a 31
a12 a 22 a 32
a13 a 23 a 33
:و b11 b 21
b12
b13
b 22
b 23
b14 b 24
: اﻟﺣل : ﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﻛﻼ اﻻﻣرﯾن
Table[a i, j{i,1,3},{j,1,3}] : او
Array[a,{3,3}] :ﯾﺳﺗﺧدﻣﺎن ﻋﻧد ﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺔ اﻟﺗﻰ ﻋﻠﻰ اﻟﺷﻛل
a11 a 21 a 31
a12 a 22 a 32
a13 a 23 a 33
ﯾﺳﺗﺧدﻣﺎن ﻟﻌرض اﻟﻧﺗﯾﺟﺔ ﻓﻰ اﻟﺷﻛل اﻟﺗﻘﻠﯾدى ﻟﻠﻣﺻﻔوﻓﺔTableForm اوMatrixForm اﻻﻣر . traditional matrix form Clear[a,b,aa1,aa2]
aa1 Tableai,j, i, 1, 3, j, 1, 3 a1,1, a1,2, a1,3, a2,1, a2,2, a2,3, a3,1, a3,2, a3,3 aa2=MatrixForm[aa1] a1,1 a1,2 a1,3 a a a 2,1 2,2 2,3 a a a 3,1 3,2 3,3 aa1=Array[a,{3,3}]
٢١٢
{{a[1,1],a[1,2],a[1,3]},{a[2,1],a[2,2],a[2,3]},{a[3,1],a[ 3,2],a[3,3]}} aa2=MatrixForm[aa1] a1, 1 a1, 2 a1, 3 a 2, 1 a2, 2 a2, 3 a 3, 1 a 3, 2 a 3, 3 Array ﯾﻣﻛن اﺳﺗﺧدام اﻟﺑرﻧﺎﻣﺞ ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﺻﻔوﻓﺔ ﻏﯾر ﻣرﺑﻌﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر aa3=Array[b,{2,4}] {{b[1,1],b[1,2],b[1,3],b[1,4]},{b[2,1],b[2,2],b[2,3],b[2, 4]}} aa2=MatrixForm[aa3] b1, 1 b1, 2 b1, 3 b1, 4 b2, 1 b2, 2 b2, 3 b2, 4 :ﻧﺗﺎﺋﺞ ﻣﻣﺎﺛﻠﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﺑﺎﺳﺗﺧدام اﻻﻣر
Table[b i, j{i,1, 2},{j,1, 4}] : ﻋﻣوﻣﺎ اﻻﻣرﯾن
Table[f [i, j],{i,i max},{j, jmax}], Array[f ,{i,i max},{j, jmax}] . imax jmax ﺗﻘﺎﺑل اﻟﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌدnested lists ﯾؤدﯾﺎن اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ ﻗواﺋم ﻣﺗداﺧﻠﺔ
f[1, 2] f [1, jmax] f[1,1] f [2,1] f[2, 2] f[2, jmax] f[i max,1] f[i max, 2] f[i m x, jmax] : اﻻﻣر
Table[f[i, j],{i,i min,imax,istep},{j, jmin, jmax, jstep}] : ﯾﺣﺳب ﻗﺎﺋﻣﺔ اﻟﻘواﺋم
{f [i min, jmin], f [i min, jmin jstep],...f [i min, jmax],..., {f [i min istep, jmin],...,f [i min istep, jmax]},...,{f [i max, jmin],...,f [i m ax, jmax]}}
٢١٣
واﻻﻣر : ]Table[f[i, j,k,...],{i,i min,i max,istep},{j, jmin, jmax, jstep},{k,k min,k max,kstep},...
ﯾﺣﺳب ﻗﺎﺋﻣﺔ ﻣﺗداﺧﻠﺔ .اﻟﻘﺎﺋﻣﺔ اﻟﺧﺎﺻﺔ ﺑـ iﻫﻰ اﻻﻛﺛر ﺷﯾوﻋﺎ .اذا ﺣذف istepﻓﺎن اﻟﻘﻔزة ﺳوف ﺗﻛون واﺣد ﺻﺣﯾﺢ .
ﻣﺛﺎل ﻋرف اﻟﻣﺻﻔوﻓﺔ Aﻣن اﻟﺑﻌد 3 4ﺣﯾث اﻟﻌﻧﺻر a ijﻓﻰ اﻟﺻف ithواﻟﻌﻣود jthﻫو اﻟﻘﯾﻣﺔ اﻟﻌددﯾﺔ ﻟـ . 9i j اﻟﺣل : ﺑﻌد ﺣذف ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺗﻰ ﺗﺧص aاذا ﻛﺎﻧت ﻣوﺟودة ﻓﺎﻧﻧﺎ ﻧﻌرف ] a[i, jﻫو اﻟﻘﯾﻣﺔ اﻟﻌددﯾﺔ ﻟـ
9 i jﺛم ﻧﺳﺗﺧدم Arrayﻟﻠﺣﺻول ﻋﻠﻰ ﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد 3 4 ]Clear[a,aa1 a[i_,j_]:=9i+j ]}aa1=Array[a,{3,4 }}{{10,11,12,13},{19,20,21,22},{28,29,30,31 ]MatrixForm[aa1 10 11 12 13 19 20 21 22 28 29 30 31
ﻣﺛﺎل ﻋرف اﻟﻣﺻﻔوﻓﺔ اﻟﻘطرﯾﺔ اﻟﺗﺎﻟﯾﺔ:
0 0 0 b 0 0 0 c 0 0 0 d
اﻟﺣل : ٢١٤
a 0 0 0
اﻟﻣﺻﻔوﻓﺔ :
0 0 0 b 0 0 0 c 0 0 0 d
a 0 0 0
ﺗﻣﺛل ﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد 4 4واﻻﻣر ]}DiagonalMatrix[{a,b,c,d
ﯾﺳﺗﺧدم ﻟﻠﺣﺻول ﻋﻠﻰ ﻫذﻩ
اﻟﻣﺻﻔوﻓﺔ . ]}aa1=DiagonalMatrix[{a,b,c,d }}{{a,0,0,0},{0,b,0,0},{0,0,c,0},{0,0,0,d ]MatrixForm[aa1 a 0 0 0 0 b 0 0 0 0 c 0 0 0 0 d ﻟﺣﺳﺎب ﻣﺟﻣوع ﻋﻧﺎﺻر اﻟﻘطر اﻟرﺋﯾﺳﻰ ﻓﻰ اﻟﻣﺻﻔوﻓﺔ اﻟﻣرﺑﻌﺔ Aﻣن اﻟرﺗﺑﺔ n nﯾﺳﺗﺧدم اﻻﻣر اﻟﺗﺎﻟﻰ : ]} . Sum[f[I,j],{I,nﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ]}aa1=DiagonalMatrix[{2,3,4,5 ]}Sum[aa1[[i,i]],{i,4 }}{{2,0,0,0},{0,3,0,0},{0,0,4,0},{0,0,0,5 14
ﻣﺛﺎل
ﻋرف اﻟﻣﺻﻔوﻓﺔ اﻟﺻﻔرﯾﺔ اﻟﺗﺎﻟﯾﺔ:
0 0 0 0 0 0 0 0 0 0 0 0
اﻟﺣل : اﻟﻣﺻﻔوﻓﺔ : ٢١٥
0 0 0 0
0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
. ﯾﺳﺗﺧدم ﻟﻠﺣﺻول ﻋﻠﻰ ﻫذﻩ اﻟﻣﺻﻔوﻓﺔTable[0,{i,4},{j,4}] واﻻﻣر4 4 ﺗﻣﺛل ﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد aa1=Table[0,{i,4},{j,4}] {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}} MatrixForm[aa1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ﻣﺛﺎل :ﻋرف ﻣﺻﻔوﻓﺔ اﻟوﺣدة اﻟﺗﺎﻟﯾﺔ
1 0 0 0 1 0 0 0 1
: اﻟﺣل : اﻟﻣﺻﻔوﻓﺔ
1 0 0 ﯾﺳﺗﺧدمIdentityMatrix[n] واﻻﻣر3 3 ﻣن اﻟﺑﻌدidentity ﺗﻣﺛل ﻣﺻﻔوﻓﺔ اﻟوﺣدة 0 1 0 0 0 1 . ﻟﻠﺣﺻول ﻋﻠﻰ ﻫذﻩ اﻟﻣﺻﻔوﻓﺔ aa1=IdentityMatrix[3] {{1,0,0},{0,1,0},{0,0,1}} MatrixForm[aa1] 1 0 0 0 1 0 0 0 1
٢١٦
ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ وذﻟك ﺑﺎﻟذﻫﺎب اﻟﻰ Inputﻣن ﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟذھﺎب Creat Table/Matrix/Paletteوﺑﺎﻟﺿﻐط ﻋﻠﯾﮭﺎ ﻧﺣﺻل ﻋﻠﻰ اﻟﺻﻧدوق اﻟﺗﺎﻟﻰ وﺑﺎﺧﺗﯾﺎر Matrixوﺑوﺿﻊ 3ﻓﻰ ﺧﺎﻧﺔ ﻋدد اﻟﺻﻔوف Number of Rowsو 3ﻓﻰ ﺧﺎﻧﺔ Number of Columnsﻋدد اﻻﻋﻣدة و 0ﻓﻰ ﺧﺎﻧﺔ Fill with :و 1 ﻓﻰ ﺧﺎﻧﺔ . Fill diagonal :
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر Okﯾﻣﻛن ﻟﺣﺻول ﻋﻠﻰ اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ ﻣﻛﺎن ﻣؤﺷر اﻟﻔﺎرة ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .
واﻟﺗﻰ ﺑﻌد ﻣﻠﺋﻬﺎ ﺗﺻﺑﺢ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
1 0 0 0 1 0 0 0 1
ﻣﺛﺎل ٢١٧
ﻛون ﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد 4 4ﺣﯾث ﻋﻧﺎﺻرﻫﺎ ﺗﺧﺗﺎر ﻋﺷواﺋﯾﺎ وﺗﻛون اﻋداد ﺻﺣﯾﺣﺔ ﺑﯾن .-6,6 اﻟﺣل : ﺳوف ﻧﺳﺗﺧدم Table , Random , Integerﻟﻠﺣﺻول ﻋﻠﻰ ﻫذﻩ اﻟﻣﺻﻔوﻓﺔ .وﻋﻧد ادﺧﺎل اﻻﻣر اﻟﺗﺎﻟﻰ ﻓﺎن ﻧﺗﯾﺟﺗﻧﺎ داﺋﻣﺎ ﻋﻧد اﻋﺎدة ﻛﺗﺎﺑﺔ اﻻﻣر ﺗﺧﺗﻠف ﻻن اﺧﺗﯾﺎر اﻻﻋداد ﯾﺗم ﻋﺷواﺋﻰ . ]}aa1=Table[Random[Integer,{-6,6}],{4},{4 }}{{-1,4,-3,2},{-3,2,-6,0},{-3,-5,-6,-2},{-1,2,-2,-1 ]MatrixForm[aa1 1 4 3 2 3 2 6 0 3 5 6 2 1 2 2 1 ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﺻﻔوﻓﺔ ﻣﺛﻠﺛﯾﺔ ﺳﻔﻠﻰ Lower Triangularﻋﻧﺎﺻرﻫﺎ ﻓﻰ اﺳﻔل اﻟﻘطر 1وﺧﻼف ﻟك ﺻﻔر. ﯾﺳﺗﺧدم اﻻﻣر .Tableﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻟﺗﻛوﯾن ﻣﺻﻔوﻓﺔ ﻣﺛﻠﺛﯾﺔ ﺳﻔﻠﻰ ﻣن اﻟﺑﻌد 4 4ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : ]}Table[If [i>=j,1,0],{i,4},{j,4 }}{{1,0,0,0},{1,1,0,0},{1,1,1,0},{1,1,1,1
]TableForm[%
0 0 0 1
0 0 1 1
0 1 1 1
1 1 1 1
ﻟﻠﺣﺻول ﻋﻠﻰ ﻣﺻﻔوﻓﺔ ﻣﺛﻠﺛﯾﺔ ﻋﻠﯾﺎ Upper Triangularﻋﻧﺎﺻرﻫﺎ ﻓﻰ اﻋﻠﻰ اﻟﻘطر 1وﺧﻼف ﻟك ﺻﻔر. ﯾﺳﺗﺧدم اﻻﻣر .Tableﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻟﺗﻛوﯾن ﻣﺻﻔوﻓﺔ ﻣﺛﻠﺛﯾﺔ ﻋﻠﯾﺎ ﻣن اﻟﺑﻌد 4 4ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : ]}Table[If [i<=j,1,0],{i,4},{j,4 }}{{1,1,1,1},{0,1,1,1},{0,0,1,1},{0,0,0,1 ]TableForm[%
1 1 1 1
1 1 1 0
1 1 0 0
1 0 0 0
ﻓﻰ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺗﺟﻪ ﻫو ﻗﺎﺋﻣﺔ ﻣن اﻻﻋداد وﻋﻠﻰ ذﻟك ﯾدﺧل ﺑﻧﻔس طرﯾﻘﺔ ادﺧﺎل اﻟﻘواﺋم .ﻻﺳﺗﺧدام اﻟﺑرﻧﺎﻣﺞ ﻓﻰ ﺗﻌرﯾف ﻣﺗﺟﻪ aa1ﻋﻠﻰ اﻟﺷﻛل ) (a1 ,a 2 ,a 3 ,a 4 ,a 5ﻧدﺧل ) . aa1 (a1,a 2 ,a 3 ,a 4 ,a 5ﺑﻧﻔس اﻟﺷﻛل ﻟﺗﻌرﯾف ﻣﺗﺟﻪ ﻋﻣود ﻋﻠﻰ اﻟﺷﻛل :
٢١٨
a1 a2 a3 a4 a5 a6 ﻧدﺧل ) aa1 (a1,a 2 ,a 3 ,a 4 ,a 5او )} . aa1 ({a1},{a 2 },{a 3 },{a 4 },{a 5 ﻟﻠﻣﺗﺟﺔ 2 1ﯾﻣﻛن اﺳﺗﺧدام اﻟرﻣز
ﻣن .BasicTypesetting Paletteاﻟﺑرﻧﺎﻣﺞ ﻻﯾﺣﺗﺎج ﻟﻠﺗﻔرﯾق
اﻟﺻف واﻟﻌﻣود ﻓﻰ اﻟﻛﺗﺎﺑﺔ طﺎﻟﻣﺎ اﻟﺣﺳﺎﺑﺎت ﻋرﻓت ﺟﯾدا ﻟﻠﻣﺗﺟﻬﺎت واﻟﻣﺻﻔوﻓﺎت . ﻟﺗﻛوﯾن ﻣﺻﻔوﻓﺔ ﻋﻠﻰ ﺷﻛل ﺻف ﺑﻪ nﻣن اﻟﻌﻧﺎﺻر ﻋﻠﻰ اﻟﺻورة ] f[iﻧﺳﺗﺧدم اﻻﻣر ]. Array[f,n .
ﻣﺛﺎل ﻛون ﻗﺎﺋﻣﺔ ﺗﺣﺗوى ﻋﻠﻰ ﺻف ﻣن 10ﻋﻧﺎﺻر .
اﻟﺣل : ]Array[f,9 }]{f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9
ﻣﺛﺎل ﻋرف اﻟﻣﺗﺟﻬﯾن اﻟﺗﺎﻟﯾﯾن:
2 4 5 g ,d 5 5 5 5 5 5 9 6 8 اﻟﺣل : ٢١٩
}g={2,4,-5,9,6,8 }{2,4,-5,9,6,8 }}g={{2},{4},{-5},{9},{6},{8 }}{{2},{4},{-5},{9},{6},{8 ]MatrixForm[g 2 4 5 9 6 8 ]}aa2=Table[5,{6 }{5,5,5,5,5,5
ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﻟـ aa2
ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ وذﻟك ﺑﺎﻟذﻫﺎب Inputﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟذھﺎب
Creat Table/Matrix/Paletteوﺑﺎﻟﺿﻐط ﻋﻠﯾﮭﺎ ﻧﺣﺻل ﻋﻠﻰ اﻟﺻﻧدوق اﻟﺗﺎﻟﻰ :
وﺑﺎﻟﺿ ﻐط ﻋﻠ ﻰ Matrixوﺑوﺿ ﻊ 1ﻓ ﻰ ﺧﺎﻧ ﺔ Number of Rowsو 5ﻓ ﻰ ﺧﺎﻧ ﺔ Columnsو Fill with :0و .Fill Diagonal :1
Number of
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر OKﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﻣﺗﺟﻪ اﻟﺗﺎﻟﻰ ﻣﻛﺎن ﻣؤﺷر اﻟﻔﺎرة ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ . . واﻟﺗﻰ ﺑﻌد ﻣﻠﺋﻪ ﯾﺻﺑﺢ ﻛﺎﻟﺗﺎﻟﻰ :
5 5 5 5 5 ٢٢٠
) ( ٢-٦-٤اﺳﺗﺧﻼص )اﺳﺗﺧراج (ﻋﻧﺎﺻر ﻣن اﻟﻣﺻﻔوﻓﺎت Extracting Elements of Matrices ﻓﻰ اﻟﻣﺻﻔوﻓﺔ}} g {{a11,a12},{a 21 ,a 22ذات اﻟﺑﻌد 2 2ﻓﺎن ]]g[[1 ﯾﻌطﻰ اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟﻣﺻﻔوﻓﺔ gاو اﻟﻘﺎﺋﻣﺔ } {a11,a12او اﻟﺻف اﻻول ﻣن . gاﯾﺿﺎ ]]g[[2,1 ﯾﻌطﻰ اﻟﻌﻧﺻر اﻻول ﻣن ﻣن اﻟﺻف اﻟﺛﺎﻧﻰ ﻣن اﻟﻣﺻﻔوﻓﺔ gاى . a 21ﻋﻣوﻣﺎ اذا ﻛﺎﻧت gﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد m nﻓﺎن ]] g[[i, jاو ] Part[g,i,jﯾﻌطﻰ اﻟﻌﻧﺻر اﻟوﺣﯾد ﻓﻰ اﻟﺻف ithاﻟﻌﻣود . jthواﻛﺛر ﺗوﺿﯾﺣﺎ ﻓﺎن : ]] g[[i, jﯾﻌطﻰ اﻟﺟزء jthﻣن اﻟﺟزء ithﻣن . gﻋﻣوﻣﺎ ]] list[[iاو ] Part[list,iﺗﻌطﻰ اﻟﺟزء ithﻣن اﻟﻘﺎﺋﻣﺔ و ]] list[[i, jاو ]] Part[list,i, jﺗﻌطﻰ اﻟﺟزء jthﻣن اﻟﺟزء ithﻣن اﻟﻘﺎﺋﻣﺔ .list
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
5 4 2 A 9 1 4 9 8 3 اﺳﺗﺧﻠص اﻟﺻف اﻟﺛﺎﻧﻰ ﻣن اﻟﻣﺻﻔوﻓﺔ Aو اﺳﺗﺧﻠص اﻟﻌﻧﺻر اﻻول ﻣن اﻟﺻف اﻟﺛﺎﻧﻰ ﻣن اﻟﻣﺻﻔوﻓﺔ Aو اﻋرض اﻟﻣﺻﻔوﻓﺔ Aﻓﻰ اﻟﺷﻛل اﻟﺗﻘﻠﯾدى .
اﻟﺣل : ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺔ aa1ﺣﯾث] ] aa1[[2ﺗؤدى اﻟﻰ ﻋرض اﻟﺻف اﻟﺛﺎﻧﻰ ﻣن اﻟﻣﺻﻔوﻓﺔ و ]] aa1[[2,1ﺗؤدى اﻟﻰ اﻟﺣﺻول ﻋﻠﻰ اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟﺻف اﻟﺛﺎﻧﻰ ﻣن اﻟﻣﺻﻔوﻓﺔ . }}aa1={{5,4,2},{9,1,4},{9,-8,2 }}{{5,4,2},{9,1,4},{9,-8,2 ]]aa1[[2 }{9,1,4 ]]aa1[[2,1 9 ]MatrixForm[aa1
٢٢١
5 4 2 9 1 4 9 8 2 ﯾﺳﺗﺧدم اﻻﻣر ] Transpose[Aﻟﺗﻐﯾﯾر اﻟﺻﻔوف واﻻﻋﻣدة اى ﻟﺣﺳﺎب ﻣدور اﻟﻣﺻﻔوﻓﺔ . A
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
5 4 2 A 9 1 4 9 8 2 اوﺟد ﻣدور اﻟﺻﻔوﻓﺔ واﺳﺗﺧﻠص اﻟﺻف اﻻول و اﻟﻌﻣود اﻻول واﻟﺻف اﻟﺛﺎﻟث واﻟﻌﻣود اﻟﺛﺎﻟث ﻣن اﻟﻣﺻﻔوﻓﺔ
.A اﻟﺣل : اوﻻ :ﺳوف ﻧﻌرف اﻟﻣﺻﻔوﻓﺔ aa1ﺛم ﻧﺳﺗﺧدم Transposeﻻﯾﺟﺎد ﻣدور اﻟﻣﺻﻔوﻓﺔ aa1ﺛم ﻧﺳﺗﺧدم اﻻﻣر : ]]aa1[[1
ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﺻف اﻻول ﺛم اﻻﻣر: ]]Transpose[aa1][[1 ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻌﻣود اﻻول وﻧﻔس اﻟﺷﺊ ﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﺻف اﻟﺛﺎﻟث واﻟﻌﻣود اﻟﺛﺎﻟث .
٢٢٢
}}aa1={{5,4,2},{9,1,4},{9,-8,2 }}{{5,4,2},{9,1,4},{9,-8,2 ]aa2=Transpose[aa1];MatrixForm[aa2 5 9 9 4 1 8 2 4 2 ]]aa1[[1 }{5,4,2 ]]Transpose[aa1][[1 }{5,9,9 ]]aa1[[3 }{9,-8,2 ]]Transpose[aa1][[3 }{2,4,2 اواﻣر اﺧري ﺗﺧص اﻟﻣﺻﻔوﻓﺎت ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﻣن اﻟﺣزم اﻟﺟﺎﻫزة
MatrixManipulationاﻟﻣوﺟودة ﻓﻰ دﻟﯾل Linear Algebra
وﯾﻣﻛن ﻣن اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ اﻟﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت ﻋن ﻫذﻩ اﻟﺣزﻣﺔ واﻣﺛﻠﺔ .
٢٢٣
ﻟﺗﺣﻣﯾل ﻫذﻩ اﻟﺣزﻣﺔ ﻧﻛﺗب اﻟﺗﺎﻟﻰ : "<<LinearAlgebra'MatrixManipulation ﯾﻣﻛن اﺳﺗﺧدام اواﻣر ﻣﺛل TakeCplumnsاو TakeRowsوذﻟك ﻻﺳﺗﺧﻼص اﻋﻣدة او ﺻﻔوف ﻣن اﻟﻣﺻﻔوﻓﺔ اﻟﻣﻌطﺎﻩ .ﺑﺎدﺧﺎل : `<<LinearAlgebra`MatrixManipulation }}aa1={{5,4,2},{9,1,4},{9,-8,2 }}{{5,4,2},{9,1,4},{9,-8,2 TakeColumns[aa1,{2}]//MatrixForm 4 1 8 ﻧﺣﺻل ﻋﻠﻰ اﻟﻌﻣود اﻟﺛﺎﻧﻰ وﻋرض اﻟﻧﺎﺗﺞ ﻓﻰ اﻟﺻورة اﻟﺗﻘﻠﯾدﯾﺔ ﻟﻠﻌﻣود . وﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﻌﻣود اﻻول و اﻟﺛﺎﻧﻰ وﻋرض اﻟﻧﺎﺗﺞ ﻓﻰ اﻟﺻورة اﻟﺗﻘﻠﯾدﯾﺔ ﻟﻠﻣﺻﻔوﻓﺔ وذﻟك ﺑﺎدﺧﺎل : TakeColumns[aa1,{1,2}]//MatrixForm
5 4 9 1 9 8 ٢٢٤
) (٣-٦-٤اﻟﺣﺳﺎﺑﺎت اﻻوﻟﯾﺔ ﻋﻠﻰ اﻟﻣﺻﻔوﻓﺎت واﻟﻣﺗﺟﻬﺎت Basic Computation with Matrices and Vectors ﯾﻘدم ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻛل اﻟﻌﻣﻠﯾﺎت اﻟﻌﺎدﯾﺔ اﻟﺗﻰ ﺗﺟرى ﻋﻠﻰ اﻟﻣﺻﻔوﻓﺎت .ﻓﻌﻠﻰ ﺳﺑﯾل ﻟﻣﺛﺎل ﺟﻣﻊ (A+B) Matrix addition
وﺿرب اﻟﻣﺻﻔوﻓﺔ ﻓﻰ ﺛﺎﺑت (kB) Scale multiplication
وﺿرب ﻣﺻﻔوﻓﺗﯾن (AB) Multiplication Matrixواﻟﺟﻣﻊ ﺑﯾن ﺗﻠك اﻟﻌﻣﻠﯾﺎت ﻣﺗﺎﺣﺔ ﻓﻰ اﻟﺑرﻧﺎﻣﺞ.
اﻟﻣدور ﻟﻠﻣﺻﻔوﻓﺔ Aﻫو A
و ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ ﺣﯾث ﺗﺣول اﻟﺻﻔوف ﻓﻰ
اﻟﻣﺻﻔوﻓﺔ Aاﻟﻰ اﻋﻣدة وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر.Transpos اذا ﻛﺎﻧت اﻟﻣﺻﻔوﻓﺔ ﻣرﺑﻌﺔ ﻓﯾﻣﻛن اﯾﺟﺎد اﻟﻣﺣدد Determinantﻟﻬﺎ ﺑﺎﺳﺗﺧدام اﻻﻣر].De[A
اذا ﻛﺎﻧت A,Bﻣﺼﻔﻮﻓﺘﺎن ﻣﻦ اﻟﺒﻌﺪ n n 1 ﻟﻠﻣﺻﻔوﻓﺔ Aوﯾﺮﻣﺰ ﻟﮫ ﺑﺎﻟﺮﻣﺰ Aوﯾﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﯿﮫ ﻣﻦ اﻻﻣﺮ ]. Inverse[A
ﯾﺤﻘﻘﺎن اﻟﺸﺮط AB BA Iﻓﺎن Bﯾﺴﻤﻰ اﻟﻤﻌﻜﻮس
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
5 4 2 A 9 1 4 9 8 2 واﻟﻣﺻﻔوﻓﺔ :
4 5 6 B 7 8 9 10 5 2
اﺣﺳب A Bو A Bو اﻟﻣﻌﻛوس ﻟﻠﻣﺻﻔوﻓﺔ ABو اﻟﻣﺣدد ﻟﻠﻣﺻﻔوﻓﺔ A.B اﻟﺣل : ;}}aa1={{5,4,2},{9,1,4},{9,-8,2 ;}}aa2={{4,5,6},{7,8,9},{10,5,2 aa1+aa2//MatrixForm
٢٢٥
9 9 8 16 9 13 19 3 4 aa1-aa2//MatrixForm 1 1 4 2 7 5 1 13 0 Inverse[aa1.aa2]//N {{0.797917,-0.641667,0.735417},{-2.42083,1.98333,2.04583},{1.55625,-1.275,1.24375}} MatrixForm[%] 0.797917 0.641667 0.735417 2.42083 1.98333 2.04583 1.55625 1.275 1.24375 Det[aa1.aa2] -480
ﻣﺛﺎل : ﺑﻔرض اﻟﻣﺻﻔوﻓﺗﺎن اﻟﺗﺎﻟﯾﺔ
2 3 4 4 A , 1 5 6 7
2 3 B= 5 6
1 1 3 2 2 1 4 3 . AB, BA اﺣﺳب
:اﻟﺣل . 2 3 ﺳوف ﺗﻛون ﻓﻰ اﻟﺑﻌدAB ﻓﺎن اﻟﻣﺻﻔوﻓﺔ4 3 ﻣن اﻟﺑﻌدB واﻟﻣﺻﻔوﻓﺔ2 4 ﻣن اﻟﺑﻌدA ﻻن ﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﻟذھﺎب اﻟﻰInput وذﻟك ﺑﺎﻟذﻫﺎب اﻟﻰaaa ﺳوف ﻧﻌرف اﻟﻣﺻﻔوﻓﺔ:اوﻻ وﺑﺎﻟﺿﻐط ﻋﻠﯾﮭﺎ ﻧﺣﺻل ﻋﻠﻰ اﻟﺻﻧدوق اﻟﺗ ﺎﻟﻰ وﺑﺎﻟﺿ ﻐط ﻋﻠ ﻰCreat Table/Matrix/Palette :Number of Columns ﻓﻰ ﺧﺎﻧﺔ4 وNumber of Rows ﻓﻰ ﺧﺎﻧﺔ2 وﺑوﺿﻊMatrix .Fill Diagonal :1 وFill with :0 و
٢٢٦
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻻﻣر OKﯾﻣﻛن اﻟﺣﺻول ﻋﻠﻰ اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ ﻣﻛﺎن ﻣؤﺷر اﻟﻔﺎرة ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ .
واﻟﺗﻰ ﺑﻌد ﻣﻠﺋﻬﺎ وﺗﺳﻣﯾﺗﻬﺎ ﺗﺻﺑﺢ ﻛﺎﻟﺗﺎﻟﻰ :
2 3 4 4 1 5 6 7
aa1
}}{{2,3,4,4},{1,5,6,7 وﺑﻧﻔس اﻟﺷﻛل ﻧﻛون اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ : aa2
2 1 1 3 3 2 aa2 5 2 1 6 4 3 }}{{2,1,1},{3,3,2},{5,2,1},{6,4,3 وﻛﺑدﯾل وﺑﺻﯾﻐﺔ اﻻدﺧﺎل ﯾﻣﻛن ﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺔ aa1واﻟﻣﺻﻔوﻓﺔ aa2ﺑﺎﻻواﻣر اﻟﺗﺎﻟﯾﺔ : }}aa1={{2,3,4,4},{1,5,6,7 }}{{2,3,4,4},{1,5,6,7 }}aa2={{2,1,1},{3,3,2},{5,2,1},{6,4,3 }}{{2,1,1},{3,3,2},{5,2,1},{6,4,3 اﻻن ﯾﻣﻛن ﺣﺳﺎب اﻟﻣﺻﻔوﻓﺔ ABاﻟﻣﺳﻣﺎه aaaووﺿﻌﮭﺎ ﻓﻰ اﻟﺷﻛل اﻟﺗﻘﻠﯾدى ﻟﻠﻣﺻﻔوﻓﺔ : aaa=aa1.aa2 ٢٢٧
}}{{57,35,24},{89,56,38 ]MatrixForm[aaa
57 35 24 89 56 38
ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻓﺎن اﻟﻣﺻﻔوﻓﺔ BAﻻ ﺗﻌرف وﻧﺣﺻل ﻋﻠﻰ رﺳﺎﻟﺔ ﺧطﺎ ﻋﻧدﻣﺎ ﻧﺣﺎول ﺣﺳﺎﺑﻬﺎ . bbb=aa2.aa1 Dot ::dotsh : Tensors 2, 1, 1, 3, 3, 2, 5, 2, 1, 6, 4, 3 and 2, 3, 4, 4, 1, 5, 6, 7 have incompatible …shapes . More }}{{2,1,1},{3,3,2},{5,2,1},{6,4,3}}.{{2,3,4,4},{1,5,6,7
اﻟﺣﺳﺎﺑﺎت ﻣﻊ اﻟﻣﺗﺟﻬﺎت ﺗﺗم ﺑﻧﻔس اﻟطرﯾﻘﺔ .
ﺗﻌرﯾف : اذا ﻛﺎن ﻟدﯾﻧﺎ ﻧﻘطﺔ ﻓﻰ ﻓراغ ﻟﮫ Pﻣن اﻻﺑﻌﺎد .اى اذا ﻛﺎن ﻟدﯾﻧﺎ اﻟﻧﻘطﺔ ) P (x1 , x 2 ,..., x pﻓﺎن اﻟﻣﺳﺎﻓﺔ
ﺑﯾﻧﻬﺎ وﺑﯾن ﻧﻘطﺔ اﻻﺻل )0 (0,0,...,0
ﻫﻰ :
d(0,P) x12 x22 ,...,xp2 وﺗﺳﻣﻰ اﻟﻣﺳﺎﻓﺔ اﻟﺧطﯾﺔ ) او اﻻﻗﻠﯾدﯾﺔ ( .norm
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺗﺟﻬﺎت اﻟﺗﺎﻟﯾﺔ :
2 4 3 3 c , d= 4 2 5 -1
d c , )أ( اﺣﺳب ) d 5cب( ) dcج( ]d[0,d ]d[0,c
.
اﻟﺣل : }c={2,3,4,5 }{2,3,4,5 ٢٢٨
}d={4,3,2,1 }{4,3,2,1 d+5c }{14,18,22,26 d.c 30
normx_ : x.x c aa1 normc 2 2
5 3 6
2
3
,
3
,
1 6
3
,
d normd
3
aa2
ﻟﺿرب اﻟﻣﺻﻔوﻓﺔ aa1ﻓﻰ ﻧﻔﺳﻬﺎ nﻣن اﻟﻣرات ﯾﺳﺗﺧدم اﻻﻣر ] ..MarixPower[aa1,nوﯾﺟب اﻟﺗﻔرﯾق ﺑﯾن اﻣﺎ اﻟﺗﻌﺑﯾر (aa1)^nﻓﻬو رﻓﻊ ﻛل ﻋﻧﺻر ﻓﻰ اﻟﻣﺻﻔوﻓﺔ اﻟﻰ اﻻس . nوﺳوف ﻧوﺿﺢ اﻟﻔرق ﺑﯾن اﻟﻌﻣﻠﯾﺗﯾن ﻻﻧﻪ ﯾﺣدث ﻟﺑس ﻓﯾﻬﻣﺎ وذﻟك ﻣن ﺧﻼل اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ:
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
3 4 1 2 3 1 3 4 1 2 4 3
2 5 A 2 1
اﺣﺳب A2 ,A3ﺑﺎﻣرﯾن ﻣﺧﺗﻠﻔﯾن واﺣﺳب (A) ^ 2,(A) ^ 3
وذﻟك ﻟﺗوﺿﯾﺢ اﻟﻔرق ﺑﯾﻧﻬﺎ .
اﻟﺣل : }}aa1={{2,3,4,1},{5,2,3,1},{2,3,4,1},{1,2,4,3 }}{{2,3,4,1},{5,2,3,1},{2,3,4,1},{1,2,4,3 ]MatrixForm[aa1.aa1 28 26 37 12 27 30 42 13 28 26 37 12 23 25 38 16 ]]MatrixForm[MatrixPower[aa1,2 ٢٢٩
28 26 37 12 27 30 42 13 28 26 37 12 23 25 38 16 ]MatrixForm[aa1^2 4 9 16 1 25 4 9 1 4 9 16 1 1 4 16 9 ]MatrixForm[aa1.aa1.aa1 272 271 386 127 301 293 418 138 272 271 386 127 263 265 383 134 ]]MatrixForm[MatrixPower[aa1,3 272 271 386 127 301 293 418 138 272 271 386 127 263 265 383 134 ]MatrixForm[aa1^3
8 27 64 1 125 8 27 1 8 27 64 1 1 8 64 27
) (٤-٦-٤اﻟﻌﻼﻗﺎت اﻟﻣﺗﻛررة Recursion ﻓﻰ اﻟﺣﻘﯾﻘﺔ اﺳﺗﺧدام recursionﻓﻰ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻣﻔﯾدة ﺟدا ،ﻓﻛﺛﯾر ﻣن اﻟﻌﻣﻠﯾﺎت ﻓﻰ اﻟﺑرﻧﺎﻣﺞ ﺗﺳﺧدﻣﻪ .ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻓﻰ اﻟﺗوزﯾﻌﺎت اﻻﺣﺗﻣﺎﻟﯾﺔ اﻟﻣﺗﻘطﻌﺔ ﻣﺛل ﺗوزﯾﻊ ذى اﻟﺣدﯾن واﻟﺗوزﯾﻊ اﻟﻬﻧدﺳﻰ اﻟزاﺋدى ﺗﺳﺗﺧدم recursionﻓﻰ ﺣﺳﺎب اﻻﺣﺗﻣﺎﻻت ﻟﻬذﻩ اﻟﺗوزﯾﻌﺎت وﻋﻣل اﻟﺟداول اﻻﺣﺻﺎﺋﯾﺔ اﻟﺗﻰ ﺗﺧص ﻫذﻩ اﻟﺗوزﯾﻌﺎت ﺣﯾث ﯾﺣﺳب ﻓﻘط اﺣﺗﻣﺎل x=0وﻣن recursionﯾﻣﻛن ﺣﺳﺎب x=1واﺳﺗﺧداﻣﻬﺎ ﻓﻰ ﺣﺳﺎب x=2وﻫﻛذا .ﻓﻰ ﻫذا اﻟﺟزء ﺳوف ﻧﻘدم ﻋدد ﻣن اﻻﻣﺛﻠﺔ ﻋﻠﻰ recursionوﺷرح ﻛﯾف ﺗﻛﺗب اﻟدوال .
اﻋداد Fibonacci ﯾﻣﻛن ﺗﻌرﯾف اﻋداد Fibonacciﻛﺎﻻﺗﻰ :ﻧﻛﺗب 0وواﺣد ﺻﺣﯾﺢ ﺛم ﻧﺳﺗﻣر ﻓﻰ ﻛﺗﺎﺑﺔ اﻻﻋداد ﺑﺎﺿﺎﻓﺔ ﻣﺟﻣوع اﺧر ﻋددﯾن ﺗم ﻛﺗﺎﺑﺗﻬم : ٢٣٠
8 13 21 F6 F7 F8
5 F5
1 1 2 3 F1 F2 F3 F4
0 F0
اﻗرب طرﯾق ﻟﺗﻌرﯾﻔﻪ ﯾﻛون ﻛﺎﻟﺗﺎﻟﻰ :
F0 0 F1 1 Fn Fn 2 Fn 1 , n 1 ﻋﻧدﻣﺎ ﻧﻔﻛر ﻓﻰ ﻫذﻩ اﻟﻣﺗﺗﺎﺑﻌﺔ ﻛداﻟﺔ ﻓﺎﻧﻧﺎ ﻧﻐﯾرﻫﺎ اﻟﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
F[0] 0 F[1] 1 F[n] F[n 2] F[n 1] , n 1 ﺑﻬذا اﻟﺷﻛل ﯾﻣﻛن ﺗﺣوﯾل اﻟﺗﻌرﯾف اﻟﻰ ﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻛﺎﻟﺗﺎﻟﻰ : F[0]:=0 F[1]:=1 F[n_]:=F[n-2]+F[n-1]/;n>1 ]F[6 8
]}Table[F[i],{i,0,8 }{0,1,1,2,3,5,8,13,21
) (٥-٦-٤ﺣﺳﺎب اﻟﺣﻠول ﻻﻧظﻣﺔ ﺧطﯾﺔ ﻣن اﻟﻣﻌﺎدﻻت Calculation Solution of Linear of Systems of Equations ﻟﺣل ﻧظﺎم ﻣن اﻟﻣﻌﺎدﻻت اﻟﺧطﯾﺔ Ax bﺣﯾث Aﺗﻣﺛل ﻣﺻﻔوﻓﺔ اﻟﻣﻌﺎﻣﻼت و bﺗﻣﺛل اﻟﻣﺗﺟﺔ اﻟﻣﻌرف
و xﺗﻣﺛل اﻟﻣﺗﺟﻪ اﻟﻣﺟﻬول .اذا ﻛﺎﻧت A1
ﻣوﺟودة ﻓﺎن A Ax A bوﻋﻠﻰ ذﻟك . x A b 1
ﻣﺛﺎل ﺣل ﻣﻌﺎدﻟﺔ اﻟﻣﺻﻔوﻓﺔ : Matrix Equation
2 1 2 x 10 3 2 2 y 1 5 4 3 z 4 ٢٣١
1
1
اﻟﺣل : اى ان اﻟﺣل ﻫو: 1
x 2 1 2 10 y 3 2 2 1 z 5 4 3 4 ﺳوف ﻧﻌرف اﻟﻣﺻﻔوﻓﺔ aa1واﻟﻣﺗﺟﻪ bوﺳوف ﻧﺳﺗﺧدم ﻣﻌﻛوس اﻟﻣﺻﻔوﻓﺔ aa1ﻓﻰ ﺣﺳﺎب Inverse[aa1].b
}}aa1={{2,1,-2},{3,2,2},{5,4,3 }}{{2,1,-2},{3,2,2},{5,4,3 }b={10,1,4 }{10,1,4 {x,y,z}=Inverse[aa1].b }{1,2,-3
10 ي ﯾﻣﻛن اﻟﺗﺣﻘق ﻣن ﺻﺣﺔ اﻟﺣل وذﻟك ﺑﺣﺳﺎب } . aa1.{x,y,zوﻻن اﻟﻧﺗﯾﺟﺔ ﺗﺳﺎوى 1ﻓﺎﻧﻧﺎ ﻧﺳﺗﻧﺗﺞ ان 4 اﻟﺣل ﻟﻬذا اﻟﻧظﺎم ﻫو :
1 2 3 اﯨﺎى اى اى ان :
}aa1.{x,y,z }{10,1,4
ﯾﻘدم اﻟﺑرﻧﺎﻣﺞ اواﻣر ﻋدﯾدة وذﻟك ﻟﺣل اﻧظﻣﺔ ﻣن اﻟﻣﻌدﻻت اﻟﺧطﯾﺔ واﻟﺗﻰ ﻻ ﺗﻌﺗﻣد ﻋﻠﻰ ﺣﺳﺎب اﻟﻣﻌﻛوس ﻟﻠﻣﺻوﻓﺔ . Aاﻻﻣر :
]}Solve[{eqn1,eqn2,...,eqnn},{var1, var 2,..., var n ﯾؤدى اﻟﻰ ﺣل ﻣﻌﺎدﻻت ﺧطﯾﺔ ) ﻣﻌﺎدﻻت ﻋددﻫﺎ nوﻣﺗﻐﯾرات ﻋددﻫﺎ (nﺣﯾث ﻛﻼ ﻣن اﻟﻣﻌﺎدﻻت واﻟﻣﺗﻐﯾرات ﺗدﺧل ﻓﻰ ﺻورة ﻗواﺋم .
٢٣٢
ﻣﻌﺎدﻟﺔ اﻟﻣﺻﻔوﻓﺔ اﻟﺳﺎﺑﻘﺔ ﺗﻛﺎﻓﺊ اﻟﻧظﺎم اﻟﺗﺎﻟﻰ :
2x y 2z 10 3x 2y 2z 1 5x 4y 3z 4 واﻟﺗﻰ ﯾﻣﻛن ﺣﻠﻬﺎ ﺑﺎﻻﻣر Solveﻛﺎﻟﺗﺎﻟﻰ :
]}Solve[{2x+y-2z10,3x+2y+2z1,5x+4y+3z4},{x,y,z }}{{x1,y2,z-3 ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر اﻟﺗﺎﻟﻰ واﻟذى ﯾﻌطﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ : ]}Solve[{2x+y-2z,3x+2y+2z,5x+4y+3z}=={10,1,4 }}{{x1,y2,z-3 .وﯾﻣﻛن اﻟﺣل ﺑﺎﺳﻠوب اﺧر ﻛﺎﻟﺗﺎﻟﻰ :
}}aa1={{2,1,-2},{3,2,2},{5,4,3 }}{{2,1,-2},{3,2,2},{5,4,3 ]Clear[x,y,z ]}ss=Thread[aa1.{x,y,z}{10,1,4 }{2 x+y-2 z10,3 x+2 y+2 z1,5 x+4 y+3 z4 ]Solve[ss }}{{x1,y2,z-3
اﺳﻠوب اﺧر ﯾﻌﺗﻣد ﻋﻠﻰ ﺷﻛل اﻟﻣﺻﻔوﻓﺔ ﻟﻧظﺎم اﻟﻣﻌﺎدﻻت ) . (Ax=bﻫذا اﻟﻧظﺎم ﻣن اﻟﻣﻌﺎدﻻت ﯾﻛﺎﻓﺊ ﻣﻌﺎدﻟﺔ اﻟﻣﺻﻔوﻓﺔ :
2 1 2 x 10 3 2 2 y 1 5 4 3 z 4 اﻟﺣل ﯾﻛون ﻛﺎﻟﺗﺎﻟﻰ : aa1={{2,1,2},{3,2,2},{5,4,3}};b={10,1,4};xx={x,y,z};Solve[aa1.xxb, ]xx }}{{x1,y2,z-3 ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ ذﻟك ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر اﻟﺗﺎﻟﻰ :
]LinearSolve[A,b
٢٣٣
واﻟذى ﯾﺣﺳب اﻟﺣل xﻟﻠﻧظﺎم .Ax=bﻋﻣوﻣﺎ ﻫذا اﻻﻣر ﯾﺣﺳب اﻟﻧظﺎم اﺳرع ﻋن اﻻﻣر Solveﻛﻣﺎ ﻧرى
ﻓﻰ اﻟﺗﻌﻠﯾﻘﺎت ﻓﻰ ﻧﺎﻓذة Help Browserاﻟﺗﺎﻟﯾﺔ.
ﻣﺛﺎل ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ ﻣن ﺛﻼث ﻣﻌﺎدﻻت :
٢٣٤
2x y 2z 10 3x 2y 2z 1 5x 4y 3z 4 :اﻟﺣل
. ﻟﺣل اﻟﻧظﺎمLinearSolve ﺳوف ﻧﺳﺗﺧدم aa1={{2,1,2},{3,2,2},{5,4,3}};b={10,1,4};xx={x,y,z};aa2=LinearSolve [aa1,b] {1,2,-3}
ﻣﺛﺎل : ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ ﻣن ﺛﻼث ﻣﻌﺎدﻻت
2 1 2 x 10 3 2 2 y 1 5 4 3 z 4 : اﻟﺣل
: ﺳوف ﻧﺣل ﻫذا اﻟﻣﺛﺎل ﺑﺎﺳﻠوﺑﯾن ﻣﺧﺗﻠﻔﯾن
Solve[{2x[1]+x[2]2x[3],3x[1]+2x[2]+2x[3],5x[1]+4x[2]+3x[3]}{10,1,4}] {{x[1]1,x[2]2,x[3]-3}} Clear[aa1] aa1= {{2,1.-2},{3,2,2},{5,4,3},b={10,1,4}} {{2,-1.},{3,2,2},{5,4,3},{10,1,4}} LinearSolve[aa1,b] {1,2,-3}
ﻣﺛﺎل ٢٣٥
ﺣل ﻧظﺎم اﻟﻣﻌﺎدﻻت اﻟﺧطﯾﺔ اﻟﺗﺎﻟﻰ :
x 1 3 4 2 5 0 2 5 1 y 2 0 1 3 0 z 4 w
اﻟﺣل :
}}aa1={{1,-3,4,-2},{0,2,5,1},{0,1,-3,0 }}{{1,-3,4,-2},{0,2,5,1},{0,1,-3,0 ]}LinearSolve[aa1,{5,2,5
180 31 8 , , , 0 11 11 11
ﻧظﺎم اﻟﻣﻌﺎدﻻت ﻫﻧﺎ ﯾﺗﻛون ﻣن ﺛﻼث ﻣﻌﺎدﻻت ﻓﻰ ارﺑﻌﺔ ﻣﺟﺎﻫﯾل وﻟﻪ ﻋدد ﻻﻧﻬﺎﺋﻰ ﻣن اﻟﺣﻠول ﻟذﻟك ﺗم ﺣﺳﺎب ﺛﻼث ﻣﺟﺎﻫﯾل ﺑدﻻﻟﺔ اﻟﻣﺟﻬول اﻟراﺑﻊ وﻧﺎﺗﺞ اﻟﺣل ﯾﻣﺛل ﺣل ﻧظﺎم اﻟﻣﻌﺎدﻻت ﺑﻌد اﺧذ ﻗﯾﻣﺔ ﻋددﯾﺔ ﻟﻠﻣﺟﻬول اﻟراﺑﻊ
طرﯾﻘﺔ
Gauss-Jordan Elimination
ﺑﻔرض ﻣﻌﺎدﻟﺔ اﻟﻣﺻﻔوﻓﺔ : matrix equation
Axﺣﯾث :
x1 b1 a 1n x2 b2 . . a 2n , x , b . . . . a mn xn bm اﻟﻣﺻﻔوﻓﺔ Aﻣن اﻟﺑﻌد
m n
a 12 a 22
a m2
a 11 a A 21 a m1
ﺗﺳﻣﻰ ﻣﺻﻔوﻓﺔ اﻟﻣﻌﺎﻣﻼت Coefficient Matrixﻟﻣﻌﺎدﻟﺔ اﻟﻣﺻﻔوﻓﺔ
Ax bواﻟﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد )m (n 1
ﻫﻰ :
٢٣٦
a11 a (A | b) 21 a m1
a12
a 22
a 2n
a mn
a m2
a1n
b1 b2 bm
( واﺳﺗﺧداﻣﻬﺎ ﻓﻰ اﯾﺟﺎد اﻟﺣل ﻟﻧظم اﻟﻣﻌﺎدﻻت ﻓﻰA | b) ﺳوف ﻧﺳﺗﺧدم اﻟﺣزم اﻟﺟﺎﻫزة ﻓﻰ اﯾﺟﺎد اﻟﻣﺻﻔوﻓﺔ . اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ
ﻣﺛﺎل : ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ ﻣن ﺛﻼث ﻣﻌﺎدﻻت
2 1 2 x 10 3 2 2 y 1 5 4 3 z 4 : اﻟﺣل
(A | b) اﻟﻣﺻﻔوﻓﺔ
ﺳوف ﻧﺧﺻل ﻋﻠﻰ
: واﺳﺗﺧداﻣﻬﺎ ﻓﻰ اﻟﺣل ﻛﺎﻟﺗﺎﻟﻰ <<LinearAlgebra`MatrixManipulation` aa1={{2,1,-2},{3,2,2},{5,4,3}};b={{10},{1},{4}}; aa2=AppendRows[aa1,b] {{2,1,-2,10},{3,2,2,1},{5,4,3,4}} MatrixForm[aa2] 2 1 2 10 3 2 2 1 5 4 3 4 ?RowReduce RowReducem gives the row
reduced form of the matrix m. More… RowReduce[aa2]//MatrixForm 1 0 0 1 0 1 0 2 0 0 1 3
: وﻣن اﻟﻧﺗﯾﺟﺔ اﻟﻧﻬﺎﺋﯾﺔ ﻧﺳﺗﻧﺗﺞ ان اﻟﺣل ﻫو
٢٣٧
x 1 y 2 z 3 وﯾﻣﻛن اﻟﺗﺣﻘق ﻣن ﺻﺣﺔ اﻟﻧﺗﯾﺟﺔ ﻛﺎﻟﺗﺎﻟﻰ : ]Clear[x,y,z }{2x+y-2z,3x+2y+2z,5x+4y+3z}/.{x1,y2,z-3 }{10,1,4
طرﯾﻘﺔ
Gauss Elimination
ﻓﻰ ﻫذا اﻟﺟزء ﺳوف ﻧﺗﻌﻠم ﻛﯾف ﯾﻣﻛن ﻋﻣل ﺑرﻧﺎﻣﺞ ﻟﺣﺳﺎب اﻟﺣﻠول ﻻﻧظﻣﺔ ﺧطﯾﺔ ﻣن اﻟﻣﻌﺎدﻻت .وﻻن اﻻﻣر Linear Solveﻣﺛل اى اﻣر ﻟﻬذﻩ اﻟﻣﺷﻛﻠﺔ ﻟﯾس داﺋﻣﺎ ﯾﻌﻣل .وﯾﻔﺷل ﻓﻰ اﯾﺟﺎد اﻟﺣل .ﻓﻰ ﻫذا اﻟﺟزء ﺳوف ﻧﻘدم طرﯾﻘﺔ ﺑﺳﯾطﺔ وﺗﻘﻠﯾدﯾﺔ ﻟﺣل ﻣﺛل ﻫذا اﻟﻧظﺎم ﺗﺳﻣﻰ طرﯾﻘﺔ . Gauss Eliminationﺑﻔرض اﻧﻧﺎ ﻧرﯾد ﺣل ﻧظﺎم ﺧطﻰ Sوﺳوف ﻧﻧظﻣﻪ ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
b1
E1 : a11x1 a1n x n
b2
E 2 : a 21x1 a 2n x n
bn
E n : a n1x1 a nn x n
ﺑﺎﺳﺗﺧدام اﺳﺎﺳﯾﺎت اﻟﺗﺗﺎﺑﻊ Recursionﺳوف ﻧﻔﺗرض اﻧﻧﺎ ﻗﺎدرﯾن ﻋﻠﻰ ﺣل ﻧظﺎم اﺻﻐر وﻋﻠﻰ اﻻﺧص n-1 ﻓﻰ n-1ﻣن اﻟﻣﺟﺎﻫﯾل وﻧﺳﺎل اﻧﻔﺳﻧﺎ ﻛﯾف ﻧﺣل ﻫذا اﻟﻧظﺎم اﻻﺻﻐر وﻧﺳﺗﺧدﻣﻪ ﻓﻰ ﺣل اﻟﻧظﺎم . اﻟﻔﻛرة ﻓﻰ طرﯾﻘﺔ ﺟﺎوس ﻫﻰ ﺣذف ﻛل x1ﻣن اﻟﻣﻌﺎدﻻت . E 2 ,E 2 ,...,E 2ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﺳوف ﻧوﺿﺢ ﻛﯾف ﯾﻣﻛن ﺣذف x1ﻣن : E 2
a 21 )ا(ﯾﺗم ﺿرب E1ﻓﻰ a11
a 21 a 21 (a11x1 a12 x 2 ... a1n x n ) b1 a11 a11 واﻟﺗﻰ ﺗﺑﺳط اﻟﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ :
٢٣٨
a a a (a 21x1 21 a12 x 2 ... 21 a1n x n ) 21 b1 a11 a11 a11 )ب(وﺑطرﺣﻬﺎ ﻣن اﻟﻣﻌﺎدﻟﺔ : E 2
a 21x1 a 22 x 2 ... a 2n x n b 2 a a a (a 21x1 21 a 12 x 2 ... 21 a1n x n ) 21 b1 a11 a11 a11 ﻧﺣﺻل ﻋﻠﻰ :
a 21 a 21 a 21 a x ... a a 22 12 2 a1n x n ) b 2 b1 2n a a a 11 11 11
وﺑﺎﻟﺗﺎﻟﻰ ﺳوف ﻧﺣﺻل ﻋﻠﻰ ﻣﻌﺎدﻟﺔ ﺑﻬﺎ n-1ﻣن اﻟﻣﺗﻐﯾرات .ﺳوف ﯾطﺑق ذﻟك ﻋﻠﻰ ﻛل ﻣﻌﺎدﻟﺔ ﺣﯾث ﻧﺣول Ei a i1 ﻟﺟﻣﯾﻊ iﻣن i 2,..., nاﻟﻰ Ei E i ( )E1وﯾﺳﻣﻰ ﻫذا اﻟﻧظﺎم Sﺛم ﻧوﺟد اﻟﺣل ﻟﻬذا اﻟﻧظﺎم a11 وﺑﻌد اﻟﺣﺻول ﻋﻠﻰ ﻗﯾم x 2 ,...,x nﻧﺳﺗﺧدﻣﻬﺎ ﻓﻰ ﺣﺳﺎب ﻗﯾﻣﺔ x1ﻛﺎﻟﺗﺎﻟﻰ : ) b1 (a12 x 2 ... a 1n x n a11
x1
ﻓﻰ ﺑرﻣﺟﺔ ﺗﻠك اﻟطرﯾﻘﺔ ﻓﺎن اﻟﻧظﺎم ﯾﻣﺛل ﺑﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد n nﻣن اﻟﻣﻌﺎﻣﻼت ﻣﻊ اﻟﻣﺗﺟﻪ ﻣن ﻗﯾم . bi ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﯾﻛون ﻣن اﻟﻣﻼﺋم ﺗﻣﺛﯾل اﻟﻧظﺎم ﺑﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد (n 1) nﺣﯾث biﻓﻰ اﻟﻌﻣود اﻻﺧﯾر. ﻋﻧد ﺗﻧﻔﯾذ اﻟﺑرﻧﺎﻣﺞ ﺳوف ﻧﻌرف] t[Sﺣﯾث Sﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد (n 1) nواﻟﺗﻰ ﺗﻌﯾد ﻗﯾم
nﻣن اﻟﻣﺟﺎﻫﯾل :
t[S_]:=Module[{E1=First[S], x2toxn=h[elimx1[S]]}, Module[{b1=Last[E1], a11=First[E1], a12toaln=Drop[Rest[E1],-1]}, ]]]Join[{(b1-a12toaln.x2toxn)/a11},x2toxn ﻣﺳﺑوﻗﺔ ﺑﺎﻟدوال اﻟﺗﺎﻟﯾﺔ : ]f[S_]:=Map[Last[#]&,S ]g[S_]:=Map[Drop[#,-1]&,S ]]h[S_]:=LinearSolve[g[S],f[S ٢٣٩
. واﻟﺗﻰ ﺗﻧﺗﺞ اﻟﻧظﺎم اﻻﺻﻐرelimx1[S] اﻻن ﻧﺣﺗﺎج اﻟﻰ ﺗﻌرﯾف اﻟداﻟﺔ : ﻣرة اﺧرى ﻋﻣﻠﯾﺔ اﻟﺣذف ﺗﺎﺧذ ﻛل ﺻف ﻣن اﻟﻣﺻﻔوﻓﺔ
a i1,a i2 ,...,a in ,bi : وﺗﺣوﻟﻬﺎ اﻟﻰ
a i2 (
a i1 a a )a12 ,...,a in ( i1 )a1n , bi ( i1 )b1 a11 a11 a11
: ﺑﺎﺳﺗﺧدام اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ elimx1[S_]:= Map[substractE1[S[[1]],#]&,Rest[S]]
substractE1[E1_,Ei_]:=Module[{z=Ei[[1]]/E1[[1]]}, Module[{newE1=z*Rest[E1]}, : اﻻن اﻟﺑرﻧﺎﻣﺞ ﺳوف ﯾﻛون ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ f[S_]:=Map[Last[#]&,S] g[S_]:=Map[Drop[#,-1]&,S] h[S_]:=LinearSolve[g[S],f[S]] substractE1[E1_,Ei_]:=Module[{z=Ei[[1]]/E1[[1]]}, Module[{newE1=z*Rest[E1]}, Rest[Ei]-newE1]] elimx1[S_]:= Map[substractE1[S[[1]],#]&,Rest[S]] t[S_]:=Module[{E1=First[S], x2toxn=h[elimx1[S]]}, Module[{b1=Last[E1], a11=First[E1], a12toaln=Drop[Rest[E1],-1]}, Join[{(b1-a12toaln.x2toxn)/a11},x2toxn]]]
ﻣﺛﺎل : ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ ﻣن ﺛﻼث ﻣﻌﺎدﻻت
x 2y z 4 3x 2y z 8 x 3y 5z 0 : اﻟﺣل ٢٤٠
f[S_]:=Map[Last[#]&,S] g[S_]:=Map[Drop[#,-1]&,S] h[S_]:=LinearSolve[g[S],f[S]] substractE1[E1_,Ei_]:=Module[{z=Ei[[1]]/E1[[1]]}, Module[{newE1=z*Rest[E1]}, Rest[Ei]-newE1]] elimx1[S_]:= Map[substractE1[S[[1]],#]&,Rest[S]] t[S_]:=Module[{E1=First[S], x2toxn=h[elimx1[S]]}, Module[{b1=Last[E1], a11=First[E1], a12toaln=Drop[Rest[E1],-1]}, Join[{(b1-a12toaln.x2toxn)/a11},x2toxn]]]; p( ﺑﺎﻟرﻣزA | b) ﺳوف ﻧﻌرف اﻟﻣﺻﻔوﻓﺔ p={{1,-2,1,-4},{3,2,-1,8},{-1,3,5,0}} {{1,-2,1,-4},{3,2,-1,8},{-1,3,5,0}}; وﻧﻛﺗﺑﺎﻻﻣرt[p] t[p]
{{1,-2,1,-4},{3,2,-1,8},{-1,3,5,0}} {1,2,-1} {1,2,-1}اى ان اﻟﻨﺘﯿﺠﺔ
ﻣﺛﺎل : ﺣل اﻟﻧظﺎم اﻟﺗﺎﻟﻰ ﻣن ﻣﻌﺎدﻟﺗﯾن
x 2y 3 4x 5y 6 : اﻟﺣل
f[S_]:=Map[Last[#]&,S] g[S_]:=Map[Drop[#,-1]&,S] h[S_]:=LinearSolve[g[S],f[S]] substractE1[E1_,Ei_]:=Module[{z=Ei[[1]]/E1[[1]]}, Module[{newE1=z*Rest[E1]}, Rest[Ei]-newE1]] elimx1[S_]:= Map[substractE1[S[[1]],#]&,Rest[S]] t[S_]:=Module[{E1=First[S], ٢٤١
x2toxn=h[elimx1[S]]}, Module[{b1=Last[E1], a11=First[E1], a12toaln=Drop[Rest[E1],-1]}, ]]]Join[{(b1-a12toaln.x2toxn)/a11},x2toxn }}p={{1,2,3},{4,5,6 }}{{1,2,3},{4,5,6 ]t[p }{-1,2
اى ان اﻟﻨﺘﯿﺠﺔ}{-1,2
) (٥-٦-٤اﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة Eigenvalues and Eigenvectors ﻟﺗﻛن A
ﻣﺻﻔوﻓﺔ ﻣن اﻟﺑﻌد n m
ﺑﻣﻛوﻧﺎت ﺣﻘﯾﻘﯾﺔ .اﻟﻘﯾﻣﺔ ﺗﺳﻣﻰ اﻟﻘﯾﻣﺔ اﻟﻣﻣﯾزة ﻟﻠﺻﻣﻔوﻓﺔ Aاذا
وﺟد ﻣﺗﺟﻪ ﻏﯾر ﺻﻔرى vﯾﺣﻘق اﻟﻣﻌﺎدﻟﺔ . Av vﻫذا اﻟﻣﺗﺟﻪ اﻟﻐﯾر ﺻﻔرى ﯾﺳﻣﻰ اﻟﻣﺗﺟﻪ اﻟﻣﻣﯾز
ﻟﻠﻣﺻﻔوﻓﺔ . Aاﻟﻣﺻﻔوﻓﺔ اﻟﻣﻣﯾزة characteristic matrixﻟﻠﻣﺻﻔوﻓﺔ Aﻫﻰ اﻟﻣﺻﻔوﻓﺔ A I ﺣﯾث Iﺗﻣﺛل ﻣﺻﻔوﻓﺔ اﻟوﺣدة .اﻟﻘﯾم اﻟﻣﻣﯾزة ﻫﻰ اﻟﺟذور ﻟﻠﻣﻌﺎدﻟﺔ اﻟﻣﻣﯾزة Characteristic equation
| A I | 0 ﺣﯾث | | A Iﻫو اﻟﻣﺣدد ﻟﻠﻣﺻﻔوﻓﺔ ، A Iوﻫذا اﻟﻣﺣدد ﯾﺳﻣﻰ ﻛﺛﯾرة اﻟﺣدود اﻟﻣﻣﯾزة
. Characteristic polynomialاﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﺗﻰ ﺗﻣﺛل ﺟذور اﻟﻣﻌﺎدﻟﺔ اﻟﺳﺎﺑﻘﺔ ﻋددﻫم ﻋﻠﻰ اﻻﻛﺛر. n
اﻻن ﺳوف ﻧﺑدا ﺑﻣﻧﺎﻗﺷﺔ اﻻواﻣر اﻟﺗﻰ ﺗﺳﺗﺧدم ﻓﻰ ﺣﺳﺎب اﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة .
اﻻﻣر ]CharacteristicPolynomial[A.x
واﻟذى ﯾﻌطﻰ | | A I
ﻟﻣﺻﻔوﻓﺔ ﻣرﺑﻌﺔ Aﻛﺛﯾرة اﻟﺣدود ﻓﻰ . x
اﻻﻣر ] Eigenvalues[Aواﻟذى ﯾﻌطﻰ ﻗﺎﺋﻣﺔ ﺑﺎﻟﻘﯾم اﻟﻣﻣﯾزة ﻟﻠﻣﺻﻔوﻓﺔ اﻟﻣرﺑﻌﺔ .A اﻻﻣر ] Eigenvectors[Aواﻟذى ﯾﻌطﻰ ﻗﺎﺋﻣﺔ ﺑﺎﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة ﻟﻠﻣﺻﻔوﻓﺔ اﻟﻣرﺑﻌﺔ .A اﻻﻣر ] Eigensystem[Aواﻟذى ﯾﻌطﻰ ﻗﺎﺋﻣﺔ ﺑﺎﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة اﻟﻣﻘﺎﺑﻠﺔ ﻟﻬﺎ ﻟﻠﻣﺻﻔوﻓﺔ اﻟﻣرﺑﻌﺔ . A
ﻣﺛﺎل ٢٤٢
: ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ
4 3 4 A 1 3 1 1 1 5 . واﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزةA اوﺟد ﻛﺛﯾرة اﻟﺣدود اﻟﻣﻣﯾزة ﻟﻠﻣﺻﻔوﻓﺔ
: اﻟﺣل وذﻟك ﺑﺣﺳﺎبA وﺑﻌد ذﻟك ﻧﺣﺳب ﻛﺛﯾرة اﻟﺣدود اﻟﻣﻣﯾزة ﻟﻠﻣﺻﻔوﻓﺔ. aa1 ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف اﻟﻣﺻﻔوﻓﺔ Det وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر
(33) ﻣﺻﻔوﻓﺔ اﻟوﺣدة ﻣن اﻟﺑﻌدI ﺣﯾثA I اﻟﻣﺣدد ﻟﻠﻣﺻﻔوﻓﺔ اﻟﻣﻣﯾزة ﺛم اﺳﺗﺧدام اﻻﻣر
Solve ﺛم اﺳﺗﺧدام اﻻﻣر. ﻟﻠﺣﺻول ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔCharacteristicPolynomial : ﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﻟﻠﺟذور اﻟﻣﻣﯾزةNSolveﺛم اﻻﻣر aa1={{4,-3,4},{1,-3,1},{-1,-1,5}} {{4,-3,4},{1,-3,1},{-1,-1,5}} Det[aa1- IdentityMatrix[3]] 54 6 2 3 p=CharacteristicPolynomial[aa1,] 54 6 2 3 Solve[p0] 13 180 28407 11 2 , 13 323 3 180 28407
2
1
3 180
13 28407
2 323 11 1
3
13 2 3 180 28407
2
1
3 180
,
13 28407
2 323 11 1
3
2 3 180 28407
13
N[Solve[p0]] ٢٤٣
}}{{-2.46704},{4.23352 -1.99144 },{4.23352 +1.99144
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
1 5 1 A 3 6 6 4 1 7 اوﺟد اﻟﻘﯾم اﻟﻣﻣﯾزة اﻟﻣﺿﺑوطﺔ واﻟﺗﻘرﯾﺑﯾﺔ .
اﻟﺣل :
]Clear[aa1 }}aa1={{1,5,1},{-3,6,-6},{-4,1,7 }}{{1,5,1},{-3,6,-6},{-4,1,7 ]Eigenvalues[aa1 2 3 Root294 80 #1 14 #1 #1 &, 1,
Root294 80 #1 14 #12 #13 &, 3, Root294 80 #1 14 #12 #13 &, 2 ]]Eigenvalues[N[aa1 }{8.68668,2.65666 +5.17562 ,2.65666 -5.17562
ﻫذﻩ اﻟﻣﺻﻔوﻓﺔ ﻟﻬﺎ ﻗﯾﻣﺔ ﻣﻣﯾزة وﺣﯾدة 1 8.68668وزوج ﻣرﻛب ﻣرﺗﺑط :
2,3 2.65666 5.17562i ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﯾﻼﺣظ ان اﻟﺑرﻧﺎﻣﺞ ﻟم ﯾﺗﻣﻛن ﻣن ﺣﺳﺎب اﻟﻘﯾم اﻟﻣﻣﯾزة ﻻن ﻋﻧﺎﺻر اﻟﻣﺻﻔوﻓﺔ اﻋداد ﺻﺣﯾﺣﺔ وﯾﻣﻛن اﻟﺗﻐﻠب ﻋﻠﻰ ﻫذﻩ اﻟﻣﺷﻛﻠﺔ ﻋن طرﯾﻘﺔ ﻛﺗﺎﺑﺔ اﻻﻋداد اﻟﻣوﺟودة ﻓﻰ اﻟﻣﺻﻔوﻓﺔ ﻓﻰ اﻟﺻورة اﻟﻌﺷرﯾﺔ ) ﻓﻣﺛﻼ ﯾﻛﺗب 4.0ﺑدﻻ ﻣن . 4
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
٢٤٤
0 3 A 4 4 اوﺟد اﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة ﺑﺎﺳﺗﺧدام اﻻﻣر .Eigensystem
اﻟﺣل : ﺳوف ﻧﻌرف اﻟﻣﺻﻔوﻓﺔ aa1ﺛم ﻧﺳﺗﺧدم Eigensystemﻟﺣﺳﺎب اﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻘﺎﺑﻠﺔ ﻟﻬﺎ واﻟﻣﺳﻣﺎﻩ .aa2 }}aa1={{0,3},{4,-4 }}{{0,3},{4,-4 ]aa2=Eigensystem[aa1 }}}{{-6,2},{{-1,2},{3,2 وﻋﻠﻰ ذﻟك اﻟﻘﯾم اﻟﻣﻣﯾزة ﻫﻣﺎ 1 6, 2 2واﻟﻤﺘﺠﮭﺎت اﻟﻤﻤﯿﺰة اﻟﻤﻘﺎﺑﻠﺔ ھﻤﺎ :
1 3 v1 , v2 2 2 اﻟﻘﯿﻢ اﻟﻤﻤﯿﺰة ﺗﻤﺜﻞ اﻟﻌﻨﺼﺮ اﻻول ﻣﻦ aa2 ]]aa2[[1 }{-6,2 اﻟﻤﺘﺠﮭﺎت اﻟﻤﻤﯿﺰة ﺗﻤﺜﻞ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻰ ﻣﻦ aa2 ]]aa2[[2 }}{{-1,2},{3,2 ﻟﻠﺗﺣﻘق ﻣن ﺻﺣﺔ اﻟﻧﺗﺎﺋﺞ ﺳوف ﻧﺛﺑت ان Av1 v1 ,Av2 v2اى ان :
3 3 A 2 2 2
و
1 1 A 6 2 2 ]]aa1.aa2[[2,1]]aa2[[1,1]]aa2[[2,1 True ]]aa1.aa2[[2,2]]aa2[[1,2]]aa2[[2,2 True
٢٤٥
ﻣﺛﺎل ﺑﻔرض اﻟﻣﺻﻔوﻓﺔ اﻟﺗﺎﻟﯾﺔ :
3 5 4 A 5 6 3 3 2 2 اوﺟد ﺗﻘرﯾﺑﺎت ﻟﻠﻘﯾم اﻟﻣﻣﯾزة وﻟﻠﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة.
اﻟﺣل : ﺳوف ﻧﻌرف اﻟﻣﺻﻔوﻓﺔ aa1ﺛم ﻧﺳﺗﺧدم Eigensystemﻟﺣﺳﺎب اﻟﻘﯾم اﻟﻣﻣﯾزة واﻟﻣﺗﺟﻬﺎت اﻟﻣﻘﺎﺑﻠﺔ ﻟﻬﺎ واﻟﻣﺳﻣﺎﻩ .aa2 }}aa1={{3,-5,-4},{-5,6,3},{-3,2,-2 }}{{3,-5,-4},{-5,6,3},{-3,2,-2 ]]aa2=Eigensystem[N[aa1 {{{{10.9879,-3.77071,-0.217222},0.601654,0.756787,0.255509},{0.505049,}}}0.00654559,0.863066},{0.651499,0.68315,-0.329933 اﻟﻘﯾم اﻟﻣﻣﯾزة ﺗﺳﺗﺧﻠص ﻣن aa2ﻛﺎﻟﺗﺎﻟﻰ : ]]aa2[[1 }{10.9879,-3.77071,-0.217222 اﻟﻣﺗﺟﻬﺎت اﻟﻣﻣﯾزة ﺗﺳﺗﺧﻠص ﻣن aa2ﻛﺎﻟﺗﺎﻟﻰ : ]]aa2[[2 {{-0.601654,0.756787,0.255509},{0.505049,}}0.00654559,0.863066},{0.651499,0.68315,-0.329933 ﺳوف ﻧﺗﺣﻘق ان ﺗﻠك اﻟﻧﺗﺎﺋﺞ ﺗﻣﺛل اﻟﻘﯾم اﻟﺗﻘرﯾﺑﯾﺔ ﻟﻠﻘﯾم اﻟﻣﻣﯾزة وﻣﺗﺟﻬﺎﺗﻬﺎ اﻟﻣﻘﺎﺑﻠﺔ. اوﻻ :ﺳوف ﻧﺗﺣﻘق ان :
Av1 v1 وﺳوف ﻧﺛﺑت اﻧﻬﺎ ﺻﺣﯾﺣﺔ : ]]aa1.aa2[[2,1]]==aa2[[1,1]]aa2[[2,1 True ﺛﺎﻧﯾﺎ :ﺳوف ﻧﺗﺣﻘق ان :
Av2 v 2 ٢٤٦
: وﺳوف ﻧﺛﺑت اﻧﻬﺎ ﻏﯾر ﺻﺣﯾﺣﺔ aa1.aa2[[2,2]]==aa2[[1,2]]aa2[[2,2]] False
Av2 v 2 ﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﻧﺣﺳب اﻟﻣﻘدار aa1.aa2[[2,2]]-aa2[[1,2]]aa2[[2,2]] 8.88178 1016, 1.58554 1015, 8.88178 1016 : وﻗد وﺟدﻧﺎ ان اﻟﻔرق ﺻﻐﯾر ﺟدا وﯾﻘﺗرب ﻣن اﻟﺻﻔر وﯾﻣﻛن اﺛﺑﺎت ذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر ?Chop Chopexpr replaces approximate
real numbers in expr that are close to zero by the exact integer 0. More… Chop[aa1.aa2[[2,2]]-aa2[[1,2]]aa2[[2,2]]] {0,0,0}
: ﺳوف ﻧﺗﺣﻘق ان: ﺛﺎﻟﺛﺎ
Av3 v3 : وﺳوف ﻧﺛﺑت اﻧﻬﺎ ﺻﺣﯾﺣﺔ aa1.aa2[[2,3]]==aa2[[1,3]]aa2[[2,3]] True
٢٤٧
اﻟﻔﺻل اﻟﺧﺎﻣس اﻟﺗﻔﺎﺿل واﻟﺗﻛﺎﻣل
٢٤٨
ﻓﻰ ﻫذا اﻟﻔﺻل ﯾﻘدم ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ اﻻواﻣر اﻻزﻣﺔ ﻟﻼﺟراء ﻋﻣﻠﯾﺎت اﻟﺗﻔﺎﺿل واﻟﺗﻛﺎﻣل ﻟﻠدوال اﻟرﯾﺎﺿﯾﺔ اﻟﻣﺧﺗﻠﻔﺔ ﺳواء ﻓﻰ ﻣﺗﻐﯾر واﺣد او ﻓﻰ ﻣﺗﻐﯾرات ﻣﺗﻌددة .
) (١-٥ﺣﺳﺎب اﻟﻧﻬﺎﯾﺎت Computing Limits واﺣد ﻣن اﻟﻣواﺿﯾﻊ اﻟرﺋﯾﺳﯾﺔ ﻓﻰ اﻟﺗﻔﺎﺿل واﻟﺗﻛﺎﻣل ھو اﻟﻧﮭﺎﯾﺎت .ﯾﺳﺗﺧدم اﻟﺑرﻧﺎﻣﺞ ﻟﻠﺣﺻول ﻋﻠﻰ اﻟﻧﮭﺎﯾﺎت ﺳواء ﻋددﯾﺎ
او ﺑﯾﺎﻧﯾﺎ .ﯾﺳﺗﺧدم اﻻﻣر ]Limit[f[x], x a
ﻻﯾﺟﺎد ﻧﮭﺎﯾﺔ
)lim f(x x a
اى اﯾﺟﺎد اﻟﻧﮭﺎﯾﺔ ﻟﻠداﻟﺔ ) f ( x ( او ﻧﮭﺎﯾﺔ ﺳﺎﻟﺑﺔ ) .( اﻟﺳﮭم
ﻋﻧدﻣﺎ ﺗؤول xاﻟﻰ اﻟﻘﯾﻣﺔ aﺣﯾث aﻗد ﺗﻛون ﻋدد ﻣﺣدود او ﻧﮭﺎﯾﺔ ﻣوﺟﺑﺔ ) " " ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﮫ ﺑﻛﺗﺎﺑﺔ ﻋﻼﻣﺔ اﻟﺳﺎﻟب " "ﯾﺗﺑﻌﮭﺎ ﻋﻼﻣﺔ اﻛﺑر ﻣن " . " ﻣﺛﺎل اﺳﺗﺧدم اﻟرﺳم وﺟدول ﻣن اﻟﻘﯾم ﻓﻰ اﻻﺳﺗﻌﻼم ﻋن
sin 3x x
lim x 0
اﻟﺣل :
ﺳوف ﻧﺳﻧﺧدم اﻻﻣر Clearﻻزاﻟﺔ اى ﺗﻌرﯾﻔﺎت ﺳﺎﺑﻘﺔ ﻟـ fﺛم ﻧﻌرف :
sin 3x x
f (x)
وﺑﻌد ذﻟك ﻧرﺳم fﻓﻰ اﻟﻔﺗرة ] [, ﺑﺎﺳﺗﺧدام اﻻﻣر . Plot
;]Clear[f
Sin3x ; x
fx_ :
]}Plot[f[x],{x,-,
٢٤٩
3 2.5 2 1.5 1 0.5 3
1
2
-2
-1
-3
-0.5
Graphics
sin 3x ﯾﺗﺿﺢ ﻣن اﻟرﺳم ان 3 x 0 x sin 3x lim ﻋﻣوﻣﺎ ﻟﻠﺗﺎﻛد ﻣن ان 3 x 0 x lim
ﯾﺗم ﺣﺳﺎب ﻗﯾم ) f(xﻟﻘﯾم xاﻟﻘرﯾﺑﺔ ﻣن اﻟﺻﻔر.
اﻻن ﺳوف ﻧﺳﺗﺧدم Randomﻟﺗﻌرﯾف aa1واﻟﺗﻰ ﺗﻣﺛل ﻗﺎﺋﻣﺔ ﻣن ﺳﺗﺔ اﻋداد ﺣﻘﯾﻘﯾﺔ ﻋﺷواﺋﯾﺔ . اﻟﻌدد اﻻول ﯾﻘﻊ ﺑﯾن -1,1واﻟﻌدد اﻟﺛﺎﻧﻰ ﯾﻘﻊ ﺑﯾن -1/10,1/10وﻫﻛذا .وﯾﺟب اﻟﺗذﻛﯾر ﻋﻧد ﺗوﻟﯾد ﻫذﻩ اﻻﻋداد ﻣرة اﺧرى ﻣن ﻗﺑل اﻟﻣﺳﺗﺧدم ﺳوف ﺗﺧﺗﻠف اﻟﻧﺗﺎﺋﺞ ﻻن ﻫذة اﻋداد ﺗم ﺗوﻟﯾدﻫﺎ ﻋﺷواﺋﯾﺎ .
Sin3x x
fx_ :
aa1 TableRandomReal, 10 n, 10 n, n, 0, 5 0.161466, 0.0148057, 0.0004633, 0.000745624, 0.0000983324, 4.75616 106 ]aa2=Map[f,aa1 }{2.88405,2.99901,3.,3.,3.,3. ]}aa3=Table[{aa1[[i]],aa2[[i]]},{i,1,6 0.161466, 2.88405, 0.0148057, 2.99901, 0.0004633, 3., 0.000745624, 3., 0.0000983324, 3., 4.75616 106, 3. ]TableForm[aa3
2.88405 2.99901 3. 3. 3. 3.
0.161466 0.0148057 0.0004633 0.000745624 0.0000983324 4.75616 106 ٢٥٠
sin 3x ﻣن اﻟﺟدول ﯾﺗﺿﺢ ان 3 x 0 x sin 3x lim ﺑﺎﻟطﺑﻊ ﻫذﻩ اﻟﻧﺗﺎﺋﺞ ﻻ ﺗﺛﺑت ان 3 x 0 x sin 3x lim وﻟﻛن ﺗﺳﺎﻋدﻧﺎ ﻓﻰ اﻟﺣل ان 3 x 0 x lim
ﺑﻌض اﻟﻧﻬﺎﯾﺎت واﻟﺗﻰ ﺗﺧص اﻟدوال اﻟﻧﺳﺑﯾﺔ ﯾﻣﻛن ﺣﺳﺎﺑﻬﺎ وذﻟك ﻋن طرﯾق ﻓك Factoring
اﻟﺑﺳط واﻟﻣﻘﺎم .
ﻣﺛﺎل اﺣﺳب
x 2 1 x x 2 2
lim x 1
اﻟﺣل : ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ :ﯾدوى
.
x 1 x 2
lim x 1
)(x 1)(x 1 )(x 2)( x 1
lim x 1
ﺳوف ﻧﻌرف aa1ﻟﯾﻣﺛل اﻟﺗﻌﺑﯾر
x 2 1 x x 2
x2 1 x2 x 2
2
lim x 1
ﺳوف ﻧﺣﺎول ﺣﺳﺎب ﻗﯾﻣﺔ
x2 1 x2 x 2
ﻋﻧد x=1وﻟﻛن ﺳوف ﻧﺟد اﻧﻬﺎ
ﻗﯾﻣﺔ ﻏﯾر ﻣﻌرﻓﺔ .
x2 1 aa1 2 x x 2 aa1 . x 1 1 x2 …encountered . More
2 x x2
1
expression
Power ::infy : Infinite
0
…encountered . More
0 ComplexInfinity
expression
::indet : Indeterminate
Indeterminate
ﺑﻔك اﻟﺑﺳط واﻟﻣﻘﺎم وذﻟك ﺑﺎﻻﻣر Factorﻟﺗوﺿﯾﺢ ﻛﯾف ﯾﻣﻛن ﺗﺑﺳﯾط اﻟﺗﻌﺑﯾر ﺛم ﻧﺳﺗﺧدم اﻻﻣر Cancel ﻟﺗﺑﺳﯾط
x2 1 x2 x 2
اﻟﻰ
x 1 x 2
ﺳوف ﻧﻌطﻰ ﻟـ
x 1 x 2
وﻧﺣﺳﺑﻪ ﻋﻧد . x=1 ٢٥١
اﻻﺳم aa2
x2 1 aa1 2 x x 2 1 x2
2 x x2 Factor[Numerator[aa1]] (-1+x) (1+x) Factor[Denominator[aa1]] (-1+x) (2+x) aa2=Cancel[aa1] 1 x
2 x aa2/.x1 2 3
: Limitاﻻن ﺳوف ﻧﺳﺗﺧدم اﻻﻣر
Limit[aa1,x1]
2 3
: وﻋﻠﻰ ذﻟك ﯾﻣﻛن اﻟﻘول ان
lim x 1
x 2 1 x x 2 2
2 . 3
ﻣﺛﺎل
lim x
3x 2 5x 1 x 2 x 2
اﺣﺳب
: اﻟﺣل ﯾدوى: ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ
3x 2 5x 1 3x 2 5x 1 2 x x x 2
lim
lim x
x2 lim x 2 x 2 x x2
3
5
1
x 2 3 3. 2 1 1 2 x x x 1
ﻓﻰ اﻟﻣﺛﺎل. ﻓﻰ اﻟﻣﻘﺎمx اﻋﻠﻰ اس ﻟـn ﺣﯾثx ﺑﺻورة ﻋﺎﻣﺔ ﯾﺗم ﻗﺳﻣﺔ اﻟﺑﺳط واﻟﻣﻘﺎم ﻟﻠﺗﻌﺑﯾر ﻋﻠﻰ n
. n=2 اﻟﺳﺎﺑق ٢٥٢
: Limit ﺑﺎﺳﺗﺧدام اﻻﻣر:ﺛﺎﻧﯾﺎ
Limit
3x2 5x 1 , x x2 x 2
3
ﻣﺛﺎل
lim x
اﺣﺳب
x 3 8 x 2 4
: اﻟﺣل ﯾدوى: ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ
(x 2 2x 4) 2
lim x
x 3 8 x 2 4
(x 2x 4)(x 2) lim x x (x 2)(x 2)
lim
x (x 2) x
x2 lim x
1
2
4 x .
x
: Limit ﺑﺎﺳﺗﺧدام اﻻﻣر: ﺛﺎﻧﯾﺎ
Limit
x3 8 , x x2 4 ﻣﺛﺎل
lim x
x 2 1 x 1
اﺣﺳب
: اﻟﺣل ﯾدوى: ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ
lim x
x 2 1 x 1
(x 1)(x 1) lim(x 1) . x x (x 1)
lim
: Limit ﺑﺎﺳﺗﺧدام اﻻﻣر: ﺛﺎﻧﯾﺎ
٢٥٣
x2 1 Limit , x x 1
ﻣﺛﺎل
lim
x
x 2 4 2x 2 5
اﺣﺳب
: اﻟﺣل ﯾدوى: ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ
x2 4 lim
x
x 2 4 2x 2 5
x 2 lim x 2x 2 5 x
lim
x2
1
4
x2 1 . 5 2 2 2 x
: Limit ﺑﺎﺳﺗﺧدام اﻻﻣر: ﺛﺎﻧﯾﺎ
x2 4 Limit , x 2x2 5 1 2
ﻣﺛﺎل x 3 7 2 5x 1 x
lim
اﺣﺳب
: اﻟﺣل ﯾدوى: ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ
٢٥٤
x3 7 x 3 7 2 5x 1 x
lim
x 2 lim x 5x 2 1 x
x
lim
x
2
5
7 x 2 . 1 x2 : Limit ﺑﺎﺳﺗﺧدام اﻻﻣر: ﺛﺎﻧﯾﺎ
x3 7 Limit , x 5x2 1 -
ﻣﺛﺎل
lim x
اﺣﺳب
2x 5 3x 1
: اﻟﺣل ﯾدوى: ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ
2x 5 lim x
2x 5 3x 1
lim x
x lim 3x 1 x x
2
5
x 2 . 1 3 3 x
: Limit ﺑﺎﺳﺗﺧدام اﻻﻣر: ﺛﺎﻧﯾﺎ
Limit
2x 5 , x 3x 1
2 3
ﻣﺛﺎل ٢٥٥
اﺣﺳب
x 2 1 2x 3 x
lim x
اﻟﺣل : ﺳوف ﻧﻘوم ﺑﺣل اﻟﻣﺛﺎل اوﻻ :ﯾدوى
1
x2 1
1
x 3 lim x x 3 0 =0 . x 2x 3 x x 1 2 2 2 x x3
lim
x 2 1 2x3 x
lim x
ﺛﺎﻧﯾﺎ :ﺑﺎﺳﺗﺧدام اﻻﻣر : Limit
x2 1 Limit 3 , x 2x x 0
ﻣﺛﺎل اﺣﺳب
ex lim x 5e xو lim !x x x
اﻟﺣل : Limitx5Expx, x 0
Expx , x x
Limit 0
اﻟﻧﻬﺎﯾﺎت ﻣن طرف واﺣد ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﺳﺗطﯾﻊ ﺣﺳﺎب اﻟﻧﻬﺎﯾﺔ ﻣن طرف واﺣد .اﻻﻣر : ]Limit[f[x],x->a,Direction->-1
واﻟذى ﯾﺣﺎول ﺣﺳﺎب )lim f(x
x a +
اي اﻟﻧﻬﺎﯾﺔ ﻣن اﻟﯾﻣﯾن ﺑﯾﻧﻣﺎ اﻻﻣر :
]Limit[f[x],x->a,Direction->1
واﻟذى ﯾﺣﺎول ﺣﺳﺎب )lim f(x
x a -
٢٥٦
.اى اﻟﻧﻬﺎﯾﺔ ﻣن اﻟﯾﺳﺎر
اﻣﺛﻠﺔ : اﺣﺳب
lim-
x-1
x 1
Limit x 1, x 1, Direction 1 0
lim x
1-2x
1 2
Limit 1 2x , x
1 , Direction 1 2
0
lim x
4-3x
4 3
4 Limit 4 3x , x , Direction 1 3
0
lim
x -1
x+1
Limit x 1 , x 1, Direction 1 0
lim
1 x
lim
1 x
x 0
1 Limit , x 0, Direction 1 x - x 0
1 Limit , x 0, Direction 1 x
٢٥٧
||x x
lim
||x x
lim-
x 0
Absx , x 0, Direction 1 x
Limit 1
x 0
Absx , x 0, Direction 1 x
Limit -1
) (٢-٥اﻟﺗﻔﺎﺿل Differentiation ﯾﻣﻛن ﻟﻠﺑرﻧﺎج اﺟراء ﻋﻣﻠﯾﺎت اﻟﺗﻔﺎﺿل ﻟﻠدوال اﻟرﯾﺎﺿﯾﺔ اﻟﻣﺧﺗﻠﻔﺔ واﻟﺗﻌﺑﯾرات .ﻧﻌﻠم ﻣن اﻟﺗﻔﺎﺿل ان ﻣﺷﺗﻘﺔ fﻋﻧد xﺗﻌطﻰ ﻛﺎﻟﺗﺎﻟﻰ : )f (x h) f (x h
f (x) lim h 0
ﺑﺷرط ان اﻟﻧﻬﺎﯾﺔ ﻣوﺟودة .اﻻﻣر Limitﻣﻊ اﻻﻣر Simplifyﯾﺳﺎﻋد ﻓﻰ ﺗﻘدﯾر اﻟﻣﺷﺗﻘﺔ ﻟداﻟﺔ ﺑﺎﺳﺗﺧدام ﺗﻌرﯾف اﻻﺷﺗﻘﺎق .
ﻣﺛﺎل اﺣﺳب وﺑﺳط
)f (x h) f (x h
واﺣﺳب
)f (x h) f (x h
limاذا ﻛﺎﻧتg(x) 3x 2 7x 1 h 0
اﻟﺣل : ﺑﻌد ﺗﻌرﯾف gﻓﺎﻧﻧﺎ ﻧﺣﺳب وﻧﺑﺳط )g( x h)g(x h
وﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞ aa1 ]Clear[g
gx_ : 3x2 7x 1
٢٥٨
aa1 Simplify
gx h gx h
-7+3 h+6 x
lim h 0
f (x h) f (x) h
ﻟﺣﺳﺎبLimit ﯾﻠﻰ ذﻟك اﺳﺗﺧدام اﻻﻣر
g(x) اﻟﻧﺗﯾﺟﺔ aa2 واﻟﻣﺳﻣﺎﻩ
g(x) وg(x) ﻟرﺳم ﺑﺧطوط ﻣﺗﻘطﻌﺔg(x) ﺑﺎﻟﻠون اﻻﺳود واﻟرﺳم ﻟﻠداﻟﺔ
Plot ﺳوف ﻧﺳﺗﺧدم اﻻﻣر
g(x) ﺣﯾث اﻟرﺳم ﻟﻠداﻟﺔ
aa2=Limit[aa1,h0] -7+6 x Plot[{g[x],aa2},{x,-1,4},PlotStyle {GrayLevel[0],Dashing[{.01}]},PlotRange{8,20},AspectRatio1] 20
15
10
5
-1
1
2
3
4
-5
Graphics
ﻣﺛﺎل
g(x)
x32 اذا ﻛﺎﻧتlim h 0 x2 1
f (x h) f (x) h
واﺣﺳب
f (x h) f (x) h
اﺣﺳب وﺑﺳط
: اﻟﺣل g( x h)g(x) h
٢٥٩
ﻓﺎﻧﻧﺎ ﻧﺣﺳب وﻧﺑﺳطg ﺑﻌد ﺗﻌرﯾف
وﻧﺳﻣﻰ اﻟﻧﺎﺗﺞ aa1
x 3 2
]Clear[g
gx_ :
x2 1 gx h gx aa1 Together h
2 2 2 h 4 h x 3 x h 3 x 2hx 3 x x2 3 x 3 h x x2 3 h x h 1 x2 1 h2 2 h x x2
ﯾﻠﻰ ذﻟك اﺳﺗﺧدام اﻻﻣر Limitﻟﺣﺳﺎب
و اﻟﻧﺗﯾﺟﺔ )g(x
)f (x h) f (x h
lim h 0
واﻟﻣﺳﻣﺎﻩ aa2 ]aa2=Limit[aa1,h0 1 3 x2 4 x 3 2 3 x
2 3 x 1 x22 ﻋﻧدﻣﺎ ﺗﻛون اﻟﻠداﻟﺔ ﻗﺎﺑﻠﺔ ﻟﻠﺗﻔﺎﺿل ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﻣﻛﻧﻪ ﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻟﻠداﻟﺔ ) f(xﺑﺎﻛﺛر ﻣن طرﯾﻘﺔ وﺑﻣﺟرد ﺗﻌرﯾف اﻟداﻟﺔ .وﻓﯾﻣﺎ ﯾﻠﻰ اﻻواﻣر اﻟﺧﺎﺻﺔ ﺑﺎﻟﻣﺷﺗﻘﺎت :
اﻻﻣر
]f [x
ﯾﻘوم ﺑﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻟﻠداﻟﺔ ) f(xﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻣﺗﻐﯾر . x اﻻﻣر ]D[f[x],x ﯾﻘوم ﺑﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻟﻠداﻟﺔ ) f(xﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻣﺗﻐﯾر . x اﻻﻣر ]}D[f[x],{x,n ﯾﻘوم ﺑﺎﺷﺗﻘﺎق اﻟداﻟﺔ ) n f(xﻣن اﻟﻣرات ﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻣﺗﻐﯾر . x اﻻﻣر ]D[ Expression ,Variable ﯾﻘوم ﺑﺎﺷﺗﻘﺎق
اﻟﺗﻌﺑﯾر Expressionﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻣﺗﻐﯾر . Variable
اﻻﻣر ] } D[ Expression , {Variable ,n ﯾﻘوم ﺑﺎﺷﺗﻘﺎق
اﻟﺗﻌﺑﯾر n Expressionﻣن اﻟﻣرات ﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻣﺗﻐﯾر . Variable
ﯾﻣﻛن اﺳﺗﺧدام HelpBrowserﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻔﺻﯾﻼت ﺗﺧص Dوذﻟك ﻣن اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ.
٢٦٠
اﯾﺿﺎ ﯾﻣﻛن اﺳﺗﺧدام اﻟرﻣز وﯾﺗم اﻟﺣﺻول ﻋﻠﻰ ﻫذا اﻟرﻣز ﺑﺎﻟﺿﻐط ﻋﻠﻰ Fileﺛم ﻋﻠﻰ Palettesﺛم BasicInput ﻛﻣﺎ ﯾﺗﺿﺢ ﻓﯾﻣﺎ ﯾﻠﻰ :
٢٦١
ﻓﺗظﻬر اﻟﻘﺎﺋﻣﺔ اﻟﺗﺎﻟﯾﺔ ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ
٢٦٢
وﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟرﻣز
واﻟﻣوﺿﺢ ﻓﻰ اﻟﻘﺎﺋﻣﺔ اﻟﺳﺎﺑﻘﺔ واﻟﻣوﺿﺢ ﺑﺎﻟﺳﻬم وذﻟك ﻓﻰ ﻣﻛﺎن ادﺧﺎﻟﺔ ﻓﻰ ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﻧﺣﺻل ﻋﻠﻰ اﻟﻣطﻠوب .
اﻣﺛﻠﺔ اﺣﺳب:
d 4x 3 3x 2 7 dx ﯾﻣﻛن اﻟوﺻول اﻟﻰ اﻟﺣل ﺑطرﯾﻘﺗﯾن ﻛﺎﻟﺗﺎﻟﻰ :
D4x3 3x2 7, x 6 x 12 x2 ٢٦٣
x 4x3 3x2 7 6 x 12 x2 :اﺣﺳب
d 2 3 3u 2 du u : ﯾﻣﻛن اﻟوﺻول اﻟﻰ اﻟﺣل ﺑطرﯾﻘﺗﯾن ﻛﺎﻟﺗﺎﻟﻰ
D3u2
3 , u u2
6 6u u3
u 3u2
6 6u u3
3 u2
:اﺣﺳب
d 1 y dy y : ﯾﻣﻛن اﻟوﺻول اﻟﻰ اﻟﺣل ﺑطرﯾﻘﺗﯾن ﻛﺎﻟﺗﺎﻟﻰ
1 D y , y y
1 1 2 y32 2 y
1 y y y 1 1 2 y32 2 y :اﺣﺳب
d 3x 4 (2x 1)2 dx ٢٦٤
ﯾﻣﻛن اﻟوﺻول اﻟﻰ اﻟﺣل ﺑطرﯾﻘﺗﯾن ﻛﺎﻟﺗﺎﻟﻰ :
D3x4 2x 12, x 12 x3 4 1 2 x x 3x4 2x 12 12 x3 4 1 2 x اﺣﺳب:
d 1 t dt t ﯾﻣﻛن اﻟوﺻول اﻟﻰ اﻟﺣل ﺑطرﯾﻘﺗﯾن ﻛﺎﻟﺗﺎﻟﻰ :
1 , t t 1 t اذا ﻛﺎﻧت :
Dt
1 t2
1
t t
1 t2
1
f (x) x 5e6x اوﺟد )f (x ﻓﯾﻣﻛن اﻟﺣل ﻛﺎﻟﺗﺎﻟﻰ :
fx_ : x5Exp6x ]D[f[x],x 5 6x x4 6 6x x5
x fx 5 6x x4 6 6x x5 fx 5 6x x4 6 6x x5 وﻗد وﺟدﻧﺎ ان ﻧﻔس اﻟﻧﺗﯾﺟﺔ ﺣﺻﻠﻧﺎﻋﻠﯾﻬﺎ ﺑﺎﺳﺗﺧدام ﻛل اﻟطرق اﻟﺛﻼث اﻟﺳﺎﺑﻘﺔ . ﻛﻣﺎ ﯾﻣﻛﻧﻧﺎ اﺳﺗﺧدام ﺻﯾﻐﺔ اﻻدﺧﺎل او اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﻛﻣﺎ ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ :
اذا ﻛﺎﻧت :
٢٦٥
90 r
g(r) 4r 2 اوﺟد )g(r g[r_]:=4Pir^2+90Pi/r ]D[g[r],r 90
90 r
r2 r gr 90 r2 g r 90 r2
gr_ : 4r2 ]D[g[r],r 90
r2 r gr 90 r2 g r 90 r2
ﯾﻣﻛن اﻟﺗﻌرف ﻋﻠﻰ ﻗواﻧﯾن اﻟﺗﻔﺎﺿل اﻟﻣﺷﻬورة ﻣﺛل ﻗﺎﻋدة اﻟﺿرب واﻟﻘﺳﻣﺔ و...اﻟﺦ ﻣن اﻟﺑرﻧﺎﻣﺞ .ﻓﺑﻌد ازاﻟﺔ ﻛل
)f (x اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ان وﺟدت ﯾﻣﻛن ﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻟﻛل ﻣن )),(fg)(x) f (g(x )g(x
f (x),
ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Togetherﻓﻰ ﻗﺎﻋدة اﻟﻘﺳﻣﺔ ﺣﺗﻰ ﺗظﻬر اﻟﺻﯾﻐﺔ اﻟﻣﻌﺗﺎدة ﻟﻠﻘﺎﻋدة. ]Clear[f,g
x fx gx gx fx fx gx fx Togetherx gx gx fx fx gx gx2 x fgx fgx gx اﻻﻣﺛﻠﺔ اﻟﺗﺎﻟﯾﺔ ﺗﺑﺳط طرﯾﻘﺔ اﯾﺟﺎد اﻟدرﺟﺎت اﻟﻌﻠﯾﺎ ﻣن اﻟﻣﺷﺗﻘﺎت :
٢٦٦
اﻣﺛﻠﺔ :اﺣﺳب
d2 3x 4 7x 3 5x 2 8 2 dx D3x4 7x3 5x2 8, x, 2 10 42 x 36 x2 :اﺣﺳب
d2 (x 7)(2x 9 dx 2 D[(x-7)(2x-9),{x,2}] 4
d2 2 x 2cos(x) dx 2 x,2 x2 2Cosx 2-2 Cos[x]
d3 2 x 2cos(x) dx 3 x,3 x2 2Cosx 2 Sin[x]
اﻣﺛﻠﺔ : ﻓﺎنg(y) 2
g y_ : 2
7 y2
gy 42 y4
7 y,2 2 2 y
٢٦٧
7 اذا ﻛﺎن y2
42 y4 اﻟﻘﯾم اﻟﺣرﺟﺔ وﻧﻘط اﻻﻧﻘﻼب Location Critical Points and Inflection Points وﻟﻣﺎ ﻛﺎﻧت ﻣﺷﺗﻘﺎت اﻟدوال ﺗﻣﺛل ﺗﻌﺑﯾرات ﻓﺎن اﻟﺑرﻧﺎﻣﺞ ﯾﻣﻛن اﺳﺗﺧداﻣﻪ ﻓﻰ اﯾﺟﺎد اﻟﻧﻘط اﻟﺣرﺟﺔ وﻧﻘط اﻻﻧﻘﻼب. اﻟﻧﻘط اﻟﺣرﺟﺔ ﺗﻣﺛل اﻟﻧﻘط ﻋﻠﻰ اﻟرﺳم ﻟﻠداﻟﺔ fاﻟﺗﻰ ﻋﻧدﻫﺎ ﺧط اﻟﻣﻣﺎس ﯾﻛون اﻓﻘﯾﺎ او راﺳﯾﺎ ،ﺑﯾﻧﻣﺎ ﻧﻘط اﻻﻧﻘﻼب ﺗﻣﺛل اﻟﻧﻘط اﻟﺗﻰ ﻋﻧدﻫﺎ اﻟرﺳم ﻟﻠداﻟﺔ fﻣﻘﻌر اﻟﻰ اﻋﻠﻰ او اﻟﻰ اﺳﻔل .اﻻن ﺳوف ﻧوﺿﺢ ﺑﺎﻣﺛﻠﺔ ﻛﯾﻔﯾﺔ اﯾﺟﺎد اﻟﻧﻘط اﻟﺣرﺟﺔ وﻧﻘﺎط اﻻﻧﻘﻼب ﻟدوال ﻣﺧﺗﻠﻔﺔ اﻟﺗﺎﻟﯾﺔ
ﻣﺛﺎل ﺑﻔرض اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ :
x2 (x 5)2
f (x)
اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﺣﺳﺎب ) f (x),f (xﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2 ﻋﻠﻰ اﻟﺗرﺗﯾب: ]Clear[f
x 2 x 52 aa1 Togetherxfx fx_ :
1 x 5 x3 aa2 Togetherx,2fx 2 4 x 5 x4
اﻻن ﻻﺑد ﻣن ﺣل اﻟﻣﻌﺎدﻟﺗﯾن f (x) 0,f (x) 0 ]Solve[aa1==0 }}{{x1 ]Solve[aa2==0 }}{{x4
ﻣن اﻟﻧﺗﺎﺋﺞ ﻧﺟد ان اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0 و اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ھﻮ x 4
ھﻮ x 1
اﻻن ﻧﺣﺳب :
)f (1),f (4 ٢٦٨
}]{1,f[1
1 12
1,
}]{4,f[4
2 27
4,
ﻧﺳﺗﻧﺗﺞ ان ﻫﻧﺎك ﻧﻘطﺔ ﺣرﺟﺔ واﺣدة ﻟﻠداﻟﺔ fوﻫﻰ ) (1,1/12وﻧﻘطﺔ اﻧﻘﻼب واﺣدة وﻫﻰ ). (4,2/27
اﺳﺗﺧدام اﻟﻣﺷﺗﻘﺎت ﻓﻰ رﺳم اﻟدوال Using Derivatives in Graphics Functions
ﺗﺳﺎﻋد اﻟﻣﺷﺗﻘﺎت ﻣن اﻟدرﺟﺔ اﻻوﻟﻰ واﻟﺛﺎﻧﯾﺔ ﻓﻰ ﺗوﺻﯾف اﻟرﺳم ﻟﻠدوال ﻛﺎﻟﺗﺎﻟﻰ :
ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ fﻣﺗزاﯾدة increasingﻫﻰ ﻧﻔﺳﻬﺎ ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ ) f (xﻣوﺟﺑﺔ. ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ fﻣﺗﻧﺎﻗﺻﺔ decreasingﻫﻰ ﻧﻔﺳﻬﺎ ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ ) f (xﺳﺎﻟﺑﺔ ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ fﻣﻘﻌرة ﻣن اﻋﻠﻰ concave upﻫﻰ ﻧﻔﺳﻬﺎ ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ ) f (xﻣوﺟﺑﺔ ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ fﻣﻘﻌرة ﻣن اﺳﻔل concave downﻫﻰ ﻧﻔﺳﻬﺎ ﻗﯾم xاﻟﺗﻰ ﻋﻧدﻫﺎ ) f (xﺳﺎﻟﺑﺔوذﻟك ﻛﻣﺎ ﯾﺗﺿﺢ ﻣن اﻻﻣﺛﻠﺔ اﻟﺗﺎﻟﯾﺔ .
ﻣﺛﺎل ﺑﻔرض اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ :
f (x) x 4 2x 3 72x 2 70x 24 اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﺣﺳﺎب ) f (x),f (xﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2 ﻋﻠﻰ اﻟﺗرﺗﯾب :
fx_ : x4 2x3 72x2 70x 24 aa1 xfx 70 144 x 6 x2 4 x3 aa2 x,2fx 144 12 x 12 x2 ]Solve[aa1==0
٢٦٩
1 , x 5 2
x 7, x ]Solve[aa2==0 }}{{x-4},{x3
ﻣن اﻟﻧﺗﺎﺋﺞ اﻟﺳﺎﺑﻘﺔ ﻧﺟد ان اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0 و اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ھﻮ . x 4, x 3
ھﻮ x 7, x 1/ 2, x 5
اﻻن ﻧﺣﺳب :
)f (7),f (1/ 2),f (5),f (4),f (3 }]{-7,f[-7 }{-7,-2279 }]{1/2,f[1/2
1 661 , 2 16
}]{5,f[5 }{5,-551 }]{3,f[3 }{3,-279 }]{-4,f[-4 }{-4,-1280 ﻧﺳﺗﻧﺗﺞ ﻣن ذﻟك ان ﻫﻧﺎك ﺛﻼث ﻧﻘﺎط ﺣرﺟﺔ ﻟﻠداﻟﺔ fوﻫم ) (5,-551و) (1/2,661/16و)(-7,-2279
وﻧﻘطﺗﯾن اﻧﻘﻼب وﻫﻣﺎ ) (-4,-1280و) . (3,-279اﻻن ﻧرﺳم ) f (xﻓﻰ اﻟﻔﺗرة ] [ 8,6وﻧرﺳم )f (x ﻓﻰ اﻟﻔﺗرة ] . [ 5, 4واﻟﻧﺗﺎﺋﺞ ﻛﺎﻟﺗﺎﻟﻰ : ]aa3=Plot[aa1,{x,-8,6},DisplayFunctionIdentity Graphics ]aa4=Plot[aa2,{x,-5,4},DisplayFunctionIdentity Graphics ]]}Show[GraphicsArray[{aa3,aa4 100 400 50 200 4
-2
2 -50
-4 6
4
2
-2
-4
-6
-8
-200
-100
-400
-150
GraphicsArray
ﻣن اﻟرﺳم )ﻋﻠﻰ اﻟﯾﺳﺎر( ﯾﺗﺿﺢ ان ) f (xﻣوﺟﺑﺔ اذا ﻛﺎﻧت -7<x<1/2او x >5وﺳﺎﻟﺑﺔ اذا ﻛﺎﻧت x<-7 او .1/2<x<5
٢٧٠
ﻣن اﻟرﺳم )ﻋﻠﻰ اﻟﯾﻣﯾن( ﯾﺗﺿﺢ ان ) f (xﻣوﺟﺑﺔ اذا ﻛﺎﻧت x<-4او x >3و ) f (xﺳﺎﻟﺑﺔ اذا ﻛﺎﻧت
. - 4<x<3وﻋﻠﻰ ذﻟك fﻣﺗﻧﺎﻗﺻﺔ decreasingوﻣﻘﻌرة ﻣن اﻋﻠﻰ concave upﻓﻰ اﻟﻔﺗرة )(, 7 و fﻣﺗزاﯾدة increasingوﻣﻘﻌرة ﻣن اﻋﻠﻰ concave upﻓﻰ اﻟﻔﺗرة ) (-7,-4و fﻣﺗزاﯾدة وﻣﻘﻌرة ﻣن اﺳﻔل concave downﻓﻰ اﻟﻔﺗرة ) ( 4,1/ 2و fﻣﺗﻧﺎﻗﺻﺔ decreasingوﻣﻘﻌرة ﻣن اﺳﻔل concave down ﻓﻰ اﻟﻔﺗرة ) (1/ 2,3و fﻣﺗﻧﺎﻗﺻﺔ وﻣﻘﻌرة ﻣن اﻋﻠﻰ concave upﻓﻰ اﻟﻔﺗرة ) (3,5و fﻣﺗزاﯾدة وﻣﻘﻌرة ﻣن اﻋﻠﻰ concave upﻓﻰ اﻟﻔﺗرة ). (5, وﻓﻰ اﻟﻧﻬﺎﯾﺔ ﺳوف ﻧرﺳم اﻟداﻟﺔ ﻟﺗﺳﻬﯾل ﻫذﻩ اﻟﻣﻼﻣﺢ : ]}Plot[f[x],{x,-9,7 5
-2.5
2.5
-5
-7.5
-500
-1000
-1500
-2000
Graphics
ﻣﺛﺎل ارﺳم اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ :
f (x) 2x 3 9x 2 24x 20 اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﺣﺳﺎب ) f (x),f (xﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2 ﻋﻠﻰ اﻟﺗرﺗﯾب : ]Clear[f
fx_ : 2x3 9x2 24x 20 aa1 xfx
٢٧١
24 18 x 6 x2 aa2 x,2fx -18+12 x ]Solve[aa1==0 }}{{x-1},{x4 ]Solve[aa2==0
ﻣن اﻟﻧﺗﺎﺋﺞ اﻟﺗﺎﻟﯾﺔ ﻧﺟد ان اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0 و اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ھﻮ x 3/ 2
3 2
x
ھﻮ x 1,x 4
اﻻن ﻧﺣﺳب :
3 ) ( f (1),f (4),f 2 }]{-1,f[-1 }{-1,33
}]{4,f[4 }{4,-92 }]{3/2,f[3/2
3 59 , 2 2
ﻧﺳﺗﻧﺗﺞ ﻣن ذﻟك ان ﻫﻧﺎك ﻧﻘطﯾن ﺣرﺟﺗﯾن ﻟﻠداﻟﺔ fوﻫﻣﺎ ) (-1,33و) (4,-92وﻧﻘطﺔ اﻧﻘﻼب واﺣدة وﻫﻰ ) . (3/2,-59/2اﻻن ﻧرﺳم ) f (xو ) f (xﻓﻰ اﻟﻔﺗرة ) . (-2,6واﻟﻧﺗﺎﺋﺞ ﻛﺎﻟﺗﺎﻟﻰ : ]aa3=Plot[aa1,{x,-2,6},DisplayFunctionIdentity Graphics ]aa4=Plot[aa2,{x,-2,6},DisplayFunctionIdentity Graphics ]]}Show[GraphicsArray[{aa3,aa4 80 60 40 20
40 20 6
4
2
-20 -40
-2
6
-2 -20 2 4 -40 GraphicsArray
ﻣن اﻟرﺳم ﯾﺗﺿﺢ ان ) f (xﻣوﺟﺑﺔ اذا ﻛﺎﻧت x<-1او x >4وﺳﺎﻟﺑﺔ اذا ﻛﺎﻧت -1<x<3/2او 3/2<x<4 ﺑﯾﻧﻣﺎ ) f (xﻣوﺟﺑﺔ اذا ﻛﺎﻧت x>3/2او ) f (xﺳﺎﻟﺑﺔ اذا ﻛﺎﻧت . x<3/2وﻋﻠﻰ ذﻟك fﻣﺗزاﯾدة وﻣﻘﻌرة ﻣن اﺳﻔل ﻓﻰ اﻟﻔﺗرة ) ( , 1و fﻣﺗﻧﺎﻗﺻﺔ وﻣﻘﻌرة ﻣن ﻣن اﺳﻔل ﻓﻰ اﻟﻔﺗرة ) (-1,3/2وﻣﺗﻧﺎﻗﺻﺔ fوﻣﻘﻌرة ﻣن اﻋﻠﻰ ﻓﻰ اﻟﻔﺗرة ) (3/ 2,4و fﻣﺗزاﯾدة و ﻣﻘﻌرة ﻣن اﻋﻠﻰ ﻓﻰ اﻟﻔﺗرة ) (4, وﻓﻰ اﻟﻧﻬﺎﯾﺔ ﺳوف ﻧرﺳم اﻟداﻟﺔ ﻟﺗﺳﻬﯾل ﻫذﻩ اﻟﻣﻼﻣﺢ : ٢٧٢
]}Plot[f[x],{x,-5,10 200 100
10
8
6
4
-2
2
-4
-100 -200 -300
Graphics
ﻣﺛﺎل ارﺳم اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ
f (x) x 2 6x 7 اﻟﺣل : اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﺣﺳﺎب ) f (x),f (xﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2 ﻋﻠﻰ اﻟﺗرﺗﯾب: ]Clear[f
fx_ : x2 6x 7 aa1 xfx -6+2 x
aa2 x,2fx 2 ]Solve[aa1==0 }}{{x3 ]Solve[aa2==0 }{
ﻣن اﻟﻧﺗﺎﺋﺞ اﻟﺳﺎﺑﻘﺔ ﻧﺟد ان اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0 وﻻ ﯾوﺟد ﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0
ھﻮ x 3
اﻻن ﻧﺣﺳب :
)f (3 }]{3,f[3 ٢٧٣
}{3,-2 ﻧﺳﺗﻧﺗﺞ ﻣن ذﻟك ان ﻫﻧﺎك ﻧﻘطﺔ ﺣرﺟﺔ واﺣدة ﻟﻠداﻟﺔ fوﻫﻰ ) (3,-2وﻻ ﯾوﺟد ﻧﻘطﺔ اﻧﻘﻼب . اﻻن ﻧرﺳم ) f (xﻓﻰ اﻟﻔﺗرة ]. [-1,4 ]}aa3=Plot[aa1,{x,-1,4
2
4
2
3
-1
1 -2 -4 -6 -8
Graphics ﯾﺗﺿﺢ ﻣن اﻟرﺳم ان اﻟداﻟﺔ ﻣوﺟﺑﺔ ﻟﻘﯾم x>3وﺳﺎﻟﺑﺔ ﻟﻘﯾم x<3وھذا ﯾﻌﻧﻰ ان) f(xﻣﺗزاﯾدة ﻟﻘﯾم x>3
وﺗﻨﺎﻗﺼﯿﺔ ﻟﻘﯿﻢ x<3
ﻛﻤﺎ ﯾﺘﻀﺢ ﻣﻦ رﺳﻢ اﻟﺪاﻟﺔ) f(xﻓﯾﻣﺎ ﯾﻠﻰ :
]}Plot[f[x],{x,0,5 4 3 2 1
5
3
4
2
1 -1 -2 Graphics
وﻣن اﻟرﺳم ﯾﺗﺿﺢ ان اﻟداﻟﺔ ﻣﻘﻌرة ﻣن اﻋﻠﻰ وذﻟك ﻻن . f (x) 2 0ﻛﻣﺎ ﯾﺗﺿﺢ ﻣن اﻟرﺳم ان اﻟداﻟﺔ ﻟﻬﺎ ﻧﻘطﺔ ﺻﻐرى ﻋﻧد )(3,-2 ٢٧٤
اﯾﺿﺎ ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﻣﻛن اﻟﻘول ان اﻟداﻟﺔ ﺗﻘطﻊ اﻟﻣﺣور اﻻﻓﻘﻰ ﺗﻘرﯾﺑﺎ ﻋﻧد X=1.58579,x=4.41421
]]N[Solve[f[x]0
}}{{x1.58579},{x4.41421
ﻣﺛﺎل ارﺳم اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ
f (x) x 2 2x 1 اﻟﺣل : اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﺣﺳﺎب ) f (x),f (xﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2 ﻋﻠﻰ اﻟﺗرﺗﯾب: ]Clear[f
fx_ : x2 2x 1 aa1 xfx 2-2 x ]Solve[aa10 }}{{x1
aa2 x,2fx -2
ﻣن اﻟﻧﺗﺎﺋﺞ اﻟﺳﺎﺑﻘﺔ ﻧﺟد ان اﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0
ھﻮ x 1
اﻻن ﻧﺣﺳب :
)f (1 }]{1,f[1 }{1,2
ﻧﺳﺗﻧﺗﺞ ﻣن ذﻟك ان ﻫﻧﺎك ﻧﻘطﺔ ﺣرﺟﺔ واﺣدة ﻟﻠداﻟﺔ fوﻫﻰ ) (1, 2اﻻن ﻧرﺳم ) f (xﻓﻰ اﻟﻔﺗرة : -9,9
]}Plot[aa1,{x,-9,9
٢٧٥
20 15 10 5 5
7.5
-2.5
2.5
-5
-7.5
-5 -10 -15
Graphics ﯾﺗﺿﺢ ﻣن اﻟرﺳم ان اﻟداﻟﺔ ﺳﺎﻟﺑﺔ ﻟﻘﯾم x>1وﻣوﺟﺑﺔ ﻟﻘﯾم x<1وھذا ﯾﻌﻧﻰ ان)f(x و ﺗﻨﺎﻗﺼﯿﺔ ﻟﻘﯿﻢ x>1و ﺗزاﯾدﯾﺔ ﻟﻘﯾم x<1
.
اﻻن ﻧرﺳم ) f (xﻓﻰ اﻟﻔﺗرة ][-9,9 ]}Plot[f[x],{x,-9,9 7.5
5
-2.5
2.5
-5
-7.5
-20 -40 -60 -80 -100
Graphics ﯾﺗﺿﺢ ﻣن اﻟرﺳم ان اﻟداﻟﺔ ﺗﻧﺎﻗﺻﯾﺔ ﻟﻘﯾم x>1وﺗزاﯾدﯾﺔ ﻟﻘﯾم x<1 وﻣن اﻟرﺳم ﯾﺗﺿﺢ ان اﻟداﻟﺔ ﻣﻘﻌرة ﻣن اﺳﻔل وذﻟك ﻻن . f (x) 2 0ﻛﻣﺎ ﯾﺗﺿﺢ ﻣن اﻟرﺳم ان اﻟداﻟﺔ ﻟﻬﺎ ﻧﻘطﺔ ﻋظﻣﻰ ﻋﻧد )(1,2 اﯾﺿﺎ ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ ﯾﻣﻛن اﻟﻘول ان اﻟداﻟﺔ ﺗﻘطﻊ اﻟﻣﺣور اﻻﻓﻘﻰ ﺗﻘرﯾﺑﺎ ﻋﻧد : X=.414214 , x=2.41421 ]]N[Solve[f[x]0
٢٧٦
}}{{x-0.414214},{x2.41421
رﺳم اﻟدوال واﻟﻣﺷﺗﻘﺎت Graphing Functions and Derivatives ﯾﻣﻛن ﻟﻠﺑرﻧﺎﻣﺞ رﺳم اﻟداﻟﺔ واﻟﻣﺷﺗﻘﺎت ﻣﻌﺎ .
ﻣﺛﺎل ارﺳم اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ
x x2 1
f (x)
اﻟﺣل : اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﺣﺳﺎب ) f (x),f (xﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa1,aa2 ﻋﻠﻰ اﻟﺗرﺗﯾب:
x x2 1
]Clear[f
fx_ :
aa1 Togetherxfx 1 x2 1 x22
aa2 Togetherx,2fx 2 3 x x3 1 x23 ]Solve[aa1==0 }}{{x-1},{x1 ]Solve[aa2==0 x 0, x 3 , x 3 }]{3,f[3
3 10
ﻣن اﻟﻧﺗﺎﺋﺞ اﻟﺳﺎﺑﻘﺔ ﯾﺗﺿﺢ ان f (x) 0 ﻋﻧدﻣﺎ x=1,x=-1وﻣن اﻟﻧﺗﺎﺋﺞ اﻟﺗﺎﻟﯾﺔ ﯾﺗﺿﺢ ان اﻟﻘﯾﻣﺔ اﻟﻌظﻣﻰ ﻋﻧد x=1
وذﻟك ﻻن f (1) 0 واﻟﻘﯾﻣﺔ اﻟﺻﻐرى ﻋﻧد x=-1 وذﻟك ﻻن
f ( 1 ) 0
٢٧٧
3,
aa2/.x1
1 2
aa2/.x-1
1 2 ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Plotﻟرﺳم ) f (x),f (xﻓﻰ اﻟﻔﺗرة ] [-5,5ﺣﯾث اﻟرﺳم ﻟﻠداﻟﺔ ) f (xاﺳود واﻟرﺳم ﻟﻠداﻟﺔ ) f (xرﻣﺎدى . Plot[{f[x],aa1},{x,]}]}5,5},PlotStyle{GrayLevel[0],Dashing[{0.01 1 0.8 0.6 0.4 0.2 4
-2
2
-4
-0.2 -0.4
Graphics
ﺗﻘرﯾﺑﺎت ﺑﺎﺳﺗﺧدام FindRoot ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن اﻟﺣﺻول ﻋﻠﻰ ﺣل اﻟﻣﺿﺑوط ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ﯾﻛون ﺻﻌب .ﻓﻰ ﻫذﻩ اﻟﺣﺎﻟﺔ ﯾﻣﻛن اﺳﺧدام اﻻﻣر FindRootﻟﻠﺣﺻول ﻋﻠﻰ ﺣﻠول ﺗﻘرﯾﺑﯾﺔ .
ﻣﺛﺎل ﺑﻔرض اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ
0x
5 f (x) 2sin 2 2x cos 2 (x / 2) , 2
اوﺟد اﻟﻘﯾم اﻟﺗﻘرﯾﺑﯾﺔ واﻟﺗﻰ ﻋﻧﻬﺎ ﺧط اﻟﻣﻣﺎس ﯾﻛون اﻓﻘﯾﺎ ﻋﻧد رﺳم اﻟداﻟﺔ f
اﻟﺣل : ٢٧٨
اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم رﺳﻣﻬﺎ ﻓﻰ اﻟﻔﺗرة ] . [0, ﯾﻼﺣظ ﻣن اﻟرﺳم ان ﺧط اﻟﻣﻣﺎس اﻓﻘﯾﺎ ﻋﻧد ﺛﻼث ﻧﻘﺎط. ]Clear[f
5 x 2 Cos 2 2
fx_ : 2Sin2x2
]}Plot[f[x],{x,0, 4
3
2
1
3
2.5
2
1.5
1
0.5
Graphics
aa1 xfx 5 x x Cos Sin 8 Cos2 x Sin2 x 2 2 2
ﻟﺗﻘرﯾب ﻗﯾم xواﻟﺗﻰ ﻋﻧدﻫﺎ ﺧط اﻟﻣﻣﺎس اﻓﻘﯾﺎ ﻧﺣﺗﺎج اﻟﻰ ﺗﻘرﯾﺑﺎت ﻣﺑدﺋﯾﺔ .ﻟﻠﺣﺻول ﻋﻠﻰ ﻫذﻩ اﻟﺗﻘرﯾﺑﺎت ﺳوف
ﻧﺳﺗﺧدم اﻻﻣر Findrootوذﻟك ﺑﻌد رﺳم )f (x ]}Plot[aa1,{x,0,
٢٧٩
7.5 5 2.5 3
2
2.5
1.5
1
0.5 -2.5 -5 -7.5
Graphics
ﻣن اﻟرﺳﻣﺔ اﻟﺳﺎﺑﻘﺔ ﻧﺟد ان ﻫﻧﺎك ﻗﯾم ﯾﻣﻛن اﺳﺗﺧداﻣﻬم ﻛﻘﯾم ﻣﺑدﺋﯾﺔ وﻫم .863,1.63,2.25وﻫﻰ اﻟﻘﯾم ﺣﯾث ) f (xﺗظﻬر ﻗرﯾﺑﺔ ﻣن اﻟﺗﻘﺎطﻊ ﻣﻊ اﻟﻣﺣور اﻻﻓﻘﻰ . ]}FindRoot[aa10,{x,.863 }{x0.732751 ]}FindRoot[aa10,{x,1.23 }{x3.14159 ]}FindRoot[aa10,{x,2.25 }{x2.29725 وﻛﺑدﯾل ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر Mapوذﻟك ﻣﻊ اﻻﻣر FindRootﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾﺑﺎت اﻟﺳﺎﺑﻘﺔ ﻓﻰ اﻣر واﺣد .
]},{.863,1.23,2.25
&]}Map[FindRoot[aa10,{x,#
}}{{x0.732751},{x3.14159},{x2.29725
اذا ﻛﺎن اﻫﺗﻣﺎﻣﻧﺎ ﺑﻣﻌﺎدﻻت ﻛﺛﯾرة اﻟﺣدود ﻓﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر NRootsوذﻟك ﻟﻠﺣﺻول ﻋﻠﻰ ﺣﻠول ﺗﻘرﯾﺑﺔ ﻟﻛﺛﯾرات اﻟﺣدود .
ﻣﺛﺎل ﺑﻔرض اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ
1 25 f (x) x 6 2x 5 x 4 60x 3 150x 2 180x 25 2 2 ٢٨٠
اوﺟد اﻟﻘﯾم اﻟﺗﻘرﯾﺑﯾﺔ واﻟﺗﻰ ﻋﻧﻬﺎ ﺧط اﻟﻣﻣﺎس ﯾﻛون اﻓﻘﯾﺎ ﻋﻧد رﺳم اﻟداﻟﺔ f
اﻟﺣل : اوﻻ :ﺳوف ﻧزﯾل ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟﻠداﻟﺔ ) f(xﺛم ﻧرﺳم ) f (x),f (xﻓﻰ اﻟﻔﺗرة ] . [ 6,6رﺳم )f (x ﺳوف ﯾﻛون ﻋﻠﻰ ﺷﻛل ﺧطوط ﻣﺗﻘطﻌﺔ . ]Clear[f
1 6 25 4 x 2x5 x 60x3 150x2 180x 25 2 2 aa1 xfx 180 300 x 180 x2 50 x3 10 x4 3 x5 fx_ :
Plot[{f[x],aa1},{x,-6,6},PlotStyle ]{GrayLevel[0],Dashing[{.01}]},AspectRatio1 5000
2500
6
4
-2
2
-4
-6
-2500
-5000
-7500
-10000
Graphics
اﻻن ﺳوف ﻧﺳﺗﺧدم اﻻﻣر NRootsﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾم xاﻟﺗﻰ ﺗﺣﻘق f (x) 0وﺳوف ﻧﺗﺟﺎﻫل اﻟﻘﯾم اﻟﺗﻰ ﺗﺣﺗوى ﻋﻠﻰ اﻟﻘﯾم اﻟﺗﺧﯾﻠﯾﺔ . ]NRoots[aa10,x x-4.44315||x-0.459096||x1.55293 -1.82277 ||x1.55293 +1.82277 ||x5.12971
وﻋﻠﻰ ذﻟك ﯾﻣﻛن اﻟﻘول ان ﺗﻘرﯾﺑﺎت ﻗﯾم xواﻟﺗﻰ ﻋﻧدﻫﺎ ﺧط اﻟﻣﻣﺎس اﻓﻘﻰ ﻫم -.459096 , 5.12971 , -4.44315
ﺣﺳﺎب اﻟﻣﺷﺗﻘﺎت ﻟﻠدوال اﻟﻣﺳﻣﺎﻩ Implicit Functions ٢٨١
ﺑﻔرض ﻣﻌﺎدﻟﺔ ﻓﻰ ﻣﺗﻐﯾرﯾن ، x,yﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ اﯾﺟﺎد implicit derivativeﻟﻠﻣﻌﺎدﻟﺔ وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر ] Dt[equation,xﺣﯾث equationﺗﻔﺎﺿل ﺑﺎﻟﻧﺳﺑﺔ ﻟﻠﻣﺗﻐﯾر xو اﻟﻣﺻطﻠﺢ ] Dt[y,xﯾﻘﺎﺑل
اﻟﻣﺻطﻠﺢ dy/dxوﻋﻠﻰ ذﻟك اﻟﻣﺻطﻠﺢ ] Dt[x,yﯾﻘﺎﺑل اﻟﻣﺻطﻠﺢ . dx/dy ?Dt ?Dt
Dtf, x gives the total derivative of f with respect to x. Dtf gives the total differential of f. Dtf, x, n gives the nth total derivative of f with respect to x. Dtf, x1, …x2, ... gives a mixed total derivative. More
ﻣﺛﺎل اوﺟد ﻣﻌﺎدﻟﺔ ﺧط اﻟﻣﻣﺎس ﻟرﺳم :
2x 2 2xy y2 x 2y 1 0 ﻋﻧد اﻟﻧﻘﺎط ).(-3/2,-1) , (-3/2,-4
اﻟﺣل : اﻟﻣﯾل ﻟﺧطوط اﻟﻣﻣﺎس ﻟرﺳم 2x 2 2xy y2 x 2y 1 0ﻋﻧد اﻟﻧﻘﺎط ) (-3/2,-1) , (-3/2,-4ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﻣﺎ ﺑﺗﻘدﯾر اﻟﻣﺷﺗﻘﺔ ﻟﻠﻣﻌﺎدﻟﺔ ﻋﻧد ﻛل ﻧﻘطﺔ ﻣن ﺗﻠك اﻟﻧﻘﺎط . ﻻﯾﺟﺎد اﻟﻣﺷﺗﻘﺔ ﺳوف ﻧﺳﺗﺧدم . implicit derivatiationﺑﻌد ازاﻟﺔ ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ aa1ﺳوف ﻧﻌرف aa1ﻟﻠﻣﻌﺎدﻟﺔ . 2x 2xy y x 2y 1 0وﯾﺟب اﻻ ﻧﻧﺳﻰ ﺗرك ﻣﺳﺎﻓﺔ ﺑﯾن x,yواﯾﺿﺎ رﻣز 2
2
اﻟﻣﺳﺎواة اﻟﺛﻧﺎﺋﻰ )==( ﺑﯾن اﻟﺟﺎﻧب اﻻﯾﺳر ةاﻻﯾﻣن ﻣن اﻟﻣﻌﺎدﻟﺔ .اﻟﺟﺎﻧب اﻻﯾﺳر ﻣن اﻟﻣﻌﺎدﻟﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر ]]aa1[[1
aa1 2x2 2x y y2 x 2 y 1 0 ٢٨٢
1 x 2 x2 2 y 2 x y y2 0 ]]aa1[[1 1 x 2 x2 2 y 2 x y y2
ﺑﺎﺳﺗﺧدام اﻟرﺳم ﻟـ aa1واﻟذى ﯾﻣﺛل ﻣﻧﺣﻧﻰ اﻟﻣﺳﺗوى ﻟﻠداﻟﺔ f (x, y) 2x 2 2xy y 2 x 2y 1 ﺣﯾث f (x, y) 0 وﻋﻠﻰ ذﻟك ﺳوف ﻧﺳﺗﺧدم اﻻﻣر ContourPlotﻟﺗوﻟﯾد ﻣﻧﺣﻧﻰ اﻟﻣﺳﺗوى اﻟﺧﺎص .اﻟﺧﯾﺎر}Contours->{0 واﻟذى ﯾﺟﻌل اﻟﺑرﻧﺎﻣﺞ ﯾرﺳم ﻣﻧﺣﻧﻰ اﻟﻣﺳﺗوى ﻟﻠداﻟﺔ
)f (x, y
واﻟذى ﯾﺣﻘق اﻟﺷرط ان :
f (x, y) 0 اﻟﺧﯾﺎر
ContourShading->False
وذﻟك ﻟﻌدم اﻟﺗظﻠﯾل .اﻟﺧﯾﺎر :
PotPoints->60وذﻟك ﻟﺟﻌل اﻟرﺳم ﻧﺎﻋم .اﻟﺧﯾﺎر
Frame->False
وذﻟك ﻟﻌدم وﺿﻊ اطﺎر ﺣول اﻟرﺳم .اﻟﺧﯾﺎر :
Axes->Automaticوذﻟك ﻟﺟﻌل اﻟرﺳم ﺑﻣﺣﺎور .اﻟﺧﯾﺎر : } AxesOrigin->{0,0وذﻟك ﻟﺟﻌل ﻧﻘطﺔ ﺗﻘﺎطﻊ اﻟﻣﺣورﯾن ﻋﻧد اﻟﻧﻘطﺔ ).(0,0
aa2 ContourPlot2x2 2x y y2 x 2 y 1, x, 6, 1, y, 6, 1, Contours 0, ContourShading False, PlotPoints 60, Frame False, Axes Automatic, AxesOrigin 0, 0
٢٨٣
1
-1
1
-2
-4
-3
-5
-6
-1
-2
-3
-4
-5
-6
ContourGraphics
ﯾﺗﺿﺢ ان اﻟرﺳم ﻟـ
2x 2 2xy y2 x 2y 1 0
ـﯾﻣﺛل ﻗطﻊ ﻧﺎﻗص . ellipseاﻟﺧطوة اﻟﺗﺎﻟﯾﺔ ﻫﻰ اﺟراء implicit derivatiationﻟﻠﻣﻌﺎدﻟﺔ ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ . x اﻟﻣﺧرج ﺳوف ﯾﺳﻣﻰ ، aa3ﺛم ﯾﻠﻰ اﺳﺗﺧدام Solveﻟﺣل اﻟﻣﻌﺎدﻟﺔ aa3ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ ] Dt[y,xوﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞ . aa4 ]aa3=Dt[aa1,x 1+4 x-2 y+2 Dt[y,x]-2 x Dt[y,x]+2 y Dt[y,x]0 ]]aa4=Solve[aa3,Dt[y,x 1 4x2y Dty, x 2 1 x y
اى ان اﻻﺷﺗﻘﺎق ﻟـ 2x 2 2xy y2 x 2y 1 0 ھﻮ :
dy 1 4x 2y )dx 2(1 x y
واﻟذى ﯾﻣﻛن اﺳﺗﺧﻼﺻﺔ ﻣن aa4ﺑﺎﺳﺗﺧدام ]]aa4[[1,1,2 ]]aa4[[1,1,2 1 4 x 2 y
2 1 x y ﻻﯾﺟﺎد اﻟﻣﯾل ﻟﺧط اﻟﻣﻣﺎس ﻓﺎﻧﻧﺎ ﻧﻘدر dy/dxﻋﻧد ﻛل ﻧﻘطﺔ .ﺳوف ﻧﻘدر ﻗﯾﻣﺔ ]]aa4[[1,1,2 ﻋﻧد اﻟﻧﻘﺎط) (-3/2,-1),(-3/2,-4وﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺋﺞ aa5,aa6ﻋﻠﻰ اﻟﺗواﻟﻰ .ﻓﻰ ﻛل ﺣﺎﻟﺔ ٢٨٤
. 1 ﻓﺎن اﻟﻣﯾل ﻟﺧط اﻟﻣﻣﺎس ھو
1 4x 2 y 3 aa5 . x , y 1 21 x y 2 1
aa6
1 4x 2 y 3 . x , y 4 21 x y 2
1
ﻟنaa8 وﯾﺟب ان ﻧﺗذﻛر ان. aa8 وﺑﺎﻻﺳمPlot ﺳوف ﻧرﺳم ﺧطوط اﻟﻣﻣﺎس ﻟﺗﻠك اﻟﻧﻘﺎط ﺑﺎﺳﺗﺧدام اﻻﻣر ListPlot ﻟﻣﺷﺎﻫدة ﻛل ﻧﻘطﺔ ﺳوف ﻧﺳﺗﺧدم اﻻﻣر. DisplayFunction->Identity ﯾظﻬر وذﻟك ﻧﺗﯾﺟﺔ ﻟﻠﺧﯾﺎر ﯾﻛﺑرPlotStyle->PointSizes[.03] اﻟﺧﯾﺎر. aa9 ( واﺳم اﻟﻧﺗﯾﺟﺔ-3/2,-1),(-3/2,-4) ﻟرﺳم اﻟﻧﻘﺎط ﯾﺳﺗﺧدم ﻟرؤﯾﺔ اﻟﻘطﻊ ﻣﻊShow وﻓﻰ اﻟﻧﻬﺎﯾﺔ ﻓﺎن اﻻﻣر. اﻟﻧﻘطﺗﯾن ﺑﺣﯾث ﯾظﻬران ﺑوﺿوح ﻓﻰ اﻟرﺳم اﻟﻧﻬﺎﺋﻰ . ﺧطوط اﻟﺗﻣﺎس ﻣﻊ اﻟﻧﻘﺎط
aa6
1 4x 2 y 3 . x , y 4 21 x y 2
1
3 3 1, aa6x 4, x, 6, 1, 2 2 DisplayFunction Identity; 3 3 aa9 ListPlot , 1, , 4, 2 2 PlotStyle PointSize0.03, DisplayFunction Identity; aa8 Plotaa5x
Show[aa2,aa8,aa9,PlotRange{{-6,1},{-6,1}}]
٢٨٥
1
-1
1
-2
-3
-4
-5
-6
-1
-2
-3
-4
-5
-6
Graphics
ﻓﻰ اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ ﺳوف ﻧوﺟد implicity differentiateﻟﻣﻌﺎدﻟﺔ ﺑﺣﯾث ان اﻟﺟﺎﻧب اﻻﯾﻣن ﻣن اﻟﻣﻌﺎدﻟﺔ ﻟﯾس ﺻﻔر
ﻣﺛﺎل اوﺟد :
dy dx
y اذا ﻛﺎﻧت cos(x sin y) sin y
اﻟﺣل : ﺑﻌد ازاﻟﺔ ﻛل اﻟﺗﻌرﯾﻔﺎت اﻟﺳﺎﺑﻘﺔ ﻟـ aa1ﺳوف ﻧﻌرف
aa1ﻟﻠﻣﻌﺎدﻟﺔ cos(x sin y) sin y
. ]Clear[aa1
;]aa1=Cos[x+Sin[y]]Sin[y
٢٨٦
اﻟﺧطوة اﻟﺗﺎﻟﯾﺔ ﻫو اﺳﺗﺧدام Dtﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻟـ aa1
ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ xوﺗﺳﻣﯾﺔ اﻟﻧﺗﯾﺟﺔ aa3
dy y وﯾﺟب ان ﻧﺗذﻛر ان اﻟﺻﯾﻐﺔ ] Dt[y,xﺗﻣﺛل . dx ]aa3=Dt[aa1,x ](-1-Cos[y] Dt[y,x]) Sin[x+Sin[y]]Cos[y] Dt[y,x واﺧﯾ ار ﺳوف ﻧﺳﺗﺧدم Solveﻟﺣل aa4ﻓﻰ ]Dt[y,x ]]aa4=Solve[aa3,Dt[y,x Secy Sinx Siny Dty, x 1 Sinx Siny اﻟﻨﺘﯿﺠﺔ :
dy )sec(y)sin(x sin(y dx )1 sin(x sin(y
y
وﻫذﻩ اﻟﺻﯾﻐﺔ اﺳﺗﺧﻠﺻت ﻣن aa4ﻛﺎﻟﺗﺎﻟﻰ : ]]aa4[[1,1,2 Secy Sinx Siny 1 Sinx Siny
ﻓﻰ اﻟﻧﻬﺎﯾﺔ ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر Contourﻟرﺳم اﻟﻣﻌﺎدﻟﺔ cos(x sin y) sin yاوﻻ ﺳوف ﻧﻌﯾد ﻛﺗﺎﺑﺗﻬﺎ ﻓﻰ اﻟﺷﻛل . cos(x sin y)sin y 0رﺳم cos(x sin y)sin y 0ﯾﻌﻧﻰ رﺳم ﻣﻧﺣﻧﻰ اﻟﻣﺳﺗوى ﻟـ cos(x sin y)sin yاﻟﻣﻘﺎﺑﻠﺔ ﻟﺻﻔر .وﻋﻠﻰ ذﻟك اﻟطرﯾﻘﺔ ﻫﻰ ﻧﻔﺳﻬﺎ اﻟطرﯾﻘﺔ ﻓﻰ اﻟﻣﺛﺎل اﻟﺳﺎﺑق .اﻟرﺳم اﻟﻧﺎﺗﺞ ﺳوف ﯾﻛون ﻓﻰ اﻟﻔﺗرة ]. [4,4 ٢٨٧
aa5=ContourPlot[Cos[x+Sin[y]]-Sin[y],{x,-4,4},{y,4,4},Contours{0},ContourShadingFalse,PlotPoints160,F rameFalse,AxesAutomatic,AxesOrigin{0,0}]
10
5
-10
-5
5
10
-5
-10
aa5=ContourPlot[Cos[x+Sin[y]]-Sin[y],{x,-4,4},{y,4,4},Contours{0},ContourShadingFalse,PlotPoints160,F rameFalse,AxesAutomatic,AxesOrigin{0,0}]
ﻣﺛﺎل ﻣﻊ اﻟﻌﺎﺋﻠﺔ ﻣن اﻟﻣﻧﺣﻧﯾﺎتorthogonal ﻣﺗﻌﺎﻣدة
x 2 2xy y 2 C
اﺛﺑت ان ﻋﺎﺋﻠﺔ اﻟﻣﻧﺣﻧﯾﺎت ﻟﻠﻣﻌﺎدﻟﺔ
y2 2xy x 2 C : اﻟﺣل
y2 2xy x 2 C وx 2 2xy y 2 C ﻟﻠﻣﻌﺎدﻟﺗﯾنaa1,aa2 ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف C ﺣﺗﻰ ﻻ ﯾﺗﻌﺎرض ﻣﻊ اﻟﺣرفc وﺳوف ﻧﺳﺗﺧدم اﻟﺣرف Clear[aa1,aa2]
aa1 x2 2x y y2 c; aa2 y2 2x y x2 c; ٢٨٨
ﺗﻣﺛل ﺛﺎﺑت وC وﻻن. ﻟﻛل ﻧﻌﺎدﻟﺔy
dy وذﻟك ﻻﯾﺟﺎدDt , Solve ,Simplify وﺳوف ﻧﺳﺗﺧدم اﻻواﻣر dx
. ﺑﺻﻔرDt[c,x] وذﻟك ﻻﺣﻼل ﻛل وﺟود ﻟـReplaceAll(/.) ﻓﺎﻧﻧﺎ ﺳوف ﻧﺳﺗﺧدمy
dy (C) 0 dx
aa4=Simplify[Solve[Dt[aa1,x],Dt[y,x]]]/.Dt[c,x]0 Dt y, x x y x y xy Dty, x xy
aa5=Simplify[Solve[Dt[aa2,x],Dt[y,x]]]/.Dt[c,x]0
Dty, x
2x 2y 2 x y : وﻻن اﻟﻣﺷﺗﻘﺎت ﺳﺎﻟﺑﺔ اﻟﻣﻘﻠوب ﺣﯾث
y
xy xy 1/ x y xy : وھذا ﯾﻌﻧﻰ ان اﻟﻌﺎﺋﻠﺔ ﻣﺗﻌﺎﻣدة ﻛﻣﺎ ﯾﺗﺿﺢ ﻣﻣﺎ ﯾﻠﻰ
aa6 ContourPlotx2 2x y y2, x, 5, 5, y, 5, 5, ContourShading False, PlotPoints 120, Frame False, DisplayFunction Identity ContourGraphics
aa7 ContourPlotx2 2x y y2, x, 5, 5, y, 5, 5, ContourShading False, PlotPoints 120, Frame False, DisplayFunction Identity ContourGraphics Show[aa5,aa6,DisplayFunction$DisplayFunction,FrameFalse ,Axes->Automatic,AxesOrigin{0,0}]
٢٨٩
4
2
-4
-2
2
4
-2
-4
. Graphics
Implicit Functions طرق اﺧرى ﻻﯾﺟﺎد اﻟﻣﺷﺗﻘﺎت ﻟﻠدوال اﻟﻣﺳﻣﺎﻩ
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل. x داﻟﺔ ﻓﻰy اذا وﺿﺣﻧﺎ انD ﯾﻣﻛن ﺣﺳﺎب اﻟﻣﺷﺗﻘﺎت ﻟﻠدوال اﻟﻣﺳﻣﺎﻩ ﺑﺎﺳﺗﺧدام
(x 2 y2 ) 2 a 2 (x 2 y2 ) ﻟـimplicitly differentiate ﻻﯾﺟﺎد
.aa1 اﻻن ﺳوف ﻧﻌرف. ﺛﺎﺑتa ﺣﯾثLemniscate of Bernunlli واﻟﻣﺳﻣﺎﻩ Clear[aa1] 2
aa1 x2 yx2 a2x2 yx2; aa2 وﻧﻌطﯾﮫ اﻻﺳمX ﻻﺟراء اﻟﺗﻔﺎﺿل ﻟـ ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰDt ﺛﻢ ﻧﺴﺘﺨﺪم aa3=Dt[aa1,x] 2 x2 yx2 2 x 2 yx yx
2 a Dta, x x2 yx2 a2 2 x 2 yx yx .y'[x] وذﻟك ﻟﺣل اﻟﻣﺷﺗﻘﺔ ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰSolve وﻓﻰ اﻟﻨﮭﺎﯾﺔ ﻧﺴﺘﺨﺪم aa4=Solve[aa3,y'[x]]
y x
a2 x 2 x3 a x2 Dta, x 2 x yx2 a Dta, x yx2 yx a2 2 x2 2 yx2
٢٩٠
طرﯾﻘﺔ ﻧﯾوﺗن Newton's Methodﻻﯾﺟﺎد ﺟذور داﻟﺔ ﺑﺎﻻﺳﺗﻔﺎدة ﻣن اﻟﺗﻔﺎﺿل ﺗﻌﺗﺑر طرﯾﻘﺔ ﻧﯾوﺗن واﺣدة ﻣن اﺷﻬر اﻟطرق طرﯾﻘﺔ اﻟﺗﻘﻠﯾدﯾﺔ ﻓﻰ اﯾﺟﺎد ﺟذر ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ﺑطرﯾﻘﺔ اﻟﺗﻛ اررات .ﻟﻘد ﻧﺎﻗﺷﻧﺎ ﺳﺎﺑﻘﺎ ﻛﯾف ﯾﻣﻛن اﯾﺟﺎد ﺟذر ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ﺑطرﯾﻘﺔ ﺑﺳﯾطﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر .FindRoot اﻟﺳؤال اﻻن ﻟﻣﺎذا ﻻ ﺑد ﻣن ﺗﻌﻠم ﺑرﻣﺟﺔ اﯾﺟﺎد اﻟﺟذر ؟ ﻟﻧﻔس اﻟﺳﺑب ﻛﻣﺎ ﺗﻌﻠﻣﻧﺎ ﻣن ﻗﺑل ﺣل ﻧظﺎم ﻣن اﻟﻣﻌﺎدﻻت اﻟﺧطﯾﺔ وذﻟك ﻻن ﺗﻠك اﻻواﻣر ﻻ ﺗﻌﻣل داﺋﻣﺎ وﻋﻠﻰ ذﻟك ﻓﺎﻟطرﯾق اﻟوﺣﯾد ھو ﺗﻌﻠم اﻟﺑرﻣﺟﺔ ﺣﺗﻰ ﯾﻣﻛن اﯾﺟﺎد 1
ﺟذر ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ﺑطرﯾﻘﺔ ﺗﻘرﯾﺑﯾﺔ .
ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻟﻠداﻟﺔ : f (x) x 3 1
FindRootx 3 0, x, .1 FindRoot ::lstol : The line search decreased the step size to within tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the merit function . You may need more than MachinePrecision digits …of working precision to meet these tolerances . More
x 0.000405502 2.29133 1015 ﻟم ﻧﺳﺗطﻊ اﻟوﺻول اﻟﻰ ﺣل . ﺳوف ﻧﺳﺗﺧدم اﻟﻣﺛﺎل اﻟﺗﺎﻟﻰ ﻟﺷرح طرﯾﻘﺔ ﻧﯾوﺗن ﻓﻰ اﯾﺟﺎد ﺟذر ﻟﻠﻣﻌﺎدﻟﺔ ﺑﻔرض اﻟداﻟﺔ x 50 :واﻟﺗﻰ ﺟذرﻫﺎ اﻟﺟذر اﻟﺗرﺑﯾﻌﻰ ﻟـ 50وﺑﺎﺳﺗﺧدام اﻻﻣر FindRootﺳوف ﻧﺣﺻل ﻋﻠﻰ 2
ﻗﯾﻣﺔ ﻗرﯾﺑﺔ ﺟدا ﻣن اﻟﺟذر اﻟﺗرﺑﯾﻌﻰ ﻟـ 50ﻛﻣﺎ ﺳﻧرى :
FindRootx2 50 0, x, 50 }{x7.07107
ﺣﯿﺚ 50ﻓﻰ } {x,50ھﻰ ﻗﯾﻣﺔ ﻣﺑدﺋﯾﺔ ﺗﺧﻣﯾﻧﯾﺔ ﻟﻠﺟذر . ﺑﻔرض اﻟداﻟﺔ fوﻟﮭﺎ اﻟﻣﺷﺗﻘﺔ f ﻓﺎن طرﯾﻘﮫ ﻧﯾوﺗن ﺗﻘدم طرﯾﻘﺔ ﻋددﯾﺔ ﻻﯾﺟﺎد ﺟذر ﻟﻠﻣﻌﺎدﻟﺔ f (x) 0ﻣﺑﺗدﺋﺎ
ﻣن ﻧﻘطﺔ اﻟﺑداﯾﺔ a 0وﺑﻣﻌﻠوﻣﯾﺔ اﻟﻣﺷﺗﻘﺔ ) f (xﯾﺗم اﻟﺣﺻول ﻋﻠﻰ ﻣﺗﺗﺎﺑﻌﺔ ﻣن اﻓﺿل اﻟﺗﻘدﯾرات a1 ,a 2 ,... واﻟﺗﻰ ﻧﺣﺻل ﻋﻠﯾﮭﺎ ﻣن اﻟﻌﻼﻗﺔ اﻟﺗﻛرارﯾﺔ اﻟﺗﺎﻟﯾﺔ:
) f (a i ) f (a i
a i1 a i
٢٩١
ﺳوف ﻧﺷرح ﻻﺣﻘﺎ اﻟﻘﯾﻣﺔ a nﻓﻰ اﻟﻣﺗﺗﺎﺑﻌﺔ واﻟﺗﻰ ﻧﺗوﻗف ﻋﻧدھﺎ وﺗﻛون ﺗﻘدﯾر ﻟﻠﺟذر .ﻓﻰ اﻟرﺳم اﻟﺗﺎﻟﻰ وﻟﻣﺛﺎﻟﻧﺎ ﯾﻼﺣظ ان اﻟﺗﻘدﯾرات ﺗﻘﺗرب اﻛﺛر واﻛﺛر ﻣن اﻟﺟذر .
)f (x )f (x ﺣﯾث )f (x) / dx f (x
dx 2
اﻟطرﯾﻘﺔ ﻣوﺿﺣﺔ ﻓﻰ اﻟرﺳم اﻟﺗﺎﻟﻰ ﻟﻣﺛﺎﻟﻧﺎ ﺣﯾث f (x) x 50و . a 0 50 .ﻟﮭذه اﻟداﻟﺔ اﻟﻣﺷﺗﻘﺔ ﻟﮭﺎ ھﻰ . f (x) 2x
٢٩٢
fx_ : x2 50 a0=50 50 ]]a1=N[a0-f[a0]/f'[a0 25.5 ]]a2=N[a1-f[a1]/f'[a1 13.7304 ]]a3=N[a2-f[a2]/f'[a2 8.68597 ]]a4=N[a3-f[a3]/f'[a3 7.22119 ]]a5=N[a4-f[a4]/f'[a4 7.07263 ﻛﻣﺎ ﻫو ﻣﺷﺎﻫد ان اﻟﻘﯾم ﺗﻘﺗرب وﺗﻘﺗرب ﻣن ﺟذر 50وﻫو ﺗﻘرﯾﺑﺎ ﯾﺳﺎوى .7.7107اﻟﺳؤال اﻻن ﻣﺗﻰ ﻧﻘرر اﻻﻧﺗﻬﺎء ،ﺑﻔرض اﻧﻧﺎ ﻗررﻧﺎ اﻻﻧﺗﻬﺎء ﻋﻧد a 5ﻓﺎن اﻟﻘﯾم اﻟﺳﺎﺑﻘﺔ واﻟﺗﻰ ﺣﺳﺑﻧﺎﻫﺎ ﻻ ﯾﻛون ﻟﻬﺎ اﻫﻣﯾﺔ .
وﻟذﻟك ﺳوف ﻧﺳﻣﻰ ﺟﻣﯾﻊ اﻟﻘﯾم . a وﯾﻛون اﻟﺑرﻧﺎﻣﺞ ﻛﺎﻟﺗﺎﻟﻰ :
fx_ : x2 50 a=50 50 ]]a=N[a0-f[a0]/f'[a0 25.5 ]]a=N[a1-f[a1]/f'[a1 13.7304 ٢٩٣
a=N[a2-f[a2]/f'[a2]] 8.68597 a=N[a3-f[a3]/f'[a3]] 7.22119 a=N[a4-f[a4]/f'[a4]] 7.07263 :ﯾﻣﻛن اﺧﺗﺻﺎر اﻟﺑرﻧﺎﻣﺞ ﺑﺗﻌرﯾف داﻟﺔ ﻛﺎﻟﺗﺎﻟﻰ
fx_ : x2 50 next[x_,fun_]:=N[x-fun[x]/fun'[x]] a=50 50 a=next[a,f] 25.5 a=next[a,f] 13.7304 a=next[a,f] 8.68597 a=next[a,f] 7.07263 : ﻛﺎﻟﺗﺎﻟﻰDoﺑﻔرض اﻧﻧﺎ ﻗررﻧﺎ ان ﻧﻧﻬﻰ اﻟﺣﺳﺎب ﺑﻌد ﻋﺷر ﻣرات ﻓﺎﻧﻪ ﯾﻣﻛﻧﻧﺎ اﺳﺗﺧدام اﻻﻣر
fx_ : x2 50 next[x_,fun_]:=N[x-fun[x]/fun'[x]] a=50;Do[a=next[a,f],{10}] a 7.07107 : ﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ طﺑﺎﻋﺔ ﻛل ﺗﻘرﯾب ورﻗﻣﻪ وﻗﯾﻣﺗﺔ ﺳوف ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ next[x_,fun_]:=N[x-fun[x]/fun'[x]] a=50;Do[a=next[a,f];Print["approximateion", i ," " ,a],{i,1,10}] approximateion 1 25.5 approximateion 2 13.7304 approximateion 3 8.68597 approximateion 4 7.22119 approximateion 5 7.07263 approximateion 6 7.07107 approximateion 7 7.07107 approximateion 8 7.07107 approximateion 9 7.07107 approximateion 10 7.07107 a 7.07107
ﻟﻠداﻟﺔ. ﻫل ﻋﺷرة ﺗﻛﻔﻰ وﻟﻛن ﻻ ﺗﻛون داﺋﻣﺎ ﻓﻰ اﺣوال ﻛﺛﯾرة ﻣرات ﻛﺎﻓﯾﺔ. اﻟﺳؤال اﻻن ﻣﺗﻰ ﻧوﻗف اﻟﺗﻛرار . ﻓﺎن ﻋﺷرة ﻣرات ﻛﺎﻓﯾﺔf (x) x 50 2
: ﺑﻔرض اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ
٢٩٤
]g[x_]:=x-Sin[x ]g[0 0 ﻓﺎن ﻋﺷرة ﺗﻛ اررات ﺗﻛون ﻏﯾر ﻛﺎﻓﯾﺔ ﻟﻠﺣﺻول ﻋﻠﻰ ﺟذر ﻗرﯾب ﻣن اﻟﺻﻔر وﻗد ﯾﻛون25 ﺗﻛ اررات اﻓﺿل : ]f[x_]:=x-Sin[x ]]next[x_,fun_]:=N[x-fun[x]/fun'[x ]}a=1.0;Do[a=next[a,f],{25 a 0.0000384172 ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﻓﺎﻧﻧﺎ ﻧرﻏب ﻓﻰ اﺳﺗﻣرار اﻟﻌﻣﻠﯾﺔ اﻟﺗﻛ اررﯾﺔ ﺣﺗﻰ اﻟﺣﺻول ﻋﻠﻰ ﺗﻘدﯾر ﻗرﯾب ﻣن اﻟﻘﯾم اﻟﺻﺣﯾﺣﺔ .ﻗرﯾﺑﺔ طرق ﻛﺛﯾرة وﻻ واﺣدة ﻣﻧﻬم اﻻﻓﺿل وﺳوف ﻧﺗﻧﺎول اﻻﺳﻬل ﻋﻧدﻣﺎ ﺗﻛون ﻗرﯾﺑﺔ ) f (a iﻣن اﻟﺻﻔر ﯾﻛون ﻟدﯾﻧﺎ رﻗم ﻗرﯾب ﻣن اﻟﺻﻔر :
ﻓﺳوف ﺗﺳﺗﻣر اﻟﻌﻣﻠﯾﺔ اﻟﺗﻛ اررﯾﺔ ﺣﺗﻰ :
| f (a i ) | اﻟﺳؤال اﻻن ﻛﯾف ﻧﻛﺗب اﻟﺣﻠﻘﺔ واﻟﺗﻰ ﺗﻘف ﻋﻧد اﺧﺗﺑﺎر ﻫذا اﻟﺷرط ؟ ﻋﻧد اﺳﺗﺧدام اﻻﻣر Doﻓﺎن ﻋدد ﻣرات اﻟﺗﻛ اررات ﺗﻛون ﺛﺎﺑﺗﺔ ﻋﻧدﻣﺎ ﺗﺑدا اﻟﺣﻠﻘﺔ .ﻧﺣن ﻧﺣﺗﺎج اﻟﻰ اﻣر ﺟدﯾد وﻫوWhile
واﻟذى ﺳﺑق ان ﺗﻧﺎوﻟﻧﺎﻩ. 2
fx_ : x 50 epsilon=.001 0.001 ]]next[x_,fun_]:=N[x-fun[x]/fun'[x ]]a=50;While[Abs[f[a]]>epsilon,a=next[a,f a 7.07107 وﯾﻣﻛن اﺧﺗﺻﺎر اﻟﺑرﻧﺎﻣﺞ ﻛﺎﻟﺗﺎﻟﻰ :
fx_ : x2 50 =findRoot[fun_,init_,eps_]: Module[{a=init},While[Abs[fun[a]]>eps, ]]a=N[a-fun[a]/fun'[a ;] ]a ]findRoot[f,50,.001 7.07107 ﺑﻔرض اﻧﻧﺎ ﻧرﻏب ﻓﻰ ﻣﻌرﻓﺔ ﻛم ﻋدد اﻟﺗﻛ اررات اﻟﺗﻰ ﻧﺣﺗﺎﺟﻬﺎ ﻟﻠﺣﺻول ﻋﻠﻰ اﻻﺟﺎﺑﺔ .واﺣد ﻣن اﻟطرق ﻫو ادﺧﺎل اﻻﻣر Printﻟﻣﻌرﻓﺔ اﻟﻘﯾﻣﺔ ﻓﻰ ﻛل ﻣرة ﺧﻼل اﻟﺣﻠﻘﺔ . ٢٩٥
fx_ : x2 50 =findRoot[fun_,init_,eps_]: Module[{a=init},While[Abs[fun[a]]>eps, ;]Print["a=",a ]]a=N[a-fun[a]/fun'[a ;] ]a ]findRoot[f,50,.001 50 25.5 13.7304 8.68597 7.22119 7.07263
=a =a =a =a =a =a
7.07107 ﺑﺣﺳﺎب ﻋدد اﻟﺧطوط ﻧﺟد ان اﻟداﻟﺔ ﺗﻘﺗرب ﺑﻌد ﺳﺗﺔ ﺗﻛرارات )ﺗذﻛر ان اﻟﻘﯾﻣﺔ اﻟﻣﺑدﺋﯾﺔ ﻟـ aﻓﻰ اﻟﺳطر اﻻول( ﻻﺧﺗﺻﺎر اﻛﺑر ﻟﻠﺑرﻧﺎﻣﺞ ووﺿﻊ ﻋدد اﻟطرق ﻓﻘط ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : 2
fx_ : x 50
=findRoot[fun_,init_,eps_]: Module[{a=init,count=0},While[Abs[fun[a]]>eps, ;count=count+1 ]]a=N[a-fun[a]/fun'[a ;] ]}{a,count ]findRoot[f,50,.001 }{7.07107,6 7.07107 وﻻﯾزال ﻫﻧﺎك ﻣﺷﻛﻼت ﻓﻰ ﻋﻧد ﺗطﺑﯾق طرﯾﻘﺔ ﻧﯾﺗوﺗن ﻓﺎﻟﻣﺷﻛﻠﺔ اﻻوﻟﻰ ﻫﻰ ان ﻫﻧﺎك اﻣﻛﺎﻧﯾﺔ اﻟﺣﺻول ﻋﻠﻰ
ﻣﺷﺗﻘﺔ ﻟﻠداﻟﺔ ﻣﺳﺎوﯾﺔ ﻟﻠﺻﻔر وﻫﻧﺎ ﻧﺣﺻل ﻋﻠﻰ رﺳﺎﻟﺔ ﺧطﺎ .واﻟﻣﺷﻛﻠﺔ اﻟﺛﺎﻧﯾﺔ واﻟـﺗﻰ ﺗﺣدث ﻋﻧد اﯾﺟﺎد اﻟﺟذر
ان اﻟﻣﺷﺗﻘﺔ ﻟﻠداﻟﺔ ﺻﻌﺑﺔ او ﻣن اﻟﺻﻌب ﺣﺳﺎﺑﻬﺎ .اﻟﻣﺛﺎل اﻟﺑﺳﯾط ﺟدا ﻟذﻟك ﻫو ﻓﻰ اﻟداﻟﺔ| |x+3وﻫو ﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻟﻬﺎ .واﺣد ﻣن اﻟطرق ﻟﺣل ﻫذﻩ اﻟﻣﺷﻛﻠﺔ ﻫو اﺳﺗﺧدام اﻻﺷﺗﻘﺎق اﻟﻌددى ﺣﯾث ﯾﺗم ﺣﺳﺎب اﻟﻣﺷﺗﻘﺔ ﻣن اﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ :
) f (a k ) f (a k 1 a k a k 1
وﯾﺗم ﺣﺳﺎب ﺟذر اﻟﻣﻌﺎدﻟﺔ f (x) 0 ﺑﺎﺳﺗﺧدام طرﯾﻘﺔ اﻟﻘﺎطﻊ secantﻣن اﻟﻌﻼﻗﺔ اﻟﺗﺎﻟﯾﺔ :
a i1 a i f (aai )i fai(a1i 1 ) f (a i ),i 1, 2,...
٢٩٦
. ﻗﯾم اﺑﺗداﺋﯾﺔ ﯾﺗم ﺗﺣدﯾدﻫﺎx 0 , x1 ﺣﯾث
f (x) | x 3 | ﺑﻔﺮض اﻧﻨﺎ ﻧﺮﻏﺐ ﻓﻰ اﯾﺠﺎد اﻟﺠﺬر ﻟﻠﺪاﻟﺔ -3واﻟﺗﻰ ﺟذرﻫﺎ ﻫو :ﺑﺎﺳﺗﺧدام اﻻﺳﻠوب اﻟﺳﺎﺑق ﻓﻰ طرﯾﻘﺔ ﻧﯾوﺗن f[x_]:=Abs[x+3] findRoot[fun_,init_,eps_]:= Module[{a=init},While[Abs[fun[a]]>eps, a=N[a-fun[a]/fun'[a]] ]; a] findRoot[f,-1.8,10^(-10)] General ::spell1 : Possible spelling error : new symbol name "findRoot " is similar to existing symbol "FindRoot ". More…
1.8
1.2 Abs1.2
: اﻻن ﺳوف ﻧﺳﺗﺧدم اﻟﺻﯾﻐﺔ اﻟﺗﻘرﯾﺑﯾﺔ ﻟﻣﺷﺗﻘﺔ اﻟداﻟﺔ. اى اﻧﻧﺎ ﻟم ﻧﺣﺻل ﻋﻠﻰ اﺟﺎﺑﺔ وﺗم ارﺳﺎل رﺳﺎﻟﺔ f[x_]:=Abs[x+3] secant[f_,a_,b_]:= Module[{x1=a,x2=b}, While[Abs[f[x2]]>10^-10, df=(f[x2]-f[x1])/(x2-x1); {x1,x2}={x2,x2-f[x2]/df} ]; x2] N[secant[f,-3.1,-1.8]]
-3. .-3 اى اﻋطت ﻗﯾﻣﺔ اﻟﺟذر : اﻻن ﺳوف ﻧطﺑق اﻟطرﯾﻘﺔ ﻋﻠﻰ ﻣﺛﺎﻟﻧﺎ:ﺗطﺑﯾق اﻟطرﯾﻘﺔ ﻋﻠﻰ اﻟداﻟﺔ
f (x) x 2 50 . وﻗد ﺣﺻﻠن ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﺎﺋﺞ اﻟﺳﺎﺑﻘﺔ findRoot[f,50,.001] {7.07107,6}
fx_ : x2 50 secant[f_,a_,b_]:= Module[{x1=a,x2=b}, While[Abs[f[x2]]>10^-10, ٢٩٧
;)df=(f[x2]-f[x1])/(x2-x1 }{x1,x2}={x2,x2-f[x2]/df ;] ]x2 ]]N[secant[f,40,50
7.07107
) (٣-٥اﻟﺗﻛﺎﻣل Integratio
ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺣﺳﺎب اﻧواع ﻋدﯾدة ﻣن اﻟﺗﻛﺎﻣﻼت ﻟدوال او ﺗﻌﺑﯾرات ﻣﺛل ﻛﺛﯾرات اﻟﺣدود واﻟدوال اﻻﺳﯾﺔ واﻟﻠوﻏﺎرﯾﺗﻣﯾﺔ واﻟﻣﺛﻠﺛﯾﺔ ...اﻟﺦ وﻛذﻟك اﻟﺗﻛﺎﻣﻼت اﻟﻣﺣدودة ﺳواء ﻛﺎن ﺣدود اﻟﺗﻛﺎﻣل اﻋداد ﺛﺎﺑﺗﺔ او دوال . ﯾﺗم ذﻟك ﺑﺎﻻﻣر ] Integrate[f[x,]xواﻟذى ﯾﺣﺳب
b
f (x) dx
وﯾﻣﻛن اﺳﺗﺧدام اﻟرﻣزﯾن
f (x) dx
ﺑﯾﻧﻣﺎ اﻻﻣر ]} Integrate[f[x,],{x,a,bﯾﺣﺳب
وذﻟك ﻣن اﻟﻘﺎﺋﻣﺔ BasicInput
a
واﻟﺗﻰ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ وذﻟك ﺑﺎﻟذﻫﺎب اﻟﻰ اﻟﻘﺎﺋﻣﺔ Fileﻣن ﻧﺎﻓذة اﻟﺑرﻧﺎﻣﺞ ﺛم اﺧﺗﯾﺎر paletteوﻣﻧﻬﺎ ﻧﺧﺗﺎر BasicInputﻛﻣﺎ ﻫو ﻣوﺿﺢ ﻓﯾﻣﺎ ﯾﻠﻰ :
٢٩٨
ﻓﻧﺣﺻل ﻋﻠﻰ اﻟﻘﺎﺋﻣﺔ BasicInputﻛﻣﺎ ﯾﻠﻰ :
٢٩٩
ﻋﻣوﻣﺎ اذا ﻛﺎن اﻟﻣﺗﻐﯾر اﻟﻣﺳﺗﻘل ﻏﯾر xﻓﺎن اﻣر اﻟﺗﻛﺎﻣل ﺳوف ﯾﺻﺑﺢ ]Integrate[expression,variable ﺣﯾث ﯾﺣﺎول اﻟﺑرﻧﺎﻣﺞ اﯾﺟﺎد اﻟﺗﻛﺎﻣل ﻟـ expressionﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ . variable
اﻣﺛﻠﺔ اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
x dx
ﻫو :
x x ٣٠٠
2 x32 3 اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو
1 dx x
1
x x 2 x
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو x 7 +7x 7 x 7x
x 7 dx 7 x
x 7 x 7 x
25 x2 x8 7 Logx 7 8
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو
2
x (x+
2 ) dx x
2 2 x x x x 4 x52 x4 5 4
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو
٣٠١
x 2 3x x 2 4x 5 dx
x2 3x x 2 x 4x 5 1 Log5 4 x x2 2
x 3 ArcTan2 x
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
(sin 2 y+1) dyﻫو : 2
Sin y 1 y
Sin2 y2 y 2 اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
cos 2 y-1 dyﻫو : 2
Cos y 1 y
Cos2 y2 y 2
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ t
dt
t
e
ﻫو :
t
e
t
t
t
2e Loge ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن ﻻ ﯾﻌطﻰ اﻟﺑرﻧﺎﻣﺞ ﻗﯾﻣﺔ ﺻرﯾﺣﺔ ﻟﻠﺗﻛﺎﻣل ﻛﻣﺎ ﻓﻰ اﻻﻣﺛﻠﺔ اﻟﺗﺎﻟﯾﺔ :
٣٠٢
اﻣﺛﻠﺔ اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو
sin
1 dx x+2
2
1 x Sinx2 2 3 Tanx ArcTan 2
6 اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو sin x lnx dx Sin[x]Log[x]x
CosIntegral[x]-Cos[x] Log[x] : ( ﺣﯾثcosine integral function)Ci(z) واﻟﺗﻰ ﺗظﻬر ﻓﻰ اﻟﻣﺧرج ﺗﻣﺛل اﻟداﻟﺔCosIntegral[x] اﻟداﻟﺔ z
cot cos t 1 Ci(z) dt ln z dt t t 0 : ﺣﯾث
ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺗﻌرﯾف. 0.577216 واﻟذى ﺗﻘرﯾﺑﺎ ﯾﺳﺎوىEuler's constant ﺗﻣﺛل . EulerGamma(Eulerconstant) ? EulerGamma ?EulerGamma
٣٠٣
EulerGamma is Euler's constant gamma, with numerical value approximately equal to 0.577216. More… اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو
1 2+sin x dx
1 x 2 Sinx
2 ArcTan
12Tan x 2 3
3
aa1
x x; Sinx 2
Short[aa1] ArcTan 1 1 1
3 . وذﻟك ﻟﻠﺣﺻول ﻋﻠﻰ ﺟزء ﻣن اﻟﻧﺗﺎﺋﺞShort اﻟﺗﻛﺎﻣل طوﯾل ﻓﻰ ﻫذا اﻟﻣﺛﺎل وﻟذﻟك اﺳﺗﺧدم اﻻﻣر : اﯾﺿﺎ اﻟﺑرﻧﺎﻣﺞ ﻗﺎدر ﻋﻠﻰ ﺣﺳﺎب اﻟﺗﻛﺎﻣل اﻟﻣﺣدود وذﻟك ﺑﺎﻻﻣر ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰexpression واﻟذى ﯾﻛﺎﻣلIntegrate[expression,{variable,lowerlimit,uperlimit}]
. uperlimit اﻟﻰlowerlimit واﻟﺗﻘدﯾر ﻣنVariable
اﻣﺛﻠﺔ اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
: ﻫو
2
1
2
1
1 dx 1+(x-1)2
1 x 1 x 12
4 اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ ٣٠٤
6
eu duﻫو : 4
6
Expu u 4
4 1 2 اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ 20
ﻫو :
2
(x-x )dx 10
20
x x2 x
10
6550 3
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ 20
1
(2y-1) dy
ﻫو :
10
1 y 2 y 1
20
10
1 39 Log 2 19
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ 20
dx
2-5x
e
ﻫو :
0
20
Exp2 5xx
0
1 100
5 98 اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
٣٠٥
1
sin(2x+1) dxﻫو : 0
1
Sin2x 1 x 0
2 Cos1 Sin12
ﺗﻘرﯾﺑﺎت ﻟﻠﺗﻛﺎﻣل اﻟﻣﺣدود ﻓﻰ ﺣﺎﻟﺔ ﻣﺎ اذا ﻛﺎن اﻟﺗﻛﺎﻣل اﻟﻣﺣدود ﻏﯾر ﺿرورى او ﻣن اﻟﻣﺳﺗﺣﯾل اﻟﺣﺻول ﻋﻠﯾﻪ ﯾﻣﻛن ﺣﺳﺎب ﺗﻘرﯾﺑﺎت ﻟﻠﺗﻛﺎﻣل اﻟﻣﺣدود ﺑﺎﺳﺗﺧدام اﻻﻣر ]} NIntegralse[f[x],{x,a,bاو اﺳﺗﺧدام Nاذا ﻛﺎن اﻟﺗﻛﺎﻣل ﻓﻰ اﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ .
اﻣﺛﻠﺔ اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
9x 3 13 dx x5
2
ﻫو :
1
x
9x3 13
x5
1
60 3916 3 32 Gamma 1 Gamma 7 6 3
4 1 1 9 , , , 3 2 3 13
13 Hypergeometric2F1
1 5 11 13 , , , 2 6 6 72
1 260
65
2 Hypergeometric2F1
2
39
اﻟﺘﻘﺮﯾﺐ ﺳﻮف ﯾﺘﻢ اﻟﺤﺼﻮل ﻋﻠﯿﮫ ﺑﺎﺳﺘﺨﺪام . N
x
1 9x3 13
x5
N
0
0.415279 +0.139897
٣٠٦
اﻟﺗﻛﺎﻣل ﻟﻠداﻟﺔ اﻟﺗﺎﻟﯾﺔ
e x 2cosx 3dxﻫو : 0
2 3 Expx Cosx x
Cosx3 x
x2
0
0
ﻧﻼﺣظ ان اﻟﺑرﻧﺎﻣﺞ اﺧرج اﻟﻣدﺧل ﻛﻣﺎ ﻫو اى ﻟم ﻧﺣﺻل ﻋﻠﻰ ﻧﺗﯾﺟﺔ .اﻻن ﺳوف ﻧرﺳم اﻟداﻟﺔ e x 2cosx 3 ﻓﻰ اﻟﻔﺗرة )(0, ﻧﻼﺣظ ان اﻟداﻟﺔ ﻧﺎﻋﻣﺔ وﻋﻠﻰ ذﻟك ﻓرﺻﺔ اﻟﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﺟﯾد ﻟﻠﺗﻛﺎﻣل ﻛﺑﯾر وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر. N
PlotExpx2Cosx3, x, 0, , PlotRange All 1 0.8 0.6 0.4 0.2
3
2
2.5
1.5
1
0.5
Graphics
N Expx2Cosx3x 0
0.694053
ﺗﻘرﯾﺑﺎت ﻟﻠﺗﻛﺎﻣل ﺑﺎﺳﺗﺧدام اﻟﺣزم اﻟﺟﺎﻫزة ﯾﻣﻛن ﺑﺎﺳﺗﺧدام اﻟﺣزم اﻟﺟﺎﻫزة اﻟﺣﺻول ﻋﻠﻰ ﺗﻘرﯾﺑﺎت ﻟﻠﺗﻛﺎﻣﻼت اﻟﺗﻰ ﺻﻌب اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﺑﺎﻻواﻣر اﻟﺳﺎﺑق . وﻻﺟراء ذﻟك ﻧﻘوم ﺑﺗﺣﻣﯾل اﻟﺣزﻣﺔ NumericalMathGaussianQuadrature
وﺗﻌﺗﻣد اﻟﻔﻛرة ﻋﻠﻰ اﻟﺣﺻول ﻣن اﻟﺑرﻧﺎﻣﺞ ﻋﻠﻰ ازواج اﻟﻘﯾم ) (x1 , w1 ),(x 2 , w 2 ),...,(x n , w n ﺑﺣﯾث ان : n
b
) f (x)dx w f (x i
i
i 1
٣٠٧
a
ﺣﯾث nﺗﺧﺗﺎر ﻣن ﻗﺑل اﻟﻣﺳﺗﺧدم ﻛﻣﺎ ﯾﻌطﻰ اﻟﺑرﻧﺎﻣﺞ اﻟدﻗﺔ ﻓﻰ اﻟﺣﺳﺎب .
7
2
ﺳوف ﻧﺷرح ﺧطوات ﻋﻣل اﻟﺑرﻧﺎﻣﺞ ﻣن ﺧﻼل ﺣﺳﺎب اﻟﺗﻛﺎﻣل x dx 3 2
1
وﺳوف ﻧرى اﻧﻧﺎ ﺳوف ﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺗﯾﺟﺔ ﺑﺎﻟﺿﺑط ﻟﻛن ﻫذا ﻻ ﯾﺣدث داﺋﻣﺎ . وﻓﯾﻣﺎ ﯾﻠﻰ ﺧطوت اﻟﺑرﻧﺎﻣﺞ : ﻧﻘوم ﺑﺗﺣﻣﯾل اﻟﺣزﻣﺔ NumericalMathGaussianQuadratureﻛﺎﻟﺗﺎﻟﻰ : `<<NumericalMath`GaussianQuadrature ﺛم ﻧﻘوم ﺑﺗﻌرﯾف اﻟداﻟﺔ ﻛﺎﻟﺗﺎﻟﻰ : 2
fx_ : x
ﺛم ﻧﺣﺻل ﻋﻠﻰ ازواج اﻟﻘﯾم :
) (x1 , w1 ),(x 2 , w 2 ),...,(x n , w n ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ واﻟذى اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻪ ﻫو: ]GaussianQuadratureWeights[n, a, b
ﻟﻣﺛﻠﻧﺎ ﺳوف ﻧﻌطﻰ ﻟﻬذا اﻻﻣر اﻻﺳم aa1ﺣﯾث ﺣدود اﻟﺗﻛﺎﻣل a,bو a 1, b 2, n 5
]aa1=GaussianQuadratureWeights[5, 1, 2 {{1.04691,0.118463},{1.23077,0.239314},{1.5,0.284444},{1. }}76923,0.239314},{1.95309,0.118463 اﻻﻣر اﻟﺗﺎﻟﻰ واﻟذى اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻪ ﻫو : ]GaussianQuadratureError[n, f, a, b و ﯾﻌطﻰ ﻟﻧﺎ اﻟﺧطﺎ ﻣن اﺳﺗﺧدام اﻟﺗﻘرﯾب : ﺣﯾث fاﻟداﻟﺔ اﻟﻣطﻠوب اﻟﺗﻛﺎﻣل ﻋﻠﯾﻬﺎ . ﻓﻰ ﻣﺛﺎﻟﻧﺎ ﻫذا اﻻﻣر ﯾﻛون ﻋﻠﻰ اﻟﺷﻛل اﻟﺗﺎﻟﻰ : ]GaussianQuadratureError[5, f, -3, 7 )&-0.0394497 (0 ﻧﺣول اﻻزواج ) (x1 , w 1 ),(x 2 , w 2 ),...,(x n , w nواﻟﻣﺳﻣﺎﻩ aa1ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ : ٣٠٨
اﻟﻰ اﻟﺻورة اﻟﺗﺎﻟﯾﺔ :
}} {{x1 , x 2 ,..., x n },{w1 , w 2 ,..., w n ﺗﺣت ﻣﺳﻣﻰ aa2ﺣﯾث :
]aa2=Transpose[aa1 {{1.04691,1.23077,1.5,1.76923,1.95309},{0.118463,0.239314 }},0.284444,0.239314,0.118463 ﻧﺳﺗﺧﻠص } {x1 , x 2 ,..., x nﻣن aa2ﺣﯾث ﺗﻣﺛل اﻟﻌﻧﺻر اﻻول ﻓﻰ اﻟﻘﺎﺋﻣﺔ aa2وذﻟك
ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ :
]]aa2[[1 }{1.04691,1.23077,1.5,1.76923,1.95309 ﻧﺳﺗﺧﻠص } {w 1 , w 2 ,..., w nﻣن aa2ﺣﯾث ﺗﻣﺛل اﻟﻌﻧﺻر اﻟﺛﺎﻧﻰ ﻓﻰ اﻟﻘﺎﺋﻣﺔ aa2وذﻟك
ﻣن اﻻﻣر اﻟﺗﺎﻟﻰ :
]]aa2[[2 }{0.118463,0.239314,0.284444,0.239314,0.118463
اﻻﻣر اﻟﺗﺎﻟﻰ واﻟﻣﺳﻣﻰ ffﻟﺣﺳﺎب :
) f (x1 ),f (x 2 ),...,f (x n ]]]ff=Map[f,aa2 [[1 }{1.09602,1.51478,2.25,3.13019,3.81456 اﻻﻣر اﻟﺗﺎﻟﻰ واﻟﻣﺳﻣﻰ aa4ﻟﺣﺳﺎب :
) w1f (x1 ),f (x 2 )w 2 ,..., w n f (x n aa4=aa2[[2]]*ff }{0.129838,0.362509,0.64,0.7491,0.451886 ﻟﺣﺳﺎب :
اﻻﻣر اﻟﺗﺎﻟﻰ n
) w f (x i
i
i1
اوﻻ :ﺑﺻﯾﻐﺔ اﻻدﺧﺎل : ]Apply[Plus,aa4 2.33333 ﺛﺎﻧﯾﺎ :ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ : ٣٠٩
2 2
x x 1
7 3
]N[% 2.33333
وﯾﻼﺣظ ان اﻟﻧﺗﯾﺟﺗﯾن ﻣﺗﺳﺎوﯾﺗﯾن ﻓﻰ ﻫذا اﻟﻣﺛﺎل ﺣﯾث : n
b
) f (x)dx w if (x i i 1
a
وﻟﯾس ﺷرط ان ﯾﺗﺳﺎوﯾﺎن ﻓﻰ ﻛل اﻻﺣوال وﯾﺟب ﻣﻼﺣظﺔ ان nاﺧﺗﯾﺎرﯾﺔ .وﺗﻔﯾد ﻫذﻩ اﻟطرﯾﻘﺔ ﻓﻰ اﺑﺣﺎث اﻟﻣﺎﺟﺳﺗﯾر واﻟدﻛﺗوراﻩ ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ ﻧﺗﺎﺋﺞ ﺗﻘرﯾﺑﯾﻪ ﻟﻛﺛﯾر ﻣن اﻟﺗﻛﺎﻣﻼت اﻟﺗﻰ ﻣن اﻟﺻﻌب اﻟﺣﺻول ﻋﻠﻰ ﻗﯾﻣﺔ ﻣﺿﺑوطﺔ ﻟﻬﺎ وﻗد ﺟرﺑﺗﻬﺎ ﻋن ﻧﻔﺳﻰ ﻓﻰ اﺑﺣﺎث ﻛﺛﯾرة . وﻟﻠﺣﺻول ﻋﻠﻰ ﻣﻌﻠوﻣﺎت اﻛﺛر ﯾﻣﻛن اﻟذﻫﺎب اﻟﻰ Help Browserﻣن Helpﻣن اﻟﻘﺎﺋﻣﺔ اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺑرﻧﺎﻣﺞ واﻟﺣﺻول ﻋﻠﻰ اﻟﻧﺎﻓذة اﻟﺗﺎﻟﯾﺔ وﺳوف ﻧﻌرف اﻛﺛر ﻣﻊ اﻣﺛﻠﺔ ﻛﺛﯾرة .
٣١٠
ﺣﺳﺎب اﻟﻣﺳﺎﺣﺎت Estimating Areas ﺑﻔرض ان ) y f (xداﻟﺔ ﻣوﺟﺑﺔ وﻣﺗﺻﻠﺔ ﻓﻰ اﻟﻔﺗرة ] [a, bوﺑﻔرض nﻋدد ﺻﺣﯾﺢ ﻣوﺟب . ﻓﺎذا ﻗﻣﻧﺎ ﺑﺗﻘﺳﯾم ] [a, bاﻟﻰ nﻣن اﻟﻔﺗرات اﻟﺟزﯾﺋﯾﺔ ﺑطول ﻣﺗﺳﺎوى وﺑﻔرض ان ] [x k 1 , x kﻫو طول اﻟﻔﺗرة
ba اﻟﺟزﺋﯾﺔ رﻗم . kاﻟطول ﻟﻛل ﻓﺗرة ﺟزﺋﯾﺔ ﯾﺳﺎوى [b a]/ nو n رﺳم y f (x), x a, x bﻋﻠﻰ اﻟﻣﺣور اﻟراﺳﻰ ﯾﻣﻛن ﺗﻘرﯾﺑﻬﺎ ﺑﺎﻟﻣﺟﻣوع اﻟﺗﺎﻟﻰ .
. x k a kاﻟﻣﺳﺎﺣﺔ اﻟﻣﺣددة ﻓﻰ
ba n ba n f (x ),S ) f (x k k1 light n n k 1 k 1
Sleft
اذا ﻛﺎﻧت ) f (xداﻟﺔ ﻣﺗزاﯾدة ﻓﻰ اﻟﻔﺗرة ] [a, bﻓﺎن Sliftﺳوف ﯾﻛون اﻟﺣد اﻻدﻧﻰ ﻟﻠﺗﻘرﯾب و Srightﺳوف ﯾﻛون اﻟﺣد اﻻﻋﻠﻰ ﻟﻠﺗﻘرﯾب واﻟﻌﻛس ﺻﺣﯾﺢ اذا ﻛﺎﻧت اﻟداﻟﺔ ﻣﺗﻧﺎﻗﺻﺔ .
اﻣﺛﻠﺔ ﺑﻔرض :
f (x) x 2 12x 1 اوﺟد ﺗﻘرﯾب ﻟﻠﻣﺳﺎﺣﺔ ﺗﺣت اﻟﻣﻧﺣﻧﻰ ﻟﻠداﻟﺔ f (x), x 2, x 5وذﻟك ﺑﺎﺳﺗﺧدام n=100ﺛم اوﺟد اﻟﻘﯾﻣﺔ اﻟﻣﺿﺑوطﺔ ﻟﻠﻣﺳﺎﺣﺔ .
اﻟﺣل : ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف اﻟداﻟﺔ fورﺳﻣﻬﺎ ﻓﻰ اﻟﻔﺗرة ][-1,13
fx_ : x2 12x 1 ]}Plot[f[x],{x,-1,13
٣١١
30 20
10
12
8
10
6
4
2 -10
Graphics
اﻟﻣﺷﺗﻘﺔ اﻻوﻟﻰ ﻟﻠداﻟﺔ ) f(xﻫﻰ ) f (x) 2(6 xوﻫﻰ ﻣوﺟﺑﺔ ﻓﻰ اﻟﻔﺗرة : ] [2,5وﻋﻠﻰ ذﻟك اﻟداﻟﺔ ﺗزاﯾدﯾﺔ ﻓﻰ اﻟﻔﺗرة ] . [2,5وﻋﻠﻰ ذﻟك ﺗﻘرﯾب ﻟﻠﻣﺳﺎﺣﺔ ﺗﺣت اﻟﻣﻧﺣﻧﻰ ﻓﻰ اﻟﻔﺗرة اﻟﻣﺷﺎر اﻟﯾﻬﺎ ﺣﯾث n=100ﻫو :
3 99 3 3 100 3 f (2 k ),S f (2 k ) light 100 k 0 100 100 k 1 100
Sleft
وﻛل ﻣﺟﻣوع ﯾﻣﻛن ﺣﺳﺎﺑﺔ اﻣﺎ ﺑﺻﯾﻐﺔ اﻻدﺧﺎل Sumاو ﺑﺎﻟﺻﯾﻐﺔ اﻟﻘﯾﺎﺳﯾﺔ ﺛم ﺗﻘرﯾب اﻟﻧﺗﯾﺟﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر . N 99
3 3 f2 k 100 k0 100 1795491 20000 ]N[% 89.7746 ]}3/100*Sum[f[2+(k*3)/100],{k,0,99
1795491 20000 ]N[% 89.7746
3 100 3 f2 k 100 k1 100 1804491 20000 ]N[% 90.2246 ]}3/100*Sum[f[2+(k*3)/100],{k,1,100 ٣١٢
1804491 20000 ]N[% 90.2246
ﻋﻣوﻣﺎ ﯾﻣﻛن ﺗﻌرﯾف اﻟداﻟﺔ f1,f2واﻟﺗﻰ ﺗﺣﺳب اﻟﻣﺟﻣوع:
(b a) n 1 )(b a (b a) n )(b a f (a k ),S f (a k ) light n k 0 n n k 1 n
Sleft
ﻋﻠﻰ اﻟﺗواﻟﻰ ﻟﻘﯾم ﻣﺧﺗﻠﻔﺔ ﻣن : f,a,b,n ]}f1[f_,{a_,b_},n]:=(b-a)/n*Sum[f[a+k*(b-a)/n],{k,0,n-1 ]}f2[f_,{a_,b_},n]:=(b-a)/n*Sum[f[a+k*(b-a)/n],{k,1,n ﻓﻌﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل :
fx_ : x2 12x 1. وﻗد ﺗم وﺿﻊ ﻧﻘطﺔ ﺑﻌد 1ﻓﻰ اﻟﻣﻌﺎدﻟﺔ اﻟﺳﺎﺑﻘﺔ ﺣﺗﻰ ﻻ ﻧﺣﺻل ﻋﻠﻰ اﻟﻧﺗﺎﺋﺞ اﻟﻧﻬﺎﺋﯾﺔ ﻓﻰ ﺻورة ﻛﺳور .
fx_ : x2 12x 1. ]f1[f,{2,5},100 89.7746 ]f2[f,{2,5},100 90.2246
اى ﺣﺻﻠﻧﺎ ﻋﻠﻰ ﻧﻔس اﻟﻧﺗﯾﺟﺔ اﻟﺳﺎﺑﻘﺔ .
ﺳوف ﻧﺳﺗﺧدم اﺳﻠوب اﺧر ﻓﻰ اﻟﺣﺳﺎب ﻛﺎﻟﺗﺎﻟﻰ : ﺳوف ﻧﻌرف اﻟداﻟﺔ :
fx_ : x2 10x 2. ﺛم
ﻧﺳﺗﺧدم f1,f2ﻓﻰ ﺣﺳﺎب :
(b a) n 1 )(b a (b a) n )(b a f (a k ),Slight f (a k ) n k 0 n n k 1 n ﻟﻘﯿﻢ n 2,4,8,24 ,...,29 512
٣١٣
Sleft
f1[f_,{a_,b_},n_]:=(b-a)/n*Sum[f[a+k*(b-a)/n],{k,0,n-1}] f2[f_,{a_,b_},n_]:=(b-a)/n*Sum[f[a+k*(b-a)/n],{k,1,n}] اﻟﻛﺑﯾرةn ﯾﺗﻘﺎرﺑﺎن ﻟﻘﯾمf1,f2 ﺳوف ﻧرى ان اﻟﺣد اﻻدﻧﻰ واﻟﺣد اﻻﻋﻠﻰ اﻟﺗﻘرﯾﺑﯾﯾن واﻟﻣﺣﺳوﺑﯾن ﻣن : : وذﻟك ﻣن اﻟﺟدول اﻟﺗﺎﻟﻰ 2
fx_ : x 12x 1. f1[f_,{a_,b_},n_]:=(b-a)/n*Sum[f[a+k*(b-a)/n],{k,0,n-1}] f2[f_,{a_,b_},n_]:=(b-a)/n*Sum[f[a+k*(b-a)/n],{k,1,n}]
aa2 Table2n, f1f, 2, 5, 2n, f2f, 2, 5, 2n, n, 1, 9; TableFormaa2, TableHeadings None, "n", "Lower", "Upper" n 2 4 8 16 32 64 128 256 512
Lower 77.625 84.0938 87.1172 88.5762 89.2925 89.6473 89.8239 89.912 89.956
Upper 100.125 95.3438 92.7422 91.3887 90.6987 90.3505 90.1755 90.0878 90.0439 : ﺳوف ﻧﺛﺑت ان
3 n 1 3 3 n 3 lim f (2 k ) lim f (2 k ) 90 n n k 0 n n n k 1 n
aa4
3 n1 3 f2 k Simplify n k0 n
9 1 5 n 20 n2 2 n2
3 n 3 aa5 f2 k Simplify n k1 n
٣١٤
9 1 5 n 20 n2 2 n2 Limit[aa4,n->] 90 Limit[aa5,n->] 90
. x=5 اﻟﻰx=2 ﻣنf(x) ﻫو اﻟﻘﯾﻣﺔ اﻟﺣﻘﯾﻘﯾﺔ ﻟﻠﻣﺳﺎﺣﺔ ﺗﺣت اﻟﻧﻣﺣﻧﻰ ﻟﻠداﻟﺔ90 اى ان : وﯾﻣﻛن ﺗﻌرﯾف اﻟﺑرﻧﺎﻣﺞ ﺑﺎﺳﻠوب اﺧر وذﻟك ﺑﺎﺳﺗﺧدام اﻟﺻﯾﻎ اﻟﻘﯾﺎﺳﯾﺔ
fx_ : x2 12x 1 b a n1 b a f1f_, a_, b_, n_ : N fa k
n
f2f_, a_, b_, n_ : N
k0 b a n
n
fa k k1
n
b a
n
aa2 Table2n, f1f, 2, 5, 2n, f2f, 2, 5, 2n, n, 1, 9; TableFormaa2, TableHeadings None, "n", "Lower", "Upper" n 2 4 8 16 32 64 128 256 512
Lower 77.625 84.0938 87.1172 88.5762 89.2925 89.6473 89.8239 89.912 89.956
Upper 100.125 95.3438 92.7422 91.3887 90.6987 90.3505 90.1755 90.0878 90.0439
Area Between Curves ﺣﺳﺎب اﻟﻣﺳﺎﺣﺔ ﺑﯾن ﻣﻧﺣﻧﯾﯾن
ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر. واﻟذي ﯾؤدى اﻟﻰ ﺗظﻠﯾل اﻟﻣﺳﺎﺣﺎت ﺑﯾن اﻟﻧﻣﺣﻧﯾﺎتFilledPlot ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر اﯾﺿﺎ ﻓﻰ ﺗﻠك اﻟﻣﺷﺎﻛل ﺳوف. ﻟﺗﺣدﯾد اﻟﻣﺳﺎﺣﺔ ﺑﯾن ﻣﻧﺣﻧﯾﯾن او اﻛﺛرNIntegrate واﻻﻣرIntegrate . Plot , NRoots , FindRoot ﻧﺳﺗﺧدم اواﻣر اﺧرى ﻣﺛل
٣١٥
اﻣﺛﻠﺔ
اوﺟد ﺑﺎﻟﺗﻘرﯾب اﻟﻣﺳﺎﺣﺔ اﻟﻣﺣﺻورة ﺑﯾن اﻟرﺳﻣﺗﯾن sin x,cos xﻓﻰ اﻟﻔﺗرة ][0,2 اﻟﺣل : ﺳوف ﻧرﺳم y cosx , y=sin xﻓﻰ اﻟﻔﺗرة ] . [0,2اﻟرﺳم ﻟﻠداﻟﺔ y sin xﺳوف ﯾﻛون ﺑﺧطوط ﻣﺗﻘطﻌﺔ . Plot[{Sin[x],Cos[x]},{x,0,2},PlotStyle{Dashing[{0.01}], ]}]GrayLevel[.01 1
0.5
6
4
5
3
2
1 -0.5
-1
Graphics وﻛﺑدﯾل ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر FilliedPlotواﻟﻣوﺟود ﻓﻰ اﻟﺣزم اﻟﺟﺎﻫزة FilledPlotﻓﻰ اﻟدﻟﯾل Graphicsواﻟذي ﯾؤدى اﻟﻰ ﺗظﻠﯾل اﻟﻣﺳﺎﺣﺎت ﺑﯾن اﻟﻣﻧﺣﻧﯾﺎت .ﺑﻌد ﺗﺣﻣﯾل اﻟﺣزم اﻟﺟﺎﻫزة ﻓﺎن اﻻﻣر FilledPlotﯾﺳﺗﺧدم ﻟﺗظﻠﯾل اﻟﻣﺳﺎﺣﺎت ﺑﯾن اﻟرﺳﻣﺗﯾن .ﻫﻧﺎ اﺳﺗﺧدﻣﻧﺎ اﻻﻣر FilledPlot
ﻟرﺳم y cosx , y=sin x
ﻓﻰ اﻟﻔﺗرة ]. [0,2
وﯾﻣﻛن وﺿﻊ ﺧﯾﺎر ﻟﻠون اﻟﺗظﻠﯾل واذا ﻟم ﯾوﺿﻊ ﯾﺿﻊ اﻟﺑرﻧﺎﻣﺞ ﻟون ازرق ﻻﻣﻊ .
`<< Graphics`FilledPlot FilledPlot[{Sin[x],Cos[x]},{x,0,2},PlotStyle{Dashing[{0 ]}.01}],GrayLevel[.01],Fills->GrayLevel
٣١٦
1
0.5
1
2
3
4
5
6
-0.5
-1
Graphics
sin x cos x ﻻﯾﺟﺎد اﻟﺣد اﻻدﻧﻰ واﻟﺣد اﻻﻋﻠﻰ ﻟﻠﺗﻛﺎﻣل ﻻ ﺑد ﻣن ﺣل اﻟﻣﻌﺎدﻟﺔ اﻋطت ﺣﻠﯾن واﺣد ﻓﻰ اﻟﻔﺗرة اﻟﻣطﻠوﺑﺔ واﻻﺧر ﺧﺎرج اﻟﻔﺗرة وﻟذﻟك ﺳوف ﻧﺎﺧذSolve ﺳوف ﻧﺟد ان. x ﻓﻰ
4 اﻟﺣل اﻟذي ﻓﻰ اﻟﻔﺗرة وﻫو 4
: 4, 5
ﻫﻣﺎ
[0,2]
ﻓﻰ اﻟﻔﺗرة
sin x cos x ﺳوف ﻧﺟد ان
Solve[Sin[x]Cos[x],x] Solve ::ifun : Inverse functions are being used by Solve , so some solutions may not be found ; use Reduce for complete solution information . More…
x
Sin
4
3 , x 4 4
Cos
4
: ﺳوف ﻧﺛﺑت ذﻟك ﻣﻣﺎ ﯾﺎﺗﻰ
True
Sin
5 5 Cos 4 4
True : وﻋﻠﻰ ذﻟك اﻟﻣﺳﺎﺣﺔ اﻟﻣطﻠوﺑﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﻛﺎﻟﺗﺎﻟﻰ
/ 4
5 / 4
(cos(x) sin(x))dx 0
2
(sin(x) cos(x))dx
/ 4
5 / 4
٣١٧
(cos(x) sin(x))dx
0 x / 2
ﻓﻰ اﻟﻔﺗرة
/ 2 x 4 /5
ﻓﻰ اﻟﻔﺗرة
aa1 IntegrateCosx Sinx, x, 0, 1
4
sin x cos x و
2
aa2 IntegrateSinx Cosx, x, 2
cos x sin x ﺣﯾث
4
,
5 4
2
aa3 IntegrateCosx Sinx, x, 1
5 , 2 4
2
: وﻓﯾﻣﺎ ﯾﻠﻰ اﻟﻣﺳﺎﺣﺔ اﻟﻣﺣﺳوﺑﺔ aa1+aa2+aa3
4
2
اﻣﺛﻠﺔ : ﺑﻔرض
f (x)
3 5 x 3x 4 11x 3 18x 2 12x 1 10
g(x) 4x 3 28x 2 56x 32 f (x),g(x) اوﺟد ﺗﻘرﯾب ﻟﻠﻣﺳﺎﺣﺔ اﻟﻣﺣﺻورة اﻟﻣﺣﺻورة ﺑﯾن اﻟرﺳﻣﺗﯾن : اﻟﺣل وذﻟك ﻻﯾﺟﺎد ﻧﻘط اﻟﺗﻘﺎطﻊ ﻟﻠرﺳﻣﺗﯾن وﻟﻛن ﯾﻣﻛنNRoots ﺑﻌد ﺗﻌرﯾف اﻟداﻟﺗﯾن ورﺳﻣﻬم ﺳوف ﻧﺳﺗﺧدم ﻫﻧﺎ اﻻﻣر . اذا اﻣﻛن ﻟﻠﺣﺻول ﻋﻠﻰ ﺣل ﻣﺿﺑوطSolve ﻓﻰ ﺑﻌض اﻻﺣﯾﺎن اﺳﺗﺧدام اﻻﻣر Clear[f,g]
fx_ : 3 x5 3x4 11x3 18x2 12x 1 10 gx_ : 4x3 28x2 56x 32 ٣١٨
Plot[{f[x],g[x]},{x,]}]}1,5},PlotStyle{GrayLevel[0],Dashing[{0.01 20 15 10 5 5
3
4
2
-1
1 -5 -10 -15
]aa4=NRoots[f[x]g[x],x x0.772058||x1.5355 -3.57094 ||x1.5355 +3.57094 ||x2.29182||x3.86513 ﻣن اﻟﻣﺧرج اﻟﺳﺎﺑق ﯾوﺟد ﺣﻠﯾن ﺑﻬﻣﺎ ﺟزء ﺗﺧﯾﻠﻰ ﺳوف ﻧﻬﻣﻠﻬم .اﻟﺣﻠول اﻟﺣﻘﯾﻘﯾﺔ ﺳوف ﻧﺳﺗﺧﻠﺻﻬم ﻣن aa4 ﺗﺣت اﻻﺳﻣﺎء aa5,aa6,aa7 ]]aa5=aa4[[1,2 0.772058 ]]aa5=aa4[[4,2 2.29182 ]]aa5=aa4[[5,2 3.86513 ﺑﺎﺳﺗﺧدام ﺟذور اﻟﻣﻌﺎدﻟﺔ ) f(x)=g(xواﻟرﺳم ﻧﺟد ان ) f(x)>g(xﻋﻧدﻣﺎ :
0.772958 x 2.29182 و ) g(x)>f(xﻋﻧدﻣﺎ :
2.29182 x 3.86513
وﻋﻠﻰ ذﻟك ﺗﻘرﯾب ﻟﻠﻣﺳﺎﺣﺔ ﺗﺣت اﻟﻣﻧﺣﻧﻰ ﺑﯾن اﻟرﺳﻣﺗﯾن f,gﯾﻣﻛن
اﻟﺣﺻول ﻋﻠﯾﻪ ﺑﺎﻟﺗﻛﺎﻣل اﻟﺗﺎﻟﻰ : 3.865
(g[x] f[x])dx
2.29182
2.29182
(f[x] g[x])dx
0.772958
ﻫذا اﻟﺗﻛﺎﻣل ﺳوف ﯾﺣﺳب ﺑﺎﻻﻣر Integrateاو اﻻﻣر . NIntegrateﻓﻰ ﻛﻼ اﻟﺣﺎﻟﺗﯾن اﻟﻧﺗﯾﺟﺔ واﺣدة ]}aa6=Integrate[(f[x]-g[x]),{x,.772058,2.29182 5.26912 ]}aa7=Integrate[(g[x]-f[x]),{x,2.29182,3.86513 6.92599 aa6+aa7 12.1951
]]}aa8=N[Integrate[(f[x]-g[x]),{x,.772058,2.29182 ٣١٩
5.26912 ]]}aa9=N[Integrate[(g[x]-f[x]),{x,2.29182,3.86513 6.92599 aa6+aa7 12.1951
اﻻن ﺳوف ﻧذﻛر اﻟﺣﺎﻟﺔ اﻟﺗﻰ ﻓﯾﻬﺎ اﻟدوال ﻟﯾﺳت ﻛﺛﯾرة اﻟﺣدود .
اﻣﺛﻠﺔ ﺑﻔرض :
),g(x) 4cos(x 2
Cos x
2
)f (x) e (x 2
اوﺟد ﺗﻘرﯾب ﻟﻠﻣﺳﺎﺣﺔ اﻟﻣﺣﺻورة ﺑﯾن اﻟرﺳﻣﺗﯾن ) f (x),g(xﻓﻰ اﻟﻔﺗرة ][0,4 اﻟﺣل : ﺗﻠك اﻟدوال ﻟﯾﺳت ﻛﺛﯾرة اﻟﺣدود وﻋﻠﻰ ذﻟك ﺳوف ﻧﺳﺗﺧدم اﻻﻣر FindRootﺑدﻻ ﻣن NRootوذﻟك ﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﻟﻧﻘﺎط اﻟﺗﻘﺎطﻊ ﻟﻠرﺳﻣﺗﯾن واﻟﺗﻰ ﺗﺣﻘق اﻟﻣﻌﺎدﻟﺔ ) . f(x)=g(xﻣرة اﺧرى ﺳوف ﻧﺣﺗﺎج اﻟﻰ ﻧﻘﺎط ﻣﺑدﺋﯾﺔ ﻟﺣل اﻟﻣﻌﺎدﻟﺔ .ﻟذﻟك ﻧﺣﺗﺎج اﻟﻰ رﺳم اﻟداﻟﺗﯾن ﻟﻠﺣﺻول ﻋﻠﻰ ﻗﯾم ﺗﻘرﯾﺑﯾﺔ ﻟﻠﻧﻘﺎط اﻟﺗﻰ ﺗﺗﻘﺎطﻊ ﻋﻧدﻫﺎ اﻟداﻟﺗﯾن .
fx_ : Expx 22Cos x ]g[x_]:=4Cos[x-2 Plot[{f[x],g[x]},{x,0,4},PlotStyle{GrayLevel[0],GrayLeve ]}]l[.5 4 3 2 1
4
3
2
1 -1
Graphics
ﺑﻣﺟرد اﻟﺣﺻول ﻋﻠﻰ اﻟﻘﯾم اﻟﻣﺑدﺋﯾﺔ ﻣن اﻟرﺳم ﻧﺳﺗﺧدم اﻻﻣر FindRootﻟﻠﺣﺻول ﻋﻠﻰ ﺗﻘرﯾب ﻟﺣل ﻟﻠﻣﻌﺎدﻟﺔ ٣٢٠
) f(x)=g(xواﻟﻧﺗﯾﺟﺔ ﻓﻰ aa3,aa4ﻋﻠﻰ اﻟﺗواﻟﻰ . وﺗﺳﻣﻰ aa5,aa6 aa3,aa4 اﻟﻘﯾم ﺳوف ﺗﺳﺗﺧﻠص ﻣن وﺳوف ﻧﺣﺻل ﻋﻠﻰ ﺗﻘرﯾب ﻟﻠﻣﺳﺎﺣﺔ ﺑﺎﺳﺗﺧدام اﻻﻣر . NIntegrate ]}aa3=FindRoot[f[x]g[x],{x,1.06 }{x1.06258 ]}aa4=FindRoot[f[x]g[x],{x,2,93 }{x2.93742 ]]aa5=aa3[[1,2 1.06258 ]]aa6=aa4[[1,2 2.93742 ﻣن اﻟرﺳم ﻧﺟد ان اﻟﻣﻧﺣﻧﻰ اﻟﺧﺎص ﺑﺎﻟداﻟﺔ ) g(xﻓوق اﻟﻣﻧﺣﻧﻰ اﻟﺧﺎص ﺑﺎﻟداﻟﺔ ) . f(xوﻋﻠﻰ ذﻟك اﻟﻣﺳﺎﺣﺔ اﻟﺗﻘرﯾﺑﯾﺔ ﺳوف ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﻣن اﻟﺗﻛﺎﻣل اﻟﺗﺎﻟﻰ : 2.937
(g[x] f[x])dx
1.063
واﻟﺗﻰ ﯾﺗم ﺣﺳﺎﺑﺔ ﺑﺎﺳﺗﺧدام NIntergrate:ﻛﺎﻟﺗﺎﻟﻰ : ]}NIntegrate[g[x]-f[x],{x,aa5,aa6 4.17413
اﻟﺗﻛﺎﻣﻼت اﻟﺛﻧﺎﺋﯾﺔ Double Integrals ﯾﺳﺗﺧدم اﻻﻣر ]} Integrate[f[x,y],{x,a,b},{y,c,dﻟﺣﺳﺎب
b d
f (x, y)dydx
.وﯾﻣﻛن ﺣل اﻟﺗﻛﺎﻣل
a c
اﻟﺳﺎﺑق ﻋددﯾﺎ ﺑﺎﺳﺗﺧدام اﻻﻣر ]]}. N[Integrate[f[x,y],{x,a,b},{y,c,d
اﻣﺛﻠﺔ اﺣﺳب اﻟﺗﻛﺎﻣﻼت اﻟﺗﺎﻟﯾﺔ : 5 10
dxdy
x y 5 10 x y x y
x6 y11 66 ٣٢١
12 20 6
2
6
2
y x dxdy 5 3
12
5
20 6 2
y x x y
3
40723444937 3
N[%]
1.35745 1010
12 y
4
y x dxdy 5 y2
y4 6 2 2 y x x y 5 y 12
1384412570338355646802 247 N[%]
5.60491 1018
/ 4 / 2
(ysin x xsin y)dydx 0
4
0
0
2
ySinx xSiny yx
0
1 3 2 2 2 32
ﻋﻧد اﻟرﻏﺑﺔ ﻓﻰ اﻟﺣﺻول ﻋﻠﻰ ﻗﯾم ﺗﻘرﯾﺑﯾﺔ ﻟﻠﺗﻛﺎﻣل او ﻋﻧد ﻋدم ﻣﻘدرة اﻟﺑرﻧﺎﻣﺞ ﻋﻠﻰ اﯾﺟﺎد اﻟﻘﯾﻣﺔ اﻟﻣﺿﺑوطﺔ ﯾﻣﻛن : اﺳﺗﺧدام اﻻﻣر N[Integrate[f[x,y],{x,a,b},{y,c,d}]
٣٢٢
اﻣﺛﻠﺔ : اوﺟد اﻟﺗﻛﺎﻣﻼت اﻟﺗﺎﻟﯾﺔ
cos(x
2
y2 )dydx
0 0
0
Cosx2 y2
yx
0
1 2 2 FresnelC 2 FresnelS 2 2
: ﻋﻠﻰ اﻟﺗواﻟﻰFresnel ﻋﺑﺎرة ﻋن ﺗﻛﺎﻣﻼتFresnelC وCresnelS اﻟﻣﺻطﻠﺣﺎن
x
x
1 1 C(x) cos( t 2 )dt,S(x) sin( t 2 )dt 2 2 0 0 ?FresnelC
FresnelCz gives the Fresnel integral Cz. More… ?FresnelS FresnelSz gives the Fresnel integral Sz. More… : ﺗﻘرﯾب اﻟﺗﻛﺎﻣل ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻪ ﻛﺎﻟﺗﺎﻟﻰ N[%] 1.24012
1 1
sin(e
xy
)dydx
0 0
1
1
SinExpx y 0
yx
0
1 SinIntegral1 SinIntegralx
0
x
x
SineIntegral واﻟذى ﯾظﻬر ﻓﻰ اﻟﻧﺗﯾﺟﺔ ﯾﻣﺛلSinIntegral اﻟﻣﺻطﻠﺢ x
sin t dt t 0
?SinIntegral
٣٢٣
SinIntegralz gives the …sine integral function Siz. More ]]}N[Integrate[Sin[Exp[x y]],{x,0,1},{y,0,1 0.917402
اﻟﺗﻛﺎﻣﻼت اﻟﺛﻼﺛﯾﺔ ﯾﺳﺗﺧدم اﻻﻣر ]} Integrate[f[x,y,z],{x,a,b},{y,c,d},{z,e,rﻟﺣﺳﺎب
r d b
f (x, y,z)dxdydz
.وﯾﻣﻛن
e c a
ﺣل اﻟﺗﻛﺎﻣل اﻟﺳﺎﺑق ﻋددﯾﺎ ﺑﺎﺳﺗﺧدام اﻻﻣر ]}.N[ Integrate[f[x,y,z],{x,a,b},{y,c,d},{z,e,r
اﻣﺛﻠﺔ اﺣﺳب اﻟﺗﻛﺎﻣﻠل اﻟﺗﺎﻟﻲ : 8 5 1 4 6 5
x y z dxdydz 3 2 0
1
5
8
4 6 5 x y z x y z 0
2
3
194186531 2
]N[%
9.70933 107
) (٤-٥اﻟﻣﺗﺳﻠﺳﻼت Series ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ اﺧﺗﺑﺎر اﻟﻣﺗﺳﻠﺳﻠﺔ ﻫﻠﻰ ﻫﻰ ﺗﻘﺎرﺑﯾﺔ ام ﻻ ﺑطرق ﻣﺧﺗﻠﻔﺔ ﺑﻣﺎ ﻓﯾﻬﺎ اﻟرﺳم .ﻋﻣوﻣﺎ اﻻﻣر : n2
]
2
Sum[f[x],n ...nﯾﺣﺎول ﺣﺳﺎب اﻟﻣﺟﻣوع ) f (k 1
k n1
٣٢٤
ﺣﯾث n 2ﻣن اﻟﻣﻣﻛن ان ﺗﻛون .
ﻣﺛﺎل : Converges اﺧﺗﺑر اﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﺗﺎﻟﯾﺔ ﻣن ﻧﺎﺣﯾﺔ اﻟﺗﻘﺎرب
k
2
k
k 1
: اﻟﺣل ﺳوف ﻧﺑدا. ﺗﻘﺎرﺑﯾﺔ ام ﻻ
k
2
k
ﻟﺗﻘدﯾر ﻣﺎ اذا ﻛﺎﻧت اﻟﻣﺗﺳﻠﺳﻠﺔIntegral test ﺳوف ﻧﺳﺗﺧدم اﺧﺗﺑﺎر اﻟﺗﻛﺎﻣل
k 1
: ﺑﺣﺳﺎب اﻟﺗﻛﺎﻣل Simplify ﺑﺎﺳﺗﺧدام اﻻﻣرaa1 ﺛم ﺗﺑﺳﯾطaa1 وﺗﺳﻣﯾﺔ اﻟﻧﺗﺎﺗﺞIntegrate وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر
n
1
k dk 2k
. aa2 وﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞ
aa1
n
1
k k 2k
Ifn 1,
21n 2 2n 1 Log2 n Log4 , Log22
Integrate2k k, k, 1, n, Assumptions n 1 aa2=Simplify[aa1] 21n 2 2n 1 Log2 n Log4 Ifn 1, , Log22
Integrate2k k, k, 1, n, Assumptions n 1
Lim . n
n
1
k dk اﻻن ﯾﺗم ﺣﺳﺎب 2k
: ﺳوف ﻧﺟد ان
Lim n
n
1
k 1 ln 2 dk 1.76203. k 2 2(ln 2)2
Limit[aa2,n] 1 Log2
2 Log22 N[%] 1.76203
٣٢٥
اﻻن ﺳوف ﯾﺗم ﺣﺳﺎب
k dk 2k
1
k k 2k
1
aa3
1 Log2 2 Log22 وﻋﻠﻰ ذﻟك ﻣن اﺧﺗﺑﺎر اﻟﺗﻛﺎﻣل ﯾﻣﻛن اﻟﻘول ان اﻟﻣﺗﺳﻠﺳﻠﺔ
k k
2
ﺗﻘﺎرﺑﯾﺔ .
k 1
اﻻن ﺳوف ﻧﺳﺗﺧدم اﻻﻣر Sumﻓﻰ ﺗﻘرﯾب اﻟﻘﯾﻣﺔ ﻟﻠﺗﻣﺳﻠﺳﻠﺔ وذﻟك ﺑﺣﺳﺎب
k k
1000
2 k 1
k 2k
1000
N k1
2. ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﻓﺎﻧﻧﺎ ﻗﺎدرﯾن ﻋﻠﻰ ﺣﺳﺎب اﻟﻘﯾﻣﺔ اﻟﺣﻘﯾﻘﯾﻰ ﻟـ
k k
2 k 1
k k k1 2
2
ﻣﺛﺎل اﺧﺗﺑر اﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﺗﺎﻟﯾﺔ ﻣن ﻧﺎﺣﯾﺔ اﻟﺗﻘﺎرب : Converges
10n !k 1 n
اﻟﺣل
10n a n ﺛم ﻧﺳﺗﺧدم اﻻﻣر Tableﻟﺣﺳﺎب ﻗﺎﺋﻣﺔ ﻣن اﻟﻘﯾم : ﺳوف ﻧﻌرف !n a1 ,a 2 ,...,a 24 ,a 25وﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞ: aa1
٣٢٦
Clear[a]
10n an_ : n
aa1=Table[a[n],{n,1,25}]; . aa1 ﻟرﺳم اﻟﻘﺎﺋﻣﺔ ﻣن اﻻﻋدادListPlot ﺳوف ﻧﺳﺗﺧدم اﻻﻣر
?ListPlot
ListPloty1, y2, ... plots a list of values. The x coordinates for each point are taken to be 1, 2, ... . ListPlotx1, y1, x2, y2, ... plots a list of values with specified x and y coordinates. More…
ListPlot[aa1]
2500 2000 1500 1000 500
5
10
15
20
25
Graphics Limit ﺛم اﺳﺗﺧدام اﻻﻣر
a n 1 an
اوﻻ ﻧﺣﺳب. ﻟﺗﻘدﯾر ﻓﯾﻣﺎ اذا ﻛﺎﻧت اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﻘﺎرﺑﯾﺔ ام ﻻ ﺳوف ﻧﺳﺗﺧدم اﺧﺗﺑﺎر اﻟﻧﺳﺑﺔ
. وﺳوف ﻧﺛﺑت ان اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﻘﺎرﺑﯾﺔ وﺗؤؤول اﻟﻰ ﺻﻔر
an 1 an 10 n 1 n an 1 Limit , n an 0
٣٢٧
a n 1 n a n
lim
ﻟﺣﺳﺎب
او ﻛﺑدﯾل ﻓﺎن اﻟﺗﻌﺑﯾر
!a n 1 10n 1 n 10 . n a n (n 1)! 10 n 1
ﯾﺑﺳط اﻟﻰ
10 n 1
ﺑﺎﺳﺗﺧدام اﻻﻣر FullSimplify
ﺑدﻻ ﻣن اﻻﻣر . Simplifyوﻋﻠﻰ ذﻟك :
a n 1 !10n 1 n 10 lim lim . n lim 0 n a n (n 1)! 10 n n 1 n وﻋﻠﻰ ذﻟك ﺑﺎﺳﺗﺧدام اﺧﺗﺑﺎر اﻟﻧﺳﺑﺔ ﻓﺎﻧﻧﺎ ﺳوف ﻧﺛﺑت ان اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﻘﺎرﺑﯾﺔ .
an 1 FullSimplify an 10 1 n ]Limit[aa5,n 0
10n ﻓﻰ اﻟﺣﻘﯾﻘﺔ ﯾﻣﻛن ﻟﻠﺑرﻧﺎﻣﺞ ﺣﺳﺎب اﻟﻘﯾﻣﺔ اﻟﺣﻘﯾﻘﯾﺔ ﻟﻠﻣﺗﺳﻠﺳﻠﺔ k 2 k 1 ﺑﺎﺳﺗﺧدام Sumﻛﻣﺎ ﯾﻠﻰ :
10n n1 n 1 10 ﻣﺛﺎل اﺧﺗﺑر اﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﺗﺎﻟﯾﺔ ﻣن ﻧﺎﺣﯾﺔ اﻟﺗﻘﺎرب : Converges
sin k k k 1
اﻟﺣل : ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف
sin k k
a k ﺛم اﺳﺗﺧدام اﻻﻣر Tableوذﻟك ﻟﺣﺳﺎب ﻗﺎﺋﻣﺔ ﻣن اﻟﻘﯾم a1 ,a 2 ,...,a 999 ,a 2000
وﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞ aa1ﺛم ﻧﺳﺗﺧدم اﻻﻣر ListPlotﻟرﺳم اﻟﻘﺎﺋﻣﺔ ﻣن اﻻﻋداد ، aa1اى اﺳﺗﺧدام اﻻﻣر ListPlotﻟرﺳم
اﻟﻧﻘﺎط 1,2,...,2000
. (k,a k ),k
]Clear[a
٣٢٨
ak_ :
Sink k
aa1=Table[a[k],{k,1,2000}]; ListPlot[aa1,AxesNone,Frame->True,PlotStylePointSize[0.01]] 0.003 0.002 0.001 0 -0.001 -0.002 -0.003 0
500
1000
1500
2000
Graphics 1000
sin k k k 1
ﺳوف ﻧﺣﺳب. ﺗﻘﺎرﺑﯾﺔ ام ﻻ
sin k k k 1
ﻧﻼﺣظ ان اﻟرﺳم ﻟم ﯾﺳﺎﻋد ﻓﻰ ﺗﻘدﯾر ﻣﺎ اذا ﻛﺎﻧت اﻟﻣﺗﺳﻠﺳﻠﺔ
N ﻣﻊ ﺗﻘرﯾﺑﺔ ﺑﺎﻻﻣر 10000
N k1
Sink k
1.07087
sin k k k 1
وذﻟﻚ ﻟﺤﺴﺎب ﻗﯿﻤﺔ ﺗﻘﺮﯾﺒﯿﺔ ﻟﻠﻤﺘﺴﻠﺴﻠﺔ
: ﯾﻣﻛن ﺣﺎﺳب اﻟﻘﯾﻣﺔ ﺑﺎﻟﺿﺑط ﻟﻠﻣﺗﺳﻠﺳﻠﺔ ﻛﻣﺎ ﯾﻠﻰ. (n=10000) n ﺣﯾث ﺗم اﺳﺗﺧدام ﻗﯾﻣﺔ ﻛﺑﯾرة ﻣن
Sink k k1
1 Log1 Log1 2 : N ﺛم ﺑﺎﺳﺗﺧدامComplexExpand اﻟﺗﻘرﯾب اﻟﻌددى ﻟﻠﻧﺗﯾﺟﺔ ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﮫ ﺑﺎﺳﺗﺧدام
Sink k k1
aa2
1 Log1 Log1 2
aa3=ComplexExpand[aa2]
٣٢٩
Sin1 1 Cos1
ArcTan ]N[aa3 1.0708
ﺗﻘدﯾر اﻟﻔﺗرة اﻟﺗﻰ ﺗﺗﻘﺎرب ﻓﯾﻬﺎ ﻣﺗﺳﻠﺳﻠﺔاﻟﻘوى Determinig the Interval of Convergence of a Power Series
ﺑﻔرض ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى a n (a x 0 )n اﻟﻣﺷﻛﻠﺔ ﻓﻰ اﯾﺟﺎد ﻓﺗرة اﻟﺗﻘﺎرب ﻟﻣﺳﻠﺳﻠﺔ اﻟﻘوى اﻟﻣﻌطﺎﻩ . n 0
ﻣﺛﺎل اوﺟد ﻓﺗرة اﻟﺗﻘﺎرب ﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى اﻟﻣﻌطﺎﻩ :
x 2n 1
1
n
) (5 n 0
اﻟﺣل : ﺳوف ﻧﺳﺗﺧدم اﺧﺗﺑﺎر اﻟﺟذر Root testواﻟذى ﯾﻧص ﻋﻠﻰ اﻧﻪ اذا ﻛﺎﻧت
وﻛﺎن a n
n
n
a
ﻣﺗﺳﻠﺳﻠﺔ ﺑﺣدود ﻣوﺟﺑﺔ
lim n
ﻓﺎن :
) ا ( ) اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﺗﻘﺎرب اذا ﻛﺎﻧت 1 ) ب( اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﺗﺑﺎﻋد اذا ﻛﺎﻧت 1 )ج ( ﻻ ﺗﻌﻠﯾق اذا ﻛﺎﻧت 1 ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف a nﻛﺎﻟﺗﺎﻟﻰ :
1 x 2n 1 n )(5
ﺛم ﺣﺳﺎب وﺗﺑﺳﯾط
1 x 2n 1 n )(5
n
.وﻗد وﺟد ان اﻻﻣر Simplify
ﻟم ﯾﺑﺳط اﻟﺗﻌﺑﯾر ﻛﻣﺎ ﻧرﻏب وﻟذﻟك ﺳوف ﯾﺳﺗﺧدم اﻻﻣر PowerExpandﻟﺗﺑﺳﯾط اﻟﻧﺎﺗﺞ وﺳوف ﻧﺳﻣﻰ اﻟﻧﺎﺗﺞ : aa1
1 n fn_ : x2 n1 n 5 f[n]//Simplify ٣٣٠
1
5n x12n n aa1=f[n]//PowerExpand//Simplify
1 2 1 x n 5
: ﺗؤول اﻟﻰ ﻣﺎﻻ ﻧﻬﺎﯾﺔ ﺣﯾثn ﻋﻧدﻣﺎaa1 اﻻن ﻧﻘوم ﺑﺣﺳﺎب اﻟﻧﻬﺎﯾﺔ ﻟـ
lim
n
n
1 1 2 1/ n x 2n 1 lim x x n n ( 5) (5)
Limit[aa1,n]
x2 5
1 | x 2 | <1 ﺗﺗﻘﺎرب ﻣطﻠﻘﺎ اذا ﻛﺎﻧت 5
n
1 x 2n 1 اﻟﻧﺗﯾﺟﺔ ﺗﻌﻧﻰ ان n (5) . ﺳوف ﻧﺣل ﻫذﻩ اﻟﻣﺗﺑﺎﯾﻧﺔ ﻻﺣﻘﺎ
Solve
x2 5
1, x
x 5 , x 5
x2 Plot1, , x, 3, 3, 5 PlotStyle GrayLevel.5, GrayLevel0 1.75 1.5 1.25 1 0.75 0.5 0.25 -3
-2 -1 Graphics
1
2
3
: وﻋﻠﻰ ذﻟك ﯾﻣﻛن اﺳﺗﻧﺗﺎج ان n
.
1 x 2n 1 n (5)
5 x 5 ﺗﺗﻘﺎرب ﻣطﻠﻘﺎ اذا ﻛﺎﻧت 1 x 2n 1 اﻻن ﺳوف ﻧﻔﺣص اﻟﺗﻘﺎرب ﻟـ . ﻣﻧﻔﺻﻠﯾنx 5 or x 5 ﻋﻧدﻣﺎ n n 0 ( 5) ٣٣١
x 5ﻓﻰ a n
اﻻن ﺳوف ﻧﻌوض
وﺳوف ﻧﺛﺑت اﻧﻬﺎ ﻟﯾﺳت ﺗﻘﺎرﺑﯾﺔ .ﻧﻔس اﻟﻛﻼم
ﺑﺎﻟﻧﺳﺑﺔ اﻟﻰ x 5
PowerExpandaa1n . x 5 Simplify 3n
5 Simplify
1
5
PowerExpandaa1n .x n
1
5
وﻋﻠﻰ ذﻟك ﯾﻣﻛن اﺳﺗﻧﺗﺎج ان اﻟﻔﺗرة اﻟﺗﻰ ﺗﺗﻘﺎرب ﻓﯾﻬﺎ اﻟﻣﺗﺳﻠﺳﻠﺔ x 2n 1
1
n
) (5 n 0
ﻫﻰ :
) . ( 5 , 5
ﻣﺛﺎل
اوﺟد ﻓﺗرة اﻟﺗﻘﺎرب ﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى اﻟﻣﻌطﺎﻩ :
42n (x 3)n n 0 n 1
اﻟﺣل : ﺳوف ﻧﺳﺗﺧدم اﺧﺗﺑﺎر Ratio testواﻟذى ﯾﻧص ﻋﻠﻰ اﻧﻪ اذا ﻛﺎﻧت
a n+1 وﻛﺎن an
n
a
ﻣﺗﺳﻠﺳﻠﺔ ﺑﺣدود ﻣوﺟﺑﺔ
lim n
ﻓﺎن :
) ا ( ) اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﺗﻘﺎرب اذا ﻛﺎﻧت 1 ) ب( اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﺗﺑﺎﻋد اذا ﻛﺎﻧت 1 )ج ( ﻻ ﺗﻌﻠﯾق اذا ﻛﺎﻧت 1 ﺳوف ﻧﺑدا ﺑﺗﻌرﯾف a nﻛﺎﻟﺗﺎﻟﻰ :
4 2n (x 3) n a n ﺛم ﺣﺳﺎب وﺗﺑﺳﯾط n 1
a n 1 an
.
ﺳوف ﯾﺳﺗﺧدم اﻻﻣر Simplifyﻟﺗﺑﺳﯾط اﻟﻧﺎﺗﺞ واﻟﻣﺧرج ﺳوف ﯾﻌطﻰ ﻟﻪ اﻻﺳم . aa2
42 nx 3n
fn_ :
n 1 fn 1 aa2 Simplify fn 16 1 n 3 x 2n
٣٣٢
n+1 اﻻن ﻧﻘوم ﺑﺣﺳﺎب )(x 3 n+1
lim 16 n
ﻣﻊ ﺗﺳﻣﯾﺔ اﻟﻣﺧرج aa3
]aa3=Limit[aa2,n )16 (-3+x
42n اﻟﻧﺗﯾﺟﺔ ﺗﻌﻧﻰ ان (x 3)n n 0 n 1
ﺗﺗﻘﺎرب ﻣطﻠﻘﺎ اذا ﻛﺎﻧت |16x 48| <1
ﺳوف ﻧﺣل ﻫذﻩ اﻟﻣﺗﺑﺎﯾﻧﺔ وﺳوف ﻧﺛﺑت ان :
47 49 or x اﻟﻣﺗﺳﻠﺳﻠﺔ ﺗﺗﻘﺎرب ﻋﻧد 16 16
x ]Solve[aa31,x
49 16
x
]Solve[aa3-1,x
49 Simplify 16 47 Simplify 16
47 16
x
fn . x 1 1 n
fn . x 1n
1 n
(1)n اﻟﻣﺗﺳﻠﺳﻠﺔ n 0 n 1
ﺗﺗﻘﺎرب ﺑﺎﺧﺗﺑﺎر اﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﺑدﯾل
1
و n 1 n 0
ﻟﯾﺳت ﺗﻘﺎرﺑﯾﺔ .وﻋﻠﻰ ذﻟك ﯾﻣﻛن اﻟﻘول ان اﻟﻔﺗرة اﻟﺗﻰ ﺗﺗﻘﺎرب ﻓﯾﻬﺎ اﻟﻣﺗﺳﻠﺳﻠﺔ
4 2n (x 3) n n 0 n 2 47 49 ﻫﻰ [ , ) : 16 16 .
٣٣٣
ﺣﺳﺎب ﻣﺗﺳﻠﺳﻼت اﻟﻘوى Computing power series ﻣﻔﻛوك ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ ) f(xﺣول اﻟﻧﻘطﺔ
xa
ﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﮫ ﻣن اﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ :
)f (n) (a (x a) n !n n 0
ﺗﺣت ﺷرط ان اﻟداﻟﺔ ﻗﺎﺑﻠﺔ ﻟﻠﺗﻔﺎﺿل . ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺣﺳﺎب ﻣﻔﻛوك ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ ) f(xﺣول اﻟﻧﻘطﺔ
xa
وﺣﺗﻰ اﻟدرﺟﺔ nوذﻟك
ﺑﺎﺳﺗﺧدام اﻻﻣر Seriesﻛﺎﻟﺗﺎﻟﻰ : ]}Series[f{x},{x,a,n
ﻣﻌﻠوﻣﺎت ﻋن ﻫذا اﻻﻣر Seriesﯾﻣﻛن اﻟﺣﺻول ﻋﻠﯾﻬﺎ ﻛﺎﻟﺗﺎﻟﻰ : ?Series
Seriesf, x, x0, n generates a power series expansion for f about the point x x0 to order x x0^n. Seriesf, x, x0, nx, y, y0, ny successively finds series …expansions with respect to y, then x. More اﻟرﻣز ) x [x a] ^ (n 1واﻟذى ﯾظﻬر ﻓﻰ اﻟﻣﺧرج اﻟﻧﺎﺗﺞ ﻣن اﻻﻣر Series ﯾﻣﺛل اﻟﺟزء اﻟﺑﺎﻗﻰ اﻟﻣﺣذوف ﻣن اﻟﻣﺗﺳﻠﺳﻠﺔ )ﺣد اﻟﺑﺎﻗﻰ ( وﯾﻣﻛن اﻟﻐﺎء ھذا اﻟﺣد وﻛﺗﺎﺑﺔ اﻟﻣﻔﻛوك ﻓﻰ اﻟﺷﻛل اﻟﻌﺎدي
وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر . Normal
اﻣﺛﻠﺔ
ﻟﺣﺳﺎب ﻣﻔﻛوك ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ ex
ﺣول اﻟﻧﻘطﺔ x=0ﺣﺗﻰ اﻟﺣدود ﻣن اﻟدرﺟﺔ اﻟﺧﺎﻣﺳﺔ ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : ]}Series[Exp[x],{x,0,5
x2 x3 x4 x5 Ox6 2 6 24 120
1 x
وﯾﻣﻛن اﻟﻐﺎء ﺣد اﻟﺑﺎﻗﻰ وﻛﺗﺎﺑﺔ اﻟﻣﻔﻛوك ﻓﻰ اﻟﺷﻛل اﻟﻌﺎدى وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Normalﻛﻣﺎ ﯾﻠﻰ :
]}Series[Exp[x],{x,0,5 ٣٣٤
x2 x3 x4 x5 1 x Ox6 2 6 24 120 ]Normal[%
x2 x3 x4 x5 2 6 24 120
1 x
ﻟﺣﺳﺎب ﻣﻔﻛوك ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ cos xﺣول اﻟﻧﻘطﺔ x=0ﺣﺗﻰ اﻟﺣدود ﻣن اﻟدرﺟﺔ اﻟﺳﺎدﺳﺔ ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : ]}Series[Cos[x],{x,0,6
x2 x4 x6 7 1 Ox 2 24 720 ﻟﺣﺳﺎب ﻣﻔﻛوك ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ ln xﺣول اﻟﻧﻘطﺔ x=0ﺣﺗﻰ اﻟﺣدود ﻣن اﻟدرﺟﺔ اﻟﺳﺎدﺳﺔ ﻧﺗﺑﻊ اﻟﺗﺎﻟﻰ : ]}Series[Log[x],{x,1,6
1 1 x 12 x 13 2 3 1 1 1 x 14 x 15 x 16 Ox 17 4 5 6
x 1
ﺑرﻧﺎﻣﺞ اﻟﻣﺎﺛﯾﻣﺎﺗﯾﻛﺎ ﻗﺎدر ﻋﻠﻰ ﺣﺳﺎب اﻟﺻﯾﻐﺔ اﻟﻌﺎﻣﺔ ﻟﻣﻔﻛوك ﻟﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ ) . y(xاﻟﻧﺗﯾﺟﺔ ﻧﺣﺻل ﻋﻠﯾﻬﺎ ﻣن اﻻواﻣر اﻟﺗﺎﻟﯾﺔ : ]}Series[y[x],{x,0,3
1 1 y 0 x2 y3 0 x3 Ox4 2 6
y0 y0 x
]}Series[y[x],{x,a,3
1 y a x a2 2
ya ya x a
1 3 y a x a3 Ox a4 6 ﺣﯾث ﻧﺣﺻل ﻋﻠﻲ ﻣﻔﻛوك ﻣﺗﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ ) y(xﺣول اﻟﻧﻘطﺔ x=0 , x=aﻋﻠﻰ اﻟﺗواﻟﻰ ﻣن اﻟدرﺟﺔ اﻟﺛﺎﻟﺛﺔ . اﻟﻧﺗﺎﺋﺞ ﻣن ادﺧﺎل اﻻﻣر Seriesﻟﯾس داﻟﺔ ﺑﺣﯾث ﯾﻣﻛن ﺗﻘدﯾرﻫﺎ ﻋﻧد ﻗﯾﻣﺔ ﺧﺎﺻﺔ . x
وﯾﻣﻛن اﻟﻐﺎء ﺣد اﻟﺑﺎﻗﻰ وﻛﺗﺎﺑﺔ اﻟﻣﻔﻛوك ﻓﻰ اﻟﺷﻛل اﻟﻌﺎدى وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Normalﻛﺎﻟﺗﺎﻟﻰ : ]]}Normal[Series[f[x],{x,a,n
ﻣﺛﺎل
٣٣٥
اوﺟد Maclaurin Polynomialﻣن اﻟدرﺟﺔ اﻟﺧﺎﻣﺳﺔ
ﻟﻠداﻟﺔ tan 1 x ﺛم ﻗﺎرن رﺳم tan 1 x
ﻣﻊ . Polynomial
اﻟﺣل : اذا ﻛﺎﻧت ) f(xداﻟﺔ وﻟﻬﺎ nﻣن اﻟﻣﺷﺗﻘﺎت ﻋﻧد 0ﻓﺎن Maclaurin Polynomialﻣن اﻟدرﺟﺔ nﻟﻠداﻟﺔ )f(x ﻫو :
f (k) (0) k x !k k 0
ﺳوف ﻧﻌرف ﻣﻔﻛوك ﻣﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔ x
1
f (x) tanﺣول اﻟﺻﻔر ﻣن اﻟدرﺟﺔ اﻟﺧﺎﻣﺳﺔ .
ﻟﺗوﺿﯾﺢ ان اﻟﻣﺧرج ﻟﯾس داﻟﺔ ﺳوف ﻧﺣﺎول ﺗﻘدﯾرﻩ ﻋﻧد . x=1وﺳوف ﺗظﻬر رﺳﺎﻟﺔ ﺧطﺎ. ]}aa1=Series[ArcTan[x],{x,0,5
x3 x5 Ox6 3 5
x
aa1/.x1 SeriesData ::ssdn : Attempt to evaluate a series …at the number 1; returning Indeterminate . More Indeterminate
وﯾﻣﻛن اﻟﻐﺎء ﺣد اﻟﺑﺎﻗﻰ وﻛﺗﺎﺑﺔ اﻟﻣﻔﻛوك ﻓﻰ اﻟﺷﻛل اﻟﻌﺎدى وذﻟك ﺑﺎﺳﺗﺧدام اﻻﻣر Normalﺛم ﺣﺳﺎب اﻟﻧﺎﺗﺞ ﻋﻧد : x=1
]}aa1=Series[ArcTan[x],{x,0,5
x3 x5 x Ox6 3 5 ]aa2=Normal[aa1
x3 x5 3 5
x
aa2/.x1
13 15
واﺧﯾ ار ﯾﻣﻛن ﻣﻘﺎرﻧﺔ اﻟرﺳم ﻟـ aa2و . f (x) tan 1 xاﻟرﺳم اﻟﺧﺎص ﺑـ x
1
f (x) tanﺳوف
ﯾﻛون ﺑﺧطوط ﻣﺗﻘطﻌﺔ واﻟرﺳم اﻟﺧﺎص ﺑـ aa2ﺳوف ﯾﻛون اﺳود .وﯾﺟب ان ﻧﺗذﻛر ان aa2ﺗظﻬر ﺗﻘرﯾب ﻟـ f ﺟﯾدا ﻓﻰ اﻟﻔﺗرة اﻟﺗﻰ ﺗﺣﺗوى ﻋﻠﻰ ﺻﻔر .
٣٣٦
3 3 , , 2 2 PlotStyle Dashing0.01, GrayLevel0
Plot ArcTanx, aa2, x,
1.5 1 0.5 1.5
1
-0.5
0.5
-1
-1.5
-0.5 -1 -1.5
Graphics
ﯾﻣﻛن اﺳﺗﺧدام اﻻﻣر Seriesوذﻟك ﻟﺣﺳﺎب .Taylor Polynomialاذا ﻛﺎﻧت ) f(xداﻟﺔ ﻟﻬﺎ nﻣن اﻟﻣﺷﺗﻘﺎت ﻋﻧد x=aﻓﺎن Taylor Polynomialﻣن اﻟدرﺟﺔ nﻟﻠداﻟﺔ ) f(xﻋﻧد x=aﻫو :
)f (k) (a (x a) k !k k 0
ﻣﺛﺎل اوﺟد Taylor Polynomial ﻟﻠداﻟﺔ
(x 1)2
2
ﻣن اﻟدرﺟﺔ اﻟﺛﺎﻣﻧﺔ
)e (x 1
ﺣول x=1وﻗﺎرن اﻟرﺳم ﻟﻛﺛﯾرة اﻟﺣدود ﻣﻊ). f(x
اﻟﺣل : ﺑﻌد ازاﻟﺔ ﻛل اﻟﺗﻌرﯾﻔﺎت ﻟﻠداﻟﺔ ) f(xﻧﻌرف اﻟرﺳم ﻟﻠداﻟﺔ ) f(xواﻟﻧﺗﯾﺟﺔ ﻧﻌطﯾﻬﺎ اﻻﺳم aa1واﻟرﺳم ﻟن ﯾظﻬر وذﻟك ﻟوﺟود اﻻﻣر . DisplayFunction->Identityاﻟﺧﯾﺎر } AxesOrigin->{0,0ﯾﺄﻛد ﻋﻠﻰ ان ﯾﺷﻣل اﻟرﺳم ﻋﻠﻰ اﻟﻧﻘطﺔ ) .(0,0اﻟﺧﯾﺎر ]} PlotStyle->Dashing[{.01ﯾﺄﻛد ان اﻟﻧﺗﯾﺟﺔ ﺗظﻬر ﻋﻠﻰ ﺷﻛل ﺧطوط ﻣﺗﻘطﻌﺔ ]Clear[f fx_ : Expx 12x 12 aa2=Plot[f[x],{x,-1.75,1.75},PlotStyle
٣٣٧
Dashing[{.01}],AxesOrigin{0,0},DisplayFunctionIdentity ]; ﺛم ازاﻟﺔ اﻟﺟزء، ﻣن اﻟدرﺟﺔ اﻟﺛﺎﻣﻧﺔx=1 ﺣول اﻟﻧﻘطﺔf(x) ﻟﺗﻣﺳﻠﺳﻠﺔ اﻟﻘوى ﻟﻠداﻟﺔaa3 اﻟﺧطوة اﻟﺗﺎﻟﯾﺔ ﺗﻌرﯾف aa4 وﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞNormal اﻟﺑﺎﻗﻰ ﺑﺎﺳﺗﺧدام اﻻﻣر Polynomial واﻟذى ﯾﻣﺛل
e (x 1)
2
(x 1)2
ﻟﻠداﻟﺔ
. x=1 ﺣول
aa3=Series[f[x],{x,1,8}] 1 4 x 12 4 x 13 7 x 14 16 x 15
4 6 7 173 8 9 x 1 28 x 1 x 1 Ox 1 3 6 aa4=Normal[aa3] 1 4 1 x2 4 1 x3 7 1 x4
16 1 x5
4 173 1 x6 28 1 x7 1 x8 3 6
ﻣﻌﺎaa2 , aa5 ﻻظﻬﺎرShow ﺛم اﺳﺗﺧدام اﻻﻣرaa5 وﺗﺳﻣﯾﺔ اﻟﻧﺎﺗﺞ
aa4 ﺛم ﯾﻠﻰ ذﻟك رﺳم
. وﺑدوﻧﻪ ﻻ ﯾظﻬر اﻟرﺳم$DisplayFunction->Identity وﯾﺟب ظﻬور اﻻﻣر
aa5=Plot[aa4,{x,-1.5,1.75},DisplayFunction->Identity];
3 , 2 DisplayFunction $DisplayFunction;
Showaa2, aa5, PlotRange 2, 1.5 1 0.5 -1.5
-1
-0.5
0.5 -0.5 -1 -1.5 -2
٣٣٨
1
1.5
٣٣٩
اﻟﻣراﺟـﻊ REFERENCES اﻟﻤﺮاﺟﻊ اﻟﻌﺮﺑﻴﺔ: ًأوﻻ اﺳ ﺗﺧدام ﺑرﻧ ﺎﻣﺞ ﻣﺎﺛﯾﻣﺎﺗﯾﻛ ﺎ ﻛﻠﻐ ﺔ ﺑرﻣﺟ ﺔ ﻓ ﻰ، (٢٠١٢) ، ﺛ روت ﻣﺣﻣ د ﻋﺑ د اﻟﻣ ﻧﻌم-١ ﻣﺟ ﺎل اﻻﺳ ﺗدﻻل اﻻﺣﺻ ﺎﺋﻰ – ﻣﻧﺗ دى اﻻﺣﺻ ﺎﺋﯾﯾن اﻟﻌ رب ﻓ ﻰ اﻟﻛﺗ ب واﻟﻣراﺟ ﻊ . اﻟﻌرﺑﯾﺔ – ﻣﺎﺛﯾﻣﺎﺗﯾﻛ ﺎ اﻟرﯾﺎﺿ ﯾﺎت ﺑﺎﺳ ﺗﺧدام اﻟﻛوﻣﺑﯾ وﺗر، (٢٠٠٠) ، راﻓ ت رﯾ ﺎض رزق ﷲ-٢ . اﻟﻘﺎھرة – ﺟﻣﮭورﯾﺔ ﻣﺻر اﻟﻌرﺑﯾﺔ- اﻟﻣﻛﺗﺑﺔ اﻻﻛﺎدﯾﻣﯾﺔ
اﻟﻤﺮاﺟﻊ اﻷﺟﻨﺒﻴﺔ: ﺛﺎﻧﻴﺎ
1- Abell, M. L . Braselton,J. P. (1992) The Mathema ca Handbook, Academic Press, New York.
2- Abell, M. L . Braselton,J. P. (1997) Mathematica by Example, Second Addition, Academic Press, New York.
3- Abell, M. L . et.al. (1999) Sta s cs with Mathema ca, Academic Press, New York.
4- Gaylord, R. J . et.al. (1993) Introduction to Programming with Mathematica, Springer Verlag, New York.
5-Wolfram,S. (1991) Mathematica : A System for Doing Mathematicas by Computer,Second Addition , Addision Wesley.
6-Wolfram, S. (1994) Mathematica : The Student Book,Addison Wesley.
٣٤٠
٣٤١