რა არის პროგრამირების ენა Matlab-ში. Matlab პროგრამის აღწერა

გამოქვეყნდა http://www.allbest.ru/

შესავალი

Matlab-ის პაკეტის სახელი არის ინგლისური შემოკლება მატრიცა ლაბორატორია(რაც ნიშნავს მატრიცის ლაბორატორია). იმავე ტერმინით (ანუ Matlab) ასევე უწოდებენ პროგრამირების ენას, რომელიც გამოიყენება პროგრამის კოდების შედგენა. მოგეხსენებათ, პროგრამის კოდი შეიძლება შედგენაან იყოს ინტერპრეტირებული. პირველ შემთხვევაში ვიღებთ აღმასრულებელ (მანქანურ) კოდს, რომელსაც ახორციელებს ცენტრალური პროცესორი. ინტერპრეტაციისას ხდება ტრანსფორმაცია შუალედურ კოდში, რომელიც შესრულებულია უშუალოდ თარჯიმნის სისტემის მიერ. შედგენილი კოდი ჩვეულებრივ უფრო სწრაფად მუშაობს ვიდრე ინტერპრეტირებული კოდი. თუმცა, ინტერპრეტირებული პროგრამირების ენები სინტაქსის თვალსაზრისით უფრო დემოკრატიულია. Matlab კოდი ინტერპრეტირებულია. თუმცა, ეს არანაირად არ არის კომპრომისზე ეჭვი ეპარება Matlab-ის გამოთვლით შესაძლებლობებში. განხორციელების საფუძველი Matlab-ში მონაცემთა სხვადასხვა ტიპებია მატრიცები, რაც ბევრს ხსნის გარემოს (და პროგრამირების ენის) მახასიათებლები Matlab. მატრიცებამდე ჩვენ წიგნში მასალის წარმოდგენისას საკმაოდ ხშირად მივმართავთ.

Matlab-ის აპლიკაციის ფუნქციონირების დიდი ნაწილი განხორციელებულია მეშვეობით ხელსაწყოების პაკეტები(ინგლისური ტერმინი ხელსაწყოების ყუთი). ეს არის ფუნქციებისა და სხვა კომუნალური საშუალებების კოლექცია, რომელიც შექმნილია უაღრესად სპეციალიზებული პრობლემების გადასაჭრელად. პაკეტების უმეტესობას აქვს ვიწრო, სპეციფიკური აქცენტი. Matlab აპლიკაცია შექმნილია (პირველ რიგში) რიცხვითი გამოთვლების შესასრულებლად და შედეგების ვიზუალიზაციისთვის. პაკეტი შეიცავს უამრავ კომუნალურ პროგრამას სხვადასხვა ოპერაციების შესასრულებლად და საშუალებას გაძლევთ შექმნათ თქვენი საკუთარი სრულად ფუნქციონალური პროგრამის კოდები. ამავდროულად, სიმბოლური გამოთვლების შესრულება შესაძლებელია Matlab-შიც. Matlab-ში ჩაშენებული MuPAD გარემო ამ მიზანს ემსახურება. ამრიგად, Matlab-ის მომხმარებელს ეძლევა უამრავი შესაძლებლობა არა მხოლოდ რიცხვითი, არამედ სიმბოლური გამოთვლების სფეროში.

1. მარტივი გამოთვლები

მარტივი, ან ეტაპობრივად, ეხება გამოთვლებს, რომლებიც ჩვეულებრივ ხორციელდება Matlab აპლიკაციის ბრძანების ფანჯარაში. შესაბამისი ინსტრუქცია ან ბრძანება შედის ბრძანების ფანჯარაში და შემდეგ სრულდება. სურათი 1 გვიჩვენებს, როგორი შეიძლება გამოიყურებოდეს Matlab აპლიკაციის სამუშაო ფანჯარა გაშვებისას. ამ შემთხვევაში საინტერესოა შიდა ფანჯარა (ჩვეულებრივ, აპლიკაციის სამუშაო ფანჯრის ცენტრში) სახელწოდებით ბრძანების ფანჯარა- ბრძანების ფანჯარა. ამ ფანჯარაში შეგიძლიათ იხილოთ შეყვანის ხაზის მაჩვენებელი (ორმაგი ისრის სახით >> ). ბრძანების შესაყვანად კურსორი უნდა გადავიდეს შეყვანის ხაზის ინდიკატორის შემდეგ და ინსტრუქცია უნდა იყოს შეყვანილი შესასრულებლად. სხვა სიტყვებით რომ ვთქვათ, თქვენ უნდა შეიყვანოთ გამონათქვამი ბრძანების ფანჯრის შეყვანის ხაზში და Enter ღილაკზე დაჭერით დაიწყოთ ამ გამოთვლების პროცესი. გაანგარიშების შედეგი ნაჩვენებია ქვემოთ, შესრულებული ბრძანების ქვეშ. ნაგულისხმევად, შედეგი ინახება "ans" სისტემის ცვლადში.

სურათი 1

სურათი 2 გვიჩვენებს რამდენიმე არითმეტიკული გამონათქვამის შეფასების მაგალითს. ამ შემთხვევაში მოცემულია შესაბამისად 1+2*3 და (5^2-4)/7 გამოთვლების გამოთვლის შედეგები. პირველ შემთხვევაში, როგორც მოსალოდნელი იყო, შედეგად ვიღებთ მნიშვნელობას 7, მეორეში - მნიშვნელობა 3.

სურათი 2

Matlab-ის ძირითადი არითმეტიკული ოპერატორებია: „+“ ოპერატორი ჯამის გამოსათვლელად, ოპერატორი „-“ სხვაობის გამოსათვლელად, „*“ ოპერატორი პროდუქტის გამოსათვლელად, „/“ ოპერატორი კოეფიციენტის გამოსათვლელად და "^" ოპერატორი მხარდაჭერისთვის.

მისი ზოგადი გაგებით ცვლადიარის მეხსიერების არეალი, რომელზე წვდომა შესაძლებელია სახელით, რათა მიიღოთ ამ ზონაში შენახული მნიშვნელობა, ასევე შეცვალოთ იგი. მკაცრად აკრეფილ პროგრამირების ენებში (როგორიცაა C++, Java ან Pascal), ცვლადის გამოსაყენებლად, ჯერ უნდა გამოაცხადოთ იგი, მიუთითოთ რა ტიპისაა. არაა საჭირო Matlab-ში მსგავსი რამის გაკეთება. თქვენ შეგიძლიათ დაუყოვნებლივ მიანიჭოთ მნიშვნელობა ცვლადს. ტოლობის ნიშანი "=" გამოიყენება როგორც მინიჭების ოპერატორი. ცვლადის სახელი, რომელსაც ენიჭება მნიშვნელობა, მიეთითება მინიჭების ოპერატორის მარცხნივ, ხოლო ცვლადისთვის მინიჭებული მნიშვნელობა - მინიჭების ოპერატორის მარჯვნივ. ცვლადისთვის მინიჭებული მნიშვნელობა, როდესაც საქმე გვაქვს სკალარულ სიდიდეებთან, შეიძლება იყოს რიცხვი ან სხვა ცვლადების შემცველი გამოხატულება. ამ შემთხვევაში, აუცილებელია, რომ ამ ცვლადებს უკვე მინიჭებული აქვთ მნიშვნელობა. ნაბიჯ-ნაბიჯ გამოთვლებში სკალარული ცვლადების გამოყენების მაგალითი მოცემულია სამუშაო ქაღალდზე, სურათზე 3.

სურათი 3

პირველი ბრძანება x=0.5*sin(0.1) ანიჭებს მნიშვნელობას ცვლადს „x“. ამ შემთხვევაში, ჩაშენებული Matlab ფუნქცია "sin()" გამოიყენებოდა სინუსის გამოსათვლელად. ამ ცვლადისთვის მინიჭებული შედეგი ნაჩვენებია შეყვანის ხაზის ქვემოთ ფორმატში:

« ცვლადი =

მნიშვნელობა"

შემდეგი ბრძანების მსგავსად y=0.3*cos(0.2) მნიშვნელობა ენიჭება ცვლადს „y“. აქ "cos()" არის ჩაშენებული Matlab ფუნქცია კოსინუსების გამოსათვლელად. მკითხველის ყურადღებას ვაქცევთ იმასაც, რომ წილადი ათობითი ნაწილით რეალური რიცხვების შეყვანისას წერტილი გამოიყენება ათწილადის გამყოფად.

საბოლოოდ, ბრძანება z=(x^2+y^2)^(1/3) ანიჭებს მნიშვნელობას ცვლადს „z“. გამოთქმა, რომელიც განსაზღვრავს ცვლადის "z" მნიშვნელობას, მოიცავს ცვლადებს "x" და "y". თუმცა, ვინაიდან ამ ცვლადებს ადრე მინიჭებული ჰქონდათ მნიშვნელობები, შეცდომა არ ხდება და ცვლადის „z“ მნიშვნელობა სწორად არის მინიჭებული.

არსებობს ორი ძირითადი ოპერაცია, რომლებიც საკმაოდ სასარგებლოა, განსაკუთრებით უფრო დიდი გამოთვლებისთვის. ჯერ ერთი, ზოგიერთ შემთხვევაში თქვენ უნდა გაარკვიოთ, თუ რომელი სამუშაო სივრცის ცვლადებია უკვე გამოყენებული და მეორეც, ხანდახან უნდა, ფიგურალურად რომ ვთქვათ, „ამოშალოთ ცვლადები სათამაშო მოედნიდან“ - ანუ გაათავისუფლოთ ამ ცვლადებისთვის გამოყოფილი მეხსიერება. პირველი ოპერაცია კეთდება "ვინ" ინსტრუქციის გამოყენებით. თუ ამ ინსტრუქციას შეიყვანთ ბრძანების სტრიქონში და დააჭერთ Enter ღილაკს, გამოჩნდება სამუშაო სივრცეში არსებული ცვლადების სია მათი ზოგიერთი ატრიბუტის აღწერით.

სურათი 4

ამ შემთხვევაში სია შედგება ოთხი ცვლადისაგან: სამი გამოცხადებული მომხმარებლის ცვლადი "x", "y" და "z" და სისტემის ცვლადი "ans". ცვლადის სივრცის გასუფთავება ხორციელდება "გასუფთავების" ინსტრუქციის გამოყენებით, რის შემდეგაც, ინტერვალით გამოყოფილი, მითითებულია წაშლილი ცვლადების სახელები. სურათი 5 გვიჩვენებს "clear x y" ბრძანების შესრულების შედეგს, რასაც მოჰყვება ბრძანება "whos" სამუშაო სივრცის ცვლადების სიის შესამოწმებლად.

სურათი 5

მას შემდეგ, რაც „clear x y“ ბრძანებამ ამოიღო „x“ და „y“ ცვლადები სამუშაო სივრციდან, მხოლოდ „z“ ცვლადი და „ans“ სისტემის ცვლადი დარჩა ცვლადების სიაში. მიუხედავად იმისა, რომ ცვლადის "z" მნიშვნელობა ენიჭება ცვლადების "x" და "y" მნიშვნელობების საფუძველზე, მათი ამოღება სამუშაო სივრციდან (ან მათი მნიშვნელობის შეცვლა) არ იმოქმედებს ცვლადის "z" მინიჭებაზე. . სამუშაო სივრციდან ამოსაღებად ყველასცვლადები იყენებენ „გარკვევას“ დებულებას ცვლადების მითითების გარეშე.

წინა მაგალითებში გამოყენებული იყო სკალარული სიდიდეები. ძირითადი იდეოლოგიისა და ტექნიკური განხორციელების თვალსაზრისით, Matlab-ში სკალარები უფრო ეგზოტიკურია, ვიდრე ჩვეულებრივი. ფაქტია, რომ Matlab-ში მონაცემთა ძირითადი ტიპია მატრიცები (ან მასივები). ამასთან დაკავშირებით, სკალარი "Matlab-ის თვალსაზრისით" (ასე ვთქვათ) არის 1x ზომის მატრიცა, როგორც მოგეხსენებათ, მასივების ინდექსირება შესაძლებელია, ანუ მასივის ელემენტზე წვდომისთვის, თქვენ მიუთითეთ სახელი. მასივი და მისი ინდექსი (ან ინდექსები). ინდექსები მითითებულია მატრიცის (მაივნის) სახელის შემდეგ ფრჩხილებში და გამოყოფილია მძიმეებით. სკალარული ცვლადის წვდომა შესაძლებელია როგორც სახელით, ასევე ინდექსების მითითებით - ამ შემთხვევაში ეს არის (1,1). ნორმალურ რეჟიმში სკალარული სიდიდის წვდომისა და წყვილი ერთეული ინდექსების გამოყენების მაგალითი ნაჩვენებია ნახაზ 6-ში.

ბრძანება "MyVar=10" ანიჭებს მნიშვნელობას "10" ცვლადს "MyVar". თქვენ შეგიძლიათ წვდომა ცვლადზე მისი სახელით "MyVar" ან მატრიცის ელემენტზე წვდომის რეჟიმში "MyVar(1,1)". ორივე შემთხვევაში, სკალარული ცვლადის "MyVar" მნიშვნელობა ბრუნდება შედეგად.

ვინაიდან Matlab-ში ყველა ცვლადი აპრიორი განიხილება, როგორც მატრიცები, მატრიცების გამოცხადებისას არ არის საჭირო სპეციალური მითითებების დაცვა, გარდა იმისა, რომ მატრიცას უნდა მიეცეს მისი ელემენტების მნიშვნელობები. ეს კეთდება საკმაოდ მარტივად. მატრიცის ელემენტების სია ჩასმულია კვადრატულ ფრჩხილებში, მწკრივის ელემენტების მნიშვნელობების სიები გამოყოფილია მძიმეებით ან სივრცეებით, ხოლო სვეტის სხვადასხვა მნიშვნელობების სიები გამოყოფილია მძიმით. მაგალითად, ბრძანება "A=" განსაზღვრავს მწკრივის ვექტორს (1x3 მატრიცა) ელემენტებით "1", "2" და "3", შესაბამისად.

სურათი 6

"B=" ბრძანება განსაზღვრავს სვეტის ვექტორს (3x1 მატრიცა) ელემენტებით "4", "5" და "6". და ბოლოს, "C=" ბრძანება განსაზღვრავს 3x2 მატრიცას (3 მწკრივი და 2 სვეტი). ამ ბრძანებების შესრულების მაგალითები მოცემულია დოკუმენტში მე-7 სურათზე.

სურათი 7

მატრიცის ელემენტებზე წვდომა შესაძლებელია ჩვეულებრივი გზით ორი ინდექსის მითითებით (მწკრივის ნომერი და სვეტის ნომერი, რომლის გადაკვეთაზეც მდებარეობს ელემენტი). ასევე არის კონტაქტის საშუალება განზოგადებული ინდექსი. მატრიცის ელემენტის განზოგადებული ინდექსი განისაზღვრება, როგორც მისი სერიული ნომერი, თუ დათვლა იწყება ზედა მარცხენა ელემენტიდან ზემოდან ქვემოდან და მარცხენა სვეტიდან მარჯვნივ. ასე რომ, თუ მატრიცას "X" აქვს ზომები "n" "m", მაშინ ელემენტი "i" და "j" ინდექსებით შეიძლება მივმართოთ როგორც "X(i,j)" ან როგორც "X(n*. (j-1)+i)". მიუხედავად იმისა, რომ ელემენტების ინდექსირების მეორე გზა შეიძლება ცოტა დამაბნეველი ჩანდეს, ის შეესაბამება მეხსიერებაში მატრიცის ელემენტების ინდექსირების ტექნიკურ ხერხს, ამიტომ გამოთვლები ამ შემთხვევაში უფრო სწრაფია. სურათი 8 გვიჩვენებს დოკუმენტის ფრაგმენტს, რომელშიც, სხვადასხვა რეჟიმში, ადრე განსაზღვრული მატრიცის „C“ ელემენტების წვდომა ხდება. კერძოდ, ბრძანებით „C(1)“ ვიღებთ „C(1,1)“ ელემენტის მნიშვნელობას (მნიშვნელობა1). ინსტრუქცია "C(5)" არის მითითება ელემენტზე "C(2,2)", რომლის მნიშვნელობა არის "4".

Ფიგურა 8

2. არითმეტიკული მოქმედებები

Matlab-ის ძირითადი არითმეტიკული ოპერატორები საშუალებას გაძლევთ შეასრულოთ მოქმედებები არა მხოლოდ სკალარულ სიდიდეებზე, არამედ მატრიცებზეც. უფრო მეტიც, შეიძლება ითქვას, რომ ოპერატორების დიდი ნაწილი ორიენტირებულია მატრიცული ოპერაციების შესრულებაზე. ძირითადი Matlab არითმეტიკული ოპერატორები ჩამოთვლილია სხვადასხვა ტიპის ოპერანდებზე მათი გამოყენების შედეგის მოკლე აღწერილობით (თუ ასეთი მართებულია).

ცხრილი 1 ძირითადი არითმეტიკული ოპერატორები Matlab-ში.

ოპერატორი

აღწერა

დამატების ოპერატორი. ოპერატორი ორობითია. ოპერანდები შეიძლება იყოს სკალარული ან მატრიცული მნიშვნელობები. ორი სკალარული ოპერატორისთვის შესრულებულია დამატება. ორი მატრიცული ოპერანდისთვის (იგივე ზომის მატრიცებისთვის) შესრულებულია ელემენტების შეკრება: შედეგი არის იგივე განზომილების მატრიცა, როგორც ოპერანდის მატრიცები და მისი ელემენტები უდრის დამატებული მატრიცების შესაბამისი ელემენტების ჯამს. . თუ ერთი ოპერანდი არის სკალარი, მეორე კი მატრიცა, მაშინ შედეგი არის მატრიცა, რომლის თითოეული ელემენტი უდრის სკალარის და მატრიცის ოპერანდის შესაბამისი ელემენტის ჯამს.

გამოკლების ოპერატორი. ორობითი ოპერატორი. ოპერანდები შეიძლება იყოს სკალარები, იგივე ზომის მატრიცები, ან მატრიცა და სკალარი. სკალარებისთვის, განსხვავება გამოითვლება. მატრიცის ოპერანდებისთვის გამოითვლება მატრიცა, რომლის ელემენტები უდრის ელემენტების შესაბამისი მატრიცის ოპერანდების სხვაობას. თუ ერთი ოპერანდი არის მატრიცა, მეორე კი სკალარი, მაშინ შედეგი არის მატრიცა, რომლის ელემენტები გამოითვლება როგორც ოპერანდების მატრიცის შესაბამისი ელემენტის სხვაობა და სკალარი (ოპერანდების თანმიმდევრობის გათვალისწინებით). თქვენ შეგიძლიათ გამოკლოთ სკალარი მატრიცას და მატრიცა სკალარს.

გამრავლების ოპერატორი. ორობითი ოპერატორი. თუ ოპერანდები სკალარულია, გამოითვლება სკალარების ნამრავლი. მატრიცის ოპერანდებისთვის გამოითვლება მატრიცის ნამრავლი. თუ ერთი ოპერანდი არის მატრიცა, მეორე კი სკალარი, შედეგი არის მატრიცა, რომლის ელემენტები გამოითვლება მატრიცის ოპერანდისა და სკალერის შესაბამისი ელემენტის ნამრავლად.

განყოფილების ოპერატორი. ორობითი ოპერატორი. თუ ორივე ოპერანდი სკალარია, მაშინ სკალარის სკალარზე გაყოფის კოეფიციენტი ბრუნდება შედეგად. თუ პირველი ოპერანდი არის მატრიცა, ხოლო მეორე სკალარი, შედეგი არის მატრიცა, რომლის თითოეული ელემენტი მიიღება ოპერანდის მატრიცის სკალარზე ელემენტების გაყოფით. თუ ორივე ოპერანდი არის ერთი და იგივე რანგის კვადრატული მატრიცები, შედეგი ბრუნდება მატრიცის ნამრავლად - პირველი ოპერანდი და მატრიცის ინვერსიული მატრიცა - მეორე ოპერანდი.

ექსპონენტაციის ოპერატორი. ორობითი ოპერატორი. პირველი ოპერანდი შეიძლება იყოს სკალარული ან კვადრატული მატრიცა. თუ პირველი ოპერანდი არის სკალარი, მაშინ მეორე შეიძლება იყოს ნებისმიერი რეალური სკალარი. შედეგი არის პირველი ოპერანდი, რომელიც ამაღლებულია მეორე ოპერანდით მითითებულ სიმძლავრემდე. თუ პირველი ოპერანდი არის კვადრატული მატრიცა, მაშინ მეორე ოპერანდი უნდა იყოს მთელი რიცხვი (შეიძლება იყოს უარყოფითი). შედეგი არის მატრიცა, რომელიც გამოითვლება ოპერანდის მატრიცის აწევით მეორე ოპერანდით მითითებულ მთელ რიცხვამდე.

მარცხენა განყოფილების ოპერატორი. ორობითი ოპერატორი. ოპერანდები

არის იგივე რანგის კვადრატული მატრიცები. შედეგი არის მატრიცა, რომელიც ტოლია პირველი მატრიცის ოპერანდისა და მეორე მატრიცის ოპერანდის მატრიცის ინვერსიის ნამრავლის.

ელემენტარული გამრავლების ოპერატორი. ორობითი ოპერატორი. ოპერანდები არის იგივე ზომის მატრიცები. შედეგი არის მატრიცა, რომლის ელემენტები ტოლია ოპერანდის მატრიცების შესაბამისი ელემენტების ნამრავლის.

Elementwise განყოფილების ოპერატორი. ორობითი ოპერატორი. ოპერანდები არის იგივე ზომის მატრიცები. შედეგი არის მატრიცა, რომლის ელემენტები გამოითვლება როგორც მატრიცის ელემენტების - პირველი არგუმენტის - მატრიცის შესაბამის ელემენტებზე - მეორე არგუმენტის გაყოფის კოეფიციენტი.

Elementwise მარცხენა სამმართველოს ოპერატორი. ორობითი ოპერატორი. ოპერანდები არის იგივე ზომის მატრიცები. შედეგი არის იგივე ზომის მატრიცა. მატრიცის ელემენტები - მეორე ოპერანდი - იყოფა მატრიცის შესაბამის ელემენტებად - პირველ ოპერანდად.

ოპერატორი კონიუგირებული მატრიცის გამოსათვლელად. უნივერსალური ოპერატორი. შედეგი არის მატრიცის კონიუგატი ოპერატორის მატრიცასთან.

ტრანსპოზის ოპერატორი. უნივერსალური ოპერატორი. შედეგი არის მატრიცა, რომელიც გადადის ოპერანდის მატრიცაზე.

ელემენტის სიძლიერის ოპერატორი. ორობითი ოპერატორი.

ოპერანდები შეიძლება იყოს სკალარები ან მატრიცები (სხვადასხვა კომბინაციებში). თუ პირველი არგუმენტი არის მატრიცა, ხოლო მეორე არის სკალარი ან იმავე განზომილების მატრიცა, მაშინ შედეგი არის მატრიცა, რომლის ელემენტები მიიღება პირველი მატრიცის ელემენტების მეორე სკალარული ოპერანდით განსაზღვრულ სიმძლავრემდე აწევით. მეორე მატრიცის ოპერანდის ელემენტები. თუ პირველი ოპერანდი არის სკალარი, ხოლო მეორე არის მატრიცა, მაშინ შედეგი იქნება იგივე ზომის მატრიცა, როგორც ოპერანდის მატრიცა (მეორე). შედეგის მატრიცის ელემენტები მიიღება მეორე (მატრიცის) ოპერანდის შესაბამისი ელემენტით განსაზღვრულ სიმძლავრემდე სკალარულის (პირველი ოპერანდის) აწევით.

მოცემული ოპერატორები თითქმის მთლიანად ფარავს შესაძლო ოპერაციების მთელ დიაპაზონს, რომლებიც უნდა შესრულდეს მატრიცებით. მატრიცული ოპერანდებით არითმეტიკული ოპერატორების გამოყენების რამდენიმე მაგალითი მოცემულია ცხრილში. 2. მატრიცები „A“ და „B“ ინიციალიზებულია დოკუმენტში შემდეგი ბრძანებებით (მომხმარებლის შეყვანა არის თამამი):

>> A=

>> B=[-1,1;3,-2]

ცხრილი 2 მატრიცებით არითმეტიკული მოქმედებების შესრულების მაგალითები.

აღწერა

მატრიცების პროდუქტი.

გამოითვლება ხაზოვანი ალგებრაში მატრიცების გამოთვლის წესების მიხედვით.

მატრიცის გაყოფა.

მატრიცა A მრავლდება B მატრიცის ინვერსიზე.

მარცხენა მატრიცის გამრავლება.

A მატრიცის ინვერსია მრავლდება B მატრიცზე.

მატრიცების ელემენტარული დაყოფა.

A მატრიცის ელემენტები იყოფა B მატრიცის შესაბამის ელემენტებზე.

მარცხენა ელემენტარული დაყოფა.

B მატრიცის ელემენტები იყოფა A მატრიცის შესაბამის ელემენტებზე.

ელემენტების მატრიცის გამრავლება.

A მატრიცის ელემენტები მრავლდება B მატრიცის შესაბამის ელემენტებზე.

მატრიცების ჯამი.

იგი გამოითვლება ხაზოვანი ალგებრაში მატრიცების ჯამის გამოთვლის წესების მიხედვით (დამატებულია A და B მატრიცების შესაბამისი ელემენტები).

მატრიცების განსხვავება.

იგი გამოითვლება ორ მატრიცას შორის სხვაობის გამოთვლის წესების მიხედვით (მატრიცა B-ს შესაბამისი ელემენტები აკლდება A მატრიცის ელემენტებს).

მატრიცის ტრანსპოზიცია.

შედეგი არის მატრიცა A-ზე გადატანილი.

სურათი 9

სურათი 10

თუმცა, არითმეტიკული ოპერატორები შორს არიან ერთადერთი ოპერატორებისგან, რომლებიც გამოიყენება გამოთვლებში.

3. ლოგიკური და შედარების ოპერატორები

ოპერატორთა მნიშვნელოვანი ჯგუფია ლოგიკური ოპერატორები და შედარების ოპერატორები. ოპერანდები ამ შემთხვევაში შეიძლება იყოს სკალარები ან მატრიცები. სანამ ამ ოპერატორების განხილვას დავიწყებთ, ჩვენ აღვნიშნავთ ლოგიკურ მნიშვნელობებთან მუშაობის ზოგიერთ მახასიათებელს.

როგორც წესი, ლოგიკური მნიშვნელობები ნიშნავს მონაცემთა ტიპს, რომლის ცვლადებს შეუძლიათ მიიღონ ორი მნიშვნელობა - მართალიადა ტყუილი(შესაბამისად „მართალი“ და „მცდარი“). Matlab-ში ნულის გარდა ნებისმიერი რიცხვითი მნიშვნელობა ინტერპრეტირებულია როგორც მართალია(ან "ჭეშმარიტი") და არა-ნულოვანი მნიშვნელობები ინტერპრეტირებულია, როგორც ტყუილი(ან "ცრუ"). სინამდვილეში, ეს არის რიცხვითი მნიშვნელობების ლოგიკურ მნიშვნელობებად გადაქცევის წესი. საპირისპირო კონვერტაცია ხორციელდება შემდეგი წესით: ლოგიკური მართალია(ან "true") გარდაიქმნება რიცხვითი მნიშვნელობა "1" და ლოგიკური მნიშვნელობა ტყუილი(ან "false") გარდაიქმნება რიცხვითი მნიშვნელობით "0".

თუ ცვლადს ენიჭება მნიშვნელობა "true" ან "false", ნაჩვენები მნიშვნელობა იქნება "1" ან "0", შესაბამისად.

შედარების ოპერატორების ოპერანდები არის რიცხვითი მნიშვნელობები. ეს არის ორობითი ოპერატორები. თუ ორივე ოპერანდი სკალარულია, შედარება ხდება რიცხვების შედარების წესების მიხედვით. თუ თანაფარდობა მართალია, მნიშვნელობა "1" დაბრუნდება, თუ თანაფარდობა მცდარია, მნიშვნელობა "0". თუ ოპერანდები ერთი და იგივე რანგის მატრიცებია, მატრიცების შესაბამისი ელემენტები შედარებულია (რიცხვითი მნიშვნელობების შედარების წესების მიხედვით). შედეგი არის „ლოგიკური მატრიცა“: მისი ელემენტები უდრის 1-ს ან 0-ს, რაც დამოკიდებულია ორიგინალური მატრიცების შესაბამისი ელემენტების შედარების შედეგზე. თუ ერთი ოპერანდი არის სკალარი, ხოლო მეორე არის მატრიცა, მაშინ მატრიცის თითოეული ელემენტი შედარებულია სკალართან. შედარების ოპერატორები ჩამოთვლილია ცხრილში 3. ბინარული პროგრამირების კომპილაცია

ცხრილი 3 Matlab შედარების ოპერატორები.

ოპერატორი

აღწერა

თანასწორობის ოპერატორი.

ოპერატორი, რომელიც ამოწმებს ოპერანდების მნიშვნელობებს უთანასწორობისთვის.

ოპერატორი, რომელიც ამოწმებს არის თუ არა პირველი ოპერანდის მნიშვნელობა მეორე ოპერანდის მნიშვნელობაზე მეტი.

ოპერატორი, რომელიც ამოწმებს არის თუ არა პირველი ოპერანდის მნიშვნელობა მეორე ოპერანდის მნიშვნელობაზე ნაკლები.

ოპერატორი, რომელიც ამოწმებს, რომ პირველი ოპერანდის მნიშვნელობა არ იყოს ნაკლები მეორე ოპერანდის მნიშვნელობაზე.

ოპერატორი, რომელიც ამოწმებს, რომ პირველი ოპერანდის მნიშვნელობა არ აღემატებოდეს მეორე ოპერანდის მნიშვნელობას.

როგორც შედარების ოპერატორების შემთხვევაში, ლოგიკური ოპერატორების ოპერანდები შეიძლება იყოს სკალარი ან მატრიცა (ორივე ან მხოლოდ ერთი ერთდროულად). თუ ოპერანდები სკალარულია, შესაბამისი ლოგიკური ოპერაციები შესრულებულია ზემოთ აღწერილი რიცხვითი და ლოგიკური მნიშვნელობების კონვერტაციის წესების მიხედვით. თუ ორივე ოპერანდი ერთი და იგივე ზომის მატრიცაა, ლოგიკური ოპერაციები შესრულებულია ელემენტ-ელემენტზე. იმის გათვალისწინებით, რომ ერთი ოპერანდი არის მატრიცა, ხოლო მეორე არის სკალარი, ლოგიკური ოპერაცია ხორციელდება თითოეული მატრიცის ელემენტისა და სკალარისთვის. Matlab ლოგიკური ოპერატორები წარმოდგენილია ცხრილში 4.

ცხრილი 4 Matlab ლოგიკური ოპერატორები.

როგორც შედარება, ასევე ლოგიკური ოპერაციები აბრუნებს მნიშვნელობებს "0" (false) და "1" (true) მატრიცების ან სკალარების ელემენტებისთვის (დამოკიდებულია ოპერანდების ტიპზე).

4. რთული რიცხვები

Matlab-ში შეგიძლიათ გამოიყენოთ არა მხოლოდ რეალური, არამედ რთული რიცხვებიც. სამუშაო ზონაში რთული რიცხვების შეყვანა ხორციელდება რთული რიცხვების წარმოდგენის წესების შესაბამისად. როგორც წარმოსახვითი ერთეული, შეგიძლიათ აირჩიოთ ცვლადებს შორის "i" ან "j", ყოველგვარი წინასწარი დეკლარაციის გარეშე. თუმცა, თუ ცვლადს "i" ან "j" ენიჭება რიცხვითი მნიშვნელობა, შესაბამისი ცვლადი ვერ იქნება გამოყენებული როგორც წარმოსახვითი ერთეული.

>> z=1+2i

>> z+j

>> (2-4i)*(1+z)

12.0000 - 4.0000ი

>> მე*

წარმოსახვით ნაწილსა და წარმოსახვით ერთეულს შორის რთული მნიშვნელობის შეყვანისას, გამრავლების ოპერატორი შეიძლება გამოტოვდეს. ნაგულისხმევად, სიმბოლო "i" გამოიყენება წარმოსახვითი ერთეულის საჩვენებლად (თუმცა ის შეიძლება შევიდეს როგორც "j"). არსებობს მთელი რიგი ფუნქციები, რომლებიც აადვილებს კომპლექსურ რიცხვებთან მუშაობას. მათ შორის აზრი აქვს გამოვყოთ ფუნქციები "real()" და "imag()" რთული რიცხვის რეალური და წარმოსახვითი ნაწილების გამოსათვლელად, შესაბამისად, ფუნქცია "conj()" რთული კონიუგატური რიცხვის გამოსათვლელად, როგორც. ასევე ფუნქცია “complex()”, რომელიც იღებს ორ არგუმენტს (რეალურ და წარმოსახვით ნაწილებს), რის საფუძველზეც იქმნება რთული რიცხვი.

>> კომპლექსი (3,-2)

3.0000 - 2.0000ი

>> კონჯ(ანები)

3.0000 + 2.0000ი

>> რეალური (ან)

>> გამოსახულება(2-4 მე)

არა მხოლოდ სკალარული სიდიდეები, არამედ მატრიცებიც შეიძლება იყოს რთული.

სურათი 11

5. ოპერატორი მნიშვნელობების დიაპაზონის შესაქმნელად

საკმაოდ პოპულარული და ხშირად გამოყენებული Matlab-ში არის "მსხვილი ნაწლავის" ოპერატორი, ანუ ":". მისი გამოყენების რამდენიმე ვარიანტი არსებობს. მოდით შევხედოთ ყველაზე გავრცელებულებს. მწკრივის ვექტორის შესაქმნელად მნიშვნელობებით თანაბრად განაწილებული რაღაც ინტერვალზე, ოპერატორი გამოიყენება შემდეგ ფორმატში: "დიაპაზონის ქვედა ზღვარი, ოპერატორი (ანუ ":") და დიაპაზონის ზედა ზღვარი" - მაგალითად. : "x=a:b". ეს ქმნის მწკრივის ვექტორს (ზემოხსენებული ბრძანებისთვის, ვექტორი იწერება ცვლადზე "x"). ვექტორის პირველი ელემენტი უდრის მითითებული დიაპაზონის ქვედა ზღვარს (მნიშვნელობა "a"). ვექტორული ელემენტების მნიშვნელობების შეცვლის დისკრეტული ნაბიჯი უდრის ერთს. ბოლო ელემენტის მნიშვნელობა განისაზღვრება მითითებული დიაპაზონის ზედა ზღვრით (ამ შემთხვევაში „ბ“). ამრიგად, ბრძანება "x=1:10" ქმნის მწკრივის ვექტორს მნიშვნელობებით "1, 2, 3 და ა.შ. 10"-მდე ჩათვლით (მომხმარებლის შეყვანა მონიშნულია თამამად):

>> x=1:10

1 2 3 4 5 6 7 8 9 10

სურათი 12

თუ თქვენ გჭირდებათ მწკრივის ვექტორის შექმნა მნიშვნელობების თანმიმდევრობით და ერთისგან განსხვავებული დისკრეტული ნაბიჯით, გამოიყენეთ იგივე ოპერატორი „მსხვილი ნაწლავი“ (ეს არის „:“), მაგრამ ოდნავ განსხვავებული ფორმატით: „ მითითებულია მნიშვნელობების დიაპაზონის ქვედა ზღვარი, ოპერატორი "მსხვილი ნაწლავი", დისკრეტული ნაბიჯი, ისევ "მსხვილი ნაწლავის" ოპერატორი და დიაპაზონის ზედა ზღვარი" - მაგალითად: "y=a:m". :ბ“. მწკრივის ვექტორი იქმნება პირველი მნიშვნელობით - დიაპაზონის ქვედა ზღვარი (მოცემული ბრძანებისთვის ეს არის "a"). ყოველი შემდეგი ელემენტი მიიღება წინა ელემენტზე დისკრეტული ნაბიჯის სახით (ამ შემთხვევაში "m") მითითებით. გენერირებული მასივის ელემენტების მნიშვნელობები არ აღემატება დიაპაზონის ზედა ზღვარს (ანუ "ბ"). მსხვილი ნაწლავის ოპერატორის ამ გამოყენების მაგალითი მოცემულია ქვემოთ (კოდის ამონაწერი სამუშაო ადგილიდან, მომხმარებლის შეყვანა თამამად):

>> y=1:0.7:10

სვეტები 1-დან 8-მდე

0000 7000 2.4000 3.1000 3.8000 4.5000 5.2000 5.9000

სვეტები 9-დან 13-მდე

6.6000 7.3000 8.0000 8.7000 9.4000

სურათი 13

ამ შემთხვევაში, მწკრივის ვექტორი y იქმნება მნიშვნელობებით 1-დან 10-მდე დისკრეტული ნაბიჯით 0.7 - მნიშვნელობები 0, 7, 2.4 და ა.შ. 9.4-მდე ჩათვლით (შემდეგი ჰიპოთეტური მნიშვნელობა 10.1 თანმიმდევრობით აღემატება 10 დიაპაზონის ზედა ზღვარს, ამიტომ იგი არ შედის გენერირებულ ვექტორში). შეტყობინებები „სვეტები 1-დან 8-მდე“ და „სვეტები 9-დან 13-მდე“ ავტომატურად ჩნდება იმის გამო, რომ ბრძანების „y=1:0.7:10“ შესრულების შედეგი არ ჯდება ერთ ხაზზე, ამიტომ ნაწილი შედეგის ვექტორი გადადის შემდეგ სტრიქონზე. ეს შეტყობინებები გამიზნულია ელემენტების ინდექსის იდენტიფიკაციის პროცესის გასაადვილებლად.

მსხვილი ნაწლავის ოპერატორის გამოყენების მეორე გზა არის ელემენტების ინდექსირებისას. როგორც წინა შემთხვევაში, ინდექსებში მსხვილი ნაწლავის ოპერატორის გამოყენების რამდენიმე ფორმატი ან წესი არსებობს.

მაგალითად, თუ ორწერტილი ოპერატორი გამოიყენება ფორმატში "A(i:j,k)",

შემდეგ შედეგი არის სვეტის ვექტორი, რომელიც იქმნება მატრიცის "A" ელემენტებიდან, რომელიც მდებარეობს "k-th" სვეტში "i-th"-დან "j-th" მწკრივის ჩათვლით. მითითება ფორმატში "A(:,k)" აბრუნებს მატრიცის "A" მთელ "kth" სვეტს მნიშვნელობად.

თქვენ შეგიძლიათ გამოიყენოთ ორწერტილი ოპერატორი ერთდროულად ორი ინდექსის მითითებისას. მაგალითად, ბრძანება "A(i:j,m:n)" აბრუნებს ქვემატრიცას, რომელიც შედგება რიგებისაგან "i-th"-დან "j-th"-მდე და ერთდროულად სვეტებისგან "m-th"-დან "n-th"-მდე. .

მოდით შევხედოთ მსხვილი ნაწლავის ოპერატორის გამოყენების რამდენიმე მაგალითს.

კერძოდ, ორიგინალური მატრიცა "A" შეყვანილია ბრძანებით:

A=

შემდეგი ბრძანებები იყენებს ნაწლავის ოპერატორს ქვემატრიცების ამოსაღებად ორიგინალური მატრიციდან "A":

>> A(1:3,2)

>> A(3,2:4)

>> A(3:4,1:2)

მაგალითად, ბრძანება "A(1:3,2)" აბრუნებს სვეტის ვექტორს, რომელიც შედგება ელემენტებისგან პირველიდან მესამე სტრიქონიდან "A" მატრიცის მეორე სვეტში. ბრძანება "A(3,2:4)" აბრუნებს მწკრივის ვექტორს, რომელიც შედგება მატრიცის "A" მეორედან მეოთხე სვეტის ჩათვლით მესამე რიგის ელემენტებით. დაბოლოს, ბრძანება „A(3:4,1:2)“ აბრუნებს მატრიცის „A“ ქვემატრიცას, რომლის ზედა მარცხენა ელემენტს აქვს ინდექსები „(3,1)“, ხოლო ქვედა მარჯვენა ელემენტს აქვს ინდექსები “(4,2)”.

6. ჩაშენებული მათემატიკის ფუნქციები

Matlab-ს აქვს საკმაოდ დიდი რაოდენობით ჩაშენებული ფუნქციები, რომლებიც ხელმისაწვდომია ნაგულისხმევად. მათი ბირთვი შედგება მათემატიკური ფუნქციებისგან, რომლებიც შედარებით ხშირად გამოიყენება პრაქტიკაში. ზოგიერთი მათგანი ჩამოთვლილია მე-5 ცხრილში.

ცხრილი 5 Matlab-ის ზოგიერთი მათემატიკური ფუნქცია.

აღწერა

ფუნქციის არგუმენტით მითითებული რიცხვის (მათ შორის კომპლექსის) მოდული.

ფუნქციის არგუმენტით მითითებული რიცხვის რკალის კოსინუსი.

ფუნქციის არგუმენტის რკალის კოსინუსი. შედეგი წარმოდგენილია გრადუსით.

ფუნქციის არგუმენტით მითითებული რიცხვის შებრუნებული ტანგენსი.

ფუნქციის არგუმენტის არკოტანგენსი. შედეგი წარმოდგენილია გრადუსით.

ფუნქციის არგუმენტით მითითებული რიცხვის არკოსეკანტი.

ფუნქციის არგუმენტის არკუსეკანტი. შედეგი წარმოდგენილია გრადუსით.

ფუნქციის არგუმენტით მითითებული რიცხვის რკალი.

ფუნქციის არგუმენტის რკალი. შედეგი წარმოდგენილია გრადუსით.

რკალი არის ჰიპერბოლური ფუნქციის არგუმენტით მითითებულ რიცხვზე.

ფუნქციის არგუმენტით მითითებული რიცხვის რკალი.

ფუნქციის არგუმენტის არქსინი. შედეგი წარმოდგენილია გრადუსით.

რკალი ჰიპერბოლურია ფუნქციის არგუმენტით მითითებულ რიცხვში.

ფუნქციის არგუმენტად გადაცემული რიცხვის არქტანგენტი.

ფუნქციას აქვს ორი არგუმენტი (მაგალითად, atan(y,x)). შედეგი არის მიმართულება (კუთხე მნიშვნელობების დიაპაზონში -p-დან p-მდე) წერტილამდე შესაბამისი კოორდინატებით (ამ შემთხვევაში, წერტილი კოორდინატებით (y,x)). თუ არგუმენტები რთულია, მათი წარმოსახვითი ნაწილები იგნორირებულია.

ფუნქციის არგუმენტის არქტანგენტი. შედეგი წარმოდგენილია გრადუსით.

არქტანგენსი ჰიპერბოლურია ფუნქციის არგუმენტად გადაცემული რიცხვიდან.

არგუმენტის დამრგვალების ფუნქცია პლუს უსასრულობის მიმართულებით - დამრგვალება ხორციელდება არგუმენტზე არანაკლებ არგუმენტამდე.

ფუნქციის არგუმენტად გადაცემული რიცხვის კოსინუსი.

ფუნქციის არგუმენტის კოსინუსი, მითითებულია გრადუსებში.

ფუნქციის არგუმენტად გადაცემული რიცხვის ჰიპერბოლური კოსინუსი.

ფუნქციის არგუმენტად გადაცემული რიცხვის კოტანგენსი.

ფუნქციის არგუმენტის კოტანგენსი, მითითებულია გრადუსებში.

ფუნქციის არგუმენტად გადაცემული რიცხვის ჰიპერბოლური კოტანგენსი.

ფუნქციის არგუმენტად გადაცემული რიცხვის კოსეკანტი.

ფუნქციის არგუმენტის კოსეკანტი მითითებულია გრადუსებში

ფუნქციის არგუმენტად გადაცემული რიცხვის ჰიპერბოლური კოსეკანტი.

ექსპონენციალური: ექსპონენციალური ფუნქცია ეილერის მუდმივი ფუძით და ფუნქციის არგუმენტით განსაზღვრული მაჩვენებლით.

ფორმის expm1(x) ბრძანება ითვლის მნიშვნელობას exp(x) გაზრდილი სიზუსტით -

ფუნქცია აბრუნებს რიგის ვექტორს ფუნქციის არგუმენტით განსაზღვრული რიცხვის (მათი სიმრავლის გათვალისწინებით) მარტივი ფაქტორებით.

ფუნქცია ფუნქციის არგუმენტით განსაზღვრული რიცხვის ფაქტორიალის გამოსათვლელად.

ფუნქცია დამრგვალება ნულისკენ. შედეგი არის რიცხვი, რომელიც მიიღება ფუნქციის არგუმენტის დამრგვალებით უახლოეს მთელ რიცხვამდე ნულისკენ.

არგუმენტის დამრგვალების ფუნქცია უახლოეს მთელ რიცხვამდე, რომელიც არ აღემატება არგუმენტს, არის დამრგვალება მინუს უსასრულობისკენ.

ფუნქცია აბრუნებს მთელი რიცხვების ან მთელი რიცხვების მასივების უდიდეს საერთო გამყოფს - ფუნქციის არგუმენტებს.

ფუნქციაზე გადასული არგუმენტების აბსოლუტური მნიშვნელობების კვადრატების ჯამის კვადრატული ფესვი.

ფუნქციას აქვს ორი არგუმენტი. შედეგი არის პირველი არგუმენტის მეორეზე დაყოფის მთელი ნაწილი. თქვენ ასევე შეგიძლიათ მიუთითოთ ვარიანტი - ერთ ფრჩხილებში ფუნქციის დასახელება, რომლითაც ხდება დამრგვალება.

ფუნქცია აბრუნებს მთელი რიცხვების ან მთელი რიცხვების მასივების უმცირეს საერთო ჯერადს ფუნქციის არგუმენტებად.

ფუნქციის არგუმენტით მითითებული რიცხვის ბუნებრივი ლოგარითმი.

ფუნქციის არგუმენტით მითითებული რიცხვის ფუძის 10 ლოგარითმი.

ბრძანება, როგორიცაა log1p(x) ითვლის მნიშვნელობას log(1+x) გაზრდილი სიზუსტით.

ფუნქციის არგუმენტით მითითებული რიცხვის ფუძე 2 ლოგარითმი.

ფუნქცია აბრუნებს ფუნქციის პირველი არგუმენტის მნიშვნელობის მეორე არგუმენტზე გაყოფის ნარჩენს. დეპარტამენტის მთელი ნაწილი განისაზღვრება froor() ფუნქციით.

ფუნქცია თავის მნიშვნელობად აბრუნებს ბინომიალურ კოეფიციენტებს. თუ ფუნქცია გამოიძახება ფორმატში nchoosek (n,k), მაშინ დაბრუნებული მნიშვნელობა არის:

ფუნქცია თავის მნიშვნელობად აბრუნებს უახლოეს მთელ რიცხვს - ორის ხარისხს, რომელიც არ არის ნაკლები ფუნქციის არგუმენტის მოდულზე.

nthroot(x,n) ბრძანება აბრუნებს რეალური რიცხვის ან x რეალური მასივის ელემენტებს (პირველი არგუმენტი) n ძირს (მეორე არგუმენტი).

ფუნქციის გამოძახება შესაძლებელია ერთი ან ორი არგუმენტით. თუ ფუნქციას აქვს ერთი არგუმენტი (მაივი) და ფუნქციას ეწოდება ფორმატი pow2(x), მაშინ შედეგი არის ორი ძალების მასივი, მაჩვენებლები განისაზღვრება x მასივით. თუ ფუნქცია გამოიძახება ორი არგუმენტით ფორმატში pow2(x,y), მაშინ შედეგი არის x.*2.^y.

ფუნქციას აქვს ორი არგუმენტი. თუ არგუმენტები სკალარულია, შედეგი არის პირველი არგუმენტის მნიშვნელობა მეორე არგუმენტით მითითებულ ძალამდე. უფრო ზოგადად, სიმძლავრის გამომავალი (A,B) არის "A.^B".

ფუნქცია ქმნის მარტივი რიცხვების სიას. რიცხვების რაოდენობა მითითებულია ფუნქციის არგუმენტით.

ფუნქცია აბრუნებს ფუნქციის პირველი არგუმენტის მნიშვნელობის მეორე არგუმენტზე გაყოფის ნარჩენს. განშტოების მთელი ნაწილი განისაზღვრება fix() ფუნქციით.

ფუნქცია, რომელიც ამრგვალებს არგუმენტს უახლოეს მთელ რიცხვამდე.

ფუნქციის არგუმენტით მითითებული რიცხვის სეკანტი.

ფუნქციის არგუმენტის სეკანტი, მითითებულია გრადუსებში.

ფუნქციის არგუმენტით მითითებული რიცხვის ნიშანი (დადებითი რიცხვებისთვის - ერთი, უარყოფითი რიცხვებისთვის - მინუს ერთი, ნულისთვის - ნული).

ფუნქციის არგუმენტით მითითებული რიცხვის სინუსი.

ფუნქციის არგუმენტის სინუსი, მითითებულია გრადუსებში.

ფუნქციის არგუმენტით მითითებული რიცხვის კვადრატული ფესვი.

აღწერა

ფუნქციის არგუმენტით მითითებული რიცხვის ტანგენტი.

ფუნქციის არგუმენტის ტანგენტი, მითითებულია გრადუსებში.

მიუხედავად იმისა, რომ ზემოთ წარმოდგენილი ფუნქციების უმეტესობა მათემატიკურად არის განსაზღვრული სკალარული სიდიდეებისთვის, ისინი ზოგადად შეიძლება გამოყენებულ იქნას მატრიცის არგუმენტებზეც. ამ შემთხვევაში, ფუნქციონალური ოპერატორის მოქმედება გამოიყენება მატრიცის თითოეულ ელემენტზე. მაგალითად, თუ ცვლადი "A" არის მატრიცა ელემენტებით "A(i,j)", მაშინ "exp(A)" ბრძანების შესრულების შედეგად მივიღებთ იმავე რანგის მატრიცას და მის ელემენტებს. გამოითვლება როგორც "exp(A(i,j) ))". ზოგიერთ შემთხვევაში ეს მიდგომა მიუღებელია. არსებობს ეგრეთ წოდებული მატრიცული ფუნქციები, რომელთა არგუმენტები, განსაზღვრებით, არის მატრიცები (ძირითადად კვადრატული). ამ ფუნქციების შედეგი გამოითვლება სპეციალურად მატრიცებისთვის შემუშავებული ალგორითმების გამოყენებით. მაგალითად, Matlab-ს აქვს ჩაშენებული მატრიცული ფუნქციები მაჩვენებლის, ლოგარითმისა და კვადრატული ფესვისთვის. ეს არის ფუნქციები "expm()", "logm()" და "sqrtm()", შესაბამისად. მაგალითად, თუ "A" არის კვადრატული მატრიცა, მაშინ ფუნქცია "expm(A)" ითვლის მატრიცის ექსპონენციას. განმარტებით, ეს არის სერია:

შედეგი არის მატრიცა, რომელიც გამოითვლება, ჩვეულებრივ, მატრიცის "A" საკუთრივ მნიშვნელობებსა და საკუთრივ ვექტორებზე დაყრდნობით. მატრიცის არგუმენტის "A" მატრიცის ლოგარითმი, რომელიც გამოითვლება "logm(A)" ინსტრუქციით არის ისეთი მატრიცა, რომ მისი მატრიცის მაჩვენებლის ტოლია მატრიცის "A". სხვა სიტყვებით რომ ვთქვათ, განმარტებით, თუ "B=logm(A)", მაშინ "expm(B)=A", და ფუნქცია "logm()" არის ფუნქციის "expm()" შებრუნებული. ანალოგიურად, მატრიცის "A" კვადრატული ფესვის აღება "sqrtm()" ფუნქციის გამოყენებით წარმოქმნის მატრიცას, რომელიც კვადრატში იძლევა მატრიცას "A". მაგალითად, თუ "B=sqrtm(A)", მაშინ "B*B=A".

Matlab-ს ასევე აქვს სპეციალური ფუნქციების ფართო სპექტრი, რომელთაგან ზოგიერთი ჩამოთვლილია ცხრილში 6.

ცხრილი 6. რამდენიმე სპეციალური Matlab მათემატიკური ფუნქცია.

აღწერა

ჰაეროვანი ფუნქცია.

ბესელის ფუნქცია მესამე სახის (ჰანკელის ფუნქცია).

ბრძანება besseli(n,x) აბრუნებს პირველი ტიპის ბესელის ფუნქციას (ინდექსი n).

ბრძანება besselj(n,x) აბრუნებს ბესელის პირველი ტიპის ფუნქციას (ინდექსი n), რომელიც ბესელის განტოლების ერთ-ერთი ამონახსნებია.

ბრძანება besselk(n,x) აბრუნებს მეორე სახის ბესელის ფუნქციას (ინდექსი n), რომელიც არის ბესელის შეცვლილი განტოლების ერთ-ერთი ამონახსნები. მთელი რიცხვების ინდექსებისთვის, შესაბამისი გამოხატულება გამოითვლება როგორც ლიმიტი.

ბრძანება besselj(n,x) აბრუნებს მეორე სახის ბესელის ფუნქციას (ინდექსი n), რომელიც ბესელის განტოლების ერთ-ერთი ამონახსნებია. მთელი რიცხვების ინდექსებისთვის, შესაბამისი გამოხატულება გამოითვლება როგორც ლიმიტი.

ეილერის ბეტა ფუნქცია.

ეილერის არასრული ბეტა ფუნქცია.

ეილერის ბეტა ფუნქციის ბუნებრივი ლოგარითმი. არგუმენტები გადაეცემა ბეტა ფუნქციას.

ელიფსური იაკობის ფუნქცია. თუ ფუნქცია გამოიძახება ორი არგუმენტით ellipj(u,m) ფორმატში, ფუნქციების მნიშვნელობები (ვექტორი) ბრუნდება შედეგად. sn(u) , კნ(u) და დნ(u).

პირველი და მეორე სახის სრული ელიფსური ინტეგრალის გამოსათვლელი ფუნქცია (სიდიდეების ვექტორი).

შეცდომის ფუნქცია.

შეცდომის ფუნქცია (ნარჩენი).

შეცდომის ფუნქცია (ნარჩენი ნორმალიზებული).

erf() შეცდომის ფუნქციის შებრუნებული ფუნქცია.

erfc() შეცდომის ფუნქციის შებრუნებული ფუნქცია.

ინტეგრალური მაჩვენებელი.

ეილერის გამა ფუნქცია.

არასრული გამა ფუნქცია.

ეილერის გამა ფუნქციის ბუნებრივი ლოგარითმი. ფუნქციის არგუმენტი გადასცემს გამა ფუნქციის არგუმენტს.

ლეჟანდრის ასოცირებული მრავალწევრების გამოსათვლელი ფუნქცია. ფუნქციის legendre(n,x) ფორმატში გამოძახების შედეგად, ბრუნდება ასოცირებული Legendre პოლინომების მნიშვნელობების სვეტის ვექტორი. () Pn xამისთვის = 0,1,2,...,

ფსი-პოლიგამიური ფუნქცია.

როგორც ძირითადი მათემატიკის ფუნქციების შემთხვევაში, უმეტეს სპეციალურ ფუნქციებს შეუძლიათ მატრიცები არგუმენტებად მიიღონ. ამ შემთხვევაში, ფუნქცია გამოითვლება მატრიცის თითოეული ელემენტისთვის.

7. რიცხვითი მონაცემების გამომავალი ფორმატი

ზოგიერთ შემთხვევაში, საჭიროა შეცვალოთ ეკრანზე მომხმარებლის ბრძანებებიდან მიღებული მონაცემების ჩვენება. უპირველეს ყოვლისა, ჩვენ აღვნიშნავთ, რომ თქვენ საერთოდ არ გჭირდებათ ბრძანების შედეგის ჩვენება ბრძანების ფანჯარაში. ამისათვის საკმარისია შესაბამისი ბრძანების დასრულება მძიმით (ანუ „;“). ამ შემთხვევაში Enter კლავიშის დაჭერის შემდეგ ბრძანება სრულდება, მაგრამ მისი შესრულების შედეგი ბრძანების ფანჯარაში არ ჩანს. ეს რეჟიმი განსაკუთრებით მოსახერხებელია იმ შემთხვევებში, როდესაც საჭიროა უხერხული შუალედური გამოთვლების შესრულება, რაც, ერთის მხრივ, აუცილებელია საბოლოო შედეგის მისაღებად, ხოლო მეორე მხრივ, სამუშაო სივრცის არევას. ამიტომ, გონივრული გამოსავალი ამ სიტუაციიდან არის ბრძანების შედეგის დამალვა. რიცხვითი გამომავალი ფორმატი ცალსახად არის მითითებული "ფორმატი" განცხადების გამოყენებით. გამომავალი ფორმატის განსაზღვრის ბრძანებაში „ფორმატი“ საკვანძო სიტყვის შემდეგ მითითებულია გამოსაყენებელი ფორმატი. მისაღები ფორმატები, მოკლე აღწერილობით, ჩამოთვლილია ცხრილში 7.

ცხრილი 7 რიცხვების ფორმატები.

აღწერა

რიცხვითი მონაცემების ჩვენების ფორმატი, რომელიც აჩვენებს ოთხ ციფრს ათობითი წერტილის შემდეგ (ფიქსირებული წერტილის მონაცემთა ფორმატი). ფორმატი ნაგულისხმევია.

რიცხვის ფორმატი, რომელიც აჩვენებს 7, 14 ან 15 ციფრს ათობითი წერტილის შემდეგ, რაც დამოკიდებულია რიცხვითი მონაცემების ტიპზე (ფიქსირებული წერტილის მონაცემთა ფორმატი).

ციფრული მონაცემების ჩვენების ფორმატი მანტისით და ექსპონენტით (მცურავი წერტილის მონაცემთა ფორმატი), რომელიც აჩვენებს ოთხ ციფრს ათობითი წერტილის შემდეგ.

ციფრული დისპლეის ფორმატი მანტისითა და ექსპონენტით (მცურავი წერტილის მონაცემთა ფორმატი), რომელიც აჩვენებს 7, 14 ან 15 ციფრს ათობითი წერტილის შემდეგ, რიცხვითი მონაცემთა ტიპის მიხედვით.

მნიშვნელობიდან გამომდინარე, ჩვენებისთვის გამოიყენება მცურავი წერტილის ან ფიქსირებული წერტილის ფორმატი. ათწილადის წერტილის შემდეგ ნაჩვენებია ოთხი ციფრი.

მნიშვნელობიდან გამომდინარე, ჩვენებისთვის გამოიყენება მცურავი წერტილის ან ფიქსირებული წერტილის ფორმატი. ათობითი წერტილის შემდეგ გამოჩნდება 7, 14 ან 15 ციფრი.

საინჟინრო ფორმატი ოთხი მაჩვენებელი ციფრით ათობითი წერტილის შემდეგ და მაჩვენებლით, რომელიც სამის ნამრავლია.

საინჟინრო ფორმატი 7, 14 ან 15 მაჩვენებელი ციფრით ათობითი წერტილის შემდეგ და მაჩვენებლით, რომელიც არის სამის ჯერადი.

ფორმატი, რომელშიც დადებითი რიცხვები აჩვენებს + ნიშანს, უარყოფითი რიცხვები აჩვენებს - ნიშანს და ნული აჩვენებს ინტერვალს.

ფინანსური ფორმატი, რომელიც აჩვენებს ორ ციფრს ათობითი წერტილის შემდეგ.

აჩვენეთ რიცხვები თექვსმეტობითი აღნიშვნით.

რიცხვების ჩვენება რაციონალური წილადების სახით.

გამოთვლის შედეგების ჩვენების რეჟიმი კომპაქტურ ფორმაში, ხაზებს შორის შემცირებული მანძილით.

გაანგარიშების შედეგების ჩვენების რეჟიმი ხაზებს შორის გაზრდილი ინტერვალებით. ნაგულისხმევად გამოიყენება.

ქვემოთ მოცემულია p რიცხვის სხვადასხვა ფორმატში ჩვენების მაგალითი (ბრძანებებში გამოყენებულია ჩაშენებული მუდმივი "Matlab pi"):

>> პი

>> ფორმატი გრძელი

>> პი

3.141592653589793

>> ფორმატი გრძელი ე

>> პი

3.141592653589793e+000

>> ფორმატი გრძელი ინგ

>> პი

3.14159265358979e+000

>> ფორმატის ბანკი

>> პი

>> ფორმატის ვირთხა

>> პი

>> ფორმატი +

>> პი

სურათი 14

გამომავალი ფორმატის პარამეტრები გავლენას ახდენს მხოლოდ რიცხვითი მნიშვნელობების ჩვენებაზე და არა მათი პრეზენტაციის სიზუსტეზე. ამიტომ, მონაცემთა გამოტანის მეთოდის არჩევისას მთავარი კრიტერიუმი შეიძლება იყოს მოხერხებულობის საკითხი. არსებობს ერთი ფუნქცია, რომელიც, მართალია, პირდაპირ არ არის დაკავშირებული რიცხვითი მონაცემების გამომავალი ფორმატის დადგენასთან, მისი გამოყენება მნიშვნელოვნად ამარტივებს სისტემასთან მომხმარებლის ურთიერთქმედების პროცესს. ეს არის "clc" ფუნქცია, რომელიც საშუალებას გაძლევთ გაასუფთავოთ სამუშაო სივრცე შეყვანის ბრძანებებისგან და მათი შესრულების შედეგები.

პრაქტიკულინაწილი

1. შექმენით მწკრივის ვექტორი: საწყისი ელემენტია - p, ბოლო ელემენტია p, ნაბიჯი არის 0. მწკრივის გადატანა სვეტში.

2. შექმენით 5 ელემენტის სამი მწკრივის ვექტორი fi =, სადაც n = 5 x = 2, 3, 4-ისთვის. შეუთავსეთ ეს რიგები მატრიცაში A (3 x 5).

3.შექმენით სამი სვეტის ვექტორი არითმეტიკული პროგრესიის 5 ელემენტიდან. არითმეტიკული პროგრესიის ელემენტი გამოითვლება ფორმულის გამოყენებით:

სადაც "an-1" არის წინა ელემენტი; "an" - შემდგომი.

ვექტორის ხუთი ელემენტი იქმნება პირველი ელემენტით "a"-დან დაწყებით და არითმეტიკული პროგრესიის საფეხურის "d" გამოყენებით, რათა მიუთითოთ შემდეგი ელემენტები:

პირველი სვეტის ვექტორისთვის: a = 2; d = 1:

მეორე სვეტის ვექტორისთვის: a = 7; d = 2:

მესამე სვეტის ვექტორისთვის: a = 10; d =-2:

4. გააერთიანეთ ეს სვეტის ვექტორები B მატრიცაში (5 X 3).

5. გადაიტანეთ მატრიცა B და შეუთავსეთ A მატრიცას M(6 × 5) მატრიცაში.

6. ამოიღეთ მეორე რიგი მატრიციდან A.

7. B მატრიცისთვის გადატვირთეთ მესამე რიგი და ამოიღეთ ბოლო ორი მწკრივი.

8. შექმენით მატრიცა H(2 × 2) M მატრიცის პირველი ორი მწკრივისა და სვეტის არჩევით.

9. repmat ფუნქციის გამოყენებით შექმენით მატრიცა, რომელიც შედგება 2 x 3 H მატრიცისგან.

10. შექმენით მატრიცები 3 x 3 ზომებით:

C - ერთეული:

F - თანაბრად განაწილებული შემთხვევითი რიცხვები:

E - ჩვეულებრივ განაწილებული შემთხვევითი რიცხვები:

11. იპოვეთ მინიმალური ელემენტი 3 x 5 განზომილების თანაბრად განაწილებული რიცხვების მატრიცაში „გადაკეთების“ ფუნქციის გამოყენებით.

1. ააგეთ კონვერტის ფუნქციების გრაფიკები [-1,-0.3] ინტერვალზე 0.005 ნაბიჯით.

ნიშნის პირველი გრაფიკი არის წითელი მყარი ხაზი, ხოლო მეორე არის მწვანე ტირე-წერტილი ხაზი მარკერის x წერტილებით. შემდეგ გადაიტანეთ იმავე ფუნქციების დისკრეტული ნიმუშების გრაფიკები მიღებულ გრაფიკებზე წინა შედეგის წაშლის გარეშე.

2. ააგეთ დღიური ტემპერატურის გრაფიკები; დროისა და ტემპერატურის ვექტორების მნიშვნელობები ორი დღის განმავლობაში მოცემულია ქვემოთ.

დრო - 0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22.

ტემპერატურა მაისი 10 - 14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13. ტემპერატურა 11 მაისი - 12 13 13 14 16 18 20 20 251 251 251.

შექმენით გრაფიკები სათაურით „ყველა ტემპერატურა“ და „X“ ღერძის გასწვრივ დანიშნეთ „დრო“; "Y" ღერძის გასწვრივ "ტემპერატურა"; ლეგენდაში - "10 მაისი", "11 მაისი" და განათავსეთ იგი ქვედა მარცხენა კუთხეში.

3. ააგეთ ფუნქციის სამგანზომილებიანი გრაფიკები:

(x,) = 4 ცოდვა (2р x) cos(5რ )(1 - x 2 )(1 ?)

მართკუთხა ფართობზე "x [?1], y » 0,05 საფეხურით ლაბორატორიულ სამუშაოებში განხილული ყველა მეთოდის გამოყენებით, განთავსება ცალკეულ ადგილებში ერთ ფანჯარაზე. გრაფიკების ასაგებად გამოყენებული ფუნქციების სახელები უნდა იყოს შეტანილი ამ გრაფიკების სათაურებში.

გამოქვეყნებულია Allbest.ru-ზე

...

სახელები შეიცვალა, ყველა მატჩი შემთხვევითია.

უვერტიურა

ნება მომეცით დაუყოვნებლივ ვთქვა, რომ MATLAB არის შესანიშნავი ინსტრუმენტი. შესანიშნავი ინსტრუმენტი, რომელიც ჩვენ არასწორად გამოვიყენეთ.

გადახედეთ ჩვენს კომპანიას. ჩვენი საქმიანობის სფეროა პროგრამული უზრუნველყოფის დამუშავება ინდუსტრიისთვის და მრავალი სხვა. კომპანიაში 100-მდე ადამიანია დასაქმებული და მე ვარ ერთ-ერთი თანამშრომელი ამ კომპანიაში, ვამუშავებ ალგორითმებს. ჩვენ ასევე გვაქვს ფლაგმანი პროდუქტი, რომელსაც მოაქვს მთავარი მოგება.

ფლაგმანი პროდუქტი არის ბიზნეს აპლიკაცია. მას აქვს მრავალი ფორმა და ანგარიში, საკუთარი მონაცემთა ბაზა და გამოთვლითი ბირთვი. გამოთვლითი ბირთვი იწერება C#-ში მშობლიური კოდის გამოყენების გარეშე. ეს გადაწყვეტილება დეველოპერებმა შეგნებულად მიიღეს. Parallel.For იმდენად მაცდური იყო, მაგრამ ყველას სურდა ცუდი სიზმარივით დაევიწყებინა C++.



რეალობამ, როგორც ხშირად ხდება, არ ისმინა ჩვენი სურვილები და C#-ის სიჩქარე მალე არასაკმარისი გახდა. კიდევ ერთი პრობლემა ის არის, რომ, როგორც აღმოჩნდა, პროგრამისტებს, რაც არ უნდა კარგი კოდი დაწერონ, ნაკლებად ესმით ხაზოვანი ალგებრა.

შემდეგ ჩვენმა მთავარმა ალგორითმისმა შემოგვთავაზა იდეა. ამ იდეის აღწერა და რა გამოვიდა მისგან არის ამ სტატიის არსი.

იდეა

იდეა მარტივი იყო. იმის ნაცვლად, რომ ხელფასი გადაუხადოთ ერთ ჭკვიან პროგრამისტს (რომელიც შეძლებს კარგი კოდის დაწერას C#-ში და გაიგებს ჩვენი „მატანის“ სირთულეებს და ამის პოვნა ადვილი არ არის), შეგიძლიათ დაიქირაოთ ორი „ნახევრად ჭკვიანი“. პირველი დაწერს პროტოტიპებს MATLAB-ში, მეორე გადასცემს გადაწყვეტას C#-ზე.
MATLAB ამ შემთხვევაში წარმოდგენილი იყო როგორც ალგორითმის დოკუმენტაციის ინსტრუმენტი. ამ გადაწყვეტას შემდეგი უპირატესობები ჰქონდა:

  • MATLAB არის მარტივი ენა, რომელსაც გამოცდილ პროგრამისტს შეუძლია 1 დღეში ისწავლოს
  • ყველა მათემატიკოსი წერს MATLAB-ში

აღსანიშნავია, რომ ადრე Mathcad, UML დიაგრამები და თუნდაც მხოლოდ ფურცელი გამოიყენებოდა ალგორითმის დოკუმენტაციისთვის.

იდეით კამათობდნენ, არ მიიღეს. მაგრამ საბოლოოდ მთავარმა ალგორითმისტმა ყველა დაარწმუნა და შეიქმნა Matlab-ში დამწერი ალგორითმის გუნდი. მეც შევუერთდი ამ გუნდს. ჩვენს გუნდში ასევე შედიოდა ერთი პროგრამისტი დეველოპერებიდან, რომელმაც დაუფიქრებლად უნდა გადაიტანოს ჩვენი Matlab სავარჯიშოები C#-ზე.

მე აღვნიშნავ, რომ ამ იდეის მიტოვების წინადადებების გარდა, იყო წინადადება მინიმუმ python+numpy-ის გამოყენების შესახებ. თუ მხოლოდ იმ მიზეზით, რომ არავის ჰქონდა MATLAB-ში განვითარების მნიშვნელოვანი გამოცდილება (მე ვწერდი პითონში და R-ში, დანარჩენები იყვნენ მათემატიკოსები და ინჟინრები, რომლებიც იყენებდნენ MATLAB-ს მოწინავე კალკულატორად). წინადადებები, როგორც გესმით, უარყოფილი იქნა.

ერთი წელი გავიდა...

გავიდა ერთი წელი და ახლა შეგვიძლია შევაჯამოთ რამდენიმე შედეგი:

  • მათემატიკოსებმა არ იციან კოდის დაწერა. და ისინი თავად ვერ აცნობიერებენ ლაფშს, რომელიც გამოდის მათი კალმიდან. არ არსებობს კონკრეტული ცოდნა, გამოცდილება, პროგრამირების კულტურა
  • ვინაიდან ჩვენ მივატოვეთ დიაგრამები და Mathcad, გვინდოდა გამოგვეყენებინა რეალური მონაცემთა წყაროები ჩვენი MATLAB პროგრამებისთვის. შედეგად, ჩვენ დიდი დრო დავხარჯეთ Matlab-ზე Flagship პროდუქტის ფუნქციონალური ნაწილის დუბლირებაზე.
  • სანამ ჩვენ ვაკეთებდით პროგრამირებას, დრო არ იყო რეალურზე მუშაობისთვის ალგორითმიცოტა დარჩა
  • MATLAB არ არის შესაფერისი დიდი პროგრამების შესაქმნელად. მაინც არ გვიწყობს. დინამიური სუსტი აკრეფა, ნელი მარყუჟები, ძალიან, ძალიან ნელი OOP (ისე, რომ ნაწილობრივ მომიწია OOP-ის გამოყენებაზე უარის თქმა), მწირი მატრიცების არასრული მხარდაჭერა
  • კოდის MATLAB-დან C#-ზე გადატანა ადვილი არ არის. კიდევ უფრო რთულია რეფაქტორირებისა და ოპტიმიზაციების უკან დახატვა
შედეგად, ჩვენ არ შეგვიძლია წინასწარ გამოვთვალოთ რამდენი დრო დასჭირდება კონკრეტული ფუნქციის განხორციელებას. ერთი კვირა ან იქნებ თვე?

დასკვნის ნაცვლად

სტატიის დასაწყისშივე ცოტა მოვიტყუე, რადგან... ისტორია გრძელდება დღემდე. ჩვენ ვაგრძელებთ წერას MATLAB-ში, ჩვენი კოდი აგრძელებს C#-ზე გადატანას. თუმცა ახლა ყველა თანხმდება, რომ მთავარი ალგორითმის იდეას აქვს ხარვეზები. მაგრამ უკვე გვიანია რაიმეს შეცვლა.

ამასობაში ისინი იწყებენ საუბარს MATLAB-დან C++-ზე გადაწყვეტილებების დამატებით გადაკოდირებაზე...

მათ, ვინც უმაღლეს მათემატიკას ეხება, კარგად იციან, რა მათემატიკურ „მონსტრებთან“ უწევთ ხოლმე საქმე. მაგალითად, თქვენ შეგიძლიათ დახარჯოთ დიდი დრო, გონებრივი ენერგია და ნერვული უჯრედები, რომლებიც არ აღდგება, გამოთვალოთ გიგანტური სამმაგი ინტეგრალი. რა თქმა უნდა, ძალიან საინტერესოა ინტეგრალის გამოწვევა და მისი აღება. მაგრამ რა მოხდება, თუ სამაგიეროდ ინტეგრალი დაგემუქრება წაყვანით? ან, უარესი, კუბური ტრინომიალი კონტროლიდან გამოვიდა და გაბრაზდა? თქვენ არ უსურვებთ ამას თქვენს მტერს.


ადრე მხოლოდ ორი ვარიანტი იყო: უარი ეთქვა ყველაფერზე და გასეირნება, ან მრავალსაათიან ბრძოლაში შესვლა ინტეგრალთან. ისე, ზოგს ბევრი საათი დასჭირდა, ზოგს - ბევრი წუთი - ვინ როგორ სწავლობდა. მაგრამ ეს არ არის მთავარი. მეოცე საუკუნე და განუწყვეტლივ მოძრავი პროგრესი გვთავაზობს მესამე გზას, კერძოდ, საშუალებას გვაძლევს მივიღოთ ყველაზე რთული ინტეგრალი „სწრაფად“. იგივე ეხება ყველა სახის განტოლების ამოხსნას, ფუნქციების გრაფიკების გამოსახვას კუბური ჰიპერბოლოიდების სახით და ა.შ.

სტუდენტებს შორის ასეთი არაჩვეულებრივი, მაგრამ პერიოდულად წარმოქმნილი სიტუაციებისთვის არსებობს ძლიერი მათემატიკური იარაღი. მათთვის, ვინც უკვე არ იცის, გაეცანით MATLAB პროგრამულ პაკეტს.

Matlab ამოხსნის განტოლებას, დააახლოებს მას და ააშენებს ფუნქციის გრაფიკს. გესმით ეს რას ნიშნავს მეგობრებო?

ეს ნიშნავს, რომ ეს არის ერთ-ერთი ყველაზე ძლიერი მონაცემთა დამუშავების პაკეტი, რომელიც დღეს ხელმისაწვდომია. სახელი დგას მატრიცალაბორატორია. მატრიქსის ლაბორატორია,თუ რუსულად . პროგრამის შესაძლებლობები მოიცავს მათემატიკის თითქმის ყველა სფეროს. ასე რომ, Matlab-ის გამოყენებით, შეგიძლიათ:

  • მატრიცებზე ყველა სახის მოქმედების შესრულება, წრფივი განტოლებების ამოხსნა, ვექტორებთან მუშაობა;
  • ნებისმიერი ხარისხის მრავალწევრების ფესვების გამოთვლა, მრავალწევრებზე მოქმედებების შესრულება, მრუდების დიფერენცირება, ექსტრაპოლაცია და ინტერპოლაცია, ნებისმიერი ფუნქციის გრაფიკების აგება;
  • მონაცემთა სტატისტიკური ანალიზის ჩატარება ციფრული ფილტრაციის, სტატისტიკური რეგრესიის გამოყენებით;
  • დიფერენციალური განტოლებების ამოხსნა. ნაწილობრივ წარმოებულებში, წრფივი, არაწრფივი, სასაზღვრო პირობებით - არ აქვს მნიშვნელობა, Matlab ყველაფერს მოაგვარებს;
  • შეასრულეთ მთელი რიცხვის არითმეტიკული მოქმედებები.

ამ ყველაფრის გარდა, MATLAB-ის შესაძლებლობები საშუალებას გაძლევთ ვიზუალიზაცია მოახდინოთ მონაცემების, მათ შორის სამგანზომილებიანი გრაფიკების და ანიმაციური ვიდეოების შექმნის ჩათვლით.

Matlab-ის ჩვენი აღწერა, რა თქმა უნდა, შორს არის სრულყოფილი. მწარმოებლის მიერ მოწოდებული შესაძლებლობებისა და ფუნქციების გარდა, არსებობს უამრავი Matlab ინსტრუმენტები, რომლებიც დაწერილია უბრალოდ ენთუზიასტების ან სხვა კომპანიების მიერ.

MATLAB, როგორც პროგრამირების ენა


ის ასევე არის პროგრამირების ენა, რომელიც გამოიყენება უშუალოდ პროგრამასთან მუშაობისას. ჩვენ არ შევალთ დეტალებში, უბრალოდ ვთქვათ, რომ MATLAB-ში დაწერილი პროგრამები ორი ტიპისაა: ფუნქციები და სკრიპტები.


პროგრამის ძირითადი სამუშაო ფაილია M-ფაილი. ეს არის გაუთავებელი ტექსტური ფაილი და სწორედ მასშია პირდაპირ დაპროგრამებული გამოთვლები. სხვათა შორის, ამ სიტყვას ნუ შეგაშინებთ - MATLAB-ში მუშაობისთვის, არ გჭირდებათ იყოთ პროფესიონალი პროგრამისტი.

M-ფაილები იყოფა

  • M-სცენარები. M სკრიპტი არის M ფაილის უმარტივესი ტიპი და არ აქვს შემავალი ან გამომავალი არგუმენტები. ეს ფაილი გამოიყენება განმეორებითი გამოთვლების ავტომატიზაციისთვის.
  • M-ფუნქციები. M-ფუნქციები არის M-ფაილები, რომლებიც იღებენ შეყვანის და გამომავალი არგუმენტებს.

იმისათვის, რომ ნათლად აჩვენოთ, თუ როგორ ხდება მუშაობა MATLAB-ში, ქვემოთ მოცემულია Matlab-ში ფუნქციის შექმნის მაგალითი. ეს ფუნქცია გამოთვლის ვექტორის საშუალო მნიშვნელობას.
ფუნქცია y = საშუალო (x)
% AVERAGE ვექტორული ელემენტების საშუალო მნიშვნელობა.
% AVERAGE(X), სადაც X არის ვექტორი. ითვლის ვექტორის ელემენტების საშუალოს.
% თუ შეყვანის არგუმენტი არ არის ვექტორი, წარმოიქმნება შეცდომა.
= ზომა(x);
თუ (~((მ == 1) | (n == 1)) | (მ == 1 & n == 1))
შეცდომა ("შეყვანის მასივი უნდა იყოს ვექტორი")
დასასრული
y = ჯამი(x)/სიგრძე(x); % ფაქტობრივი გაანგარიშება

ფუნქციის განსაზღვრის ხაზი ეუბნება MATLAB-ს, რომ ფაილი არის M ფუნქცია და ასევე განსაზღვრავს შეყვანის არგუმენტების ჩამონათვალს. ამრიგად, საშუალო ფუნქციის განსაზღვრის ხაზი ასე გამოიყურება:
ფუნქცია y = საშუალო (x)
სად:

  1. ფუნქცია - M-ფუნქციის განმსაზღვრელი საკვანძო სიტყვა;
  2. y - გამომავალი არგუმენტი;
  3. საშუალო - ფუნქციის სახელი;
  4. x არის შეყვანის არგუმენტი.

ასე რომ, Matlab-ში ფუნქციის დასაწერად, უნდა გახსოვდეთ, რომ MATLAB სისტემის ყველა ფუნქცია შეიცავს ქვემოთ მოცემულის მსგავსი ფუნქციის განსაზღვრის ხაზს.

რა თქმა უნდა, ასეთი მძლავრი პაკეტი საჭიროა არა მხოლოდ სტუდენტებისთვის ცხოვრების გასაადვილებლად. ამჟამად MATLAB, ერთი მხრივ, ძალიან პოპულარულია მრავალი სამეცნიერო და საინჟინრო სფეროს სპეციალისტებს შორის. მეორეს მხრივ, დიდ მატრიცებთან მუშაობის შესაძლებლობა MATLAB-ს ფინანსურ ანალიტიკოსთა შეუცვლელ ინსტრუმენტად აქცევს, რაც მათ საშუალებას აძლევს გადაჭრას ბევრად მეტი პრობლემა, ვიდრე, მაგალითად, კარგად ცნობილი Excel. ამის შესახებ მეტი შეგიძლიათ წაიკითხოთ მიმოხილვის სტატიაში.

MATLAB-თან მუშაობის ნაკლოვანებები


რა სირთულეებია MATLAB-თან მუშაობაში? ალბათ მხოლოდ ერთი სირთულეა. მაგრამ ფუნდამენტური. იმისათვის, რომ სრულად გამოავლინოთ MATLAB-ის შესაძლებლობები და მარტივად გადაჭრათ თქვენს წინაშე წარმოქმნილი პრობლემები, მოგიწევთ ბევრი შრომა და ჯერ თავად Matlab-ის გაგება (როგორ შევქმნათ ფაილი, როგორ შევქმნათ ფუნქცია და ა.შ.). და ეს არც ისე მარტივია, რადგან ძალაუფლება და ფართო შესაძლებლობები მოითხოვს მსხვერპლს.

რომც გვინდოდეს, ვერ ვიტყვით, რომ MATLAB არისმარტივი პროგრამა. მიუხედავად ამისა, ვიმედოვნებთ, რომ ყოველივე ზემოთქმული იქნება საკმარისი არგუმენტი მისი განვითარებისთვის.

Და ბოლოს. თუ არ იცით, რატომ მოხდა თქვენს ცხოვრებაში ყველაფერი ასე და არა სხვაგვარად, ჰკითხეთ Matlab-ს ამის შესახებ. უბრალოდ ჩაწერეთ „რატომ“ ბრძანების სტრიქონში. ის უპასუხებს. Სცადე!

ახლა თქვენ იცით Matlab-ის შესაძლებლობები. განათლების სფეროში MATLAB ხშირად გამოიყენება რიცხვითი მეთოდებისა და ხაზოვანი ალგებრის სწავლებისას. ბევრ სტუდენტს ამის გარეშე არ შეუძლია ლაბორატორიული მუშაობის დროს ჩატარებული ექსპერიმენტის შედეგების დამუშავებისას. იმისათვის, რომ სწრაფად და ეფექტურად დაეუფლოთ MATLAB-თან მუშაობის საფუძვლებს, ყოველთვის შეგიძლიათ დაგვიკავშირდეთ, რომლებიც მზად არიან ნებისმიერ დროს უპასუხონ თქვენს ნებისმიერ შეკითხვას.

ტამბოვის სახელმწიფო ტექნიკური უნივერსიტეტი


განყოფილება

"საინფორმაციო პროცესები და მართვა"

მეთოდოლოგიური განვითარება

No1 ლაბორატორიული გაკვეთილისთვის

დისციპლინაში "გადაწყვეტილების მიღების თეორია"

დისციპლინის დასახელება

თემის სახელი

თემა:ერთგანზომილებიანი ოპტიმიზაციის მეთოდების შესწავლა

სამუშაოს მიზანი:

ერთგანზომილებიანი ოპტიმიზაციის მეთოდებისა და მათი ალგორითმული განხორციელების მეთოდების შესწავლა მათემატიკური და სამეცნიერო-ტექნიკური გამოთვლების მრავალფუნქციური ინტეგრირებული ავტომატიზაციის სისტემის გარემოში MATLAB 7.1;

მეთოდების გამოთვლითი ხარჯების ოდენობის შედარებითი შეფასება: პირდაპირი სკანირება, დიქოტომია, „ოქროს მონაკვეთი“ და ფიბონაჩის მეთოდი.

ლიტერატურა:

1. Aoki M. შესავალი ოპტიმიზაციის მეთოდებში. მ.: ნაუკა, 1977. 444 გვ.

2. ბატიშჩევი დ.ი. დიზაინის ოპტიმალური მეთოდები. მ.: „რადიო და კომუნიკაციები“, 1984. 248 გვ.

3. ბოდროვი V.I., Lazareva T.Ya., Martemyanov Yu.F. გადაწყვეტილების მიღების მათემატიკური მეთოდები: პროკ. შემწეობა. ტამბოვი: ტამბის გამომცემლობა. სახელმწიფო იმათ. Univ., 2004. 124 გვ.

4. Polak E. რიცხვითი ოპტიმიზაციის მეთოდები. მ.: მირი, 1997. 376 გვ.

5. Himmelblau D. გამოყენებითი არაწრფივი პროგრამირება. მ.: მირი, 1975. 534 გვ.

6. იუდინ დ.ბ. გადაწყვეტილების თეორიის გამოთვლითი მეთოდები. მ.: ნაუკა, 1989. 316 გვ.

7. Ketkov Yu. L., Ketkov A. Yu., Shultz M. M. MATLAB 7: პროგრამირება, რიცხვითი მეთოდები. - სანკტ-პეტერბურგი: BHV-Petersburg, 2005. - 752 გვ.

გაკვეთილის ჩატარებით

ლაბორატორიული მეცადინეობები დისციპლინაში „გადაწყვეტილების მიღების თეორია“ ტარდება სტუდენტების მიერ შეძენილი თეორიული ცოდნის გაღრმავებისა და კონსოლიდაციის მიზნით სხვადასხვა ტიპის კლასებში და სასწავლო მასალის დამოუკიდებელი შესწავლის პროცესში, მათემატიკური მეთოდების პრაქტიკული განხორციელების უნარების შეძენაში. გადაწყვეტილების მიღებისას. ლაბორატორიული გაკვეთილების შედეგების საფუძველზე სტუდენტებმა უნდა

თეორიული მასალა, რომლის საფუძველზეც განხორციელდა მოდელირება, ასევე პროგრამებში ფორმალიზებული ფიზიკური პროცესების არსი;

შესაბამისი პროცესების მოდელირების ძირითადი მეთოდები;

შეარჩიეთ და შეაფასეთ ძირითადი პარამეტრების გავლენა მოდელირების შედეგზე;

მიღებული შედეგების ანალიზი და შეჯამება.

ლაბორატორიული სამუშაოს დასრულება მოიცავს სამ ეტაპს: წინასწარი მომზადება ლაბორატორიული გაკვეთილისთვის, თავად გაკვეთილი და მოხსენება ლაბორატორიული გაკვეთილის შესახებ.

გაკვეთილის მიზანია წარმოაჩინოს კავშირი თეორიულ მასალასა და პრაქტიკას შორის და ასწავლოს მოსწავლეებს თეორიის გამოყენება პრაქტიკული პრობლემების გადაჭრაში.

ლაბორატორიული სამუშაო სტრუქტურირებულია ისე, რომ არ ითვალისწინებს სტუდენტების ცოდნას MATLAB-ის შესახებ. თითოეული ლაბორატორია იწყება MATLAB-ის მოკლე შინაარსით, რომელიც სტუდენტს აწვდის აქტივობის დასასრულებლად საჭირო ფონურ ინფორმაციას.

მომზადება კლასისთვის

გაკვეთილის წინა დღეს სტუდენტებმა უნდა:

წაიკითხეთ სახელმძღვანელო ამ ლაბორატორიისთვის;

გაიმეორეთ სალექციო მასალა და შეისწავლეთ შემოთავაზებული ლიტერატურა ამ თემაზე;

სამუშაოს შესრულების პროცედურის შესწავლა;

მოემზადეთ უსაფრთხოების კითხვებზე პასუხის გასაცემად.

გაკვეთილის ჩატარების წესი

გაკვეთილის შესავალ ნაწილში მიიღება სასწავლო ჯგუფი, ხდება კავშირი ადრე შესწავლილ მასალასთან, ცხადდება ამ გაკვეთილის თემა, მიზანი, რიგი და თავისებურებები და მოწმდება სასწავლო ჯგუფის მზადყოფნა გაკვეთილისთვის.

შემდეგ სტუდენტები იწყებენ კვლევის ჩატარებას მეთოდოლოგიის შესაბამისად. ლაბორატორიული გაკვეთილის შესახებ ნებისმიერი გაურკვეველი კითხვისთვის, სტუდენტებმა უნდა დაუკავშირდნენ მასწავლებელს, ინჟინერიის პერსონალს ან კომპიუტერული ლაბორატორიის ინსტრუქტორს. კვლევის შედეგები და დასკვნები წარმოდგენილია ლაბორატორიული დასკვნის სახით. ანგარიში არის მოსწავლის სამუშაო დოკუმენტი და წარედგინება წამყვან მასწავლებელს დაცვის დროს. შემდეგ ხდება ლაბორატორიული გაკვეთილის ანგარიშების დაცვა, ბოლოს კი გაკვეთილის შედეგების შეჯამება.

გაკვეთილის მოხსენება

სტუდენტებმა უნდა მიიღონ კრედიტი ლაბორატორიული სესიისთვის. მოხსენების პრინციპი ინდივიდუალურია და შეიძლება განხორციელდეს ზეპირად ან წერილობით გაკვეთილის ძირითადი ნაწილის დასრულების შემდეგ. შეფასების გაცემისას მხედველობაში მიიღება: მოხსენების ფორმის ხელმისაწვდომობა, წიგნიერება და სიზუსტე, ლაბორატორიული მუშაობის ხარისხი და ტესტის კითხვებზე პასუხების შედეგები. მოსწავლეები, რომლებმაც ვერ მიიღეს კრედიტი და არ არიან ამ ლაბორატორიულ გაკვეთილზე, თავის დროზე აცხადებენ.

MATLAB-ის მოკლე აღწერა

MATLAB (Matrix Laboratory) სისტემა შედგება დიდი რაოდენობით სპეციალური პროგრამებისგან, რომლებიც საშუალებას იძლევა გადაჭრას მათემატიკური და ტექნიკური ამოცანების ფართო სპექტრი მეცნიერების სხვადასხვა დარგიდან. მისი მთავარი ელემენტია MATLAB სისტემის ბირთვი. გარდა ამისა, სისტემა შეიცავს ბრძანებების დაახლოებით 80 სხვადასხვა კომპლექტს (ე.წ. „ინსტრუმენტების ყუთები“), რომლებიც შეესაბამება მათემატიკის, მათემატიკური ფიზიკის, დიზაინის, კომუნიკაციების, ეკონომიკის და ა.შ. ეს ნამუშევარი იყენებს MATLAB პროგრამირების ძირითად ინსტრუმენტებს: M-ფაილები - ფუნქციები, ჩაშენებული ფუნქციები, ოპერატორები, ბრძანებები და ა.შ.

ნახ.1. სისტემის დესკტოპი

სურათი 1 გვიჩვენებს სისტემის სამუშაო მაგიდას. მენიუს ზოლი (ფაილი, რედაქტირება და ა.შ.) მრავალი თვალსაზრისით მსგავსია Microsoft Word-ის რედაქტორის. ქვემოთ განთავსებული ხატების სტრიქონი ასევე ასრულებს იგივე ოპერაციებს, როგორც Word რედაქტორში (ბოლო 3-ის გარდა). სისტემის დესკტოპი შედგება რამდენიმე ფანჯრისგან, რომელთა შემადგენლობა შეიძლება შეიცვალოს მენიუს ბრძანებების გამოყენებით სამუშაო მაგიდა.მარცხნივ ზედა ფანჯარაში სურათი 1 გვიჩვენებს სამუშაო სივრცის შიგთავსს სამუშაო სივრცე, რომელიც შეიცავს მომხმარებლის მიერ ოპერაციის დროს შეყვანილი ყველა მუდმივისა და ფუნქციის აღწერას. ქვედა ფანჯარაში ბრძანების ისტორიამოცემულია შესრულებული ბრძანებების თანმიმდევრობა. ფანჯრების ზომები რეგულირდება მაუსის საზღვრის გადათრევით. მთავარი დესკტოპის ფანჯარა - ბრძანების ფანჯარა(ბრძანების ფანჯარა). ბრძანების ფანჯარაში ">>" ნიშნის შემდეგ იწერება ბრძანების ხაზი, რომელიც სრულდება ღილაკის "" დაჭერის შემდეგ. შედი".

MATLAB გაძლევთ საშუალებას შექმნათ პროგრამული ფაილები სხვა მაღალი დონის პროგრამირების ენების მსგავსი. გარდა ამისა, მას აქვს ძლიერი პროგრამირებადი კალკულატორის თვისებები. ამ ნამუშევარში, საძიებო ალგორითმების პროგრამული დანერგვა ხორციელდება M - ფუნქციის ფაილების გამოყენებით, ხოლო პროგრამების გაშვება და საწყისი მონაცემების შეყვანა შესაძლებელია ბრძანების ფანჯრიდან.

ნომრის ფორმატი მითითებულია მენიუდან ფაილი(ნახ. 1) განყოფილებაში პრეფერენციებიფუნქციის გამოყენებით რიცხვითი ფორმატი. 12 შესაძლო ფორმატიდან ყველაზე ხშირად გამოიყენება მოკლედა გრძელი- მოკლე და გრძელი რიცხვების ფორმატები.

MATLAB-ის ზოგიერთი ძირითადი კონცეფციაა ცვლადები და განცხადებები .

ცვლადიაღინიშნება ერთი ასოთი ან ასოებისა და რიცხვების სიმრავლით, დაწყებული ასოებით. ნაკრებში ასოების და რიცხვების საერთო რაოდენობა არ უნდა აღემატებოდეს ცხრამეტს. განცხადება აქვს შემდეგი ფორმა:

>>variable=გამოხატვა

განაცხადის შეყვანისას, ცვლადს ენიჭება გამონათქვამი, რომელიც მიჰყვება ტოლობის ნიშანს, ან, თუ ის მოიცავს რაიმე მათემატიკურ ოპერაციებს, შედეგი, რომელიც მიიღება ამ ოპერაციების შესრულების შემდეგ. თქვენ შეგიძლიათ შეიყვანოთ განცხადება M-ფაილში ან MATLAB ბრძანების ფანჯარაში. ">>" ნიშანი არის ბრძანების სტრიქონი, რომელიც გამოჩნდება ეკრანზე ბრძანების ფანჯარაში, რათა მიუთითოს, რომ განცხადებების შეყვანა შესაძლებელია.

ძირითადი არითმეტიკული ოპერატორები მოცემულია ცხრილში 1.1. გამოთვლების შესრულებისას ბრძანების ფანჯარაში დაჭერის შემდეგ შედი"შედეგი ენიჭება პარამეტრს" ანს", თუ შესაბამის გამოსახულებას არ ენიჭება სახელი, ან მისი სახელი - წინააღმდეგ შემთხვევაში (ცვლადების, მუდმივების და ფუნქციების სახელები უნდა დაიწყოს ასოთი (ლათინური ასოები), შეიძლება შეიცავდეს რიცხვებს და ხაზს). გამოთვლების დაბლოკვის მიზნით მის შემდეგ გარკვეული გამონათქვამის შედეგად, თქვენ უნდა დააყენოთ ნიშანი; (მძიმე მძიმით).

ცხრილი 1.1

მოდით, მაგალითად, გსურთ შეაფასოთ გამოხატულება და მივანიჭოთ შედეგი ცვლადს X. ამ შემთხვევაში დებულებას (პროგრამას) ექნება შემდეგი ფორმა (ათწილადის წილადებში მთელი ნაწილი გამოყოფილია წილადი ნაწილისგან წერტილით):

>> x=log(1+5*((log10(100))^2-0.2*pi)/sqrt(1+2.71828^3))

განცხადების შემოტანის შემდეგ ე.ი. Enter ღილაკზე დაჭერით, შედეგი დაუყოვნებლივ გამოჩნდება ქვემოთ. თუ საჭიროა შედეგის დაბლოკვა, ე.ი. არ არის საჭირო დისპლეის ეკრანზე ჩვენება, შემდეგ განცხადების ბოლოს თქვენ უნდა დააყენოთ ნიშანი „; "(წერტილი). წინა გამონათქვამი შეიძლება წარმოდგენილი იყოს სხვა ფორმით:

>> a=(log10(100))^2;

>> b=sqrt(1+2.71828^3);

>> x=log(1+5*(a-0.2*pi)/b)

MATLAB-ს აქვს რამდენიმე ჩაშენებული ცვლადი: pi, eps, inf, iდა ჯ.ცვლადი პინიშნავს რიცხვს, ეპს=2 -52 =2.2204*10 -16 - მცურავი პუნქტიანი ნომრების ოპერაციების შეცდომა, ინფ- უსასრულობა ( ), მედა - წარმოსახვითი ერთეული ( მე = = ).

როდესაც მარცხენა არგუმენტი არ არის მითითებული, გამოხატვის შედეგი ენიჭება საერთო ცვლადს ans.

რელაციური ოპერატორები (ცხრილი 1.2) გამოიყენება პირობით განცხადებებში, მარყუჟის ოპერატორებში და ა.შ. M-ფუნქციების გამოყენებით საძიებო ალგორითმების დანერგვისას (ქვეპროგრამები-ფუნქციები იწერება ფაილებში გაფართოებით .m).

ცხრილი 1.2

ასე რომ, პროგრამები MATLAB სისტემაში არის ტექსტური ფორმატის M-ფაილი, რომელიც შეიცავს პროგრამების ჩანაწერს პროგრამის კოდების სახით.

MATLAB შეყვანის ენას აქვს მხოლოდ 9 ოპერატორი, რომელიც იყენებს 14 ფუნქციურ სიტყვას. შესაბამისი სინტაქსური სტრუქტურები მოცემულია ცხრილში. 1.3.

ცხრილი 1.3

ოპერატორის ფორმატი ახსნა
var = expr დავალების ოპერატორი. ითვლის გამოხატვის expr მნიშვნელობებს და ინახავს გამოთვლების შედეგებს ცვლადში ვარ
ifcondition_1 განცხადებები_1 დასასრული პირობითი ოპერატორი. თუ პირობა_1 მართალია, მაშინ ჯგუფის ოპერატორები_1 შესრულებულია, თუ პირობა_2 არის true, მაშინ ჯგუფის ოპერატორები_2, ... თუ ყველა მითითებული პირობა მცდარია, მაშინ სხვასა და ბოლოს შორის მდებარე ოპერატორები შესრულდება.
switchexpr casevail operators_1 caseval2 operators_2 . . . . . . . . . [სხვა განცხადებები] დასასრული გადართვა გამოხატვის მნიშვნელობით expr. თუ ის ემთხვევა მნიშვნელობას vail , მაშინ შესრულებულია ჯგუფის ოპერატორები_1, თუ ის ემთხვევა val2 მნიშვნელობას, მაშინ შესრულებულია ჯგუფის ოპერატორები_2, ... თუ მნიშვნელობა expr არ ემთხვევა არცერთ ჩამოთვლილ მნიშვნელობას, მაშინ ოპერატორები, რომლებიც მდებარეობს შორის სხვაგვარად და ბოლოს შესრულებულია
forvar=el:e3 ბოლო განცხადებები არითმეტიკული პროგრესიის ტიპის ციკლი, რომელშიც ცვლადი var, მარყუჟის სხეულის ყოველი გამეორებით, იცვლება საწყისი მნიშვნელობიდან el-დან e2 საფეხურზე საბოლოო მნიშვნელობამდე e3-მდე.
whilecondition განცხადებები მთავრდება ციკლი წინაპირობით, რომელიც მეორდება მანამ, სანამ მითითებული მდგომარეობა არ იქნება ჭეშმარიტი
სცადე განცხადებები_1 დაჭერა განცხადებები 2 დასასრული ჯგუფის ოპერატორების_1 შესრულების მცდელობა. იმ პირობით, რომ გამონაკლისი ხდება მათი შესრულების შედეგად, კონტროლი გადაეცემა ჯგუფის ოპერატორებს_2 (მარცხის სიტუაციების მართვა). თუ შეცდომა არ მოხდა, მაშინ ჯგუფის ოპერატორები_2 არ შესრულდება
შესვენება ადრეული გასვლა საკონტროლო სტრუქტურებიდან, როგორიცაა for, while, switch, try - catch
ფუნქცია f1 ფუნქცია f2 (x1,x2, . . .) ფუნქცია y=f3(xl,x2,...) ფუნქცია =f4(xl,x2, . . .) ფუნქციის სათაური (xl, x2, ... - შეყვანის პარამეტრები; y, yl, y2, ... - გამომავალი პარამეტრები)
დაბრუნების ფუნქციური ორგანოდან ადრე გამოსვლა

ფუნქციური პროგრამების დაწერისას საჭიროა, რომ M- ფაილის სახელი, რომელშიც პროგრამა ინახება, აუცილებლად უნდა ემთხვეოდეს ფუნქციის სახელს.

ყველა ცვლადი, რომელიც გამოჩნდება ფუნქციის სხეულში, გარდა გლობალური ცვლადების (გამოცხადებული გლობალური ოპერატორის მიერ), შეყვანის პარამეტრებისა და გამომავალი პარამეტრების, განიხილება ლოკალური. ისინი ქმნიან ლოკალურ სამუშაო სივრცეს და ხელმისაწვდომია მხოლოდ იმ ფუნქციის სხეულში, რომელიც მათ წარმოქმნის და სხვა ფუნქციებს არ შეუძლიათ მათი გამოყენება.

MATLAB ენა არ შეიცავს ოპერატორს წადი. ამასთან დაკავშირებით, m-ფაილის ტექსტებში არ არის ოპერატორის ეტიკეტები. ხაზების იდენტიფიცირებისთვის, რომლებშიც ხდება საგანგებო სიტუაციები, გამოიყენება შიდა ნომრები, რომლებიც ავტომატურად მინიჭებულია სისტემის მიერ.

MatLab პაკეტი შეიქმნა Math Works-ის მიერ ათზე მეტი წლის წინ. ასობით მეცნიერისა და პროგრამისტის მუშაობა მიზნად ისახავს მისი შესაძლებლობების მუდმივ გაფართოებას და ძირითადი ალგორითმების გაუმჯობესებას. ამჟამად MatLab არის ძლიერი და უნივერსალური ინსტრუმენტი ადამიანის საქმიანობის სხვადასხვა სფეროში წარმოქმნილი პრობლემების გადასაჭრელად.
სამუშაო გარემო MatLab 6.x, MatLab 7 აქვს მოსახერხებელი ინტერფეისი MatLab-ის ბევრ დამხმარე ელემენტზე წვდომისთვის.
როდესაც დაიწყებთ MatLab 6.x-ს, სამუშაო გარემო გამოჩნდება ეკრანზე , ნაჩვენებია ნახ. 1.

ბრინჯი. 1. MatLab 6.x პაკეტის სამუშაო გარემო

ეს გაკვეთილი გვასწავლის მატლაბში მუშაობის საფუძვლებს (შესავალი).

სამუშაო გარემო შეიცავს შემდეგ ელემენტებს:

მენიუ;
- ხელსაწყოთა პანელი ღილაკებით და ჩამოსაშლელი სიით;
- ფანჯარა ჩანართებით გაშვება პადიდა სამუშაო სივრცესაიდანაც მარტივად შეგიძლიათ წვდომა ToolBox-ის სხვადასხვა მოდულებსა და სამუშაო გარემოს შინაარსზე;
- ფანჯარა ჩანართებით ბრძანება ისტორიადა მიმდინარე დირექტორია,განკუთვნილია ადრე შეყვანილი ბრძანებების სანახავად და ხელახლა გამოძახებისთვის, ასევე მიმდინარე დირექტორიას დასაყენებლად;
- ბრძანების ფანჯარა ბრძანება ფანჯარამოციმციმე კურსორის შემცველი ბრძანების ხაზით;
- სტატუსის ზოლი.

ამ ლაბორატორიაში აღწერილი ყველა ბრძანება უნდა იყოს აკრეფილი ბრძანების სტრიქონში. თავად სიმბოლო, რომელიც მიუთითებს მაგალითებში მოცემული ბრძანების სტრიქონზე, არ საჭიროებს აკრეფას. სამუშაო ადგილის სანახავად მოსახერხებელია გადახვევის ზოლების ან კლავიშების გამოყენება , გადაადგილება მარცხნივ ან მარჯვნივ და , ზევით ან ქვევით გადასაადგილებლად. გასაღებების გამოყენების შესახებ , , , შემდგომში იქნება ნათქვამი. თუ მოულოდნელად, ბრძანების ფანჯრის სამუშაო ზონაში გადაადგილების შემდეგ, მოციმციმე კურსორის ბრძანების ხაზი გაქრება, უბრალოდ დააწკაპუნეთ .
მნიშვნელოვანია გვახსოვდეს, რომ ნებისმიერი ბრძანების ან გამონათქვამის აკრეფა უნდა დასრულდეს კლავიშის დაჭერით რათა MatLab პროგრამამ შეასრულოს ეს ბრძანება ან შეაფასოს გამოხატულება.

შენიშვნა 1

თუ რამდენიმე აღწერილი ფანჯარა აკლია MatLab 6.x სამუშაო გარემოში, მაშინ უნდა გადახვიდეთ მენიუში. ხედიაირჩიეთ შესაბამისი ელემენტები: Command Window, Command History, Current Directory, Workspace, Launch Pad.

2.1. არითმეტიკული გამოთვლები

MatLab-ის ჩაშენებული მათემატიკის ფუნქციები საშუალებას გაძლევთ იპოვოთ სხვადასხვა გამონათქვამის მნიშვნელობა. MatLab იძლევა შედეგის გამომავალი ფორმატის კონტროლის შესაძლებლობას. გამონათქვამების შეფასების ბრძანებებს აქვთ ყველა მაღალი დონის პროგრამირების ენისთვის დამახასიათებელი ფორმა.

2.1.1. მარტივი გამოთვლები

ჩაწერეთ 1+2 ბრძანების ხაზზე და დააჭირეთ . შედეგად, MatLab ბრძანების ფანჯარა აჩვენებს შემდეგს:

» 1+2
ans =
3
» |

რა გააკეთა MatLab პროგრამამ? ჯერ მან გამოთვალა ჯამი 1+2, შემდეგ დაწერა შედეგი სპეციალურ ცვლადზე ans და აჩვენა მისი მნიშვნელობა 3-ის ტოლი ბრძანების ფანჯარაში. პასუხის ქვემოთ არის ბრძანების ხაზი მოციმციმე კურსორით, რაც მიუთითებს იმაზე, რომ MatLab მზად არის შემდგომი გამოთვლებისთვის. თქვენ შეგიძლიათ აკრიფოთ ახალი გამონათქვამები ბრძანების ხაზზე და იპოვოთ მათი მნიშვნელობა.

თუ საჭიროა წინა გამოთქმასთან მუშაობის გაგრძელება, მაგალითად, გამოთვალეთ (1+2)/4.5, მაშინ უმარტივესი გზაა არსებული შედეგის გამოყენება, რომელიც ინახება ans ცვლადში. ჩაწერეთ ans/4.5 ბრძანების ხაზზე (წერტილი გამოიყენება ათწილადების შეყვანისას) და დააჭირეთ , გამოდის:

» ans/4.5
ans =
0.6667
» |

შენიშვნა 2

ფორმა, რომლითაც გამოდის გამოთვლის შედეგები, დამოკიდებულია MatLab-ში დაყენებულ გამომავალ ფორმატზე. ქვემოთ მოცემულია, თუ როგორ უნდა დააყენოთ ძირითადი გამომავალი ფორმატები.

2.1.2. გაანგარიშების შედეგის გამომავალი ფორმატები

შედეგის საჭირო გამომავალი ფორმატი განისაზღვრება მომხმარებლის მიერ MatLab მენიუდან. აირჩიეთ მენიუდან ფაილიაბზაცი პრეფერენციებიეკრანზე გამოჩნდება დიალოგური ფანჯარა პრეფერენციებიგამომავალი ფორმატის დასაყენებლად, დარწმუნდით, რომ ელემენტი არჩეულია მარცხენა პანელის სიაში ბრძანება ფანჯარა. ფორმატი დაყენებულია ჩამოსაშლელი სიიდან რიცხვითი ფორმატიპანელები ტექსტი ჩვენება.
ამ დროისთვის ჩვენ გავაანალიზებთ მხოლოდ ყველაზე ხშირად გამოყენებულ ფორმატებს. აირჩიეთ მოკლეჩამოსაშლელ სიაში რიცხვითი ფორმატი MatLab 6.x-ში. დახურეთ დიალოგური ფანჯარა OK დაწკაპუნებით. მოკლე მცურავი წერტილის ფორმატი გამოთვლის შედეგების გამოსატანად ახლა დაყენებულია მოკლედ, რომელიც აჩვენებს მხოლოდ ოთხ ციფრს ეკრანზე ათობითი წერტილის შემდეგ. ჩაწერეთ 100/3 ბრძანების ხაზზე და დააჭირეთ .
შედეგი გამოდის მოკლე ფორმატში:

» 100/3
ans =
33.3333

ეს გამომავალი ფორმატი შენარჩუნდება ყველა შემდგომი გამოთვლებისთვის, თუ სხვა ფორმატი არ არის დაყენებული. გთხოვთ გაითვალისწინოთ, რომ MatLab-ში შესაძლებელია, რომ ზედმეტად დიდი ან პატარა რიცხვის ჩვენებისას შედეგი არ ჯდება მოკლე ფორმატში. გამოთვალეთ 100000/3, შედეგი იბეჭდება ექსპონენციალური ფორმით:

» 100000/3
ans =
Z.ZZZZe+004

იგივე მოხდება 1/3000-ის პოვნისას:

» 1/3000
ans =
Z.ZZZZe-004

თუმცა, საწყისი ფორმატის პარამეტრი შენარჩუნებულია შემდგომი გამოთვლების დროს; მცირე რაოდენობით, შედეგი კვლავ გამოვა მოკლე ფორმატში.

წინა მაგალითში, MatLab პაკეტი გამოსცემს გამოთვლის შედეგს ექსპონენციალური ფორმა.ჩანაწერი 3.3333e-004 ნიშნავს 3.3333*10-4 ან 0.00033333. ანალოგიურად, შეგიძლიათ აკრიფოთ რიცხვები გამონათქვამებში. მაგალითად 10e9 ან l.0e10 უფრო ადვილია აკრიფო ვიდრე 1000000000 და შედეგიც იგივე იქნება. შეყვანისას არ არის დაშვებული ციფრებსა და სიმბოლოს შორის სივრცე, რადგან ეს გამოიწვევს შეცდომის შეტყობინებას:

» 10 e9
??? 10 e9

თუ გსურთ მიიღოთ გაანგარიშების შედეგი უფრო ზუსტად, უნდა აირჩიოთ ჩამოსაშლელი სიიდან გრძელი. შედეგი ნაჩვენები იქნება გრძელი მცურავი წერტილის ფორმატით თოთხმეტი ციფრით ათობითი წერტილის შემდეგ. ფორმატები მოკლე და გრძელი შექმნილია შედეგის ექსპონენციალური სახით გამოსაჩენად ოთხი და თხუთმეტი ციფრით, შესაბამისად, ათობითი წერტილის შემდეგ. ფორმატების შესახებ ინფორმაციის მიღება შესაძლებელია ბრძანების სტრიქონში დახმარების აკრეფით ფორმატის არგუმენტით:

თითოეული ფორმატის აღწერა გამოჩნდება ბრძანების ფანჯარაში.

თქვენ შეგიძლიათ დააყენოთ გამომავალი ფორმატი პირდაპირ ბრძანების ხაზიდან ფორმატის ბრძანების გამოყენებით. მაგალითად, გრძელი მცურავი წერტილის ფორმატის დასაყენებლად გაანგარიშების შედეგების გამოსატანად, შეიყვანეთ ფორმატის long e ბრძანება ბრძანების ხაზზე:

» ფორმატი გრძელი
» 1.25/3.11
ans =
4.019292604501608е-001

გაითვალისწინეთ, რომ დახმარების ფორმატის ბრძანება აჩვენებს ფორმატის სახელებს დიდი ასოებით. ამასთან, ბრძანება, რომელიც უნდა შეიყვანოთ, შედგება მცირე ასოებისგან. ჩაშენებული დახმარების ამ ფუნქციას გარკვეული შეჩვევა სჭირდება. MatLab განასხვავებს დიდ და პატარა ასოებს. ბრძანების დიდი ასოებით აკრეფის მცდელობა გამოიწვევს შეცდომას:

» FORMAT LONG E
??? ფორმატი გრძელი.
გამოტოვებულია ოპერატორი, მძიმე ან ნახევარწერტილი.

შედეგის უფრო მოსახერხებელი აღქმისთვის, MatLab აჩვენებს გამოთვლების შედეგს გამოთვლილი გამონათქვამიდან ერთი ხაზის შემდეგ. თუმცა ზოგჯერ მოსახერხებელია ეკრანზე მეტი ხაზის განთავსება, რისთვისაც უნდა აირჩიოთ რადიო ღილაკი კომპაქტური (ფაილი, რიცხვითი ჩვენება)ჩამოსაშლელი სიიდან. ცარიელი ხაზების დამატება უზრუნველყოფილია არჩევით ფხვიერიჩამოსაშლელი სიიდან რიცხვითი ჩვენება.

შენიშვნა 3

MatLab ასრულებს ყველა შუალედურ გამოთვლას ორმაგი სიზუსტე,არ აქვს მნიშვნელობა რა გამომავალი ფორმატია დაყენებული.

2.2. ელემენტარული ფუნქციების გამოყენება

დავუშვათ, რომ გსურთ შეაფასოთ შემდეგი გამონათქვამი:

შეიყვანეთ ეს გამოთქმა ბრძანების სტრიქონში MatLab წესების მიხედვით და დააჭირეთ :

» exp(-2.5)*log(11.3)^0.3-sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

პასუხი ნაჩვენებია ბრძანების ფანჯარაში:

ans =
-3.2105

გამოხატვის შეყვანისას, MatLab-ის ჩაშენებული ფუნქციები გამოიყენება მაჩვენებლის, ბუნებრივი ლოგარითმის, კვადრატული ფესვისა და ტრიგონომეტრიული ფუნქციების გამოსათვლელად. რა ჩაშენებული ელემენტარული ფუნქციების გამოყენება შეიძლება და როგორ გამოვიძახოთ ისინი? ჩაწერეთ ბრძანება help eifun ბრძანების სტრიქონზე და ბრძანების ფანჯარაში გამოჩნდება ყველა ჩაშენებული ელემენტარული ფუნქციის სია მათი მოკლე აღწერილობით. ფუნქციის არგუმენტები ჩასმულია ფრჩხილებში, ხოლო ფუნქციების სახელები იბეჭდება მცირე ასოებით. ნომრის შესაყვანად უბრალოდ ჩაწერეთ pi ბრძანების ხაზზე.

არითმეტიკული ოპერაციები MatLab-ში შესრულებულია პროგრამირების ენების უმეტესობისთვის დამახასიათებელი ჩვეულებრივი თანმიმდევრობით:

ექსპონენტაცია ^;
- გამრავლება და გაყოფა *, /;
- შეკრება და გამოკლება +, -.

არითმეტიკული ოპერატორების შესრულების თანმიმდევრობის შესაცვლელად გამოიყენეთ ფრჩხილები.
თუ ახლა გსურთ შეაფასოთ წინა მსგავსი გამოხატვის მნიშვნელობა, მაგალითად

მაშინ არ არის საჭირო მისი ხელახლა აკრეფა ბრძანების ხაზზე. შეგიძლიათ ისარგებლოთ იმით, რომ MatLab ახსოვს ყველა შეყვანილი ბრძანება. იმისათვის, რომ ხელახლა შეიყვანოთ ისინი ბრძანების სტრიქონში, გამოიყენეთ კლავიშები , . შეაფასეთ ეს გამონათქვამი შემდეგი ნაბიჯების გამოყენებით.

1. დააჭირეთ ღილაკს<­>, და ადრე შეყვანილი გამონათქვამი გამოჩნდება ბრძანების ხაზზე.
2. შეიტანეთ მასში აუცილებელი ცვლილებები, შეცვალეთ მინუს ნიშანი პლუსის ნიშნით და კვადრატული ფესვი კვადრატით (გამოსახულებით ხაზის გასწვრივ გადასაადგილებლად გამოიყენეთ კლავიშები , , , ).
3. შეაფასეთ შეცვლილი გამოხატულება დაწკაპუნებით .

თურმე

»exp(-2.5)*log(11.3)^0.3+((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
121.2446

თუ უფრო ზუსტი შედეგის მიღება გჭირდებათ, უნდა გაუშვათ ფორმატის long e ბრძანება, შემდეგ დააჭირეთ ღილაკს<­>სანამ ბრძანების სტრიქონზე არ გამოჩნდება საჭირო გამოთქმა და გამოთვალეთ დაჭერით .

» ფორმატი გრძელი
» exp(-2.5)*log(11.3)^0.3+((sin.(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
1.212446016556763e+002

თქვენ შეგიძლიათ გამოაქვეყნოთ ბოლო ნაპოვნი გამოხატვის შედეგი სხვა ფორმატში მისი ხელახალი გამოთვლის გარეშე. თქვენ უნდა შეცვალოთ ფორმატი მოკლე ბრძანებით, შემდეგ კი შეხედოთ ans ცვლადის მნიშვნელობას ბრძანების სტრიქონში აკრეფით და დაჭერით. :

» მოკლე ფორმატი
» ანს
ans =
121.2446

MatLab 6.x სამუშაო გარემოში არის მოსახერხებელი ინსტრუმენტი ადრე შეყვანილი ბრძანებების გამოსაძახებლად - ფანჯარა. ბრძანება ისტორიაგუნდის ისტორიით. ბრძანების ისტორია შეიცავს MatLab 6.x-თან მუშაობის ყოველი სესიის დროსა და თარიღს. ფანჯრის გასააქტიურებლად ბრძანება ისტორიათქვენ უნდა აირჩიოთ ჩანართი იგივე სახელით. ფანჯარაში მიმდინარე ბრძანება ნაჩვენებია ლურჯ ფონზე. თუ ფანჯარაში მაუსის მარცხენა ღილაკით დააწკაპუნებთ რომელიმე ბრძანებას, მაშინ ეს ბრძანება ხდება მიმდინარე. MatLab-ში მის შესასრულებლად, თქვენ უნდა დააწკაპუნოთ მაუსის ორჯერ ან აირჩიოთ ხაზი ბრძანებით კლავიშების გამოყენებით. , და დააჭირეთ ღილაკს . დამატებითი ბრძანების ამოღება შესაძლებელია ფანჯრიდან. ამისათვის თქვენ უნდა გახადოთ ის მიმდინარე და წაშალოთ კლავიშის გამოყენებით . თქვენ შეგიძლიათ აირჩიოთ რამდენიმე თანმიმდევრული ბრძანება კლავიატურის მალსახმობის გამოყენებით +, +და შეასრულეთ ისინი გამოყენებით ან წაშალეთ გასაღებით . თანმიმდევრული ბრძანებების არჩევა შესაძლებელია მაუსის მარცხენა ღილაკით, კლავიშის ერთდროულად დაჭერით . თუ ბრძანებები არ მიჰყვება ერთმანეთს, მაშინ მათ ასარჩევად უნდა გამოიყენოთ მაუსის მარცხენა ღილაკი კლავიშის დაჭერისას. .

როდესაც თქვენ დააწკაპუნეთ მარჯვენა ღილაკით ფანჯრის ზონაზე ბრძანება ისტორიაგამოჩნდება pop-up მენიუ. აირჩიე ნივთი სორაიწვევს ბრძანების კოპირებას Windows ბუფერში. დახმარებით შეაფასეთ შერჩევაშეგიძლიათ შეასრულოთ ბრძანებების მონიშნული ჯგუფი. მიმდინარე ბრძანების წასაშლელად გამოიყენეთ ელემენტი წაშლა შერჩევა. დწაშალეთ ყველა ბრძანება მიმდინარე ბრძანებამდე - წაშლა რომ შერჩევა,ყველა ბრძანების წაშლა - წაშლა მთელი ისტორია.

შეიძლება არსებობდეს გამონაკლისები გამოთვლებში, როგორიცაა გაყოფა ნულზე, რაც უმეტეს პროგრამირების ენებში იწვევს შეცდომას. MatLab-ში დადებითი რიცხვის ნულზე გაყოფისას შედეგი არის inf (უსასრულობა), ხოლო უარყოფითი რიცხვის ნულზე გაყოფისას შედეგი არის -inf (მინუს უსასრულობა) და გაიცემა გაფრთხილება:

» 1/0
გაფრთხილება: გაყავით ნულზე.
ans =
ინფ

ნულის ნულზე გაყოფა იწვევს NaN-ს (არა რიცხვს) და ასევე წარმოქმნის გაფრთხილებას:

» 0/0
გაფრთხილება: გაყავით ნულზე.
ans =
NaN

გაანგარიშებისას, მაგალითად sqrt(-1) , არანაირი შეცდომა ან გაფრთხილება არ ხდება. MatLab ავტომატურად გადადის რთული რიცხვების სფეროში:

»sqrt(-1.0)
ans =
0 + ლ.0000ი

როგორ იცით, რომელი ჩაშენებული პრიმიტიული ფუნქციების გამოყენებაა შესაძლებელი და როგორ გამოიძახოთ ისინი? ჩაწერეთ ბრძანება ბრძანების ხაზზე დაეხმარე ეიფუნსდა ბრძანების ფანჯარაში ნაჩვენებია ყველა ჩაშენებული ელემენტარული ფუნქციის სია მათი მოკლე აღწერილობით.

მოგეწონათ სტატია? Მეგობრებთან გაზიარება: