Uploaded by karomatillotillo

1710235329

advertisement
1-Тажриба иши. MATLAB ИНТЕРФЕЙСИ БИЛАН ТАНИШУВ.
МАТРИЦАЛАРНИ ШАКЛЛАНТИРИШ ВА УЛАР УСТИДА АМАЛЛАР
Ишдан мақсад: Matlab тизими имкониятларини ўрганиш,матрицалар
ва улар устида амалларни тадқиқ қилиш.
Қўйилган масала: MATLAB тизими менюлари, оддий ҳисоблашлар,
ўзгарувчиларнинг турлари, матрицалар ва уларга доир мисолларни MATLAB
тизимида ишлаб чиқиш .
Иш тартиби:
 Тажриба иши тавсифини ўрганиш;
 Берилган топшириқни MATLAB тизимида ҳал қилиш;
 Хисоботни тайёрлаш.
1.1. MATLAB матрицали тизимнинг вазифаси
Жадал суръатлар билан ривожланиб бораётган компьютерлашган
математик тизимлар (КМТ), айниқса, сонли ҳисоблашларга йўналтирилган
тизимлар орасида MATLAB матрицали математик тизим алоҳида ажралиб
туради. MATLAB тизимини ташкил қилувчи пакетлар сони кўплиги унинг
жуда кўплаб соҳа масалаларини ҳал қилишга жорий этиш имкониятини
беради. Ҳозирги кунга келиб MATLAB тизими замонавий математик ва
илмий-техникавий дастурий таъминоти соҳасида деярли жаҳон стандарти
бўлиб қолди.
MATLAB – математик ва илмий-техник ҳисоблашларни амалга
оширишга
мўлжалланган,
узоқ
вақт
давомида
ишлаб
чиқилган
ва
текширилган, автоматлаштирилган тизимлардан бири бўлиб, у матрица ва
матрицавий амалларни кенгайтирилган талқини устига қурилган. Мазкур
тушунча унинг номида ўз аксини топган, яъни MATLAB – matrix laboratory –
матрицали лаборатория. Маълумки, жуда кўплаб дастурлаш тилларида
матрицаларни эълон қилиш ва улар устида амаллар бажариш цикллар орқали
амалга оширилади. Бу эса дастурни ишлашини секинлаштиради ва баъзи бир
амалларни бажаришни мураккаблаштиради. MATLABда асосий объект
сифатида матрицалардан фойдаланиш цикллар сонини кескин камайтиради.
MATLAB тизимини яратишдаги асосий мақсадлардан бири бўлиб,
техник ва математик ҳисоблашларга йўналтирилган, фойдаланувчи учун
қулай ва сонли усулларни амалга ошириш учун тадбиқ этиб келинаётган
анъанавий дастурлаш тиллари имкониятларидан устунроқ дастурлаш тилини
яратиш ҳисобланади. Мазкур тизимни яратишда ҳисоблашлар тезлигини
оширишга ҳамда тизимнинг турли ҳил масалаларини ҳал қилишга
мослашувчанлигига катта эътибор қаратилган.
MATLAB тизими дастурлашнинг учта асосий концепциясини амалга
оширади:
 Модулларни, яъни процедура ва функцияларни, яратишга асосланган
процедура модулли дастурлаш;
 Объектга йўналтирилган дастурлаш (айниқса, тизимнинг графикли
воситаларини жорий қилиш аҳамиятли);
 Фойдаланувчининг графикли интерфейсини яратишга йўналтирилган
визуаль-йўналтирилган дастурлаш (GUI-Graphics User Interface).
Умуман олганда, MATLAB дастурлаш тили интерпретаторлар синфига
киради. Демак, тизимнинг ҳар бир командаси номи бўйича аниқланади ва
зудлик билан жорий қилинади. Бу эса ихтиёрий дастурий кодни қисм-қисм
бўйича текширишни осонлаштиради.
Тизимнинг асосий афзалликларидан бири бу унинг очиқлиги ва
кенгайтириш мумкинлигидир.
Тизимнинг жуда кўплаб команда ва функциялари матнли форматдаги
m-файл (кенгайтмаси .m) ва C/C++ файллари кўринишида бўлиб, барча
файлларни модификация қилиш мумкин.
1.2. MATLABда оддий ҳисоблашлар
MATLAB
тизими
шундай
ишлаб
чиқилганки,
ҳисоблашларни,
фойдаланувчи дастурини тайёрламасдан тўғридан-тўғри бажариш мумкин.
Бунда MATLAB суперкалькулятор вазифасини бажариб, қаторли команда
режимида ишлайди. Масалан, >>2+3, ans=5; >>2*3, ans=6 ва хоказо.
Тизимда ишлаш мулоқатли (диалогли) тавсифга эга бўлиб, “савол
берилди – жавоб олинди” қоидаси бўйича ишланади,яъни фойдаланувчи
клавиатура ёрдамида ҳисобланиши лозим бўлган ифодани киритади, таҳрир
қилади (агар лозим бўлса) ва киритишни ENTER клавиатурасини босиш
билан якунлайди.
Умуман олганда, маълумотларни киритиш ва ҳисоблашларни амалга
ошириш қуйидагича амалга оширилади:
 Бошланғич маълумотларни киритишни кўрсатиш учун >> белгидан
фойдаланилади;
 Маълумотлар оддий ёзувли таҳрир ёрдамида киритилади;
 Бирор бир ифода ҳисоблаш натижасини блокировка қилиш учун мазкур
ифодадан кейин ; (нуқта вергул) қўйилади;
 Ҳисоблашлар натижасини кўрсатувчи ўзгарувчи аниқланмаган бўлса, у
ҳолда MATLAB тизими бундай ўзгарувчи деб ans олади;
 Ўзлаштириш амали сифатида жуда кўплаб дастурлаш тиллари каби :=
белги эмас, балки математикадаги оддий = ни ўзи олинади;
 Созланган функциялар (масалан, sin) ёзма харфлар билан ёзилади
ҳамда уларнинг аргументлари оддий қавслар ичида ёзилади;
 Ҳисоблашлар натижаси янги қаторда >> белгисиз чиқади;
 Мулоқат “Савол берилди – жавоб олинди” кўринишида амалга ошади.
Маълумки, жуда кўплаб математик тизимларда, агар v сон эмас, вектор
бўлса, у ҳолда sin(v) ва exp(v) каби ифодаларни ҳисоблаб бўлмайди, яъни
тизим бундай ифодаларни хато деб беради. MATLABда эса агар берилган
ўзгарувчи
вектор(матрица)
вектор(матрица) бўлади.
бўлса,
натижа
ҳам
мазкур
ўлчамдаги
Командали режимда бир қатордаги белгиларнинг максимал сони –
4096, m – файлларда эса чегараланмаган.
Маълумки, ўзгарувчилар компьютер хотирасида, яъни ишчи соҳа
(Workspace) да маълум бир жой эгаллайди. Ишчи соҳани кераксиз
ўзгарувчилардан
тозалаш
учун
clear
функциясининг
турли
хил
кўринишларидан фойдаланилади, масалан:
 clear - барча аниқланган ўзгарувчиларни йўқотиш;
 clear x - аниқланган x ўзгарувчини йўқотиш;
 clear a b c - аниқланган бир неча ўзгарувчиларни йўқотиш.
1.3. Тизим ўзгарувчилари ва константалари
Барча математик тизимлар каби MATLABнинг ҳам
тушунчаси
математик ифодалардир.
марказий
Маълумки, улар устида амаллар
бажарилаётганда асосан уларнинг сонли қийматларидан фойдаланилади (кам
холатларда белги кўринишларидан ҳам фойдаланилади).
MATLABда ифодалар бир қатор кўринишида ифодаланиб, сонларни
бутун
қисмларини ажратиш учун
вергулдан
эмас,
балки
нуқтадан
фойдаланилади. Қуйида баъзи бир ифодаларни MATLAB ва оддий
математикадаги ифодаланишини 1-жадвалда кўриб чиқамиз:
1-жадвал.
MATLABда
Математикада
2+3;
2+3
2^3*sqrt(y)/2;
23 y
2
2.301*sin(x);
2,301sin(x)
4+exp(3)/5
e3
4
5
Математик ифодалар сонлар, константалар, ўзгарувчилар, операторлар,
функциялар ва турли ҳил махсус белгилар устига қурилади.
1.4.Ҳақиқий ва комплекс сонлар
Сон - MATLAB тилининг энг оддий объектларидан бири бўлиб, у
миқдорий
маълумотларни
ифодалаб
беради.
Сонлар
бутун,
каср,
фиксирланган ва сузувчи нуқтали бўлиши мумкин. Уларни яхши маълум
бўлган илмий шаклда, яъни мантисса ва сон тартибини кўрсатган ҳолда
ифодалаш мумкин:
0
-3
2.301
123.456е-24
-234.456е10
Сон тартибини мантиссадан ажратиш учун улар орасига е белгиси
қўйилади. “+” ишора сонлар олдига қўйилмайди, “-” ишора эса қўйилади ва у
унар минус деб номланади. Сонларда белгилар орасига пробел (бўш жой)
қўйиш рухсат этилмайди.
Бундан ташқари сонлар комплекс бўлиши мумкин: z=Re(z)+Im(z)*i.
Бундай сонлар Re(z) ҳақиқий ва Im(z) мавхум қисмга эга бўладилар. Мавҳум
қисм квадрати -1 га тенг бўлган, i ёки j кўпайтувчига эга бўлади:
3i
2+3j
-3.141i
-123.456+2.7e-3i
real(z) функция комплекс соннинг бутун қисмини, imag(z) эса мавхум
қисмини ажратиб беради. Комплекс соннинг модулини
abs(z)
бурчагини(фазасини) angle(z) функция ҳисоблаб беради. Масалан:
>> i
функция,
Ans=0+1.000i
>>z=2+3i
Z=2.000+3.000i
>>abs(z)
Ans=3.6056
>>real(z)
Ans=2
>>Imag(z)
Ans=3
>>angle(z)
Ans=0.9828
1.5. Сонларни ифодалаш форматлари
MATLABда сонларни форматини (шаклини) аниқлаштириш учун
>>format name
командасидан фойдаланилади, бу ерда name форматнинг номи.
Турли ҳил форматларни намойиш қилиш учун узунлиги иккига тенг
бўлган x=[4/3, 1.234e-6] векторни кўриб чиқамиз:
2-жадвал.
format short
1.3333
0.000
format short e
1.3333E+000
1.2345E-006
format long
1.333333333333338
0.000001234500000
format long e
1.333333333333338E+000
1.234500000000000E-006
format bank
1.33
0.00
Мазкур форматларни берилиши фақатгина натижавий маълумотларни
кўринишига таъсир этади, холос. Барча ҳисоблашлар икки карра аниқлик
форматида амалга оширилади, сонларни киритиш эса фойдаланувчи учун
қулай бўлган ихтиёрий шаклда киритилиши мумкин.
1.6. Константа (ўзгармас) ва тизим ўзгарувчилари
Константа (ўзгармас) – бу олдиндан аниқланган сонли ёки белгили
қиймат бўлиб, у ноёб ном (идентификатор) билан тақдим этилади. Сонлар
(масалан, 1, -2 ва 1.23) номсиз сонли константа ҳисобланади.
MATLABда
бошқача
кўринишдаги
константаларни
тизим
ўзгарувчилари деб аташ қабул қилинган, сабаби, бир томондан тизим
юкланаётган вақтда улар берилади, иккинчи томондан улар дастурларда
қайта аниқланиши мумкин. MATLAB тизимида ишлатиладиган асосий тизим
ўзгарувчилари қуйидагилар:
 i ёки j мавхум бирлик (улардан квадрат илдиз олинса -1 га тенг бўлади);
 pi – сони, p=3,1415926… ;
 eps - сонлар устида амаллар бажарилгандаги хатолик (2-52);
 realmin - сузувчи нуқтали энг кичик сон (2-1022);
 realmax - сузувчи нуқтали энг катта сон (21023);
 inf - машина чексизлик қиймати;
 ans - энг охирги амални натижасини сақловчи ўзгарувчи;
 NaN - маълумотни сонли тавсифга эга эмаслигини кўрсатади (Not-anumber);
Белгили константа – бу апостроф ичига олинган белгилар занжири.
Масалан, ‘Hello my friend’, ‘Salom’, ‘2+3’.
1.7. Дастурлардаги матнли шарҳлар
MATLAB тизими, асосан, мураккаб ҳисоблашларни амалга оширишга
мўлжалланганлиги сабабли, бажарилаётган амаллар таърифини ошкорлиги,
шаффофлиги катта аҳамиятга эга. Бунга, хусусан, матнли шарҳлар ёрдамида
эришиш мумкин. Дастурларда матнли шарҳлар % белги ёрдамида қаторнинг
ихтиёрий жойидан киритилади, масалан:
% It is factorial function.
MATLABнинг янги версияларида матнли шарҳни кириллчада ҳам
киритиш имкониятлари мавжуд.
Одатда, m-файлларнинг дастлабки қаторларида биринчи позициядан
бошлаб, ушбу файл амалга оширувчи вазифалар таърифлари шарҳ сифатида
келтириб ўтилади. Мазкур таърифларни кўриш учун қуйидаги буйруқдан
фойдаланилади:
>>help Файл номи
Агар матнли шарҳлар тўла-тўкис келтирилган бўлса, m-файл яхши
ёзилган ҳисобланади. Сабаби, бундай кўринишдаги шарҳларсиз хаттоки,
дастурий модулларни ишлаб чиққан дастурчининг ўзи хам ёзилган модул
қандай вазифани бажариб бериши мумкинлигини ёддан чиқариб қўйиши
мумкин.
1.8. Ўзгарувчилар ва уларга қийматларни ўзлаштириш
Ўзгарувчилар – бу номга эга бўлган объектлар бўлиб,
баъзи-бир,
одатда турли хил қийматларни сақлаш имкониятига эга маълумотлардир.
Ушбу маълумотларга боғлиқ равишда ўзгарувчилар сонли ёки белгили,
векторли ёки матрицали бўлиши мумкин. Ўзгарувчилар математика ва
дастурлашда кенг тарқалган объектлар бўлиб ҳисобланади.
MATLAB дастурлаш тилида ўзгарувчига маълум бир қийматларни
бериш учун ўзлаштириш (=) амалидан фойдаланилади:
<ўзгарувчи номи> = <ифода>
Ўзгарувчилар тури олдиндан эълон қилинмайди. Улар ўзгарувчиларга
ўзлаштирилаётган ифодалар қийматлари орқали аниқланади. Демак, агар
ифода вектор ёки матрица бўлса, у ҳолда ўзгарувчи шунга мос бўлади.
Ўзгарувчи номи (идентификатор) ихтиёрий сондаги белгилардан
ташкил топган бўлиши мумкин, аммо фақатгина дастлабки 31 таси эслаб
қолинади ва шулар орқали идентификация қилинади. Ўзгарувчи номи бошқа
ўзгарувчилар, функциялар, процедуралар номи билан устма-уст тушмаслиги
лозим, яъни ном ноёб бўлиши лозим. Гарчи ўзгарувчи номи харфдан
бошланиши лозим бўлсада, орасида харфлар, рақамлар ва
_ белгидан
(подчеркивание) иборат бўлиши мумкин. Лекин, ўзгарувчи номларига бўш
жойларни (пробелларни) ва махсус белгиларни, масалан +, -, *, / ва
бошқаларни қўйиш мумкин эмас.
1.9. MATLABнинг операторлари ва созланган функциялари
Оператор – бу маълумотлар устида бажариладиган маълум бир
амалларни бажариш учун ишлатиладиган махсус белгилаш (операнда).
Масалан, оддий арифметик операторларга мисол қилиб қуйидагиларни олиш
мумкин: йиғинди +,
айирма -, кўпайтириш *, бўлиш /. Операторлар
операндалар (маълумотлар) билан бирга ишлатилади. Масалан, 2+3*4
ифодада * кўпайтириш, + эса қўшиш оператори, 2,3 ва 4 эса операнда
ҳисобланади.
Шуни таъкидлаб ўтиш лозимки, кўплаб операторлар матрицали
операторларга тегишли бўлиб, жиддий тушунмовчиликларга сабаб бўлиши
мумкин. Масалан, * - кўпайтириш ва / - бўлиш операторлари икки массив,
вектор ёки матрицаалрнинг кўпайтмаси ва бўлинмасини ҳисоблайди. Бир
қатор шундай махсус операторлар мавжудки, масалан, .\ , .* ва ./
операторлар, мос равишда, массивларда элементлар бўйича кўпайтириш ва
бўлишни(ўнгдан ва чапдан) англатади.
Қуйида келтириладиган мисоллар юқорида айтиб ўтилган амалларни
тушунтириб беради:
>>v1=[2 4 6 8 ]
V1 = 2 4 6 8
>>V2=[1 2 3 4 ]
V2 = 1 2 3 4
>>v1.*v2
ans=2 8 18 32
>>v1./v2
ans=2 2 2 2
MATLABдаги барча операторлар рўйхатини кўриш учун help ops
операторидан фойдаланилади.
Функция
–
ўзининг
аргументлари
устида
маълум
бир
шакл
алмаштиришларни бажарувчи ва мазкур шакл алмаштириш натижаларини
қайтариш хусусиятига эга бўлган ноёб номли объектдир. Натижани
қайтариш
–
функциянинг
бошқа
объектлардан
ажратиб
турувчи
хусусиятидир.
Функциялар умумий ҳолда бир нечта аргументларга эга бўлиши
мумкин. Агар функция битта эмас, бир нечта натижавий қийматларни
қайтарадиган бўлса, у ҳолда у қуйидагича ёзилади:
[Y1, Y2, …] = func(X1, X2, …),
бу ерда Y1, Y2, … - чиқиш параметрлар рўйхати, X1, X2, …-эса кириш
параметрлар (аргументлар) рўйхати.
Элементар функциялар рўйхати билан help elfun буйруқ(команда)ни
бериш орқали, махсус функциялар рўйхати билан эса help specfun орқали
танишиш мумкин. Умуман олганда, функциялар созланган (ички) ва ташқи,
яъни m-функциялар бўлади. Созланган функцияларга жуда кенг тарқалган
элементар функциялар киради, масалан, sin(x), exp(x) ва бошқалар. Созланган
функциялар MATLAB тизими ядросида сақланади, шу сабабли, улар орқали
ҳисоблашлар жуда хам тез амалга оширилади. Ташқи функцияларни бериш
учун махсус m-файлларни таҳрир қилувчи редактордан фойдаланилади.
1.10. Икки нуқта (:) операторини қўллаш
Маълумки, кўп ҳолларда тартибланган сонлар кетма-кетлигини
шакллантириш зарурати пайдо бўлади. Бундай кўринишдаги кетмакетликлар, масалан, графиклар ёки жадвалларни яратишда керак бўлади.
Бунинг
учун
MATLAB
тизимида
:
(икки
нуқта)
операторидан
фойдаланилади. Тартибланган кетма-кетлик қуйидаги кўринишда ҳосил
қилинади:
<бошланғич қиймат>: <қадам>: <сўнги қиймат>
Бундай конструкцияни тадбиқ қилиш дастурий циклларни беришни
кескин камайтиради.
Агар қадам берилмаган бўлса, у ҳолда унинг қийматини автоматик
тарзда 1 деб ҳисобланади. Агар қадам мусбат бўлиб, бошланғич қиймат
сўнги қийматдан кичик бўлса, у ҳолда дастур хатолик ҳақида маълумот
беради.
Мисоллар кўриб чиқайлик:
>>1:5
ans= 1 2 3 4 5
>>i=0:2:10
i = 0 2 4 6 8 10
>>j=10:-2:2
j= 10 8 6 4 2
>>0:pi/2:2*pi
ans = 0 1.5708 3.1416 4.7124 6.2832
>>1:-0.2:0
Ans = 1.0000 0.8000 0.6000 0.4000 0.2000 0
>>5:2
ans=Empty matrix: 1-by -0
MATLAB тизимида маълумотлар вектор ёки матрица кўринишида
қуйидагича берилиши мумкин:
1) вектор- қатор:
>>V=[1 2 3] % ёки V=[1, 2, 3]
V= 1 2 3
2) вектор –устун:
>>V=[1; 2; 3]
V=
1
2
3
3) Матрица:
>>M=[1, 2, 3; 4, 5, 6; 7, 8, 9]
M=
1
2
3
4
5
6
7
8
9
Вектор ва матрица элементлари ифодалардан ёки функциялардан
ташкил топган бўлиши мумкин. Вектор ва матрица элементларига уларнинг
индексларини кўрсатиш орқали мурожаат қилинади, яъни
>> M(2,3)
ans = 6
Агар, масалан, M(i,j) элементга бирор бир x қийматни ўзлаштириш
лозим бўлса, у ҳолда M(i,j)=x деб ёзилади.
>> M(2,3)=11;
>> M
M= 1
2
3
4
5 11
7
8
9
Умуман олганда, MATLAB тизимида индекс сифатида i,j лар ўрнига I
ва J лардан фойдаланиш тавсия этилади.
Бир индексли M(I) ифода берилган матрицани бир қаторга ёйилгандаги
қийматини аниқлаб беради. Масалан:
>> M=[1, 2, 3; 4, 5, 6; 7, 8, 9]
M= 1
2
3
4
5
6
7
8
9
>> M(6)
ans = 8
>> M(6)=111;
>> M
M=
1
2 3
4
5 6
7 111 9
MATLABнинг 2007b версиясида nxn ўлчамли матрица билан ишлаш
мумкин бўлиб, бунда максимал n  248  1 (олдинги версияларда эса n  231
бўлган). Бундай ҳолда мазкур катталикдаги матрицаларни ўз ичига олувчи
файлларнинг хажми 18 Гб гача бўлиши мумкин.
1.11. Комплекс элементли вектор ва матрицаларни аниқлаш
Бундай кўринишдаги вектор ва матрицаларни қуйидагича бериш
мумкин:
>> CM=[1, 2; 3, 4] + i*[5, 6; 7, 8]
Ёки
>> CM=[1+5*i, 2+6*i; 3+7*i, 4+8*i]
CM =
1.0000 + 5.0000i 2.0000 + 6.0000i
3.0000 + 7.0000i 4.0000 + 8.0000i
1.12. Матрицалар устида алмаштиришлар
1. Матрицаларни бирлаштириш (конкатенация қилиш) мумкин. Бунинг
учун cat(1,A,B) ёки [A;B] ва
cat(2,A,B) ёки [A,B] командаларидан
фойдаланилади. Масалан, бизга М матрица берилган бўлсин:
M=
1
3
4
5
7
8
3
5
6
4
6
7
>> B=[M M+16; M+32 M+16]
B=
1
3
4 17 19 20
5
7
8 21 23 24
3
5
6 19 21 22
4
6
7 20 22 23
33 35
36 17 19 20
37 39 40 21 23 24
35 37 38 19 21 22
36 38 39 20 22 23
2. Буриш амалларини бажариш учун MATLABда қуйидаги
командалардан фойдаланилади:
fliplr (A) – А матрицада вертикал ўққа нисбатан устунлар
алмаштирилади.
flipud (A) – А матрицада горизонтал ўққа нисбатан қаторлар
алмаштирилади.
rot90 (A) – А матрицани соат стрелкасига қарши 90° га буради.
rot90 (A, k) – A матрицани 90*k градусга буради (k – бутун сон).
3. Матрицани сатр ёки устунларини ажратиб олиш ва ўчириш мумкин.
Масалан, берилган М матрицанинг бирор бир i- устун ёки j-сатрни ўчириш
талаб этилган бўлсин. У ҳолда ушбу амал қуйидагича амалга оширилади
(икки нуқта (:) операторидан фойдаланилган ҳолда): M(:, i)
матрицанинг i-устунини,
ажратиб олади:
>> M(3,:)
ans=3 5 6
>>c=M(:,2)
M(j, :)
команда М
команда М матрицанинг j-қаторини
с=3
7
5
6
Агар бирор устун ёки қаторни ўчириш лозим бўлса, [] – белгисидан
фойдаланилади:
>> M(:, 3)=[ ]
M= 1
3
5
7
3
5
4
6
>> M(2, :)=[ ]
M=
1 3 4
3 7 8
4 6 7
Олинган
натижаларни
таҳлил
қилишда
фойдаланувчи
ўзини
қизиқтирган матрица ёки массив ҳақида баъзи -бир маълумотларга эга
бўлиши лозим бўлади. Бунинг учун MATLABда бир қанча махсус
функциялар мавжуд:
1. size(M) – иккита элементга эга бўлган вектор ҳосил бўлиб, биринчи
элемент М матрица қаторлар сонини, иккинчиси эса устунлар сонини
кўрсатади.
2. length(A) – А вектор узунлигини аниқлаб беради (агар А матрица
бўлса, у ҳолда length( M )  max( n, m) .)
3. ndims(M) – М матрица ўлчовини аниқлаб беради.
4. isempty(M) – берилган М массивни “бўшликка” текширади. Агар
массив элементлари йўқ бўлса, у 1 қийматни, акс ҳолда 0 қийматни
қайтаради.
5. isequal(A,B) – берилган иккита А ва В массивни эквивалентликга
текширади. Улар эквивалент дейилади, яъни 1 қийматни беради, агар
хар иккала массив ўлчови бир ҳил ва элементлар қийматлари устма-уст
тушса, акс ҳолда 0 қийматни қайтаради.
6. isnumeric(A) – берилган А массивни турини мантиқий аниқлайди, агар
сонли тур бўлса 1 қийматни, акс ҳолда 0 қийматни қайтаради.
1.13. MATLABда арифметик ва мантиқий амаллар
MATLABда арифметик амаллар икки турга бўлинади:
- скаляр тур – бу скаляр миқдорлар устида бажариладиган оддий
амаллар;
- матрицали тур – матрицалар устида бажариладиган амаллар. Уларни
бажариш қоидалари оддий амалларни бажариш қоидаларидан фарқ
қилади.
Скаляр турдаги арифметик амаллар: (+) қўшиш; (-) айриш; (*)
кўпайтириш; (/) чапдан ўнгга бўлиш; (\) ўнгдан чапга бўлиш (яъни a\b- b ни
a га нисбати каби тушунилади); (^) даражага ошириш. Скаляр миқдорлар
устида амаллар 3- жадвалда келтирилган устиворлик қоидасига асосан
бажарилади.
3- жадвал.
устиворлик
Амаллар
1
Оддий қавс
2
Даражага
ошириш,
чапдан-ўнга
3
Кўпайтириш ва бўлиш,
чапдан-ўнга
4
Қўшиш
чапдан-ўнга
ва
айриш,
Матрицали турдаги арифметик амаллар:
1. (+) қўшиш ва (-) айириш. Ушбу амал фақатгина қўшилаётган ёки
айрилаётган матрицаларнинг ўлчамлари тенг бўлгандагина ўринли бўлади
(агар қўшилувчиларнинг бирортаси скаляр бўлса, MATLAB тизими скаляр
миқдорни ўлчамлари берилган матрицага тенг бўлган ўлчамли, элементлари
эса берилган скаляр миқдорга тенг матрица деб ҳисоблайди);
2. (*) кўпайтириш: Матрицани матрицага кўпайтиришнинг бир неча
кўринишлари мавжуд:
а)алгебрадаги матрицани матрицага кўпайтириш: C  A * B , бунда
A  {aij }nxm ва B  {bij }mxk бўлиб, C  {cij }nxk , cij   aik * bkj ;
k
б) A.*B – А нинг ҳар бир элементи В нинг мос элементига
кўпайтирилади, яъни cij  aij * bij .
3. Бўлиш: а) A./B – А нинг ҳар бир элементи В нинг мос элементига
бўлинади, яъни cij  aij / bij .
б) A.\B – В нинг ҳар бир элементи А нинг мос элементига бўлинади,
яъни cij  bij / aij .
4. Даражага ошириш: A.^B – A нинг ҳар бир элементи B нинг мос
элементига тенг даражага кўтарилади, яъни cij  aij .^ bij .
Икки вектор-қаторнинг скаляр (ички) кўпайтмаси
га , ташқи кўпайтмаси деб
(b'*a)
деб (a*b')
га айтилади.('-транспонирлашни
англатади)
Назорат саволлари
1. MATLABнинг асосий объектлари нима?
2. MATLABда сонларнинг қандай форматлари бор?
3. Матрица, вектор-устун ва вектор-қаторни таърифланг.
4. Матрицаларни хосил қилиш усулларини айтинг ва мисоллар келтиринг
5.Матрицалар устида бажариладиган қандай амаллар бор?
6.Арифметик амаллар бажарилишини устуворлик қоидаси қандай?
7.Матрицалар устида кўпайтириш амали қандай бажарилади?
8.Икки нуқта (:)командаси вазифаларини тушунтиринг.
9.MATLABда қандай солиштириш ва мантиқий амаллар мавжуд?
10.Матрицани транспонирлаш нима?
11.flipud ва fliplr командалари нима учун хизмат қилади?
12.Махсус матрицаларни ҳосил қилувчи командаларни келтиринг.
Топшириқлар
1. Элементлари cosnx кўринишида бўлган (4х4) матрицани х=π/2 да
хисобланг. (n=1, …,16).
2. Ўлчови 5 га тенг бўлган Гильберт матрицасига Паскаль матрицасини
кўпайтиринг. Кўпайтманинг элементлари йиғиндисини топинг ва
натижани format short да чиқаринг.
3. Берилган матрицанинг манфий элементларини шу элемент тескариси
билан алмаштириш орқали янги матрицани шакллантиринг.
4. Берилган икки матрицани бирлаштириш орқали янги матрица ҳосил
қилинг.
5. Берилган матрицани бошидаги учта сатри ва сўнги бешта устунидан
иборат бўлган матрица ҳосил қилинг.
6. Берилган матрицанинг тоқ сатри билан жуфт сатрларини ўрнини
алмаштириш орқали матрица шакллантиринг.
7. Берилган матрицанинг тоқ элементлари ўрнига 1 ва жуфт элементлари
ўрнига 0 қўйиш орқали янги матрица шакллантиринг.
8. Элементлари cosnx кўринишида бўлган (4х4) матрицани х=π/2 да
хисобланг. (n=1, …,16).
9. Берилган матрицадан жуфт сатрда турган элементлар ўрнига ушбу
элементлар квадратига, тоқ сатрда турган элементлар ўрнига эса ушбу
элементлар кубига тенг бўлган матрица шакллантиринг.
10.Берилган матрицанинг тоқ устуни билан жуфт устунларини ўрнини
алмаштириш орқали матрица шакллантиринг.
11.Берилган матрицанинг тоқ сатри билан жуфт сатрларини ўрнини
алмаштириш орқали матрица шакллантиринг.
12.Берилган матрицанинг тоқ элементлари ўрнига 1 ва жуфт элементлари
ўрнига 0 қўйиш орқали янги матрица шакллантиринг.
13.Берилган матрицанинг мусбат элементлари ўрнига 1 қўйиш орқали
янги матрицани шакллантиринг.
14.Берилган матрицанинг манфий элементлари ўрнига 0 қўйиш орқали
янги матрицани шакллантиринг.
15.тескариси билан алмаштириш орқали янги матрицани шакллантиринг.
16.Бир хил ўлчамли иккита, Паскаль ва “сеҳрли” матрица берилган бўлсин.
Ушбу
матрицаларнинг
элементларнинг
мос
катталаридан
элементлари
ташкил
таққосланиб,
топган
янги
шу
матрица
шакллантиринг.
17.Берилган матрицанинг манфий элементларини шу элемент қарамақаршиси билан алмаштириш орқали янги матрицани шакллантиринг.
18.Элементлари Sinnx кўринишида бўлган (4х4) матрицани х=π/2 да
хисобланг. (n=1, …,16).
19.Ўлчови 4 га тенг бўлган Гильберт матрицасига Паскаль матрицасини
кўпайтиринг. Кўпайтманинг элементлари йиғиндисини топинг ва
натижани format short да чиқаринг.
20. Берилган матрицанинг тоқ элементлари ўрнига 4 ва жуфт элементлари
ўрнига 2 қўйиш орқали янги матрица шакллантиринг.
21.Берилган матрицанинг мусбат элементларини шу элемент Берилган
матрица жуфт сатрдаги элементларини тескариси билан, тоқ учтундаги
элементларини тоқ сатр элементларига алмаштириб матрица ясанг.
Янги матрицанинг ўртадаги сатр ва устунни ўчириб, натижани пастдан
юқорига буринг.
22. Ўлчови
5
бўлган
Паскал
матрицасига
тескари
матрицани
шакллантиринг ва шакллантирилган матрица бош диагоналига 0
жойлаштиринг.
Download