327 86 137MB
Russian Pages 1104 Year 2005
ро г И л Ае с к а н д л е Ен
ь рие фну А
в р См ирон
а См иронв
в а
С а н т к - Пе т е р б у
г
«БХ-В еПт рбгу
» 2005
УД ББ
К 681.3.06 К 32.973.26- 018.2 7А 3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и ер н уф А в И . Е . , онСирм в А . Б . , он ивСрм а Е . Н . 7А 3
M ATLAB 7. - С П б .
: Б ХВ - П е т р б ур г
, 2005. - 1104 с : и л
.
ISBN 5- 94157- 494- 0
Книг а п о св ящ ен а п р и м ен ен и ю п а к ет а MATLAB и ег о р а с ш и р е н и й (Toolbox) лд я р е ш е н и я раз ли ч н ы х м а ет м а ит ч е с к и х , э к о н о м и ч е с к и х з а дч , а ргдиу .х П о др о б н о з ад ч м а те м а ти ч е с к о й фи з и к и , о б р а б о тк и да н н ы х и р яд р а с м о тр е н а рабо т а с м ас и вам и , о п и с а н ы воз м ож н ост и в ы с о к ру о в н е в о й и н и з к о ру в н е в о й гр а фи к и . З н а ч и те л ь н ы й объе м м а те р и а л а о вт е д н вы ч и сли те л ь н ы м з адч ам : р е ш е н и ю ру а в н е н и й , с и с те м ли н ей н ы х и н ели н ей н ы х ур а в н е н и й , и н те гр и р о в а н и ю , а п р о к с и м а ц и и ф ун к ц и й , р е ш е н и ю с и с ет м о бы к н о в ен н ы х ди ф е р н ц и а л ь н ы х ру а в н е н и й и ру а в н е н и й в ч а с нт ы х п р о и з в о дн ы х , з адч м о п ти м и з а ц и и и рабо т е с р аз р еж ен н ы м и м а тр и ц а м и . м яз ы к е и п ри н ц и п ы И з ло ж ен ы осн ов ы п р о гр а м и р о в а н и я н а в с рт о е н н о э ф е к ти в н о г о н ап и сан и я п р и ло ж ен и й в MATLAB, в о п р о с ы и н ет г р а ц и и с MS Word и MS Excel. О п и сан ы воз м ож н ост и р асш и р ен и й Toolbox. П р и в е д н о м н о ж е с вт о й лд я с а м о с т я е л ь н о й р а б о ыт . Д л я уодбсвт а ч и а те л й п р и м ер о в и з адн и те к с т ы п ро г ам м собран ы н а п р и л а г ем о м к о м п а к т- д и с к е .zyxwvutsrqponmlkjihgfedcbaZ ялД
х ын а у ч
ртинокваб,
йе,ав тлдепор
в о рен ижн
и в т н е о су д
Б п у Гр
Г в ан л ы З ам З ав о Р ак т д е К о м п ь ю е р тн а К о р ек т Д и з ай З ав Л и ц енз о Фр м а "БВ- Х "ргбеу т П н а р С и то - э п и д е м и о л г е ч с о к
а октв г дп
й о а к тр д е
р
. лавгн о . ракедц и е
о о р ка т д е й я к в ре с т н о бл ж к
а
Динб о в оне ме С Н ьи а т л Ни я а т л я г р оИ а йН и к л о
и м
я И Д № 02429 о т 24.07.00. Попдисна 1 т 70x100 / i6- та че П ь с н яа е т о ф . Усл и р аТ ж 5000 э кз . Зак з № 13 0 , 194354, С- тнка ербтгуП
е злюкаечни о т 11.11.2004 г . внаыд о Феднроаль в сер ф е зща ит ы пра в перлбоит в ОА 190005, С- тнка ербтугП
укваодн К а к в б о Ры
ийгр о Гр кй е с л А
р . п рои з всотд
:
Е к и а нт р е Е в г и н ей
а
р
н а т п еч О
I S B N 5- 94157- 494- 0
и иаяинзд
о с гоыв т О "Тниесхчак
Д У К 681.3.06 К 32.973.26- 018.2
е н а прцоикуд
йв онир м С а кш в р о е П ьинкваоулр ыЦ
zyxwvutsrqponmlkjihgfedcbaZY
Т ксвирхе о в пта че . печ
ь 30.03.05. . л . 89,01.
, ул
. Есени а
ю №
77.99.02.953.Д.006421.11.0 4 й п о здонар у я еч л о в а к .
й сб о жул й и богалпичу х дипаозвт
, 5Б .
в я н ки га
, Изм йа ло вс ик
" й п р .
° ирефн уА © Оормфнел и е
, 29.
в И . Е. , Смирн о , ив тьсле азд
в А . Б. , С ми рн ов о "БВ-Х "гр убПе т
а Е . Н . , 2005 , 2005
лОг а в е и н
е
и не д В в
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
е
1
81. О zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA назн ач ен и и и в о з м о ж н о сят х п а к ет а MATLAB и ег о р асш и р ен и й 82. О соедрж ан и и кн и г и
ЧС А Т
Ь I. О с н о в
в а лГ
ы Р Б АО Т
а 1. и ш йе тсоП р
Р або ч а р и А ф м ие т ч е с к и
Ы В M ATLAB
19
я
21
е и н е лс вчи ы
а MATLAB е в ы ч и с л ен и я П р о с етй ш и е вы ч и слен и я Ф орм ат ы вы вод а р е з л у ь ат а вы ч и слен и И сп о ль з о в ан и е э лем н атрн ы х н уф к ц и В ср т о е н ы е э лем н атр н ы е фн у кц и и Т р и г о н о м е рт и ч е с к и е , ги п ербо ли ч еск и Э к с п о н ен ц и а л ь н а я фн у к ц и я , л о га р и фм ы Ф ну кц и и дл я р а б о т ы с к ом п лек сн ы м О к гр л еу н и е и осат к о тде л е н и я . И сп о ль з о в ан и е п ерм н ы х С о р ха н е н и е и восатн о в лен и е р аб о ч е й П росм от р и алдену и е п ер м н ы х , в ы б о Э феки т в н а я р а б о т а и з к о м а н нд о й срток З а дн и я дл я сам о стяель н о й работ ы
в а лГ
я с р ед
а 2. Рбоат
В вод О б р ащ ен и П р и м ен ен и П о э л ем н т ы П о с рт о е н и П о с рт о е н и м Ун о ж ен и
а с м а в мис а
, слож ен и
С к а л яр н о В ек отр н о В н ше н е В во
д м арти ц Р аз ли ч н ы О б р а щ ен и оЛ г и ч е с к о
1 10
и
21 24 24 й 25 й 28 33 е и обрант ы е к н и м фн у кц и и 33 , септ н ы е фн у кц и и , 34 и ч и слам и 34 34 35 с рд е ы 38 р и ме н п ерм н ы х 42 и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ (Command History) 44 48
,
е и выч и атн и е в ек отр е к э лем н ат м в е к от р а е фн у кц и й о б р а б о тк и дан н ы е о п ер ац и и с в ек от р ам е таб л и ц ы з н а ч ен и й фн у кц и е гр а фи к о в фн у кц и и онд о е в ек от р в е п ро и з в едн и е е п р о и з в е дн и е е п ро и з в едн и е , п ро сейт ш и е о п ер ац и и е сп ос б ы в од а е к э лем н ат м м ар т и ц е и н ед к с и р о в а н и е
50
в х к в ек отр а
м
и и й п ер м н о
й
51 57 59 62 65 70 75 75 76 77 78 78 79 81
IV
гл Оа в е н и
С л о ж ен и е в септ н П ер м н о ж ен и
, в ы ч и атн и е
, умн ож ен и е
, тр а н с п о н и р о в а н и
а 3. В а ве н в о р у о к с ы
я к и граф
П о с рт о е н и Д и а гр а м П р е с да т в л е н и Д и а гр а м Г и с от г р а м П р е сд а т в л е н и и фн у к ц и Г р а фи к
и Г р а фи к Г р а фи к И з м ен ен и О фо р м л е н и Г р а фи к
Г р а фи к
и Т р ме х н ы К о н р ут н ы О фо р м л е н и П оворо П о с рт о е н и П о с рт о е н и
нА и м и р о в ан н ы Р абот В ы во В ы во Н ес к о л ь к В и з а луи з а ц и З а дн и
а с н еск о ль к и м д гр а фи к о д н еск оль к и
я дл
а
и
н уф к ц и и й о т э лем н от х к м арти ц а
и
: в м а рт и м
ц
84 .86 86 87 89 89 91 91 92 93 97 99 99 101 102 105 109 109 109zyxwvu 112
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF W orkspace 112 ы 116 е в ек от р н ы х а дн ы х 116 ы в е к от р н ы х а дн ы х 116 ы в ек от р н ы х адн н ы х 122 е м арт и ч н ы х ад н н ы х 126 й 129 фн у к ц и й онд о й п ер м н о й 129 и в ли н ей н о м м асш атб е 129 и в ло гар и фм и ч еск и х м а с ш атб х 132 е св о й ст в ли н и й 133 е гр а фи к о в 135 и п а р м ерт и ч е с к и х и ксоуч н о- з адн ы х н фу к ц и й 137 фн у к ц и й дву х п ерм н ы х 140 е гр а фи к и фн у кц и й 140 е гр афи к и 145 е гр афи к а 148 т гр а фи к а , и з м ен ен и е точ к и о б з о р а 153 е п ар м ерти ч еск и з а дн н ы х п о в е нр х о с е т й и ли н и й 156 е освещ ен о й п о в енрх о ст и 159 е гр а фи к и . 161 и гр а фи к а м и 162 в в оедтль н ы е окн а 163 х гр а фи к о в н а онд и ос и 165 о гр а фи к о в в онд о м гр а ф и ч е с к о м окн е 166 я в е к от р н ы х п о ле й 169 я с а м о с т яел ь н о й работ ы 174
е гр а фи к о ы и ги сот гр а м
Г р а фи к
е
ь
е м арти ц ы и в ек от р а Р ше не и е си ест м л и н ей н ы х р а ув н е н и й С ч и ыт в а н и е и з ап и с ь дан н ы х Бл о ч н ы е м арт и ц ы К о н с рт и у р о в а н и е бло ч н ы х м а рт и ц В ы ел д н и е блоков.. . а дл еУн и е срт о к и сот л б ц о в З а п о л н ен и е м арт и ц п р и помщ и и н екдсац и С о з ад н и е м а рт и ц сп ец и аль н о г о ви д а В и з а луи з а ц и я м а рт и ц П о э л ем н т ы е о п ер ац и и и в срто ен н ы е П о э л ем н т ы е о п ер ац и и с м арти ц ам В ы ч и с л ен и е м еат и ч еск и х н фу к ц и П р и м ен ен и е фн у кц и й о б р а б о тк и ад н н ы Г р а фи к и фн у к ц и й дву х п ерм н ы х З а дн и я дл я с ам о с т яел ь н о й работ ы З а дн и я н а в ек отр ы З а дн и я н а м арти ц ы в а лГ
е и в о з в едн и
zyxwvuts
в и з о к н
гл Оа в е н и
Vzyxwvutsrqp
в а лГ
а 4. Иа н в и т к а ре т н
Г р а фи ч е с к и Р е ад к о т С в о й с вт
я сде р
е о бъ ек т
а дл
я и не по р тсо
я о к и ф гра
ы
р гр а фи к о а о с ей
в
, п опд и с , з а го л в о к е о ф р м л ен и е , р а з м ект а и скет и и з а го л в о к С в о й с вт а ли н и й и п овенрх осет й С в о й с вт а ли н и й С в о й с вт а п о в е нр х о с е т й Д о п о л н и ет л ь н ы е э л ем н т ы о ф р м л ен и я О бз о р гр а фи к о в и п овенрх осет й И з м ен ен и е м асш атб , оп релдн и е з н ач ен и К ам ер а дл я о б з о р а гр а фи ч е с к о г о о б ъ ек т П ан ел ь и н с рм т у е н о т в к а м ер ы С о р ха н е н и е , э к сп о р т и п еч ат ь З а дн и я дл я сам о стяель н о й работ ы Ц в е то в П о пд и с
в а лГ
а 5. М - л й фа
Р або т Н а с рт о й к Ти п
Р а з н о в и нд о с т
Р а з б и ен и е Д и а г н о с ти к З а дн и
а 6. М до ет
ы и не лс чи вы
е урав н ен и
М и н и м и з ац и М и н и м и з ац и пУ р ав л ен и
Е
е фн у кц и
е вес е э к с рт е м у о
х к о р н е я фн у кц и я фн у кц и м вы ч и слен и
х р ау в н е н и й п о л и н о м в н фу к ц и и о нд о и н есколь ки
и й а й й п ер м н о х п ер м н ы й
205 209 212 212 215 218 219 220 225 225 227 228 232 234 234 237 239
243
й е п р о и з в о л ь н ы
е о дх
т
241
й е и а н о н и м н ы
Н о а хж е д н и
и и
й в MATLAB
е фн у кц и
Р еш ен и В ы ч и с л ен и
, п о в р о
м и а р мгу е н ат м и а р м гу е н а тм
Я И П Р О Г Р М А М И Р О В Н А И
И с л е од в а н и В срт а и в а е м ы Р ше не и
й фн у к ц и а
177 178 183 184 186 187 187 190 191 196 196 197 199 201 204 205
Ь II. В Ы ЧИ С ЛЕ Н И
в а лГ
а
ы
а в р еда к от р е М - айф ло в и р е да к то р а М - афй л о в ы М - фа й л о в Ф а й л - п р о гр а м ы с У ат н о в к а е пт у й К о м ан д ы дл я усатн о в к и е пт у й Ф а й л - н фу к ц и и Ф а й л - н фу к ц и и с онд и м он в д х ы м а рм гу е н о т Ф а й л - н фу к ц и и с н еск оль к и м и вондх ы м Ф а й л - н фу к ц и и с н еск оль к и м и вы ондх ы м и фн у кц и й П о н ф ду к ц и и В л о ж ен ы е н уф к ц и и П р и в а нт ы е фн у кц и и М - айф л а н а я ч е й к и . . а М - аф й л о в я дл я сам о стяель н о й работ ы
ЧСА Т
176 zyxwvutsrqpon
в
й х
243 ....243 246 246 252 253 253 255 258
WzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П о ли н о м
З а дч
Р ше не и
З а дн и в а лГ
zyxwvutsr
о о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA / plot 262 е фн у к ц и й , з ави сящ и х о т п а р м ерт о в 264 е фн у кц и й 265 В ы ч и с л ен и е о п р е лд н ы х и н етг р а л о в 265 В ы ч и с л ен и е дво й н ы х и н етг р а л о в 268 В ы ч и с л ен и е н ек о тр ы х и н етг р а л о в 269 И н ет г р а л ы , з ав и сящ и е о т п а р м ерт а 269 И н ет г р а л ы с п ерм н ы м нв е р х и м п р е л до м 271 ы и и н етр п о ляц и я 271 О п ер а ц и и с п о л и н о м а и 271 м Ун о ж ен и е , делн и е , слож ен и е и в ы ч и атн и е 271 В ы ч и с л ен и е п р о и з в о нд ы х 273 И н ет р п о л и р о в а н и е и сглаж и в ан и е 274 П р и б л и ж ен и е п о модет у н аи м ен ь ш и х к в а др от в ...274 И н ет р п о л я ц и я сп лай н ам и 276 И н ет р п о л я ц и я дмвуерн ы х и м н о г м ерн ы х адн н ы х 278 и л и н ей н о й алгебр ы 281 С и емс т ы р уа в н е н и й , о п редли ет , о б р ащ ен и е м а рт и ц 281 С и ем с т ы с п ло х о о сб лу в е н н ы м и м а рт и ц а м и 283 П е р о п р е дл н н ы е и н еод п редл н н ы е с и ме т ы 285 Р еш ен и е си ест м п р и п о м щ и фн у кц и и linsolve 287 О б р а щ ен и е м а рт и ц 290 С о б с вт е н н ы е ч и сл а и в екотр ы м а рт и ц ы , фн у кц и и м арти ц 290 е ди фер н ц и аль н ы х р ау в н е н и й 293 Р ше не и е з адч и К ош и 293 Р ше не и е урав н ен и и Ло тк и —Во л ь те р ы 298 В ы бо р с о л в ер а лд я реш ен и я з адч и К ош и 300 пУ р ав л ен и е п р о ц ес о м реш ен и я 301 З а дн и е то ч н о с т и в ы ч и с л ен и й и ш аг а и н ет г р и р о в а н и я 303 пУ р ав л ен и е вы вод м р е з л уь ат о в 307 З а дн и е м а рт и ц ы Як о б и дл я п овы ш ен и я э фекит в н о ст и в ы ч и слен и й 312 З а дч и с и з в еснт ы м и п а р м е рт а м и 314 С и ес м т ы , н е разреш ен н ы е о нт о с и етл ь н о п р о и з в о нд о й , 316 ид ф е р н ц и а л ь н о - а л ге б р а и ч е с к и е р ау в н е н и я Р ше не и е ди фер н ц и аль н ы х р ау в н е н и й с з ап аз ыд в аю щ и м а р мг у е н от м 323 Р ше не и е гр ан и ч н ы х з ад ч 330 С ем х а р еш ен и я 330 П рост й п р и м е р гр а н и ч н о й з адч и 333 В оз м ож н ост и с о л в ер а bvp4c, уп р ав лен и е в ы ч и с л ен и ям и 335 Г ран и ч н ы е з адч и с н еи з веснт ы м и п а р м е рт а м и 337 Р еш ен и е з адч и с о с о б ен н о сьт ю н а гр ан и ц е 342 я дл я с ам о с тяель н о й работ ы 345zyxwvut
оБ л е И с л е од в а н и И н ет г р и р о в а н и
гл Оа в е н и
е п о др б н
а 7. У и щ юя л ва р п
О п е р а от р Цик Цик О п е р а от р с лУ о в н ы
е и ц к у кр тс но
ы ц и кл а л for л while, сму и р о в а н и ы в етл н и й о п е р а то
и як ы з
е р я од я р //
в
и н а в оа р ми м ра пг о р
я
,
347
347 347 357 361 361
гл Оа в е н и
VIIzyxwvutsrqpon
П р о в ер к О р га н и з а ц и
а о вн д х ы
х а р мгу е н от в 362 я в е тл н и я 366 р zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA switch 371 д и з фай л- нфу к ц и , о п е р а то р return 374 е и п ро длж ен и е ц и к ло в 375 а и с к л ю ч и е л ть н ы х с и ацу т и й 377 е в ы р а ж ен и я с м ас и вам и и ч и слам и 379 и онт о ш ен и я ..379 е о п ер а ц и и с ч и слам и и м ас и вам и 380 т л о ги ч е с к и х и ари фм иет ч ск и х о п ер а ц и й 383 я дл я сам о стяель н о й работ ы 384zyxwvutsrqp
О п е р а то В ы ох П ре ы в ан и О б р а б о тк оЛ г и ч е с к и О п ер а ц и оЛ г и ч е с к и П р и о р и те З а дн и в а лГ
а 8. Ок тоба рб
Р абот
а ы н да
а с о срто к ам П р о с ет й ш и
е о п ер ац и В во С ер в и с н ы
д и сц еп лн и
М ас и в
ы ср т о е фа й л е фа й л а ь в тек сотв ы ь срто
Т е к с от в ы О кт р ы ит З ап и с З ап и с Ф о р м а тн ы П р о с ыт М ас и в
ы и н а в о р ми м ра г о р п
я в MATLAB
е фн у кц и к ы
и с о срто к ам е срто к и дл я р а б о т , сч и ыт в ан и е й фа й
и ы с о срто к ам адн н ы
П р и л о ж ен и П рост Ф орм и рован и О р га н и з а ц и Ф а й л - н фу к ц и Ф ну кц и П е р м а н е н нт ы Р ер к с у и в н ы Ди ало г в а Точк П ри м е З а дн и а 9. Д а н р о т п и р кс е
О сн о в
ы дес к р и п от р н о С в о й с вт Ф ну кц и С в о й с вт С в о й с вт
и
х и з а к р ы ит
е фа й л а
л
к й вы во д ы р и м ас и в р
е р кс у т ы с кр т у ы ч яе к ы к ср у т е фа й л - н фу к ц и й дл я р а б о т ы м ас и в ам ь дан н ы х м ас и в о в ск р у т р в тек сотв ы е и н фо р м а ц и и и з тек сот в г о и с м ас и вам и с рк т у р ы чя е к я с и н ертфй со м и з к о м а н нд о й й п р и м ер , п р о г ам а- к аль к уяот е и и сп о лн ен и е к о м а н д , фн у кц и я вы вод а е кт с о в ы х р е з л уь а то и с п ерм н ы м ч и сло м а р мгу е н от и о т фн у кц и й е п ер м н ы е е н фу к ц и и я о л т а кд а п р о гр а м м и о с ат н о в а , п о ш а го в е в ы п о л н ен и р ди а л о г в о й о л т а кд и я дл я сам о стяель н о й работ ы
М ас и в С о з ад н и З ап и с С ч и ыт в а н и О п ер ац и М ас и в
в а лГ
х и м е пи р
и
я к и граф
й гр а фи к и . а гр а ф и ч е с к и х о б ъ е к от и set и get, тщеку и а о се й а ли н и й и п о в ернх о сет
а
и ск р у т й фа й а
фа й л срт о к и р
р л
я eval в в , ,
е п ро г ам
ы
386
386 386 386 388 390 392 393 396 397 399 403 ....408 408 413 414 416 420 421 427 428 432 437 437 446 450 455 467 467 471 477 480
. в е о б ъ ек т
ы й
480 481 481 482 486
VIII
гл Оа в е н и
к У а з етл
и н а о бъ ек т ы 489 е свой ст в ли н и й и осе й 489 е ли н и й гр а фи к о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ , 492 е и о ч и скт а о б ъ е к от в 493 е к о м а н д hold, clay elf и reset н а св о й свт а окн а и осе й 494 е и н фо р м а ц и и о свой свта х гр а ф и ч е с к и х о б ъ е к от в 495 е указ етл й , п ри м ер ы 497 е св о й ст в в армгуен ат х гр а ф и ч е с к и х н уф к ц и й 499 е о к о н , осе й и тек ст а 500 е графи ч еск и х ок н и осе й 500 д ет к с о в й и н фо р м а ц и и 509 е о бъ ек т ы 522 я о б ъ ек от в 523 т Root 524 т Figure (графи ч еск о е о к н о ) 525 е о б ъ ек т ы (Core Objects) 527 ы Rectangle и Line, блок- ем сх ы и ди а гр м ы 527 т Patch, ц в еот е о ф р м л ен и е о б ъ ек от в 531 е о б ъ ек от в , о бъ ек т Light (и остч н и к свает ) 541 е о б ъ е к ат м и , к о п и р о в а н и е , п ои ск , ск ры т е к у а з ет л и 545 ы hggroup и hgtransform 553 е о бъ ек т ы (Plot Objects) 557zyxwvut
И з м ен ен и Д о б ав лен и а лд е н У и В л и ян и П о чл у е н и И сп о ль з о в ан и З а дн и Р а з м ещ ен и Р а с п о л ж ен и В ы во Г р а фи ч е с к и И ер а и х О б ъ ек О б ъ ек Ба з о в ы О б ъ ек т О б ъ ек О с в ещ ен и п У р а в л ен и О б ъ е к ы т - г пр у Р и со в ан н ы
Ь III. П Р И Л О ЕЖ Н И
Ч СА Т
в а лГ
а 10. пиц ниПр
С р ед П р о гр а м и р о в а н и в а лГ
ы си на дзо
П р о гр а м и р о в а н и Ф л а ги П е р к л ю ч а е тл
, р а м к С п и ск
И з м ен ен и В з а и м о ед й с в т и С п ос б П о р я од
И Н ТЕ Р Ф Е Й С О
М
й с GUI
564 568 а
и о б ъ е к от в м я и ег о р еда к ит р о в а н и в и и х в ы р а в н и в а н и е п о сдк а з к и и п и к от гр а м е э лем н от в и н е рт ф й с и и
и ы с к р о л и н г а ь в од а е тк с а а п р и л о ж ен и я е р а з м ер о в п р и л о ж ен и е п р и л о ж ен и ы п р о гр а м и р о в а н и к о б хд а э лем н от
561
563
й е с й ифе ре т н
е с в о й с вт а м а н а д п ри лож ен и е к п р и ло ж ен и ы о б ъ ек от
З ап с у Р а з м ер В сп лы в аю щ и
С в о й с вт
М
я и не ж о л пи р
е со бы ит
а 11. К и н а в о р и у р тс н о
П ол с О бласт
Я с Г Р Ф А И Ч Е С ИК
а G U I D E
пУ р ав л ен и Р абот
zyxwvutsr
я я с о сроед я с о б ы ит в п у р а в л ен и
575
е е ы а
й MATLAB й я к лав и ш е й
..575 577 577 579 581 582 582 586 593 598 600 602 602 605 606 607
гл Оа в е н и
IXzyxwvutsrq
в а лГ
а 12. Ды во го ла и
е он к
а и мен
ы ид а л о г в ы х ок н Окн о п вотедрж н и я Окн а о кт р ы ит я и сорахн ен и Окн о с со бщ ен и е м о б М ен ю гр афи ч еск о г о окн а Р е ад к о т р м не ю П р о гр а м и р о в а н и е п ну кот О фо р м л е н и е мне ю П ну кт ы м не ю с флаг м Р а з е д л и е тл ь н ы е ли н и пУ о р яд ч ен и е м не ю К о н етк с н о е мне ю о б ъ ек от С о з ад н и е к о н етк сн о г о С в яз ы в а н и е к о н етк сн о г П р о гр а м и р о в а н и е к о н етк сн о г
ю и не ж о пл и р
.609 zyxwvutsrqpo
я
609 609 611 613 614 614 617 618 619 .....620 621 622 623 624 624
Ви д
в а лГ
а 13. П и н а во р и м ра го р
С о б ы ит П р и л о ж ен и К а к в ы з ы в а ю ст С о б ы ит С о б ы ит С о б ы ит С о з ад н и С в о й с вт П ре ы в ан и И з м ен ен и
Ч СА Т
а
ю
и с о тян и и
я
в м не о м не
ю в р еадк от р ю с о бъ екот о мн е
е м ю
й
627
я графи ч еск и
х о б ъ е к от в 627 я п чолену и я ASCII- к о д а си м в о л а 628 я п н о фу д к ц и и о б р а б о кт и с о б ы ит й 630 е ButtonDownFcn zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA634 е ButtonDownFcn осе й 634 е ButtonDownFcn ли н и и 637 е п ри ло ж ен и й с G U I бе з срде ы G U ID E 638 а о б ъ е к от в , п олез н ы е п р и прогр а м и р о в а н и и с о б ы ит й 641 е о б р а б о тк и с о б ы ит й 641 е фо рм ы крусо р а 642 е дл
а 14. и неР ш
П рост
в мне
е си т ыбо
Ь IV. И С П О ЛЬ З О В НА И
в а лГ
я фа й л е
о ш и бк
Е TOOLBOX И Р Е Ш Е Н И
е за д
ч о ксе ч и т а мме т а
Х А Д ЗА
и
О п и сан и Э л и п ит ч е с к о П ер м ен н ы П ар б о ли ч ес к о П ри м е З а дч С и емс т П а р м е рт К о н с рт и у р о в а н и Г е о м р ти ч е с к и З а дн и
. е о бласт и я и гран и ч н ы х с лоув и й я р е з л уь а т а PD E Toolbox ы и п р а в я ч аст ь р ау в н е н и я е р ау в н е н и я й з адч и е з н ач ен и я х р ау в н е н и й и и уп р ав лен и е п р о ц ес о м реш ен и о бласт и ы и
Ч
643
645
й п р и м е
П о с та н о в к С р ед О п р е лд н и Р еш ен и
р а з адч и .... а pdetool, к о н с ртиу р о в а н и е р ау в н е н и е и в и з алуи з ац и е в о з м о ж н о сет й е урав н ен и е е к о э фи ц и ен т е и ги п ер бо ли ч еск о р н есатц и о н а р н о а н а со бсвтен н ы ы ди фер н ц и аль н ы ы р т и а н л г уя ц и е гео м ерти е п ри м и т в е сркут ы о б лас т
й к фии з
Е П Р И Н Д АЛ К Ы
я
645 646 646 649 652 654 655 656 657 658 661 661 663 665 665 666
zyxwvutsr
гл Оа в е н и
К о м п о з и нт ы И сп о ль з о в ан и
е м аетр и ал е ск те е фн у кц и
И сп о ль з о в ан и З а дн и Т р и а н л г уя ц и Г р ан и ч н ы С о л в ер В и з а лу и з а ц и Р ше не и Ф ну кц и
в а лГ
е гео м ерти
я и к о э фи ц и ен т
ы уравн ен и
а 15. ы н еж Ррза
е ц и р т ма
а с р аз р еж н н ы м а р ах н е н и
С о з ад н и О п ер а ц и З а дч
,
я
ы
С о з ад н и Г е о м р ти
С ем х
в
ы
692
и м а рт и ц а м
и
и ли н ей н о
х м а рт и
ц и м а рт и ц а м
й алгебр я м арт и
и
ы ц
р е си ест
м р ау в н е н и
а 16. и ц а з и м и т Оп
й и и с лоедван и
е с п екрт
а 17. С ы н ь ло в м и
718
е и не лс чи ы в
е п ер м н ы ы и в екотр я с си м в о ль н ы м е п р есдатв лен и , п р ео б р а з о в а н и
е
и о гр а н и ч е н и я м
й
и
,
я
е п ер м ен н ы О п р е дл н и М а рт и ц В ы ч и с л ен и Г р а фи ч е с к о п У р о щ ен и е
а
я
Optimization Toolbox иЛ н е й н о е и н ели н ей н о е п р о гр а м и р о в а н и иЛ н е й н о е п р о гр а м и р о в а н и е К в а д р ти ч н о е п р о гр а м и р о в а н и е Н ел и н ей н о е п р о гр а м и р о в а н и е Н ел и н ей н ы е з адч и З адч а о досит ж ен и и гр а н и ц ы М и н и м и з ац и я фн у кц и и с п облеуск о н еч н ы м М и н и м ак сн а я з адч а Р еш ен и е н ели н ей н ы х урав н ен и й М ео т д н а и м ен ь ш и х к в а д р то в П о дб р п а р м е тр о в П а р м е рт ы о п ит м и з а ц и и П р и м ер ы Р ше не и е си емст ы н ел и н ей н ы х р ау в н е н и П ри м е р п р и ло ж ен и я с GUI.....
С и м воль н ы
692 692 694 699 703 703 708 716
я е р аз р еж н н ы и с р аз р еж н н ы м
Ф а к то р и з а ц и П р о фа й л е Р еш ен и
в а лГ
668 669 670 670 678 680 682 685 686 688 689 689zyxwvuts
я е услови
я р е з л у ь ат а е м оедль н о й з а дч и и PD E Toolbox е гео м рти ч еск и х п ри м и т во я о бласт и и три ан лгяуц и я
Р або т
в а лГ
ы и й PD E Toolbox и о бласт и
е и фн у кц и х и фн у кц и
751
и й и р а б о т
а с н и м
и
ы и п ер м н ы м е н уф к ц и е и вы ч и слен и
718 718 718 721 724 727 ...727 728 731 733 735 736 739 741 742 746
и й е в ы р аж ен и
й
751 751 754 756 758 760
гл Оа в е н и
XIzyxwvutsrqpo
Р еш ен и З а дч С му и р о в а н и П р е дл ы Р еш ен и Р еш ен и в а лГ
е з ад и л и н ей н о
ч й алгебр е и р аз л о ж ен и
, ди фер н ц и р о в ан и е уравн ен и е ди фер н ц и аль н ы
а 18. Р боат
С п лай н
й и сиест
а с о м а н сй а л п
ы и форм
763 763 767 ....769 775 778zyxwvutsrq
ы е в р я д е и и н етгр и р о в ан и м х р ау в н е н и
е й и сие ст
м
и в Spline Toolbox
784
ы и х п рсеадтвл н и
я 784 я фо р м а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG (р- р )э м р фо 785 а (р аз ло ж ен и е п о баз и сн ы м сп лай н ам ) 785 И н ет р п о л я ц и о н н ы е сп лай н ы 786 П о с рт е н и е кбиу ч еск о г о сп лай н а 786 С та н д а р тн ы е к р а ев ы е с л о ув и я 786 О п ер а ц и и н а д сп лай н ам и 788 П о с рт е н и е сп лай н а дл я векотр- нфу кц и и 790 П рои з воль н ы е к р аев ы е услови я 792 И сп о ль з о в ан и е сп лай н о в в 5- форм е 795 С гл а ж и в а ю щ и е сп лай н ы 802 И н ет р а к ит в н о е п о срт ен и е кри вы х 807 П р и л о ж ен и е splinetool 809 С п лай н ы дл я п о в енрх о сет й 814 К с оу ч н о - п о л и н о м и а л ь н а 5- фо р м
в а лГ
а 19. Пи неж и лб и р
П р и л о ж ен и С о з ад н и П р е вд а р и е т л ь н а
х и поб до
е Curve Fitting Tool и а ад н н ы х дл я я о б р а б о тк а а дн ы е дан н ы х и з таб л и ц я фи ль ртац и я таб л и ч н о е таб ли ч н ы х н уф к ц и е п ри бли ж ен и й ь к ач есвт а п р и б л и ж ен и ы ап ро к си м ац и и дл я п о бд р е с о б втен н о й п а р м ерт и ч е с к о з п о срт е н н ы х п р и б л и ж ен и е м н о ж е св т
И с к л ю ч ен и Н ач ль н а П р и б л и ж ен и С о з ад н и К о н тр о л Ти п О п р е дл н и н А али в а лГ
е ы дн а
а 20. Ри не ш
Ф ну кц и
е и ксе ч эи мо н к
и дл П р е сда т в л е н и Ф ну кц и
Р а с ч ет Р а с ч ет Р а с ч ет Д и с к о н нт ы К пу он н ы П о р ф те л ь н ы П о срт е н и О п ит м а л ь н ы Д о п о л н и ет л ь н ы
я р а б о т
х а даз
в в Curve Fitting Toolbox
р о р те пм а р а
ег о срсведт п ри бли ж ен и я х ы й н фу к ц и й
а ;
и
й а п а р м е рт о
в й мле о д
и
й
, ч
и и врем н е м и и да т в MATLAB я ч и сл а дн е й жмде у датм и х п отко в ю к р е ид о т в м ц ен ы м бмуаг м ы и з р и ск о в ы х а к ит в о в й гр ан и ц ы ри ск о в ы х а к ит в о вы бо р п о р ф е лт я е о гр а н и ч е н и я п р и ан али з е п о рф е лт
е акит в е о б л и га ц и й ан али е э фекит в н о й
820 821 824 824 826 829 829 832 836 840 845 848
ы с да т м
е в р ем н и оп релдн и ы ен д еж н ы ы п о о бслжуи в ан и ы п о до л г в ы
819
,
в й
849 849 852 856 864 867 867 871 881 883 887 896
ИХ
ЧСА Т
Ь V. ДО П О ЛН И Т Е ЛЬ Н Ы
Е В О З М ОН Ж О С Т
а 21. Сз я в
в а лГ
zyxwvuts
гл Оа в е н и
П б лу и к а ц и М - кн и г
в работ
911 zyxwvutsrq
ы
911 914 914 917 920 921 922 923 925 927
и
С о в м е сн т а К о н ф и рг у и р о в а н и О бм е О б р а щ ен и Ф ну кц и
а MATLAB и со з адн и е М - кн и г и а чя е к е М - к н и ог й я работ а в MATLAB и MS Excel е MS Excel н да н н ы м и ж мд е у MATLAB и MS Excel е к о сн о в н ы м н уф к ц и я м MS Excel Link и MS Excel Link
а 22. и ц а з и н ре М д о
П ри м е М о едр н и з а ц и
я и не ж о л и пр
р п р и ло ж ен и С о р ха н е н и П е р ох д
в а лГ
909
ь MATLAB и MS Office
я р е з л у ь ат о Н а с рт о й к Г рп у и р о в к п У р а в л ен и
в а лГ
И M ATLAB
я дл я п р и л о ж ен и е п р и л о ж ен и к фо р м а т
а 23. и не ш ыП во
с кУ о р е н и
й с GUI вис ре
и 5.3
929
я MATLAB 5.3 я я в фо р м ат е FIG м FIG и М
е тсо н ь ле т и до пвз ио р
929 931 932 934
и и не ж по л и р
й M ATLAB.....
е работ
ы М - фа й л о в , э к о н о м и я п ам ят е о п ер ац и и я п а м ят и е п а м ят и п о д м ас и в ы С в яз ь MATLAB с дргиу м и яз ы к а м и п р о гр а м и р о в а н и К о н ф и рг у и р о в а н и е MATLAB Compiler П рост й п р и м ер , слож ен и е дву х ч и се л Р або т а с к о м п лек сн ы м и п ер м н ы м и О бм е н м ас и в ам и ад н н ы х с кУ о р ен и е работ ы п р и испо ль з о в ан и и ц и к ло
и
938 938 941 944 946 947 948 952 954 958
П о э л ем н т ы Э кон ом и В ы ел н д и
П Р И ЛО ЕЖ Н И
я
в
Я
и не ж о л и П р
961
е 1. Оы н во нс
пУ р ав л ен и П о ч л уе н и пУ р ав л ен и пУ р ав л ен и М а н и п луи р о в а н и О п е р а от р оЛ г и ч е с к и П о б и то в ы оЛ г и ч е с к и П р о гр а м и р о в а н и К о н с рк т у ц и С ер в и с н ы
е с р ео д й е сп рав о ч н о е с р ое д е п ер м н ы м
938
е д кн а мо
, фай л ам
ы и и ц к н фу
и и п ер м н ы м
й и н фо р м а ц и и й MATLAB и е фа й л а м и и к а т л о га м ы и сп ец и аль н ы е си м в о л ы е о п ер ац и и и о п ер а от р ы е о п ер ац и и е н фу к ц и и е яз ы к а е н фу к ц и и и п ер м н ы е
и MATLAB и Toolbox
963
и
и
,
963 963 964 967 969 971 972 973 978 981 981 982
гл Оа в е н и
И н ет р а к ит в н ы О б ъ е к нт о - о р и е н ит р о в а н н о Ф ну к ц и Двои чн ы Ф ну к ц и Ф ну кц и
й во и дат е и и дл и дл е и графи ч еск и , з ап и с
е Чнт и е Г р а фи ч е с к и О п ер а ц и О б р а б о тк П р ео б р аз о в ан и П р ео б р аз о в ан и Р абот
а с С о з да н и О п ер а ц и
М а етм и ч е с к и С п ец и ал ь н ы П р ео б р аз о в ан и Р ше не и
е М а рт и ч н ы Р ше не и Р еш ен и В ы ч и с л ен и П ои с И н ет р п о л я ц и М и н и м и з ац и Д и ф ер н ц и р о в ан и И н ет г р и р о в а н и Р еш ен и
Г р а фи к
к
а И н ет р а к ит в н а Д вм у е р н ы Т р ме х р н ы В и з а луи з а ц и В и з а лу и з а ц и О фо р м л е н и п У р а в л ен и
и не ж о л и П р
е и п р ео б р а з о в а н и
и е фа й л ы я работ ы с м ас и вам и ч яе к я работ ы с о срктуам и е фай л ы ь и п р ео б р а з о в а н и е з квуо ы е фай л ы и с о срто к ам и а ср т о к я "срто к а- ч и сло " е си емст ы с ч и л ен и я м арти ц ам и и м ас и вам и е м арти ц и м ас и во в и с м ас и вам и е н фу к ц и и е фн у кц и и е к о р ди н а т р аз ли ч н ы х м ае т и ч е с к и х з ад ч й ан али з е сп екрталь н ы х з ад ч е ли н ей н ы х р уа в н е н и й , р аз л о ж ен и е н уф к ц и й о т м арти ц корн е й я и п ри бли ж ен и е дан н ы х я и о п ит м и з ац и я е и к о н еч н ы е р аз н о с т е е ди фер н ц и аль н ы х р ау в н е н и й и в и з алуи з ац и я ад н н ы х я с р ед а дл я п о срт ен и я и е гр а фи к и е и к о н рутн ы е гр а ф и к и я в еко тр н ы х п о ле й я н уф к ц и и н а н еп р ям огуль н о е гр а фи к о в е ви од м гр а фи к а , к а м ер а
е ит п о
ы и врем н
тек сотв ы
е 2. Ои нас и п к р у т а лре т и
д е п р о гр а м и р о в а н и
З вк у о ы
ос и п С
XIIIzyxwvutsrqpon
е - т к а п кксмои д ы
а
х ад н н ы
х
е и о б р ащ ен и
е м а рт и
ц
и и сиест
м
р еад к ит р о в а н и
я гр а фи к о
й о бласт
и
в
в
984 986 986 987 995 999 1003 1003 1004 1007 1007 1011 1015 1016 1016 1018 1019 1019 1024 1025 1025 1028 1029 1032 1033 1035 1036 1037 1038 1039 1039 1039 1040 1046 1061 1065 1068 1072zyxwvutsrq 1081 1082
в е В д ин
е
В1 . О на зн еч ни MATLAB и е г
и и возм носжт я о ра сшире н
й
х паект
а
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
Н аз ван и е MATLAB явлсет я с о к р а щ ен и е м о т Matrix Laboratory, и п ер в о н а ч аль н о п ак е т MATLAB р а з р а б ты в а л с я к а к с р е вд т о од сп у т а к б и б л и о ет ка м п р о гр а м м LIN P ACK и EISPACK, п р енд аз н ач ен н ы х л д я м а рт и ч н ы х вы ч и с л ен и й . П а к е т MATLAB со з ад н к о м п ан и е й M ath Works о к о л о дв а ц а т ле т н а з а д . Р а б о т а се о т н ч не у ы х и п р о гр а м и с то в н ап р ав лен а н а п о с т ян н о р ас ш и р ен и е ег о в о з м о ж н о с ет й и с о в е р ш е н с вт о а н и е з ал о ж ен н ы х а л го р и т м ов . В н асотящ е е врем я MATLAB явлсет я м ощ н ы м и ун и в ер саль н ы м с р ед вс т о м р еш ен и я з адч , в о з н и к а ю щ и х в раз ли ч н ы х о б л а с ят х ч ел о в еч с к о де я т л ь н о с и т . С п ек т р п р о б лем , и с леодв ан и е котры х м ож е т бы т ь що с у е т й (Toolbox), овха ыт в а ет : м ат в л ен о п р и п ом щ и MATLAB и ег о р ас ш и р ен и ри чн ы й ан али з , о б р а б о кт у с и гн а л о в и и з о б р а ж ен и й , з адч и м а ет м а ит ч е с к о фи з и к и , о п ит м и з а ц и о н н ы е з а д ч и , фи н ан со в ы е з а д ч и , о б р а б о кт у и ви зау ли з ац и ю да н н ы х , р а б о т у с к а р от г р а ф и ч е с к и м и и з о б р аж ен и ям и , н ей р о н н ы сиет , н ечкту ю л о ги к у и м н о г е дргоу е . О к о л о сор к а с п ец и ал и з и р о в ан н ы т бы т ь вы бороч н о с аут н о в л е н ы в м ес т е с MATLAB п о жлеа Toolbox м о гу н и ю п о л ь з о в а те л я . В со ат в м н о ги х Toolbox вохяд т п р и л о ж ен и я с гр афи ч е с к и м и н е тр ф й с о м п о л ь з о в а те л я , к о т р ы е о б ес п еч и в аю т б ы с рт ы й и н а гл я д н ы й од су т п к осн овн ы м нф у к ц и я м . П а к е т Simulink, п о сатв ляем ы й в м ес т е M ATLAB, п р енд аз н ач е н л д я и н те р а к ти в н о г о м о ед л и р о в а н и я н ел и н ей н ы ид н а м и ч е с к и х с и е мт , со стящ и х и з сатн адр нт ы х блоков . О бш и рн а я и о д уб н а я сп рав о ч н а я с и емт а MATLAB с п о с б н р и т ь п о рт е б н о с т и к а к н а ч и н а ю щ е го , та к и до с та о ч н о о п ы тн о г ет л я . П о л н а я ги п ер тк сот в а я и н фо р м а ц и о н н а я си есмт а (н ке ) со едр ж и т о п и сан и е в с рт о е н н ы х н фу к ц и й и д о с та о ч н п р и м ер о в и х и сп о ль з о в ан и я . С сы лк и п о з в о л яю т п е р о их д т и м ею щ и м о нт о ш е н и е к и з ч уа е м о у воп росу , ч т о о б легч ае н ы й п ои с к и н е рт ю с у щ е й и н фо р м а ц и . Д о сут п и з к о м а н дн о к р а кт и м с в ен д и я м о в с рт о е н н ы х н фу к ц и я х о б ес п еч и в а е т с рт о г о вы бор а н ж ун о г о вари ан т а о б р ащ ен и я к фну к ц и ям ч ну ы м р а б о тн и к а м , п р о в ядщ и м с а м о с т яе л ь н ы е и с л е од в а н и я ю ст я п о л ез н ы м и п р и лаг ем ы е к п ак ет у э л е к рт о н н ы е к н и г т сп рав о ч н у ю с и ем т у Дан н ы е кн и г и н е то л ь к о б уд л и р ю у до г о Toolbox, н о и с о едр ж а т ет о р ит ч е с к и е с в ен д и я и м ает и ч е с к у
а од ув л е т о о п оль з ова
и е й й е х с х -
а ан гл и й с к о м яз ы о боль ш о е ч и сл о ь к р а з де л а м , т с а м о с т яе л ь й с рт о к и к воз м ож н ост ь бы . И н ж ен ер а м и н а , о к а з ы в а и в фо р м а т е P D F . M ATLAB и каж ю ба -
2
zyxwvutsrq
В ве н д и
з у , н ео б хид м ы е лд я о с з н а н н о г о и сп о ль з о в ан и я о п и с ы в аем ы х с р е дв т С п рав о ч н а я с и с е тм а с н а б ж ен а с ы лк ам и н а кн и г и и с ат ь и , п о св ящ ен н ы е р еали з о в ан н ы м а л г о р и тм а м в MATLAB и Toolbox, ч т о п о з в о л яе т и с ло е д в а етл ю и р а з р а б о тч и к у с о б вт ен н ы х а л г о р и тм о в в н и к н ту ь в ст у ь едл а . MATLAB о б л а д е м ер н ы х и трмех р н ы з в ан ы с о к р а ти м ен , п о лчуен и срт о е н и я гр а ф и к о ли з ац и и да н н ы х л а ем ы м образ ом ли н и й и п о в ернх о с етй в к л ю ч ен и я в о чт е б р аж ем ы х гр а фи к о п о рд а з м у е в а т п р и ем а и п р о г р а м и р о в а н и я
т ох р ш х ад н н ы х ь си у л е к а ч е свт н н ы в п о з в о л яе . К р о м : р аз м ещ ен и
о р а з в и ыт м . В ы с о к руо в н ев ы
и в о з м о ж н о с ят м
и в и з аул и з а ц и е гр а фи ч е с к и
я д о м и н и м уа , о б ес п еч и в а я х р е з л у ь ат о в . И н те р а к ти в н а т о б й ит с ь бе з гр афи ч еск и х нфу к ц и е то г о , о н а жслиу т и дл я о ф р м л ен и я п о ясн яю щ и х н апд и сей , з а д н и , с л о в м , дл я п очлуен и я и з о б р аж ен и я т и л и с ат ь ю . П о л н ы й од су т п к и з м ен ен и т н и з к ору в н ев ы е нф у к ц и , п р и м ен ен и в ад ю п о н и м ан и е п ри н ц и п о в к о м п ь ю ет р н о й гр а фи к .
е фн у к ц и
я п о л ь з о в а ет л
я с р ед й я р ез луь ат я ц в ет , п р и го дн о г ю св о й ст и
. -
и ву д и п ри , е т м а лд я п о дл я ви за у а же а и сит л о лд в от е котры и в л а е дн и
н е
В MATLAB р е а л и з о в а н ы к л а с и ч ес к и е ч и с л ен ы е а л г о р и тм ы р еш ен и ру а в н е н и й , з а д ч л и н ей н о й а л ге б р ы , н оахж едн и я з н ач ен и й о п р е дл н н ы и н те г р а л о в , а п р о к с и м а ц и , р еш ен и я си е т м и л и о е д тл ь н ы х ид ф е р н ц и аль н ы х ру а в н е н и й . Д л я п ри м ен ен и я б аз о в ы х в ы ч и с л и ет л ь н ы х в о з м о ж н о с ет д о с та о ч н о з н ан и я осн овн ы х ч и с л ен ы х м ео т д в в р а м к а х п р о гр а м ы хе т н и ч ес к и х в зу о в . Р еш ен и е с п ец и а л ь н ы х з адч , р а з му е стя , н ев о з м о ж н о бе с о в т ес ю у щ е й ет о р е ит ч е с к о й п о д г то в к и ; в п р о ч е м , св едн и я , и з ло ж ен н ы е в сп рав о ч н о й с и емт , о к а з ы в а ю ст я н ео ц ен и м ы м п о сд п о р ь е м л д я же лаю щ и х с а м о с т яел ь н о р а з о б р а ть с я в обш и рн ы х в о з м о ж н о с ят х п ак ет M ATLAB. П рост с о б вт е н н ы с я о гр о м н ы п о з в о л яе п р ав лен н ы
й в с рт о е н н ы
й яз ы е а л г о р и тм ы м м н о ж е свт о
т д о с та о ч н е н а р еш ен и
к п р о гр а м и р о в а н и я п о з в о л яе т л е гк о с о з ад в т . П р о с то а яз ы к а п р о гр а м и р о в а н и я к о м п е н с и ре т у м н фу к ц и й MATLAB и Toolbox. Д а н н о е с о ч е ат н и о б ы с рт о р а з р а б ты в а т ь э ф е к ит в н ы е п р о г р а м ы е п р ак ит ч еск и в аж н ы х з адч .
я я х е я х й з а ь е
, н а -
В и з а ул ь н а я с р ед а G U I D E п р енд а з н а ч ен а лд я н а п и с а н и я п р и л о ж ен и й с гр а фи ч е с к и м и н е тр ф й с о м п о л ь з о в а те л я . Р а б о т а в с р ед е G U I D E п р о с та , н п р е дп о л а г е т в л а ед н и е о сн о в ам и п р о гр а м и р о в а н и я и де с к р и п то р н о й гр а фи к и . Н а л и ч и е о п р едл н н о г о н ав ы к а р а б о т ы в с р ед е G U I D E п р еод сатв л я е т воз м ож н ост ь с о з ад т ь в и з а ул ь н у ю с р де у л д я п р о в е дн и я с о б вт е н н ы х ис с л е до в а н и й , ч т о з н а ч и те л ь н о о б л е гч а е т работ у и щс у е св т н о экон оми в р ем я .
о т
В ве н д и
3__zyxwvutsrqp
О б ъ е к нт о - о р и е н ит р о в а н н ы й п о хд п еч и в а е т с о в р ем н н у ю э ф ек ит в н у ч о еу т м с п ец и ф к и р еш аем о й з адч до п о л н е н и е к щ с у ю ев с ту щ и м к лас в ен н ы е с о св о и м и м е о т ад м и .
, з ало ж ен н ы ю е тн х о л г и и р а з р а б о тч и м и ме
й в о сн о в ю п р о гр а м и р о в а н и я к п р и л о ж ен и т воз м ож н ост
MATLAB п р ек р а с н о и н е тг р и рес ту я с о м н о ги м и п р и л о ж ен и ям п р о гр а м и р о в а н и я . С в яз ь MATLAB и MS Word о бесп еч и в ае н ап и сан и я в р е д а к то р е MS Word и н етр а к ит в н ы х д о к м у е н от в мы х М - к н и г , о с н о в ан н ы х н а с п ец и а л ь н о м ш абло н е ат ю щ и й с М - к н и го й , м ож е т з а п с ук а т ь блок и к о м ан д в ен н о и з од к м у е н т а MS Word, п ри ч е м р е з л у ь ат о т б р а ж е тс я в М - кн и ге . Д а н н о е сресвдт о п р ек р ас н о э л е к рт о н н ы х о чт ео в и учебн ы х п ос би й .
у MATLAB, обес
. С й M ATLAB в ь с о з ад в т ь со б т и и с р е ад м т воз м ож н ост , ат к н а з ы в а е
. П о л ь з о в а те л ь , р а б о MATLAB н еп о средт т в ы п о л н ен и я к ом ан п о хди т лд я с о з адн и
и ь д я
Н а д с тр о й к а MS Excel Link, п о сатв л яем а я в м ес т е с M ATLAB, щсу есвтн о р ас ш и р яе т воз м ож н ост и MS Excel, о бесп еч и в а я о д су т п п о л ь з о в а ет л я к н фу к ц и я м MATLAB и Toolbox. П о дг то в к а ад н н ы х о щ с у е св т л я я н еп о с р е вд т н н о в э л ек рт о н н ы х та б л и ц а х , а о б р а щ ен и е к фн у к ц и я м п р о и з в о ди т с я л и б о и з яче к р а б о ч е г о л и с ат , л и б о в м л е оу д , н ап и сан н о м н а Visual Basic (VBA). MATLAB Builder for MS Excel п о з в о л яе т р еали з о в ы в ат ь а л г о р и тм ы MATLAB в ви д е С О М - о б ъ ек от в и и с п о л ь з о в а т ь и х в п р и ло ж ен и я х н а VBA. И н фо р м а ц и я , рхан ящ аяс я в баз х ад н н ы х м н о ги х п о п л уя р н ы х ф о р м а то в , м ож е т бы т ь и м п о р ти р о в а н а в MATLAB, н ж у ы м о браз о м о б р а б о та н а и и с л е од в а н а п р и п ом щ и н фу к ц и й M ATLAB, а з ает м э к с п о р ти р о в а н а в ка ю баз у ад н н ы х . Д л я о б м ен а дан н ы м и и сп о ль з юу ст я к о м ан д ы юк у - л и б о г ру д яз ы к а з а п р о с в SQL. П о дер ж и в а ест я , в ч а с нт о с ит , связ ь с Microsoft Access, Microsoft SQL Server, Oracle. И м ест я п р и ло ж ен и е с гр афи ч ес к и м и н етрфй сом , к о т р о е о б л е гч а е т работ у п о л ь з о в а ет л й , н е з н а к о м ы х с яз ы к о м з а п р о со в SQL. С и м в о л и ч ес к и е щ ей с я я рд о м п ак ет ди ф е р н ц и р о в а н и е н и е р я до в , п ои с н и е в ы р аж ен и й л д я п р о в е дн и я ч и с л ен и я с п р о и з в о л ь н о в Maple, м огу т (к р о м е гр а фи ч е с к и х яз ы к е Maple.
в ы ч и с л ен и
я в MATLAB о с н о в ан а Maple. Р еш ен и е урав н ен и , в ы ч и слен и е п р едл о в , р а з л о ж ен и к р еш ен и я ди ф ер н ц и аль н ы х — в о т да л ек о н е п о лн ы й п ер ч н а н а л и т ч ес к и х в ы к л а од к и р а с ч е то в й то ч н о с ть ю . П о л ь з о в а те л и н а п р ям у ю о б р а щ а ть с я к о в се ) и в ы з ы в а т ь п р о ц ер уд ы
ы н а б и б л и о те к , яв л ю й и си семт , и н те гр и р о в а н и е и е в р я д и см у и р о в а р уа в н е н и й и си семт , пу ро щ е ь в о з м о ж н о с ет й MATLAB . П о дер ж и в а ю ст я вы , и м ею щ и е о п ы т работ ы м н фу к ц и я м да н н о г о п ак ет а , н а п и с а н н ы е н а в с рт о е н н о м
4
В ве н д и
zyxwvutsrq
П ро г ам н ы й и н ер тф й с п ри лож ен и я (API) реали зе у т с в яз ь с р ед ы MATLAB с п р о гр а м а м и , н ап и с ан н ы м и н а С , F ortran и л и Java. Би б л и о те к а п ро гр а м н о г о и н е тр ф й с а п о з в о л яе т в ы з ы в ат ь и м ею щ и ес я м л оу д и н а С , F ortran и л и Java и з сред ы и л и п р о гр а м м MATLAB, о б р а щ а ть с я к фн у к ц и я м MATLAB и з п р о гр а м м н а С и л и F ortran, ощсу есвтля ь обм е н да н н ы м и ме и п р о гр а м а м и . С р едс вт а MATLAB жд у п р и л о ж е н и я м и MATLAB и дргиу м Builder for COM п р енд аз н ач ен ы лд я п р е о б р а з о в а н и я п р о гр а м м MATLAB в С О М - о б ъ е к ыт , до псут н ы е в дргиу х п р и ло ж ен и ях . Дл
я р а з р а б о кт
п ри ч е п р о гр а м и р о в а т П о дв п о л ь з о в а ет л з н ан и м и рован и я я в л ес т р а з б и р а ть с и з м ен ят од п с у к а е м о ди ф и к а ц и й
м п р о ц ес
и и н ре т - п р и л о ж не и с с о з ад н и я п р и л о ж ен и ь в MATLAB требсту
н MATLAB Web Server, й MATLAB соза д я д о с та о ч н о п рост — к р о м е м уе н и я я то л ь к о з н а н и е о с н о в H TM L.
я и от
г в ы ш ес к аз ан н о м у , м о ж н о с е дл а т ь вы вод , ч т о н а ч и н а ю щ и й ь M ATLAB м ож е т в п р о ц ес е работ ы с о в е р ш е н с вт о а т ь св о и я к а к в о б л а с т и м о ед л и р о в а н и я и ч и слен ы х м е от д в , ат к и п р о гр а м , и в и з аул и з а ц и и ад н н ы х . О гр о м н ы м п р е и м щ у е с вт о м M ATLAB я о тк р ы то с ь к о ад , ч т о аде т в о з м о ж н о с т ь о п ы нт ы м п о л ь з о в а ет л я м я в з а п р о гр а м и р о в а н н ы х а л г о р и мт а х и , п р и н ео б хди м о с ит , ь и х . В п р о ч ем , р а з н о б р а з и е н абор а н фу к ц и й M ATLAB и Toolbox т р еш ен и е б о л ь ш и н с вт а з ад ч бе з к а и - х л и б о п р е вд а р и е т л ь н ы х .
Дале е м ы п ер ч и с л и м осн овн ы е воз м ож н ост и Toolbox. Четн и е э и т х е д вс н и й в ы м ож ет е со п р о в ж адт ь з а п с к уо м дем о н сртац и о н н ы х фай ло в MATLAB. Д л я э то г о е с лу д т з а п с уи т ь MATLAB и в м ен ю zyxwvutsrqponmlkjihgfedcbaZYX Help в ы б р а т ь пну к т MATLAB Help. П о яв л яест я окн о и н ет р а к ит в н о й сп рав о ч н о й с и с етм ы , в ле в о й ч аст и кот рог о н а в к лад е Demos соедр ж аст я р а з де л ы M ATLAB и Toolboxes. Щ ел ч о к мы ш ь ю п о н аз в ан и ю р а з де л а п р и в о ди т к ег о р а с к р ы ти ю и о т б р аж ен и ю с о де р ж и м о г о п о рд а з ед л о в в п рав о й ч аст и окн а с п р а в о ч н о й с и ем т ы (р и с . В 1) . П о с м о тр и те , н а п р и м е р , о б з о р баз о в ы х гр а фи ч е с к и х в о з м о ж н о с ет й п ак ет , котры й с о ед р ж и с т я в п ордз ела х Graphics и 3- D Visualization. К п р и м ер у , в п о др а з де л е Graphics п ер й ид т е к пн у кт у Functions of Complex Variables и з а п с и ут е с о вт ес ю у щ у ю д е м о н с рт а ц и ю п р и п ом ощ и дв о й н о г о щ ел ч к а мы ш ь ю п о н аз ван и ю п ну кт а и л и щ ел ч к а мы ш ь ю п о с ы лк е Run this demo в в е нр х е м п рав о м лг у у о к н а сп рав о ч н о й с и е мт ы . В п о яв и в ш ем с я окн е Functions of Complex Variables н а ж и м а й т е кн оп к у N ext, п р и э от м срт о яс я гр а фи к и н фу к ц и й к о м п л ек с н ы х п ер м ен н ы ,х а сам и в ы р аж ен и я лд я н ф у к ц и й в ы в о дя с т я в з а го л в к е гр а фи к о в . О б р а ти е в н и м ан и е н а ет к с о в у ю о бласт ь п о д г р а ф и к о м , в к о т р о й о т б р а ж ю тс я т е к о м а н ды , к о т р ы е н ад о в ы з в ат ь в M ATLAB дл я п о члуен и я п одбн ы х р е з л у ь та о в .
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В ве н д и
i Ve i w Go Favote i s Desktop Wnidow Hep l File Ed» #
Contents] Index] Search Demos ]
#4
tle: | MATLAB Demos
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
О Getting Started with Demos
M A T L A B D e m o s tU Mathemactis • U G t raphcis M at hem at ic s CU 3-D Visualization Mathematical operations, functions, and data analysis. i2j Programmnig •Јj Desktop Toosl and Deveo lpment Envrionm* hsj Creatn i g Graphcial User Interfaces B?sjc Matrix Oil External Interfaces Ф- •Јj Gae l ry Јj Other Demos (2J New Features in Verso i n 7 ~ф MATLAB Report Generator й *ф. Toolboxes +:- ф. Bioinformatics [ Йг- ф Communications * - 4k Control System + ф, Curve Fitting i &~фк Data Acquisition \ 'ф~*ф. Database +™^fo Filter Design | fe- ф Filter Design HDL Coder ; i ±:- *ф. Financial + - ф. Fixed- Point ! lp- фь Fuzzy Logic
MATLAB
'EFI.fo.L3fjec.traJ... Analysis
Population
Non- linear Function
Single Precision Math Example
Graphs and Matrice
Inverse? oH M j , : ,
Р си
Matriy Manipulation
zyxwvutsrqponmlk
. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA В 1 . О к н о с п р а в о ч н о й си емст ы с о ссы лк ам и
н а дем о н с рт а ц и о н н ы
е фай л
ы
Н ек о т р ы е воз м ож н ост и MATLAB п р есдатв лен ы в и д е о м о н с рт а ц и я м и , н ап р и м ер : и с п о л ь з о в а н и е и н ет р а к ит в н о й с р ед ы л д я п о с рт е н и я гр а фи к о в а Graphics), соз ад (п н у к т Interactive Plot Creation with the Plot Tools п о др а з дел н и е п р и л о ж ен и й с гр а фи ч е с к и м и н е рт ф й с о м (пн у к т Creating a GUI with GUIDE п о др а з де л а Creating Graphical User Interfaces). Е сл и в ы р а б о та л и в п р еж н и х в ер с и я х MATLAB, т о в а м ок асжт у я п о л ез н ы м и в и де о б з о р ы но в ы х в о з м о ж н о с ет й с р е ыд , р е да к то р а , гр а фи к и и п р о гр а м и р о в а н и я , к о т е New Features in Version 7. р ы е соедр ж аст я в п о рд аз едл Двой н о й щ ел ч о к мы ш ь ю п о р аз едл у Toolboxes п р и в о ид с к а п о др а з де л о в . Т ем ы к а ж од г о п о др а з де л а о в х а ыт в а ю ск и в а ж н ы е з адч и , к о т р ы е м о гу т бы т ь р еш ен Toolbox. Р аз муестя , в о з м о ж н о с т и Toolbox н е и сч ер п ы в аю ст ным и в де м о н с р т а ц и я х . Д ал е е п р и в е дн о к р а тк о Toolbox. ^ лД
я тог н а ш ав е
Пр и м е ча ни о об ч т ы узн ьат м к о м п ь ю ре т
е
ы пр е о п и сан и
т к р а с к р ы ти т м н о ги и п ом щ
ю сп и е п р а к ит ч е и да н н о г я п р е с да т в л е н е н ек о т р ы
о х
^ , каки , оачтдсн
е инме
о Toolbox вяод х т в уна тс овк у MATLAB о з и ап с т у ь MATLAB и в коман д о й
6
zyxwvutsrqp
В ве н д и
р о к тс с тя д
е (обоз н ачне о я н аз вн и
й си молв я вес
С р е сдв т а о б р а б о тк и с и гн а л о м ср т у е н т ы лд я р е ш е н и Processing Toolbox: • ге н е р а ц и я
, и м п о р
• р а з р а б о тк а к о н еч н о
м » ) н абрт х Toolbox с укзан и е
х дп ну отсы я з ад
в со бран ч о б р а б о тк
ы в н ес к о л ь к и и с и гн а л о
т с и гн а л о в
;
т и э к с п о р
, а н а л и
з и п р и м ен ен и й а х р к те р и с ти к о й
й и м п луь сн о
• к о н с тр и у р о в а н и
е ц и фр о в ы
ь . Вы ов .
-
х Toolbox. Ба з о в ы е ин в н а о х яд с т я в Signal
х ф и л ь рт о
в с к о н еч н о
й и бсе
-
;
е ан алог вы
• п рео браз о в ан и я с и гн а л о в
ь ver и н ажт м и х вреси й
х ф и л ь тр о в
, с п е к тр а л ь н ы
; й ан али
з и с та и с ти ч е с к а
я о б р а б о тк
а
;
• м о де л и р о в а н и
е п а р м е рт и ч е с к и
х в р ем н н ы
х р я до в
.
В со сат в Signal Processing Toolbox вохид т н ес к о л ь к о п р и л о ж ен и й с гр афи ч е ск и м и н ет р ф й с о м , п р енд аз н ач ен н ы х лд я о б л е г ч н и я од с п у т а к н фу к ц и я м Toolbox. Д а н н ы е п р и л о ж ен и я п о з в о л яю т и м п о р ит р о в а ьт ' , в и з аул и з и р о в а т ь и и с л е од в а т ь с и гн а л ы , и з чуат ь с п ек т р с и гн а л о в , и н тер а к ти в н о с о з да в т ь ф и л ь рт ы с з а д н н ы м и а х р к те р и с ти к а м и . Бо ле е ш и роки е воз м ож н ост и лд я к о н с тр и у р о в а н и я ф и л ь рт о в п р е од с а т в л я ю т Filter Design Toolbox и Filter Design H D L Coder. Р а з р а б о тк а м ан али з в ы с о к ч а с то н ы х ц еп й м о гу т бы т ь о щс у е св т л н ы в R F Toolbox. Д л я п о срт ен и я м о елд й си е т м н а о с н о в е э кс п е р и м е н ат л ь н о п о чл у е н н ы х ад н н ы х ж с л иу т System Identification Toolbox. П р и и с л е од в а н и п о л ез н ы м в ей в лнет ы Toolbox. л А г о р и мт н фу к ц и
и и о б р а б о тк й ан али з
ы о б р а б о тк и к о т р о г т и э к с п о р
• г е о м е рт и ч е с к и п оворот
;
• о б р а б о тк
й со бран
т гр а фи ч ес к о
з и з о б р аж ен и й
, н а п р и м е
, н а п р и м е р
• р а з р а б о тк
а л и н ей н ы
• и д с к р ен т ы
е п р ео б р а з о в а н и я
• о п ер ац и
и н а д с о не д и м
; р та к и е
й и н фо р м а ц и
а и з о б р аж ен и й
я о ч ен ь и Wavelet
: й и н фо р м а ц и
е с ат и с ит ч е с к о
й о к а з ы в а е тс ь с р в е дт а м
ы в Image Processing Toolbox,
т о сщ у е с в т и ь
е о п ер ац и
• п о лч у е н и
в и и з о б р а ж ен и о п р о едл а т
й м ож н
и и з о б р аж ен и о п о з в о л яю
• и мп ор
• ан али
е с и гн а л о , к о тр ы
, к а к и з м ен ен и
и о б и з о б р а ж е н и , н оахж едн и
: и з м ен и
е гр а н и е к о н рт асн о сит
х ф и л ь тр о в
е р аз м ер о
в и
; ц и н етн с и в н о сит , п ри м ен ен и
; е фи л ь рт о в
;
; , в ч аснт о сит и э л е м н ат м и
, бы срто ;
е п р ео б р аз о в ан и
е Ф р уь е
;
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В ве н д и
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA работ а с к а р то й ц в е от в ; • раз ли ч н ы
е м еотд
ы п р е сда т в л е н и
• п р ео бр аз о в ан и
е ти п о
я ц в е от
;
в и з о б р а ж ен и й
.
В с о ат в Image Processing Toolbox вохид т н ес к о л ь к о д е м о н с рт а ц и о н н ы х п р и ло ж ен и й , овхаыт в аю щ и х р еш ен и е з ад ч о н о а хж е д н и и гр а н и ц и з обра ж ен и й , фи л ь рт а ц и и и р а з р а б о тк и ф и л ь тр о в , сж аит и и з о б р аж ен и я . Д л я р а б о т ы с к а р от г р а ф и ч е с к и м и и з о б р а ж ен и ям и и м се т я о е д тл ь н ы й M apping Toolbox. П о лчуен и е в и де о и н ф о р м а ц и и о т в н еш н и х с р ут о й с т в м ож е т бы т ь в ы п о л н ен о ср есдвтам и Image Acquisition Toolbox. т о щ с у е св т и ь и м п о р ти р о в а н и С р ед а MATLAB п о з в о л яе лог вы х ад н н ы х с и с п о л ь з о в ан и е м с о в м е с ит м о г р а б о тк у и э к с п о р ти р о в а н и е . Д л я о бм ен а да н н ы м Toolbox и Instrument Control Toolbox, н фу кц и бо т у с о б о рдув а н и е м и з в е сн т ы х п р о и з в о ди е т л й Д л я с а ти с т ч е с к о й о б р а б о тк и и н фо р м а ц и ск оль к о Toolbox. Ф ну к ц и и и п р и ло ж ен и роки й с п ек т р с а ти с т ч е с к и х з ад ч и р еал и з юу н и я . Д о спут н о бо ле е вд а ц а т и к л а с и ч ес к и и м ею с т я н фу к ц и и р асп р едл н и я в ер о янт о с т в е р о я тн о с ти , в ы ч и слен и я м о е н от в р а с п р е дл н и р а с п р едл н и я . О с н о в н ы е клас ы с а ит ч е с к и в а н ы п р и п о м щ и Statistics Toolbox, в к л ю ч а я • и с л е од в а н и
е ли н ей н ы
х м о едл й
• п а р м е рт и ч е с к о у г и п о те з
• п лан и рован и П з адч
и и а н а л и з а ад н н ы х и м сет я не я Statistics Toolbox п о к р ы в а ю т ши т осн овн ы е м ое т д ы и х р еш е х р ас п р едл н и й , лд я н и х и (и о б р а тн о й к н ей ) , п л о нт о с т и й и ген ер ац и и вы борк и и з т бы т ь и с л ое д х з ад ч м о гу :
;
е о ц ен и в а н и е
• п р о в ер к
е ц и фр о в ы х и ан а о с PC о б о р ду в а н и я , и х о б т D ata Acquisition и ж с л ау и котры х п о де р ж и в а ю т ра .
;
; е э к с п ер и м ен ат
и к л а с ет р н о г
; о ан али з
Statistics Toolbox соедр ж и гр а фи к о в и п р и ло ж ен и з н ач ен н ы е дл я и зч еун и з о в ан и е м р егр с и о н н о
т н або я с гр афи ч ес к и я р а с п р е дл н и й м о ед л и
а и др р н фу к ц и
я о б р а б о тк
• п а р м е рт и ч е с к о
е и н еп а р м ерт и ч ес к о
й лд
я п о с рт е н и
м и н е рт ф й с о й и а п р о к с и м а ц и
я с а ти с т ч е с к и м п о л ь з о в а те л я и да н н ы
х , п рнед а х с и сп о ль
-
.
П р и б ли ж ен и е ад н н ы х раз ли ч н ы м Toolbox и Spline Toolbox, п р еод сатв л яю щ и • п р е дв а р и е т л ь н а
.
и сп о с бам
и р еали з о в ан х ю с лу е д щ и
а ат б л и ч н ы
е в о з м о ж н о с ти
х ад н н ы
х д о п р и б л и ж ен и я
е с гл а ж и в а н и е
;
о в Curve F itting : ;
8_
zyxwvutsrqp
В ве н д и
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ап ро к си м ац и я с и с п о л ь з о в ан и е м л и н ей н ы х и н ели н ей н ы х м о е дл й , п ри ч е м и м се т я б и б л и о те к а ш и рок о р а с п р о с рт а н е н н ы х м о е лд й и п у р де с м о рт е н а воз м ож н ост ь с о з ад н и я с о б вт е н н ы х ; • с о ут й ч и в ы
е м ео т д
• в ы ч и с л ен и
е р а з л и ч н ы
• ан али
ы п о дб р х к р и етр и е
з да н н ы х
• и н ет р п о л я ц и
я - л сглаж и в ан и
• те н з о р н о с п л а й н - нф у к ц и й
, ди ф ер н ц и р о в а н и е
в в к суо ч н о - п о л и н о м и а л ь н о й фо р м ы в дрюгу
;
е пр
и с п л а й н о в
е п р о и з в о дн ы х
и п о м щ
е п р о и з в едн и
е сп лай н о
я зу ло
в с п л а й н а
в лд
я к о н с тр и у р о в а н и
е и 5- фо р м е
,
;
в и о от б р а ж ен и
о р ас п о л ж ен и
; й фо р м
, и н етгр а л о
р о п ти м а л ь н о г
;
, и н те гр и р о в а н и е
е сп лай н о е и з о нд о
• вы бо
; в п р и б ли ж ен и й
: э к с тр а п о л я ц и я
• п р е сд а т в л е н и п р ео бр аз о в ан и
• в ы ч и с л ен и
а п а р м е тр о в
-
й о т с п л а й н о в
;
; я м н о г м ер н ы
х
;
• рац и он аль н ы
е с п л а й н ы
П п р и м ен ен и р ен ц и аль н ы
;
е сп лай н о х руа в н е н и й
в лд
я р еш ен и
я н ел и н ей н ы
х о б ы к н о в ен н ы
х и д фе
-
.
П р о блем ы , в о з н и к а ю щ и е в р а з л и ч н ы х о б л а с ят х экон ом и к и и фи н а н с о в , м о уг т б ы т ь и с л е од в а н ы п р и п ом щ и с п ец и ал и з и р о в ан н ы х а л г о р и тм о в не ск о ль к и х Toolbox: F inancial, Financial D erivatives, G AR C H , Financial Time Series, D atafeed и Fixed- Income. П ер ч и сли м осн овн ы е з адч и , р еш ен и е ко то р ы х м ож е т бы т ь в ы п о лн ен о н фу к ц и я м и и п р и л о ж ен и ям и да н н ы х Toolbox: • в ы ч и с л ен и фи н а н с о в ы н о м и с п о т в о
е и ан али х а к ит в о м ры н к ах
• п р о в едн и
е ан али з
• п о дб о н а р а з л и ч н ы
з ц ен ы в (о сн о в н ы ; а дл
р и о ц ен и в ан и
я п о р фте л я м
е с рт а е г и ;
х ры н к ах е ри ск ам и
, и х в ы яв лен и
• в ы ч и слен и с ти ц и о н н ы з а те л й
е п отко х п р о е к то в
в п л а ет ж , а н а л и
и и ч в у с т и ет л ь н о с т х и п р о и з в о нд ы
я пу р ав л ен и
• пу р а в л ен и
• п р о е к ти р о в а н и н ы е о п е р а ц и
, од хн о с т
й е ж дх и р о в а н и
х ц ен ы
х бм у а г
и ц ен ы
х бму а г
и о е д тл ь н ы ) н а сроч ;
я (срт аохв н и я
е и о ц ен и в а н и е
х -
) о п ер а ц и
й
;
й и и х ан али з з и п р о г н о з и р о в а н и
, в то м ч и сл е э к о н о м и ч еск и
е о ц ен к
а и н ве х п ока
-
; е с о атв н ы ;
х фи н а н с о в ы
х и н с рт м у е н от в
, в к л ю ч а
я в алю т
-
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В ве н д и
П м о де л и р о в а н и м а ет и ч е с к о н и е к о р ел яц и • к а л ь к л уя ц и в ан н ы м од х СШ А и К а н а ды П и м п о р ти р о в а н и ед н и л и ч е с вт
е и о ц ен и в ан и й с ат и с ит к и и о б р а б ты в а е м ы я ц ен ы , од хн о с т м п о м ео т ид к а ;
е в о л а ит л ь н о с т , п р о в ер к х с ч л уа й н ы и и ч в у с т и е тл ь н о с т м сАо ц и ац и
е с а ит ч е с к и е н а и х осн ов а и н д и к а то р о в
и в р ем н н ы
х ад н н ы о ан али з
е не т х и ч е с к о г
х р я до в м е о т ад м х г и п о те з , в ы яв ле ; и а к ит в о в с фи к с и р о и ц ен ы х бм у а
а с а ит ч е с к и х п р о ц ес о в и и н с р т уи д х с фи н а н с о в ы а с п р и в л еч н и е
х ры н ко м боль ш ог
• п о дб
е и к в а др ти ч н о
х ли н ей н ы м ч и сло е м е о т ыд
е п р о гр а м и р о в а н и е
ю н ел и н ей н ы
• э л е к рт о с ат и к
. п к вы ь и н ег т
е
ь з ад , р е ш а т
ь я с
й ма п а к е ат м
и х
х п ре , воах
с з адч
-
й пр
и н али ч
и н ел и н ей н ы
х о гр а н и ч е
-
; е з а д ч
я п у р г о с ит
-
х и н ели н ей н ы м н е и з в е сн т ы . К лас
и и з адч
и о досит ж ен и
и ц ели
.
Partial D ifferential Equations Toolbox (PD E Toolbox) с о з да , о п и с ы в а ем ы х ди ф е р н ц и а л ь н ы м з ад ч м а те м а ти ч е с к о й фи з и к и н ен и ям и и с и сетм а и в ч а с нт ы х п р о и з в о дн ы х , м еот д м к о н еч н ы то в . Р еш ен и е з ад ч з н а ч и те л ь н о п у р о щ а е тс я б л а г о да р я гр а фи ч е с к и м и н те р ф е й с о м , к о т р о е п о з в о ляе т л е гк о и н а г л я дн в и т ь в с е э та п ы р еш ен и я з ад ч м е от д м к о н еч н ы х э л е м н то област и и гр а н и ч н ы х с ул о в и й д о в и з ау л и з а ц и и р е з лу ь т а м ож е т бы т ь л е гк о н а с тр о е н о н а о п р едл н н ы й к лас с р еш аем ы п ри м е р та к и х , к а к : • ет о р и
о ко
;
х н уф к ц и
р п а р м е тр о в
• м и н и м ак сн ы
г
.
Optimization Toolbox н ац ел н н а реш ен и е о сн о в н ы з ад ч о п ти м и з а ц и , п ри ч е м лд я з а д ч с б о ль ш и с у мд о р т е н ы в ес ь м а э ф е к ит в н ы е с п ец и а л ь н ы ыт в а е м ы й да н н ы м Toolbox, в к л ю ч ает : • м и н и м и з ац и н ий ;
-
в и п рове
К а к м ы ж у е пу о м и н а л и , MATLAB п оедр ж и в ае т си м в о ль н ы е в ы ч и с лен и я Symbolic M ath Toolbox соедр ж и т нфу к ц и , о бесп еч и в аю щ и е од с у т ч и с л и етл ь н о м у р яд у M aple. П о ль з ясу ь и ми , в ы м ож ет : п р о и з в о ди т ри рован и е и см у и р о в а н и е , в ы ч и с лят ь п р елд ы и н ао х и д т ь р аз ло ж ен и нфу к ц и й в р я д , уп р о щ а т ь в ы р аж ен и я , н аохид т ь о п р е д л и ет л и , р е ш а т ч и н а с о б вт е н н ы е з н а ч ен и я , п р и м ен ят ь р а з л и ч н ы е п р ео бр аз о в ан и я а л ге б р а и ч е с к и е и ид ф е р н ц и а л ь н ы е р уа в н е н и я , п р о в ди т ь в ы ч и с л ен и лю бо й то ч н о с ть ю , с л о в м , и с п о л ь з о в а т ь вс е в о з м о ж н о с т и си м воль н о ет м а ит к и Maple. И н етр ф й с с Maple и вохядщ и м и в ег о с о а т в м ож е т бы т ь н ал ж е н с р е дв т а м и Extended Symbolic M ath Toolbox.
• л и н ей н о
и
; а и м а гн и то с а ти к а
;
н дл
я р еш ен и
я
и руа в х э л ем н п р и ло ж ен и о о щс у ес т в — о т з а д н и . П р и л о ж е н и х з ад ч
ю с я е , н а -
10 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA •
zyxwvutsrq
В ве н д и
О zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA те п л о п р о в о д н о с ть ; • ет о р и
я ди фзу и
.
Н е с та ц и о н а р н ы е п р о ц ес ы о т б р а ж а ю тс я пр гр а фи к о в . В с о с та в PD E Toolbox в ох дя т с о л в ер з ад ч и з а д ч в а д п ти в н о м р еж и м е . В о з м о ж н о с т н и ч и в а ю ст я в ы ш еп ер ч и слен н ы м и ти п а м и з адч нфу к ц и и м о гу т бы т ь и сп оль з ован ы лд я р е ш е н и воль н о й р а з м е р н о с ти .
и п омощ и ан и м и рован н ы ы лд я р е ш е н и я н ел и н ей н ы и P D E Toolbox н е о гр а , в ч а с тн о с ти , в с тр о е н н ы я си ет м ру а в н е н и й п рои з
PD E Toolbox яв л ест я о хр ш и м к о м п а к нт ы м п а к еот м л д я о чб у е н и я о сн о в а м м еот д а к о н еч н ы х э л е м н от в и в ен д и я в к о н е ч н о э л е м н нт ы е п а к еыт О дн а к о с ер ь ез н ы е и н ж ен ер н ы е п р ак ит ч ес к и е з адч и в р я д л и м о гу т бы т ь ре ш ен ы в н ем , п о с к о л ь к у о н п о едр ж и в а е т то л ь к о оид н ти п к о н еч н ы х э лем н то в — л и н ей н ы е рт е г у о л ь н ы е . Д о 2003 г . в со ат в M ATLAB вохид л о п ри л о ж ен и е F EM LAB, к о т р о е з ае т м с а тл о о ед т л ь н ы м п р о гр а м н ы п р о к ду т м , н о F EM LAB м ож е т бы т ь с аут н о в л е н и к а к п р и л о ж ен и MATLAB. F EM LAB п о з в о л яе т м о де л и р о в а т ь вд м у е р н ы е и тр емх р н ы е за да ч и , о п и с ы в аем ы е ид ф е р н ц и а л ь н ы м и р уа в н е н и я м и в ч а с нт ы х п рои з вод ных : п ер н о с , теч н и я , уп ргоуст ь и э л ек рт о м а гн еит з м .
х х е . м е -
С ел у д т п о д ч е р к н ьт у , ч т о MATLAB и ег о р а с ш и р ен и я м о гу т с с п оу ех м п р и м е н я ьт с я дл я и н т е р а к т и в н о г о м о ед л и р о в а н и я и ан али з а н ел и н ей н ы х с и е тм , и с л еод в ан и я с уот й ч и в о с ит , р а з р а б о тк и ц и фр о в ы х и ан ало г в ы х си е т м с в яз и , п ер адч и и р ха н е н и я и н фо р м а ц и . М н о ги е п р а к ит ч е с к и е за да ч и , в о з н и к а ю щ и е в о бласт и н еч к то й л о ги к и и н ей р о н н ы х с е тй , м о гу т бы т ь р еш ен ы с и сп о ль з о в ан и е м с о в т ес ю у щ и х Toolbox. В 7- у ю в ер си ю MATLAB в к лю ч е н Bioinformatics Toolbox, п р едн а з н а ч ен н ы й лд я р е ш е н и я н ек о т р ы х з а д ч , леж ащ и х н а сыт к е б и о л ги и и и н ф о р м а ти к и . В н ач ал е в едн и я м ы пу о м ян лу и п ак е т Simulink, п о с та в л я е м ы й в м ес т е с M ATLAB, к о т р ы й сжл уи т л д я и с л е до в а н и я н ели н ей н ы х ди н а м и ч е с к и х с и с ет м . О н ох р о ш о и н ет г р и р е у ст я в с р ед у M ATLAB и р а с ш и р я е т е е воз м о ж н о с ти . Н а п р и м е р , с о ч е та н и е Simulink и Signal Processing Blockset п о з в о ляе т в д оу б н о й с р ед е р а з р а б а ты в а т ь а л г о р и тм ы о б р а б о тк и с и гн а л о в и ген ер и р о в а т ь к о д н а С . О б з о р в о з м о ж н о с те й , п р е до с та в л я е м ы й Simulink, з ан и м ае т мн ог о м е с та — м ы о ст ы л а е м з а и н те р с о в а н н ы х ч и та е л й к н е ск оль к и м к н и га м [2, 5].zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
2В . О с оед раж ни Р а з м у е ст я в с е с р е двт а и с л е од в а тл
и кинг , о гр а н и ч е н н о с т , к о т р ы я и и н ж ен ер а
и
ь о б ъ ем а кн и г и н е п о з в о л яе е M ATLAB и Toolbox п р едо с атв л яю .
т п о др о б н т в р ас п о р яж ен и
о о п и сат
ь е
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В ве н д и
П ер в а сан О б ъ яс н ен р аж ен и й ит ч е с к и ав Гл
я ч аст ы рабоч а
ь кн и г я с р ед о и сп о ль з о в ан и , и з м ен ен и е фну к ц и
и п о с в ящ ен а и п р и ем е фо р м а т
а осн ова ы э ф е к ит в н о
м работ
ы в MATLAB. В zyxwvutsrqponmlkjihgfedcb гаве л 1 о п и й р а б о т ы и з к о м а н дн о й с тр о к и . х и в ы ч и с л ен и е а р и ф м е ит ч е с к и х вы а ч и се л и о сн о в н ы е в с рт о ен н ы е м ае т -
е п ер м н ы а вы вод
.
2 к н и г и п о др о б н о р а з ъ яс н яе т рам и , в к лю ч а я о сн о в ы в и з а ул и з а ц и б ен н о с т и п р есдатв лен и я да н н ы х в в и д то р о в , да ю т п о л ь з о в а ет л ю бо ле е б о л ь ш и н с вт о м яз ы к о в п р о гр а м и р о в а н и я с р е дт в н у и ф ц и ре у т работ у с м ас и в ам н ой . О ствуи е н ав ы к о в о п е р и р о в а н и м н о г ч и с л ен н ы м з арнтду ен и я м адж
ав Гл
3 н ац ел н
в ы с о к ру о в н е в о п о в е рн х о с е т м ощ н ы м ны н ы та о
а н а о чб у е н и е й гр а фи к и лд я й и в е к от р н ы х п о л ей и в о з м о ж н о с ят м и в и з а ул и з а ц и х раз ли ч н ы х ти п о в , в к л ю ч а к о м а н ды , сжлуащ и е лд я о р г а н и з а ц и в с ц ель ю п о чл уе н и я хо р ш
И н те р а к ти в н а ад н н ы е , н е п ри бега а к ит в н о й с р ед щ и х г р а ф и к о в н и п луи р о в а н и с то р о н . Э т и в о п р о с ы о п и сан ы в гаве л
п р и н ц и п и в е к от р н ы е м ас и в о ш и роки
ы р а б о т ы с м а рт и ц а м и и в ек от х и м а рт и ч н ы х да н н ы х . О со , в ч а с нт о с ит , м а рт и ц и век е воз м ож н ост и п о с р ав н ен и ю с . Н а б о р с п ец и а л ь н ы х нфу к ц и й и и ад н н ы х , дела я е е о ч ен ь э фекит в я с м ас и в ам и в MATLAB п р и в о ди т к е п р и реш ен и и сам ы х п р о с ыт х з адч .
ч и а ет л п о с рт о е н и . П а к е я и п о с рт о е н и о ч и ате м ы
я с в о б нд о м у в л а е дн и я ди а г р м м и ги с то гр а м т MATLAB о б л а д е и о нд о м е р н ы х и м н о г м ер н ы е гр а фи к о в нф у к ц и й и и о фо р м л ен и я гр афи ч ес к и х гр а фи к о в .
ю с р е двт а м
и , л и н и й
т ч р ез в ы ч ай н
, о
х ад н . П р и в ед х р ез л ьу
-
я с р ед
а л д я п о с рт о е н и я гр а фи к о в п о з в о л яе т в и з ау л и з и р о в а т ь я к к о м ан ад м MATLAB. К ро м е то г , и н мсртуен т ы и н ерт ы м о гу т бы т ь и сп о ль з о в ан ы л д я р е д а к ти р о в а н и я щ с у ю ве с т я н а н и х о б ъ ек от в и м а , и з м ен ен и я свой ст в все х соедрж ащ и сх я гр а фи к о м , в ч а снт о сит , лд я о с м о тр а п о в е рн х о с т и с о в се х , а так ж е э к сп ор т гр афи ч еск и х р е з л у ь ат о в и и х п еч ат ь 4.
Р абот а и з к о м а н дн о й с тр о к и , р аз му е стя к о лд я р е ш е н и я п р о с ыт х з адч . В ы о х т . е . п р о гр а м м и фну к ц и й , соедр ж ащ и х M ATLAB. Н а п и с а н и е о сн о в н ы х ит п о н фу к ц и й ) в о в срт о ен н о м р е д а к то р е ю ст я н а ди ск е и з ап сук аю ст я н а в ы п о л н ен и н фу к ц и и M ATLAB, ч т о п о з в о л яе т MATLAB и с о з адв т ь с о б вт е н н ы аль н ы х з адч . Бо ле е то г о , п о адв л яю щ е Toolbox и м ею т о кт р ы ыт й код , он а д е т о п ы нт о м у п о л ь з о в а ет л ю ну и к аль н у
, н е о ч ен ь о д бу н а и п о хди т от л ь д со ти т в и сп о ль з о в ан и и М - фа й л о в , нжу ю п о с л е од в а е т л ь н о с т ь к ом ан д в М - фа й л о в (фа й л - п р о г а м м и фай л раз обран о в ав ег л 5. М - фай л ы с о р ха н я е та к ж е , к а к и дргиу е к о м а н д ы и р ас ш и р ят ь н або р с ат н д а р нт ы х с р е дт в е п а к ет ы п р о гр а м м лд я р еш ен и я с п ец и е б о л ь ш и н с вт о н фу к ц и й M ATLAB и и з а п р о гр а м и р о в а н ы в М - фа й л а х , ч т о ю воз м ож н ост ь р а з б и р а ть с я в ос -
12
б е н о ся т н и ю слож н ы
х р еали з ац и
и а л г о р и мт о х с п ец и а л ь н ы
х з адч
в и и з м ен ят .
В от р а я ч аст ь кн и г и п о с в ящ ен а бо ле ч и с л ен ы х м е от д в и п р о гр а м и р о в а н и гр а м и р о в а н и е в MATLAB н е требу н и м ат ь п ри н ц и п ы а л г о р и тм и з а ц и гр а м и р о в а н и я н а о нд о м и з а л г о р и мт и ч е с к и и л и Pascal, л егк о освоя т в с рт о е н н ы н а м и н и м а л ь н о м н абор е к о н с рт к у ц и й Р еш ен и е к л а с и ч ес к и MATLAB рт еб ут о б ъ ем е п р о гр а м ций , и н те гр и р о в а н и р ы , о б ы к н о в ен н ы ве 6. В ы ч и с л и етл ь н ы п о лч у е н и е р е з л у ь та пу р а в л ен и я о хд ав ег л 6. ав Гл
zyxwvutsrq
В ве н д и
е сло ж н ы
е о сн о в н ы я о п е р а то р
-
м — п ри м ен ен и ю х а л г о р и тм о в . П р о т с п ец и а л ь н ы х з н ан и й , до с та о ч н о по . П о л ь з о в а те л и , и м ею щ и е оп ы т п ро х яз ы к о в , н а п р и м е р , Basic, С й яз ы к п р о гр а м и р о в а н и я , о с н о в ан н ы й .
м воп роса
х к о н с р тк у ц и ы в етл н и
е и н ед к с и р о в а н и т с о к р а ит
ь о бъ е
, те к с то в ы м
, св яз ан н ы и гр а фи ч е с к и
п р и п ом ощ и н фу к ц и й , з н а н и й , к а к м и н и м у м в й и м и н и м и з ац и я фн у к е з ад ч ли н ей н о й а л ге б си ест м раз обран ы в zyxwvutsrqponm га- л т и х н а с рт о й к у н а з а д н и е р яд а оп ц и й лд я в ат к ж е о с в е щ а ес т я в
й яз ы к я и ц и к лов е в п р и м ен ен и м п р о гр а м
и фа й л а м и и сп ец и аль н ы м к и с рт к у р — п р о де м о н с тр и р о в а н х п р и м ер ах . В э от й ж е и в з а и м о д е й с тв и я п р о гр а м е и н ет р ф й с а и з к о м а н дн о й с тр о к и т ч и та е л я о п ри н ц и п а х н ап и сан и м в о х дн ы х и в ы о х дн ы х а р г му е н т о в о нф у к ц и й M ATLAB до п су к а ю е к ним . едлУ н о вн и м ан и е е слож н ы х а л г о р и тм о р M ATLAB с о дер ж и т н або р с р едт е котры х ат к ж е п о яс н ен о в гаве л
и яч е
Р а з р а б о тк а в M ATLAB п р о гр а м н ован а н а пу р а в л ен и и с в о й с вт а м б о т ы п р о гр а м ы . Хо р о ш о н ап и сан н а п о л ь з о в а те л я д о р а б о тк и гр а фи ч е с к и и н ет р а к ит в н о й с р ед ы л д я р е д а к ти р о в а н и
ь к реш е
ю с о б вт ен н ы
х з ад ч ч и с л ен ы м и м ео т а д и , в олти ч и е о т п р о гр а м и р о в а н и я к корн е ы н е хт и ч е с к и х в зу о в . П о и с е и и н те р п о л и р о в а н и е , реш ен и х ид ф е р н ц и а л ь н ы х р уа в н е н и й и е а л г о р и тм ы MATLAB до п сук а ю а с о п р едл н н о й от ч н о с ьт ю и м в ы ч и с л ен и й . Д а н н ы й кру г в о п р о с
7 со едр ж и т о п и сан и н и я M ATLAB, в к л ю ч а ск и е о п ер ац и и и л о ги ч е с к о то р ы е з а ч с ут ю п о з в о л яю э ф е к ит в н о с ьт . Р абот а с о с тр о к а м и н ы х — м а с и в а м н еск о ль к и х с о д е р ж а те л ь н ы ш и й сп ос б о р га н и з а ц и в а ет л м н а осн ов ав ыг л 8 и н ф о р м и р юу п ер м ен н ы м ч и сло л яю щ е е б о л ь ш и н с тв саль н о е о бр ащ ен и ф ну к ц и й . П р о г р а м и р о в а н и о тл а д к и . Р е да к то гр а м , и с п о л ь з о в а н и
ь и х , п р и с п о с а б л и в а яс
а п р о гр а м и р о в а . О п и с ан ы л о ги ч е и к м ас и в ам ы и п овы си т
, к о ь е е
и ти п а м и да н а в ав ег л 8 н а гл а в е оп и са н п р о с ет й ы M ATLAB с п о л ь з о . Н е с к о л ь к о р а з де л о в я ф а й л - фн у к ц и й с , п о с к о л ь к у п о да в т и м ен н о та к о е ну и в ер с о з да н и ю р е к ру с и в н ы х в н е р дк о тр е б у т и х в лд я о т л а д к и п ро 8.
х с в и з аул и з а ц и е й да н н ы х х о б ъ е к от в п р ям о в о дх я п р о гр а м а н е до л ж н а тр е б о в а т х р е з л у ь та о в , к п р и м ер у , п р и п о м о щ я гр а фи к о в . M ATLAB яв л сет
, ос е ра ь о т и я
В ве н д и
13 zyxwvutsrqpon
о б ъ е к нт о - о р и е н ит р о в а н н о с рт о е н ы в н ек о т р у од с у т п к с в о й свт а с р е двт а м и д е с к р и п от р н о л ен и я с в о й с вт а м с в о й с вт . П р о с ты н ы е в о з м о ж н о с ти п р о гр а м м в си есмт
й с и с е тм о й , вс е ег о гр афи ч ес к и е о б ъ ек т ы вы ю и ер а их ю и и м ею т о п р е дл н н ы е с в о й с вт а . П о л н ы й х о б ъ е к от в э ф е к ит в н о р е а л и з е с ут я м в се х г р а ф и ч е с к и ав Гл 9 р а с к р ы в а е т п ри н ц и п ы пу р ав й гр а фи к и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH и гр а фи ч е с к и х о б ъ е к от в и с о е др ж и т о п и сан и е осн овн ы х 9, дем о н с рт и рюу т осн ов е п р и м ер ы , п р и в едн н ы е в ав ег л , и м ею щ и ес я в р ас п о р яж ен и и р а з р а б о тч и к а гр а фи ч е с к и х е MATLAB.
Т р е ьт я ч аст ь кн и г ад н и я п р и л о ж ен и G U I D E . П р о с то а с ре т у я п о ет н ц и а л о Toolbox. Р а з р а б о тк в с р ед е G U I D E з а н и м а е к о р яе т п р о в едн и е В ав ег л э л е м н от С елуд е т п о н и м а н и
и п р е нд а з н а ч е н й с гр а фи ч е с к и п р о гр а м и р о в а н и м в ы ч и с л и ет л ь н ы а п р и л о ж ен и т н ем н о г и с леод в ан и й
10 н а п р и м ер е п ростг о п р и л о ж ен и в и н е тр ф й с а в окн е п р и л о ж ен и т и м ет ь в в и уд , ч т о о б р а б о тк а с о б ы ит я о сн о в дес к р и п от р н о й гр а фи к и
Ч и та я гаву л 11, в ы п р о д л ж и т н я я ег о и н е тр ф й с фл а г м и скрол и н г а и п р о гр а м и р у все х э лем н от в уп р а в л ен и я О то м , к а к с н абид т от м ч и с л е к о н ет к с нт ы м и ж ен и е м в о м н ог И з м ен ен и е сркту ав Гл ет л ь н ы п р и м ер э ит м
а л д я п о э ат п н о г о о ч б уе н и я п р о ц ес у со з м и н е тр ф й с о м п о л ь з о в а ет л я в с р ед я и р а б о т ы в с р ед е G U ID E к о м п ен си х и в и з а ул ь н ы х с р е тд в M ATLAB й с гр афи ч еск и м и н е тр ф й с о м п о л ь з о в а ет л о в р ем н и , н о щсу евстн о о б л е гч а е т и ус .
13, з а в ер ш а ю щ а е с в енд и , щ елч к и с о б ы ит ям и
е работ , п ер к л ю ч аетл ям и я и х с учоет .
ь с о б с вт е н н о
у н а д с о з ад н н ы
я ох р ш ю та к ж е о п и с а н
я рт е ь я о п р о гр а м и р о в а н и а мы ш ь ю ил .
ю ч аст и н а ж ит
в пу р а в л е н и
о п р о м ду а н н о о в э от ь к н и ги и с о б ы ит я к лав и ш и
, соедр ж и
. я ртеб у
и ок н ам и о работ й с рт к у о .
е с в о й с вт
9.
а и п о л с а м й работ , м ен ю ы с п р и л о й м ен ю
т н ек о т р ы й гр а фи ч е с к и , и р яд
-
, п о п о л и в од
й гл а в е
я
я
ы в гаве л
я с о гл а с о в а н н о е ди а л о г в ы м 12. Уод б свт
и
с р аз м ещ ен и е с о б ы ти й
е и з ло ж ен
, о б л а с ятм
я в ав ег л
м о п р е дл я ст ы м не
н п р о ц ес
м п р и л о ж ен и ем
м о б ес п еч н и
е п р и ло ж ен и , с о б щ аест
Ч е вт р ат я ч аст ь кн и г н ек о т р ы х с п ец и а л ь н ы м о ж н о ст и Toolbox ш ат ь з адч и м а ет м а ит ч е с к о п р о и з в о нд ы х м ео т д ш ен и я з а д ч в с р ед е р и и о б л а с ти , з а д н и
я п о к аз а я и п р о гр а м и р о в а н и й э л е м н от , к о т р ы
е
и ы , в .
е до п о л н и х о б ъ е к то в , св яз ан н ы
, н а х с
и п о с в ящ ен а п р и м ен ен и ю Toolbox лд я и с леод в ан и я х з адч . ав Гл 14 р а с к р ы в а е т п ер д ч и ате л м воз Partial Differential Equations (PD E), п о з в о л яю щ ег о ре , о п и с ы в аем ы е руа в н ен и ям и в ч а сн т ы х й фи з и к и м к о н еч н ы х э л е м н от в . Д е та л ь н о раз обран ы э ат п ы ре pdetool с гр афи ч ес к и м и н ет р ф й с о м : о п и с а н и е ге о м т е р уа в н е н и я и гр а н и ч н ы х с ул о в и й , р а з б и ен и е о бласт и
J_4
В ве н д и
zyxwvutsrq
с ек т о й , п ои с к п р и б ли ж ен н о г о р еш ен и я и в и з а ул и з а ц и я р е з л у ь ат . Р а з о бран ы п р и м ер ы с ат ц и о н а р н ы х и н е с ат ц и о н а р н ы х з адч . С елуд т и м ет ь в в и уд , ч т о ср ед а pdetool ли ш ь о б л е гч а е т о д су т п к б о л ь ш о м у н або р у н фу к ц и й PD E Toolbox. Н еп о с р едвт н н о е и сп о ль з о в ан и е да н н ы х н фу к ц и й в со б т в ен ы х п р о гр а м а х п о з в о л яе т п р о в ди т ь бо ле е сло ж н ы е и с л е од в а н и я п о с р а в н ен и ю с в о з м о ж н о с ят м и pdetool. В связ и с эит м в zyxwvutsrqponmlkjihgfedcbaZYX ав ег л 14 п р и в едн о о п и сан и е ф о р м а то в п р е сд а т в л е н и я да н н ы х , св яз ан н ы х с р еа л и з а ц и е й м еот д а к о н еч н ы х э л е м н от в в PD E Toolbox, и р а з о б р а н ы п р и м ер ы и сп о ль з о в ан и я н фу к ц и й Toolbox. Р еш ен и
е м н о ги х с о в р ем н ы х сло ж н ы х з ад ч ч и с л ен ы м и м е о т ад м и п ри во т к та к н а з ы в а ем ы м р аз р еж н н ы м м а тр и ц а м , т . е . м а тр и ц а м , соедр ж ащ и м д о с ат о ч н о м н ог о н л ев ы у х э л е м н от в . Р а б о т а с р а з р еж н н ы м и м а рт и ц а м и в MATLAB с то ч к и з р ен и я п о л ь з о в а етл я п р о и с о х ид т п р а к ит ч е с к и ат к ж е , к а к и с о б ы ч н ы м и . Р аз р еж н н ы е м а рт и ц ы п р и н а лд е ж а т с п ец и ал ь н о м у к лас у , в котро м обы ч н ы е м а рт и ч н ы е о п ер ац и и п е р о п р е дл н ы в с о вт ес и и с о с п ец и ф к о й р аз р еж н н ы х м а рт и ц . Глав 15 п о ясн яе т м е сх у рха н е н и я , соз ад н и е и о п ер ац и и с р а з р еж н н ы м и м а тр и ц а м и . П р о фа й л е р M ATLAB п о з в о л я е т о чт е л и в о в ы яв и т ь п р е и м щ у е св т а ч е ут а с рк т у ы м а рт и ц ы п р и реш ен и и з ад ч л и н ей н о й а л ге б р ы и м а тр и ч н о г о ан али з а , н а п р и м е р та к и х , к а к фак от ри з ац и я м а тр и ц . ид
Р еш ен и е р а з л и ч н ы х ит п о в л и н ей н ы х и н ели н ей н ы н а осн ов е нфу к ц и й Optimization Toolbox р а з о б р а н и сп о ль з о в ан и е о п ит м и з а ц и о н н ы х а л г о р и тм о рт е б у т п о н и м ан и я м еотд в и умен и я р а б о та П р и в ед н п ри м е р р еш ен и я боль ш о й с и ем т ед л ь н ы й р а з де л ав ыг л 16 п освящ е н н ап и сан и и н е рт ф й с о м п о л ь з о в а те л я лд я р еш ен и я п р а к ит ч е с к бор е п а р м е тр о в . И с л е д о в а те л и а н а л и т ч ес к и щ и х р а с ч е то в воль н ы е тл ь и м е н а о бч у е н и пу р о щ е н и е ед л ь н ы ит ч е с к о р я ды , ид ф е р н ц и а л ь н ы
, ч ь я р а б о т х в ы к л аод , н ес о м н ен н о е в ы ч и с л ен и я о сн о в ан т до сут п к о все е п о л ь з о в а ет л , п р е о б р а з о в а н и е р а з де л ы да н н о м в и ед , в к лю ч а н оа х ж е д н и е п р едл о х р уа в н е н и
х о п ти м и з а ц и о н н ы о в гаве л в лд я р еш ен и ь с р а з р еж н н ы м ы н ел и н ей н ы ю п р и л о ж ен и и в аж н о
х з ад ч 16. Э ф ек ит в н о е я сло ж н ы х з ад ч и м а тр и ц а м и . х руа в н е н и й . От я с гр а фи ч е с к и м й з адч и о п од -
а с о п р яж ен а с п р о в е дн и е м боль ш ог о к о л и ч е с вт а к и п ро г ам и ро в ан и е м ле м у о д й л д я с о в тюе у , з аи н етр сюу т я Symbolic M ath Toolbox. С и м ы н а м ощ н о м яр д е Maple, п р и э от м п о л ь з о в а м р ес у а м M ATLAB. ав Гл 17 э от й к н и г и н ац ел н а я работ е с си м воль н ы м и в ы р аж ен и ям и , в к л ю ч а я е и в ы ч и с л ен и е с п рои з воль н о й то ч н о с ть ю . От й гл а в ы о п и сы в аю т н ехт и к у р еш ен и я з ад ч в ан али я м а рт и ч н ы й ан али з , сму и р о в а н и е , р а з л о ж е н и е в в н фу к ц и й и и н те г р и р о в а н и е , п о и с к р еш ен и я й и си есмт .
В ве н д и
15zyxwvutsrqpo
ав ег л 18 р ас м арти в аест я п р и б л и ж ен и е и н е тр п о л я ц и о н н ы м и и сглаж и ваю В zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA щ им и сп лай н ам и в Spline Toolbox. С п лай н ы м о уг т бы т ь с к о н с р ит у о в а н ы в од - ф о р м е и Б- форм е . О п и сы ваю ст я воз м ож н ост и з а дн и я р аз ли ч н ы х гр а н и ч н ы х с лоув и й и и х в ли ян и е н а отч н о ст ь ап р о к си м ац и . Осжатебду я к лю ч е в о й м о ен т в соз адн и и 5- сп лай н о в — к р ант о ст ь з у ло в . С рсведт а Toolbox п о з в о л яю т п р и бли ж ат ь н уф к ц и и с р аз ли ч н о й пе с т н ь ю гл а кд о с и т . П р и в о ядс т я п р и м ер ы п о срт ен и я кри вы х и п овнерх ост й с п о м щ ь ю сп лай н о в . В оз м ож н ост и ап ро к си м ац и F itting Toolbox, и з л а г ю ст н о й о б р а б о тк и да н н ы х о т да х лд я н а ч л ь н о п а р м е рт и ч е с к и х м ер е р а ц и о н а л ь н о п оз воли т ч и ат е л ю ж и в аю щ и м и сп лай н ам и ка к п р о в ес т и ан али нф у к ц и , и н етгр и р о в а н и ав Гл
х нф у к ц и й , р е а л и з о в а н н ы 19. О п и с ы в аю ст я сп ос б , о с н о в а н н ы е н а р егр с и о н н о м ан али з й ф и л ь рт а ц и и дан н ы х . Р а з о б р а н ы с о з ад н и м о елд й и и сп о ль з о в ан и е о нд о й и з с а т н да р н т ы й и л и ч асит ч н о й м су ы р яд а Ф р уь е . М а те р и а вы п олн и т ь н е п а р м е рт и ч е с к о е п р и б л и ж ен и , л и б о и н ет р п о л я ц и о н н ы м и м е о т ад м и з р е з л у ь ат о в , в к лю ч аю щ и й э к с рт а п о л я ц и е и ди ф ер н ц и р о в а н и е п о лчуен н о г
е в Curve х ме х х н а п ри л э от й г л а в ы е л и б о с лг а . П о яс н яе тс , ю та б л и ч н о й о п р и б л и ж ен и я .
ы п р е вд а р и е т л ь е и дргиу е с о б вт е н н ы
20 з н а к о м и т ч и ател я с в о з м о ж н о с ятм и реш ен и я э к о н о м и ч ес к и х з ад в Financial Toolbox. Р ас м ортен ы воп рос ы ан али з а п отко в п л а е тж й в р а з ли ч н ы х с фе р а х б и з н ес а . И л ю срт и реуст я п р и м ен ен и е фн у к ц и й Toolbox лд р а с ч е то в , св яз ан н ы х с о б р ащ ен и е м кп у о н ы х и бескпу о н ы х о б л и га ц и й . Н п р и м ер е м о е дл ь н ы х з ад ч ед м о н с р т и р ю у с т я воз м ож н ост и п о пу р а в л е н и п о р фт е л я м и ри ск о в ан н ы х ц ен ы х бм у а г . Р а с м а рт и в а ю ст я раз ли ч н ы е ви д о гр а н и ч е н и й н а с о ат в п о р фте л я и п о яс н яю ст я п рави л а фо р м и р о в а н и я и сп о ль з о в ан и я эит х о гр а н и ч ен и й . П о с л е дн я гу т б ы т
ав Гл
и та б л и ч н ы я в гаве л
, п я та ь п о л ез н
, ч аст ы ч и аетля
ь кн и г
и овхаыт в а е м с р а з л и ч н ы м
т н ес к о л ь к и уро в н ям
о в о п р о с о в и п о д г то в к и
, к о т р ы
е м о
ч я а ю ы и -
.
21 р а с к а з ы в а е т о б а в от м а ит ч е с к о й ге н е р а ц и и о чт е о в и о работ е с M ATLAB в п о п луяр н ы х фо р м а т х MS Word, MS Power Point, H TM L и Т еХ . И н те г р и р о в а н и е MATLAB с MS Word п о з в о л яе т с о з да в т ь в MS Word и н ет р а к ит в н ы е од к м у е н т ы (М - к н и г ) лд я п р есдатв лен и я п о с ат н о в к и з адч и , м ео т д в и р ез луь ато в р а с ч е от в в н а г л я нд о й фо р м е с и сп о ль з о в ан и е м в се х в о з м о ж н о с ет й м ощ н ог о те к с то в г о р е д а к то р а MS Word и сред ы M ATLAB. ь Ч и ат е л ь М - кн и г и м ож е т з а п с ук а т ь блок и к о м ан д MATLAB и п о лчуат т п р ям о в М - кн и ег . Р аз ед л "Стансяе в мо рае кт с о в ы й и графи ч еск и й р ез луь ат т ао б в MATLAB u MS Excel" авыг л 21 со едр ж и т и н фо р м а ц и ю о к о н фи ргуи ро в ан и и MS Excel и о р га н и з а ц и и с о в м е с нт о й работ ы в M ATLAB и MS у с р ое д й MATLAB и та б Excel. В оз м ож е н н е то л ь к о обм е н ад н н ы м и м ж ед ли ц ам и MS Excel, н о и в ы з о в н фу к ц и й MATLAB, ка к и з чяе к л и с ат , ат к и и з п р и л о ж ен и й н а VBA.
16
П о л ь з о в а те л я м с о з ад н н ы м ац и ав Гл п о де р ж и в а е м о г в ер с и ях
, к о т р ы е и м ею т п р и л о ж ен и е в M ATLAB в ерси и 5.3, н ес о м н ен н о я о м о де р н и з а ц и и п р и л о ж ен и й в фо р м а т 22 о п и с ы в а е т п р о ц ес с п р е о б р а з о в а н и о в MATLAB 5.3, в фо р м а , н а ч и н а я с ш есотй .
Э ф е к ит в н о е о п ер и р о в ан и е с да н н ы м р а з му е в а т п р и м ен ен и е р яд а п р и ем о в о б жс у а д ю с т я : р а с п р едл н и е п а м я ит н ы х о п ер ац и й п о с р ав н ен и ю с ц и к л и ч ес к о н ы х и в ы б о р да н н ы х п о хдя щ е г о о гр а н и ч е н а то л ь к о в о з м о ж н о с ят м MATLAB вохди т б и б л и о те к а н фу к ц и гр а м н ы й и н етр ф й с п р и л о ж ен и й едн и я о M ATLAB API и п р и м ер ы х яз ы к а х п р о гр а м и р о в а н и я сан н ы х н а дргиу в н еш н и х млеоуд й п о в ы ш ае т э фекит в н о ст О сн овн ы р и ям вы з ов котры
zyxwvutsrq
В ве н д и
е нф у к ц и , п р и в едн а н фу к ц и х о б ж с уа д е т
я с гр а фи ч е с к и , о к аж ест , п р и н яыт я п р и ло ж ен и т m/ fig, к о т р ы
и боль ш ог , к о т р ы , п р еи мщу есвт
м и н ет р ф й с о м я п о л ез н о й в н овы й и з ф о р м а т й и с п о л ь з ес т у
, й и н фо р х в ер с и ях .zyxwvutsrq а m/ mat, я в
о о б ъ ем е о п и сан о в с рт о е н н ы
а в MATLAB п од 23. В н е ы в ав ег л х п о э л ем н т й о р га н и з а ц и е й о б р а б о тк и ад н ти п а . Р а б о т а п о л ь з о в а ет л я MATLAB н и с р ед ы и мл е оу д й Toolbox. В п ак е й MATLAB AP I, р еали з юу щ и х п ро . Глав 23 соедр ж и т ат к ж е осн овн ы е вс е и н е тр ф й с а лд я в н еш н и х м л о е у дй , н ап и . В р яд е счлауе в з а де й с в т о а н и ь п р и л о ж ен и й M ATLAB.
и M ATLAB и р я д а Toolbox, с гр пу и р о в а н н ы ы в ине ж о иплр 1. К р а тк о е о п и сан и й с н а б ж ен о с ы лк ам и н а с о вт ес ю у щ и я и сп о ль з о в ан и е дан н ы х фну к ц и й
а работ ы с к н и го й в с е л и с ит н г я о д бу с в т н ы н а п р и лаг ем ы й к о м п а к - т ид с к , сртку ин 2. И з л о ж ен и е м а ет р и а л а в кн и г е с о п р о в ж ад е с т н ек о т р ы х гл а в п р и в едн ы з адн и я дл я с а м о с т яел ь н о
Дл
и п р и в о ид м ы а котрог
е раз ли ч н ы е р а з де л
е п о к а ет г о х в а р и а н то ы к н и ги
й е т е в , в
. х п р о гр а м о о п и сан я п р и м ер ам и й р а б о ты
м з а н ес а в -е пж о илр , а в к о н ц .
е
Дан н а я кн и г а н и в к о й м ер е н е п р е нт у д т н а п олн от у и з л о ж ен и я . Д о сат а о б ъ ем н а , в то ч н о с к а з а ть , ч т о од кму ен атц и я п о MATLAB и Toolbox в есь м ч а с нт о с ит , о п и с а н и е PD E Toolbox соедр ж и т ок л о тр есхо т с тр а н и ц , Optimization Toolbox — о к л о ч е ы т р с е хо т , а о п и с ан и е Statistics Toolbox п р ев о сх т и м ет ь в в и уд , ч т о с п р а в о ч н а я с и е мт а по ди т е д в я ь т с о т с тр а н и ц . С елуд з в о л яе т н е то л ь к о н ча у и ь т с я п р и м ен ят ь с р евд т а M ATLAB лд я р еш ен и я раз ли ч н ы х з адч , н о и р а з о б р а ть с я в о с б е н н о с ят х р еали з о в ан н ы х м е от д в . О гр о м н о е к о л и ч е с вт о с в е дн и й , соедр ж ащ и сх я в од к м у е н а т ц и и и сп рав о ч н о й с и е мт , о к а з ы в а ест я п о л ез н ы м л д я и с л е о д в а тл е й и и н ж ен ер о в , вла е дю щ и х о сн о в ам и работ ы в MATLAB. Н а ч и н а ю щ и й п о л ь з о в а те л ь м ож е т п рост о з а п т уь с я в оби ли и и н фо р м а ц и . П о э от м у ч аст о м ы п р и в о ид м с ы лк и н а р а з дел ы сп рав о ч н о й с и ем т ы лд я с а м о с т я е л ь н о г о и з ч уе н и я ма те р и а л . П р е дл а г е м а котры
е о х ят
я в а ш ем т и з ч уи т
у в н и м ан и ь п ри н ц и п
ю кн и г а п р е дн а з н а ч е н ы в ы ч и с л ен и
а лд й и п р о гр а м и р о в а н и
я е т х ч и ат е л й
, я в
В ве н д и
17zyxwvutsrqpo
M ATLAB и о с в о и т ь работ ласт и р еш ен и я с п ец и ал и з и р о в ан н ы н о к р о п о тл и в о й с а м о с т яел ь н о п р о гр а м и р о в а н и я и р еш ен и П о л ь з о в а те л я п о яв и в ш и ес к о м п о н ен т м и окн ами м ен ы ыд , в П о яв и л ас в аю щ и м а н ад с в т а лд п р о с м а тр и в а т
у в н ек о т р ы
х Toolbox. глбУу ен и е з н ан и й в о б ч п о рт е б у т о т ч и ат е л я д о с та о ч й р а б о ты . С п и со к л и те р а ту ы , к ас ю щ ей с я я з а д ч в M ATLAB, п ри в ед н в к о н ц е к н и ги . х з ад
м п р ые д щ у е й в ер с и и MATLAB уд б т и н е рт с н ы н о в ш е с вт а я в сьедм о й в ер с и . Р асш и р ен ы в о з м о ж н о с т и р а б о ч е й с р ед ы и е . С ат л о о д б ну е е р а б о та ь с н еск о ль к и м и фа й л а м и и гр а фи ч ес к и — о к н а р е да к то р а М - фа й л о в , гр афи ч ес к и е окн а и б р азу е р п ер х м о гу т бы т ь в с рт о е н ы в рабо ч у ю с ру е д . С орха н и в ви д рабоч е й ср е ы л е гк о в о с ат н о в и т е ег о в о в р е м я юс л у е д щ е г о с еа н с а р а б о ты ь н ова я п а н ел ь и н с р тм у е н о т в лд я р а з м е щ е н и я яр лы к о в , о бесп еч и х б ы с рт ы й од су т п к с о б вт ен н ы м п р о гр а м а м , п р и ло ж ен и я м и ко м M ATLAB. Р еда к от р м ас и в о в и бр азу е р п ер м н ы х с о ед р ж а т с р ед я в и з а ул и з а ц и и да н н ы х ; к р о м е то г , р е да к то р м ас и в о в п о з в о л яе ь с р тк у ы , в то м ч и сл е и в л о ж ен н ы е .
Г р а фи ч ес к и е с р е дв т гр а фи к о в п о яв и л а с ь бю у щ а я о б р ащ ен и я к о м п о н е н то в , к о т р ы фи к о в . П р и о ф р м л ен и ск и х фо р м у л в фо р м а т п о пд и с е й , гео м ерти ч еск и о б ъ ек т ы м о гу т б ы т ь н ят ь св о ег о п о л ж ен и я
а п р ет п ел и н ек о т р ы и н ет р а к ит в н а я с р ед а к гр а фи ч е с к и м нф у к ц и я м е м о гу т бы т ь и сп о ль з о в ан и гр а фи к о в е тп р е LaTeX и до б а в л ен и х ф и уг р и р а з н о г п р и в яз ан ы к то ч к е с , н а п р и м е р , п р и в ы б о р
е и з м ен ен и я я в и з а ул и з а ц и . Д а н н а ы лд
лд
. В м ест
ь о д п с ук а е т о род з а д н н ы м
е н овы а с рт е л о к е н ов г
. Э т и к о р ди н а т м о м а с ш ат б
. т
о р е д а к то р и да н н ы х а с о ед р ж и
я с р ед я р е д а к ти р о в а н и я з ап и с х о б ъ е к то в
, е
а , н е тре т ря я гр а
д
ь м а ет и ч е : в ы н о с н ы х и п о яс н яю щ и е и и н е ме .
И н с рт м у е н т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Data Cursor гр а фи ч е с к о г о окн а п р е нд а з н а ч е н лд я о т б р а ж е н и я к о р ди н а т то ч е к гр а фи к о в п р и п ом щ и мы ш и и п р и к р еп лен и я к н и м яр лы к о в с о з н а ч ен и ям и к о р ди н а т . П о с тр о и в и оф рм и в гр а фи к и , в ы и м ет е воз м ож н ост ь а в от м а ит ч е с к и с ге н е р и р о в а т ь код , в ы п о л н ен и е к о т р о г о п ри вед т к с о з ад н и ю гр а фи ч е с к о г о окн а с е т м ж е с о ед р ж и м ы м . Д а н н ы й ко д л е гк о до б а в и т ь в с о б вт е н н о е п р и л о ж ен и е и м о ди ф и ц и р о в а т ь п о м ер е на д о б н о с ти . Н ес к о л ь к ч не н або р
о и з м ен и л а с ы о б ъ е к ыт - г р п у ы м о б ъ е к то в
В п р о ц ес е п р о гр а м и р о в а н и н ы м а н а л и з а то р код с ку о р е н и я а л г о р и тм фа й л о в сн абж е н усло в н о П р е лд а г е с т м ан
д яв ляю ст
я н овы я яч ей к а м
ь с р кт у , о б л егч а ю щ и
а гр а фи ч е с к и
х о б ъ е к то в е в ы п о л н ен и
. Т еп р
ь в н е е в к лю х е дй с в т и
е о дн о и т п н ы
й с
. я и о л т а кд а M- Lint, к о т р ы а и о п ит м и з а ц и й то ч к о й о с та н о в а й сп о с
б о р га н и з а ц и и и м огу т бы т
и п р и л о ж ен и й п о сд к а з ы в а е и работ
й о к а з ы в а е ст т э ф е к ит в н ы ы с п а м я ьт ю
я п о л ез е сп о с б . О лтачд и
ы к М -
. и работ ь в ы п о л н ен
ы в М - фай ле ы в н ж ун о
— б л о к й п о с л е од в а е т л ь
и ко
-
J8_
н о с ит то
. С эит в работ
ср т а н е н н ы
м н о в ш е с вт о м с в яз а н о д бу н ы й сп о с б п р е сд а т в л е н и я р е з л ьу а т и г е н е р и р е ум о г о о чт е а в о дн о м и з р а с п р о ы в в и д е а в от м аит ч ес к х ф о р м а то в MS Word, MS Power Point, H TM L и л и LaTeX.
С р ед а в и з ау л ь н о г п а н ел ь дл я уп р о щ ен и В аш е п р и л о ж ен и ActiveX- к о м п о н ен ыт П о яв и л и с с нт о с ит ер дж а щ и п о ед р ж и в а ю к у а з ы в а ю ст Р а с ш и р ен вош л и си семт
zyxwvutsrq
В ве н д и
ь дв , м о гу х п а р м е рт ы
о п р о гр а м и р о в а н и я р а б о т е с гр афи ч еск и . а н о в ы т бы т
х ти п ь и сп о ль з о в ан . С о втсеюу щ и
т и п реж н и я в к ач есвт и с о л в ер
ы и б а з о в ы ы лд , н е разреш ен н ы
И з м ен ен и ви л с ь н ес к о л ь к Toolbox и Toolbox. Toolbox и н ы х з адч
я к о сн ли у с
я п р е лд а г е
т р я д н овы и и к н о п к и - п ер к л ю ч аетл и м е тп р ь м ож е
ы с п ер к лю ч аетлям м и н е рт ф й с о а н фу к ц и
т и сп о ль з о в ат
й — а н о н и м н ы е и в л о ж ен н ы е ы лд я реш ен и я м а ет и ч е с к и е в ы ч и с л и е ть н ы е н фу к ц и б о б р а щ ен и я к н и м , п р и котр о х а р г м у е н от в .
й сп о с е до п о л н и етл ь н ы е в ы ч и с л и ет л ь н ы я реш ен и
х о б ъ е к от
е воз м ож н ост я о б ы к н о в ен н ы х о нт о с и ет л ь н
и — в со ат й п р о и з в о дн о й
в — . ь
. О н и , в ча х з адч , со и MATLAB м п а р м е рт ы в MATLAB х р ау в н е н и й
х ид ф е р н ц и а л ь н ы о с а тр ш е
-
.
ь р яд
а Toolbox и к о м п о н ен т MATLAB; бо ле е то г , поя о н овы х . Н а п р и м ер , к р о м е п у о м ян ы т у х н ам и Bioinformatics Filter Design H D L Coder соз ад н G enetic Algorithm and Direct Search О н с о е рд ж и т н фу к ц и , р асш и р яю щ и е воз м ож н ост и Optimization вы ч и сли еть н ы х н уф к ц и й MATLAB лд я реш ен и я о п ит м и з ац и о н .
П о др о б н а я и н фо р м а ц и M ATLAB — к о м п а н и до с п у т н а д о к м у е н ат ц и д с тв а п о и с п о л ь з о в а н и н ы е в с п р а в о ч н у ю с и ем т у р ес у о в м ы р ек о м ен уд р а з де л ы , с в яз а н н ы е с Simulink и F emLab. щВ уед и и о вт еч а ю т н а в о п р о с
я о н о в ш есвта х с о е др ж и с т я н а сай т е п р о и з в о ди е т л я и M ath Works:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO http:/ / www.mathworks.com. Н а э от м сай т е е P D F , так ж е в ы м о ж ет е н ай т и р ку о в я в фо р м а т ю раз ли ч н ы х в о з м о ж н о с ет й M ATLAB, н е вк лю ч ен , и го т в ы е р еш ен и я . И з рсу к о яз ы ч н ы х се в т ы х м сай т http:/ / matlab.exponenta.ru, к о т р ы й с о ед р ж и т р а з л и ч н ы м и а с п е к ат м и работ ы в M ATLAB, Toolbox, е р а з де л о в н е то л ь к о р аз м ещ аю т м а те р и а л ы , н о ы п о л ь з о в а ет л й .
М ы с б л а го да р н о с ть ю п ри м е ш е й кн и г и и п о с ат р ем с я о вт е и т и M ATLAB. о х в в и зч уен и
м в аш
и з ам еч ан и ь н а вс
е в а ш
я и п о ж ел а н и и воп росы
. Жел а
я п о п о в д м ва
у н а м успе
-
Т С ЧА О ВСН
Ь I Ы ТО Б АР
В M ATLAB
2 З ак
. 130
Ы
zyxwvutsrqponmlkjihgfedcbaZYXWVUT
л Га в
а 1
рП о с т е й ш и Дан н а а л ге б р а и ч е с к и нф у к ц и й п рост
е всилечны я гл а в
а п о с в ящ ен х в ы р аж ен и
. К о м а н ды ы е д бу
Ра боч
м р а б о та
;
• п а н ел
ь и н с р тм у е н о т
• окн а с в к л а кд м н ы х и усатн о в к
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
й с р ед
ы M ATLAB и в ы ч и слен и я м в с рт о е н н ы х м а ет и ч е с к и , н е о ч ен ь дл и н н ы е , п о э т м и M ATLAB.
м х у дл
и р а б о ч е
е о кт р ы в аест
я рабоч а
й с р ед
в с к н о п к а м
ы яв л яю стя
я с р ед :
и и р а с к р ы в а ю щ и м с
я с п и с к о м
и Workspace и Current Directory лд и текщу ег о к а т л о га ;
о Command Window, сжащлу е
е лд
я в в о д
а zyxwvutsrqponmlkjihgfedcb M ATLAB, и з о -
а к о м а н
;
я п р о с м о тр д и в ы в о д
а п ер м ен
П р и н а ж ит С ге о п ом щ ь
а с о т ян и
я с к н о п к о и н а кн оп к ю обсеп чи свтае
-
а р е з л у ь ат
• окн о Command History, п р енд а з н а ч ен н о е лд я п р о с м о т р а и п о в то р н о г в ы п о л н ен и я р а н е е в в едн ы х к о м ан д (о к н о Command History м о ж е н е п суыт м , есл и д о э то г о п ак е т M ATLAB и с п о л ь з о в а л с я) ; • с рт о к
я
а MATLAB
и э л ем н атм
• м ен ю
ю р а б о ч е
й с и сп о ль з о в ан и е х м ы н ач н ем ь и з к о м а н дн о й срто к
, с к о т р ы
е MATLAB н а э к р а н я н а р и с . 1.1.
О сн овн ы м
• окн
а о п и с ан и
я с ре д
П р и з а п с ку б р аж ен н а
я
; о т бы т
ь
й Start. у Start о кт р ы в а ест я дуост
п к о вес
я м ен ю м осн овн ы
, п р и в едн н о м свастрде
е н а ри с . 1.2. м MATLAB.
I. Ос но вы работы в MATLABzyxwv аЧс т ь 22zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA :
ile Edit Debug Desktop Window Help
ф
t\ 2i
4
Current Directory: fe.MMLAB7\work
Shortcuts i l How to Adci lЈj What's New
Name
Your MATLAB license will expire in 08 d a y a .
[ Size ) Bytes [ Class
Please contact your system administrator or The MathWorks to renew this license.
MATLAB Help or Demos from the Help menu.
i L Curretit Directory j Workspace I
| FORMAT LOW :xp (2 .5) *log (11.3) / 4 0 . 3 3 q r t ( xp ( - 2. 5) *1о д( 11. 3) i o r m a t l o n g
л
О.З + ((si
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
r
e 4
хр( - 2.5
) * l o g ( 1 1 . 3 ) ' 0 . 3 - 3 q r t (
i o r m a t
short
x
s i n ( 1 . 3 * p i ) / l o g ( 3 . 4 ) ; sqrt(tan(2.75)/ tanh(2.75) ( x+ y) / ( x- 7) o r i t i a t l o n g
e
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA LiL
. 1.1. Рачоб
с иР
Окн
о Command Window с о с т и
П з а го л в к
а с н аз в ан и е
П рабо ч е в е р ит к а л ь н ы • п ол
й о бласт
я сдер
т и з сю луед щ и
м о к н
а и дмву
и с к о м а н дн о й к рус о р
а MATLAB х э л е м н от в
я к н о п к ам
й с тр о к о й
zyxwvutsrq
: и с п р а в
, в к о т р о
; й н ао х и д с т
я м и га ю щ и
й
;
.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
с с к р о л и н га
К ^
J j J
Пр и м е ча н и
лЕс и рабоч я д ер с т о се у дел т в мн е ю ю а дщ е м н ем ю н п ук з в о л юя т о б д а в л ят Ок р т ы е окн а в В п ол е з а го л в к а к а ж до г к а Undock ... лд я и з в леч н и
е
^[
а MATLAB вы идляг т н е так , ка к и з ображне о н а ри с . 1.1, Desktop вы брат ь н п ук т Desktop Layout, а зе та м в н ипса т Default (П о молучан и ю ) . П н у кт ы н ем ю Desktop п о ь н од и м н е ы е окн а в р аб о ч у ю д ерс у и л и б и у р ат ь их . мн е ю ончем т ы флоагм . о окн
а р ядо м с к н о п к о я окн а и з рабо ч е
й з а к р ы ти й с р ед
я н а о х ид с т я кн оп ы M ATLAB, сел и о н
о
л ав Г
1. рП о с т ей ш и е
вчиы с лени я
в с тр о е н о с ру е д раз ли ч н ы
, и л и к н о п к а Dock ... лд . В сю луед щ и х гл а в х о п и сан х окон .
23 zyxwvutsrqpon
В с е к о м а н ды , о п и с а н н ы е в э от к е . С а м с и м в о л >> п р и гл а ш ен и р а х , н а б и р а т ь н е н жун о . Д л я од у б н о и сп о ль з о в ат ь п ол с ы п ер м ещ ен и я вле о и л и в п р а в в ер х и л и вн и з . П р о и с п о л ь з о в а н и ск аз ан о до п о л н и те л ь н о . Е сл и к о м а н дн о г о окн а п р о п а л а к о м а н нд а н аж м и т е < Enter> . В аж н ч и в а ьт с п олн и л
о з а п о м н и ть я н а ж ит е а эт у к о м а н д
Пр
и з а п су к е с ы лк де м о н с тр а ц и о н н ы й т оэ гав.е л
й гл а в е я к о м а н дн о
я о де т л ь н о г
о окн е ку а з а н н о г
, е сулд
т н аби рат
а в рабоч у о с р е двт
ю а лд
я
й с рт о й в п ри м е п р о с м о тр а рабоч е й о бласт и к о м а н дн о г о окн а ск рол и н г а и л и к лав и ш и < H ome> , < End> дл я о и < P ageU p> , лд я п ер м ещ ен и я т е к лав и ш ,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ , >, , дл я то г у и л и в ы ч и с л и л а в ы р аж ен и е
р П и м н ае и ч
дв
я в с рт а и в а н и о и сп о ль з о в ан и
ь в к о м а н дн о
й с тр о к и
, п р и в едн н ы
ы ил о ч от б
и в ы р аж ен и я од л ж е н з ак н ы п р о гр а м а M ATLAB вы .zyxwvutsrqponmlkjihgfedcbaZYXWV
е
е п ак ет а в р а б о ч е й област и о к н а zyxwvutsrqponmlkjihgfedcbaZYXWVUTS Command Window п о я в л я ю тс я и M ATLAB Help и Demos дл я в ы з о в а сп равоч н о й с и с ет м ы ил и х п р и м ер о в . О б и с п о л ь з о в а н и и с р ед ы Help .мс е ал д в
Ljfc MATLAB
1
"ф, Toolboxes Щ Simulink T{ Blocksets %jl\ Shortcuts j j ^ Desktop Tools @ Web
•
Щ $ Preferences,.. 1 4 Find Files..,
i2fr Help
- §- • DemoszyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
ф Start
Рс и
. 1.2. Р аск ры в аю щ е с
п о к н о п к
я мне е Start
ю
24
аЧс т ь
м р и А ф е т и еч с и к В срт о е н н ы е ли ч н ы ф о р м а от ви д
е силе чн ыв м а ет м а ит ч е с к и х в ы р аж ен и й м вы вод , св о й свтен н ы
рП о с т е й ш и
я
е н фу к ц и . MATLAB п р еод сатв л яе а р е з л у ь ат . К о м а н д й все м яз ы к а м п р о гр а м и р о в а н и
е вслиечн ы
и п о з в о л яю
I. Ос но вы
zyxwvutsrqponmlkjihgfedcbaZYXWVUT
т н а о х ид т т воз м ож н ост
ы лд
в MATLAB zyxwv
р аб о т ы
я в ы ч и слен и
я р а з
ь з н ач ен и ь пу р а в л ен и я в ы р аж ен и
я в ы с о к о г
о руо в н я
я
й и м ею .
т
я
В ы б ер и т е в и д р а б о ч е й с р ед б ер и т е в к о м а н дн о й с рт о к н о м окн е M ATLAB о т б р а ж ест
ы "п о ум о л ч а н и ю " е 1+2 и н аж м и т я юс л у е д щ е
, к а к б ы л о о п и сан е < Enter> . В р ез луь ат :
о в ы ш е, е в к о м ан д
на -
» 1 + 2 ans = 3 » I
Ч т о с ед л а а п р о гр а м а MATLAB? С н а ч л а о н а выч и с л и л а м су у 1 + 2, з а ет м з а п и с а л а р е з л у ь ат т в с п ец и а л ь н ю у п ер м н у ю ans и в ы в ел а е е з н ач е н и е , р а в н о е 3, в к о м а н дн о е окн о . П ер м ен н а я ans а в от м а ит ч ес к и с о з ад е с т я , к о гд а в ы ч и с л яем о е в ы р аж ен и е н е п р и с в а и в а е ст я н ек о т р о й п ер м ен н о й . И н фо р м а ц и я о п ер м ен н о й ans сраз у ж е п о яв и л а с ь в окн е zyxwvutsrqponmlk Workspace (ри с . 1.3). В п ер в о м с от л б ц е N ame з а п и с а н о и м я п ер м ен н о й . С юлуед щ и й с от л б е ц Value п о к а з ы в а е т з н ач ен и е п ер м ен н о й , есл и э т о в о з м о ж н о . С оедр жи мо е с то л б ц а Size, п о сщ у весут , дем о н срт и реу т осн овн о й п р и н ц и п р а б о т ы M ATLAB. П р о г р а м а M ATLABzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML вес де аын те пятсав л де р в ве ид маивс.о П ер м ен н а я ans являсет я в дм у е р н ы м м ас и в о м р аз м ер а о ид н н а оид н и за н и м ае т 8 б а й т п а м я ти , о че м св и елдть св у т с от л б е ц Bytes. Н а к о н е ц , в п о н с л ед м с от л б ц е Class указ н ит п п ер м ен н о й — double array, т . е . м ас и в , с о т ящ и й и з чи се л дв о й н о й то ч н о с ти . Лю б о й с от л б е ц м ож н о ск ры т ь и л и о т б р а з и ть , сел и н а з а го л в к е окн а щ ел к н т у ь п раво й кн оп ко й и в ы з в ат ь к о н ет к с нт о е м ен ю .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ^ П о м о л ч у ан и В гаве л В окн га ю щ и
Пр и м е ча ни
е ю св
2 гов рис т
^
е чи лс а ю в я ал с т п д р е я о б и сп ольз ван и
е Command Window н и ж м к ру с о р м , о б о з н а ч а ю щ а я
и диг ру
е о вт е , ч т
а р асп о л ж ен о сред
я с двой н о х ти п о
й о ч т н ьо с т в чилес
а к о м а н дн а а M ATLAB г о т в
ю (double). . я с рт о к а с ми а к дал ь н ей -
л ав Г
1. рП о с т е й ш и е
м в ы ч и с л ен и ям и н а о х ид т
25zyxwvutsrqponml
вчиы с лени я
ши
. М о ж н ь и х з н а ч е н и я
о н аби рат ь в к о м а н дн о й с рт о к е н овы е в ы р аж ен и я .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
|Workspace Э йж
И ?И п
Ш
Я
Bans |
(Value 3
•zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM DD J____ | Size ^ Bytes Class 1x1 8 double
, п о лчуаестя :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » ans/4.5
ans = 0.6667
» I Ви д ад
, в к о т р о , усатн о в л ен н о г
м в ы в о ид с т
Ф ор м а т Т р е б му ы рабо ч е п о яв и ст н овк
ы вдо в ы й фо р м а й с р ед я ди а л о г в о и фо р м а т
я р е з л у ь ат о в M ATLAB. Р ас м о рт и
а ре лзутьа
т в ы ч и с л ен и й
, з а в и с и м п о др б н е
а ислеч ныв
т вы вод а р е з л у ь ат а о п р е дл я с т ы M ATLAB. В ы б ер и т е в м не ю File п н у к е окн о Preferences, и з о б р а ж ен н о а в ы в о д а е ус л д т убеид ьт ся , ч т о в сп и ск
е э от
т о т фо р м а т т в о п р о с
а вы во
-
.
й я п о л ь з о в а ет л м и з мне т Preferences. Н а э к р а н е н а ри с . 1.4. Д л я аст у е лев о й п ан ел и в ы б р а
ю е н
аЧс т ь
26
пну к в о ид с т
I. Ос но вы
работы
в MATLABzyxwvu
т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Command Window (к а к п о к а з а н о н а р и с . 1.4). З а д н и е фо р м а т а п рои з я сп и ск а Numeric format п ан ел и Text display. я и з р а с к р ы в а ю щ е го с
«Ш P references
L
Keyboard & Indenting HCommand History $]~EditorЈ)ebugger pHelp | Web (—Current Directory ( Workspace h Array Editor (GUIDE !+iFigure Copy Template hReport Generator | Instrument Control S~5irnulink 1 Virtual Reality Toolbox
Numeric display:
loose
Li
fcbG eneralzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Command Window Preferences |—MAT- FileszyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA !—source Control Text display 1+bFonts Numeric format: s h o r t 3 r~ Colors
Г У
Г " VWap lines П Limit matrix display width to eighty columns Number of lines in command window scroll buffer: I Accessibility H* Arrow keys navigate instead of recalling history
OK
с Ри
Р аз б ер
м п ок
е онк
Cancel
Apply
Help
о Preferences MATLAB
о н аи бо ле е ч аст о и с п о л ь з е му ы е ф о р м а ты . В ы б ер и т е я сп и ск е Numeric format н а п ан ел и Text display ди а л о го в о г о окн а . З а к р о й т е ди а л о г в о е окн о , н аж в кн оп к у О К . С ей ч а с с аут н о в й то ч к о й sh ort лд я в ы в о д а р е з л у ь ат о в л е н к о р тк и й фо р м а т с п лав ю щ е в ы ч и с лен и й , п р и к о т р о м н а э к р а н е о т б р а ж ю тс я то л ь к о ч еыт р е ц и фр ы п осл е ед с я и т ч н о й то ч к и . Н а б е р и т е в к о м а н дн о й с рт о к е юо / з и н аж м и т е < Enter> . Р ез луь ат т в ы в о ди с т я в фо р м а т е sh o rt :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR short в р а с к р ы в а ю щ ем с
» 100/3 ans = 33.3333
а то л ь к
. 1.4. овиДгла
0003
л ав Г
1. рП о с т ей ш и е
Э от то л ь к м ож н ч и сл з л уь а т
вчиы с лени я
27zyxwvutsrqpon
т фо р м а т вы вод а с о р ха н и ст я л д я в с е х п о с ю л уе д щ и х в ы ч и с л ен и й , есл и т с ау т н о в л е н рд г о у й фо р м а т . З а м еьт , ч т о в MATLAB в о з о н е е д бу а с и а утц и я , к о гд а п р и о т б р аж ен и и сли ш к о м боль ш ог о и л и м алог о а р е з л у ь ат т н е к у л а ыд в а е с т я в фо р м а т sh o rt . В ы ч и сли т е 10 000/ 3, р е т в ы в о ид с т я в э к с п о н ен ц и а л ь н о й фо р м е :zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
» 100000/3 ans = З.З е+00
4
Т о ж е сам о
е п р о и з о й де
т и п р
и 1/3000:
и н оахж едн и
» 1/3000 ans = З.З е- 00
О дн а к в ы ч и с л ен и я о хид т
4
о п ер в о н ач ль н а
я с у ат н о в к х — лд я н ебо ль ш и ь в ф о р м а т е sh ort .
а фо р м а т х ч и се
л вы во
а с о р ха н я е с т д р е з л у ь ат
я и п р и адл ь н ей ш и а сн ов а едбу
х т п рои с
-
В п р ые д щ у е м п р и м ер е MATLAB в ы в ел а р е з л у ь ат т в ы ч и с л ен и й в zyxwvutsrqponmlkjihgfe -нкепэос й ьо н ц и а л .е м р о ф З ап и с ь з .з з з з е - 00 4 о б з н ач е т 3.3333 • 10~4 и л и 0.00033333. нА а л о ги ч н о м ож н о н аби рат ь ч и сл а в в ы р а ж ен и ях . Н а п р и м е р , п р о щ е на брат ь Ю е 9 и л и le io , че м 10 000 000 000, а р ез луь ат т е д бу т то т ж е с а м ы й . П робе л м же д у ц и фр а м и и си м вол м е п р и в од е н е од п с у к а е с т я , т . к . э т о п р и в ед т к с о б щ ен и ю о б о ш и б к е : » 10 е 9 ??? 10zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA е9 I Error: Missing MATLAB operator.
Е сл и требсту я п о лч у и т ь р е з л у ь ат т в ы ч и с л ен и й бо ле е то ч н о , т о еслуд т в ы брат ь н а п а н ел и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Text display в р а с к р ы в а ю щ ем с я сп и ск е Numeric Format з н а т е д бу т о т б р а ж ть с я в лд и н н о м фо р м а т е с п лав ю щ е й ч ен и е long. Р ез луь ат то ч к о й long с ч еыт р н а дц а ьт ю ц и фр а м и п о сл е ед с я и т ч н о й то ч к и . Ф о р м а т ы sh ort e и long e п р едн а з н а ч ен ы дл я в ы в о д а р е з л у ь ат а в э к с п о н ен ц и а л ь н о й фо р м е с ч еыт р ь м я и п янт а дц а ьт ю ц и фр а м и п о сл е десяит ч н о й то ч к и с о вте с вт е н н о . И н ф о р м а ц и ю о фо р м а т х м ож н о п о л ч у и ьт , н а б р а в в к о м а н дн о й с рт о к е к о м ан д у h elp с ар мгу ен от м format: » help format В к о м а н нд о З адв ат п ом щ
м о к н ь фо р м а и к о м ан д
е п о яв л ест т вы вод а м ож н ы format. Н а п р и м е р
я о п и с ан и
е к аж од г
о н е п о с р е дв т н н , дл я суатн о в к
о и з ф о р м а то в о и з к о м а н дн о и дл и н н о г
. й с рт о к о с п лав ю щ е
и пр
и й
28
т а ьс Ч
от ч к о
й фо р м а т
f o r m a t
а вы вод
а р е з л у ь ат о
I. в ыонс О
в в ы ч и с л ен и
й е с лу д
ртыоаб т в ес т
в MATLABzyx и к о м ан д
у
l o n gzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA e В ОМК На ДО Й О С ре Т К :
»
fo rma t l o n g e
»
1.25/ 3.11
a ns =
4.019292604501608e- 001
О б р а ти ф о р м а то со ти д о п р и в ы к н ьт у к а н а б о р
е вн и м ан и е в п роп и сн ы м т и з с рт о ч н ы а к о м а н д
, ч т о к о м а н д и б ку в а м и х бк у в . К э от . MATLAB р а з л и ч а е ы п роп и сн ы м и
а h elp format в ы в о ди т н а экра н н аз в ан и е . О дн а к о к о м а н да , к о т р у ю н а д о в е с ит , й о с о б ен н о с т и в с рт о ен н о й сп рав к и help н а т п роп и сн ы е и с рт о ч н ы е бку в ы . П о п ы т бкув ам и п р и в ед т к о ш и б к е :zyxwvutsrqponmlkjihg
» FORMAT LONG E ??? Undefined command/function 'FORMAT'.
Д л я бо ле е до у б н о г о в о с п р и я ит я р е з л у ь ат а MATLAB в ы в о ди т р е з л у ь ат т в ы ч и с л ен и й ч ер з срт о к у п о сл е в ы ч и с л яем о г о в ы р аж ен и я . О дн а к о и н о гд а бы в ае т о д уб н о р а з м е с ит ь боль ш е с рт о к н а э к ран е , дл я ч ег о е сулд т в ид а ь compact и з р а с к р ы в а ю щ е го с я сп и ск а лог во м окн е Preferences в ы б р а т Numeric display. Д о б а в л е н и е ы пст у х с рт о к о б е с п е ч и в а ес т я вы бор м loose и з р а с к р ы в а ю щ е го с я сп и ск а Numeric display. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
Пр и м е ча н и
е
с В е по ч н т р м ж е у ы тьсю, н зеваи с м
с И п о л з ь в а ин э л е м е тн а р ы П р е дп о л ж и м
е ыв ч ин е л с о о т тог
я MATLAB п рои з вод й форм а т вы вод
, ккао
т с й в он д а ан с т у о в лне
- он ч т .
е х фицунк , ч т о требсту
й я в ы ч и сли т
- 2.5 л
ь з н ач ен и
е сюлуед щ ег
о в ы р аж ен и я
:
\о 0. з _ fsin2.45n + cos3.787I
В в еи д т е в к о м а н дн о й с рт о к е э т о в ы р аж ен и MATLAB и н а ж м и т е < Enter> . » exp( - 2.5) *lo g( 11.3) / 4 0.3 -
е в с о вт е с и
( sin ( 2.45*pi) + c o s( 3. 78*p i) ) / t a n ( 3. 3) )
и с п рави лам
и
л ав Г
1. рП о с т е й ш и е
О вт е т в ы в о ид с т ans =
вчиы с ле ни я
я в к о м а н дн о
е о к н о
29 zyxwvutsrqpo
:
- 3.2105 П р и в од в ы ч и с л ен и рт и г о н о м е рт и ч е с к и р еб л яем ы к л ю ч а ю ст в ам и . Д л
е в ы р аж ен и я э к с п о н е н ыт
я и сп о ль з о в ан ы в с рт о е н н ы е н фу к ц и и M ATLAB лд я , н арту л ь н о г о л о га р и фм а , к в а др тн о г о корн я и х нф у к ц и й . В сю уледщ е м пну кт е п р и в е дн ы ч аст о пуот е м а ет и ч е с к и е нфу к ц и . рмгАу ен т ы н фу к ц и й з а е скобки , и м ен а н фу к ц и й н а б и р а ю ст я с рт о ч н ы м и бк у а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA п д о с та о ч н о н абрат ь p i в к о м а н дн о й с тр о к е .
е в с рт о е н н ы я в к рглу ы я в в о д а ч и сл
р иА ф м е и т ч е с к и с в о й с вт е н н о
и в MATLAB вы п олн яю сят у яз ы к о в п р о гр а м и р о в а н и я
е о п ер ац и м б о ль ш и н свт
• в о з в едн и
е в септ н
ь — А ;
• м у н о ж ен и
е и дел н и
е — *, / ;
• с л о ж ен и Дл
е и в ы ч и ат н и
я и з м ен ен и
а в ы п о л н ен и
ь к рглу ы
Е сл щ уд е
и е тп р
е скобки
ь рт е б с у
я а р и ф м еи т ч е с к и
в е с лу д
х о п е р а то р о
т о н е о б яз а етл ь н з о в а ьт с я ет м в то р н о г о з а н ес н и ч и сли т е да н н о 1. Н а ж м и т н о е р а н е
ь з н ач ен и
е в ы р а ж ен и я
, п о хж ег
о н а п рыед
f t
-
t , ) '
t g 3 . 3
о сн о в а н аби рат ь ег о в к о м а н дн о й срт о к е . М о ж н о в о с п о л ь о MATLAB з а п о м и н а е т вс е в в о ид м ы е к о м а н ды . Д л я п о я и х в к о м ан нд у ю ср т о к у ж с л ау т к лав и ш и , . В ы е в ы р а ж ен и е , п р о едл а в ю с луед щ и е ш а ги .
е в н ег й к о р ен
П о лч у а е с т
+
, ч т
е к лав и ш е в ы р а ж ен и е
3. В ы ч и сли т
у , п р .
о н е о б х ид м ы ь н а в о з в едн и м ж с л уа т к лав и ш
е и з м ен ен н о
и эот
м в к о м а н дн о
й с рт о к
е п о я в и ст
я в енд
е хр ( - 2 . 5 ) *1 о д ( 1 1 . 3 )
е в ы р а ж ен и е
a n s = 121.2446
/ ч
-
е и з м ен ен и я , з ам ен и в ми н у с н а п лю с и к вад е в к в а др т (дл я п ер м щ ен и я п о срто к е с и >, , < End> ). , н аж
в < Enter> .
я
»
т
р e ( ln ll. 3 ) v ;
2. В н еси т р а тн ы в ы р аж ен и е
,
.
я в ы ч и сли т
, н а п р и м е
м п о р я дк е
е — + , - .
я п о р я дк
и сп о ль з о в ат
- в о б ы ч н о :
0 . 3 + ( ( s i n (2 . 4 5 * p i ) + c o s (3 . 7 8 * p i ) ) / t a n ( 3 . 3 ) ) A 2
30
аЧс т ь
I. Ос но вы
работы
в MATLAB zyxwvut
Е сл и н е о б х ди м о п о лч у и т ь бо ле е от ч н ы й р е з л у ь ат , т о еслуд т вы п олн и т ь к о м ан д у format long e, з ает м н аж и м ат ь к лав и ш у д о ет х п о р , п о к а в к о м а н нд о й с тр о к е н е п о я в и ст я рт е б у м о е в ы р аж ен и е и вы ч и сли т ь его , н а ж а в < Enter> .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> format long ezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA рхе - 2.5)*1о( д 11.3) » (
Л
0.3 - sqrt((sin(2.45*pi) + cos(3.78*pi))/tan(3.3))
ans = - 3.2104 97097863031e+000
В ы в ес т воз м ожн а з ает и н аж
и р е з л у ь ат т п о с л енд е г о б е з п о в то р н о г м п о с м о тр е ь з н ач ен и в < Enter> :
о н а й де н н о г о в ы ч и с л ен и я
о в ы р аж ен и . С елуд
е п ер м ен о
т и з м ен и т й ans, н а б р а
я в рд г оу ь ф о р м а в е е в к о м а н дн о
м фо р м а т т к о м а н до й й срто к
е , е
>> format short » ans ans = - 3.2105 П р и в ы ч и с л ен и я х воз м ожн ы н ек о т р ы е и с к л ю ч и ет л ь н ы е с и а ут ц и , н ап р и м ер , едл н и е н а н оль , к о т р ы е в б о л ь ш и н с вт е яз ы к о в п р о гр а м и р о в а н и п р и в о дя т к ош и бке . П р и елдн и и п о л ж и те л ь н о г о ч и сл а н а н ол M ATLAB п о лчуаест я inf (б ес к о н еч н о сьт ) , а п р и едл н и и о тр и ц а те л ь н о г ч и сл а н а н ол ь п о ч л у а ес т я - in f (м и н у с б ес к о н еч н о сьт ) и в ы адест я п р еу д ж е нд и е :
я ь в о -
» 1/0 Warning: Divide by zero, ans = Inf ( Пр п уд р е ж д н и е
и е дл н и
и н л у я н а н о л ь п о чл у а е с т я NaN (н е ч и сло ) и та к ж е в ы ад е с т я п ре :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» /о о Warning: Divide by zero, ans = NaN П р и в ы ч и с лен и в о з н и к ает с ел :
, н а п р и м е р . M ATLAB а в от м аит ч ес к
» sqrt(- 1.0) ans = 0 + l.OOOOi
, v- 1 н и к а о и п е р о хи д
й ош и бк
и ил т в о бласт
и п р еуд ж едн и ь к о м п л ек с н ы
я н е х чи -
л ав Г
1. рП о с т ей ш и е
П р и н абор п оль з оват н и и в септ н
чвиы с лени я
31 zyxwvutsrqpon
е к о м п л ек с н ы ь ли б о i, л и б ь н ео б хид м
х ч и се о j , а сам о з ак лю ч ат
л в к о м а н дн о и ч и сл а пр ь в к рглуы
й с рт о к и ум н о ж ен и е с к о б к и
е MATLAB м о ж н о ис , дел н и и и в о з в ед :zyxwvutsrqponmlkjihgfedcbaZ
A
» (2.1 + 3.2i)*2 + (4.2 + 1.7i) 2 ans = 18.9500 + 20.6800i Е сл и н е и с п о л ь з о в а т ед т то л ь к о мн и ма
ь скобки я ч аст
, т о мун о ж аьт с ь и п очлуи ст
я и л и в о з в о ид ьт с й р ез луь ат
я н ев р н ы
я в се п т н
ь уб -
:
» 2.1 + 3.2i*2 + 4.2 +zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG l.li~2 ans = 3.4100 + 6.4000i Дл котры
я в ы ч и с л ен и
я к о м п л ек с н о - с о п р яж ен н о г т н а б и р а т
й се улд
ь ср аз
о ч и сл , бе з п р о б ел а
у з а ч и с л о м
а п р и м е н я ес т
я а п о с тр о ф
,
:
» 2 - 3if ans = 2.0000 + 3.0000i Е сл в ы р аж ен и
и н е о б х ид м е до л ж н
о н ай т о бы т
и к о м п л ек с н о - с о п р яж ен н о ь з ак л ю ч ен
е в ы р а ж ен и е о в к рглуы
е с к о б к и
, т о и сохнд о
е
:
» ((3.2 + 1.5i)*2 + 4.2 + 7.91)' ans = 10.6000 - 10.9000i M ATLAB п о з в о л яе то в в срт о ен н ы х э л е м н ат р н ы >> sin(2 + 3i)
т и сп о ль з о в ат
ь к о м п л ек с н ы х фну к ц и й
е ч и сл
а в к а ч е свт
е а р м гу е н
-
:
ans = 9.1545 - 4.1689i Ка ка э от н фу к ц и чи т рабо ч е мы п р о с м о тр брат о т
к з у н а ть , к а к и е в срт о ен н ы е э л ем н атр н ы е фн у к ц и и м о ж н о и с п о л ь з о в а т ь и к и х в ы з ы в а ьт ? Н а б е р и т е в к о м а н дн о й с рт о к е к о м ан д у h elp elfun , п р и м в к о м а н дн о е окн о в ы в о ди с т я сп и со к в с е х в с рт о е н н ы х э л е м н ат р н ы х й с и х к р акт и м о п и с ан и ем . Бо ле е п о др б н ы е с вен д и я м ож н о п о лу Help ь и з о б ш и р н о й и н етр а к ит в н о й с п р а в о ч н о й с и с е тм ы , в ы б р а в в м ен ю zyxwvutsrqponml й с р ед ы пну к т MATLAB Help. О кт р ы в а ест я окн о сп рав о ч н о й си е т . В лев о й ч аст и окн а н а в к лад е Contents п р и в едн о е е о гл а в л е н и е . Д л я а с о де р ж и м о г о к а ог - ли б о р а з де л а в п рав о м окн е е с лу д т вы ь ег о н а з в а н и е в лев о м окн е п р и п о м щ и щ ел ч к а мы ш и . З н а к "+ " слев а н аз в ан и я р а з де л а ж с л иу т лд я о т б р а ж е н и я ег о п о др а з де л о в . Н а й ди т е
аЧс т ь I. Ос новы работы 32 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
в M ATLABzyxwvutsr
и п о к а те го р и я м ) , з ает м в п о др а з р а з ед л Functions — Categorical List (Ф ну к ц и е дл е Mathematics (М а те м а ти к а ) — п ну к т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ Elementary Math. П ер д в ам и сп и с о к ве с х э л е м н а т р н ы х м а ет и ч е с к и х нф у к ц и й , и м ею щ и с х я в MATLAB (ри с . 1.5). Щ е л ч о к п о ги п ер с ы лк е с н аз в ан и е м н фу к ц и и п о з в о л яе т п о чл у и т ь п о лн у ю и н фо р м а ц и ю о н ей . Д л я п ерохд а в п ер д и н аз а д п о п р о с м о рт е н н ы м с рт а н и ц а м сп рав о ч н о й с и ем т ы и с п о л ь з йу т е кн оп к и с о с рт ел к а м и .zyxwvutsrqponml
Tteil: E elmenaty r Maht :: Func oitns -- Cae tgocrial Lsit M (A TL A B Fun Eelmentary Mah t * Tgrionomecrti Г * Exponenatil * Comp ex l * Round nig and Rema nider * Dsicrete Maht (e.g. P m rie Factors) Tg rionomectri a cos n Iverse cosnie acosd n Iverse cosnie, dege res a cosh n Iverse hyperbo c c il osnie acot n Iverse coatngent a c o d t n Iverse coa tngen,t dege res a a t A n a y l s s i a n d F o u e r i r j D a c o h t n I v e r s e h y p e r b o c c i l o a t n gent P o y l n o m a s i l a c s c n I v e r s e c o s e c a n t I C tero poord an lo tian a nyd C omop u t.c iscd n a Iverse cosecan,t dege res |n i e t S s e t m C n v e r N o n i e l a r N u m e c r i a l M e h t c a c s c h n I v e r s e h y p e r b o c c i l o s e cant S p e c a z i e l d M a h t a s e c n I v e r s e s e c a n t S pa rse M aa c rtin es s asecd n Iverse secant, dege res M a h t C o n s t t ec T h n Ijverse hyperbo c s il ecant & • Po rga rmm nig and Daaatss y p e s ^ m n Iverse.snie
Contents Index I Search Demos I гг. ;
• ф Release Notes j Ф Installation 0 MATLAB ( +b # Getting Started !+}• - • •$ Examples [+! Щ Desktop Tools and Developrne ш Щ } Mathematics ,+ ^ Programming + Q Graphics + IQ 3- D Visualization 1+ь1 Щ Creating Graphical User Interfc :- Щ Functions - - Categorical List I i+l- Desktop Tools and Developme | $bMathematics {- Arrays and Matrices | Linear AlgebrazyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Рис
^
Пр и м е чан и
М ожн к о н те к с тн о
о п о л уч и т
. 1.5. О к н
о и н етр ак ит в н о
й сп р ав о ч н о
й си емст
ы
е
е м ен
ь б ы с тр ы ю в окн
й д о с ту п к и н фо р м ац и е Command Window. Д л
и о ф ун к ц и я э то г о н ад
, и с п о л ь з у о в ы де л и т
я ь и м
я
л ав Г
1. рП о с т ей ш и е
вчиы с лени я
и в ран е ь в м ен
ф ну к ц и вы брат В с л е д ую щ е
В с тр о е н н ы ски е та к ж ли чн ы м
е п р и в е де н
ы част
о и с п о л ь з уе м ы
е э л е м е тн а рын е э л е м е н та р н ы , г и п е р б о л и ч е с к и е е ф ун к ц и и сп особам и
и дл
Тр и г о н м е т р и е ч с к е и обра т ын Ниж о б р а тн ы
е н абран н о й ком ан д е и , щ ел к н у в п раво й кн оп ко й мы ш и , ю п ну к т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG Help on S election.
м р а з де л
с В т р ое ы н
33 zyxwvutsrqp
е фицунк
е ф ун к ц и , э к с п о н е н ц и а л ь н ы я работ ы с ком п лексн ы м .
и
и M AT L AB в к л ю ч а ю е и ло гар и фм и ч еск и и чи слам
, гипе рбол иеч с к е к ни е п ереч и слен
т тр и г о н о м е тр и ч е
е ф ун к ц и и
и и дл
, а
я о к р уг л е н и
я раз
-
е
м иц унк ф
и
ы в с тр о е н н ы е к н и м
.zyxwvutsrqponmlkjihgfedc
е ф ун к ц и и
е в M AT L AB т р и г о н о м е т р и ч е с к и
е ф ун к ц и
и и
:
• si n , co s, t a n , c o t —с и н у с
, к о с и н ус
• sec , e sc —с е к а н с
с ( se c ( x) = ——- , csc(x) = )г т ;zyxwvutsrqponml cos(x) sin(;t)
, к о с е к а н
, т а н г е н
ќ asin, acos, atan, acot —ас у н и с к р генс ; ќ asec, acsc — арксеканс J^ р А г му е н т н ах р а ди а н а х
е
;
, арктанген
с и арккотан
-
. ,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
^|
ы тр и г о н о м е тр и ч е с к и е тр и г о н о м е тр и ч е с к и
. О б р а тн ы
В M AT LAB в с тр о е н
, арккосинус
, арккосеканс
П р и м е ча н и
с и к о та н г е н с
х нф у к ц и
й до л ж н е нф у к ц и
ы бы т и в о з в р а щ а ю
ь в ы р аж ен т р е з лу ь та
ы в р а ди а т та к ж
е в
. ы с л е д юу щ и
е ги п ер б о л и ч ес к и
е ф ун к ц и
• sin h , cosh , t a n h , c o t h — г и п е р б о л и ч е с к и та н г е н с ; • seen , c sc h — г и п е р б о л и ч е с к и
е с и н ус е сек ан
с и к о с е к а н с
е арксекан
е к н и м
, к о с и н ус
, т а н г е н
с и ко
: -
;
• a sin h , aco sh , a t a n h , a c o t h —г и п е р б о л и ч е с к и а р к та н г е н с и а р к к о та н г е н с ; • a sec h , a c sc h — г и п е р б о л и ч е с к и
и и о б р а т н ы
е а р к с и н ус с и а р к к о с е к а н с
, а р к о с и н у с .
,
_ЗА
аЧс т ь
Э с п к о не и ц а л н ь л м оаг р и ф ы
я ицуняк ф е п ер ч и слен
е фицунк ы н аз в ан и
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
я эит
• ех р — э к с п о н ен ц и а л ь н а
х н фу к ц и
й в M ATLAB:
я фну к ц и я
;
• log — н арут л ь н ы
й л о га р и фм
;
• logio — едс яит ч н ы
й л о га р и ф м
;
• 1од 2 — л о га р и ф
м п о о с н о в а н и
• pow2 — в о з в едн и
е ч и сл
а 2 в сетп н ь
G sq r t — к в а др тн ы
й к о р ен ь
;
• nextpow2 — сетп н ь бли ж ай ш е е ч и сл
в MATLABzyxwvutsrq
р аб о т ы
,
, ст е п ын
Н иж
I. Ос новы
ю 2;
, в к о т р у о (бо ль ш е
;
ю н ад е и л и р а в н о
о в о з в ес т е армгу ен )ут
и ч и сл
о 2, ч от б , н а п р и м е
ы п о чл у и т ь р zyxwvutsrqponmlkji
» nextpow2(1000) ans = 10
Ф и ц ун к
дл
К н и
м о нт о с ят
я ратоб
ы с ком пл есмкны
я сюлуед щ и
е н фу к ц и
• abs, an gle — млоуд
ь г и фаз
ч и сл
и числ а м и M ATLAB: а ф (в р а ди а н а
х о т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR - п д о я ) к о м п л ек с н о г о
а a + i- b = r - (cos(p + z- sin(p);
О complex — к о н сртиу реу т к о м п л ек с н о мн и мо й ч а с ит : >> complex(2.3, 5.8) ans = 2.3000 + 5.8000i • conj — в о з в р а щ а е
р О к уг л е н и
е и ост а о е п р и в едн
е ч и сл
о п о е г о ед й с в т и е т л ь н о
т к о м п л ек с н о - с о п р яж ен н о
• imag, r e a l — м н и м а
Н иж
и
ы п р и м ер
• fix — о к рглуен и » fix(1.8) ans = 1
е ч и с л о
я и дей свт и етл ь н а
я ч аст
к о т дел ин
; о ч и с л а
.
я
ы и сп о ль з о в ан и е д о б л и ж ай ш ег
ь к о м п лек с н о г
й и
я эит о ц ел о г » ans = - 1
х н фу к ц и
й в M ATLAB:
о п о н а п р а в л ен и
ю к н лую
:
л ав Г
1. рП о с т е й ш и е
вчиы с лени я
35zyxwvutsrqp
• floor, c e il — о к рглуен и н у с б еск о н еч н о ст и и л » floor(3.2) ans = 3 • round — о к рглуен и
е д о б л и ж ай ш ег и п лю с б ес к о н еч н о сит
о ц ел о г :
» round(4.5) ans = 5 о е дл н и я (с о з н а к о
» mod(5/ 2) ans = 1 • rem — о сат к о т ц елоч и слен ог
о делн и
» mod(5,2)
sign — з н а
к ч и сла.
П р и м е ча н и
ю к м и
-
» ceil( 3.2) ans = 4 о ц ело г :
е д о б л и ж ай ш ег
» round(4.1) ans = 4 • mod — о сат к о т ц ел о ч и с л ен н о г та ) :
о п о н ап р ав л ен и
» mod(5,- 2) ans = - 1 я (с о з н ак о
м в то р о г
м п ер в о г
о а р м гу е н
-
о а р мгу е н ат )
:
» mod(5,- 2)
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е
В MATLAB июсме т я р н о е в тс ы е п с ц е и ь л на ы е и м е т а чк с е н уф кц и , е к а : н цкуфи я ял ес Б , п оил н ом ы ж е а нЛ р д а и т . д . П родбн у ю ин о р ф м ца и ю с п ри мае и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA с.м в ине пжо илр 1. К ом ан д а h elp specfun вы а д е т пс и о к спце иьлна ы х н у цк ф и й с ккират м о п и сн а и м е . Дл я еобл е п р о дб н о й и н о рм ф ц а и и с т е уб р т я н аб р т ь в к о м на д о й р о к тс е h elp и им я н уфкц и . В и ниреактв о й сп равочн о й м е и тс е ан л ои г ч н ы е н е ид вс я со р еж и д т нп ук т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Specialized Math, окрыт й ис н о д т х а я в п р а з ол е д е Mathematics разлед а Functions — Categorical List. ак ти
с И п о л з ь в а ни аК
м ож н ост ит ь с в е щ е св т н ы
е перм е ны к и в о в се
х яз ы к а х п р о гр а м и р о в а н и я ь работ ы с п ер м ен н ы м и . П р и ч е я о то м , к а и е з н ач ен и я е д бу т п ри н и м ат е и л и то л ь к о ц ел ы е) . Д л я то г
х , в MATLAB п р есудм о рт ен м п о л ь з о в а ет л ь н е од л ж е ь п ер м ен н а я (к о м п л ек с н ы е о ч от б ы п р и с в о и ть , н а п р и м е р
а воз н з або
,
, п е -
36_
аЧс т ь
е 1.45, до с та о ч н й z з н а ч ен и м M ATLAB сраз у ж е в ы в ед
р ем н н о п р и эот
о н ап и сат т з н ач ен и
I. Ос но вы
в MATLAB zyxwvutsr
работы
ь в к о м а н дн о е z:
й с рт о к
е z= l. 4 5,
» z = 1.45 z = • 1.4500 З ес д
ь з н а к р а в е н с тв а и с п о л ь з ес т у я в к ач есвт н е о ч ен ь од у б н о п о сл е к а ж од г о п ри св аи в ан и П оэ тм у в M ATLAB п р сеудм о ртен а воз м ож н ост св аи в ан и я то ч к о й с з а п яот й дл я п о адв л ен и я окн о . И м ен е м п ер м ен н о й м ож е т бы т ь лю ба циф р бе з п р о б е л а , н ач и н аю щ аяс я с бк у в ы р а з л и ч а ю тс я , н а п р и м е р , Mz И mz яв ляю ст я дмву л и ч е с вт о в о с п р и н и м аем ы х MATLAB с и м в о л ляе т 63 (так и е дл и н н ы е и м ен а р екд о бы в аю т
е оzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO а ртпое випс.ар ня Ча с т о я п о лч у а т ь ще е и р е з л у ь а т . ь з ав ер ш ат ь о п е р а то р п ри в ы в о д а р е з л у ь та а в к о м а н дн о е я п о с л е до в а е т л ь н о с т ь кбу в и . С тр о ч н ы е и п роп и сн ы е к б ув ы я раз н ы м и п ер м ен н ы м и . К о в в и м ен и п ер м ен н о й с о а тв н ж ун ы ) .
В к а ч е с вт с ю л уе д щ е г
е п ер м ен н ы
е пу р а ж н ен и о в ы р аж ен и я
я н а и сп о ль з о в ан и :
х н а й ди т
е з н ач ен и
е
sinl З я _i_ tg 2.75 In 3.4 th 2 75 tg 2 75 V th 2 75
sinl З я In3 .4 Н аб ер и т е п о с л е до в а е т л ь н о с т н и е н а точ к у с з а п я то л ен и я в ы в о д а п р о м е ж от у ч н ы
ь к ом ан д й в п ер в ы
х в уд х з н ач ен и
, п ри в едн н у х о п е р а то р а й н а э к р а н
ю н иж е (о б р а ти е вн и м а х п ри св аи в ан и я дл я п оадв ) zyxwvutsrqponmlkjihgfedcbaZYXWVU
» х = sin(1.3*pi)/log(3.4) ;
» у = sqrt(tan(2.75)/tanh(2.75)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ ); » z = (х + у ) / (х - у ) z = 0.0243 - 0.9997i
П о с л е дн и то г о О б р а ти т окн м ен н о К о н еч н о
, ч от б
й о п е р а то ы ср аз
р п ри св аи в ан и у п о лч у и т
ь з н ач ен и
е в н и м ан и е н а то е Workspace, к а к п о к а з а н й ans, к о т р а я и сп о ль з о в ал с , м о ж н
о б ы л
я н е з а в е р ш а е ст е и сохнд о г
я то ч к о
, ч т о вс е в в едн н ы е п ер м ен н ы о н а р и с . 1.6 (в до п о л н ен и ь р а н е ) .
о б ы в в ест
и вс ю формл у
й с з а п я то .
о в ы р аж ен и я
у и п о лчуи т
е сраз е к с та н да р тн о
у п о яв и л и с
ь то
т ж е р ез луь ат
й лд
я ь в
й п ер
т
» (sin (1.3*pi)/ log(3.4) + sq r t ( t a n ( 2. 75) / t a n h ( 2. 75) ) ) / ( sin ( 1. 3*p i) / . . . log(3.4) - sqrt(tan (2.75)/ tan h (2.75)))
л ав Г
1. Пр о с т е й ш и е
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC 37zyxwvutsrqpon
вчиы с лени я
a n s = 0. 0243 - 0 . 9997 izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
File Edit Debug Desktop Wnidow Hep l ; it Directory: [e:WATLAB7\workWork_1 JJ ...I ft] О GЈ . IS •zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Щ 3 Shortcuts [f] How to Add j>] What's New j ж
"} Sz ie | Bytes j 'lias? 1x1 16 double (comf 1x1 8 double 1x1 16 double (comf 1x1 16 double (cornf
ans
EB fflx ffly
> > c o m p l e x ( 2 . 3 , 5 . 8 )
2 . 3 0 0 0 + 5 . 8 0 0 0 i z - 1 . 4 5 Current Directory] workspace Г
1.4500 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• ( 2 . 1 + 3 . 2 i)*
4.2+ 1.71л 2
}2 . 1 + 3 . 2 i * 2
> > x = s i n ( 1 . 3 * p i ) / l o g ( 3 . 4 ) ;
| 2- 3 i 1 \ ( ( 3 . 2 + 1 . S i) *2 + 4 . 2 + 7 . 9 i ) '
> > 7 = s q r t ( t a n ( 2 . 7 5 ) / t a n h ( 2 . 7 5 ) ) ;
1 - 3 i n (2+ 3 i)
> > s = ( x+ 7 ) / ( x - 7 )
h~ ne x t po »2 ( lo o o )
\ co m p lex ( 2 . 3 , 5. 8) j 2
= 1.4 5 0 . 0 2 4 3 - 0 . 9 9 9 7 i
I x = s i n ( 1 . 3 * p i ) / l o g ( 3 . 4 ) ; [ у = s q r t ( t a n ( 2 . 7 5 ) / t a n h ( 2 . 7 5 ) ) ; 1
s = ( x + 7 ) / ( x - 7 )
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ф Start I
с иР
Н о о б р а ти т В о в то р о с рт о к е п о с ат в л е н
. 1.6. ачоРб
я сд ер
а MATLAB пл со
е в н и м а н и е , н а с к о л ь к м вари ан т е фо р м л у , и п р и ш ло с ь з а п и с а т ы тр и то ч к и . ^ лД
Пр и м е ча ни
я пн ем ы р е
о п ерв а я з ап и с ь к о м п а к нт е а н е п о м ещ ал с ь в к о м а н дн о ь е е в дв е срт о к и , дл я чег
о в к о н ц
х е и ясн е е в то р о й м окн е н а о дн о е п ер в о й срт о к
! й и
е ^]
я ввод а дилн ы х фмуро и (пдяр о ви т ь тр и очкт жи т ь н боа р фл муро ы н н и е н а иь к н л о с е х р о к х а тс в ы п онл и т кнмоа д у плсо н е т тер х ищ иу д х п яр о д д
MATLAB з а п о м и н а е с еа н с а р а б о ты . Е сл
е вн еиыл чс
т з н ач ен и и п о сл
е в в о д
л ил и комна д в кмона ду , бе з п ролбев) , н жта ь и в ша л к а ю щ у е д л с й ор к е т с . Та к нжмо . MATLAB ыв чилс е ни тжа я н а < Enter> в н пед лсо точке) . я в ес а п р и м ер а
х п ер м ен н ы х
ю скор т
у е у д елс у и о ризамтсе ь т с в е ыв н ж е а р и й скор т е (в
, о п р едл н н ы , п р и в едн н о г
о в ы ш е
, б ы л
т па тсо пол др ыв ж е а р е и л окрт
х в о в р ем и п р о ед
и й я -
38
аЧс т ь
ы ще е к ак и е- л и б е х , т о селуд
лан ч ен и
о в ы ч и с л ен и я т п р о с т
, и в о з н и к л ь х в к о м а н дн о
о н абрат
I. Ос но вы
а н е о б х ид м о с т й срто к
в M ATLAB zyxwvutsr
работы
ь в ы в ес т
и з н а ь :zyxwvutsrq
е и н а ж т
» X X = ' - 0.6611 П ер м ен н ы е л ах . Н а п р и м е р
, о п р едл н н ы , есл
е вы ш е ь н е о б х ид м
и теп р
, м о ж н
о и сп о ль з о в ат о вы ч и сли т
ь в ы р аж ен и
ь и в рдгиу е
х фо р м у
-
sinl.37t In 3.4 т о до с та о ч н »
о в е сит (х - у)
А
ю с ул е д щ у
ю к о м а н уд
:
(3/ 2)
a n s = - 0 . 8 1 3 9 + 0 . 3 5 4 7 i
Вы зо
в н фу к ц и
вы ч и сли т
й в M ATLAB о б л а д е ь е ' в о з м о ж н о
» ( р х е 3.5
, в ы з в а
т д о с та о ч н о в н фу к ц и
й г и б к о с ть ю
. Н а п р и м е р
ю ех р и з к о м а н дн о
й с тр о к и
,
:zyxwvutsrqponml
)
ans = 33.1155
Д р гу о
й сп ос
»
б с о с т и
t = е х р ( 3 . 5
т в и с п о л ь з о в а н и
и о п е р а то р
а п р и с в а и в а н и я
:
)
t = 33.1155
П р е дп о л ж и м н ы е п р и е сд т э от м с ч л уа с р ед .
С о хр а н е и С ам ы ват окн П р е д л а г е ст та л о г
, ч т я до е л а т е п о н а до б и с т
о ч аст
е и вос т а онвл е ин
ь в ы ч и с л ен и ь в о в р ем я с ор ха н и т
й с п ер м ен н ы м я сю л у е д щ е г
о с еа н с ь п ер м ен н ы е
е ра боеч
и в ы п о лн ен а а работ , о п р едл н н ы
й сре д
, а о сатль ы с M ATLAB. В е в рабоч е й
ы
й п рост й сп о с б с орха н и т ь з н ач ен и я в се х п е р е м е н н ы х — и с п о л ь з о ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA File п н у к т Save Workspace As. П р и эот м п о яв л ест я ди а л о г в о е ь в м не о Save to MAT- File, в к о т р о м е с ул д т ку а з а т ь к атло г и и м я фа й л а . я с о рха н и т ь фа й л в тщеку е м к атлог е (п о ум о л ч а н и ю в п о кд а о к атлог а MATLAB). О с атв ь т е п ок а э от т к а т л о г . е work о с н о в н о г
л ав Г
1. рП о с т е й ш и е
вчиы с лени я
39 zyxwvutsrqp
В ад л ь н е й ш е м едбу т о б ъ яс н ен о , к а к суатн а в л и в а т ь пту и к к а т л о га м в MATLAB лд я п о и ск а фа й л о в . одУб н о да в т ь фа й л а м и м ен а , с о едр ж ащ и е а д т у р а б о ты , н ап ри м ер , work20- 01- 04. В ы п олн и т е zyxwvutsrqponmlkjihgfedcbaZYXWVUT Save (С роанх и ьт) . MATLAB с орха н и т р е з л у ь ат ы работ ы в фа й л е work20- 01- 04.mat. Т еп р ь м ожн о за кры т ь M ATLAB онд и м и з сю улед щ и х сп ос бов : • вы брат
ь в м не
• н аж т
ь к лав и ш
• н абрат
ю File п н у к
и < C trl> + < Q> ;
ь к о м ан д
• н аж т з а го л в к а
т Exit MATLAB;
у e xit в к о м а н дн о
й срто к
е и н а ж т
ь < Enter> ;
ь н а кн оп к у з а к р ы ти я окн а MATLAB в п р ав о м в не р х м лг у у е г о .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е ча н и е ^] \ ^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П м н ре ы см о т м ца и
р и эт и о пнмер ы
е в фйа л х й а ф ол
х с ршса инер в в лю об м о в к е ст х и и х з н аче и хя
м mat хнрас тя м о а к р ед т .
я в двои чн о е н е дас
м ви е д т н и као
. П ро й и н орф
-
В ю с лу е д щ е
м с еа н с е работ ы л д я в о с ат н о в л е н и я з н ач ен и й п ер м ен ы х сле е уд т о тк р ы т ь фа й л work20- 01- 04.mat п р и п о м щ и п о пд ну к т а Open м не ю File. Т еп р ь вс е п ер м ен н ы е , о п р едл н н ы е в п р о ш л о м с еа н с е , салт и до с п ут н ы м и . И х м ож н о и сп о ль з о в ат ь в о вн ов ь в о ид м ы х к о м а н да х . С орха н и т ь и в о с ат н ови т ь п ер м ен н ы е с р ед ы м ож н о ат к ж е с п ом щ ь ю кн оп о к Load data file и Save н а п ан ел и и н с ртм у е н от в окн а Workspace. Д л я ск р ы ит я и л и от браж е н и я п а н ел и и н с р тм у е н о т в окн а н ад о в ы з в ат ь к о н ет к с нт о е м ен ю , щ елк н у в п рав о й кн оп ко й н а з а го л в к е . П р и в о с атн о в лен и и п ер м н ы х п осл е вы бор а фа й л а лд я и х з а г р з у к и в о з н и к ае т ди а л о г в о е окн о , и з о б р а ж ен н о е н а р и с . 1.7, п о з в о ляю щ е е п р о с м о рт е ь з н а ч ен и я п ер м н ы х и о мт е и т ь фл а га м и те , к о т р ы е се улд т з а г р з у и ть . М ожн о с орха н и т ь з н а ч ен и я о нд о й и л и н ес к о л ь к и х п ер м ен н ы х . Д л я э то г о в ы б ер и т е п ер м ен н ю у , щ елк н у в мы ш ь ю п о е е и м ен и в ок н е Workspace. Д л я вы бор а н ес к о л ь к и х п ер м н ы х и сп о ль з йу т е с а т н ад р н т у ю к ом би н ац и ю Windows — щ елч о к л ев о й кн оп ко й м ы ш и с уердж ан и е м к лав и ш и л и . З ает м н а в ы е дл н и и с ед л а й т е п рав ы й щ ел ч о к мы ш ь ю и в ы б ер и т е пну к т Save As в к о н етк сн о м м ен ю . О кт р ы в аест я ди а л о г в о е окн о Save to MAT- File, в к о т р о м се луд т в ы б р а т ь и м я фа й л а . О б р а ти Двой н о в о с ат н о в л е н и
е вн и м ан и е й щ ел ч о
к мы ш ь ю з ап и с ан н ы
, ч т о с о з адн н ы й фа й л п о яв и л с ю в э от м о к н е п о срто к х в н ег о п ер м н ы
я в о к н е Current Directory. е с и м ен м фа й л а п р и в о ди т к х в р а б о ч е й сред .
Ча с т ь I. Осыовн ра бот ы в M ATLAB 40zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA *kzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Import WizardzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Select variables to import using checkboxes ! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA '(* Create variables matching preview. i Г Cr;::^r: . • :",;• •. ; .V , . i ' ", , .* 1 С «>*^ - :,• • ;•- f>, ,. •: V.'M- r.r- ;".:v Variables in e:WIATLAB7\workVnatlab4.mat import
Bytes
class 8 double 8 double У 16 double z FzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 16 doublezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK 1x1 1x1 1x1 1x1
с иР
. 1.7. Довигла
л д я внеалвиотс С орха н е н и п олн и т В к о н ц
е в се х п ер м ен ы ь и и з к о м а н дн о е сеан с а р а б о т
я пн емы р е х и в о с ат н о в л е н и й с тр о к и . Д л я э то г ы с MATLAB н ео б хид м
е онк х сд е р
о ы Workspace е рабоч е
о ж с л уа о вы п олн и т
й с р ед т к ом ан д
ы м ож н о вы ы save и load. ь к о м ан д у zyxwvutsrqponml
» save work20- 01- 04 Р а с ш и р ен и с р ед с ч и ыт в а н и
е м ожн
о н е к у а з ы в а ть , MATLAB с орха н и ы в фа й л е work20- 01- 04.mat. В н ач л е с ю л уе д щ е г я п ер м ен н ы х се улд т ввест и к о м ан д у
т п ер м ен н ы о с еа н с
е рабо ч е а работ
й ы лд
я
» load work20- 01- 04 Бо л е е п о др о б н ы е с в ен д и я о к о м а н да х save и load м о ж н о п о л ч у и ьт , н а б р а в в к о м а н дн о й с рт о к е h elp save и л и h elp load. В и н те р а к ти в н о й с п р а в о ч н о й с и е мт е вс я и н фо р м а ц и я о б э и т х к о м а н да х н оа х и д с т я в п ну к т е Opening, Loading, Saving Files п о др а з дел а File I/ O р а з де л а Functions — Categorical List. В M ATLAB и м ест я воз м ож н ост з л у ь ат ы в ет к с от в ы й фа й л е гк о п р о ч и та ь и л и р асп еч ат ед н и я ж р ун а л а сж л уи т к ом ан д
л (вест
ь з ап и сы в ат ь и с п о л н яем ы и ж р ну а л р а б о ты ) , к о т р ы ь и з те к с то в г о р е д а к то р а а diary. В к ач есвт е а р гм у е н т
е к ом ан д ы и р е й п от м м ож н о . Д л я н а ч л а ве а к о м ан д ы d iary
л ав Г
1. рП о с т ей ш и е
вчиы с лени я
т з адт
е с ул д б и р аем ы э от
ь им е ад л е , н а п р и м е р
т фа й л
41 zyxwvutsrqpo
я фа й л а
, в к о т р о ы и р ез луь ат
к о м ан д
м е д бу т р ха н и ьт с ы и х и с п о л н ен и ь к ом ан
, п о с л еод в аетл ь н о с т
я ж р ну а л р а б о ты . Н а т з а п и с ы в а ьт с я в я буд д zyxwvutsrqponmlkjihgfedcbaZYXWV
» diary d20- 01- 04.txt » al = 3; » а 2 = 2.5; » а З = al + a2 >> а З = » 5.5000 » save work20- 01- 04 » quit
п р о и з в о ди
т сюлуед щ и
1. О тк р ы в а е
е ед й с в т и я т фа й
2. П р о и з в о ди
л d20- 01 - 04.txt.
т в ы ч и с л ен и я
3. С о рха н яе
т п ер м ен н ы
4. С орха н яе жр н у а л работ
т н а ид с к ы в фай л
П о с м о тр и т д а к то р е В фай л
:
. е в дв о и ч н о
е фа й л , в с ат н да р нт о я ю с луед щ и
е work20- 01- 04.mat.
о к атлог е в п о дк а т л о г е work к о р н ев о г е d20- 01- 04.txt и з а к р ы в а е т MATLAB.
е с о ед р ж и м о , н а п р и м е р е о к аж ест
м фа й л
а d20- 01- 04.txt в к а о м - н и бду й п р о гр а м е Windows Бл о к н о й ет к с т :
а MATLAB ь ет к с от в
м ре т (N otepad).
al = 3; а 2 = 2.5; а З = al + a2 а З = 5.5000 save work20- 01- 04 quit
З а п с и ут котры сан ы м не п р о с м о тр
е сн ов е р ха н яст х в н ач л ю File р а б о ч е а п ер м ен н ы ,х
а MATLAB и в о с атн о в и т е з н а ч ен и я в в едн ы х п ер м ен н ы ,х я в фа й л е work20- 01- 04.mat, п р и п о м щ и лю бог о и з оп и е э от г о р а з де л а сп ос бов : к о м ан д ы load, и л и п ну к т а zyxwvutsrqponml Open й с р еыд , и л и о к н а Current Directory. И з чуи м воз м ож н ост ь о п р едл н н ы х в р а б о ч е й сред .
42
аЧс т ь
р По с м о т об ы в
р и уад л е ни р им е н пе р м е ын и работ ь и м ен
I. Ос но вы
е пе р м е хын
е с д о с та о ч н а и сп о ль з о в ан н ы я окн о м х в р а б о ч е й с р ед е р ас п о л ж ен ы в а N ame м ен яе ь п ер м ен н ы е п о х п ер м ен ы я п о р а з н ы м к р и ет р и я м
Двой н о кн оп к ни н аз в ан и вам и н ят щ с у е с юв т у щ и е н ю яс н ен ю ст р аз м ер в гаве л
й щ ел ч о к п у Open п ан ел ю е е с о де р ж и м о г я (р е да к то р , к о т р ы м п о с в ящ ен ь з н ач ен и е э л е м н от . И з м ен ен и Preferences в р а с к р ы в а ю щ ем с о ран е . П о чд ер к н е я в в и ед м ас и в о а 1 н а 1 (р а б о т 2).
о боль ш и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
м к о л и ч е с вт о х п ер м ен ы х . С ам ы Workspace, в к о т р о м н оа х я д с т е п ер м ен ы х . П о му о л ч ан и а л ф в и нт о м п о р я дк е . Щ ел ч о т п о р я до к н а о б р а тн ы й . Ан а л о ги ч н р аз м ер у з ан и м аем о й п а м ят х к о м п л ек с н у ю и п р о в ер ь т .
о с рт о к и и н с р тм у е н о т о в о е д тл ь н о м ас и в о )
в MATLAB zyxwvu
, х
Пр з н ат п о л ь з о в а ьт с юву щ и кс с от л б ц ват щ ев с т н ы ни
р аб о т ы
м п ер м ен ы й п рост
х н е о б х ид м й сп ос б — в о с я и м ен а в с е х щ ус т е ю в с е п ер м ен н ы е в сп и к мы ш ь ю п о з а го л в к о м ож н о пу о р яд ч и и и ти п у . В в еид т е кром е ве т п у о р я од ч и в а е р е з л у ь ат
у -
е с п ер м ен о
й в окн е Workspace (и л и н аж ит е н а в окн а Workspace) п р и в о ди т к о тбраж е м окн е Array Editor, ч то , к а к е сулд т и з ег о , бед у т о с б ен н о п о л ез н о п р и работ е с м аси а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ав г л 2. В о к н е р е да к то р а м ас и в о в м ож н о и з ме в м ас и в а , до б а в и т ь н овы е э л е м н ыт и л и а д л иу т ь е фо р м а т а вы вод а ч и се л о щс у е с в т л я я ч ер з ме я сп и ск е Numeric Format та к , к а к б ы л о объ м ще е р а з , ч т о вс е адн н ы е в M ATLAB п р есдатв ля , м ы п о к а р а б о та е м с м ас и в ам и и з о нд о й яч ей к и а с м ас и в ам и бо ль ш е й р аз м ер н о с т и п о др о б н о о п и сан а
В ер н ем с я в окн о Workspace. К р о м е с о р ха н е н и я и в о с ат н о в л е н и т а д л уя т ь п ер м ен н ы е . Д л с р е ыд , о к н о Workspace п о з в о л яе о х ид м о в ы ед л и т ь он д у и л и н еск о ль к о п ер м н ы х п р и п ом щ ви ш и л и , н аж т ь кн оп к у Delete и п о вдт ер ди т яв л ю щ ем с я ди а л о г в о м окн е Confirm Delete. н А а л о ги ч н ы е воз м ож н ост и п р е од с а т в л я ю т к о м ан д п р е дн а з н а ч е н н ы е лд я о п е р и р о в а н и я с р а б о ч е й с р е од й ж и ст я в р а з дел е Functions — Categorical List (р аз едл opment, п ну к т Workspace, File, and Search Path) с п р а в о ч н о ви м с я н а н ек о т р ы х и з н и х .
я рабо ч е й я н ео б и мы ш и и кла ь а д л уе н и е в п о -
я а д л еу н и
ы и н фу к ц и и M ATLAB, . И х о п и с а н и е с о е рд а D esktop Tools and Develй с и с етм ы . О с атн о -
Дл я вы вод а в к о м а н дн о е окн о и ме н и с п о л ь з ему ы х п ер м ен н ы х ж с л иу к ом ан д а who zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» who Your variables are: al a2 a3
о
т
л ав Г
1. рП о с т ей ш и е
К ом ан д м ен ы
вчиы с лени я
43 zyxwvutsrqpo
а whos п о з в о л яет х в в и ед та б л и ц ы
, п о лчуи т , а н а л о ги ч н о
ь бо ле й та б л и ц
е п о рд б н у е окн
ю и н фо р м а ц и ю о п ер а Workspace: zyxwvutsrqponmlkjihgfedcbaZYXW zyxwvutsrqponmlkjihgf
» whos Name Size Bytes Class al lxl 8 double array a2 lxl 8 double array a3 lxl 8 double array Grand total is 3 elements using 24 bytes К ром е то г , к о м ан д н и м ае о й всме и п ерм н ы м н ы е з а н и м а ю т 24 б а й ат Дл
я о с в о б ж ед н и и в армгу ен ат т о с в б о ж ед н
Е сл удб
а whos дае
т в о з м о ж н о ст и р аб о ч е , о че м ск аз н
ь з у н ат ь о бщ и й о бъ е . В н аш е м п р и м ер е п о д таб ли ц ей .
й с р ыед о в срто к
я и з п ам ят и в се х п е р м н ы х ку а з т ь сп и со к п ер м н ы ы и з п а м яит , н а п р и м е р
х и с п о л ь з се т у х (чер
з п р о б ел )
м п а м я ит е тр и п ерм н
я к ом ан д , т о то л ь к
, з а а c lea r . о он и
:
» clear al а З » who Your variables are: a2
О ч ен ь п о л ез н о й о к а з ы в а е ст я н фу к ц и и м я п ер м ен н о й в MATLAB. П р и в в о д к о б еи у д ь т с я в то м , ч т о э т о и м я ще е л я , н о и бы т ь в уе р н н ы м , ч т о о н о н к а к в с рт о е н н а я н фу к ц и я и л и з ар ез ер в и р о в ан н о в ан и я) . В о т п р о с т й п р и м ер . З ап и ш е 3: >> p i = sin ( 3)
я e xist , к о т р а я со б щ ает , з а н я т о л и е н ов й п ер м ен о й е с ул д т н е от л ь н е з а н ят о п о д п ер м н у ю п о л ь з о в а ет е и с п о л ь з се т у я в MATLAB (н а п р и м е р , е сло в о яз ы к а п р о гр а м и р о м в п ер м н у ю p i з н ач ен и е си н с у а о т
p i = 0.1411 Т еп р
ь п о с ч и ат й т
е cos о т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA п
» z = cos( pi) z = 0.9901 В ы ч и с л ен и я в ы п о л н ен p i. Д о ет х п о р п о к п о л ь з о в а ьт с я к о н с та н то
ы н ев р н о а з н ач ен и
, п о ск ль к у и з м ен ен а с и с е тм н а е p i н е едбу т а д л уе н о и з рабоч е й п н е уадстя . П о э т м у п ер д о п р е дл н и е
я к о н с та н т й с р е ыд
а , в о с м н ов
й
44
аЧс т ь
й ж ел ат ь н х в о вохнд о
п ер м ен н о а п о с рт о ф а
о в ы з в ат м а р мг у е н е т
ь н фу к ц и , н а п р и м е р
ю e xist , куа з а :
I. Ос но вы
р аб о т ы
в им
в MATLAB zyxwvu
я п ер м ен н о
й в
» e xist ( ' d 7' ) ans = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA О
Е сл и о тв е т — н о л ь , т о и м я эот й п ер м ен н о й н е к о н ф л и к е ут т с з а р ез р в и рован н ы м и сло в ам и M ATLAB, и е й м о ж н о п о л ь з о в а ть с я . С р а в н и ет :zyxwvuts еинечанЗ , BO3exist('max'), exist('for'), exist('pi'), exist('fzero'). в р ащ аем о е н фу к ц и е й e xist , о п р едляст я ет м , п о д о чт о з ан ят о з ап ра ш и в аем о е и мя . В ч а с нт о с ит , сле и в о з в р а щ а ест я 1, т о та к я п ер м ен н а я жу е о п р е дл н а в рабоч е й с р ед . С м ы с л в се х з н а ч е н и й о б ъ яс н е н в сп рав о ч н о й с и е мт .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е т кф Эи в н а я ра бот а и з ком а ндо (Command History)
й с т рок
и
zyxwvutsrqpo
В рабоч е й с р ед е M ATLAB лд я в ы з о в а ран е е в е дн н ы х к ом ан д и м се т я од п о л н и ет л ь н о е уод б н о е с р е дв т о — о к н о Command History с и сот р и е й к о м а н д (см . р и с . 1.1). И с то р и я к ом ан д п р е сд а т в л я е т со б й з ап и с ь к ом ан д в се х п р о в е дн н ы х с еа н с о в работ ы с M ATLAB, к о т р ы е а в от м а ит ч е с к и с о р х а н я ю ст я в ет к с о в м фа й л е history.m. В н ач л е п роткол а работ ы к а ж до г о с еа н с а а ег о н а ч л а . М о ж н о о кт л ю ч и т ь з ап и с ь в о ди м ы х ко о мт е ч н ы в р ем я и да т м ан д в и с от р и ю к ом ан д . Д л я н а срт о й к и в о з м о ж н о с ет й окн а Command History в ы б е р и т е п ну к т Preferences в мне ю File р а б о ч е й с р е ыд . О кт р ы в а ест я ди а л о г в о е окн о Preferences. В ы б о р п ну к т а Command History в л ев о й п ол ви н е окн а п р и в о ди т к о т б р аж ен и ю св о й ст в окн а и с от р и и к ом ан д (Command History Preferences) в п р а в о й п ол ви н е о к н а Preferences. Э лем н т ы пу р а в л ен и я р асп о л ж ен ы н а в ду х п а н ел ях : Settings и Saving. В слчуае , сле и в ы п р е дп о л а г е т е и сп о ль з о в ат ь и с от р и ю к ом ан д п р еыд щу и х с еа н с о в рабо ты , ест ь см ы с л о б р а ти т ь в н и м ан и е н а дв а з н ач ен и я п ер к л ю ч аетл я . О нд о и з н их : Save history file on quit, т . е . сорхан ен и е и с от р и и к ом ан д п ер д з а в ер ш е н и е м с еа н с а работ ы с п а к е то м . С елуд т и м ет ь в в и уд , ч т о в счлуа е ав ри й н о г о з ав ер ш ен и я работ ы и с от р и я к ом ан д н е з а п и ш ест я в фа й л history.m и , с л е до в а ет л ь н о , в едн н ы е к о м ан д ы удб т н еод пс у т н ы в ю с ул е д щ е м с еа н с е р а б о ты . Н а и б о л е е б ез о п ас н ы й сп о с б со ти т в с у ат н о в к е к о л и ч е с вт а вы п о л н ен н ы х к ом ан д , п осл е котрог о п р о и з о й де т о б н о в лен и е фа й л а history.m (Save after ... commands). Н а п р и м е р , з н ач ен и е 1 га р н ти р еут , ч т о н и о нд а к о -
л ав Г
1. рП о с т е й ш и е
м а н да фл а го
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB 45zyxwvutsrqpo
вчиы с лени я
, к р о м е в и п ер к лю ч аетл
, бы т
ь м о ж ет
, п ослнед й се я
й н е бед у н и з и х наз в а н и я
т п о ет р я н а
. С м ы с
л о с ат л ь н ы
х
.
П р и з а г р зу к е MATLAB о к н о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK Command History п о яв л ест я н а э к ран е п о му о л ч а н и ю . Ч то б ы з ак ры т ь е го , н ж у о в м не ю Desktop в ы б р а т ь п ну к т Command History и л и н а ж т ь кн оп к у з а к р ы ти я окн а в сам о м окн е Command History. П о в то р н ы й вы бо р п ну к т а Command History п р и в о ди т к п о яв л ен и ю й с р ед . о дн о и м е н н о г о о к н а в р а б о ч е
И с то р и я к ом ан д ед л а т работ у п о л ь з о в а ет л я бо ле е э ф е к ит в н о й , и з б а в л я я о т н е о б х ид м о с т и вн ов ь н аби рат ь в е дн н ы е ран е е к о м а н ды . Е сл и щ ел к о к о м а н д е в о к н е лев о й кн оп ко й м ы ш и , т о да н н а я к о м а н н т у ь н а к а к о й - л и б д а с ат н о в и ст я е тк щ у е й . Т екщу а я к ом ан д а в окн е п осдв еч н а си н и м . Д л я е е в ы п о л н ен и я н ад о п р и м ен и т ь дв о й н о й щ ел ч о к мы ш и . Ан а л о ги ч н о г о р е з л уь е Command History п р и п о м щ и к лав и ш < Т > , zyxwvutsrqp та а м о ж н о до б и ь т с я в окн и < Enter> . Ли ш н ю ю к о м ан д у м ож н о бур а т ь и з о к н а . Д л я э то г о е е н а д о ь п р и п о м щ и к лав и ш и . М о ж н о в ы ед с едл а т ь е кщ т у е й и уадли т о п ят ь к о м а н д ) с ли т ь н ес к о л ь к о ищ уд и х п о др я д к о м ан д (ри с . 1.8 — в ы едл н и сп о ль з о в ан и е м к о м би н ац и и к лав и ш + , + l> и в ы п о л н и т ь и х п р и пом щ и < Enter> , и л и адлуи т ь к лав и ш е й .zyxwvutsrqponmlkjihgfedcb
Command HistoryzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB 100000/3 - 1/3000 - FORMAT LONG E
exp(- 2.5)*log(11.3)*0.3- sqrt> sa = size(a) sa = 3 1
Н а п ер в ы фо р м а ц и р а к ет р и с ит к л д я ад л ь н е й ш е г н ы х п р и л о ж ен и
й в з гл я ю окн
д м ож е т п о к а з а ть с я а Workspace. О дн а к и м ас и в о в в к о м а н дн о о и сп о ль з о в ан и я й в M ATLAB.
, ч т о ndims и size ли ш ь б ду л и р ю у о он и п о з в о л яю т н е то л ь к о в ы в ес т е окн о , н о и з а п и с а т ь и х в п ер м ен н ы , ч т о щсу евстн о п р и с о з ад н и и с о б в тен
т и н и ах е -
В ав ег л 1 б ы л о з ам еч н о , ч т о ч и сл а в MATLAB п р есдатв л яю ст я в в и ед дву м ер н о г о м ас и в а о ид н н а о ид н . Т еп р ь до л ж н о бы т ь п о н я тн о , п о ч ем у п р и с л о ж ен и и в е к то р о в и с п о л ь з ес т у я то т ж е з н а к п лю с , ч т о и дл я сло ж ен и я чи сел . Е сет в н н о , лд я н оахж едн и я раз н ост и в е к то р в е с лу д т п р и м ен ят ь з н а к ми н су , с умн о ж ен и е м дел о о б с от и т н ес к о л ь к о сло ж н е .zyxwvutsrqponmlkjihgfed Пр и м е ча ни
^ л Ес
и раз м ер н е совп аюд т
е ы в е к о тр в , т о вс ытеа д
, к корыт я щ об с н е и
м п с и р н мт е я е о б ошибке
я снжоел и .
ь вс е дан н ы е в ви д О с о б ен н о с т ь M ATLAB п р есдатв л ят о ч ен ь до у б н о й . П суьт , н а п р и м е р , ртебсу я вы ч и сли т sin сраз у лд я все х э лем н от в в е к от р а с (к о т р ы й р х а н и ст з ап и сат ь р е з л у ь ат т в в ек от р d. И с п о л ь з йу т е юс л у е д щ и ван и я : » d = sin (c)
d = 0.8546 0.5010 0.5712
е и л
и вычиант и е
е м ас и в о ь з н ач ен и
в я в л се т е н фу к ц и я в м ас и в
й о п е р а то
, я и е с ) и
р п р и св аи
-
л ав Г
2. Рабо т а
И та к ви д те уд б н фу к ц и э от э л е м н от
с м ас и вам и
, в с рт о ен н ы у а р г м у е н от в имвсо ма м ещ
53 zyxwvutsrqp
е в MATLAB э л ем н атр н ы е н фу к ц и ; сел и армгуен т я в л се т я м ас и в о м гт о же а,ре азмр н о с э л е м н ат м и х э л е м н от в и с о х нд о г м п р и м ер . Е сл и н е о б х ид м о н ай т а d с о з н а к о м м и н с у , т о до с та о ч н
и о т с о в т ес ю у щ и е н а о нд о в в е к то р
и п р и с п о с а б л и в а ю ст , т о р ез луь ат , р а в н ы м о м ас и в а и к в а др тн ы о з а п и с а ть
я к и zyxwvutsrqp ю . бУеид тс ь в й к о р ен ь и з :zyxwvutsrqponmlkjihg т нфу к ц и и з н ач ен и
» sqrt(- d) ans = О + 0.9244i О + 0.7Q78i О + 0.7558i
О п е р а то ве т в сатн адр нт у
р п ри св аи в ан и ю п ер м н у
В во д в е к от р - с рт о к ч и е о т в е к от р - с от л б ц м и . О п ер а ц и и сло ж ен и я в е к от р - с рт о к п р о и з в о яд с т п о лч у а е с т я в е к от р - с рт о к
я н е и сп о ль з о в ался ю ans.
и о щ с у е св т л я а э л ем н т , в ы ч и ат н и
, п о э тм
у MATLAB з а п и с а л
я в к в а др нт ы х ск о бк ах т р а з ед л я т ь п р о б ел ам я и в ы ч и слен и е э л ем н атр н ы я ат к ж е , к а к и с в ек от р - с от л б ц а м и а то г о ж е р а з м е р а , ч т о и и сохнд ы е
, о дн а к
ы е су л д
а от -
о в о лт и и и л и з а п я ты х н фу к ц и й о т , в р ез луь ат е
.
» si = [3 4 9 2] si = 3 4 9 2 » s2 = [5 3 3 2] s2 = 53 32 » s3 = si + s2 s3 = 8 7 12 4 » s4 = Iog(s3) s4 = 2.0794 1.9459 2.4849 1.3863 В ы я с н и ет п о ль з о в ат
, в к а и ь окн
х м ас и в а х р ха н яс т я в е к от р - с рт о к и . Д л я э то г о м ож н о ис о Workspace zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB и л и фн у к ц и и ndims, size и к о м ан д у whos:
» whos Name si s2 s3
Size 1x4 1x4 1x4
s4
1x4
Bytes 32 32 32
Class double arraydouble array double array
32 double array
5ЈzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA аЧс т ь I. Ос но вы р аб о т ы в MATLABzyxw И та к м ер н о с т от р - с рт о
, в ек от р - срт о к и оид к жс л у и
н н а ч еыт р е т в с рт о е н н а
и si, s2, s3 и s4 соедр ж аст я в вд м у е р н ы . Д л я о п р едл н и я дли н ы в ек от р - с от л б ц о я фн у кц и я len gth :
х м ас и в а в ил
х раз и век
-
» L = len gth (si) L = 4 П о му о л ч а н и ю в с е ч и сл а ьст ю (double) и з а н и м а ю т з н а ч и ет л ь н ы х о б ъ ем о в п а м я ит в ам и п а м яи т м ожн о п р и м ен ят в а : sin gle лд я в ещ есвт н н ы in t 8, i n t i 6 , in t32 — лд я в е ст н н о . И с п о л ь з о в а н и н е в ли яе т н а фну к ц и о н а л ь н ы Дл
я и з м ен ен и
С ТИПО
я то ч н о с т
(э лем н т 8 б а й то в
ы м ас и в о . Бо л ь ш и е м ас и в . Д л я м уен ь ш ен и ь дргиу е сп ос б х ч и с ел , требюу щ и ц ел ы х ч и с ел , з а н и м а ю щ и е ат к и х ад н н ы х з н а ч и ет л ь н е в о з м о ж н о с т и п ак ет
и п р е сд а т в л е н и
М ( C lass) д а н н ы
я ч и се
х ф ун к ц и
) рахн сят
я с дв о й н о
й то ч н о я р ха н е н и я а з ан и м аем о й м ас и я э л е м н от в м ас и я р аз м ещ ен и я 4 б а й та , и х 1, 2 и л и 4 б а й т а со т о экон оми т п а м ят ь и M ATLAB. ы тр ебюу
я о б ъ ем ы р ха н е н и х лд
а
л п р е нд а з н а ч е н
т лд
ы о нд о и м е н н ы
е
й s i n g l e , i n t 8 , i n t l 6 , i n t 3 2 :
>> q4 = s i n g l e ( s 4 ) ; >> q3 = i n t 3 2 ( s 3 ) ; >> q2 = i n t l 6 ( s2 ) ; >> q l = i n t 8 ( s i ) ;
Е сл и теп р и т ь щ с у е вс т н у >> whos Name ql q2 q3 q4 si s2 s3 s4
ь п о с м о рт е
ь р а с п р едл н и ю раз н и ц
у в овтедн н о
Size 1x4 1x4 1x4 1x4 1x4 1x4 1x4 1x4
я м ас и в о в бо ль ш о й р аз м ер н о с т в ен н о й . В ы п олн ен и е а р и фм и е т ч с к и раз н ог о ти п а доп сиут м о и дае >> qs44 = q4 + s4; >> whos qs44
е п ам ят и по й дл я рхан ен и
д м ас и в ы я п а м я ти
, т о л егк о з ам е :zyxwvutsrqponmlkji
Bytes Class 4 int8 array 8 intl6 array 16 int32 array 16 single array 32 double array ќ 32 double array 32 double array 32 double array
Дл
т резльуат
и экон ом и х о п ер а ц и т с н аи м ен ь ш е
я п а м ят и м ож е й с в е щ ев с т н ы м й точ н о сьт
т бы т
ь щ ус т е и ч и слам и ю — sin gle:
л ав Г
2. Рабо т а
с м ас и вам и
Name
Size
qs44
1x4
55zyxwvuts
Bytes Class
16 single arrayzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
ь а р и ф м еит ч е с к и е о п ер ац и и н а д ц елы м и ч и слам и раз н ы х П о п ы тк а в ы п о л н и т ит п о в п р и в о ид т к о ш и б к е : >> q31 = q3 + ql ??? Error using = = > plus Integers can only be combined with integers of the same class, or scalar doubles. Бо л е е то г , п р и п р е о б р а з о в а н и л ен и я н е в ха т е т о вт ди м о да н н о г о ти п а (т . е . н ев р н ы » wl = 34567; >> rl = int8(wl) rl = 127 >> tl = intl6(wl) tl = 32767 П оэ тм л ен и я п р и н я от
у п р и м ен ен и , о гр а н и ч е н о е п о ум о л ч ан и
И з н ес к о л ь к и н ы е ск о б к
и ц ел о г
е ц ел ы . В ерн ем с
х в е к от р - с от л б ц о и и р аз едл я
о ч и сла , к о гд а лд , п очлуаест я м ак си м аль н о ) бе з п пруед ж нд и
й п а м я ит й р ез луь ат
х ч и с ел я к р а б о т
, и м ею щ и
в м ож н е в ек от р - сот лб ц
я и ос н хд ы
о п р е сд а т в е ч и сл
я о б э то м
х м ен ь ш у
е с в ек от р а м е ч и се
ю п р е сд а т в л е н и
я то ч н о г
ю от ч н о с т и и м а тр и ц а м и л double.
о с о ат в и т
ь о ди н ы то ч к о
о лд :
ь п р е сд а т в , и сп о ль з у
, и сп оль з у й с з а п я то й
я
я к в а др т :
я -
» vl = [1; 2] ; » v2 = [3; 4; 5] ; » v = [vl; v2] v == 1 2 3 4 5 Дл л яем ы
я с ц п е лн и
я векотр- рсто е в ек от р - срт о к
к а тк ж и о е д лт я ю с т
» vl = [pi p i/ 2]; » v2 = [pi/ 3 pi/ 4 p i/ 5] ;
е п р и м ен яю с т я п р о б ел ам
и ил
я к в ард нт ы и з а п яты м и
е ск обк и :
, н о сц пе
-
аЧс т ь I. Ос но вы работы в MATLAB zyxwvuts 56 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA v = [vl v2] V = 3.1416
1.0472
1.5708
0.6283zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
0.7854
З ап о м и н ат ь п рави л а с ц еп л н и я в ек отр - срто ся , до с та о ч н о п о с м о рт е ь н а в екотр - срто к м не т ы э от й б л о ч н о й с рт о к и , т . е . в ек от р - срто к и с п рав и ло м н абор л о м в с о вт е с и р а сж е н у д и е в ер н о и дл я сц еп лн и я в ек от р - с от л б ц о в Д л я п р о с м о тр в а т ь р е д а к то м ас и в а v в и н с р мт у е н о т о кт р о е ст я (ри с . 2.1). Им
к и в ек от р - с от л б ц о в н е требту у v к а к н а б л о ч н у ю с рт о к у . Э ле и vl и v2, р а з дел н ы п робе а в е к от р - с рт о к . нА а л о ги ч н о .
е
я з н ач ен и й э лем н от в м ас и в о в до у б н о и сп о ль з о а и и з м ен ен и (Array Editor). Д в а ж д ы щ ел к н и т е мы ш ь ю п о и м ен и р м ас и в о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG окн е Workspace и л и н аж м и т е кн оп к у Open Selection н а п ан ел и и к рус о р а н а и м ен и м ас и в а — в окн а Workspace п р и п о л ж ен и окн о р е д а к то р а м ас и в о в с с о е др ж и м ы м в е к от р - с рт о к и v я п р о с м а тр и в а е м о г о м ас и в а ук а з а н о в с рт о к е з а г о л о в к а о к н а .
Ш zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Array Editor - v
Stack:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML ш ш в
З а * 41 Ш
Г
1.113.1415926. .5707963.
Рис
. 2.1. О к н
6 3 j 4 j J 5 .0471975.. 0.7853981. . 0 6233185
о р е да к то р
а м ас и в о
в Array Editor
Двой н о й щ ел ч о к мы ш ь ю п о яч ей к е и л и н аж ит е к лав и ш и < F 2> (к а к и в та б л и ц а х MS Excel) п о з в о л яе т р е д а к ти р о в а т ь с о ед р ж и м о е с о в т ес ю у щ е г о э л ем н т а м ас и в а . Убеид тс ь в э то м , и з м ен я я з н а ч ен и я э л ем н от в и в ы в о д я м ас и в в к о м а н дн о е окн о . П р и з а п о л н ен и и п ыс т у х к л ео т к и з м е н я ю ст я р аз м ер ы м ас и в а та к , ч т о о н о сате я п р я м о гу л ь н ы м н аи м ен ь ш е й р а з м е р н ост и и с о едр ж и т вс е о п р едл н н ы е э л е м н ыт . П р и э от м н е о п р едл н н ы е п о л ь з о в а ет л м э л ем н т ы п р и о б р е та ю т н л е ув о е з н ач ен и е . Д л я умен ь ш ен и я р аз м ер о в ес л у д т и сп о ль з о в ат ь э л ем н т пу р ав л ен и я Delete (в к о н етк с нт о м
л ав Г
2. Рабо т а
ил и ок н н о ид т л и ш Дл
с м ас и вам и
м м не ь к о бн леун и
я работ
лд
я ч ег в с п л ы в аю щ ег и м ен н о г т е в сат к П р о в ер ь т Р е да к о т ных . Д в о й н о н и ю н ов г ит в н ы м вы бра в р м у е н от ед р ж и м ы в о в о к а з ы в а е ст (о лтакд
р м ас и в о
и н а п ан ел ю э л е м н от
о окн п р и п ом щ ег о н а з в а н и в с о вт е с ю у м м ас и в о е п р о гр а м
и и н с рт м у е н от в ) в м ас и в а
п к э лем й ат , з а к л ю ч а ем о г я в е к то р й в ек от р - срт о к
т п р о с м а тр и в а т
ь з н ач ен и я н еск о ль к и х п ер м н е с vi в о к н е Workspace п р и в о ди т к п о яв л е а в р е да к то р е м ас и в о . К аж од е и з ок н м ож н о с едл а т ь ак и с о в т ес ю у щ е й в к лад и вн и з у окн а р е д а к то р а ил и е в мне ю Window. К н о п к и в п рав о й ч аст и п а н ел и и н ст т раз ли ч н ы м сп ос ба м р ас п о л ж ен и я та б л и ц с со в в окн е р е да к то р а Array Editor. Т ак ж е р е д а к то р м ас и я о ч ен ь п о л ез н ы м п р и о л т а кд е с о б втен н ы х п р о гр а м м м п о с в ящ е н zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED р.азд "Дгвоая ил к а д тло пм"гамор гавы л 8).zyxwvutsrqp
м в е к от р . Е сл
м вет кор а и л и в ек отр - срто к о в к рг л у ы е ск обк и с р ед и п ер м н ы й
v = [ 1 . 3 З . б 7 . 4 8 . 2
т о лд :ацсия
я о б р ащ ен и я
.
к п о с рт о к
е к э л е м е нт а
Д о с ут и н ед к с а р х а н и ст р е дл н н ы
, а н е zyxwvutsrqponmlkjihgfedcbaZYXW Cut, к о т р ы й п ри во -
т воз и р е д а к то р м ас и в о в MATLAB п р еод сатв л яе е MS Excel. вУели ч ь т е л ди н у в е к от р - с рт о к и v д о 10, е п я т ь е е э л е м н от в , ск о п и рйу т е и х п р и п ом ощ и (и л и к н о п к и ро С у п а н ел и и н с рт м у е н от в , и л и о нд о ю Edit), седлай т е ще к т у е й ш у ес т ю яч е й к у и и сп о ль з йу б ду л и р о в а н и я п ер в ы х п ят и э л е м н о т в в е к от р - с рт о к и . и к о м а н дн о г о о к н а и з м ен и лс я л и в ек от р у .
в п о з в о л яе
й щ ел ч о
О б р а е щ ни
»
ю ил
ы с да н н ы м , а н а л о ги ч н ы о в ы ед л и т е п ер в ы о м не ю о п ну к т а м не у (Paste) лд я е п р и п о м щ
м о ж н о с ит
57__zyxwvutsr
, н а п р и м е р
а и п о сл х рабоч е
и о щ с у е св т л я е и м ен й с р ед
я пр и м ас и в а ы с ет
ь м ас и
и п о м о щ , в к о т р о
и м в v, оп
-
0.9];
, к ч евт ро м
у э л ем н т
у и с п о л ь з ес т у
я к е - и дн
» h = v(4) h = 8.2000 кУ а з а н и е э л ем н т ид т к и з м ен ен и
а м ас и в ю в м ас и в
а в л ев о й ч аст и о п е р а то р а п ри св аи в ан и я п ри во е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
» v(2) = 555 v = 1.3000 555.0000 7.4000 8.2000 0.9000
58_
аЧс т ь
И з э лем н от
в м ас и в
а м ож н
о фо р м и р о в а т
ь н овы
I. Ос но вы
в MATLAB zyxwvutsrq
работы
е м ас и в ы
, н а п р и м е р
:zyxwvutsrqponml
» u = [v(3); v(2); v(l)] u - ; 7.4000 555.0000 1.3000 Дл
я п о м ещ ен и н о м п о р я кд в е к от р - срт о к ю с ул ед щ и
я о п р е дл н н ы х э л е м н от в в е к от р а в др г у о й в е к то р в з а дн е жс л у и т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA к е а ц с и я дн пир ищ о мпо вак.ерто Н ап р и м ер , з ап и с ь в у w ч е тв р то г , в то р о г о и п я от г о э л е м н от в v п р о и з в о ид ст я м образ ом :
» ind =[4 2 5]; » w = v(ind) w = 8.2000 555.0000 0.9000 MATLAB п р едо с атв л яе ет л ь н о р ас п о л ж ен н ы ж с ли у т к е а ц с и я дн н о й в ек от р - с рт о к с о в то р о г о п о ш ес от й и н а гл янд о р еш и т
т о д бу н ы х э л е м н от пир пищ о м о занк е w и з сме и э лем н от . И н едк с а ц и ь п о с ат в л е н н у ю
й сп ос в в е к от р
б о б р ащ ен и а ил д.иячтево
в требсту я п р и п о м о щ з адч у :
» w = [0.1 2.9 3.3 5.1 2.6 7.1 9.8]; » w(2:6) = 0; » w w = 0.1000 0 0 0 0 0 П ри сваи ван и
е w(2:6) = о
я к блок а и в е к от р - с рт о к и П р е дп о л ж и м я з ам ен и т и дв о ет ч и
ь н л ям у я п о з в о ляе
м п о с л ед в а . Д л я э от г , ч т о в з адн и э л е м н ыт т п рост
о о
9.8000
э к в и в а л е н нт
о п о с л е до в а е т л ь н о с т
и
д zyxwvutsrqp
к ом ан
w(2) = 0; w(3) = 0; w(4) = 0 ; w(5) = 0; w(6) = 0. И н де к с а ц и ч аст
я пр и и з б о л ь ш о г
и п ом ощ о о б ъ ем
и дв о е т ч и а да н н ы
я о к а з ы в а е ст х в н о в ы
й м ас и в
я од у б н о :
й пр
и в ы ед л н и
и
» w = [0.1 2.9 3.3 5.1 2.6 7.1 9.8]; » wl = w(3:5) wl = 3.3000 5.1000 2.6000 С о с та в ь т п о л ь з йу т
е в е к от р - с рт о к е дв о е т ч и
у w2, соедр ж ащ у е и сц еп лн и
» w2 = [w(l:3) w(5:7)]
е срт о к
ю э л ем н т :
ы w к р о м
е ч е тв р то г
. И с
-
л ав Г
2. Рабо т а
с м ас и вам и
59 zyxwvuts
w2 =
0.1000 2.9000 3.3000 2.6000'7.1000 9.8000zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
В м ес т о w ( 5:7) м о ж н с я э л ем н ыт , н ач и н а ст о w ( end), т о п очлуи
о н ап и сат я с п яот г м п о с л ен д и
ь w(5: end). Т а к я з ап и с о и з а к н ч и в а я п о с л е нд и м й э лем н т м ас и в а :
ь о з н ач ет . Е сл
, ч т о бтеру и ж е ввест и п ро -
-
» w(end) ans = 9.8000 Е щ е оид н сп о с в р.азд "Лкегсоич Э л ем н т с р ен д е г ю уд щ и
б и н ед к с и р о в а н и ивкаоиен"рс д
ы м ас и в о г е о м е рт и ч е с к о г м образ ом
я — ло ги ч ес к о йа он д
а м о гу
т в о хи д т о и з э л е м н от
е и н ед к с и р о в а н и
е — о п и с а
н zyxwvutsrqp
г.авы л
ь в в ы р аж ен и я в в е к от р
. В ы ч и слен и е а и м ож н
, н а п р и м е р о п р о де л а т
, ь с ле
-
:
» gm = (u(l)*u(2)*u(3)) A (l/ 3) gm = 17.4779 К о н еч н о , э от б ы н ай т и с р н ед м ен т ы м ас и в а нф у к ц и й , о б легч аю щ и
т сп о с
б н е оч ен ь о бд е у н л д я лд и н н ы е г е о м е рт и ч е с к о е , н ео б хид м . В MATLAB щсу евт т д о с та о ч н х п одбн ы е в ы ч и слен и я
е фицунк
рП и м е н и обр а бот к П ер м н о ж ен и с я п р
и п о м щ
и дыан
й х к ве тк ора
е э л е м н от и фн у кц и
в в е к от р - с от л б ц и prod:
х м ас и в о
. Д л я то г о чот ь в фо р м л у е в с е э ле о м н ог о с п ец и а л ь н ы х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ о н абрат
м а ил
и в е к от р - с рт о к
и о щ с у е св т л я
-
» z = [3; 2; 1; 4; 6; 5]; >> р = p r o d ( z ) Р = 720
Зн а м р е ти ч е с к о
я о б э от
'
й нф у к ц и е э л е м н от
, н есло ж н в в е к от р
о д о г а д ть с я а z:
л >> gm = prod(z) (1/length(z)) gin. = 2.9938
, к а к п р о с т
о н ай т
и с р н ед
е ое г
-
60
аЧс т ь
Ф ну кц и йб у т
я sum п р едн а з н а ч ен
е с а м о с т яел ь н р а z. П р о в е р ь т в срт о е н н у
а лд о в ы ч и сли т е р е з л у ь ат
ю нфу к ц и
я сму и р о в ан и ь с р н ед
I. Ос но вы
работы
я э л е м н от
в в е к то р а е э л е м н от
е а р и ф м е ит ч е с к о
, в ы ч и сли в с р нед е а р и ф м е ит ч е с к о е ю mean. В о т ч т о до л ж н о п о лч у и ь т с я
в MATLAB zyxwvutsr
. П о п р о в в е к от
-
, и сп о ль з у я :zyxwvutsrqponmlkjihgfedcba
>> sum(z)/length(z) ans = 3.5000 >> mean(z) ans'=zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ш 3.5006 * Д л я н оа х ж е д н и в с рт о е н н ы >> М
я ми н и му е фну к ц и
а и м ак си м у и min и max:
а и з э л е м н от
в в е к то р
а сж л у а
т
= m a x( z )
М = б »
m = m i n ( z )
m = 1
Пр м ен от э л е м н от
и о б р ащ ен и
»
р = [3 12 8] ;
в п о лч у и с т в и оснхд ы
и к фн у к ц и я в е к то р х в е к то р
»
S = [4 10 7 ] ;
»
m i n ( p , s )
и min с дмву , к аж ыд й э л ем н в с о ди н а к о в ы м
я в е к от р а м т котрог и н о м е р а м и
и в к ач есвт о ес т
е в о х нд ы ь ми н и му
х а р уг и з дву
х
.
a n s = 3 10 7
Ча с т о н е о б х ди м о з н ат н о г о э лем н т а в м ас и в е л и , ч т о и н етр ф й с фн у к ц и вст о и з н и х до п сук а ю в ы о х нд ы х а р г м у е н от в В ы з ови т
е нфу к ц и
ь н е то л ь к о з н ач ен и е м и н и м аль н о г о и л и м ак с и м ал ь , н о и ег о и н екд с (п о р ядк о в ы й н о м ер ) . В ы уж е ви ед й MATLAB до с та о ч н о н у и в ер с а л е н — б о л ь ш и н т о б р ащ ен и е к н и м с п ер м ен н ы м ч и сло м в о х нд ы х и .
ю min с двму
я в ы о х нд ы м
и а р г м у е н ат м и
:
>> [m, k] = min(z) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA т = 1
к = 3
л ав Г
2. Рабо т а
В р е з л у ь ат м ен т а м ас и в
с м ас и вам и
61 zyxwvutsrq
е п ер м ен н о а z, а н о м е
й m бед у р м и н и м аль н о г
т п р и с в о ен
о з н ач ен и о э лем н т
а з ан ес
е м и н и м аль н о г н в п ер м н у
о э ле ю к .
К а к ж е з у н а ть , к а к и м ен н о м ож н о в ы з ы в ат ь нф у к ц и ю . Д л я б ы с тр о г о п о лу ч ен и я п о сд к а з к и е ус л д т н абрат ь в к о м а н дн о й с рт о к е h elp и ч ер з п робе л и м я н фу к ц и , MATLAB вы вед т в к о м а н дн о е окн о в с ев о з м о ж н ы е сп ос б ы о б р ащ ен и я к фн у к ц и и с до п о л н и етл ь н ы м и п о яс н ен и ям и . Ан а л о ги ч н ы е вс е е нд и я м ож н о н ай т и в и н ет р а к ит в н о й сп рав о ч н о й с и е мт , к о т р о й в ы жу е ав ыг л 1. Е сл и и з в е сн т о и м я нфу к ц и , т о п р о щ е п о ль з о в али с ь п р и ч е нт и и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в с ег о в о с п о л ь з о в а ьт с я и н е кд с н ы м п о и ск о м (в к лад а zyxwvutsrqponmlkjihgfedcbaZYXW Index в лев о й ч аст и ок н а сп рав о ч н о й с и ем т ы MATLAB). В срто к е в од а Search index for: е сулд т н абрат ь и м я нф у к ц и , н а п р и м е р , min, з ает м в л ев о м окн е вы брат ь р а з де л MATLAB и о з н а к о м и ьт с я с с о е др ж и м ы м п равог о окн а . И н фо р м а ц и я об о в с е х н фу к ц и я х MATLAB лд я р а б о т ы с в ек от р н ы м и и м арт и ч н ы м и да н н ы м и с о е др ж и с т я в пну кт е Arrays and Matrices п о др а з дел а Mathematics р а з де л а Functions — Categorical List (в к лад а Contents). В ч и сл до ч е н и
о осн овн ы я в е к то р
х н фу к ц и а п о в о з р а с т н и
й дл
я работ ы с в ек от р а м ю ег о э лем н от
и в о х ид т н фу к ц и я уп о р я в so r t .zyxwvutsrqponmlkjihgfedcbaZYX
» г = [9.4 - 2.3 - 5.2 7.1 0.8zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG 1.3]; » R = sort(г ) R- 5.2000 - 2.3000 0.8000 1.3000 7.1000 9.4000
П о п р о б йу т so r t . П р а в и л ь н ы
е п у о р я до ч и т й овте
ь в е к от :
р п о бу ы в а н и ю
, и сп оль з у
я э т у ж е н фу к ц и
ю
» Rl = - sort(- r) R1 = 9.4000 7.1000 1.3000 0.8000 - 2.3000 - 5.2000 п У о р я до ч е н и п р и в л еч н и е
е э л е м н от м в ы ш ео п и с а н н о
в в п о р ядк
е в о з р а с т н и й фн у кц и
я и х мл е оу д
й п р о и з в о д и ст
я с
и abs:
» R2 a sort (abs (г ) )
,;
R2 = 0.8000 1.3000 2.3000 5.2000 7.1000 9.4000
Вы зо си в во
в so r t с дмву а и н едк с о в с о вт е с и :
я в ы о х нд ы м
и а р мг у е н а т м я э л е м н от
и п р и в о ди в п у о р я до ч е н н о г
» [rs, ind] = sort(r) rs = - 5.2000 - 2.3000 0.8000 1.3000 7.1000 9.4000
т к о б р а з о в а н и о и и с о х нд о г
ю м ас о м ас и
-
62
аЧс т ь
I. Ос но вы
в MATLAB zyxwvutsr
работы
i n d = 3 2 5 6 4 1
Р а в е н свт м ас и
о г (ind (к ) ) = rs(k) лд я к о т 1 д о len gth (г ) св яз ы в ае в г , уп о р ядо ч ен н ы й rs и м аси в и н едк со в in d .
Е сл и а р мг у е н о т п л ек с н ы х ч и с ел п о м л оу д ю э л ем н т то р п о м олуюд к е в о з р а с т н и я
м н фу к ц и , т о р ез луь ато . Ф ну к ц и , а к о м п о н ен т фа з .
й max и min явлсет м яв л с ет я м ак си м аль н ы я so rt атк ж е п у о р я до ч и в а е ы с р а в н ы м и м л яоу д
я в е к то р
т и о с н дх ы
, со тящ и й и л и м и н и м аль н ы т к о м п л ек с н ы и р а с п о л а г ю тс
й
й и з ком
й
й вке
-
я в п о р яд
-
В ч и сл о в с рт о е н н ы х н фу к ц и й вохядт : ид с к р ент о е п р ео бр аз о в ан и е Ф р уь е — f ft, св еркт а — conv, р а б о т а с о з квуо м — sound и м н о ги е дргуи е . П о др о б н о о н и х н ап и сан о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ине жо иплр 1. С а м о с т яел ь н о о н фу к ц и я х о б р а б о тк и ад н н ы х м ож н о з у н а ьт , н а б р а в в к о м а н нд о й с рт о к е к о м ан д у h elp datafun и л и о б р а ти в ш и с ь к пн у кт у zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF Data Analysis and Fourier Transforms п о рд а з едл а Mathematics р а з де л а Functions — Categorical List и н етр а к ит в н о й сп рав о ч н о й с и ем т ы M ATLAB. В п осюлуед щ и х р а з ед л а х о п и сан о п р и м ен ен и е фн у кц и й о б р а б о тк и да н н ы х к м арти ч н ы м да н н ы м .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
Пр и м е ча н и
е
Д о п л н и ле ь т н ы е н ц ку ф и и с жр т а е о д я в с п ц е и ал з и р о в ан ы К о м ан д а h elp st a t s вы иод т в к о м ан д о е окн н у фк ц и й , п ну отсыд х в . MATLAB, л с е и анст уовк Statistics Toolbox. оелБ е п р о бн д у ю и н о р фм ца и р аз ле д а Statistics Toolbox и н реактвн о й сп равочн о
о э П л е м е нт ы
е опе ра иц
и с ве тк ора м
В п рыед щ у и х р а з де л а х в е к от ит ч ес к и х фн у к ц и й , р ез луь ато ным и з н ач ен и я м н фу к ц и и о т р а . Т а к и м образ ом , п р о и сохид л фн у к ц и . В эот м р аз едл е п о др о б н работ ы с в е к то р а м и , к о т р ы о п р е дл н и я со бсвтен н ы х н фу к ц и В в еи д т
е вд е в ек от р - с рт о к и
» vl = [ 2 - 3 4 1]; »
v2 = [ 7 5 - б 9 ] ;
:
р и сп о ль з о в алс м котры с о в т ес ю у щ и
и х яв л с
о е тн о м е л э п о о о п и сан е п о н а од б я с т й и п о срт ен и
х Toolbox. о пс и о к и т кс а ч е х а MATLAB вклю чеа т ю м жо н о п очре н т у ь и з й смиеы тс .
я в к ач есвт я в е к от х э л е м н от в ы ч и с л ен и ы воз м ож н ост я в ад л ь н е й ш е м я и х г р а ф и к о в
е а р гм у е н т р с э л ем н ат м и в и с о х дн о г е в ы з ы в аем о и п о э л е м н нт о , в ч а с нт о с ит .
а м еа т
, р а в
-
о в е к от
й й , лд
я
л ав Г
2. Рабо т а
с м ас и вам и
я . * (н е в сатв ляет у м ун о ж ен и я в е к от р с э л е м н ат м и в и осндх ы х в е к то р в
О п ер ац и п о э л ем н т о м ч л у а се т э л ем н от
63 zyxwvutsrq
е п робе ю в е к от р
л жм д е
у от ч к о
й и з в ез до ч к о й ! й дл и н ы
в о ди н а к о в , р а в н ы м
) п р и в о ди
т к
. В р ез луь ат ю с о вт е с ю у щ и
и п р о и з в е дн и
е п ох
:
» u = vl.*v2 u = 14 - 15 - 24 9 Пр
и . Л ощсу есвтля
и п о м щ р = vl .
»
/ N
я п о э л ем н т о
е в о з в едн и
е в сетп н ь
:
2
Р = 4 9 16 1
П о к а з а ет л с е пт н ь рав н у
. П р ю с о в т ес ю у щ е м
»
м епс т н и эот
и м ож е м к а ж ыд
т бы т й э л ем н у э л ем н т
ь в е к от т п ер в о г у в то р о г
р от й ж е дл и н ы о в е к то р о в е к то р а
, ч т о и в о з в о ди м ы а в о з в о ид с т :
й в я в с етп н ь
,
/ 4 Р = vl. v2
р = 1 2 8 . 0 0 0 0 - 2 4 3 . 0 0 0 0 0 . 0 0 0 2 1 . 0 0 0 0
Д ел н и с те
е с о вт ес ю у щ и я с и с п о л ь з о в ан и е
х э л е м н от в в е к от р в о ди н а к о в й дли н ы в ы п о л н я м . / zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
» d = vl./v2 d = 0.2857 - 0.6000 - 0.6667 0.1111 О б р а тн о о вт ес ю у щ и
е п о э л ем н т о
е дел н и е э л е м н ыт
п ер в о г
е (делн и ) ощсу есвтля
е э лем н от я пр
в в то р о г и п о м щ
о в е к то р и . \
а н а со -
>> dinv = vl.\v2 dinv = 3.5000 - 1.6667 - 1.5000 9.0000 И та к б ей вог
, то ч к а в MATLAB и сп о ль зсету , н о и дл я куаз н и я то г о , ч т о едл н и о р а з м е р а до л ж н о бы т ь в ы п о лн ен
К п о э л ем н т ы то р а и ч и с л ч и сл о к кажодм н ия :
м о нт о с ят а н е п р и в о ди у э л ем н т
» v = [4 6 8 10]; » s = v + 1.2
я и о п ер ац и т к с о б щ ен и у в е к то р а
я н е то л ь к о лд я в о д а ед с я и т ч н ы е и л и умн о ж ен и е м ас и в о о п о э л ем н нт о .
х др о
-
в о ди н а к о
и с в ек от р м и ч и с ло м . С ло ж ен и е век ю о б ош и бке . M ATLAB п р и б а в л яе . Т о ж е сам о е с п р а в е лд и в о и дл я в ы ч и ат
т -
64
аЧс т ь
I. Ос но вы
р аб о т ы
в M ATLAB zyxwvutsrq
s = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
5.2000 7.2000 9.2000 11.2000 » si = 1.2 + v si = 5.2000 7.2000 9.2000 11.2000 » г = 1.2 - v г = - 2.8000 - 4.8000 - 6.8000 - 8.8000 » rl = v - 1.2 rl =
2.8000 4.8000 6.8000 8.8000zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG мУ н о ж а т
ь в е к то
р н а ч и сл
о м ож н
о к а
к с п р а в
, та
к и слев а:
» V = [4 6 8 10]; »
р = v * 2
Р = 8 1 2 1 6 2 0 »
p i = 2 * v
p i = 8 1 2 1 6 2 0
Дели т
ь пр
»
и п о м о щ
и з н ак
а / можн
о в е к то
р н а ч и с л о
:
р = v/ 2
Р = 2 3 4 5
П о п ы кт
а делн и
я ч и сл
а н а векотр- рсотк
у п р и в о ид
т к со бщ ен и
ю о б о ш и бк е
:
» р = 2/v ??? Error using ==> /
Matrix dimensions must agree.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
JT
Пр и м е чан и
е
П р и де л н и и ч и сл а н а в е к то р - с то л б е ц со бщ ен и е о б ош и бк е н е в ы да е тс я . Э т о св яз ан о с те м , ч т о в да н н о м с лчу а е п р о и с ох д и т р еш ен и е с и с ет м ы л и н ей н ы х ру а в н е н и й с п р я м о уг о л ь н о й м а тр и ц е й , в к о т о р о й ч и сл о н еи з в ес т н ы х п р е в о с ох д и т ч и сл о ру а в н е н и й . Р еш ен и е с и се т м ли н ей н ы х ру а в н е н и й раз обран о в гzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ав е л 6. Е сл з ул ь т а
и т р е б уе т с т в н овы
я р а з де л и т й в е к то р
ь чи сл , т о с л е ду
о н а к а ж ды т и сп ольз оват
й э лем ен
т в е к то р ь оп ерац и
а и з ап и сат ю . / .
ь ре
-
л ав Г
2. Рабо т а
с м ас и вам и
65zyxwvutsrq
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA w = [ 4 2 6] ; »
d = 12. / w
d = 3 6 2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Вс е в ы ш ео п и с а н н ы в е к от р - с от л б ц а м Р аз б ер м то р э л е м н ат м е лд я с т йв аоынипртс п р и м ер
е о п ер ац и
и п р и м ен и м
ы к а к к в е к от р - с рт о к а м
, ат к и к
.
, к а к п р а в и л ь н ы в M ATLAB. Д л и (в ч аснт о ст я к а к в е к от р - с рт о к
о тр а н с п о н и р о в а т ь и в ы ч и с л ят ь с о п р яж ен н ы е в ек я в е к то р - с то л б ц а м , к п ри м ер у с трем я к о м п лек с н ы м и ыне ж япрос к н ме у и* о п р е и и с в ещ есвт н н ы м и ) , йzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ а и з ег о к о м п л е к с н о - с о п р я ж е н н ы х э л е м н то в , а и Т — п р о с т о к а к в е к от р - с рт о к а и з ег о э л е м н от в , н а :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
"2 + 3/" 1- 2/
т , и * = [2- 3/ 1 + 2/ 3- 2/ ], и = [2 + 3/ 1- 2/ 3 + 2/ ].
3 + 2/ нА а л о ги ч н с тр о к и то л ь к со в п адю т
о о п р е дл я с т , п р и в о ядщ е о и з дей свти етль н ы .
Д л я н о а хж е д н и а дл я тр а н с п о н и р о в а н и
я с о п р яж ен и е к в е к от р - с от л б ц у х ч и с ел я с о п р яж ен н о г
, о п ер а ц и о в е к то р т п р и м ен ят
я се улд
е и тр а н с п о н и р о в а н и . Я с н о , ч т о лд и с о п р яж ен и
е лд я в е к то р о в я и тр а н с п о н и р о в а н и
я в е к от р , со тящ и
х я
а в MATLAB и сп о ль з есту ь точ к у с а п о с тр о ф м
я а п о с тр о ф , :zyxwvutsrqponmlkjih
» и = [2 + 3i; 1 - 2i; 3 + 2i]; » V = U' V = 2.0000 - 3.0000i 1.0000 + 2.0000i 3.0000 - 2.0000i » v = u.' V = 2.0000 + 3.0000i 1.0000 - 2.0000i 3.0000 + 2.0000i
О п ер ац и з л у ь ат м ж ен и
f
и . и ' н а д в ещ есвт н н ы м . П о э л ем н нт ы и все й к н и ги .
о Пс т р о е ни О от б р а ж е н и н еб о л ь ш о
е в ы ч и с л ен и
е т албиц е н фу к ц и е к о л и ч е с вт
и в е к то р а м я с м ас и в ам
и п р и в еу д и и с п о л ь з ю у ст
ы зна еч ни и в ви д о з н ач ен и
е та б л и ц й фну к ц и
т к о ди н а к о в ы
й фицунк ы до у б н о
я н а п р о ят
-
и , сле
.
м ре -
и и м се т
я с р а в н и ет л ь н
о
66
аЧс т ь
П сту
ь требсту
я в ы в ес т
е о к н
о таб л и ц
в MATLAB zyxwvutsr
работы
у з н ач ен и
й фн у к ц и
и
/ ч sin х zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH - х л у( х) = + е М п д ; l + cosx х 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5. З а д ч а р е ш а ес т я в дв а э та п а .
в то ч к а 1. С о з да й т
е в ек от р - срт о к
2. В ы ч и сли т
е нф у к ц и
п о чл уе н ы ви ль н о в е к от р - с рт о к в ы п о л н я ьт с » х
и в к о м а н дн о
I. Ос но вы
у х , соедр ж ащ у
ю к о р ди н а т
ю у ( х ) о т к а ж од г
о э л ем н т
е з н ач ен и ! Н е о б х ди м
я в в екотр - срто к о н ай т и з н ач ен и и х , п о э т м у о п ер ац и я п,тнео ме лэо ка к б ы л
ы з а д н н ы а в е к то р
х от ч е к
.
а х и з ап и ш и т
е
у у . В аж н о то л ь к о с едл а т ь э т о п ра я фн у к ц и и дл я к а ж до г о и з э лем н от в и в в ы р аж ен и и л д я н фу к ц и и од л ж н ы о о п и сан о в п реыд щу и х р а з де л а х .zyxwvutsrqp
= [0.2 0.3 0.5 0.8 1.3 1.7 2.5]
х = 0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 » у = sin(x).Л 2./(1 + cos(х) ) + е( рх - ) х .*log(x
)
У = - 1.2978 - 0.8473 - 0.2980 0.2030 0.8040 1.2258 1.8764
О б р а ти есп т н в ы в о ид с т
е вн и м ан и е ь % дел н и я с о б щ ен и
, ч т о п р и п о п ы кт е и с п о л ь з о в ан и я / и умн о ж ен и я * (к о т р ы е н е о нт о с ят е о б о ш и б к е уж е п р и в о з в едн и
» у = sin(x)/42/(l + cos (х ) ) + е( рх - х
я о п ер а ц и
й в о з в едн и я к п о э л ем н нт ы м и sin(x) в к в а др а т
я в ) :
) *log(x)
??? Error using ==> Л Matrix must be square.
Д ел м а рт и с е тп н ь
о в то м , ч т о в MATLAB о п ер а ц и ц с о в т ес ю у щ и х р аз м ер о , о че м н а п и с а н о в р а з дел а х
Т абли ц н и я фну к ц и
е м ож н
о п р и да т
ь бо ле
и н еп о ср едвт н н
Л
и * и п р и м ен яю ст в и в о з в е дн и , п о св ящ ен н ы
е од бу н ы о п о д з н ач ен и ям
й лд
я ч е нт и и а р мг у е н а т
я дл
я к в а д р тн о х р а б о т я ви д
я п ер м н о ж ен и й м а рт и ц е с м а тр и ц а м и , р а с п о л о ж и :
я ы в . в з н ач е
-
>> х X = 0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 » У У = - 1.2978 - 0.8473 - 0.2980 0.2030 0.8040 1.2258 1.8764
Ча с т о трсетбу я в ы в ес т о т дргу а н а р а в н о е р ас отян и
и з н а ч ен и
е фн у кц и е (ш аг)
и в точ к а . П р епд о л ж и м
х о рт е з к а , чт о н ео бхид м
, осто ящ и
х рд у о в ы в ес т
г и
л ав Г
2. Рабо т а
а тб л и ц
с м ас и вам и
у з н а ч ен и
н о , в сет
й фн у кц и
и у( х) н
и в е к о тр - р с о т к
к о м а н дн о й с рт о к ш е . О дн а к о сл е работ а п о в в о д
67zyxwvutsrqpo
а о р те з к
у з н а ч ен и
е [1, 2] с ш аго
й а рм г у е н т
м 0.2. М о ж н о
, к он еч
-
а х = [1,1.2,1.4,1.6,1.8, 2.0] и з
и и в ы ч и сли т ь вс е з н а ч ен и я фн у кц и и та к , к а к о п и с а н о вы и ш а г е д бу т н е 0.2, а , н а п р и м е р , 0.01, т о п р есдот и т боль ш а я у в е к то р а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA х .
В MATLAB п рсеумд ортен котры х о лт и ч а ест ш аг . Д л я в о д а ат к и р а п р и в о дя т к о ид н а к о в ы
о п рост я о т п р еш д е с вю т у щ е г х в е к от р в ж с ли у м в ек от р - с рт о к а м
е с о з ад н и
е в е к то р о в о н а п о с т ян н у
, к аж ыд й э л ем н т ю в ел и ч и н у , т . е . . С юлеуд щ и е дв а о п е р а т о :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
т дв о е т ч и е
» х = [1, 1.2, 1.4, 1.6, 1.8, 2.0] 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 » х = 1:0.2:2 х = 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000
с Ул о в н
о м ож н
х = но н ь л а ч
Н е о б я з а ет л ь н ш аг ю уд щ ег
о з а п и с а т
ь
е и н е ч а н з
а р ав н ял ас о о п е р а то р
е : а ш г : ко н ч е н о
е и н е ч а н з
я о то м
ы мсу
о з а б о ит ь с ь б ы к о н еч н о м а п р и с в а и в а н и
, ч отб у з н ач ен и ю я
е
а п р е пд о с л е нд е г ; н а п р и м е р
о з н ач ен и , п р
я и
и в ы п о л н ен и
и с ле
-
» х = 1:0.2:1.9 х = 1.0000 1.2000 1.4000 1.6000 1.8000
в е к от р - с рт о к н ам
а з а п о л н и ст е з н а ч ен и е
и к о н еч н о
я д о э л е м н ат . Ш а г м ож е
т бы т
, н е п р ев о схядщ ег ь и о тр и ц а те л ь н ы м
о о п р едл н н о :
е
» х = 1.9:- 0.2:1 х = 1.9000 1.7000 1.5000 1.3000 1.1000
В сч л ау и л и р а в н
е о тр и ц а те л ь н о г о к о н еч н о м
П о п р о б йу т н аю щ и м и с е т з ап олн и т рован и я
е с а м о с то я те л ь н о з ап олн и т ь в е к то р - с то л б е ц э л е м е н та м и , н а ч и я с н л у я и з а к а н ч и в а ю щ и м и с я 0.5, с ш а го м 0.1. Д л я э то г о у с л ед ь в е к то р - с тр о к у , а з а ет м и сп оль з оват ь о п ер ац и ю тр а н с п о н и :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» х = 0
х = ( 0 :0 . 1 :0 . 5 )'
у дл
о ш аг я п о чл у е н и
а н ач ль н о я н е п ос т у
е з н ач ен и й в ек от р - с рт о к и
е до л ж н
о бы т .
ь бо ль ш
е -
аЧс т ь
I. Ос но вы
р аб о т ы
в MATLAB zyxwv
0.1000 0.2000 0.3000 0.4000 0.5000zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
О б р а ти е вн и м ан и е , ч т о э лем н т ы в е к то р а , з а п о л н я е м о г о п р и п ом щ дв о е т ч и я , м о гу т бы т ь то л ь к о в е щ е свт н н ы е , п о э тм у л д я тр а н с п о н и р о в а н и я м ож н о н абрат ь з н а к а п о с тр о ф а в м ес т о от ч к и с а п о с тр о ф м . К рглуы ск о б и и сп о ль з о в ан ы н е с лч у а й н о , бе з н и х о п ер а ц и я тр а н с п о н и р о в а н и п р и м ен и л а с ь б ы то л ь к о к чи сл у 0.5, и в р ез луь ат е в ек от р х бы л б ы с тр о к й Ш аг п о л н ен и
, р а в н ы
»
и е я .
й е ид н и ц е , одп сук ает я н е куа з ы в а т ь п р и а в от м а ит ч е с к о м за :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
х = 1:5
х = 1 2 3 4 5 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е чан и
^
е
Вы ш е м ы рсамрлеот п р и о э т м с т е а оз д с п т е ьо л з у я дл я внелы ид В ы в ие д т
е етп р
и и ц на к с е д я во к е т
ь ат б л и ц
ю пр и п омщ в с н оп я т с ы х м нэ е л о т
р и но к с е д я ннж ы у
у з н ач ен и
й фн у кц и
и двочети я
. Очвеинд о , корты
м ш оа г м .
в векорта
, чт о й ис -
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
е х sinlQx у( х) = ~ н а о рт ез к
е [0,1J с ш аго
1. С фо р м и р йу т
е в екотр - срто к
2 . В ы ч и сли т э л ем н т о
у х п р
е з н ач ен и е умн о ж ен и е)
3. З а п и ш и т
е р ез луь ат
4. В ы в еид т
е х и у .
Р е з л у ь ат
м 0.05, п р о и з в ед
т в в екотр - срто к й н а э к р а н е
» х = 0:0.05:1; » у = е( рх - ) х .*sin(10*x) X = Columns I through 7
и п о м о щ
;
е де й с в т и я и дв о е т ч и я в х (н е з а бьду т
я у( х ) о т э л е м н от .
, о т б р а ж е н н ы
» х
я сюлуед щ и
: . е и сп о ль з о в ат
ь п о-
у у . , н е оч ен
ь н а п о м и н а е
т та б л и ц у
:
л ав Г
2. Рабо т а
с м ас и вам и
69 zyxwvutsrq
О 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 Columns 8 through. 14 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 Columns 15 through 21 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 » У У = Columns 1 through 7 0 0.4560 0.7614 0.8586 0.7445 0.4661 0.1045 Columns 8 through 14 - 0.2472 - 0.5073 - 0.6233 - 0.5816 - 0.4071 - 0.1533 0.1123 Columns 15 through 21
0.3262 0.4431 0.4445 0.3413 0.1676 - 0.0291 - 0.2001zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
В е к от р - с рт о к и х и у со тя т и з дв а дц а т и о дн о г о э л е м н ат , н е п о м ещ аю ст н а э к ран е в онд у ср т о к у и в ы в о ядст я п о ч асятм . Т а к к а к х и у рха н яст в дм у е р н ы х м ас и в а х оид н н а дв а дц а т ь о ди н , т о в ы в о ядст я п о с то л б ц а м жы д й и з к о т р ы х со ти т и з о дн о г о э л е м н ат . С н а ч л а в ы в о ядст я с от л б ц П р еВ О Г н а дц а ты п ервы
я я в , к а ы с
О П О СЬМДО е Й ( C o lu m n s I t h r o u g h 7) , З а т е м — С ВГ ЬМОС О П О Ч е т ы р й ( C olu m n s 8 t h r o u g h 14) , и н а к о н е ц — с п я т н а д ц а т о г о п о дв адц ат ь й ( C o lu m n s 15 t h r o u g h 2 l ) .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
^ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П р и м е ча н и е ^Д К о л и в ч с ет р аз м е Онд и вуд о р ди н а т
м и з с п о с б о х с то л б ц о в :
» [X' yf] ans = 0 0500 0. 0.1000 Д але е в эот й гл а в ит м с я к п р о сетй ш и р о е ч ас т о я в л се т з н ач ен и й .
о эмлен овт и окн а и формат в п о чл у е н и , п ерв ы
, вы иводмы
х в он д а дан ы х
м вы вод я та б л и ц
й и з к о т р ы
у р о к у ст
, с теял опдер
ы яв л сет
я фо р м и р о в а н и
х с о е др ж и
я щ ку е и т м
и
. т з н ач ен и
я абсц и с
е м а рт и ц , а в то р
ы и з й —
0 0.4560 0.7614 е м ы улеид м д о с та о ч н м сп ос ба м гр а фи ч е с к о г я бо ле е н а г л я нд ы
о в н и м ан и м и уодбн ы
я м а тр и ц а м о п р е сд а т в л е н и м п о ср ав н ен и
, а п о к я нф у к ц и й ю с та б л и ц е
а обра , к о т
й е е
70
аЧс т ь
оП с т р о е н и
е гиорка ф
и ц ун к ф
и онод
I. Ос но вы
в MATLABzyxwvu
работы
в й пе р м е но
й
MATLAB о б л а д е т ох р ш в и з а ул и з а ц и и да н н ы х . Г р а фи к р а з ед л е о п и сан о п о с рт о е н и н о й н а п р и м ер е фн у к ц и и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
о р а з в и ты м
и гр а фи ч е с к и м е в MATLAB п о св ящ ен е п р о с ет й ш е г о гр а фи к
и в о з м о ж н о с тя м и лд я а zyxwvutsrqponmlkjihgfedcbaZYXW гав л 3. В н асотящ е м а н фу к ц и и о нд о й п ер м н -
х
у( х) = ~ е s'mlOx, о п р е дл н н о со ти
й н а о рт ез к т и з сюлуед щ и
1. З а дн и
х э та п о в
е в е к то р
а з н ач ен и
2. В ы ч и слен и
е в е к то р
3. В ы з о К ом ан д то ч к о (п о сл в ы в о ди ж ен и »
е [о , i] . В ы в о :
в к ом ан д
д о т б р аж ен и
й ар мгу ен т а у з н ач ен и
ы p lo t лд
ы лд я з а д н и я в е к то р й с з а п я то й л д я п о ад в л е н и е к о м ан д ы p lo t отч к т в к о м а н дн о е окн о) е . *
и в в и д
е гр а фи к
а
а х . й фн у кц и
я п о с рт е н и
я н фу к ц и
и у( х ) . я гр а фи к а
.
а х и в ы ч и с л ен и я н фу к ц и я вы вод а в к о м а н дн о у с з ап яотй , сатв и т ь н е н жун о е и сп о ль з о в ат . Н е з абьдут
и чл у ш е з ав ер ш ат ь е окн о и х з н а ч ен и й , т . к . о н а н и ч ег о н е ь п о э л е м н нт о е м ун о -
х = 0 : 0 . 0 5 : 1 ;
»
у =
»
p l o t ( х ,
е хр ( - х) . *si n ( 10 *x)
П осл нф у к ц и м е н от о п и сан е д бу ес й т ш и
е в ы п о лн ен и , и з о б р а ж ен н о в и о бласт ы к о м а н ды т и н ет р с о в а т е в о з м о ж н о с т
;
у )
я к ом ан
д н а э к ран е п о я в л ес т я окн о Figure 1 с гр а фи к о м е н а р и с . 2.2. О к н о с о едр ж и т м ен ю , п ан ел ь и н р с ту ь гр а фи к а . В авег л 3, п о св ящ ен н о й гр а фи к е в M ATLAB, , п р енд а з н а ч ен н ы е лд я о ф р м л е н и я гр а фи к а . С ей ч а с на с ь са м п р и н ц и п п о с рт е н и я гр а фи к о в и н ек о т р ы е п ро и в и з а ул и з а ц и и нф у к ц и й .
ы бы т ь Д л я п о с рт о е н и я гр а фи к а н фу к ц и и в рабо ч е й с р ед е M ATLAB до л ж н о п р е дл н ы дв а в е к т о р а о ди н а к о в й р а з м е р н о с ти , н а п р и м е р х и у . В екот р х с о ед р ж и т з н ач ен и я а р г м у е н то в , а у — з н ач ен и я н фу к ц и и о т э и т х а рм гу е н то в . К о м а н д а p lo t со еид н яе т от ч к и с к о р ди н а т м и ( x( i) , y( i) ) п р ям ы м и ли н и ям и , а в от м а ит ч ес к и м а с ш ат б и р у я ос и дл я о п ти м а л ь н о г о р асп о л ж ен и я гр а фи к а в окн е . П р и п о с рт о ен и и гр а фи к о в о д уб н о расп ол ж и т ь н а э к ран е к о м а н дн о е окн о MATLAB и о к н о с гр а фи к о м та к , ч от б ы о н и н е п ер к ы в а ли сь . Н а п р и м е р , и сп о ль з у я кн оп к у Dock Figure (с п р ав а в с рт о к е м ен ю о к н а ) , м ож н о в с тр о и т ь гр а фи ч е с к о е окн о в рабоч у ю с р де у та к , к а к п о к а з а н о н а р и с . 2.3.
л ав Г
2. Раб о т а
с м а с и ва м и
71
*Ф zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Figure 1 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA File Edit View Insert Tools Desktop Window Help
0.1
0.2
с иР
^^ Дл
Пр и м е чан и
я н ч е п и у ло
0.3
0.4
0.5
0.6
0.7
0.8
0.9 zyxwvutsrqponmlkjihgfedcba
. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 2.2. Пйше итсор й ги фар к нцик у ф и
е ^Д я л е ь нд о т г
о р и а фг ч с е к о
о окн
а е у делс
т н аж т
ь н а кн оп к
у
Undock Figure.
П о с рт е н н ы й гр а ф и г л а кд я . Дл я от ч н о г ч и сл е точ е к н а ортез к Н е з ьадебту , ч т о м ож н ыд , зеат м о р т е ад к и т р о в а т м а н ыд : »
к н уф к ц и и н е долж е о п о рс т е н и я гр а фи к е [О , l] , т . е . з адй т о з ан ест и в к ом ан д у ь и х и в ы п о л н и ьт
х = 0 : 0 . 0 1 : 1 ;
>> у = е х р ( - х ) . * s i n ( 1 0 * x ) »
p l o t ( x ,
у )
;
н и м те ь и з ло м в , т . к . сам а фн у кц и я а в ы ч и сли т е н уф к ц и ю в бо ль ш е м е м не ь ш и й ш а г п р и в в о д е в е к от р а х . ю р со т к у в ен д ы е р ан е е к о м ан , н аж в . Сю улед щ и е ко -
I. Ос но вы работы в MATLAB zyxwvu аЧс т ь 72zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
п р и в о яд ж ен о гр а фи к а
т к п о с рт о е н и ю гр а фи к й н а р и с . 2.4 (дале е в кн и г , бе з з а г о л о в к а окн а , м не
а н фу к ц и и в ви д е п лав н о е п очт и в сю д у п р и в о ди ст ю и п ан ел и и н сртму ен от в )
й кри вой , и з о б р а я то л ь к о о бласт ь .zyxwvutsrqponmlkjihgfed
File Edti Veiw Insert Toosl Debug Desktop Wnidow Hep l zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH ? 7\ 2i zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB У Current Directory: [e
О ГС
Shortcuts iil How to Add Ј]'What's New Latest
I */ Fg iures - Fg iure 1 ia"3 а в а • a zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED TZ File Type j LajtModifi Folde 24.07... work_2 Folde 30.07... Work_4 Folde 30.07... LJ work_5 Folde: 24.07... __|Uork_6 Folde: 30.07... Folde: 30.07... LJwork 7 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA c e l l p r o . . File 23.07... cel AS. V ;lpro... Curent Driectory 1 Workspace)
a
h-p - 2/v —» 0.4 0.6 0.8 j x - [0.2 0.3 .5 0.8 1.3 1.7zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK '< 0.2 Л 0 r -y - sin(x) 2/ (1+cos (x) ) +exp ( -: ) x = 0:0.05:1; E r r o r u s i n g ~~>
ќ у = exp(- x) .*sin(10*x); plot(x, y) - p - 2/v Л у = s in( x ) 2 / ( 1 + с о з ( x ))+ e x p( ~~x = 0 : 0 . 0 5 : 1; у • e x p ( - x) . * s i n ( 1 0 * x ) ; p l o t ( x , y)
:
>> x = 0 : 0 . 0 5 : 1 ; у = e x p ( - x) . * s i n ( 1 0 * x ) ; p l o t ( x , y)
ф Start 1
с Ри
. 2.З . Рн ежоиплса
Пр и м е ча ни
^ П р о с не т и
е р г а иф к
С р ав н ен и
е н ес к о ль к и х о с ях
а с гиокфар
м в онк
е MATLAB
е
Workspace. Э т
н а онд и
е онк
а м жо н а воз м жн ост х н фу к ц и
. Н а п р и м е р
о щ ви у ос т е ь расрмит ве й уод б н
, п о с тр о й т
ь с п ом щ ь я в сю щу де л о п р о и з в о д и ть е н а о ртез к 1 — X
ю и мн е р у о с т
, о то б р а з и е [- 1, - 0.3J гр а фи к 1.2 — X
в окн й лга в е
а
. в и х гр а фи к и фн у к ц и й
и
л ав Г
2. Рабо т а
и п о м щ
пр
73 zyxwvutsrqpon
с м ас и вам и
и п о с л еод в аетл ь н о с т
и к ом ан д
»
х = - 1 : 0 . 0 0 5 : - 0 . 3 ;
»
f = s i n ( x . A - 2 ) ;
»
/ 4 g = s i n ( 1 . 2 * x . - 2 ) ;
»
p l o t ( x ,
f,
0 2
Рис я гр а фи к и е о п о в едн и
й н и ж е
:
g) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
x ,
D.1
П о лч у и в ш и е с л ен и
, п р и в едн н о
2.3
. 2.4. Гик д ал , п р и в едн н ы
и и е м с ул ы д
х нф у к ц и й
MATLAB в ы в о ди т гр а фи к ч ате т гр а фи к и раз ли ч н ы м К ом ан д а p lo t п о з в о л яе
и раз н ы и о ет н к а м т л е гк о з адт
0*1
0 5
0.S
й ги фар
к фнцик у
м ц в е от м и с ер о г
0.8
0.9
1
и
. 2.5, да ю
е н а р и с .
ь си т л
0 7
т н а г л я дн о
. М о н о рх м н ы й п р и н ет о ц в еа т , ч т о н е в сегд ь и ц ве т л и н и й , н а п р и м е р
е п р е сд а т в р н ап е а до у б н о ,
.
» plot( x, f, 'k- ', x, g, • k: о щ с у е св т л я т п о с рт о е н и рого — ч ер н о й п н у к ит р н о и ц ве т п ер в о й и в то р вд о е т ч и е — сп лош н у п о с рт е н и е гр а фи к о фи к о м м ож н о з а к р ы ть н е м улгу .
е п ер в о г о гр а фи к й (р и с . 2.6). рмгАуен т й ли н и й . Зесд ь к ю и л и п н у к ит р н у в п о др о б н о о п и сан , н аж в н а кн оп к
а сп ло ш н о о з н а ч е ю ли н и ю ы в ю с лу е д щ и у з а к р ы ит
й ч ер н о й ли н и ей , а в от ы ' к - 1 и ' к : • з а д ю т си т л ь т ч ер н ы й ц в ет , а едфи с ил и . В и з аули з ац и я ад н н ы х и х гл а в х . О к н о с гр а я окн а в ег о п р а в о м в ер х -
аЧс т ь I. Ос новы работы 74 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
- 0.9
Рис
- 0.8
. 2.5. Д в
П о с тр о е н и в е к то р а м и дл ны
е гр а фи к о — н ео б хди м я а в то м а ти ч е с к о г е о п ер а ц и
и лд
. 2.6. И з м ен ен и
- 0.7 е ситл
в н фу к ц и о м уе т о з ап о лн ен и я в ы ч и с л ен и
а гр афи к
- 0.8
- 0.9 Рис
- 0.7
в MATLABzyxwvu
- 0.6
- 0.5
- 0 . 4 - 0 . 3zyxwvutsrqponmlkjihgfedcba
а н а онд и
х о ся
х zyxwvutsrqponmlkjihgfedcbaZYXWV
- 0.6
- 0.5
я и ц вет
а ли н и
й в MATLAB ртеб у ь в о ди т ь в е к то р ы я с з а д н н ы м ш а го м я н фу к ц и й о т в е к от р
- 0.4 - 0.3
й гр а фи к о т п о н и м ан и , и с п о л ь з о в а т , п р и м ен ят а з н ач ен и
в я работ ь дв о е т ч и ь п о э л ем н т й а р г м у е н ат
ы с е . Вс
е
л ав Г
2. Рабо т а
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 75zyxwvutsrqponm
с м ас и вам и
э т и в о п р о с ед а т л ь н о м м ун о ж ен и
ы бы л у и сп о ль з о в ан и ю в е к то р в
и р а з о б р а н
м У н о еж н и
ы в ы ш е . Д в е юслуед щ и е гл а в ы п о с в ящ ен ы боле е ю гр а фи ч е с к и х с р е тд в п ак ет . П ер й ед м е тп р ь к .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е вет кор
В ек от н аз ы в аю п р о и з в едн и е то р н о г
р м ож н
о мун о ж и т т в н рт у е н н и м ) . Р ез луь ато
о — в е к то р
а Ск л р я н о
в ь н а дргоу й в е к от р с к а л яр н , в е к то р н о , и л и о б р а з о в а т м с к ал яр н о г о п р о и з в е дн и , а в н еш н ег о — м а рт и ц а .
е произве д ни
е он р я к а л С е тл ь н ы
е ще
е
е в н еш н е
е
я ч и сло
, век
-
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
п р о и з в едн и х ч и с ел
о (э т о п р о и з в едн и ь ат к н а з ы в а е м о я я в л се т
е в е к от р , о п р едляст
я ф о р м л уо
в а и Ъ дли н й
ы TV , со стящ и
х и з едй с в т и
-
k=\ С л е д о в а те л ь н о см у и р о в а т г о м ун о ж ен и м у н о ж ен и е
, лд я в ы ч и слен и ь к о м п о н ен т ы в е к то р а я а н а Ъ , т . е . н ад . Н а й ди т е с а м о с т яел ь н
я с к ал яр н о г
о п р о и з в е дн и , п о лчуен н о г
о и сп о ль з о в ат о с к ал яр н о
я н е о б х ид м
о в р е з л у ь ат ь н фу к ц и е п р о и з в едн и
о п ро
е п о э л е м н нт о ю sum и п о э л ем н нт о е в е к то р
е
в
1.2
4.1 - 3.2 ; Ь = 6.5
а-
0.7zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG - 2.9 Н иж
е п р и в едн
а требму а
я п о с л е од в а е т л ь н о с т
»
а = [ 1 . 2 ; - 3 . 2 ; 0 . 7 ] ;
»
b = [ 4 . 1 ; 6 . 5 ;
ь к ом ан д
:
- 2.9];
>> s = s u m ( a . * b ) s = - 17.9100
С к ал яр н о н фу к ц и
е п р о и з в едн и е в е к то р ю M ATLAB dot
в м ож н
о ат к ж
е в ы ч и с л и ть
, мльоуд
) в е к то р
а а
» s = d o t ( a, b) ; Н а й ди т
е дли н
у (и ли
, ка к ещ
е г о в о р я т
\ а\ = \ а - а .
, п р и м ен и
в
I. Ос но вы р аб о т ы в MATLAB zyxwv аЧс т ь 76 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Р еш ен и е
:
» d = sqrt ( d o t ( a, a)) d = 3.4886zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Ве т к о р н е В о нк р т н ог я в л се т п р о и з в е дн и
е п р о и з в е д ни
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
п р о и з в едн и о п р о с тр а н с тв а я в е к то
е a xb о п р едл н о то л ь к о лд я в е к то р в и з р т ме х . Р ез луь ато м ат к ж е , т . е . со тящ и х и з р т е х э л е м н от в р и з рт е м х р н о г о п р о с тр а н с тв а . Д л я в ы ч и с л ен и я в е к то р н о г о я в MATLAB жслиу т н фу к ц и я cross:zyxwvutsrqponmlkjihgfedcbaZYXW
» а = [1.2; - 3.2; 0.7] ; » b = [4.1; 6.5; - 2.9]; » с = cross(a, b) с = 4.7300 6.3500 20.9200
Д л я тр е н и р о в к с о т ящ и р о в в ы п о л н яест е а он ш м С abc - а- (Ьх)с п а р л е п и п е да р и с . 2.7.
и п о п р о бйу т
е в ы ч и сли т ь axb + bxa . Е сл и п о лчуи лс й и з н леуй , т о в ы вс е п р о едл а и п рави ль н о , т . к . дл я л ю б ы я св о й свт о axb- - bxa. п р о и з в едн и .
е в е к от р ь с м еш ан н о г
М ло у д , п о с тр о е н н о г
Рис
. 2.7. П ар л е п и п ед
в а , b, с о п р едляст о п р о и з в е дн и я в е к то р о н а э и т х в е к от р а х та к
, о б р а з о в а н н ы
й ртем
я в е к от р а м
я в е к то р х в е к от
я п о фо р м л у е в рав е н о б ъ ем у , к а к п о к а з а н о н а
и
-
,
л ав Г
2. Рабо т а
Н а й ди т
77zyxwvutsrqponm
с м ас и вам и
е объе
м п а р л е п и п е да
, елс
- 0.2
0.5"
3.5
;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED b = 2.1 ; с = - 1.9
0
a =
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
0zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED 0 2.8
П рави ль н ы
е дей свти
я та к о в ы
»
а = [ 3 . 5 ; 0 ; 0 ] ;
»
b = [ 0 . 5 ; 2 . 1 ; 0] ;
:
»
С = [ - 0 . 2 ; - 1 . 9 ;
»
V = a b s ( d o t ( a , c r o s s ( b , с ) ) ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
2.8];
V = 20.5800
Вн е ш н е
е произве д ни
и н В мш е
е
п р о и з в е дн и е
с те
я м а рт и ц
м в е к от р
в а = (cij)
а С = [с Л
в ы ч и с л яю стя
п о фо р м л у
р аз м ер
,
= (bk )
- zyxwvutsrqpo
н аз ы в а
а NxM , э лем н ыт
котро
й
е a b
Cjk = j k • ц а в MATLAB п р есдатв ляест а N н а о ди н . В екотр - сотлбе ц b п р у р аз м ер а о ид н н а М . В е к от р - сот л б е
В е к от р - сот л б е р аз м ер в е к от р - с рт о к
я в ви д и тр а н с п о н и р о в а н и
е дв м у е р н о г
о м ас и в
а
и п ерохид
т в
ц и в е к от р - с рт о к
а ес т
ь тг
м а тр и ц ы , у к о т р ы х ои д дг е м у н о ж е н и е п р о и сохид л ен и я м а тр и ч н о г о п р о и з в едн и до ч к а " :
н и з р а з м е р о т п о п р ав и л
в рав е н еи д н и ц е у маг онитчр я в M ATLAB и с п о л ь з еуст
. Ф а к ит ч ес к п.инея зводр
Дл я о п е р а то
и С = ab , я в ы ч и с р "з в ез -
>> а = [ 1 ; 2; 3 ] ; » b = [ 5; б ; 7 ] ; » С = а *Ь '
с = 5 б
7
10 12 14 15 18 21
MATLAB в ы в ел а в к о м а н дн о к ам . И с п о л ь з йу т е к о м ан д и л и окн о Workspase. Чи с л а
е окн у whos лд , в ек от р
о м а рт и ц я п р о с м о тр ы и м арт и ц
у в п ри вы чн о а п ер м н ы ы р ха н яст
м в и ед х рабоч е я в двмуер н ы
— п о срто й с р ед х м ае
ы -
78
аЧс т ь
си в а х чи сла в е к от р - с рт о к ие д н и ц е , а р о в . И м ен н с а б л и в а ю ст ед . Е сл и ю ус л е д щ и е
е м асыив
В эот э л ем н т ы з ап и с ри чн ы
е о п и са е о п ер ац и ь с и с п о л ь з о в а н и е х да н н ы х .
ов В
д м ат риц
, м атцир
м р а з де л
н в о д м а рт и ц , в ы ч и слен и м ет к с от в г
ь н еб о л ь ш и е м а рт и ц
Д л я р ха н е н и д е ч уит е э л е м н от в в а те л ь н о »
е о п ер ац и й о т э л е м н от , п р о сетй ш а
е опе раиц ы до в
е п о р а з м ер у р а з м е р н о с ьт
я м а тр и ц , ч т о м арти ц , к аж ыд й и , с рт о к и п р и
ы
, м ает и ч ес к и е н фу к ц и о фа й л а
, прост е йши е спосб
В в о ид т к и . В виед т
в MATLAB zyxwv
р аб о т ы
— в м ас и в ах , р а з м ер н о с ьт ю ои д н н а о ид н , в ек от р - сот л б ц ы и и с о ед р ж а с т я в м ас и в ах , у к о т р ы х о нд о и з и з м ер н и й равн о дл я м а р т и ц в ы е дл я ю с т я вдм у е р н ы е м ас и в ы п о хд я щ и х раз м е о п о э т м у о п ер ац и и и в срт о ен н ы е н фу к ц и и в M ATLAB п р и сп о я к в и д у а р г м у е н от в , в ы да в я р е з л у ь ат т в с о в т ес ю у щ е м ви в ы в н и м а те л ь н о и з ч иу л и и сп о ль з о в ан и е в е к то р о в , т о ч и ат ь р а з де л ы о р а б о т е с м а рт и ц а м и н е п р есдатв и т боль ш ог о ар д т у .zyxwvutsrq
му Дв е рын
а Р ы зл н и ч
I. Ос но вы
в м а тр и ц я в и з аул и з а ц и
и с н и ми , чент и
, п о е и я м ат -
и
а у м а рт и ц
ы о д бу н а н а тр и
ю вд
о п р ям
о и з к о м а н дн о
й срт о
-
ы и с п о ль з йу т е в мд у е р н ы й м ас и в с и м ен м А . П р и в в о х у zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA А м ож н о р а с м а тр и в а т ь к а к в ек от р - сот л б е ц и з дву з к о т р ы х я в л се т я в е к от р - с рт о к й дл и н о й тр и , слоед н а б о р е оедлтяю ст я от ч к о й с з а п я то й :zyxwvutsrqponmlkjihgfedcb
А = [ 3 1 - 1 ; 2 4 3 ]
А = 3
1 - 1
2 4 3
Д л я и з ч еу н и я п р о с етй ш и н ес к о л ь к о м а тр и ц . Р а с м о рт и м а рт и ц у р аз м ер а рт и та к
х о п ер ац и м р дг и у , к а к о п и с а н
й н а д м а рт и ц а м е сп о с б ы в о да о н и ж е : ' 4
3
-
2
7
0
- 5
1
2
и н а м п о н а д о б и ст . В виед т
я ще е к в а д р нт у
е ю
ав Гл
2. Ртао б
с маи всам
Н ач н и т
е н а б и р а т
»
В = [4
ь в к о м а н дн о
79zyxwvutsrqp й с рт о к
е
3- 1
2 7 0 - 5 1 2]
Н аж м и т вы ч и сли ла т е во с лн е д ю
е к лав и ш
у < Enter> . О б р а ти р м и га е т н а сю улед щ е ы п о с тр о ч н о , н аж и м а у з ав ер ш и т е з а к р ы в а ю щ е
. К русо д м а рт и ц ю ср т о к
е в н и м ан и е й с рт о к я в кон ц й к в а др н т о
о н е , ч т о MATLAB н и ч ег е бе з с и м в о л а » . П р о д л ж и е к ажод й с рт о к и < Enter> . П о й скобкой , п о лчу а естя :
в = 4 3 - 1 2 7 0 - 5 1 2 Е щ е ои д н сп о с в а т ь к а к в ек отр - срто к у Н ап р и м ер , м арти ц
м ож н
о в в ест
»
б в од у дв
и пр
и п о м щ
С = [ [ 3 ; 4]
С
а м а рт и ц со ти , к ажыд й э л ем н а н а тр и
[ - 1 ; 2]
и к о м а н ды [ 7 ;
т в то м т к о т р о
, ч т о м арти ц у й я в л се т
4
-
•
•
0
е п ер м ен н ы й с рт о к
вд е п р ям о гу л ь н ы
е рабо ч е е whos. И та к е и о нд а к в а д р тн а я
е к э л е м е нт а
О б р а е щ ни Д о су т н о м ер о
п к э л е м н ат в срто к С ( 2 , 3)
a n s = 0
.
7
2
П о с м о тр и т к о м а н дн о
»
-
0]] •
1
о тр а к то
:
=
3
м ож н я в е к от р - с от л б ц о м
м м ат ри м м а рт и
и и с от л б ц а
й с р ед , в р а б о ч е
ц о щ с у е св т л я , з ак лю ч ен н ы
ы в окн е zyxwvutsrqponmlkjihgfedcbaZYXWVU Workspace и л и н а б ер и т е в й с р ед е с о е др ж и с т я тр и м а тр и ц ы , .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
ц я пр х в к рглуы
и п ом щ е скобки
и в уд х и н е дк с о , н а п р и м е
в — р
80
таьс Ч
Э л ем н т
ы м а тр и
»
ц м о гу
т вохид т
ь в со сат
I. в ыонс О
в в ы р а ж ен и й
ртыоаб
в MATLABzy
:
С ( 1 , 1) + С ( 2 , 2) + С ( 2 , 3)
a n s = 5
В к ач есвт е и н ед к с о в м о гу ср т о к и с то л б ц о в . Н а п р и м е р с рт о к в то р о г о и тр еьт г в ес т и к о м а н ды :
т в ы пс у т а
ь в е к то р ы я в ы е дл н и в в е дн н о
, лд о с от л б ц о
, с о едр ж ащ и я э л е м н от й в ы ш
е н о м ер а нжу ы в п ер в о й и в то р о ы В д о с та о ч н
е м а тр и ц
х й о
» i = [1 2] ; » j = [2 3]; » Bl = B(i, j) Bl = 3 - 1 7 0 Р ас п о л ж ен и о ид н сп ос т и п о с то л б ц а м п а м ят
е э л е м н от б о б р ащ ен и . Э лем н т
в м а рт и ц ы в п а м ят и к о м п ь ю те р а о п р е дл я я к н и м . MATLAB рхан и т э л ем н т ы м а рт и ц ы qtj м арт и ц ы Q р а з м е р а m н а п с о едр ж аст
и в п о с л едо в а етл ь н о с ит
т ще ы в п ам я
е я в
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
•> • 9inizyxwvutsrqponmlkjihgfedcbaZYXWVU шЧ —> Qmn-
С л е д о в а те л ь н о ке,с идн м ер та к о
, дл з а д ю щ и , э лем н ыт м п о р я дк
я до спут й п о р я дк о в ы
м а рт и ц
а к э лем н ат й н ом е ы С , о п р едл н н о
м м а рт и ц р э л ем н т й в п рыед щ у е
ы м ожн а м а рт и ц
у о б р ащ ен и и о дн о г о и н едк с т к п р есдк аз еум о
»
ь оин д . Н а п р и
-
, з а п и с а н
ы в
е С ( 1 , 1 ) , С ( 2 , 1 ) , С ( 1 , 2 ) , С ( 2 , 2),
П оэтм м ощ в о ди
о и с п о л ь з о в а т ы в в е к то р е м р а з де л
е к э лем н ат а (и н едк сац и у р е з л уь а т
м м а рт и ц я пр у
и п ом щ
С ( 1 , 3 ) , С ( 2 , 3)
ы к а к к э лем н ат и п о р я дк о в о г
м в е к то р
а пр о н о м ер а
и п о ) п ри
-
С(5 )
a n s = 7
н о м ож е т п о с жл у и т с лч у а й н о ку а з а К а к п рави ло то р ы х с п ец и ал ь н ы с то л б ц а м . Ещ вт о р я ю щ и
е онд и
н в м ес т , ч а с т
м сп ос бо м н ек о т р о м
ь и и сот ч н и к о м о ш и б о х — н и к а о г о в ду о ч л шу е и сп о ль з о в ат х с лч у а е в , н а п р и м е р м о б р ащ ен и у с ул о в и ю
я ср аз , яв л сет
к в в ы ч и с л ен и ях о п р еу д ж е дн и ь вд а и н е д к с а , п р о хд у к о все м э лем н ат я лкегсоич
, есл
и оид н и н едк я н е в ы в о д и тс я , з а и ск лю ч ен и е м н ек о а э л е м н от в м а тр и ц ы п м м а тр и ц ы ивкаоиен.рс д
, одвлуе
с . о -
Ло ги
-
л ав Г
2. Рабо т а
ч ес к о о п ер ац и
с м ас и вам и
е и н ед к с и р о в а н и й м а рт и ч н о л м ож н о п р о п с у ит ь и в ек от р н ы ь в ы р аж ен и я п е р б о р а ад н н ы х
ед о б р а б о тк з ап и сы в ат ни
Л о г и еч с о к
81 zyxwvutsrqpo
е н е являсет я н е о б хид м ы м лд я в ы п о л н е н и я обы ч н ы х й а л ге б р ы , п о э тм у п р и п ер в о м ч е тн и и ю с луед щ и й раз . О дн а к о о н о щ с у е вс т н о р ас ш и р яе т воз м ож н ост и х и м арти ч н ы х да н н ы х , п о з в о л я я н а гл янд о и к о м п а к тн о я с до с та о ч н о сло ж н о й л о ги к о й бе з п р о г р а м и р о в а .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е иесдникрова н е
Ло г и ч е с к о е и н ед к с и р о в а н и е (logical subscripting) п о з в о л яе т вы брат ь и з м ас с и в а э л е м н ыт , уод в лето р яю щ и е о п р е дл н н ы м с ул о в и я м , к о т р ы е з адн ы л о ги ч е с к и м в ы р аж ен и ем . П о др о б н о л о ги ч е с к и е в ы р аж ен и я удб т жо б с у ад ь т с я в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гаве л 7, а зесд ь п р и вед м п рост й п р и м ер . П сту ь и з в в едн н о й в ы ш е м а рт и ц ы В р т е бс у я вы брат ь в с е о рт и ц а ет л ь н ы е э л е м н ыт и з а п и с а т ь и х в в е к от р / . С н а ч а л а вы п олн и м , к а з а л о с ь б ы , н еодп сиут м о е ед й с в т и е : з а п и ш е м в п ер м н у ю ind р ез луь ат т с р а в н ен и я м арти ц ы и ч и сл а н о л ь . »
i n d = В [т , к ] = т а х ( х
)
т = 5
к = 3 Т еп р ь м ы з н ае б ы и сп о ль з о в ат з н ач ен и й в в е к то р
м з н ач ен и е т м а к с и м а л ь н о г о э л е м н ат , о н о р а в н о 5, и м огл и х ь л о ги ч е с к о е и н ед к с и р о в а н и е дл я з ап и с и все х м а к с и м а л ь н ы . Д в о й н о й з н а к == о б о з н а ч е т л о ги ч ес к о е р а в е н с тв о : >> х т = х ( х = = 5) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 5 5 5
л ав Г
2. Рабо т а
с м ас и вам и
а м ак си м аль н ы н о н о м ер ск ог о и н де к с и р о в а н и м гу е н т е л о ги ч е с к о
83 zyxwvutsrqpo
х э л е м н от я и сп оль зе у е в ы р аж ен и
в вс е р а в н о н е и з в е с нт ы м н фу к ц и ю find, куаз е х == 5
. В м ест в в о в о хн д о
о л о ги ч е м е е ар -
» km = find(x == 5) km = 3 6 8 Ф ну к ц и м аль н ы
я find в ерн лу м з н ач ен и ем
а н о м ер
а э л е м н от
в в е к от р а
, со в п адю щ и
х с м ак си
-
.
нА а л о ги ч н ы й п ои с к в м а рт и ц е а т к ж е о щ с у е св т л я я п р и п ом щ и find. П с уьт , н а п р и м е р , н ад о н ай т и и н е кд с ы в ес х н е п о л ж и е т л ь н ы х э л е м н от в я в ы о хнд ы м и а р м гу е н ат м а рт и ц ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA В , в едн н о й вы ш е . В ы з ове м find с двму м и — в е к то р а м и , в к о т р ы е требсту я з ап и сат ь з н ач ен и я срто ч н ы х и сотлб ц ев ы х и н е дк с о в и ск о м ы х э лем н от в м арт и ц ы »
[ i , j ] = f i n d ( В > В '
>> В . '
a n s =
a n s =
4 2 - 5
4
2- 5
, п р о и з в о ди ст
я пр . Д л
я в е щ е св т н ы :
и по
х
л ав Г
2. Рабо т а
с м ас и вам и
85zyxwvutsrqpo
3 7 1
3 7 1
- 1 0 2
- 1 0 2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
е и тр а н с п о н и р о в а н и т к р а з н ы м м а тр и ц а м
С о п р яж ен и п р и в еу д
е м а тр и ц , соедр ж ащ и х к о м п л ек с н ы е ч и сла , :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
» К = [1 - i, 2 + 3i; 3 - 5i, 1 - 9i] К = 1.0000 - l.OOOOi 2.0000 + 3.0000i 3.0000 - 5.0000i 1.0000 - 9.0000i » K1 ans = 1.0000 + l.OOOOi 3.0000 + 5.0000i 2.0000 - 3.0000i 1.0000 + 9.0000i » K. ' ans = 1.0000 - l.OOOOi 3.0000 - 5.0000i 2.0000 + 3.0000i 1.0000 - 9.0000i
В с п о м н и ет п р о б елам и бо ле
, ч т о п р и в о д , и л и з а п яты м и о р аз едл н и
е н а гл ядн о г
В о з в е дн и в ан и е
е к в а д р тн о м о п е р а то р
»
В 2 = В
а Л
А
е в е к от р - с рт о . П р и в о д я к о м п л ек с н ы
к и х э л ем н т ы м ож н о р а з де л я т ь ил и е м а рт и ц ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO К п р и м ен ен ы з а п я ыт е лд я х чи се л в с рт о к е .
й м а рт и ц
ы в ц ел у
й р ез луь ат
, мун о ж и
ю е пс т н
ь п р о и з в о ди с т
я с и с п о л ь з о
-
:
2
В 2 = 2 7 3 2 - б 2 2 5 5 - 2 - 2 8 - б 9
П р о в ер ь т б У е ид т с ь Н а й ди т
е п очлуен н ы е з н ач ен и
, ч т о в ы о св о и л е сюлуед щ ег
и п р о с етй ш и
е о п ер ац и я
о в ы р аж ен и
)С В ч Уи т е и т р е по от м в о з в е д н и в о я сд т я в п о сленд ю
о п е р а ц и й е в сетп н ь
, з ает ю о ч е р ьд
А
» (А + С)*В 3*(А - С) ' ans = 1848 1914 10290 3612
в м а рт и ц
, с н а ч л м м у н о ж ен и е .
3
(А- )С
у н а сам
у с еб я
и с м а рт и ц а м Т
. и в M ATLAB.
.
а в ы п о л н я е ст , а сло ж ен и
я тр а н с п о н и р о в а н и е е и в ы ч и та н и
, п о е п р о и з
-
86
аЧс т ь
Пе р е м н о е ж и
е м атцир
П о ск о ль к ц ам и о п ер а ц и срт о к и
у в е к от р - с от л б е , у к о т р ы и п р и м ен и м н а м арт и ц у
х оид
ы и вет кор
м ож н
о о сщу есвти
ь ю с ул ед щ и
»
а = [ 1 3 - 2 ] ;
»
В = [2 0 1 ; - 4 8 - 1 ; 0 9 2 ] ; с = [ - 8 ; 3 ; 4 ] ;
»
а *В *
н е ид н и ц е я м а рт и ц е в ы р аж ен и
а в M ATLAB яв л ю ст , т о вс е в ы ш ео п и с а н н ы ы н а в е к то р , и л я
2
0
n
-8
- 4
8
- 1
3
0
9
2
м образ ом
»
в MATLAB zyxwvu
работы
а
ц и л и в е к от р - с рт о к н и з р аз м ер о в рав е ы и лд я м у н о ж е н и . Н а п р и м е р , в ы ч и слен и
[1 3 - 2]
I. Ос но вы
L
я м арт и
е
и в е к от р
-
4zyxwvutsrqponmlkjihgfedcbaZYXWV
:
с
a n s = 74
.
В м аемт и к е н е оп релдн в MATLAB си м во л \ и сп ольсзет у
Р е ш ни
е сист е
Р еш и т в е с нт ы м и
е н еб о л ь ш у
а о п ер а ц и
м леыний
я делн и я лд я реш ен и
я дл я м арти ц и в ек от р в я сие ст м ли н ей н ы
х ураенв и
ю с и ем т у
, со тящ у
, о нд ак х р ау в н е н и й
о .
й ю и з р те
х р уа в н е н и
й с рт е м
я н еи з
-
: 1.2^+ 0.3*2- 0.2x3= 1.3; 0.5*!+ 2.1*2+ 1.3*з = 3 - 9 ; - 0. 9*!+ 0. 7*2 + 5. 6*3 = 5.4.
В в и ед т м ас и
е м а рт и ц в ь . Р еш и т
у с и ем т е си мест
ы в м ас и у п р и п о м щ
в А , ДЛ Я в е к то р и с и м в о л
а п рав о й ч аст и и с п о ль з йу т е а \ zyxwvutsrqponmlkjihgfedcbaZYXWV
» х = А\ Ь х = 1.0000 1.0000 1.0000
П р о в е р ь те
, п р а в и л ь н ы
й л и п очлуи лс
я о вт е
, мун о ж и
в А н а х .
л ав Г
2. Рабо т а
с м ас и вам и
87zyxwvutsrq
^ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П р и м е ча н и е ^3 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC о рл г и т А м ш ер н и я се тис м ил н й е ы х в н ра у е и й п р и п ом щ и о п е р оа т а \ с теял опдер я ро у к т р с й ри м та ц ы ик о фэ ц и н е о т в смыеи тс . В чнаст ио , MATLAB те у деилс , с теялв я л и р м и ат ц а о г л ь р еу н т о й , ил и мжое т бы т ь п н р ие д в а н а п ст р е о в к м а и р о тс к и о лб ц ст в к о льг н ру е т о м у ви у д , сим ри м т е ч н а я мр и а т ц а ил и н те , квнрадт я и л и п о рг л м ь я н у а я (MATLAB ем у т рше ат ь м е ит с ы с поьлгнмряу ы м и р и м та ц м и — нелпорд ы е . ил и ннелопдр ы )е . П омэт у рше ат ь м е и тс ы п р и п мощ и \ разм ун о , к од г а в ы бо р а ло г р и м т а ш ер н и я с т ч пе а о р у я MATLAB. лЕс и ж е с тием я и н о рм ф ц а и я о в со й а т х ри м та ц ы м ые и с т , т о е у делс т и с п о ль з о в ат ь п ес ц и ль а н ы е до т ме ы (пробнд е е о рше н и и се итс м ил н й е ы х рв а н у е и й ска з ан о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гаве л 6).
Р еш ен и е си е т м н еб о л ь ш о й р аз м ер н о с т и м ож н о в ы п о л н и ть , введ я м а рт и ц у с и ем т ы и в ек от р п рав о й ч аст и н е п о с р е дв т н н о и з к о м а н дн о й с тр о к и . О д н а к о ч ас т о р т е бс у я н ай т и р еш ен и е си сетм ы , со стящ е й и з б о л ь ш о г о ч и сл а л и н ей н ы х руа в н е н и й . Д л я в о д а ад н н ы х м ож н о в о с п о л ь з о в а ьт с я р е д а к то р о м м ас и в о , к о т р ы й п р е од с а т в л я е т о д б ун ы й сп ос б в од а и да е т в о з м ож н ост ь л е гк о п р о в ер и т ь в е дн ы е да н н ы е н а н ал и ч и е о ш и б о к . В о т оид н и з в о з м о ж н ы х сп ос бов . С о з да й т е в р а б о ч е й с р ед е в д а ып с т у х м ас и в а раз м ер а н о л ь н а н о л ь п р и п о м щ и к в а др нт ы х скоб к :zyxwvutsrqponmlkjihgfedcbaZYXWVUT »
А = [ ] ;
»
Ъ = [ 3 ;
е нжу ы й раз м е р в с рт о к а О тк р о й т е в р е да к то р е м ас и в А И о п р едли т д а Size:. З еат м в еид т е э л ем н т ы м а рт и ц ы в яч ей к и та б л и ц ы . О б р а ти м ан и е , ч т о п р и н аж ит и п р о и сохид т п е ро х д к яч ей к е , р а с п о л ж ен н о й п о д е тк щ у е й . Э т о ох р ш о , лсе и м арт и ц а в о ид с т я п о с то л б ц а м п р е пд о ч и т е л ь н е е з ан о си т ь з н а ч ен и я э л ем н от в п о с тр о к а м , т о еслуд ю File р е да к то р а м ас и в о в и в п о яв и в ш ем с брат ь п ну к т Preferences... в мне окн е Array Editor Preferences з адт ь ж ел а м о е н ап р ав л ен и е п е р о хд г Move selection after Enter од лж е к р ы в а ю щ ем с я сп и ск е Direction. Ф л а в к л ю ч ен . Ан а л о ги ч н ы м сп ос бо м в в о ид ст я в е к от р п рав о й ч аст и с и с е тм ы М а тр и ц ю уд щ е и з тек с от в г
а и в ек от р п рав о м р а з де л е н а п р и м ер о фа й л а , п о лчуи т
и а нв т ы ч С П ер и в е к от
е и за пис д н ам
и с от и р п рав о
т з адч й ч аст
й ч аст и с и ем т е реш ен и ь р е з л у ь ат
ы м о уг
ь ына д а — р еш и т и котро
т .хран и ьтс ы п ок аз ан о
я си емст т и з а п и с а т
я в фа й л а х , к а к с ч и ат ь ег о в фа й л .
х во е вн и
-
. Е сл и т вы я а в рас н бы т ь . . В сле ь да н н ы
е
х ь с и ем т й р ха н яс т
у л и н ей н ы я в ет к с о в ы
х руа в н ен и й х фа й л а
, м а рт и ц а х matr.txt,
аЧс т ь I. Ос но вы работы 88zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
rside.txt, и з а п и с а т с рт о ч н о , э лем н т са н в с от л б и к , к а
ь р е з л у ь ат ы в с рт о к к п о к а з а н йаф
т в фа й е о е дл т н о н а р и с
. 2.8. Ф ай л
П о д г то в ь т е фа й л Windows Б л о к н о та л о г work о с н о в н о г п о л ь з йу т е к о м ан д р ха н е н и я и с ч и ыт в а н и о дн а к о п р и р а б о т вы з ов а эит х к о м а н
, в ек от
а з ап и сан р п раво
а в фа й л й ч аст
е п о и з ап и
-
л matrixt zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED й а ф л rskle.txt 3.45 0.11 • •> - 0.25 7,25 1.08 5.9? - » 0.09 0.91 - 0.41 Ш
Рс и
л sol.txt. М а тр и ц ы п р о б ело м . 2.8.
в MATLABzyxwvu
ы с м арти ц е
5.84
4.23
й и в екотр
м п р ав о
й ч аст
и си емст
ы
ы с да н н ы м и , н а п р и м е р , в с та н да р тн о й п р о гр а м е т (N otepad). С к о п и рйу т е фа й л ы matr.txt, rside.txt в п окда о к атлог а M ATLAB. Д л я с ч и ыт в а н и я и з фа й л а ис е load и save лд я со у load, лд я з а п и с и — save. П р и м ен и я п ер м ен н ы х рабо ч е й с р ед ы о п и сан о в ав ег л 7, е с фа й л а м и дан н ы х и с п о л ь з се т у я фн у к ц и о н а л ь н ы й сп о с б д с в ы охнд ы м и а р г м у е н ат м и :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
>> А = load('matr.txt1); » b = load('rside.txt1 ); » x = A\b; » save 'sol.txt' x - ascii П ар м ет р - a sc i i о з н а ч е т з ап и с ь в ет к с о в м ад н н ы х к ом ан д в к атлог е work со з адст я фа й е д бу т з ап и сан о р еш ен и е с и с е тм ы . П о с м о рт е и сп о ль з у я лю бо й ет к с о в ы й р е д а к то р . Д л я з ап и с н о й то ч н о с ть ю е с лу д т и сп о ль з о в ат ь к о м ан д double. Н а р и с . 2.9 п р и в едн о с о ед р ж и м о е фа й л в ан и я к о м а н д ы save с п а р м е тр о м - double и бе
ф о р м а те . П о с л е в ы п о л н ен и л sol.txt, в к о т р о м в сот л б и ь с о ед р ж и м о е фа й л а м ожн о и р ез луь ат а в фа й л с дв о й у save ' s o l . t x t 1 x - a sc i i а sol.txt в счлуа е и сп о ль з о з н е го .
3.575611 бе + 000 - 1.4288319е + 000
3.5756115823410211е + 000 г 1.4288318X1740618е+ 00 0
2.3б80803е+ 00 О save 'so l. t xt ' x - a sc ii
2.8680803ЭЭ4263228е+ 00 0 save 'so l. t xt ' x - a sc ii - double
Рси
. 2.9. С о едр ж и м о
е фай л
а sol.txt
я к , -
л ав Г
2. Рабо т а
нА а л о ги ч н м а рт и ц к о м а н до л а о щсу есвтляю ст
с м ас и вам и
89 zyxwvutsrqpo
о м ож н о з ап и сат ь м арт и ц у в тек сотв ы й фа й л . З а п и с ь , н а п р и м е р , ы А , рхан ящ ей с я в м ас и в е А , В фай л matrA.txt ощсу есвтля я й save 'm at rA.t xt 1 A - a sc i i . З ап и с ь в фай л и сч и ыт в ан и е и з фай я п о с тр о к а м .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
ы н чл о Б
е м атирц
О ч ен
о в п р и л о ж ен и я , со сатв лен н ы е р аз м ер
ь ч аст т . е . м а тр и ц ы о в т ес ю у щ и
ы х в о з н и к аю е и з н еп р ес к а ю щ и с х ы блок в до л ж н
о н с т К р иу о в а н и
е бын лчо
В в ие д т
е м а рт и ц
е м а тр и ц ы ц (б л о к о в )
я п о д м а тр и .
ы с о в п а д ьт
х м а т ри
е блоч н ы
, . С о
-
ц
ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (- 1
Ни со з адй т
т ат к н а з ы в а е м ы
е и з н и
4Л
(2 Л О
1 4 Н х бло ч н у
о зИю м а рт и ц
( 3 - 3
3 3
у
'А ! В zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
К ч у и ыт в а я , ч т о м арт и ц А и В , а в о в то р о »
а К со ти й — С и D:
'[Щ т и з дву
х с рт о к
, в п ерв о
й с рт о к
е м а тр и ц
ы
К = [А В ; С D ]
К = - 1 4
2 0
- 1 4
0 5
3 - 3 8 9 - 3 3 1 10
Бл о ч н а я м а тр и ц а п о лч у е н а . М о ж н о бы л о п о пс у т и т н о , с ч и ать , ч т о м а рт и ц а К со ти т и з дву х с то л б ц о в А и С , а в о в то р м — В и D. К а к б ы то гд а с л е од в а л лд я со з адн и я б л о ч н о й м а рт и ц ы ? П р о в е р ь т е сбе я »
К = [ [А ; С ] [В ; D] ]
ь и п о - р г до у м , в п ер в о о з ап и сат
, а и м ен м — м арт и ц ь к о м ан д
ы у
90
аЧс т ь
В о т ще е о и д MATLAB. Т р ебсут
н п ри м е
р лд
я п р о в ер к ь бло ч н у
я с о ат в и т
М дг е
и з н ан и ю м а рт и ц
а
е э от
й з адч
и ю с лу ед щ е
в MATLAB zyxwvut
р аб о т ы
й о работ у
е с м ас и в ам
и в
! > А = z e r o s ( 3 ) А = 0 0 0 0 0 0 0 0 0
Е ид н и ч н а
я м а тр и ц
» I = eye(4)
а и н и ц и ал и з и ресут
я п р
и п о м о щ
и фну к ц и
и eye:
-
94
аЧс т ь
I. Ос но вы
в M ATLAB zyxwvut
работы
I = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Ф н у кц и я eye с дмву р о й н а глав н о й ди аго н ал
я а м р гу е н а мт
и с о з а ед и о с тя
т еид н и ц ы
т п р я м ог у л ь н у , а о сатль н ы
ю м ар т и ц у е э лем н т
, у к о т ы н люу
ы р ав н
:zyxwvuts
» I = eye(4, 8) I = 10000000 01000000 00100000 00010000 М а тр и ц а ones:
, с о т ящ а
я и з е ид н и ц
, о б р аз есут
я в р е з л у ь ат
е вы з ов
а н фу к ц и
и
» Е = ones(3, 8) Е = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
И сп оль з ован и м а тр и ц ы
е о дн о г , со стящ е
MATLAB п р еод сатв л яе м е н ат м и . Р ез луь ато н ы х с чл у а й н ы м образ о ри ц а ч и с ел , р а с п р едл н н ы
о а р мг у е н т й и з еид н и ц . т воз м ож н ост м н фу к ц и м м ж ед
а в ones п р и в о ди
т к с о з адн и
ю к в а д р тн о
ь з ап о л н ен и я м а рт и ц с чл у а й н ы м и эле и rand явлсет я м а тр и ц а ч и с ел , р ас п р едл н у н ле у м и еид н и ц ей , а фну к ц и и r a n d n — м ат х п о н о р м а л ь н о м у з ак о н у :
» R = rand(3, 5) R = 0.9501 0.4860 0.4565 0.4447 0.9218 0.2311 0.8913 0.0185 0.6154 0.7382 0.6068 0.7621 0.8214 0.7919 0.1763 » RN = randn(3, 5) RN = 0.1139 - 0.0956 - 1.3362 - 0.6918 - 1.5937 1.0668 - 0.8323 0.7143 0.8580 - 1.4410 0.0593 0.2944 1.6236 1.2540 0.5711
й -
л ав Г
2. Рабо т а
О б р ащ ен и ид
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
с м ас и вам и
е к н фу к ц и я т к фо р м и р о в а н и
ю к в а др нт ы
В оп ро с о б а в от м а ит ч е с к о н е до л ж е н п о с ат в и т и л и в е к от р - с рт о к м ер о в рав е н еи д н и ц е м и . П р о в е р ь т е себя
м rand и randn с онд и х м а тр и ц .
м з ап о л н ен и ь н а с в пут и к , п о ск ль к а в M ATLAB яв л ю ст . З а п о л н и т е в екотр - срто к , в ы п о л н и в сю луед щ и
м во н хд ы
и в е к от р - с от л б ц о
м а р мг у е н от
м п ри во
-
в и л и в е к от р - с рт о к , ч т о в ек от р - сот л б е ц , у к о т р о й о ид н и з раз у ш е ьс т ю с чл у а й н ы м и ч и сла :zyxwvutsrqponmlkjihgfedcbaZYXWVUT
у м ы з н аем я м а рт и ц е й й п р и м ер
» г = rand(l, 6) г = 0.7468 0.4451 0.9318 0.4660 0.4186 0.8462
Ча с т ри ц фо р м и р еу расп олаг
о в о з н и к ае , у к о т р ы
т н е о б х ид м о с т х в с е в н е ди а г о н а л ь н ы т ди а г о н а л ь н у я и х э лем н т
ь с о з ад н и ю м а рт и ц ы п о ди а го н а л
я ди а г о н а л ь н ы е э л ем н т ы равн у и з в е к от р - с от л б ц и м а рт и ц ы :
х м а тр и ц ы н люу . Ф ну к ц и а и л и в е к от р - с рт о к и
, т . е . м ат я diag ,
» d = [1; 2; 3; 4] ; » D = diag(d) D = 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 Д л я з ап о л н ен и я н е гл а в н о й , а п о б ч н о й ди а го н а л и п р е с уд м о р т е н а воз м ож я а р гм у е н а т м и . В э от м счлуа е в то р о й ар н ост ь вы з ов а н фу к ц и и diag с дмву м гу е н т о з н ач ет , н а с к о л ь к о п об чн а я ди а г о н а л ь о ст и т о т гл а в н о й , а ег о з н а к ку а з ы в а е т н а н ап р ав лен и е , п лю с — в ер х , м и н у с — в н и з о т гл а в н о й ди а г о н а л и :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» d F [ 1 ; 2 1 ; » D = diag(d, 2) D = 0 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 » D = diag(d, - 2) D = 0 0 0 0 0 0 0 0
96
аЧс т ь
I. Ос но вы
в MATLAB zyxwvutsr
работы
1 0 0 0 0 2 0 0 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Ф н у кц и
я diag сжи ул
т и дл я вы лнед и
я ди аго н ал
и м рати ц
ы в в ек отр
, н ап ри м е
р zyxwvutsrqp
» А = [10 1 2; 1 20 3; 2 3 30] А = 10 1 2 1 20 3 2 3 30 » d = diag (A) d = 10 20 30
В с е н фу к ц и и M ATLAB лд я со з адн и я м а рт и ц с п ец и ал ь н о г сп рав о ч н о й с и с е тм , см . п ну к т Arrays and Matrices п о др а з де л р а з де л а Functions — Categorical List. П р о ед л а й т а в от м а ит ч е с к о пис
е сю улдещ е
е п у р а ж н ен и е з ап о лн ен и х в фа й л . З а п о л н и т
ь дан н ы
М =
е дл е м а тр и ц
я то г , р а б о т
, чотб ы б еи у д с т я у с блоч н ы м е в фай л ы м а тр и ц ы
е и з а п и ш и т
1
0
0
0
0
2
2
2
2
0
1
0
0
0
2
2
2
2
1 2
0
0
1
0
0
2
2
2
2
2
0
0
0
1
0
2
2
2
2
2
0
0
0
0
1
2
2
2
2
2
3
3
3
3
3
- 4
0
0
0
0
3
3
3
3
3
0
- 4
0
0
0
3
3
3
3
3
0
0
- 4
0
0
3
3
3
3
3
0
0
0
- 4
0
3
3
3
3
3
0
0
0
0
- 4
М а тр и ц у М м ожн р а тн ы х блок в р аз м ер щ и eye, а в н е ди а го н а л ь н ы
о п р е сд а т в и т а п я ть
ь в в и ед , ди а го н а л ь н ы е — с и с п о л ь з о в а н и е
о ви д
а о п и сан ы в а Mathematics
, ч т о в ы о св о и л и и м а тр и ц а м и и за :zyxwvutsrqponmlkjihgfedcbaZ
2
блоч н о е блок
2
1
0
0
0
0
0
1
2
1
0
0
0
0
0
1
2
1
0
0
0
0
0
1
2
1
0
0
0
0
0
1
2
1
0
0
0
0
0
1
2
1
0 V
0
0
0
0
1
2
й м а рт и ц и ф о р м и р ю у ст м ones:
»
М = [ e y e ( 5 ) 2 * o n e s ( 5 ) ; 3 * o n e s ( 5 ) - 4 * е у е ( 5 ) ]
»
s a v e ' M . t x t ' M - a s c i i
;
ы и з ч еы т р е я пр
х к в ад и п о м о
-
л ав Г
2. Рабо т а
с м ас и вам и
К в а д р тн а я м а рт и ц э т у м а рт и ц у , м о ж н мо й ди а го н а л ь н о м и н а д и п о д гл а в н о » G = 2*е( еу 7
97zyxwvutsrqp
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA tk р а з м е р а см е ь я в л се т я тр едих а го н а л ь н о й . З а п о л н я я о и сп о ль з о в ат ь т о о б с от я е л ь с вт о , ч т о G яв л ест я м су й м арт и ц ы и дву х м а рт и ц с ш еьст ю н е н л ву ы м и э л е м н ат й ди а г о н а л ь ю .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG ) + diag(ones(l, б ) , 1) + diag(ones(1, б ) , - 1)
>> save 'G.txt' G - ascii
П о с м о тр и т п о дк а т л о г М а тр и ц гр а м В ю су л е д щ е ри чн ы
е с о ед р ж а н и е work о с н о в н о г
»
П осл
х фа й л о в (он и од л ж н а MATLAB).
о к а т л о г
ы н а о х ид ь т с
я в
ы бо ль ш и х р аз м ер о в о д бу н о п р е сд а т в л я т ь в н а г л я нд о м в и ед . В п р о е MATLAB э т о м о ж н о п р о де л а т ь п р и п ом щ и в и з а ул и з а ц и и м а тр и ц . м р а з ед л е раз обран ы п р о с е тй ш и е сп ос б ы в и з а ул и з а ц и и м ат х ад н н ы х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
иВ з а у л и з а ц М а тр и ц и.м ын п о чл у и т н фу к ц и р а з ед л
е п о ч л уе н ы
я м а т ри ы с до с та о ч н Ча с т о н е о б х ид м ь ат к н а з ы в а е м ы я spy. П о с м о тр и е G = 2 *е уе ( 7
е в ы п о л н ен и
Н а в е р ит к а л ь н о ц о в . Н ен луев ы ку а з а н о ч и сл
о бо ль ш и о з н а ть й н о л а бш м ш абло
м к о л и ч е с вт о , гд е р а с п о л ж ен м а рт и ц ы н м а рт и ц
) + d i a g ( o n e s ( l ,
я к о м ан д . 2.10 и з о б р а ж ен
Figure 1. Н а р и с
и н с рт м у е н от в
ц м н ле у
й н а з ы в а ю ст
ы н е л в уы . Д л я э от г ы G , о п р едл н н о
б ) , 1) + d i a g ( o n e s ( l ,
я р-не жеазр
е э л е м н ыт , т . е . о в M ATLAB жслиу т й в п реыд щу е м б ) ,
- 1)
ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE spy н а э к р а н е п о я в л ес т я гр а фи ч е с к о е окн о а ч аст ь окн а бе з з а г о л в к а , м не ю и п ан ел и
. й и г о р и з о н та л ь н о е э л ем н т ы о б з н ач ен о н ен лвыу х э л е м н от
й о ся х о лт ж е н ы м ар к ер ам и в (nz = 19).
ы н о м ер а с рт о , вн и з у гр а фи ч е с к о г
к и с от л б о окн
Н а г л я дн у ю и н фо р м а ц и ю о с о нт о ш е н и и в ел и ч и н э л е м н от в м а рт и ц ы да е н фу к ц и я imagesc, к о т р а я и н ет р п р е ит р е у т м ар т и ц у к а к п р я м о гу л ь н о е изо б р аж ен и е . К аж ыд й э л ем н т м а рт и ц ы п р е сд а т в л я ес т я в в и ед к в а д р а ти к а ц ве т к о т р о г о с о в т ес у т в ел и ч и н е э лем н ат . Д л я то г о ч от б ы зу н ат ь со т и сп о ль з о в ат ь к о м ан д о вт ес и е ц в ет а и в ел и ч и н ы э л е м н ат , е сулд coiorbar, в ы в о ядщ у ю р я до м с и з о б р аж ен и е м м а рт и ц ы ш к ал у ц в еа т . Н а к о н ец , дл я п еч ат и н а м о н о рх м н о м п р и н ет р е уодбн о п о лч у и т ь и з о б р аж ен и е м рабо о е тн к а х с ер о г о ц в е ат , и сп о ль з у я к о м ан д у coiorm ap(gray). М ы бе д у ат ь с м арти ц е й М , о п р едл н н о й в п рыед щ у е м р а з де л .
а т , у в -
98
/. Ос но вы zyxwvutsrqponmlkjihgfedcbaZYXWVU работы в MATLAB zyxwvutsrq
аЧс т ь
2 3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 4 5
6 7
О
1
Рис
Рис
2
. 2.10. Ш а б л о
. 2.11. И н етр п р еатц и
3
4
н р аз р еж н н о
я м арт и ц
5
6
й м арт и ц
ы к а к и з о б р а ж ен и
7 zyxwvutsrqponmlkjihgfedcbaZYXWVU
ы
я
л ав Г
2. Рабо т а
Н аби рай т г о о к н а
с м ас и вам и
99_zyxwvutsrqp
е к о м а н ды , ука з н н ы е н и же , и слиед т е з а с о т ян и е м гр а фи ч ес к о :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
-
» imagesc (M) » colorbar » colormap(gray) В р е з л у ь ат н а р и с
е п о чл у а е с т я
н а г л я нд о
е п р е сд а т в л е н и
е м а рт и ц ы
, п р и в едн н о
е
. 2.11.
П о др о б н о п р о и сп о ль з о в ан и гл а в х , о дн а к о ж у е с ей ч а м и м ы бе д у м р а б о та ь пр
о э П л е м е тн ы
е гр а фи к с в ы м о ж ет и и зчену и
и в MATLAB н а п и с а н е в и з ау л и з и р о в а т ь м а тр и ц ы и п о э лем н т ы х м а рт и ч н ы
е опе ра иц е фицунк
и вст роеын П оск оль к н ен и и з в о я сд т (так и м м а тр и ц а м
ы и м а рт и ц ы р ха н яс т х н фу к ц и й к м арт и ц а я ат к ж е , к а к лд я в е к то р в и к а к min, max, sum и т . д. ) и м е .
е опе ра иц е в д е м а рт и ц
мУ н о ж ен и рд г оу
е к а ж до г й п р о и з в о ди ст
.zyxwvutsrqponm
и
у в е к от р
В в ие д т
х
и я в в дм у е р н ы х м ас и в ах , т о п р и м е м и п о э лем н т ы е о п ер а ц и и п р о . Р а б о т а с о в с рт о е н н ы м и нф у к ц и я м и т св о и о с б е н н о с т и в п р и м ен ен и и к
е м а ет и ч е с к и
о э П л е м е тн ы
о в ю с лу е д щ и , с к о т р ы х о п ер ац и й
и с м а т риацм
и
ы
о э л ем н т я п р
а о нд о
й м а рт и ц
и п о м щ
и о п е р а то р
ы н а с о вт ес ю у щ и а . *
й э л ем н
т
» с = А. * В с = - 2 10 - 8 21 - 12 - 45 Д л я е лд н и р о й и с п о л ь з ес т у юв у щ и е э лем н т »
я э л е м н от
в п ер в о я . / , а дл я делн и ы п ер в о й сжлиу
R 1 = А . / В
R 1 = - 2 . 0 0 0 0 2 . 5 0 0 0 - 0 . 1 2 5 0
й м а рт и ц я э лем н от т . \
ы н а с о вт ес ю у щ и в в то р о
й м а рт и ц
е э л е м н ыт ы н а с о вте
в от
-
100
аЧс т ь
I. Ос но вы
работы
в MATLABzyxwvu
0.4286 - 1.3333 - 1.8000 » R2 = А.\ В R2 = - 0.5000 0.4000 - 8.0000 2.3333 - 0.7500 - 0.5556zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е в о з в едн и
П о э л е м н нт о »
е в септ н
ь ощсу есвтля
я пр
и п о м о щ
и . А zyxwvutsrqponmlkjih
Р = А. ^ 2
Р = 4 2 5 1 9 1 6 8 1
П о к а з а те л в о з в о ди м а с е пт н и
ь ес п т н и м ож е т бы т ь м арт и ц е я в с ет п н ь . П р и э от м э лем н т , р а в н ы е э лем н ат м в то р о й м а тр и ц ы
й то г о ж е р а з м е р а ы п ер в о й м а тр и ц :
, ч т о и м а тр и ц а ы в о з в о яд с т
, я в
» Р В = А." В Р В = 1.0е+00 3 * 0.0005 0.0250 6.0010 2.1870 0.0000 0.0000
О б р а ти щи о вт е
е вн и м ан и й м н о ж и етл т в ы г л я ди
е н а фо р м ь 1. О+ е о з дл т та к :
у вы вод я в ес х э л е м н о т
а р е з л у ь ат
. В о - п ерв ы х в р ез луь ит рюу щ е
, в ы едл й м а тр и ц ы
н об , т . е .
, Г 0.000 5 0.0250 0.0010^1zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO ( 0.5 25 \ Л 3 Р Я = 10 - = ^2.1870 0.0000 O.OOOOj ^2187 0 0J В о - в от р ы х ет р
, п р я от ч н о с т
и в о з в е дн и и и з - з а то г
и 4~ 3 и 9~5 п о члуи л с , ч т о и с п о л ь з о в ал с
ь н л иу я фо р м а
, т . е . п р о и з о ш л т sh o rt . Д ел о в то м
4~ - 0.0156, 9~~ - 0.000016935, а э т и ч и сл а м ал ы п о с р ав н ен и н ы ми , и до п су ти м о г о ч и сл а з н ак о в фо р м а т а sh ort н е вха те т лд б р аж ен и я н а э к ран е . Е сл и м ы о и хт м п о лч у и т ь бо ле е то ч н ы й р е з л у ь ат э л е м н нт о г о в о з в е дн и я в с е тп н ь , т о м ы до л ж н ы з адт ь фо р м а з а ет м в ы в ес т и РВ с н о в а : » format long » Р В Р В = 1.О+ е 00
3 *
а п о , ч т о
ю с о с ат л ь я и х от т по т long, и
-
Глав
2. Работ
с масив
101zyxwv
0.00050000000000 0.02500000000000 0.00100000000000 2.18700000000000 0.00001562500000 0.00000001693509zyxwvutsrqponmlkjihgfedcbaZYXWVUT
З а м е ьт , ч т о п о в то р н о г о в ы ч и с л ен и я э л е м н от в м а рт и ц ы zyxwvutsrqponmlkjihgfedcbaZYXWV РВ н е п о тр е б о в ало сь . В н е з ав и с и м о с т и о т с уат н о в л е н н о г о фо р м а т а вы вод а вс е в ы ч и сле н и я п р о и з в о яд с т я с дв о й н о й от ч н о с ьт ю (в п р едп о л ж ен и , ч т о да н н ы е ти п а sin gle н е учасвюту т в о п ер а ц и я)х . П ер й ед м е тп р ь к в ы ч и слен и ю м ае т ит ч е с к и х н фу к ц и й о т э лем н от в м а рт и ц .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
ис л ч е ы Вн о т э л е м е тн о
е м а т е м а т иеч с к в м а т ри
О ч ен
ь в аж н о ср аз гд е А — к в а др тн а котро е о щ с у е св т л я воз м ож н ост ь в ы ч и с л ен и р и ц о п и сан о в р.азд и ц р" а в ы г л 6). З ап и с м ен от
х фицнук ц
у п о н я ть , ч т о в к н и га х п о ет о р и и м а рт и ц фо р м лу а cos Л , я м а тр и ц а , о з н а ч е т в ы ч и с л ен и е к о си н су а о т м а тр и ц ы , я п р и п о м щ и р а з л о ж ен и я в р я д . В M ATLAB и м сет я я н фу к ц и й о т м а рт и ц (вы ч и слен и е нфу к ц и й о т м ат "Сетвсынб о а лисч и в,ыкерто м,аитцры фукн ци мат-
ь с = cos (А ) в MATLAB п р и в о ид в м ас и в а А И з ап и с и и х в м аси
Н а о х ж ед н и е
й
, н а п р и м е р
, к о си н соу
в с то г
т к в ы ч и с л ен и о ж е р а з м е р а
в о т э лем н от
в м а рт и ц
' я / 2 - я / 2
п р о и з в о д и ст
я пр
и п о м щ
и сю луед щ и
О
в о т э ле
-
ы
Л
я
- я
2я
0
2я
я/ 3
х к ом ан
ю к о с и н с уо , ч т о и А .
д
» А = [pi/2 - pi/2 0; pi - pi 2*pi; 0 2*pi pi/3]; » С = cos(A) С = 0.0000 0.0000 1.0000 - 1.0000 - 1.0000 1.0000 1.0000 1.0000 0.5000
нА а л о г и ч н в ан и ми н и муа бот
е нф у к ц и е с в е к то р а м и
о в ы ч и с л я ю тс й о б р а б о тк , мсу ы и др . .
я и др г у и и да н н ы ) н е с к о л ь к
е м а те м а ти ч е с к и х дл я м а т р и о о тл и ч а е тс
е ф ну к ц и ц (н аохж ден и я о т и х п р и м ен ен и
. И с п о л ь з о е м ак си м у а я пр
, и ра -
102
аЧс т ь
рП и м е н и
е фицунк
ы на д
й обра бот к
х к м а т риац
Ф ну к ц и я sum в ы ч и с л яе р ы в M ATLAB, та н и к ае т в о п р о с : ч т в е к то р , а м а рт и ц у котро й р а в н а ч и сл с о вт е с ю у щ е г о »
м
I. Ос но вы
в MATLAB zyxwvut
работы
и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
т м су у э лем н от в в ек от р а . С дргуо й с то р о н ы к ж е к а к и м а тр и ц ы , хран яст я в двмуер н ы х м ас и в ах о ж е бетд у , есл и в к ач есвт е а р мг у е н т а sum и с п о л ь з о в а т . О к а з ы в а ест я , MATLAB в ы ч и с ли т в е к от р - с рт о к у у с от л б ц о в м а тр и ц ы , а к ажыд й э л ем н т яв ляест с от л б ц а м а тр и ц ы , н а п р и м е р :
, в ек от
. В оз
, дл и н я мсу о
ь н е а й
М = [ 1 - 2 - 4
3 - 6
4
2 - 2 0] ; »
s = sum (M )
s = 6 - 1 0 0
Ф ну к ц и и н е дк см у и р о в а н и куа з
я sum п о му о л ч а н и ю в ы ч и с л яе с м ас и в а п р и фи к с и р о в а н н о е п о с тр о к а м , н ео б хид м в м ес т о и н едк с а , п о к о т р о м
т м су у п о с то л б ц а м м в то р о м . Д л я то г о ч от б о в ы з в ат ь sum с вмду т см у и р о в а т ь у е су л д
, и з м ен я ы п р о и з в о ди т я а р г м у е н ат м и
я п ервы
й ь ,
» s2 = sum(M/ 2) s2 = — S 1
о З а м е ьт , ч т о sum(M) и sum(M, l) п р и в о дя И та к , нфу к ц и я sum мсу и еру т и л и п о с тр о к а м р е з л уь ат т в в и д е в е к то р а и л и в е к от р - с рт о к и ц и я prod: »
р = p r o d ( M )
т к о ди н а к о в ы м р е з л у ь ат м , и л и п о с то л б ц а м , в ы ад в . нА а л о ги ч н о р а б о та е т и фн у к
»
р =
. я -
р 2 = p r o d ( M , 2)
р 2 =
б - 2 4 0
8 - 72 0
Ф ну к ц и р я дк в о ди
я so r t пу о р я до ч и в а е е воз растн и я т к уп о р ядо ч ен и
»
М С = s o r t ( M )
М С = 1 - 6 - 4
. В ы з о
т э л ем н т в so r t с о в от р ы ю э л е м н от в с рт о к
ы к а ж од г
о и з с от л б ц о м а р г м у е н от м
в м а рт и ц , р а в н ы
: »
MR = s o r t ( M , 2)
MR = - 4 - 2 1
м вд м у
ы в п о , п ри
-
л ав Г
2. Рабо т а
с м ас и вам и
103 zyxwvutsrqp
2 - 2 0
- 6 3 4
3 - 2 4
- 2 0 2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
Т а к ж е к а к и дл я в е к то р о в , н фу кц и е дк с о в с о вт ес и я э л е м н от в и о с н хд о г о н ео б хид м о в ы з в ат ь so r t с дмву »
я so r t п о з в о л яе й и уп о р яод ч ен н о я в ы о х нд ы м
т п о лч у и т
ь м а рт и ц й м а рт и ц
и а р гм у е н а т м и
. Д л
у ин я э от
-
:
, I n d ]zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA щ so r t ( M )
[М С
м с = 1 - б - 4 2 - 2
0
3 - 2
4
I n d = 1 2 3
1 1 3
2 3 2
М а рт и ц ы м , м с и . in d связ ан дг е i и j и з м ен яю ст я о т о дн о г Ф ну к ц и и л и м и н и м аль н ы
и max и min в ы ч и с ляю е э лем н т
ы мжде
у со б о д о трех
й так
т в е к от р - с рт о к у ы в со втесюу щ и х
, соедр ж ащ у с от л б ц а
» rax = max(M) mx = 3- 2 4 Д л я то г э л е м н от в
о ч от б
ы зу н ат ь н е то л ь к , н о и и х н о м ер а в с от л б ц а х
о з н а ч ен и
я м ак си м аль н ы , е сулд
т в ы з в а т
х и л и м и н и м ал ь н ы ь max и л и min та к
х :
т п =
3 - 2 4
•
к = 2 1 2
1- 6- 4
п = 1 2 1 е вн и м ан и е э л е м е н та
, ч т о в о в то р м с от л б ц — п ер в ы й и тр е ти й . В седг о э л ем н т а (в от р й э л ем н т к ж е р а б о та е т и min в счлуа е дву х е м а тр и ц ы . Ф ну к ц и и max и min п о з в о л яю е э л е м н ыт и з в уд х м а рт и т в н ову ю м а рт и ц у то г о ж е р а з м е р а
Р = [4
2 0 7 ] ;
е :
» [mn, n] = min(M)
т х =
»
ю м ак си м аль н ы х м а тр и ц ы
» ran = min(M) mn = 1- 6 - 4
>> [mx, k] = max(M)
О б р а ти т м аль н ы х м ак си м аль н о г Точн о ат в с от л б ц и л и м и н и м аль н ы сат ь р ез луь ат
: м с ( i, j) = м ( ind (1, j ) , j) ,
.
3- 1
е м а рт и ц ы м дв а р а в н ы х м ак си а в о з в р а щ а е ст я н ом е р п ер в о г в в е к от р - с рт о к е рав е н еи д н и ц е ) рав н ы х м и н и м аль н ы х э л е м н от т в ы ед л и т ь м ак си м аль н ы ц о ди н а к о в ы х р аз м ер о в и з ап и , ч т о и и оснхд ы е :
о . в е -
104
Часть
I. Основы
работы
в MATLAB
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Q = [10 0 11 - 5 3 22] » R = max(P, Q) R = 10 3 11 2 3 22zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Онд и с ы в ас е т м а рт и ц ы
м и з а р гму ен от я м ак си м у :
»
S = ш а х ( Р
/
в м ож е м и з э то г
т бы т о ч и сл
ь ч и сло . В р ез луь ит рюу щ у а и с о вт е с ю у щ е г
а н фу к ц и и м а к с и м а л ь н о
й min и л
ю м а рт и ц о э лем н т
у з ап и а и о с н дх о
й
1)
S = 4 3 1 2
17
Е сл
и о б с я м и н и м а л ь н о Дл
а а р гм у е н т е и л
я н ао х ж е д н и с тр о к а м п ыс т у
я м ак си м у , п р есудм о рт ен м м ас и в о м
а ил а с ю л уе д щ а
и ш а х яв ляю ст е и з эит х ч и сел
и ми н и му я фо р м
я ч и слам и
, т о в о з в р а щ а ет
-
.
а н е п о с от л б ц а а в ы з о в а с о в от р ы
м м а тр и ц ы м а р мг у е н от
, а п о м —
:
» mx = max(S, [ ], 2) mx = 4 7 Д л я то г в с рт о к а х
о ч то б , и сп о ль з еу
ы д о п о л н и те л ь н м вы з о
в ш а
о п о чл у и т х с дмву
ь н о м ер я в ы о х нд ы м
а м ак си м аль н ы и а р г м у е н та м и
х э л ем н от :
в
» [mx, j] = max(S/ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [ ], 2) mx = 4 7 j = 1 3 Р а с м о рт и ит
в ч а с о в
м нфу к ц и й с рт е л к и
» ql = rot90(p) ql = - 1 7
ю rot90, п о в р а ч и в а ю щ у . П р и м ен и т е эт у нфу к ц и
ю м ас и ю к уп о м и н ав ш емсу
в н а 90 гр асдуо
в п ро я м ас и в
у р :
л ав Г
2. Рабо т а
с м ас и вам и
105zyxwvutsrqp
3 О 4 2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р и м ен и т
е фну к ц и
ю п о в то р н о
, теп р
з серид н
т з ер к аль н о у м ас и в а
ь жу
е к м аси в
у qi.
» q2 = rot90(ql) q2 7 0 2 - 1 3 4 Ф ну к ц и л и , п р о хядщ е
я fi i p i r о бесп еч и в ае й ч ер
е о рт а ж е н и
е о т с ул о в н о
й в е р ит к а
-
:
» fiipir( q2) ans = 2 0 7 4 3 - 1 О б р а ти ви е
е в н и м ан и м фн у к ц и
е н а то и fi i p i r :
, ч т о в ек отр - сотлб е
ц н е и з м ен ясет
я по
д в о з ед й с т
-
» q3 = [1; 2; 3; 4; 5]; » fiipir( q3) ans = 1 2 3 4 5 Бо л е ж ен и к о м а н од н ап р и м ер В з а к л ю ч ен и н ы х п р
е п о др о б н я ил
о п р о о б р а б о тк у м а рт и ч н ы и в ы в ес т и сп и со к в се х в с рт о е н н ы й help datafun, а з еат м п о с м р те , help max, и л и о бр аит ь с я к и н етр аки в н о е э от
и п о срт о ен и
и р ка Г ф
и фицунк
П о с рт о е н и н о й о б л а с т
е гр а фи к и о п р е дл н и
1. Р аз б и ен и
е о б л а с т
й гл а в и гр а фи к о
ы о п и са
н п ри н ц и в фн у к ц и
й дув а н фу к ц и и о п р е дл н и
х пе р м е ын и дву
я п ер м ен н ы
й дву
х п ер м н ы х в к л ю ч ае я п р я м о гу л ь н о
х ад н н ы
х м ож н х н фу к ц и
ь и н фо р м а ц и
о зу н ат й о б р а б о тк ю о н жну о
й сп р ав о ч н о п и сп о ль з о в ан и х п ер м ен н ы
ь и з п р и л о и да н н ы й фн у к ц и й си емст
х , .
я м а рт и ч н ы х ад н х в M ATLAB.zyxwvutsrqponmlk
х х в M ATLAB н а п р ям огу л ь т д в а п р е вд а р и е т л ь н ы й с е кт о й
.
х э та п а
:
I. Ос но вы работы в MATLAB zyxwvut аЧс т ь 106zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
2. В ы ч и слен и пис
е з н ач ен и
П о с рт о и
и в то ч к а
к н фу к ц и
й (н а п р и м е р фну к ц и
, с ш а го й в уз лах
Рис
о и сп оль з оват ь лд я р х а н е н и х с тр о к т о ди н а к о в ы
кс ет л ен и м а рт и ч н ы м
и з ап и ш е я м а рт и ц
я ли н и
и z(x, у) = х +у н а о б л а с т
а xe [ 0, l ] , y^ [ 0, l ] . Н е о б х ди м
до У б н ш ес т о ди н а к о в ы ед р ж и
х п ер с ч ен и
й к с те
и и за -
.
м гр а фи
к в а др т ск ето з н а ч ен и я
й н фу к ц и
ь и х в м а рт и ц у
м 0.2) та к , о б о з н а ч ен н ы
. 2.12. П р ям огу л ь н а
ь вд я и н фо р м а ц и , в к о т р ы е с от л б ц
м в м а рт и ц ы z и сп о ль з еу и о п ер ац и ям и
о раз би т , к а к п о к а з а н х то ч к а м и
я о б л ас т
а в дм у е р н ы
и о п р е дл н и ь к в а др о н а ри с .
ь п о ср т е н и
я в в и ед т р ав н о м ер н о
й
. 2.12, и в ы ч и сли т
я гр а фи к
ь
а
х м ас и в а х и Y р а з м е р н о с ть ю ш ес т ь н и о к о р ди н а т х зу л о в . М ас и в х со ти т и х з ап и сан ы к о р ди н а т ы xl, х2, ..., хб , a Y со ы с yl9 у2 9 ..., у6 . З н ач ен и я н фу к ц и и в з ула
у z та к о й ж е р а з м е р н о с т и (6x6), п ри ч е м в ы р аж ен и е л д я фн у к ц и , н о с и мтнеы ме плэ о . Т о гда , н а п р и м е р , z (3,4) к а к р а з едбу
м лд т р а в н
я вы чи с
а з х -
о з н а
-
л ав Г
ч ен и
107zyxwvutsrqpo
2. Рабо т а
с м ас и вам и
ю н фу к ц и
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA z(x,у) в то ч к е (хЗ , у)А . Д л я ген ер ац и и м ас и в о в с ке т и х и
Y п о к о р ди н а т м з уло в в MATLAB п р сеудм ортен а н фу к ц и я meshgrid, дл я п о с рт о е н и я гр а фи к а в ви д е к арк асн о й п о в е рн х о с т и — нфу кц и я mesh. С ле ю уд щ и е о п е р а то р ы п р и в о дя т к п о яв лен и ю н а э к р а н е о к н а с гр а фи к о м н уф к ци , и з о б р аж ен н ы м н а р и с . 2.13 (то ч к а с з а п яот й в к о н ц е о п е р а то р в н е сат в и ст я дл я то г о , ч от б ы п р о к о н тр о л и р о в а т ь ге н е р а ц и ю м ас и в о ) :zyxwvutsrqponmlkjihg » [X, Y] = meshgrid(0:0.2:1, 0:0.2:1) X = 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 Y = 0 0 0 0 0 0 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Л
» Z = Х.
2 + Y.^2
Z = 0 0.0400 0.1600 0.3600 0.6400 1.0000 0.0400 0.0800 0.2000 0.4000 0.6800 1.0400 0.1600 0.2000 0.3200 0.5200 0.8000 1.1600 0.3600 0.4000 0.5200 0.7200 1.0000 1.3600 0.6400 0.6800 0.8000 1.0000 1.2800 1.6400 1.0000 1.0400 1.1600 1.3600 1.6400 2.0000 » mesh(X, Y, Z)
Г р а фи и з- з то ч н о г
к нф у к ц и а р екд о
й с ек т и о п о с рт о е н и
, и з о б р а ж ен н ы , п о к р ы в аю щ е я се луд
й н а р и с . 2.13, п о члуи лс й о бласт ь и з м ен ен и т в ы б р а т ь м ен ь ш и й ш а
» [X, Y] = meshgrid(0:0.05:1, 0:0.05:1); Л
»
Z = Х .
»
m e sh ( X, Y, Z)
С о вт е с ю у щ и
2 + У .
Л
2;
й гр а фи
к п р и в ед
н н а р и с
. 2.14.
я д о с та о ч н я а р гму ен от в г с ект и
. Д л :
о грб уы я б о ле
м е
аЧс т ь
108
2
I. Ос новы
работы
в M ATLABzyxwvu
Т " ~ '
1.5- .- - - '
0.5v . А
0 5
^ ^ 5 < ^ у ' ' ^ ' zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
0.2zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
о о
. 2.13. Г рафи
Рис
к н фу к ц и
и
21.51 .. 0.50> 1 0.5 0 0
Рис С л ю е уд щ а н о с ет й
я гл а в , п р еод сатв л яем ы
. 2.14. Г рафи а п о с в ящ ен
к н фу к ц и
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH z{x, у ) н а боле е м елко й скет е
а п о др б н о м х M ATLAB дл
у о п и сан и я в и з аул и з а ц и
ю гр а фи ч е с к и и да н н ы х
х воз м ож .
-
л ав Г
2. Рабо т а
с м ас и вам и
Зад ни
109 zyxwvutsrqpon
я
лд я соньлетясма
й работ
с Уп е ш н а я работ а в M ATLAB и н и м ан и я п ри н ц и п о в о б р ащ ен и я ш ен и е п р и в е дн н ы х н иж е з адн и о п ер ац и и с в ек от р а м и и м а тр и ц а м и рн дт у е н и й п р и чен т и и ю с лу е д щ и ест ь к м аетр и ал у э от й гл а в ы и с п р а в о ч н о
я н а теврок
З а д ни В юс л уе д щ и н и я , п р и го дн ы ли ч н ы х п о к а з а ет л ь н ы
х з адн и я й лд
1. П ер сатв и т ц и ю п о хя д щ и
х н е о б х ид м я п рои з воль н ы х п р и м ер ах
и см у
у то л ь к ь э лем н ыт
5. З ам ен и т ег о э л ем н от в
ь вс е м и н и м аль н ы .
6. Н а й т
в бо ле
и ч и сл
З а д ни
ме
р м а рт и ц
е э лем н т
-
.
.
я о т с р ен д е г е г е о м е рт и ч е с к о е ы в е к то р
я и н е дк с а .
й в е к то р и н о м е р а м и
в в е к то р а
о г е о м е рт и ч е с к о г
о .
а м ак си м аль н ы
х и о рт и ц а етл ь н ы
м з н ач ен и е
х э л е м н от
в в е к то р а
м .
ы
ы А об з н ач и ы в п ер м н у
а с ч ент ы м
в е к то р а , о лти ч аю щ и ес е че м н а 10%, н а срнед
я м а рт и ц
ы м а рт и ц
, и сп о ль з у т в н о в ы
х э л е м н от
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA - 1.2 4.6 - 0.3 А =
Э л ем н т
й сп ос б реш е ь ег о н а р а з
м п о р я дк е ь р ез луь ат в е к то р
о п о л ж и ет л ь н ы
о п о л ж и етл ь н ы
а к в а др тн а
ь ну и в ер с ал ь н ы , и п р о те с и р о в а т
а в о б р а тн о , и з а п и с а т р э лем н ыт
я н а м ат риц
1. З а д н
е Toolbox н ев о з м о ж н а бе з п о и ад н н ы х . С а м о с т я е л ь н о е ре т в а м б уе и д ь т с я , ч т о в ы о с в о и л и , и э т и в о п р о с ы н е удб т в ы з ы в ат ь за х р а з де л о в . П р и н ео б хид м о с т и обращ ай й си семт .zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
.
ы в е к то р й в ек от
4. З ам ен и т ег о э лем н от
б о л ь ш и н с вт с м ас и в ам й п ом же
о п р и м уд а т х в е к то р о в
м в е к то р м ь в н о в ы
3. Н а й т
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
ы
ь э л ем н т
2. В ы елди т
ы
2.8
9.9
- 0.7
0.9
- 2.5
7.1
м aik . Т р ебсту ю п (к о н еч н о
я зу н а т , о н р а в е
ь и з ап и сат
н 3, н о лчуш
ь раз е и сп оль з о
-
аЧс т ь I. Ос но вы р аб о т ы в MATLABzyxwvu 110zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ю лд е н иж
в а т ь нфу к ц и п р и в е дн н ы
я а в от м а ит ч е с к о г е в ели ч и н
о о п р е дл н и ы м а рт и ц ы )
ы (н о р м
я р аз м ер а ) и в ы ч и сли т ь :zyxwvutsrqponmlkjihgfedcbaZYXWVU \ aik \ i, k= \ я с ат н д а р нт ы , тр а н с п о н и р о в а н и
\ > pie(data, parts)
л ав Г
3. Всы о кру вне ая
М ожн ет л ь н о в е к от р
о о е д тл и т м в е к от р в бы л
121 zyxwvutsrqpo
гиакр ф
ь н ес к о л ь к е н а п о хя д щ и и о ди н а к о в ы
Рис
о с е к от р в
, р а с п о л ж и х п о з и ц и ях
. В аж н
в еи д н и ц о то л ь к о
ы в о в с п о м о га , чотб ы р аз м ер
ы
.
. 3.9. Каво г ур
я дмаирг
а с н е лы од т
м сор тк е
м
В к а ч е с вт е пу р а ж н ен и я н ап и ш и т е к о м ан д ы п о с рт е н и я ди а г р а м ы с ео д т л ен н ы м с е к от р м , со втесюу щ и м м ак си м аль н о м у з н ач ен и ю с р ед и э ле м ен от в в е к то р а , а в от м аит ч ес к и с о з ад в в с п о м о г а ет л ь н ы й в е к то р . И с п о л ь зйу т е н фу к ц и и zeros лд я со з адн и я н л еу в о г о в е к то р а от й ж е дл и н ы , ч т о х , и max. с вмду я в ы о х нд ы м и а р мг у е н а т м и лд я п о и с к а н о м ер а м ак си м аль н ог о э л ем н т а в в е к от р е х . Н и ж е п р и в е дн а р т е б му а я п о с л е од в а е т л ь н о с т ь ко м ан д :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> parts = zeros(size(data)); >> [ж , ind] = max (data) ; >> parts(ind) = 1; » pie(data, parts)
В и з а ул и з а ц и pie3 и Ь а гЗ н ап р и м ер
я в е к от р н ы , к о т р ы , к о м а н д
е с рт о я
х ад н н ы т тр емх р н ы
х м ож е
ы
» data = [24.1 10.2 17.4 11.9]; » parts = [ 1 0 0 0 ] ; » pie3(data, parts)
т бы т е к ргоу в ы
ь о щс у е св т л н е и с от л б ч а ыт
а п р и п ом щ е ди а г р а м ы
и ,
аЧс т ь
122
п р и в о яд то р о м
т к п о яв л ен и , и з о б р а ж ен н о
ю р т ем х р н о й н а р и с
Рис
и с т р Г оа г м м
. 3.10. Тнр ема х ер
ы втеыронк
О б р а б о тк ил и ин о н и и дан н ы
а да н н ы й и н те р в а л х жс л у и
й к р г уо в . 3.10.
х в к лю ч ае . Д л я п очлуен и т н фу к ц и
й ди а г р а м
я каво г ур
х дыан
I. Ос но вы
в MATLAB zyxwvuts
работы
ы с оедлт н н ы
м к се
-
а zyxwvutsrqponmlkjihgfedcbaZ
я дмиарг
х
т воп ро
с о то м я н а г л я дн о г я h ist . Н а п р и м е р
, с к о л ь к о п р е сд а т в л е н и , к о м а н д
о да н н ы
х п оп ал о в то т я о р а с п р е дл ы zyxwvutsrqponmlkjihgfedcb
» data = randn(100000, 1) ; » hist(data) з ап о лн яю т в е к то раз би ваю т и н те р в а л (п о му о л ч а н и ю валов . П о лчу а ю щ а яс ^ О б ри а т
р dat a ч и с л а м и , к о т р о м ) и с рт о я т г и с от г р а м я ги с то гр а м
Пр и м е ча ни
е в н и м ан и н хе р в м л г у у з н ач и т 10 000, т . е . п о виреткальн о Дл ку а з а т ск ог
я в уе л и ч е н и ь ч и сл о р аз би ен и
, р ас п р едл н н ы м у о н и п р и н а дл е ж а т у п о п адн и а п р и в едн
и п о н о р м а л ь н о м , н а едсят ь равн ы я ч и се л в к а ж ыд а н а р и с . 3.11.
у з ак о н у х ч а се т й и з и н етр
, й -
е е н а м с ша т б в и ре т к а л ь н о , чт о з н чае и я п о в и ер т к а л ь н о й ос и оолжнет ы чилс
я ч и сл а и н ет р в а л о о и н те р в а л о в , н а п р и м е р я н а равн ы е и н ет р в а л
в е с лу д
. иЧ сл о 104 в воел м й с о и м н у о ж юа с т я н а а 5000, 10 000, 15 000 и т . д .
й о си
т в к а ч е с вт е в то р о г , h i st (data, 50). В м ест ы м ож н о и сп о ль з о в ат
о а р гм у е н т о а в то м а ти ч е ь с о б с вт е н н о е
а ,
л ав Г
3. Всы о кру вне ая
гиакр ф
з ад в в то р ы д ы
м а р мг у е н о т
123 zyxwvutsrqpo
м в е к то р
, со едр ж ащ и
й ц е н рт ы и н те р в а л о в . К о м а н , zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
» data = [0.9 1.0 1.1 1.2 1.4 2.4 3.0 3.3] ; » centers = [1.1 2.3 3.2]; >> hist(data, centers)
- 5 Рис
Рис
4 -
. 3.11. Гмар го итс
. 3.12. Гмаргоитс
а рн еил д епрса
а рн ели дпесра
3 -
2 -
1 0 1 2 3 4 5 я че ис
я п о ималврне т
л п о дт яс е
и иал врен т
, змыеав да
м
м цмарн ет
и
аЧс т ь I. Ос но вы работы в MATLABzyxwvut 124zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
п р и в о яд т к п о с рт о е н и к и н а го р и з о н та л ь н о
ю ди а г р а м ы й ос и о мт еч а ю
, и з о б р а ж ен н о т ц ен рт
й н а р и с ы и н те р в а л о в
. 3.9, гд е з в ез одч
-
.
Ча с т о н е о б х ди м о з адт ь н е ц е н рт ы , а гр а н и ц ы и н те р в а л о в . Д л я п о срт е н и я ат к и х г и с то г р а м м е с лу д т и сп о ль з о в ат ь н фу к ц и ю h i st c в со ч еатн и и с в ы ш ео п и с ан н о й bar. Ф ну к ц и я h i st c в о з в р а щ а е т в е к то р , со едр ж ащ и й ч и сл о в ел и ч и н , п о п а в ш и х в з а д н н ы е в от р ы м а р мгу е н от м п о л у тк р ы ты е и н е рт в а л ы с в к л ю ч ен н ы м л ев ы м кон ц ом . П р и п о м о щ и н фу к ц и и bar с до п о л н и етл ь н ы м а р мг у е н о т м • h istc1 п очлуен ы й в е к от р п р е сд а т в л я е с т я в в и д е ги со т гр а м ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » data = [0.9 1.0 1.1 1.2 1.4 2.4 3.0 3.3]; » intervals = [1.1 2.0 3.2]; >> count = histc(data, intervals) count = 3 2 0 » bar(intervals, count) В р ез луь ат п р и в е дн н а
е в ы п о л н ен и я н а р и с
Рис
. 3.13. Г и с от гр а м
я в ы ш ео п и с ан н ы . 3.13.
а р а с п р е дл н и
Ф ну к ц и ю h i st м о ж н о в ы з ы в ат м и л д я п о чл у е н и я м ас и в о э от м г и с т о г р а м а н е с рт о и ст я
х к о м ан
я п о и н етр в ал м
ь с онд и в с и н фо р м а ц и е . В счлуа
м ил е о дн о г
д п о я в л ест
, з а д в а ем ы
и мв д у я в ы о х нд ы м й о р а с п р едл н и о а р гм у е н т
я г и с то г р а м а
,
м гр а н и ц а м
и
и а р мг у е н а т и да н н ы х а в н ег о з а п и с ы в а
, п р
и -
л ав Г
3. Всы о кру вне ая
с те
я в е к то р , со едр ж ащ и п ри м е р ед м о н с р т и р е у к о м п о н ен т а котрог и з п ят и и н етр в а л о
гиакр ф
125zyxwvutsrqpo
й р ас п р едл н и е да н н ы х п о и н те р в а л м . С люеуд щ и й т с о з ад н и е в е к то р а count и з п ят и э л ем н от в , к аж д я о я в л се т я ч и сло м э л е м н от в и з data, п о п ав ш и х в о ид н в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
>> data = randn(10000, 1); » count = hist(data, 5) count = 98 1915 5398 2434 И сп оль з ован и ет л ь н о г
о в е к от р
е h i st с дмву а с и н фо р м а ц и е
155
я а р мг у е н ат м
и п р и в о ди
т к п о чл у е н и
й о р а с п о л ж ен и
и и н ет р в а л о
ю до п о л н и
-
в
>> [count, in t ervals] = h ist ( d a t a , 5) count = 98 1915 5398 2434 155 intervals = - 3.0520 - 1.5614 - 0.0707 1.4199 2.9106 Ф ну к ц и я rose п р енд а з н а ч ен а дл я п о срт о ен и я г л оу в ы х г и с от г р а м м (в п о л яр н ы х к о р ди н а т )х . рмАгу ен от м н фу к ц и и rose явлсет я в е к от р з н ач ен и й в р а ди а н а х . глУо в ы е г и с от г р а м ы да ю т н а г л я нд о е п р е сд а т в л е н и е о да н н ы х , с в яз а н н ы х с и з м ер н и ям и н ап р ав лен и й . П суьт , н а п р и м ер , в етч н и е отсу к . Р ез луь ат т и з м ер н и й к аж ыд й ч а с и з м ер ял о с ь н ап р ав л ен и е в ерт а в гр асуд х с о е др ж и с т я в фа й л е winddir.dat. Д л я в ы ясн ен и я п р ео б л а д ю щ ег о н ап рав ле н и я и сп о ль з йу т е к рг о у в ю г и с от г р а м у , сч и ат в з н ач ен и я и з фай л а в в е к то р data и п р е о б р а з о в а в и х в з н ач ен и я в р а ди а н а х . Ф а й л winddir.dat с орха н и т е в п о дк а т л о г е work о с н о в н о г о к а т л о г а MATLAB » data = load('winddir.dat'); » datarad = data * pi/180; » rose(datarad) П о лчу а ю щ а я с етуд
я к р г оу в а
я г и с то г р а м е н ап р ав л ен и
, ч т о п р ео б л а д ю щ е Ф ну к ц и п р е лд н и ным Е сл со б н фу к ц и ад н н ы м
а и з о б р аж ен е п р и м ер н
я rose, ат к ж е к а к и h ist , од п сук ае и п о и н ет р в а л м и о гр а н и ц а и а р гму ен ат м и . Г и с то гр а м а в э от и п р о и з в о яд с т й м а рт и ц у
я . Д л , ч т о и дл я и и з ло ж ен ы
и з м ер н и я о т б р аж ен и в е к от р н ы в сю улед щ е
я грпу
а н а р и с . 3.14. И з н е е сле о 100°.
т п о чл у е н и х и н ет р в а л о м счлау ы в ели ч и н
я м а рт и ч н ы х ад н н ы х м р а з де л
о р а в н
. О с о б ен н о с т .
е и н фо р м а ц и в п р и в ы з о в е н е о т б р а ж е тс я
, т о р ез луь ат х ад н н ы х и с п о л ь з ю у ст и работ
и о р а с е е е с в ы о хд . т п р е сд а т в л я е ы с м арт и ч н ы м
т я т е ж е и
-
аЧс т ь
126
р аб о т ы
в MATLAB zyxwvut
. 3.14. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Каво г ур я гмаргоитс а рн еил дперса я ннеплваир й вр те а zyxwvutsrqponmlk
с Ри
е м аытнрич
р П е с д т а в л е ни П р е дп о л ж и м с то л б ц о в т а в р ем н и н фу к ц и
I. Ос но вы
, ч т о в м арт и ц я р е з л у ь ат . Д л я п о срто ен и ю bar, з а д в в к ач есвт , с о едр ж аст
х дыан
х
е DATA, со тящ е й и з ч ые т р е х с рт о к и р те ы и з м ер н и й тре х в ели ч и н з а ч еыт р е м о ен я с от л б ч а от й ди а г р а м ы ад н н ы х п р и м ен и т е а р мг у е н т а м ас и в DATA:
х е
» DATA = [1.2 1.4 1.1 3.7 3.5 3.1 2.0 2.8 2.2 4.2 4.7 4. 1]; » bar(DATA) В р е з л ьу а т н а ри с котры н ам .
е п о я в л се т я ди а гр м . 3.15. Н а ид а гр м е р ас п о л ж ен х со ти т и з р е т х с от л б и к о в
а с г рп у и р о в а н н ы
х ад н н ы х ы ч ые т р
е г пр у
, со вютеу щ и
И сп оль з ован и е а р гм у е н о т в н фу к ц и и bar лд я в и з аул и з а ц и н ы х н е о лт и ч а е ст я о т с ч л уа я в е к от р н ы х да н н ы х , р а з о б р а н н о г щ е м р а з де л . Н а п р и м е р , ш и р и н а и н етр в а л о в м ж ед у с от л б ц а м п ы з а д е ст я п р и п ом щ и ч и слов г о п а р м е тр а . Д и а г р а м щ и ми с я с от л б ц а м и в н рт у и г р пу ы , п р и в едн н а я н а ри с П ОМ ОЩ
И b a r ( D ATA, 1 . 7 ) .
, и з о бр аж ен н а
ы да н н ы х х и з м ер я ы
, к аж д м в ел и ч
я я и з
и м а рт и ч н ы
х ад н о в п р ые д у и в н рт у и г рп у а с п ер к р ы в аю . 3.16, п о лчуен а пр
и
-
л ав Г
3. Всы окру вне ая
гиакр ф
127zyxwvutsrqpo
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA г
— 4 5
4
3 5
• 1
3
2.5
*•
• 1 1 1
ж • \
-
2
1.5
1
0 5
I п I S3t®i
В к ла ди а г р м с от л б и к а ли ч и н гр пу ы п омощ
д к а ж од
У 2 3 4
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
1 1
Рис
. 3.15. Д и а гр а м
а с грп у и р о в а н ы
Рис
. 3.16. Д и а гр а м с п ер к ы ваю щ и м и с
а с грп у и р о в а н ы
х ад н ы
я сотлбц ам
х ад н ы и
zyxwvutsrqponmlkjihgfe
х
х
й и з в ели ч и н в общ у ю м су у в н рт у и грпу ы ох р о ш о в и ед н н а е с н ак о п лен и ем , в к о т р о й к аж д я г р пу а о т б р а ж е тс я в в и ед , с о т ящ ег о и з ч а с ет й . Чи с л о ч а се т й равн о ч и сл у и з м ер я м ы х ве , а и х в ы с о т а с о вт е с у т в к лад у к а ж од й в ел и ч и н ы в мсу у в н рт у и . Н а р и с . 3.17 п о к а з а н а ди а г р а м а с н ак о п лен и ем , п о с рт о ен н а я п р и и ф ун к ц и и ba r с д о п о л н и т е л ь н ы м а р г ум е н т о м : b a r (DATA, • s t a c k 1 ) .
аЧс т ь
128
. 3.17. Дмиарг
Рис И сп оль з ован и bar. Н а гл я дн а ри чн ы е да н н ы е
е фну к ц и я рт е м х р н а , п о лчуаестя
и barh в счлуа я с от л б ц е в а , лсе и п р и м ен и т
Рис П р о с л е ди т в общ у
ю м су
ь з а и з м ен ен и е у п о з в о л яе
. 3.18. Дмиарг м в ели ч и т н фу к ц и
I. Ос но вы
а с н епилока
в MATLAB zyxwvutsr
работы
м
е м а тр и я ди а г р а м а
ц ощсу есвтля
я та к ж е , п р едс атв л яю щ а ю Ь а гЗ
ь фн у к ц и
а с м я отсалб н и о дн о в р ем н н я area, в ы в о дящ а
, к а к и я м ат -
.
и о зу н а т я ди а г р а м
ь вкла
д з н ач ен и у с о б л а с ят
й -
л ав Г
3. Всы о кру вне ая
гиакр ф
ми од
. З а п и ш и т в п р о к уд ц и м ы с о б л а с ятм
129 zyxwvutsrqpon
е в м а рт и ц у GAIN п о к в а р т л ь н у и и п р о с леид т е з а и з м ен ен и е и (ри с . 3.18).
ю п ри бы л м п ри бы л
и пр
ь о т п р о ад и п ом ощ
ж рт е и ди а г р а м
х ви
-
» GAIN = [12.0 23.0 48.0 1 0 . б 3 1 . 5 •
»
49.0
8 . 0 2 5 . 0
78.0
9 . 6 2 9 . 0
61.5];
a r e a ( G AI N )
Д о п о л н и те л ь н ы п р е сд а т в л е н и imagesc (п ри м ен ен и П ер й д
е воз м ож н ост и м а рт и
м теп р
и лд я в и з а ул и з а ц и ц в в и ед и з о б р аж ен и е spy и imagesc о п и с а н
ь к п о срт ен и
ю гр афи к о
и фицунк
и р ка Г ф
и р аз р еж н н ы х м а тр и ц и й п р е од с а т в л я ю т н фу к ц и и spy и о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON гаве л 2). в фн у кц и
й онд о
и фицнук
й оонд
M ATLAB п о з в о л я е ск о м и п о л у о га р и фм и ч е с к о п о с тр о и т ь гр а фи к о тр е з к а х .
и рк а Г ф П о с рт о е н и о щ с у е св т л я м гу е н о т и з м ен ят ве 2 п ри вед
т с тр о и т
м м а с ш т а б
е гр а фи к о
й пе р м е но ь гр а фи к м м а с ш та б х х ф ну к ц и й
и н еск о ль к и
и в л ине йо
х п ер м н ы х
.zyxwvutsrqpo
й
M ATLAB п р еод сатв л яе т обш и рн ы е воз м ож н ост ц и й о нд о й и в ду х п ер м ен н ы х . И с п о л ь з о в а н и гр а фи к о в с м и н и м аль н ы м н аборо м з адв ем ы M ATLAB в ы б и р а е т а в от м а ит ч е с к и ) п р и в о ид гр а фи к о в . В эот м р аз едл е раз обран о пу р ав л ен и н и й н а гр а фи к а х , к о т р о е о щ с у е св т л я я пр р а м е тр о в гр а фи ч е с к и х нф у к ц и й .
и р ка Г ф
й и дву
и нф у к ц и
и лд я в и з а у л и з а ц и и н уф к е н фу к ц и й л д я п о с рт о е н и х п а р м е тр о в (о сатль н ы т к п о чл у е н и ю к а ч е свт н н ы е осн овн ы м и с в о й с вт а м и ли и п ом щ и до п о л н и ет л ь н ы х па
я е х -
й й в л и н е й н о м . П р и ч е м в о дн о , ад ж е о п р едл н н ы
, л о г а р и ф м и ч е м окн е можн х н а раз н ы
о х
е
в н фу к ц и й о нд о й п ер м ен н о й в л и н ей н о м м а с ш ат б е и п ом щ и н фу к ц и и p lo t . В з ав и с и м о с т и о т в о нх д ы х ар в н фу к ц и я p lo t п о з в о л яе т с рт о и т ь о ид н и л и н ес к о л ь к о гр а фи к о в , ь ц ве т и сит л ь ли н и й и до б а в л я т ь м ар к ер ы н а к ажыд й гр а фи к . В га- л н п ри м е р вы вод а п р о с ет й ш е г о гр а фи к а н фу к ц и и о нд о й п ер я пр
130
м ен о н е о б х ид м
аЧс т ь
й и о б ъ яс н ен о о п р и м ен ят
, п о ч ем ь п о э лем н т ы
»
х = 0 : 0 . 0 5 : 1 ;
»
у = е хр ( - х) . *s i n ( 1 0 *x)
у пр
и в ы ч и с л ен и
I. Ос но вы
и в е к то р и
е о п ер а ц и
в MATLAB zyxwvutsr
р аб о т ы
а з н ач ен и
й н фу к ц и
и
;
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA plot(к , у )
О б р а ти е вн и м ан и е , ч т о факит ч еск т . е . з а в и с и м о с т ь о дн о г о в е к то р абсц и с с м ож е т и ск аз и т ь р еал ь н у п р е од с а т в л я е т рд г у ю воз м ож н ост з адн н ы х нф у к ц и й с аадп ит в н ы тс и п о в е д н и я и с ел м у д о й н фу к ц и ве 5). И та к нф у к ц и я м с ле уд б у е ж ад е
, в сю д
у в э то й г л а в и о дн о й и вду т е д лу я т ь п о в ы ш ен н о т п р о с то й п р и м ер
и м ы срто и м гр а фи к та б л и ч н о й фну к ц и й , а о т др гуо . Н аедуч н ы й вы бо р ш аг а п о ос и ю к а р ит н у п о в е дн и я фн у к ц и . MATLAB ь (fpiot) лд я в и з аул и з а ц и и ан ал и т ч ес к и м п о дб р о м ш аг , чуи ыт в а ю щ и м о с б ен н о и (и с п о л ь з о в а н и е fpiot о б ъ яс н ен о в га- л
е м ы е д бу х п ер м ен н ы х е вн и м ан и . Т р еб уст
м и м ет ь ед л о с т а б л и ч н . П р и с о з да н и и та б л и ц е вы бор у ш аг а в ы ч и слен и я я п о с тр о и т ь гр а фи
T
/ ( x ) = e ~ (sinx + 0.1sin(l007Dc)) н а о рт ез к
е [0,1]. В ы б ер и т
0.01 п о ос и х, а з ает м 1/99 (н е з аьбдут е п е р с ч и ат нф у к ц и ) . П ер в ы й гр а фи к дл я ш а г а 0.01 п р о с т С р ав н ен и о нд и
е н ес к о л ь к и
х н фу к ц и
х к о р д и н а тн ы
й л е гк
х о с ях
. П о с тр о й т
и g (х) = Q~ sin 2 х н а о рт ез к ч ен и й а р гм у е н т а х и в е к от р - с рт о к К ом ан д а p lo t с двму я п ар м н ом у н а р и с . 3.19.
о п р о и з в о д и ть
е сн ач л
е гр а фи к
и н фу к ц и
и й м и
а ша
р с о з н ач ен и ям й (п о ч ем?у ) .
, п о с рт о и
е [- 271, 2п] . С ген ер и рйу т и f и д , с о едр ж ащ и и а р мг у е н о т в п р и в о ид
02X
ь в е к от о н ев р н ы
о з адн н ы м ы з н ач ен и . В э то к нф у к ц и
и
в гр а фи к й / (jc) = e ~
е в е к от р - с рт о к е з н ач ен и т к гр а фи к у
г
и н а 0Lr
sin 2 x у зн а
я фну к ц и й , и з о б р аж ен
. -
» X = - 2*pi:0.01:2*pi; ) . * s i n ( x ) . / N 2 ;
»
f = е х р ( - 0 . 1 * х
»
g = e x p ( - 0 . 2 * x ) . * s i n ( x ) . Л 2 ;
»
p l o t ( x , f, x ,
g)
Ф ну к ц и и н е о б я з а ет л ь н ке . В э от м счлуа е пр м аль н ы й о тр е з о к , с о едр ж а щ и то р о в абсц и с с и о р ди н а н ап р и м ер :
о до л ж н и п о с рт о е н и
ы бы т й о с ат л ь н ы е
т ку а з а т
»
х 2 = - 2 * p i : 0 . 0 1 : p i ;
»
g = е х р ( - 0 . 2 * х 2 ) . * s i n ( x 2 ) .
»
p l o t ( x l , f,
, g)
. В аж н ь с о вт е с ю у щ и
» xl = - pi:0.01:2*pi; » f = exp(- 0.1*xl) . *sin (xl) . Л 2;
x2
ь о п р е дл н и гр а фи к о
Л
2;
ы н а онд о м и то м ж е ортез в MATLAB в ы б и р а е т м ак си о то л ь к о в к аж од й п ар е век г рдг у у в е к то р ы е др у
,
л ав Г
3. Всы о кру вне ая
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB 131zyxwvutsrqpo
гиакр ф
. 3.19. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED Гикфар и дув х нц фки у й
с Ри
нА а л о ги ч н ы м е н от в : в ек от к о в п р о и з в о л ь н о г
[[^
м образ о р абсц и с
м п р и п о м щ и з адн и я в p lo t ч ер з з а п я ут ю п а р а р гу , в ек от р о р ди н а т , ощсу есвтля я п о с рт о е н и е гр а фи о ч и сл а фну к ц и й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р и м е ча н и
е
И с п о ль з о в ан и р он е с т и ю "графи к р а о т и х н омрев н а он д и коирд н ат ы И н о гд а рт е бс у я си ль н о о лт и ч а ю ст н и ям и п р а к ит ч ес к ся . В эот й си ацут и окн о с дмву я в е р ит к а л ь н ы м н и те , н а п р и м е р , дв
е p lo t с н дои м м н е о у р га т а векотра" , т . е . зваи с мот . Амнеоургт м p lo t мжое е ос и выс тявод я гираф к срав н и т я рд у и сли в аест и п о м о га е е н фу к ц и
м — орвкет и з н ча е и т бы т ь и мриат ц а и солтбц ов
м п ри вод й эмнело т , в эо т
т к по в вокет м сча ул е
.
ь п о в е дн и е в ду х нф у к ц и й , з н ач ен и я котры х г о т др г у а . Г р афи к н фу к ц и и с н еб о л ь ш и м и з н ач е я с ось ю аб сц и с , и усатн о в и т ь ег о в и д н е уаетд т н фу к ц и я piotyy, к о т р а я в ы в о ди т гр а фи к и в и о с ям и , и м ею щ и м и п о я щд х и й м а с ш ат б . С р а в и / ( х ) = х ~ и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ F(х) = 1000- (х + 0.5)
»
х = 0 . 5 : 0 . 0 1 : 3 ;
»
f = х .
»
Л F = 1 0 0 0 * ( х + 0 . 5 ) . - 4 ;
»
p i o t y y ( x , f , х , F )
А
^|
- 3;
132
аЧс т ь
Р е з л ьу а т в н и м ан и е о р ди н а т
е фнцки у
и в л ога мр и ф еч сик я п о с рт е н и
м а с ш ат б
. 3.20. Снвареи
й пр и пщом
и piotyy
я p lo t и сп о ль з еу т л и н ей н ы й м ас ш ат б п о о беи м к о р д и н а тн ы м о с ям . о M ATLAB п р еод с атв л яе т п о л ь з о в а ет л ю воз м ож н ост ь с рт о и т ь гр а и н фу к ц и й о дн о й п ер м ен н о й в л о га р и фм и ч е с к о м и л и п о л уо га р и фм и м м а с ш ат б е .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и рка Г ф Дл
х ж с л уа
х м а с шт а б я гр а фи к о т нф у к ц и
Q loglog (л о га р и фм и ч ес к и
х
в в л о га р и фм и ч е с к о : й м а с ш ат
м и п о л у га р и фм и ч е с к о б п о обеи
м о с ям )
semiiogx (л о га р и фм и ч ес к и
й м а с ш ат
б то л ь к
о п о ос и аб с ц и с )
•
semiiogy (л о га р и фм и ч ес к и
й м а с ш ат
б то л ь к
о п о ос и о р ди н а т)
ы loglog, semiiogx и semiiogy з адю ст й абсц и с с и о р ди н а т ат к ж е , к а к дл я нфу кц и м р а з де л .
м
;
a
р Ам г у е н т з н ач ен и ыд щ у е
в MATLABzyxwvutsr
работы
т п р и в ед н н а р и с . 3.20. П р и в ы п о л н ен и и э то г о п р и м ер а о б р а ти е , ч т о ц в е т гр а ф и к а с о в п аде т с ц в ое т м с о вт е с ю у щ е й ме у ос и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
с Ри
Ф ну к ц и О дн а к фи к ч ес к о
I. Ос но вы
я в ви д е п ар и p lo t , о п и с а н н о
; . ы в е к то р
в й в п ре
-
л ав Г
3. Всы окру вне ая
гиакр ф
П о с тр о й те
, н а п р и м е р
о рт е з к
е [0.1, 5] в л о га р и фм и ч ес к о
, гр а фи к
»
х = 0 . 1 : 0 . 0 1 : 1 0 ; f = l o g ( 0 . 5 * x ) ;
»
g = s i n ( l o g ( x ) ) ;
»
s e m i l o g x ( x , f,
я графи к
Рис Ф ун к ц и
Из м е н и
и н фу к ц и
x
е п о ос и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR х:
, g)
и и з ображ ен
. 3.21. Г рафи к
ы н а р и с
и в п о лу гари фм и ч еск о
и lo gio g и sem iio gy в ы з ы в а ю т с
е й с от в
й / ( x) = lnO.5% и g (x) = sin In х н а м м а с ш ат б
»
П о л уч а ю щ и е с
133zyxwvutsrqpo
в лин
. 3.21.
й ш к ал я ан ало ги ч н ы
м образ ом
е
.zyxwvutsrqponmlkjihgfed
й
П о с рт о е н н ы е гр а фи к и н фу к ц и й од л ж н ы бы т ь м ак си м аль н о од уб н ы м в о с п р и я ти я . Ча с т о рт е б с у я н а н ес т и м ар к ер ы , и з м ен и т ь ц ве т л и н и й п о д г то в к е к м о н о рх м н о й п еч а т и — з а д т ь ит п л и н и и (с п л о ш н а я ти р н а я , ш рти -х п ну кит р н а я и т . д. ) . MATLAB п р еод сатв л яе т воз м ож н ост пу р а в л ят ь в и од м гр а фи к о в , п о срт о ен н ы х п р и п ом щ и p lo t , semiiogx и semiiogy, дл я ч ег о жслиу т д о п о л н и ет л ь н ы й а р мг у е н т , п о м ещ ае м ы й з а к а ж од й п аро й в е к то р о в . Э от т а р мг у е н т з а к л ю ч а ест я в а п о с рт о ф со ти т и з тре х с и м в о л в , к о т р ы е о п р едл яю т : ц в ет , ти п м а р к е р а и ни . И с п о л ь з юу ст я о дн а , дв е и л и тр и п о з и ц и , в з а в и с и м о с т и о т р т е б му ы
и лд я , а п р и , пн у к ь logiog, ы и ти п ли х
I. Ос но вы работы в MATLAB zyxwvuts аЧс т ь 134zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и з м ен ен и й к уа з н и е
. В та б л м р е з л у ь та
. 3.1 п ри в едн ы воз м ожн ы е з н ач ен и я да н н о г о а р мг у е н т а с .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED 3.1. Стйвсоа
а .ц и албТ еЦ в У
ы тж л е
m
роз вы
с
бо глу
т
иТ
й
п мерк ра
а
о тч к й й
иТ
а
о
ж о у рк
X
и т с ке р
г
к р ас н ы
g
н ез л ы
b
исн
w
ыл еб
k
н р еч ы
й
к
ш ри т х пн у и к т р н а
к в ра д
d
ром
V
о гл ь н р у е т и шр в е и н о
й вн и
о гл ь н р у е т и ршв е и н о
й врев
о гл ь н р у е т и рш в е и н о
й ввел
< >
h
-
-
ш р и от в а х
я я я
т б к
ш и ткс о н е ч а з ве д
з к х к
о гл ь н р у е т и ршв е и н о в о и п т кя о н ч е а з ве д
р
я
а
S
й
й
"
з в е о чдк й
й
к "п лю с
zyxwvut
и
пн у и к т р н а к
зн а
п ли н
сп о л ш н а
" •
+
лин
о к
й вп ра
я
а я а
Н ап р и м ер , дл я п о с рт о ен и я п ер в о г о гр а фи к а (р и с . 3.19) к р а с н ы м и от ч е н ы м и м ар к ер ам и бе з л и н и , а в то р о г о п н у к ит р н о й ч ер н о й ли н и е й ес л у д т и с п оль з оват ь к о м ан д у p lo t (x, f, ' г . 1 , х , g, f k : ' ) . Р ез луь ат т п р и в ед н н ри с . 3.22. О б р а ти т е вн и м ан и е , ч т о абсц и с ы м ар к ер о в со в п адю т с о з н ач е н и ям и а р г м у е н ат , с о едр ж ащ и м и с я в х . Э т о н е в сегд а ох р о ш о , вед ь лд я п олу ч ен и я гл а дк о й кри во й требсту я вы ч и сли т ь в е к от р з н ач ен и й фн у к ц и и в дос та о ч н о боль ш о м ч и сл е то ч е к , ч т о п р и в о ди т к сли ш к о м ч а с от м у расп о л о ж ен и ю м ар к ер о в и л и даж е и х п е р к р ы ит ю . П р о с то й п ри е м п о з в о л яе т п о -
а -
л ав Г
3. Всы о кру вне ая
м е си т нф у к ц и боль ш ог
ь м ар к ер , оид о н абор
ы в з ар н е н — с п ло ш н о а з н ач ен и
е в ы бран н ы й л и н и ей й а р мг у е н а т
»
х = - 1 : 0 . 0 1 : 1 ;
»
у = s i n ( 2 * p i * x . / 4 2 ) ;
»
xm = - 1 : 0 . 2 : 1 ;
»
ym = з 1 п ( 2 * р 1 * х т .
»
p l o t ( x , у ,
' k ' ,
Л
е гоикра ф
е п оз и ц и
. С рт о и ст
, а в то р о :
й — то л ь к
е пор тмае
в лин
я дв о м ар к ер ам
а гр а фи к и дл
а я не -
2);
xm, ym ,
Рис
о р мО ф л е ни
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC 135zyxwvutsrqpo
гиакр ф
'ko')
. 3.22. Ин езми
й zyxwvutsrqponmlkjihgfedcbaZYX
в
до У б с в т о и сп о ль з о в ан и я гр а фи к о в в о м н ог м з ав и си т о т д о п о л н и ет л ь н ы э л е м н от в о ф р м лен и я : к о р ди н а тн о й с ект и , п о д и се й к о с ям , з а г о л о в к л е г н ыд . Т а к и е в о з м о ж н о с т и р е а л и з ю у ст я ли б о с п о м о щ ь ю д о п о л н и ет л ь н ы п а р м е тр о в , з адю щ и х с в о й с вт а о б ъ е к то в , л и б о с п ом ощ ь ю в с п о м о г а ет л ь н ы х к ом ан д и нф у к ц и й . П ер ч и сли м осн овн ы е и з н и х . С ект а н а н о с и ст я м а н од й gr id on, фн у к ц и и xiabel, yiabel сжлуа т дл я р а з м е щ е н и я п опд и се о с ям , a t i t l e — лд я з а г о л о в к а . П р и н ео б хид м о с т и с о п р о в ди т ь гр а фи т и сп о ль з о в ат ь н фу к ц и ю legend. Вс е п ер ч и слен н ы е к о м ан л ег н од й е су л д д ы п р и м ен и м ы к гр а фи к а м к а к в л и н е й н о м , та к и в л о га р и фм и ч ес к о м и л уо га р и ф м и ч е с к о м м а с ш ат б х . С люеуд щ и е к о м ан д ы в ы в о дя т гр а фи к и
х а и х ко й к к п о из -
аЧс т ь I. Ос но вы работы в M ATLAB zyxwvut 136zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
м ен ен и ж не
я со т у ч н о ы все й н е о б хди м о
й ет м п е р а ут ы
, и з о б р а ж ен н ы
е н а ри с
. 3.23, к о т р ы
е сн аб
-
.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
й и н фо р м а ц и ей
» time = [0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22]; » tempi = [14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13]; » temp2 = [12 13 13 14 16 18 20 20 23 25 25 20 16 12 12 11 10]; » plot(time, tempi, 'ro- ', time, temp2, 'go- ') » grid on » title('Сы н ч о т у
е т' ырутарепме
» xlabel('Вм е р
) 1
я (ч. са )
» ylabel('Тр у т а р е п м е
)
а (С)' )
>> legend('10 мая
1
, '11 мая
1
)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
е тем п ер уат
о Су т н ч ы
ы - в - 10 м а - О - 11 м а
я я
h J l
5- 20
!
К
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
6
.гк
\ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
/И ?
X л -
10 мерВ
Рис
^
Пр и м е ча н и
. 3.23. Г р афи
к и з м ен и
е
я (ч.с а
я сотчун о
15 )
20
й ет м п е р а ут
25
ы
^Д
С и мвол ы ки ри л и ц ы м о гу т н еп р ав и ль н о о т б р а ж а ть с я в н ело к али з о в ан н о й в ер с и и M ATLAB. О ди н и з сп ос бо в р еш ен и я п р о б лем ы з а к л ю ч а е тс я в и з м ен ен и и те к с то в о г о фа й л а matlabrc.m, н аохдящ его с я в п о дк а т л о г е toolboxMocal о с н о в н о г о к а т л о г а M ATLAB. И с п о л ь з у я лю бо й те к с то в ы й р е да к то р , до б а в ь т е в кон е ц фа й л а с рт о к у : set(0,'D efaultAxesFontN ame','H MH _ ш р и ф та _ с _ р су к и м и _с и м в о л а м и ' ) (с.м е так ж а ин е ч и п м р в р.азд "Св-ирес е ын у кн ц и ф я л д ртыоаб ос и"к оатмрс ав ыг л 8).
л ав Г
3. Всы о кру вне ая
гиакр ф
Пр м ен от с нл е д и
и р аз м ещ ен и в к о м ан д м до п о л н и е т л ь н ы д ы в гр а фи ч ес к о
и л ег н д ы е су л д ы legend од л ж н м а р мг у е н от м окн е :
• - 1 — в н
е гр а фи к
• 0 — в ы б и р а ест м ожн о м ен ь ш
т ч у е сь т ы с о вт е с о в а т
а в п р а в о
к и к о л и ч е с вт ь ли н и я м н а гр а фи к е т бы т ь п о л ж ен и м legend м ож е м лг у
е п о л ж ен и ь сам м лг у
м п рав о
, ч т о п о р яод
м в не р х
я ч л шу е е п ер к р ы в ат
• 1 — в внерх му о л ч а н и ю )
137zyxwvutsrqpo
у гр а фи ч ес к о г
о окн а
е в п р е дл а и гр а ф и к и
х гр а фи к
а та к
о а р гу . П о е л ег н
у гр а фи к
а (э т о п о л ж ен и
м лг у
у гр а фи к а
;
• 3 —в н и ж н е
м лев о
м лг у
у гр а ф и к а
;
• 4 — в н и ж н е
м п р ав о
; , ч то б
ы ка к
е и с п о л ь з ес т у
я п о
м лг у
у гр а фи к а
.
Т ак о й сп ос б з адн и я м ес т а л ег н д ы бы л п р и н я т в п р еж н и х в ер с и я M ATLAB и п оедр ж и в аест я в в ер с и и 7. К р о м е то г , п о яв и лас ь рд г уа я воз м ож н ост ь лд я к у а з н и я п о л ж ен и я легн д ы з а сч е т п р и в л е ч н и я е е с в о й с вт Location. В о сем н ацд ат ь о д п с и ут м ы х ег о з н а ч е н и й п р и в е дн ы в сп рав о ч н о с и е мт . Д л я то г о ч отб ы п о с м о рт е ь и х , до с та о ч н о н абрат ь в к о м а н дн о с рт о к е help legend и л и о б р а ит ь с я к а н а л о ги ч н о й и н фо р м а ц и и в и н етр а к ит в н о й сп рав о ч н о й с и е мт , в о с п о л ь з о в а ш и с ь и н е кд с н ы м п ои ск о м п о сло , лд я в ы в о д а л ег н д ы сп рав а о т о с е й е с ул д т вы брат в у legend. Н а п р и м е р инеча З е 'EastOutside' . zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 1
>> legend('10 м а я
ир ка Г ф и ксуон-ч за дын
па р м е т риеч с к
, '11 м а я
1
х а й й -
ь zyxwvutsr
, 'Location1, 'EastOutside')
, легн д
е и ст ле о ад л е
е и п опд и ся х о с е й о д п с ук а е т я до б а в л е н и е фо р й ш р и фт а п р и п ом щ и фо р м а т а Т еХ , п о др о б н о о б .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
х х фицунк
й
Д л я п ор с т е н и я фн у кц и й , з анд ы в а т ь в е ко т р з н а ч ен и й м а р е у гн т ц и й и з ап и сат ь и х в в е к от р ы м не о т в plot. Г раиф к н уфкц и (эли п с) , п риневд ы й н а р и с
х п а р м е ит ч е с к и
» t = 0:0.01:2*pi; »
-
; м л ев о
е гр а фи к а
-
;
• 2 — в внерх
В з а го л в к му л и и з м ен ен и э от м н а п и с а н
-
х = 0 . 5 * s i n ( t ) ;
, се у дел о в ы ч и сл т
т сп рев
а не с г р и о
-
. Зе ат м н ио е д б х м ь з н а ч ен и я фн ук , к о т р ы е и н ад о и сп о ль з о в ат ь в к а ч е вс т е ару г и x(f) = 0.5• sin/ , zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON y(t) = 0.7 - cost лд я te[O, 2n] . 3.24, псчтаеолу я п р и п ом щ и сю ущдел и х к о м ан д :
Ча с т ь I. Осыовн ра бот ы в M ATLABzyxwv 138zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » У = o . 7 * c o s ( t ) ; »
p l o t ( x , у ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П Р
0.6
0.4
0.2 /
\
0
zyxwvutsrqponmlkjihgfedcbaZY •
- 0.2
- 0.4
- 0.6 " i 0 8 - 0 . 5
Рис Дл гр а фи
я то г
о ч то б к к с уо ч н о - з а д н н о
- 0 . 4
- 0 . 3
. 3.24. и ф арГ ы п р о в ер и т
- 0 . 2
- 0.1
к пксиреч тмар ь св о й н фу к ц и
i
0
0
.
1
0
.
2
0
и зна д о и з н ан и я о работ и (ксуо ч н о - нфу к ц и о н аль н о
.
3
й фнцки у
0
.
4
0
.
5
и
е с м ас и в ам и
, п о с тр о й т й з а в и с и м о с ит )
е :
п • sin х, - 2п title('4 sin(2\pi{\itx})zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH {\ity} (1 - {\ity})') котра Т еХ п рост п р и в е дн н ы е
я п р и в о ди , т о в о п р о с о о и с п о л ь з йу т
т к п о яв л ен и в в о з н и к н ту е п рави л в та б л . 3.3.
3.3. Па врил
а ц и а лб Т тЧ
о с те у тбе р
н еВ л ы и д но д г ке с т
я
д н а мо К
е и ср в о к у а
о си мвол
ю рт е б у м о г ь н е до л ж н о а н абор а фо р м у
м а ил и
на р о б а Те
. Е сл
о з а го л в к а . Е сл и ж е в ы н е р а б о та е т л и и з м ен ен и я св о й ст
фоул м р
и иинея зм Р е з л ь уа т
Х
X
1.2{\ itP }
\ .2Р }
м з н ак о е в Т еХ в ш р и ф то в
м , т о ,
стйвсо
{\ itx}
{М ' Ь Г и п е р б о л и ч е с к и й си н у с
и ва
ксеийч л о бпре Ги
швто ифр
т
син у
с
л ав Г
3. Всы о кру вне ая
гиакр ф
151 zyxwvutsrqp
(оаин)екч о zyxwvutsrqp zyxwvutsrqponmlkjihgfedcb 3.3
а ц и а лб Т тЧ
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA д ан о м К а Те Х Р ат е ь зл у т
о е сб ту р
В ы де л н и ш р и ф то си м вол
е жи рн ы м о дн о г а и л и те к с т
Н або р си м вол и л и те к с т а жи рн ы к ру с и в о м И з м ен ен и и ег о р а з м е р
Ш абло
м о
ы {\ bfM } фи ль тр
{\ bfA4X}
а а
Ш абло
а
Х ф и л ь тр
{\ b f \ i t x }
{ \ b f М ' Ь О п т и м а л ь н а я
}
и
ы М
В е к то р
а ы х и у
м кри ва
е ш р и фт
i z e {1 4 }Z - ф у н к ц и я
, й и н де к
л
к р и в а
а ьян а л м т и п О
я
{\ fo n t n a m e {a r i a l}\ fo n t s а
а
Z- н уф кц и
}
{2 }
я
{\ i t x } A {2 . 5 }
с
й и н де к
я
2
х
{\ i t e }A {\ i t - x }
Н и жн и
н м а тр и ц
ЧА
В ек то р ы {\ b f \ i t y }
х
С те п е н ь в е р нх и
н м атр и ц
и
f_ {5 }
с
х
е~
zyxwvutsrqponmlkjihgfedcbaZY
f _ {\ i t x x }
^
П р и м е ча н и
е ^ Д
П рям о й ш ри ф н и я обы чн ог
т те к с т о п р ям о г
Возможн о и сп ольз ован и м е р t i t l e ('З а в и с и м о с т п р и а = я " . В т а б л п роп и сн ы х и с т р о ч н ы
а в Т е о ш р и фт
Х ус та н а в л и в а е тс а можн
я к о м а н до о н е ук а з ы в а т
ь н и каки
а
\ a lp h a \ be t a \ gamma
я п о лчу е
.
е гр еч еск и х б ук в и сп ец и аль н ы х си мволов , н а п р и ь п р и a = \ p i ' ) п р и в о д и т к з аго ло в к у : "З а в и с и м о с т . 3.4 и 3.5 п р и в е д е н ы коман д ы Т е Х д л я в с т а в к и н е к о то р ы х гр еч ес к и х б ук в и с п е ц и а л ь н ы х си мволов . 3.4.ксеи ч р Г
а ц и а лб Т д ан о м К
й \ rm. Д л х ком ан д
о в м иС
л
д ан о м К
а
о в м иС
л
д ан о м К
а
\ lam bda
X
\ chi
Р
\mu
li
\ ps i
Y
\ nu
V
\ omega
а
ь х
буквы о в м иС
л
X
Ґ
аЧс т ь
152
I. Ос но вы
и ц Та л б
3.4 (оаин)екч о
zyxwvutsr
овмиС л овмиС л овмиС л а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA днамоК а днамоК а
днамоК
\delta
5
\xi
\epsilon е
\rho
\eta
Л
\Gamma
Г
p
\Delta
A
\sigma
a
\Theta
0
\tau
T
\Lambda Л
е
\theta \kappa
\phi к
\Phi
Ф и ц Та л б
днамоК
а
овмиС
л
Ф
3.5. Се ьын пцеиал
днамоК
сы лво им
а
овмиС
л
\leq
\geq
>
\leftarrow
> colormap(gray) » colorbar » title('Ги ф а р к {\itz} = - {\ite}^{- {Xity}^{2}} cos(3 \pi {\itx})... {\itx} (1 - {\itx}) {\ity}') » xiabel('x') » yiabei('у' ) » zlabel('z')
л ав Г
3. Всы о кру вне ая
153 zyxwvutsrqpo
гиакр ф к z = - е* cos(3 л х) х (1- х ) у
и ф а Гр
0.1.
00.8 00.6 00.4 00.2 0 -00.2 а --0000..46 -00.3
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA '- - • - • - 0^''- \ - 'Г "- - , • • '• """
0.05.
N
О >
- 0.05.
- 0 1 ,
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
•У
Рис
. 3.38. Зна ид
- 2 0
х
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
е дл я сьнлео тя смоа
й ротба
П о му о л ч а н и ю в MATLAB п оедр ж и в аест я осн овн о и м се т я воз м ож н ост ь п ер й т и к р а с ш и р ен н о м у фо р м а т бо ле е сло ж н ы х фо р м лу . М ы верн ем с я к эотм у воп рос о н с в яз а н с о б р ащ ен и е м к с в о й свт а м ет к с о в ы х о б ъ е к то в "Т еквтосы ю ст я з а го л в о к и п опд и с и к ося м (с.м р.азд
оврП
т гриак ф
, и зм е н и
е т окч
и обзор
ы
й фо р м а т Т еХ , о дн а к о у LaTeX лд я н а б о р а ав ег л 9, п о ск о ль к у у в zyxwvutsrqponmlkjihgfedcbaZYXW , к а о в ы м и яв л ок"етыъ б авыг л 9).
а
П р и м ер ы , п р и в едн н ы е в п реыд щу и х р а з де л а х , св и едтль свюту т о то м п р и п о с рт о е н и и р т ме х р н ы х п о в е рн х о с ет й о с и к о р ди н а т р а с п о л а г ю тс в с е гд а о ди н а к о в ы м о б р а з о м . Ча с т ь п о в е рн х о с т и о сате я п р и э от м с к р ы то й Д л я п о лч у е н и я п олн о й и н фо р м а ц и и о п о в е рн х о с т и е е ж ел ат ь н "о с м о тр е ь " с о все х с то р н . П о л ж ен и е н а б л ю да е т л я з а с и е тм о й к о р ди н а т , и з о б р а ж ен н о й н а р и с . 3.36, ахр к етр и з есут я в мд у я г лу а м и : умто ази (Az) и умо г л инеяшзвоы (El). з А и м у т о ст ч и ыт в а е ст я о т оси , п р о ти в о п о лож н о й у , а гоу л в о з в ы ш ен и я о т п ло ск о ст и ух . Н а р и с . 3.39 п о л ж и етл ь н ы е н ап р ав лен и я о стч е а о б з н ач ен ы с рт е л к а м и . И з м ен ен и о щ с у е св т л я
е п о л ж ен и т н фу к ц и
я н а б л ю да ет л я view. Армгу ен атм
я о нт о с и ет л ь н
о гр а фи к и view яв л ю ст
я аз и м у
, ч т о я . о -
а в MATLAB т и уго л в о з -
аЧс т ь I. Ос но вы р аб о т ы в MATLAB zyxwvut 154zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
в ы ш ен и я , о ст ч и ыт в а ем ы Д л я то г о ч от б ы зу н ат view с двму я в ы о х дн ы м
е в г р са у д х ь е щк т у е и а р г м у е н ат м и
е п о л ж ен и
. П о у м о л ч а н и ю е н а б л ю д а ет л я :
^ = - 37.5°, El = 30°. , еслуд т в ы з в ат ь
» [Az, El] = view Az = - 37.5000 El = 30zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
с иР
. 3.39. Пн ежиол
е нле тюалбд
П о л ж ен и е н а б л ю д а те л я з а д ест я в о х нд ы м , и з о б р а ж ен н у ет , н а п р и м е р , н а п о в ернх о с ьт б и с е к рт и с о й п ер в о г о к в а др н т а п ло ск о ст б ы в иу е тд ь с к р ы ю ут ч аст ь п о в е р н х о с ит view (135, 45), п р и э от м п о лчуаест я гр а фи к Р аз в ер н и т с м о рт е Н ес ло ж н р й у ет с то ч е к
е гр а фи ь н а н ег о д о г а д ть с я ь сам о ст яель н о .
к п о в е рн х о с т о в до л
ь ос , ч т
и та к и у с о с от р н о н ео б хид м , н а б л ю да
, к а
я и а р гм у е н а т м и view. П о с м о рт и ю н а р и с . 3.38, в о з в ы ш а яс ь н а и х у п о д угло м 45°, дл я то г о ч от . И с п о л ь з йу т е к о м ан д , п р и в едн н ы й н а р и с . 3.40.
к п о к а з а н ы п л о с к о с т
о и сп оль з оват я з а гр а фи к о
о н а р и с и xz . м п о в е рнх о с т
. 3.41, ч от б
ь view(о , 0). П о тр е н и и и з р а з л и ч н ы
д у
ы п о
х
л ав Г
3. Всы о кру вне ая
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 155zyxwvutsrqponm
гиакр ф
Рис
. 3.40. Г рафи
к с точ к и з рен и я н а б л ю ад е т л с Az = 135°, El = 45°
0.2 0.3 0.4 . 3.41. Н а б л ю да те л
Р си
водл
ь ос и у с о сотр н
0.5 0.6 ь с м о рт и
я
0.7 0.8 0.9zyxwvutsrqponmlkjihgfedcbaZY т н а гр а фи
ы п ло ск т
к и xz
156
аЧс т ь
оП с т р о е н и з а ыдн
е па р м е т риеч с к
в MATLAB zyxwvu
р аб о т ы
и
х пове рнохс т е
й и л ин
MATLAB п о з в о л яе
I. Ос но вы
т с рт о и т
й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
ь тр емх р н ы
е ли н и
, о п р едл н н ы
е ф о р м луа м и
:zyxwvutsrqp
x = x(t) 9 y = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED y(t),z = z(t), te[a9b],
и п о в ернх о с ит
, з а д в а ем ы
е з а в и с и м о с ят м
и
х = х( и, v) , y = y(u,v), z = z(u, v), ue[a,b], Ф ну к ц и к а ч е св т
я p io t 3 в и з аул и з и реу е а р г м у е н от
z(t), в ы ч и с л ен н ы в а т ь в е к от ш а го м пр о вт ес ю у щ и
т п а р м е рт и ч е с к , со едр ж ащ и
в в е к то р ы
е лд я з н а ч е н и р t, ч т о п р о щ е всег и п ом ощ и дв о е т ч и я е з н ач ен и я фну к ц и
И с п о л ь з йу т
е дл
я э то г
и з адн н ы е з н ач ен и
й п а р м е тр о с ед л а ь т , и сп оль з у , а з ает м в ы ч и сли т . П о лчу и те
о юс л у е д щ и
е к о м а н ды
ve[c,d]. е л и н и
я нфу к ц и
а t. С н а ч л а се л у д я з ап о лн ен и ь и з а п и с а т , н а п р и м е р , гр а фи
, и сп о ль з у я в й x(t), y(t) и т с фо р м и р о е с п о с т ян н ы ь в в е к от р к л и н и
м ы со и
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
» t = 0:0.1:100; » х = exp(abs(t - 50)/50).*sin(t); » у = exp(abs(t - 50)/50).*cos(t); » z = t; >> plot3(x, y, z) >> grid on
В р ез луь ат
е в ы в о ди ст
Т ак ж
е и м сет (с.м
Н ап р и м ер
р.азд
я гр а фи к
, и з о б р а ж ен н ы
я воз м ож н ост "Иине зм
ь и з м ен ят стйвсо
, p io t 3 (х , у , z,
П а р м е тр и ч е с к и з адн н у б о й и з фн у к ц и й , п р енд а з н а ч ен н ы В аж н о то л ь к о п рави ль н y^cbj^a и y(w,v) м о гу м а тр и ц с и н фо р м а ц и е и м а тр и ц ы , со едр ж ащ е з адч у от браз и т ь п о в е рнх о с т
ь ти " дйаон
линй
f
ю п о в е рн х о с т
f
r : ) ри есу
п и ц ве г)авы л . т к р асн у
ь м ожн х лд я о т б р а ж е н и ь а р гм у е н ы т
о п о д г то в и т т бы т ь м н ог з н ач н ы й о р а с п о л ж ен и й з н ач ен и я фн у к ц и ь (к о н су)
й н а р и с
. 3.42.
т л и н и
, до б а в л я т
ю п н у к ит р н у о п о с тр о и т
ь м арк е ю л и н и ю
ы .
ь пр
и п ом ощ и лю я рт е м х р н ы х гр а фи к о в . . Д е л о в то м , ч т о нфу к ц и и , ч т о н а д о ч еуст ь п р и с о з ад н и и и зу ло в кс ет и н а о бласт и п о с рт о е н и я и z(w,v) в эит х то ч к а х . П о с та в и м , о п р едл н н у ю з а в и с и м о с ят м и
x(w,v) = 0.3- и - cosv, j(w, v) = 0.3- w - sinv , z(u,v) = 0.6- и , u,ve[- 2n, 2я ] .
л ав Г
3. Всы о кру вне ая
157zyxwvutsrqpo
гиакр ф
. , ' - - ; " " ' " '
юо т
^
. - '• >
:
* * ^
- ""'"'
80- .- - - '""" 60..- - - - '"'" 40..- - - '• "'"
20- - ' - " " " zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
•
Рис
С ге н е р и рй у т ед р ж а щ и в е к от р - с от л б е ц
е пр е з н ач ен и
>> и = »
Дале
v
=
:
- 4
- 4
. 3.42. П ар м ерти ч ес к
и п ом щ и дв о е т ч и я п а р м е тр о , a v — в ек от р - с рт о к а !)
:
;
;
• •
:
•
и з адн н а
я ли н и
я (piot3)
я в е к от р - с от л б е в н а з адн н о :
м и н ет р в а л
ц и в е к от р - с рт о к у е (в а ж н о
.
zyxwvutsrqponmlkjihgfedcba
, со , ч т о и —
- 2 *p i : 0 . 1 *p i : 2 *p i ) • ; [ - 2 *p i : 0 . 1 *p i : 2 *p i ] ;
е с фо р м и рйу т
е м а рт и ц
y(w,v) в то ч к а х г е нв ш о
ы х , Y, с о едр ж ащ и
, со втесюу щ и
пинея зводр
х з н а ч ен и я вокерт
(з в ез од ч к
е з н ач ен и
я нфу к ц и
м п а р м е тр о а бе з то ч к и )
й zyxwvutsrqponmlkjihg x(u,v), в пр
и п ом ощ
и
:
» X = 0.3*u*cos(v); » Y = 0.3*u*sin (v); М а тр и ц
а z до л ж н
а бы т
ь то г о ж е р а з м е р а , ч т о х и Y И , к р о м е то г о , о н а одлж н а с о ед р ж а т ь з н ач ен и я , со втес юу щ и е з н ач ен и я м п а р м е тр о в . Е сл и б ы в н фу к ц и ю z(u,v) вохид л о п р о и з в едн и е и и v , т о м арти ц у z м о ж н о бы л о з ап о лн и т ь а н а л о ги ч н о х и Y п р и п о м щ и в н еш н ег о п р о и з в едн и я . С дргуо й с от р н ы , нфу к ц и ю z(w,v)м о ж н о п р е сд а т в и т ь в в и д е z(u, v) = 0.6- u • g(v), дг е g(v) = l. П о э от м у лд я в ы ч и с л ен и я z сн о в а п р и м ен и т е в н еш н е е п р о и з в е е дн и е н а в екотр - срто к у от й ж е р а з м е р н о с ти , ч т о v, со стящ юу и з еид н и ц : » Z = 0.6*u*on es(size(v));
аЧс т ь
158
Вс е треб му ы вы ш е н фу к ц и в а ет л ь н о с т
I. Ос но вы
в MATLAB zyxwvuts
р аб о т ы
е м а рт и ц ы с о з да н ы . И с п о л ь з йу т е ет п р ь лю бу ю и з о п и сан н ы х й дл я п о с р т е н и я р т ме х н ы х гр а фи к о в . Н а п р и м е р , п о след ь ком ан д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» surf(X, Y, Z) » colorbar » xlabel('\itx = 0.3 \itu cos \itv') » ylabel('\ity =0.3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA \itu sin \itv') » zlabel('\itz =0.6 \itu ') п р и в о ид
т к гр а фи к у
, и з о б р аж ен н о м
у н а р и с
. 3.43.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
- 2.2
- 2 - 2 ^х .О Зи с ое v y- 0.3u sin vzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
Рис П о с тр о й т да , з а д н н о г
. 3.43. Ги ф ар
е с ам о с т яел ь н о с о нт о ш ен и ям
к пксиреч тмар
и зна д о
о п ро з рач н у и
ю к арк асн у
й пнтсохрев
и
ю п о в е рн х о с т
ь э л и п сои
-
x(u,v) = cosu- cosv, y(u,v) = 0.7 cosu- sinv , z(u,v) = 0.8 • sinu , U,VG[- 2U, 2n]. Т р е б ум ы к ом ан д
й р е з л у ь ат
т п о з в о л яе
т п о лч у и т
:
» u = ( - p i:0. 1*p i:p i) '; >> v = - p i:0. l*p i:p i; » X = cos(u)*cos(v); » Y = 0.9*cos(u)*sin (v); » Z = 0.8*sin (u)*on es(size(v)); » mesh(X, Y, Z) » hidden off
ь с ю л уе д щ а
я п о с л е до в а е т л ь н о с т
ь
л ав Г
3. Всы о кру вне ая
гиакр ф
Вс
е сп ос б ы п о с рт о е н и я р тме х н ы ц ве т п о в е рн х о с т и в з ав и си м о ст в е р н х о с ит , в ы глядщ е й н е совсе з в о л яе т п о лч у и т ь о ч ен ь н а г л я нд о п р о с тр а н с тв е , о св ещ ен н о й с о нд о
е ос ве щ но
оП с т р о е н и П р е дп о л ж и м о п р едл н н ы м м ож н о пу р а в л ят в м ес т е с п о в о р то п о в е р н х о с ьт н и я о св ещ ен н о
159 zyxwvutsrqpon
х гр а фи к о в и о т з н ач ен и м ес тв ен н о е и з о б р аж ен и й и л и н еск о ль к и
, о п и с а н н ы е в ы ш е , и з м ен яю т й нф у к ц и , ч т о п р и в о ди т к п о . В т о ж е в р ем я M ATLAB п о е п о в е рн х о с т и в рт е м х р н о м х с то р н .zyxwvutsrqponmlkjihgfedcbaZY
й пове рнсхт
, ч т о п о в ернх о с т и с в о й с вт а м ь р ас п о л ж ен и е м гр а фи к , п о в ер н ут й п о в е рн х о с т
П о с тр о й т
е о с в ещ ен у
т и хе [ - 1
, 1], у е [ 0
и
ь гр а фи к
а н фу к ц и я и п о гл щ е н и
и о рт а ж е н и
а и з м а те р и а л а с я с в еа т , и , к р о м е то г о , а с в ае т . Э т и вд е в о з м о ж н о с т и т п о чл у и т ь е с тв н о в ы гл я д щ у ю ю п о д н жу ы м г лу о м . Д л я п о срто е я фн у к ц и я surf 1.
м и с от ч н и к а п о з в о л яю ю и о с в ещ ен у и п р и м е н я ес т ю п о в е р н х о с ьт
, 1] фо р млуо
, з адв ем у
ю н а п р я м о гу л ь н о
й о блас
-
й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
z(x,у) = 4• s'mlnx• cosl.5пу П р и и сп о ль з о в ан и и surf l одубн gray, pink, в к о т р ы х и н ет н с и в н о с т ч ен и я п лав н о и з м ен яю щ и с х in t e r p . К о м а н ды , п р и в едн н ы в ещ ен н о й п о в ернх о с ит , и з о б р а ж ен н о
и с ед л а н
о з адв ат ь ц в ет я о ет н к о е н и же
• \ 1- х у у- (1— у) .
ь ц в еот ы а и з м е н я се т в е су л д
, п р и в о дя й н а р и с
е п а л и тр ы
: copper, bone, я ли н ей н о . Д л я п олу т и сп о ль з о в ат ь shading т к п очлуен и ю рт е б у м о й ос . 3.44.zyxwvutsrqponmlkjihgfedcbaZYXWV
» [X, Y] = meshgrid(- l:0.05:1, 0:0.05:1); A »zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1 - X. 2).*Y.*(1 - V1 » surfl(X, Y, Z) >> colormap('copper') >> shading interp >> xlabel('x') » ylabel ( ' у ' ) » zlabel('z')
ќ ,
П о му о л ч а н и ю и с от ч н и к с в ет а и ме т а з и м ту , б о л ь ш и й н а 45°, че м н аб л ю ад ет л ь , и то т ж е гоу л в о з в ы ш ен и я . Д о п о л н и те л ь н ы м ч евт р ы м а р мг у е н о т м surf 1 м ож е т бы т ь в е к от р - с рт о к а и з в уд х э л е м н от в — а з и м ту а и глу а в о з в ы ш ен и я и с от ч н и к а с в еа т . И з м е н и те , н а п р и м е р , аз и м у т и с от ч н и к а н а - 90° п о о нт о ш ен и ю к н а б л ю да те л ю , а уго л в о з в ы ш ен и я усатн о в и т е в н о л ь .
аЧс т ь
160
Эт
о м о ж н
о п р о де л а т
ь пр
и п о м щ
и к о м а н
I. Ос новы
работы
в M ATLABzyxwvuts
д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
» [Az, El] = view; » surfl(X, Y, Z, [Az- 90, 0]) » shading interp В рез льуат
е п о ч л уа с е т
я о с в ещ ен а
я п о в енрх о сьт
, и з о б р аж ен н а
я н а р и с
. 3.45.
0.5, 0-
^-
• ."•
- 0.5-
•
.
,
- 1 > 1 "*\
0.5"^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED - s ^ _ "• • • - • .• • .. 0
0 - 1 у
Рис
0
.
5
. 3.44. О свещ ен а
ь zyxwvutsrqponmlkjihgfedcbaZYXWV
я п о в е рн х о с т
-
0
0
5
X
^
-
.
[
'
"
"
'
•
•
•
•
•
-
-
•
|
*
.
5
.
-
!
1
>
1
"
•
•
•
• •
S
^
0
^
^
^
^
0
Рис
. 3.45. И з м ен ен и
е п о л ж ен и
-
-
^
-
0
.
5
1
я и с от ч н и к
а с в ет
а
^
л ав Г
3. Всы о кру вне ая
161zyxwvutsrqp zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
гиакр ф
е гирка ф
и н м А и р о ав ы н П р и и зчуен и и вд и ж е н и п о л ез н о н е то л ь к от ч к и п о тр а е к то р и м и ро в ан н ы й гр а фи к с те я н а п л о с к о с т н и и — тр а е к то р и Д л я п о с рт о е н и я comet3. П о с тр о й те 10 сенк у д , к о р ди н а т
и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
я то ч к
и н а п ло с к о с т и и л и в трмех р н о ь тр а е к то р и ю то ч к и , н о и слиед т т воз м ож н ост . M ATLAB п р еод сатв л яе , н а к о т р о м к рж у о к , о б з н а ч ю щ и и и л и в п р о с рт а н с вт е , о сатв ля я з а соб и вд и ж е н и я . Г р а фи к п ох ж н а л е я тщ у ан и м и ро в ан н ы х гр а фи к о в п р и м е н я ю ст , н а п р и м е р , тр а е к то р и ю вд и ж е н и ы котро й и з м ен яю ст я п о з ак о н у о п о с рт о и т
м п р о с тр а н с тв е ь з а вд и ж е н и е м ь п о лч у и т ь ан и , п ер м ещ а й от ч к у й сле д в в и ед ли ю к о м ет у с вх о с т м . я н фу к ц и и comet и я от ч к и в етч н и е
/ ч sin Г / ч cost x(t) = y(t) = . v ; v ; t + l t + l
Д е й с в тй у да н н о
е то ч н
о ат к ж е , к а к п р , н о дл я в и з аул и з ац и
й нф у к ц и
и п о с рт е н и
и гр а фи к и р е з л у ь ат
а п а р м е рт и ч е с к
и за -
а и с п о ль з йу т
е commet:
» t = [0:0.001:10]; » X = S i n ( t ) . / ( t + l) ; »
у = c o s ( t ) . / ( t + l ) ;
»
c o m e t ( x ,
П р и в ы п о л н ен и ко м бы л н и я п ри вед
о п о в ер
y)
и п о с л не д й к о м ан д х о с ат л ь н ы х окон н н а р и с . 3.46.
ы с л ие д т . О к о н ч а етл ь н ы
е з а ет м й ви
, ч от б ы окн д тр а е к то р и
о с гр а фи и вд и ж е
-
1 0.8
"•
•
• . =.
0.6 0.4 0.2 i
0 G
У
- 0.2 zyxwvutsrqponmlkjihgfedcbaZYX ; - 0.1 ;. 0 0.1 0
Рис
. 3.46. О к о н ч аетль н ы
й ви
д тр а ек от р и
.
2
0
и в ди ж ен и
.
3
0
.
4
я (commet)
162
аЧс т ь
I. Ос но вы
С к о р с ьт ю вд и ж е н и я к жр у а м ож н о п у р а в л я ть , з а д в а п р и а в от м а ит ч е с к о м з ап о л н ен и и в е к то р а , с о вт ес юу щ ег п о ль з о в ан и е comet с онд и м а р мгу е н от м (в ек от р м ) п р и в о ди ид н а м и ч е с к и р и сю у щ е г о с я гр а фи к а з н ач ен и й э лем н от . Ф ну к ц и ю comet м о ж н о в ы з в ат ь ст и о т и х н о м е р о в е тл ь н ы м ч и словы м п а р м е тр о м , к о т р ы й з аде т лд и н му о л ч ан и ю о н р а в е н 0.1. О б р а ти е в н и м ан и е , ч т о п р гр а фи ч е с к о г о окн а и л и п р и ег о м и н и м и з ац и и и п осюлуед щ е н и и тр а е к то р и я вд и ж е н и я п р о п ад ет . Э т о с в яз ан о с я гр а фи к а . п р и м ен яе т M ATLAB дл я п о срт ен и П о л чу и т о к р ж у н о с ит р а м е тр и ч е с к и м
е с ам о с т яел ь н
о тр а е к то р и я п о п р ям о
, к аятщ ей с и з а в и с и м о с ят м
Д л я п о с рт о е н и п о л ь з ес ту и з м ен ял и с
О то б р а з и т к о м а н ды
в M ATLAB zyxwvutsr
я раз ли ч н ы е ш аг о в р ем н и . И с т к п о срт о ен и в н о м ер а в з ав и с и м о и с тр еьт и м од п о л н и у вхо с т а к о м е ты . П и и з м ен ен и и р аз м ер о м в о с ат н о в л е о сп ос бом , к о т р ы
и ю о в й
ю вд и ж е н и я фи к с и р о в а н н о й то ч к и н а й (ц и к ло и )уд . Ц и к л о и д а о п и с ы в а е ст я п а и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH x(t) = t- sint, y(t) = l- cost.
я тр а е к то р и и то ч к и я нфу к ц и я comet3. П сту у з ак о н ь п о сюлуед щ ем
е тр а е к то р и
р аб о т ы
, п ер м ещ аю щ ей с ь к о р ди н а т
ы то ч к
я в п р о с тр а н с тв е и в теч н и
, и с е zyxwvutsrqponmlkjih 100 снеку д
у
—к— 501/50 • - I/- 50/50 ;с = е ' ' siiu , y = e ' cos/ , z- t. ю дв и ж е н и я то ч к и , п р и м ен я я п р и в едн н ы
е н иж
е
:
» t = 0:0.1:100; » х = e x p ( a b s ( t - 50) / 50) . * s i n ( t ) ; » у = e x p ( a b s ( t - 5 0 ) / 5 0 ) . * c o s ( t ) ; »
z = t ;
»
com et 3 (x, y, z)
Ф ну к ц и то р ы
Ра бот
й та
ю comet3 м о ж н о в ы з ы в ат ь с ч евт ры к ж е , ка к и в счлау е comet з а д е т лди н
а с не солкимь
и гриак фм
В о в се х п р и м е р а х , п р и в едн н ы ли с ь в с п ец и а л ь н о е гр а фи ч ес к о п о с рт о е н и и гр а фи к а п р еыд щ у и й мо е окн о . M ATLAB п р еод сатв л яе ск оль к и м и г р а ф и к а м и : • вы во
д к а ж до г
• вы во
д н ес к о л ь к и
м ч и сло в ы у в хо с т
х гр а фи к о
е окн о в в о нд
, к о .zyxwvutsrqponmlkjihgfed
и
х в п р еы д щ у и е окн о с з а го л в к о п роп адл т юс л у е д щ и а в сво
о гр а фи к
м а р г м у е н то м а к о м е ты
х р а з де л а х , гр а фи к и в ы в о ид м Figure 1. П р и сю улед щ е м й в ы в о ид л с я в т о ж е ас , а н о в ы е воз м ож н ост и работ ы с н е -
; о окн
о (н а онд
и к о р ди н а тн ы
е о с и )
;
л ав Г
3. Всы о кру вне ая
гиакр ф
• о т б р аж ен и св о и
х о с ях
ов ыВ
д гиорка ф
163 zyxwvutsrqpo
о дн о г о окн а н ес к о л ь к и х гр а фи к о в , к а ж до г о н а е в п р едлах .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
в в оеытнлдь
е онк
а
К ом ан д а figu re, о п р едл н н а я в M ATLAB, жслиу т лд я со з адн и я п с у от г о я ег о н а э к р а н е . О к н о сатн о в и ст я zyxwvutsrqponmlkjihgfedc ,ткеиущм гр а фи ч е с к о г о окн а и о от б р а ж ен и е гр а фи ч е с к и е фн у к ц и и буд т о щс у е с в т л я ь п о с тр о е н и е т . е . вс е п о слюеуд щ и гр а фи к о в в э от м о к н е . Д л я п очлуен и я н ов г о гр а фи ч е с к о г о окн а е с лу д т сн ов а и с п о л ь з о в а т ь figure. Н а п р и м е р , п о с л еод в аетл ь н о с т ь к ом ан д zyxwvutsrqponmlkj » [X, Y] = meshgrid(- l:0.05:1, 0:0.05:1); » Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1 - . Х Л 2).*У.*( 1 - Y ) ; >> figure » mesh(X, Y, Z) » figure » surfl(X, Y, Z)
п р и в о ди т к п о яв лен и щ ег о к арк асн у ю п о в е р н х о с ьт Figure 2 яв л сет я етк щ у и м р аем ы е дал е , н а п р и м е
ю н а э к р а н
е дву х гр а фи ч е с к и х окон :zyxwvutsrqponmlkjihgfedcba Figure 1, соедр ж а й п о в е р н х о с ьт ю . О к н о , и Figure 2 с о св ещ ен о , т . к . б ы л о с о з ад н о п о с л е нд и м . К о м а н ды , н аб и -
р
» colormap('copper') » shading interp п р и в еу д ч ес к о рабоч у и з м ен ен и к ом ан д гр а фи к (с о к р ащ ен и
т к и з м ен ен и я м и м ен н о в э от м о к н е . Д л я то г о ч от б ы с едл а т ь гр а фи е о к н о Figure 1 текщу и м , се улд т щ елк н т у ь н а н е м мыш к о й , в ер н ьтус я в ю с р ед у MATLAB и п р о д л ж а т ь в о д к ом ан д . К о м а н д ы п о в л ек у т я в окн е Figure 1. Д л я о ч и скт и в с ег о е тк щ у е г о окн а и с п о л ь з е с ту я а elf (со к р ащ ен и е о т clear figure), а дл я то г , ч от б ы бу р а т ь то л ь к о , н о о с ат в и т ь оси , з а го л в о к и н а з в а н и я о сей , се улд т п р и м ен и т ь c la е о т clear axes).
В ы ш ео п и с а н н ы м сп ос бо м м ож н ок н и в ы в ес т и в н и х гр а фи к е да н н ы е в е к от р н ы е и м арт и ч н ы фи к а п р и ес д т я и ск ат ь ег о о к н щ ел ч к а мы ш и . Е ст ь бо ле е ну и в ер с ал ь н ы ск о ль к и м и ок н ам и . П р и со з адн и п ом щ и figu re еслуд т в ы з в ат н а з ы в а ес т я в MATLAB меук азтл н о г о а р гму ен т а я в л ес т я ч и с л о
о п о лч у и т и раз ли ч н ы . О дн а к о н а э к р а н
ь ск оль к х н фу к ц и о дл я и з м ен ен и е и дел ат ь ег й и уодбн ы и к а ж од г о н ов г о ь е е с в ы охнд ы м а р г м у е н от м н а гр а фи ч ес к о е , с о в п адю щ е е с н о м ер о
о г о у нд о гр а фи ч е с к и й и л и в и з ау л и з и р о в а т я то г о и л и и н о г о гр а о текщу и м п р и помо щ й сп о с б работ ы с не гр а фи ч е с к о г о окн а п р . Э от т а р мгу е н окн о . З н ач ен и е м в ы о хд м гр а фи ч е с к о г о о к н а
х ь и и т .
аЧс т ь
164
I. Ос но вы
в MATLABzyxwvutsr
работы
Д л я то г о ч то б ы с едл а т ь гр а фи ч е с к о е о к н о текщу и м , се луд т вы з ват ь figure, куа з в в к а ч е с вт е в о х дн о г о а р мг у е н т а к у а з ет л ь н а рт е б у м о е гр а фи ч е с к о е окн о . Р а з б е р и т е и с п о л ь з о в а н и е указ етл й н а сю улед щ е м п р и м ер . Т ребту с я с о з ад т ь дв а гр а фи ч е с к и х окн а , п о с рт о и т ь в н и х гр а фи к и н фу к ц и й / = sinxH zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA g = l n x, а з ает м оф рм и т ь и х — да т ь з а го л в к и и н а н ес т и к сте у н а в то р й гр а фи к (р и с . 3.47). П о с л едо в а етл ь н о с т ь к ом ан д , п р и в едн н а я н и ж е , п о з в о л яе т п о лчу и т ь ж ел а м ы й р е з л у ь ат .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR » sinGr = figure; » lnGr = figure; » x = [0.1:0.05:10]; » f = sin ( x) ; » g = log(x); » figure(sinG r) » plo t ( x, f) » figure(lnG r) » plo t ( x, g) » figure(sinG r) » t i t l e ( ' \ i t f = sin \ it x' ) » figure(lnG r) » t i t l e ( ' \ i t g = ln \ it x' ) » grid on zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
*J Figure 2 в . zyxwvutsrqponmlkjih zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM Feli Edti V eiw n Isert Toos l Desko tp W nd iow Hepl zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML v О е Ј У # k ^ QL О ® / \ 'Ђ п 3 D f=sinx 1 F i l e
D
E d i t
^
V i e w
§
y
I n s e r t
k
T o o l s
> quiver(х , у , их
, иу
, 0.3)
Ф ну к ц и му о л ч а н и ю
-
.
>> q u i v e r ( х , у , и х
В о - в от р ы х к о э ф и ц и ен С р а в н и те
ь 0.5 п о
0.5)
0.4 Р си
й м н о ж и ет л
:
>> q u i v e r ( х , у , и х
П о лч у а е с т В н аш е кри во
й и м а с ш ат б и р ю у щ и
я quiver до п сук а е , н а н а ч и н а ю щ и ес
т з а м ен
у с рт е л о к я с м а р к ер
, к о т р ы м а о рт е з к и
. Т и
и р и сю у ст п л и н и
я в е к то р , ц ве
ь
ы п о
.
т и м а р к е
р
л ав Г
3. Всы о кру вне ая
к у а з ы в а ю ст ыт
гиакр ф
я в м ес т м ил
и ш ыест
171 zyxwvutsrqpo
о м а с ш ат б и р ю у щ е г м вохнд ы
о м н о ж и е тл я и л и п о сл е н ег о (т . е . п я .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
м а р гм у е н от м )
>> quiver(х , у , их
, иу
, 'or- - ')
» quiver(x, у , их
, иу
, 2.1, '*к:' )
П о м д у а й те вд и ж е н и к о р ди н а т к о м ан д иф к п о л
, к а к о т б р а з и т ь н е то л ь к о в е к от р я в ви д е п лав н о й кри вой . О ч ев и дн о ы е т л а с д о с та о ч н о м алы м ш а го у hold on дл я н ал о ж ен и я ли н и и дви ж ен и я с к о р сетй .
Ф ну кц и и compass и feath er р еал и з юу б р а ж ен и я в е к от р н ы х п о л ей . О н и о лти ч аю ст з адн и я н а ч л ь н ы х от ч е к в е к то р о в . Ф ну к ц и то р ы и ос я хдщ и м и и з н а ч л а к о р ди н а т о ст я щ и х от ч е к н а о нд о й п р ям о й . Э т ид т ь и з м е н е н и е с к о р с т и б е з о нт о с и ет л ь н и feat h er, куа з а в в к а ч е с вт е в о хн д ы х п р о ек ц и й в е к то р а с к о р с ит : » compass(их
, иу
)
» feather(их
, иу
)
Р е з л уь а т
ы п р е сд а т в л е н ы
с иР
. 3.52. Зивтсамо
, с о вт ес н н о
ь стсорк
ы с к о р с ит , н о и тр а е к то р и , ч т о н ж у о з ан ов о вы ч и сли т м п о в р ем н и и и сп оль з оват я ет л а н а п о с рт о е н н ы
ь ь й гр а
-
т рд г и у
е сп о с б ы гр а фи ч е с к о г о от , ч т о н е тр е бюу т я о т quiver етм я compass п р есдатв л яе т вс е век , a feat h er — и осяхдщ и м и и з р а в н о и н фу к ц и и од у б н ы , сле и н а д о остле о к тр а е к то р и . В ы з о в и т е compass а р мг у е н о т в м ас и в ы с о з н ач ен и ям и
, н а р и с
и тле
ю
а о т вн ем р
. 3.52zyxwvutsrqponmlkjihgfedcbaZYXWV и 3.53.
и (фнцик у
я compass)
аЧс т ь
172
Ф ну к ц и и м ен т — к о м п л ек с н ы п ер в ы й и з пУ р а в л ен и ат к ж е , к а к
compass и fea t h er м о гу т и м ет й в е к то р , ч т о э к в и в а л е н нт к о то р ы х — в е к от р в е щ е св т н н ы е с в о й с вт а м и ли н и й , и сп о ль з ему ы И В quiver.
Рис
. 3.53. З ав и си м о ст о т врем н и (фн у кц и
I. Ос но вы
ь еи д н с в т е н н ы о вы з ов х ч а с е тй х в м ес т
р аб о т ы
в MATLAB zyxwvu
й в о х нд о й а р уг у о т в ду х в е к то р о в , а в т о р о й — м н и м ы х о с рт е л о к , п р о и з в о ди ст
, . я
ь ск о р ст и е тл а я fe a t h e r )
П олн а я и н форм ац и я О ф ун к ц и я х q u i ve r , compass И fe a t h e r С о де р ж и тс я В и н те р а к ти в н о й сп равочн о й с и с те м е M AT L AB и zyxwvutsrqponmlkjihgfedcbaZYXWVU ин е ж о и п л р 1. О т м е т и м , т бы т ь и сп ольз ован а д л я в и з у а л и з а ц и и д в ум е р н ы х ч т о ф ун к ц и я q u i ve r м о ж е в е к то р н ы х п олей , н а п р и м е р , г р а д и е н т а ф ун к ц и и (с м . п р и м е р в сп равочн о й с и с те м е ) . Д л я п р е дс та в л е н и с л уж и т в е р хн о с т э то м п ри м ер в е к то р о с е тк и н
, я т р е хм е р н ы х в е к то р н ы х п олей , з а д а н н ы х н а п о в е р хн о с т и q u i ve r 3 . О д и н и з возможн ы х п ри меров — в е к т о р ы н ормал и к п о и — п р и в е д е н в сп равочн о й с и с те м е . Д л я н а х о ж д е н и я н ормале й в е п ри влеч ен а ф ун к ц и я surfn orm . О н а вы ч и сляе т ком п он ен т ы в н ормал и в то ч к а х п о в е р хн о с т и , к о т о р ы е с о т в е т с т в ую т то ч к а м а п лоскост и (х , у ) , г е н е р и р у е м ы м ф ун к ц и е й m e sh gr id . И з у ч и т е
л ав Г
3. Всы о кру вне ая
п ри м е (ри с
гиакр ф
р и с а м о с т яел ь н . 3.54). П р о в е р ь т
е себя
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF 173zyxwvutsrqpo
о п о с рт о й т е в н еш н и е н о рм ал и к ш ар у р а ди с у а 1 :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» u = (- p >> v = - pi:pi/15:pi; » X = sin(u)*cos(v); >> Y = sin(u)*sin(v); » Z = cos(u)*ones(size(v)); » surf(X, Y, Z) » [U, V, W] = surfnorm(X, Y, Z) ; » hold on
» quiver3(X, Y, Z, U, V,W, 4, ' k');zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
1.5 - ,
1 0.5ЩШш
S§i&- i
- 0.5-
- 4 - 4 — H c ^ ^ ^ ^ . j
"'•' • ;• • • zyxwvutsrqponmlkjihgfedcba •' • • .!• • .';
- 1 * 1
^ \ 0 ^ ^
:
•
>
1
:
:
:
:
:
.
.
.
• • • - • • • • • • " • • •• • • •
1
Рис к ш ар
я и з о б р аж ен и я р т ме х р н ы с к о р сет й в дви жщу ей с ц и ю con epiot. К р а тк о
:
^ х ^ - 2 - 2
. 3.54. В н еш н и у (фн у кц и
.
>
^
1
-1
е н о рм ал и я q u ive r 3)
х в е к от р н ы я ж и кд о с т е о п и с ан и
.
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
^
Дл
:
> • • • ;;,. j !,- - - - - - ^^
i l ^
и га з е
х п о л ей , ат к и х к а к р а с п р едл н и е , MATLAB п р еод сатв л яе т н уф к и да н о в инеzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ пжо илр 1.
174
Зад ни
/. Ос но вы zyxwvutsrqponmlkjihgfedcbaZYXWV работы в MATLAB zyxwvut
аЧс т ь
я
лд я оньлетясма
й работ
1. П о с тр о й т
е гр а фи к
и фн у к ц и
ы
й о нд о
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
й п ер м н о
й н а о рт ез к
е [0.01, 2т]с .
, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG g(x) = Q~ XCOSX.
/ ( * ) = X В ы в ие д т
е гр а фи к
и р а з л и ч н ы м
• в о едтл ь н ы • в о нд
и сп о с бам и
е гр а фи ч е с к и о окн
е о к н а
о н а онд
• в о нд о окн Дай т е з а го л о в к и ли ч н ы е ц в еат
и о с и
е о си . е п од и с и к о с ям й и ти п ы м ар к ер о в
(
x
,
е гр а ф и к
, и с п о ль з йу т
е раз
е скету
х з н ач ен и
й н фу к ц и е в о в н и м а н и е ь о дн о г о в е к то р а о т д р гу о ю find лд я п о и с к а и н ед к с о и н фу к ц и и и и н ед к с а ц и .
ь н фу к ц и а с о з н а ч ен и ям х к о м п о н ен т
-
. и си н и , ч т о н . С ле в рт е ю в е к от
. П р и м и т
я з ав и си м о ст
y
)
=
(
s
m
x
2
+
й ц в ео т
м а -
o
s
м к арк асн о и л и н и ям й п о в е р н х о с ьт ю
й п о в ернх о с т е н а рт е м х р н о я н фу к ц и
2
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
)
,
Х
Е
[
-
,
1
l
]
,
j
>
e
[
-
l
,
l
]
.
:
й п о в е р н х о с ьт ю
; и р уо в н е л и н и ям
, о то б р а ж е м ы
е гр а фи к
y
;
• п ром арк и рован н ы м ч ен и я фну к ц и • о с в ещ ен н о
c
и сп о с бам и
й п о в е р н х о с ьт ю
• з а л и то
О мт е ь т ч т о з н ач ен и
я о рт и ц а ет л ь н ы х — к р а с н ы м
и р а з л и ч н ы м
• к арк асн о
Р асп о л ж и т с о вт е с ю у щ и щ ен н о
а лд
, легн уд , н ан еси т
е н фу к ц и ю в уд х п ер м н ы х н а п р я м о гу л ь н о й о бласт и я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA z
В ы в еи д т
;
;
о н а оедтль н ы , р а з м ес ит , сит л и ли н и
Н а р и сйу т е ч аст ь гр а фи к ц в е от м , а дл я п о л ж и етл ь н ы сам о м ед л е о т б р а ж е тс д о в а те л ь н о , м о ж н о п р и м ен и т е мб у ы х э л е м н от в в е к от р р о м дл я в ы едл н и я н жу ы 2. В и з аул и з и рйу т о п р е дл н и
:
я (с а м о с т яел ь н и уро в н я)
о вы брат
ь зн а
-
;
.
и в о е д тл ь н ы м ч и сло м о с ей и с н еск о ль к и м гр а фи к и в з ула
х гр а фи ч е с к и . П р едс ат в ь т х то ч е к обз ора е от ч к х кс ет
х окн а х и в о нд о м окн е с е ви д к арк асн о й и л и о св е .
и э к с рт е м у о в и р ха н яс т
. И с п о л ь з йу т я в м а рт и ц е
е то . О п р едл и т
е
,
л ав Г
3. Всы о кру вне ая
гиакр ф
м ак си м аль н о е з н ач ен и е н фу к ц и л и т зу н ат ь с от л б ц е в ы е и срт о ч н ы в ер ш аю щ и й э ат п с о т и т в вы з ов то ч к а х рт е м х р н о г о п р о с рт а н с вт 3. П о с тр о й т
е в е к то р н о
В и з а ул и з и р й у т раз н ы
е п о л
и п р и п ом щ и max. Ф ну к ц и е и н ек д с ы э и т х э л е м н от е p io t 3 лд я р а с п о л ж ен и а н а гр а фи к е .
е гр а ди ен т
е рт ем х р н о е п о в ернх о с ит )
175zyxwvutsrqpo
а фну к ц и
е в е к то р н о
я fin d п о з в о в м а тр и ц ы . З а я м ар к ер о в в
. е п ол
е н а п о в е рн х о с т
и (в о з ь м и т
е
:
• п о в е рн х о с т
ь я в л се т
я ги п е р б о л и до м
• п о в е рнх о с т
ь я в л се т
я п а р б о л о и до м
• п о в е рн х о с т
ь з адн
; ;
а п а р м е рт и ч е с к и
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
x(u, v) = cosw - cosv, y(ii, v) = sinw - sinv, z(u, v) = w- v, u, ve[0, 3]. П о с тр о й т
е в ек от р н ы
е п о л я
:
• п ол е н ап р ав л ен и к о м н а п о в е р н х о с ьт
й о тр а ж е н н о г ;
• п ол п ч ук о
е н ап р ав л ен и м н а п о в е р н х о с ьт
й п р ело м лен н о г
• п ол и с от ч н и к а
е н ап р ав л ен и
й о рт а ж е н н о г
Р а с м о рт и т р ас п о л ж ен и П р и п о с рт о е н и к о л и ч е с вт н а и лч у ш е г сит , н ео б хид м о п р ело м лен н о г
о с в еа т
, п адю щ ег о с в ае т
о п ар л е ь н ы , п а дю щ ег
м чп у о п ар л е ь н ы
м
; о с в ае т
, н а п р а в л е н н о г
о и з то ч е н о г
й в з ав и си м о ст
и о т вз аи м н ог
о
. е и з м ен ен и я п о в ернх о ст о от ч е о п р е сда т в л е н и
е п о ле
и п ол я н ап р ав л ен и к п р и л о ж ен и е лд о в е к то р а
й н ап р ав л ен и и и и с от ч н и к а й п о бд е р и т
я в е к от р я о хар к етр
я о п р е дл н и , в ы ч и с ли т
о
. е м а с ш ат б н ы й м н о ж и ет л ь и в н а п о в е рн х о с т и л д я п о чл у е н и я е п оля . П о л е н о р м ал е й к п о в ернх о я н ап р ав л ен и я ч ел у й о тр а ж е н н о г о ил и е с п о м щ ь ю н фу к ц и и surfnorm.
лав Г
а т н еви Ир к лд
а 4
я пиетсорн
я сре д я го ик арф
а в
zyxwvutsrqponmlkjihgfedcbaZYXWV
т од у б н о е и н ет р а к ит в н о е с р е дв т о л д я п о с рт о е н и я MATLAB п р едо с атв л яе гр а фи к о в и к о р е к ти р о в к и и х в и да , н ан ес н и я д о п о л н и те л ь н о й и н фо р м а ци , п о дг то в к и и х к п е ч а ит , сорхан ен и я и э к с п о р т а в раз ли ч н ы е гр а фи ч е ск и е фо р м а т ы — н а б о р и н с ртм у е н от в в ы с о к ру о в н е в о й гр а фи к и (Plot Tools), к о т р ы й ад л е е е д бу м н аз ы в ат ь р е д а к то р м гр а фи к о в . И с п о л ь з о в а н и е р е д а к то р а о п р а в да н н о , к о гд а р т е бс у я п о д г то в и т ь н еб о ль ш о е ч и сл о гр а фи к о в дл я п еч а т и и л и дл я в сат к и в к а к о й - л и б о до к му ен т . Р е да к то р гр а фи к о в п о з в о л яе т в ы п о л н ят ь п р о с ет й ш и е о п ер ац и : з а д в а т ь ит п и ц в е т ли н и и и л и с в о й с вт а п о в е рн х о с т и н е п о с р е дв т н н о п р и п о с рт о е н и и гр а фи к а , р аз м ещ ат ь з а го л о в о к и легн уд , п о пд и с ы в а т ь оси . Н а ч и н а ю щ и м п оль з ова е тл я м э то г о вп олн е д о с та о ч н о . О дн а к о п р и н ап и сан и и с о б вт е н н ы х п ри м вы вод м р е з л у ь та о в ч аст о в о з н и к ае т л о ж ен и й в M ATLAB с гр афи ч ес к и н е о б х ид м о с т ь п о лч у и т ь ж у е го т в ы й гр а фи к б е з да л ь н е й ш е г о р е д а к ти р о ван и я . В о з м о ж н а и бо ле е сло ж н а я с и а у тц и я , п р и к о т р о й о ед т л ь н ы е э ле м ен т ы гр а фи к о в до л ж н ы и з м е н яь т с я п р ям о в одх е р а б о т ы п р и ло ж ен и я , н а п р и м ер , ц ве т и л и то л щ и н а ж у е щ с у ю ве т щ е й ли н и . В слчуае , к о гд а п р и л о ж ен и е и с п о л ь з еу т н ес к о л ь к о гр а фи ч е с к и х ок н с о свои м и о с ям и , н е о б х ди м о в ы в о ди т ь р е з л у ь ат ы н а н жу ы е ос и в о п р е д л н н о м гр а фи ч е ск о м о к н е . Д л я р еш ен и я э ит х з ад ч н е о б о й ит с ь бе з с р е дт в д е с к р и п то р н о й гр а фи к и (H andle G raphics), к о т р о й п о с в ящ ен а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ гав л 9. Р а б о та я в р е д а к то р е гр а фи к о в , в ы п о з н ак о м и етс ь с о р к ос у т й гр а ф и ч е с к и х о б ъ е к от в MATLAB и м н ог образ и е м и х с в о й с вт , ч т о в п о следвти и о б л е гч и т п о н и м ан и е се к д р и п то р н о й г р а ф и к и .
л ав Г
4. Инт е р так и вная
с р аед
ри ае ч Г ф с и к
для
е от ек ъб
по с т р о е ни я
177zyxwvutsrqp
гиоквр аф
ы
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
MATLAB явлсет я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ке-тонъ б вйитнаоер й,о тимес п ри ч е м вс е ги- афр к с еи ч ке т ыъ б о р ас п о л ж ен ы в о п р е дл н н о й и ер а их ч ес к о й п о с л е од в а ет л ь н о с ит . Д л я о св ен и я с р е двт , о п и сы в аем ы х в н а с от я щ е й гл а в е , од сат то ч н о и сп о ль з о в ат ь пу р о щ ен н о е п р е сда т в л е н и е о гр а фи ч е с к и х о б ъ е к ат х . О сн овн ы м о б ъ е к от м я в л се т я гр а фи ч е с к о е окн о (figure), в к аж од м окн е м о гу т б ы т ь р ас п о л ж ен ы о дн а и л и н еск о ль к о си ест м к о р ди н а т , о п р едля м ы х св о и м и о с ям и (axes). Н а к аж од й с и ем т е осе й р а з м ещ а ю ст я рд г и у е гр а фи ч е ск и е о б ъ ек ыт , н а п р и м е р лин (line) и л и птисхвонре (surface). К р о м е то г о , в о бласт и гр а фи ч е с к о г о окн а м ож н о р а з м е с ит ь раз ли ч н ы е п о яс н яю щ и е о б ъ е к ыт : сртелк и (arrow, doublearrow), сртелк и с ет к с от в й н а пд и с ь ю (textarrow), н апд и с и (textbox), гео м ерти ч ес к и е ф и р гу ы (ellipse, rectangle). П о яс н яю щ и е о б ъ ек т ы п р и н а лд е ж а т с п ец и а л ь н о м у ю о лс паинйче имр (annotationlayer) гр а фи ч ес к о г о о к н а .
Figure
1
I и г урД
i
е тк е ъ б о
ы
Axis i 1
1
I и ф аГр
Рис
В аж н п р и м ер
Text
Surface
Line . 4.1. Ср у тк ур т (ущопнре ы
о п о н и м а ть , ч т о п р и в ы з о в , p lo t (н е в а ж н о и з к о м а н дн о г о и н те р ф е й с а ) , с н а ч л а с о з да е с т оси , н а к о т р ы е в ы в о д я тс я ли н и
к sin x
а о тк е ъ б о й виран т е нф у к ц и й с тр о к я гр а фи ч ес к о и гр а фи к а
в MATLAB ) й в ы с о к о ру о в н е в о и и л и с р е дс в т а м е окн о и п р и н а дл е ж а щ и . Д р гуи м и словам и
й гр а фи к и и гр а фи ч ес к о
, н а е ме , к о м а н д
у а
178
аЧс т ь
p lo t с о з да е "п р о с т о с тр о и
т в с е н е о б х ди м ы т гр а фи к "
е рд г и у В ч с ла у и др. ) си ацут и в е р н х о с ят м и г о и з в ы ш еп р еч и слен н ы
х гр а фи ч е с к и я а н а л о ги ч н а . Р е да к то
х н фу к ц и , то л ь к р гр а фи к о
р гоикра ф я н ач л
в MATLAB zyxwvut
работы
и гр а фи ч ес к и
е о б ъ е к ты
, а н е
.
х о б ъ е к то в
Р е адт к о Дл д а к то р работ
е в и е р а их
I. Ос но вы
й (н а п р и м ер , surf, mesh и л и contour о м ы уж е и ме м дел о н е с л и н и я м и , а с п о в п о з в о л яе т легк о и з м ен и т ь с в о й свт а к а ж од .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
в
а работ ы с р е да к то р ) еслуд т п о д г то в и т у н а юс луед щ е м п р и м ер
м гр а фи к о
в (дале е лд я в и з а у л и з а ц и : н а о нд о й п ар
ь да н н ы
н фу к ц и
й sinx и cosx н а о рт ез к
ци
х
е в э от е о се
е [0, 5], а н а д р у г о м
й гл а в . П р о и л ю с рт и реу й п о с рт о и
е п рост м гр а фи к
— п о в ернх о с т
ь н уф к
у
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ~ е ~ - ( x- l ) - sin27iy лд я :л , уЕ [—1,1]. Н и ж е п р и в едн а п о с л ед в а
ет л ь н о с т
ь к ом ан
д дл
»
х = 0 : 0 . 1 : 5 ;
»
f = s i n ( p i * x ) ;
я п о д г от в к
и ад н н ы х
о ре м и -
:
>> g = c o s ( p i * x ) ; » »
Дл
[X, Y] = m e s h g r i d ( - l : 0 . 0 5 : 1 ) ; A Z = e x p ( - X . 2 - У .
я в ы з о в
а р е да к то р
Л
2 ) . * ( Х - 1) . Л 2 . * s i n ( 2 *p i *Y) ;
а гр а фи к о
в в о с п о ль з йу етс
ь к о м а н до
й
>> plo t t o o ls П о я в л е ст Р е д а к то и н с ртм у е н от ки ) свой ст м е н от лд
я ср ед р гр а фи к о
а р е да к то р
в с о ед р ж и в и тр и в с п о м о гаетл ь н ы , Plot Browser (Бр азу е в гр а фи ч е с к и х о б ъ е к то в ) в гр а фи ч е с к о г о окн я п ер охд а в р еж и м р е да к ти р о в а н и я
а гр а фи к о в т гр а фи ч е с к о р о б ъ е к от в а вы бра
, и з о б р а ж ен н а
я н а р и с
. 4.2.
е окн о zyxwvutsrqponmlkjihgfedcbaZYXW Figure 1 с м не ю и п ан ел ь ю х окн а : Figure Palette (Ш а б л о н ы гр а фи ) и Property Editor - Figure (Р еда к от р . О б р а ти т е вн и м ан и е , ч т о н а п ан ел и и н ср т у н и н с р мт у е н т Edit Plot, п р едн а з н а ч ен н ы й .
Н али ч и е в с п о м о г а ет л ь н ы х ок н о п р е дл я с т я с о т ян и е о окн а . К р о м и м ен н ы х п н у к ат х м не ю View гр а фи ч ес к о г м ен н о г о о т б р аж ен и я и л и с к р ы ит я в се х в с п о м о г а ет л ь н ы п о с л е нд и е кн оп к и н а п а н ел и и н с р тм у е н о т в гр а фи ч е с к о г Tools (З а к р ы т ь окн а ) и Show Plot Tools (П о к а з а т ь ок н а) пс у т н а то л ь к о о дн а и з н и х .
м фл а го е то г о , лд х ок н о окн а , п р и ч е м
в в о нд о я о нд о в р е сж л уа т вд е : Hide Plot в с е гд а до -
л ав Г
4. Инт е р так и вная
с р аед
для
по с т р о ени я
179 zyxwvutsrqpo
гиоквр аф
iw Insert Toosl Desktop W nidow Hepl File Edit Ve D с ? в a IV . Н а э к р а н е п о яв и ст я гр а п ну к т Run в м ен фи ч е с к о е о к н о Figure 1, соедр ж ащ е е гр а фи к и фну к ц и й . Р ез луь ат т э к в и в ал ен м ок е т н п о с л е од в а е т л ь н о м у в ы п о л н ен и ю к ом ан д л и с ит н г а 5.1 в к о м а н дн о н е . О дн а к о есл и в ы р еш и л и п о с рт о и т ь гр а фи к к о си н су а в м ес т о с и н с ау , т о д о с та о ч н о п рост о и з м ен и т ь о п е р а то р п ри св аи в ан и я д = sin ( x) в М - фай л е н а д = cos(x) и з ап суит ь и з р е да к то р а вс е к о м а н ды . нА а л о ги ч н ы е ей д с т в и я и з к о м а н дн о й срто к и п о тр е б о в а л и б ы б о л ь ш е в р ем н и .
л ав Г
5. М - й лы фа
[ ^
207zyxwvutsrq
П р и м е ча н и
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и н овы й фйа л в роакредт е и н абрл и в не м ком ан ыд лЕс и в ы слаозд о б з я ел ь а т н о с н ач л а р ан с о х т я ь г е о и з н ем ю File, а олть к о по т н ь ят . М ожн о сзар у р аск ы т ь н ем ю Debug. П н у к т Run в эо т м ча улс с нт е я я н а Save and Run, о н п оз веля т зи апст у ь п р о гам у , п вардеильт н о снра охи в ее . О ч ен ь од у б н о й в о з м о ж н о с ьт ю таисч к.адн мо З ак рой т е гр а фи ч е с к о мы ш и , ерджу и ва я л ев у ю кн оп ку е т м о тк р о й т е к о н ет к с н о е м не Evaluate Selection. To ж е сам о е в и ш ам и с о с рт е л к а м и п р и н а ж от д ы л и с ит н г а 5.1 и в ы п о л н и т е и н аж м и т е к лав и ш у < F 9> . О б р а ти в ел с я то л ь к о оид н гр а фи к , со втесюу щ и п олн и т е о сатв ш и е с я рт и к о м а н д гр а фи ч е с к о г о окн а . П о рт ен и рйу етс п р и м ер ы и з п рыед щу и х гл а в в Д р гуа а дл е
я воз м ож н ост е в р.азд
Е сл
и в М - фа й л
ь лд
я в ы п о л н ен и М- а йл ф
"Ринеазб
, т о н е м вы п ол е з мае -
ин е л п во ы а М - фа й л о в я в л се т я zyxwvutsrqponmlkjihgfedc о Figure 1. В ы едли т е п р и п ом ощ и , п ерв ы е ч ые т р е к о м ан д ы л и с ит н г а 5.1. З а ю п рав о й кн оп ко й мы ш и и в ы б ер т е п ну к т м о ж ет е с ед л а ь т , и сп о ль з у я к л а в и а р ут : кла й в ы едли т е п ер в ы е ч еыт р е к о м ан х и з п ну к т а Evaluate Selection м ен ю Text и л и е в н и м ан и е , ч т о в гр а фи ч ес к о е окн о вы й в ы п о л н ен н ы м к о м а н да м . Вы ы л и с ит н г а 5.1 и п р о с леид т е з а с о т ян и е м ь с ам о с т яел ь н о , н а б ер и т е к а и е- л и б о р е да к то р е М - фа й л о в и з ап суит е их . р е д а к то р
е окн
я фр а гм е н т на яйек чи
е п р и н або р е с едл а н а ош и бка . M ATLAB в ы п о л н яе т к о м ан д сл е ч ег о в к о м а н дн о е о к н о в ы в о ид ст я с о б щ ен и д а к то р е н овы й фай л mydemo2.m, н а п р и м е р п а н ел и и н сртмуен от в р е д а к то р а , с о сюлуед щ и м и с п о л н ен и я
" эйто
а М - фа й л .авыг л
а р а с м а тр и в а е тс
я
, т о о н а в ы яв л ест я в п р о ц ес е ы д о н еп р ав и л ь н о в едн н о й , п о е о б о ш и б к е . С о з да й т е в р е , п р и п о м щ и к н о п к и New M- file и к о м а н да м и :
У = С 1 2 3 ] z = у * у х = у
О ч е в и дн о та к о г ги п е р с ы л к о
, ч т о в о в то р о о фа й л а п р и в ед й н а м ест
й с рт о к т к в ы в о д о о ш и б к и
е од п щ у е н а ош и бка . П о п ы тк а в ы п о лн ен и я у в к о м а н дн о е о к н о сюлуед щ ег о с о б щ ен и я с :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
??? Error using ==> mtimes Inner matrix dimensions must agree. Error in ==> mydemo2 at 2 z - y*y Щ ел ч о а к ит в н ы
к мы ш и п о ги п е р с ы л к м и п о м ещ ае т крусо
е с и м ен е м М - фа й л р в срто к у с о ш и б к о й
а ед л а .
т окн
о р е д а к то р
а
208
аЧс т ь
I. Ос но вы
в MATLAB zyxwvut
работы
Пр и м е ча н и е ^Д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED J^ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA В ы п н ол м еы я н о . Н ап ри м ер н и я вы вод О е длт ь н ы сн абж ат о дб н у з н ак н ию )
е к о м на д , в пщ ыуе д р а се у дел
ы ю щ я в л у о ст е т з аверш ат
т вы о е вы олсве ы точк
м п ир м е ь комна д
д р ез л ь а т у ь з н ча е и й с з ап оятй
а в к о м ан д о е у . Дл .
е ок я е в л па о д
-
е блок и М - фа й л а (о со бен н о боль ш ог о р аз м ер а ) ц ел с о б р а з н о ь zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и,м тнияар ме кмо котры е п р о п с ук а ю с т я п р и в ы п о лн ен и , н о я с о ы пр и работ е с М - фа й л о м . К о м ен ат р и и в M ATLAB н а ч и н а ю ст а п р о ц ен т а и а в от м а ит ч е с к и в ы едл я ю с т я з ел н ы м ц в ео т м (п о м уолч а , н а п р и м е р :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
%пи н е о р т с о
е гк и ф а р
а sin(x) в оо н ь л е д т
м он к
е
Д л я и с к л ю ч ен и я ч аст и и с п о л н яем о г о код а б е з е г о а д л уе н и я и л и сл е и к о л и ч е св т о с рт о к к о м е н ат р и е в д о с та о ч н о в ели к о , м о ж н о и сп оль з оват ь бло к к о м е н та р и е в , н а ч и н а ю щ и й с я с о с рт о к и и з вуд х си м вол в % { (з н а к а п ро ц ен т а и о кт р ы в а ю щ е й с я ф и р г ун о й ск обк и ) и з а к н ч и в а ю щ и й с я с рт о к й и з в ду х с и м в о л в % } (з ак р ы в аю щ ей с я фи ргун о й ск о б и и з н а к а п р о ц е н та ) . О кт р ы ит е щ с у е сю в т у щ е г о М - фа й л а п р о и з в о ди с т ю File р а б о ч е й с р ед ы ли б о р е да к то р Open... м не р е д а к то р е м ожн о и к о м а н до й e d it и з к о м а н дн о а р мг у е н т а и м я фа й л а , н а п р и м е р :
я пр а М - фа й л о в й с тр о к и
и п ом ощ . О тк р ы т , ука з а
и п ну к т ь фа й в в к а ч е с вт
а zyxwvutsr л в е
» edit my demo К ом ан д н ов г сю в т у щ е г
а e d it бе з ар мгу ен т а п р и в о ид о фа й л а бе з и м ен и (U ntitled). Е сл о фа й л а mydemo4:
т к о кт р ы ит и в ы ввел
ю р е д а к то р и к о м ан д
у с и м ен
а и с о з ад н и м н щ с еу
ю -
» edit mydemo4 т о M ATLAB в о с п р и м е т э т о к а к ж ел а н и е с о з ад т ь н овы й М - фа й л с куа з н н ы м и м ен ем . Н а э к р а н е д бу т в ы в е дн о ди а л о г в о е окн о с з ап росом : "File mydemo4.m does not exist. D o you want to create it?" (Ф а й л н е сщ у есвту , хо ит е л и в ы с о з ад т ь та к о й ф а й л ?) . П р и в ы б о р е Yes фай л е д бу т с о з ад н и от к р о е ст я в р е да к то р е М - фа й л о в . ^
Пр и м е ча ни
е
В эо т м ж е окн е ис тем я фал г Do not show this prompt again, уанст овк а кот р о г о к ол ю т ч и т п н евл оя и е з ап рос а н а соназ д и е н ов г о аф й л . В эо т м улс ча е указ н и е н и ем и ню щув тсге о йа ф л а в кв часте е п а р м ет а коман д ы e d it зарс у п е ир д в т к г е о с о з ан д и ю . В ы мтжое е в о а сн т о в и т п н е вл оя и е эогт о з ап роса , оибратвш и с ь к н роасйт к м раедкотр . Дл я эогт
о
ь
л ав Г
5. М - й лы фа
в ы р и бе т
209 zyxwvutsrqpo
е в мн е
ю File рабоче й д ер с ы ил и ракоедрт а М - й а фо л в пн ук т zyxwvutsrqpon Prefя он д ои мне о е окн о , в лове м п ло е к отр г о е у делс т пе й ер т и к пн тку у Editor/ Debugger и уанст ови т ь ал ф г Show dialog prompt when editing files that do not exist в п рвао м п оел . erences. П с отвеял
В р е д а к то р е М - фа й л о в м ож е т бы т ь о нд о в р е м н н о о тк р ы т о н ес к о л ь к о фай лов . M ATLAB п о з в о л яе т м ен ят ь сп о с б о т б р аж ен и я фа й л о в в р е д а к то р е . П о му о л ч а н и ю окн о Editor р е да к то р а то л ь к о о дн о , и п р и о тк р ы ти и к а ж до г о н овог о фа й л а о н о с н а б ж ес т я з а к л а кд о й вн и з у рабоч е й о бласт и с и м ен е м фа й л а л д я б ы с рт о г о п е р о хд а к окн у с требму ы м фа й л о м и л и лд я е г о з а к р ы ит я кн оп ко й н а з а к л а кд е . П о с л енд и е п ят ь к н о п о к н а п ан ел и и н с р мт у е н то в (см . р и с . 5.1) да ю т воз м ож н ост ь вы брат ь сп о с б р ас п о л ж ен и я ок н с фа й л а м и в рабо ч е й о бласт и р е д а к то р а . Н а п р и м е р , е е м о ж н о р а з де л и т ь п о х фа й л о в . И с п о л ь з у я г о р и з о н та л и и л и п о в е р ит к а л и лд я о т б р а ж е н и я в уд н ехт и к у dock/ undock, м о ж н о о кт р ы т ь к а ж ыд й фа й л в свое м окн е р е д а к то р а и ли , н а о б о р о т , в с рт о и т ь ег о в дргоу е окн о р е да к то р а . Д л я в ы п о л н ен и я ука з ан н ы х о п ер ац и й в п р а в о й ч аст и с рт о к и м не ю п р и с вт ю у т с о вт е с ю у щ и е и н срмтуен т ы Dock и Undock. Е сл и окн о р е да к то р а е ид н с в т е н н о е , т о и с т к в с рт а и в а н и ю окн а р е д а к то р а М - фа й л о в в п оль з ован и е Dock п р и в о ди окн о р а б о ч е й с р ед ы M ATLAB, п р и э от м к н о п к а Undock до п о л н и те л ь н о по яв л сет я в з а го л в к е окн а р е да к то р а лд я п о члуен и я о б р а тн о г о э ф ек ат .zyxwvutsrqponm
а Н с т р ой к
и ре адткор
а М - лйо фа
в
Д л я и з м ен ен и я н а с рт о е к р е д а к то р а М - фа й л о в е су л д т вы брат ь в м ен ю File р е д а к то р а и л и рабо ч е й с р ед ы пну к т Preferences. П о яв л ест я о дн о и м е н н о е ди а л о г в о е окн о л д я н а с рт о й к и р яд а к о м п о н ен т р а б о ч е й с р ед ы M ATLAB. В л ев о й ч аст и окн а о т б р аж ен ы н аз в ан и я к о м п о н ен т , ч аст ь котры х п р ед с ат в л е н а раск ры в аю щ и м с я сп и ск о м (слев а н ао х и д с т я з н а к + ), п о з в о л яю щ и м п ер й т и к р т е б ум о й грп у е с в о й с вт . П р и и з м ен ен и и оп ц и й то й и л и и н о й к о м п о н ен т ы е с лу д т в ы б р а т ь е е в сп и ск е и п ер й т и к э лем н ат м пу р а в л ен и я в п рав о й ч аст и окн а Preferences. С ред и к о м п о н ен т се т ь и р е д а к т о р М фа й л о в — р а с к р ы в а ю щ и й с я сп и со к Editor/ Debugger. Р а с м о рт и м ад л е е н аи бо ле е в аж н ы е н а с тр о й к и р е да к то р а . П р и вы бор е з а го л о в к а р а с к р ы в а ю щ е го с я сп и ск а Editor/ Debugger в п р а в о ч аст и окн а о т б р а ж ю тс я общ и е н а с тр о й к и , с в яз ан н ы е с р е д а к ти р о в а н и е фа й л о в в M ATLAB. П а н ел ь Editor п о з в о л яе т и сп о ль з о в ат ь в м ес т о с а тн д а р тн о г о р е д а к то р а MATLAB л ю б о й др г у о й ет к с о в ы й р е д а к то р , ск аж ем N otepad (Бл о к н о т) . П р и ч е м со з адн и е н о в г о М - фа й л а бед у т о щс у е с в т л я ь с п о - п р еж н ем у в р е д а к то р е М - фа й л о в , а о кт р ы ит е фа й л о в — в в ы б р а н н о
й м , я м
210
аЧс т ь
I. Ос но вы
работы
в MATLAB zyxwvut
м н а с рт о й к а м о нт о с и т я ат к ж е дл и н а сп и ск а п о с л не д и х р е д а к то р е . К о б щ и о кт р ы т х фа й л о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC (Number of entries), к о т р ы й р а с п о л а г ест я в м ен ю File ре д а к то р а и л и р а б о ч е й с р еыд . П р и з ап сук е MATLAB в о з м о ж н о а в от м а ит ч е ск о е о кт р ы ит е те х фа й л о в , с к о т р ы м и в елас ь работ а в о в р ем я п р ые д щ у е й се и , елс и п р и з ав ер ш ен и и р а б о т ы р е д а к то р н е бы л о детл ь н о з ак ры т . Д л я э от г о е ус л д т с у ат н о в и т ь фл а г On restart reopen files from previous MATLAB session. С ед л а й т е а к ит в н ы м пну к т Display в лев о й ч аст и окн а . В п р а в о й ч аст и окн а п о яв ст я с р е д вт а лд я и з м ен ен и я р е ж и м о в . Н а п р и м е р , в р а з де л е General Disы вд а ф л а г . Ф л а г Show line numbers саутн о в ле н и play Options р а с п о л ж е н куа з ы в а е т н а т о , ч т о в р а б о ч е й о бласт и в ы едл н а колон к а лд я н м у е р а ц и и с рт о к ет к с а в фа й л е , а фла г Enable data tips in edit mode с б р о ш е н . Е г о уаст н овк а п о з в о л яе т в ы в ес т и з н ач ен и е п ер м ен н о й рабоч е й с р ед ы н а в сп лы в аю щ у ю п о сд к а з к у п р и н авенд и и н а п ер м н у ю к ру с о р а мы ш и в р еда к от р е . Р аз муестя , с о втес юу щ и е п ер м ен н ы е до л ж н ы сщ у е с в т о а т ь в рабоч е й с р ед , п о э тм у и х п росм от р и ме т см ы с л п о сл е в ы п о лн ен и я М фа й л а . В о сп о ль з йу етс ь э о т й в о з м о ж н о с ьт ю л д я п о чл у е н и я з н ач ен и й п ер м ен ы х с о з да н н о г о в ам и фа й л а mydemo.m. П р и з ап и с и в ы р а ж е н и й , соедр ж ащ и х м н ог о ск об к , о ч ен ь п о л ез н ы м о к аз ы , к о т р ы й н а с рт а и в а е ст я в а ес т я а в от м а ит ч е с к и й к о н тр о л ь з а и х п а р н о с ть ю п ну кт е Keyboard&Indenting. К о н тр о л ь м ож е т п р о и з в о ди ь т с я в п р о ц ес е н а бора , дл я ч ег о еслуд т усатн о в и т ь фл а г Match parentheses while typing. В р а с к р ы в аю щ ем с я сп и ск е Show match with в ы м ож ет е в ы б р а ть , к а к п р и н а б о р т п ок аз ы ват ь п ар н у ю ск обк у : Underline — п очд ер в ы р аж ен и я р е д а к то р е д бу к и в ан и ем , Highlight — в ы едл н и е м фо н а си м в о л а и л и Balance — в ы едл н и е фо н а в уд х п арн ы х скоб к . Р еда к от р расп оз н ае т н е з а к р ы ыт е ск обк и и и н фо р м и р еу т в а с онд и м и з с п о с б о в , п р есдатв лен н ы х в р а с к р ы в а ю щ ем с я сп и ск е Show mismatch with: B eep— з вкуо ы м с и гн а л о м , S trikethrough— п ер . В о з м о ж е н ат к ж е б ы с рт ы й п ои с ч е р к н ыт у м си м вол м и л и N one — н и к а п арн о й ск обк и в уж е н а б р а н н о м в ы р аж ен и и п р и н ав едн и и н а н е е крус о р и л и о п о в ещ ен и е о б освтуи и та к о в о й . Д л я н а с рт о й к и э от й о п ц и и с а ут н о ь в и т е фл а г Match parentheses on arrow key or mouse movement и о б р а ит ес раск ры ваю щ и м с я сп и ск ам , р а с п о л ж ен н ы м п о д н и м . Ещ
е о дн а од у б н а я воз м ож н ост р ы котрог о м ожн о и з м ен и т ь н ен и я е с лу д т с у ат н о в и т ь фл а к о в се м э л е м н ат м пу р а в л е н и я м ен и , ч ер з котры й едбу т п р о и с о х ид т фа й л сорхан яест я с те м ж е и м ен
ь — реж и м а в от с р х а н е н и я фа й л о в , п ар м ет в п ну к т е Autosave. Д л я в к лю ч ен и я а в от с р х а г Autosave on. П о с л е э то г о п о я в л ест я од с у т , в ч а с нт о с ит , м о ж н о вы брат ь и н ет р в а л в р е ь с ор ха н е н и е фа й л а . П о му о л ч а н и м и р ас ш и р ен и е м asv, к о т р о е м ож н о и з м е
в е м к а к п ю -
л ав Г
5. М - й лы фа
н ит з ад р е к о м е н уд к а ж од окн коп и чт о к л ю ч а етл
211 zyxwvutsrqpon
е др г у о е , суатн о в и в п е р к л ю ч а е тл ь zyxwvutsrqponmlkjihgfedcbaZYXWVU Replace extansion with, и ь и н а лю бо в н ов е р ас ш и р ен и е в с рт о к е в од а сп рав а о т п е р к л ю ч а ет л я . М ы н е м и сп о ль з о в ат ь л д я э и т х ц ел й р ас ш и р ен и е т , п о с к о л ь к у пр и м а в от м а ит ч е с к о м с о р ха н е н и и фа й л а е д бу т в ы в о ид ь т с я ди а л о г в о е о с п пруед ж н и е м о б и з м ен ен и и фай л а в н е р е да к то р а . П о му о л ч а н и ю и а в от м а ит ч е с к и с орха н яе м о г о фа й л а р а з м ещ а ю ст я в то м ж е к а т л о г е , и о р и ги н а л , н о м о ж н о вы брат ь и о е д лт ь н ы й к атлог , саутн о в и в п ер ь кн оп ко й с п р а в а о т н его . ь Single directory и в о с п о л ь з о в а ш и с
Н а с тр о й к а в ы е дл н и я ц в ео т м раз ли ч н ы х ф р а г м е н от в ет к с а (к лю ч евы слов , тек сотв ы х с рт о к , к о м ен ат р и ев , о ш и б о к и т . п . ) п р о и з в о ди ст я в п ну к т Color, а в ы б о р ш р и фт а и е г о а х р к ет р и с ит к — в п ну к т е Font (Custom). Д л и з м ен ен и я ш р и фт а се улд т в сп и ск е Desktop tools в ы б р а т ь Editor и п р и уаст н о в л ен н о м п е р к л ю ч а е тл е Custom н а п ан ел и Font to Use в ы б р а т ь ит п ш р и ф та , ег о р а з м е р и сит ль .
х е я -
М ы о би д с у л и то л ь к о общ и е н а с рт о й к и р е д а к то р а , о сатл ь н ы е м ы е д бу м пу о м и н а т ь п о м ер е н а д о б н о с ит . Н а п р и м е р , п р и н а б о р е п р о гр а м м воз м оже н а в от м а ит ч е с к и й о с тп у , ч т о о с б ен н о од у б н о п р и и сп о ль з о в ан и и в л о ж ен н ы х ц и к ло в и л и с лу о в н ы х о п е р а то р о в . О н а и б о л е е в аж н ы х о п ц и ях , св яз ан ав ег л 7, к о т р а я п о с в ящ ен а к о н с рт к у ц и я м н ы х с а в то тс п у о м , с к а з а н о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC яз ы к а п р о гр а м и р о в а н и я MATLAB. П р и в едн н ы фа й л а х м ео т д к н и ги
е в кн и г е п р и м ер , сн абж а я и х н ео б хид м ы м в и п р о гр а м и р о в а н и , к а к п р а в и л о , тр ебюу
К ^
П р и м е ча н и
ы ч л уш е в с ег о н аби рат ь и с о рха н я т ь в М и к о м е н та р и я м и . П р и м ен ен и е ч и слен ы х е в M ATLAB, о п и с а н н о е в ю с лу е д щ е й ч аст и т с о з адн и я М - фай ло в .zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
е
М ож н о и с п о л ь з в ат ь р а к ео д т р М - й а оф л в э о гт о джвад ы щ кн л е и т е п о з н чак у с М - йоалф ки , в корт й о н хран исят . Ф йа л оскртое я пр и эо т м раокедт р с т е я лв я ьл е н т о м с ая ы о лт ь к о р а е кд и т р о в ь а т , н о н е вы п олн ьят Windows олждн о бы т ь ас о ц и р о в ан о с пирнжоел ор т м М - й а ф ол в ) , чт о вы бис треа я ли б о п р вс о й а т х пак и в Windows. И та к с рт о к а
, у н а с ест . Р аз бер 8 З ак
. 130
ь бо ле м теп ер ь
е уод б н о , к ак и
е с р е дв т е ти п
о в ы п о л н ен и ы М - фай ло
и е б з з ап с к у м в окн в раокредт м п ри о ж л н е и м е . ясРмтезау и уанст овк я к о м а н д в сщ у юевсту
а MATLAB. Дл я м п па . Онд ак о . Ф йа л мжон о , рсша и нре и е m в м meditor.exe (рка де е MATLAB, ли б о в е с сжриемыдо е М - й а ф ол в
, че м к о м а н дн а т в M ATLAB.
я
I. Ос но вы работы в MATLAB zyxwv аЧс т ь 212zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
пи Т
ы М - йло фа
в
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ы в M ATLAB б ы в а ю е п о с л е од в а е т л ь н о с т х о п и с ы в а ю ст я нф у к ц и
М - а фй л с о едр ж а щ и в к о т р ы
ай л Ф - п р о г ам м
т в уд х ти п о в ь к ом ан д , о п р едля м ы
: - йл фа мы гаморп , и ф- айл укн ци ф
( Script M- Files), ( F unction M- Files), .zyxwvutsrqponmlkjihgf
е п о л ь з о в а те л м
ы
Ф а й л - п р о гр а м ы п р е сд а т в л я ю т соб й п р о с е тй ш и й ит п М - ф а й л о в . О н и н и м ею т в о нх д ы х и в ы охнд ы х а р мг у е н от в и о п ер и рюу т п ер м ен н ы м и , сщ у сет вю у щ и м и в рабоч е й с р ед , и л и м огу т с о з да в т ь н овы е п ер м ен н ы е . Ф а й л п р о гр а м у mydemo в ы н ап и сал и п р и п р о ч ет н и и п р е ыд щ у е г о р а з де л а . Вс п ер м ен н ы е , о б ъ яв л ен н ы е в фа й л - п р о гр а м е , сатн о в яст я од с п у т н ы м и в ра боч е й с р ед е п осл е е е в ы п о л н ен и я . З ап сиут е фа й л - п р о г а м у mydemo, п ри в е нд у ю в л и с ит н г е 5.1. П ер й ид т е в о к н о Workspace (р и с . 5.2) и беуид тсь ч т о вс е в в едн н ы е в М - фай л е п ер м ен ы е п о яв и ли с ь в р а б о ч е й с р ед .
е е ,
* xlll
((Workspace
\ J - Stack:] ~ *«й & | Size | Class Value |1x71 I double 1x71 double double 1x71
j Name i
Current Directory] Workspace Рис п о сл
Вс с р ед п р о гр а м а
е с о з ад н н ы е п о сл
е п р и и с п о л н ен и е ег о з а в е р ш е н и я х и в к о м а н да х
. 5.2. Д и а л о г в о е вы п олн ен и
е окн я фа й л - п р о г а м
и М - фа й л , и и х м о ж н , в ы п о л н яем ы
о Workspace ы mydemo
а п ер м ен н ы о и сп о ль з о в ат х и з к о м а н дн о
е о с ат ю ст ь в рд г и у й с тр о к и .
я в рабоч е х фа й л
й -
л ав Г
5. М - й лы фа
З ап с у
к фа й л - п р о гр а м
213 zyxwvutsrqpon
ы о щ с у е вс т л я
1. И з р е да к то р
а М - фа й л о
2. И з к о м а н дн о к о м ан д
й с рт о к ы и с п о л ь з се т у
я м в ду в та к
, к а к о п и с ан
и и л и дргоу я и м я М - фай л
я сп о с бам и о в ы ш е
. .
й фа й л - п р о гр а м ы а (бе з р а с ш и р ен и я)
, п р
и эот
м в к а ч е с вт
е
.
П р и м ен ен и е в то р о г о сп ос б а н ам н о г о од бу н е , о с б ен н о с л е и с о з да н н а я т Н е о н д о к р ан т о и с п о л ь з о в а ьт с я в п о с л е д вт и . Ф ак ит фа й л - п р о гр а м а е д бу кч с е и соз адн ы й М - айф л сант ови ст я к о м а н од й , к о тр у ю п о н и м ае т MATLAB. З ак рой т е в с е гр а фи ч е с к и е окн а и н аб ер и т е в к о м а н дн о й с рт о к е mydemo, п о я в л се т я гр а фи ч е с к о е окн о , со втесюу щ е е к о м а н да м фа й л - п р о гр а м ы т с юл е у д щ и е mydemo.m. П о с л е в од а к о м ан д ы mydemo MATLAB п р о и з в о ди ед й с в т и я . 1. П р о в е р яе т м ен ы х в ы в о ид с т
, явлсет , о п редл н ы я е е з н ач ен и е
2. Е сл и в в едн д и в срто ен н ы ей , т о п р о и сохид
я л и в е дн а х в рабо ч е .
а н е п ер м ен н ая х нфу к ц и й . Е сл т е е в ы п о л н ен и е
я к о м ан д й сред
а и м ен м к а ой - ли б . Е сл и в е дн а п ер м ен н ая
, т о MATLAB и щ е и к о м ан д а о к а з ы в а е ст . .
т в е нд у
о и з п ер
ю к о м ан д я в с рт о е н н о
, т о
у ср е
-
й н фу к ц и
-
3. Е сл и в е дн а н е п ер м ен а я и н е в срто ен н а я нфу к ц и я , т о M ATLAB н а ч и н ае т п ои с к М - фа й л а с н аз в ан и е м к о м ан д ы и р а с ш и р ен и е м т . П о и с к н а ч и н а е ст я с zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ткегущо кгоа т л (Current D irectory); сел и М - афй л в не м н е н а й ден , т о M ATLAB п р о с м а тр и в а е т к а т л о ги , суатн о в л ен н ы е в путы к и п с оа (Path) (усатн о в к а е пт у й п о и ск а и е тк щ у е г о к атлог а о п и сан а в м еу ющ д л с ) ре ле азд . Н а й ден н ы й М - афй л в ы п о лн яест я в M ATLAB. Е сл м а н нд о
и н и о нд е о к н
о и з в ы ш еп реч и слен н ы о в ы в о ид ст
я с о б щ ен и е
х е дй с в т и , н а п р и м е р
й н е п р и в ел , есл и селдат
о к успу хе ь ош и бк у
, т о в к о :zyxwvutsrqponmlk
>> mydem ??? Undefined function or variable 'mydem1. П о с л е до в а ет л ь н о с т ь п о и ск а ви ль н о з адв ат ь и м я с о б вт е н н о фа й л е . В о- п ервы х , е е и м я н фу к ц и й в MATLAB. зУ н а ть ц и и e xist , к о т р у ю в ы жу "Птро мсор и ин е а л у д (с.м р.азд вы 1). В о - во тр ы х сло в
, и м я фа й л м с ет х с и м в о л в
а н е до л ж н , к о т р ы
M ATLAB го в о р и т о то м , ч т о оч ен ь в аж н о п ра й фа й л - п р о г а м ы п р и с о р ха н е н и и е е в М н е до л ж н о со в п адт ь с и м ен м щ с у ю ев с т у щ и , з а н я т о и м я и л и н е т м о ж н о п р и п ом щ и фн у к е и сп о ль з о в ал и п р и работ е с п ер м ен н ы м х,ыне мепр вр о б ы не им х"ыне мепр а- г л о н а ч и н а ьт с е м о гу
т бы т
я с ц и фр ы ь и н ет р п р е ит р о в а н
, з н а к о
х и
в "+ " и л и "- ", ы M ATLAB
214
аЧс т ь
ка к о ш и бк фа й л - п р о гр а м о п о лчуи т 5р г о
а пр
и в од е в ы р аж ен и я й 5prog.m, т о п р е с о б щ ен и е
. Н а п р и м е р и е е з а п с ку
I. Ос но вы
р аб о т ы
, сел и в ы н а з о в ет е и з м не ю р е д а к то р
в MATLAB zyxwvu
е М - аф й а ил
л с и п о
д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Error: Missing MATLAB operator. Э т о н е ди у в и е т л ь н о в ы ч и с л ен и я а р и ф м е ит ч е с к о г н и я 5 в к ач есвт п рав и ль н ы м бы л н аю щ ес я с бку в ы
, т . к . MATLAB жед о в ы р аж ен и е п ер в о г о э л ем н т а к в е к от р о б ы и м я prog5.m (и л и .
т о т в а с 5 + prog (и л и 5, prog) лд я с п ер м ен н о й prog (и л и од б ав ле с рт о к е prog). С л е до в а те л ь н о отх я б ы p5rog.m), н о то л ь к о н ач и
О б р а ти т е вн и м ан и е , ч т о сле и в ы з ап сук ает к о м ан д ы (м о гу т бы т ь в ы едл н ы в с е к о м а н ды п р и п ом щ и < F 9> , т о о ш и б к и н е бетд у . Ф а к ит ч ес к ет л ь н о е в ы п о лн ен и е к ом ан д , н е олти ч аю щ е с с рт о к и , а н е р а б о т а фа й л - п р о гр а м ы .
е н а в ы п о лн ен и е в ы ед л н н ы ) М - фай л а с н ев р н ы м и м не и п р о и сохди т п о с л ед в а я о т и х вы з ов а и з к о м а н дн о
О ч ен ь р а с п р о с тр а н е н а щ е е о нд а ош и бк а п р и з адн и и и м ен м ы , к о т р а я н а п ер в ы й в з гл я д и ме т н ео б ъ яс н и м ы е п о с л едвт и я з а п с ук а е т я то л ь к о о ид н р а з . П о в то р н ы й з ап с у к н е п р и в о ди п р о гр а м ы . Р а з б ер м э т у с и а цу т и ю н а п р и м ер е фа й л - п р о гр а м г а 5.1, к о т р у ю в ы с о р ха н и л и в фай л е mydemo.m. П ер и м ен йу т е в с е п ер м ен н ы е р а б о ч е й с р ед ы и з окн а б р а зу е р з ае т м а д л уи т Workspace и л и и з к о м а н дн о й срто к и
я , е м й
и фа й л - п р о г а м
: п р о г р а м а т к в ы п о л н ен и ю ы и з ли ст н е фа й л в .х ш , а п ер м ен н ы х
» c le a r a l l В ы п о лн и т с те я З ак рой т ск о е м ас и в п ои ск фа й л - п р о гр а м ы р и тм ви ло ч то б в аю щ и
е фа й л - п р о гр а м у
, н а п р и м е р , и з р е да к то р а , н а ж в < F 5> . П о яв л я гр а фи ч ес к о е окн о с двму я гр а фи к а м и и н и ч ег о н е п р евд щ ае т п о вд а х е ет п е р ь гр а фи ч е с к о е окн о и з ап сиут е п р о гр а м у сн ова . Г р афи ч е окн о боль ш е н е с о з ад е с т я , з а т о в к о м а н дн о е окн о в ы в ел и с ь з н ач ен и а х в с о вт е с и и с п ервы м п н у к от м п р и в едн н о г о вы ш е а л г о р и тм а M ATLAB. Э т и о б с от яел ь с вт а е с лу д т уч и ыт в а т ь п р и в ы б о р е и м ен . Н е м ен е в аж н ы й воп ро с с в яз а н с тр еьт и м п н у к от м а л го м к атлог м и п я тм у и п ои ска . К а к п р а а п ои ск а M ATLAB — екщту и , с о б втен н ы е М - фа й л ы р ха н яс т я в к а т л о га х п о л ь з о в а те л я . Д л я то г ы с и е мт а M ATLAB м о гл а н ай т и и х , е сулд т с у ат н о в и т ь п ит у , куаз ы е р а с п о л ж е н и е М - фай л о в .
. я а и о -
л ав Г
215zyxwvutsrqpo
5. М - й лы фа
с т У а но вк
а птуе й
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
с У та н о в к а е тк щ у е г о к атлог а и е пт у й п ои ск а п р о и з в о ид с т я п р и п ом щ и о с и сп о ль з о в ан и е м к ом ан д . С о и н е тр ф й с а рабо ч е й с р ед ы MATLAB л и б Current Directory с о дн о де р ж и м о е е ктщ у е г о к атлог а о т б р а ж е ст я в окн е zyxwvutsrqponmlkjihgfedcbaZYXW и м ен н о й в к л акд о й (р и с . 5.3). Н а л и ч и е э от г о окн а в р а б о ч е й с р ед е з ав и си т о т ю то г о , саутн о в ле н л и фл а г с л ев а о т н аз в ан и я п ну к т а Current Directory м ен View р а б о ч е й с р еыд . Е сл и фл а г а н ет , т о е сулд т вы брат ь ку а з а н н ы й п ну к т м ен ю .
E:\MATLAB7\work II Current Directory- zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA * * | Al! Files . ^ hs_err_pid... ^kobbdugl.asv J^kobbdugl.m ^matlabi.mat | l^runge1.m i\
File Type LOG File ASV File M- file MAT- file M- file
Last Modified 27.07.2004 22:54:25 20.07.2004 23:34:00 21.07.2004 0:06:33 27.07.2004 21:53:32 21.07.2004 23:03:59
j Description
:
.^.u. j •
J
Current DirectqryJ ^Workspace |
Рис
. 5.З . Довигла в рижме
е онк е онжеарибо т
о Current Directory я фйоал в
Т е кщ у и й к атло г с уа т н а в л и в а е с т я вы бор м и з р а с к р ы в а ю щ е го с я сп и ск а Current Directory н а п ан ел и и н с ртм у е н от в рабоч е й с р ед ы M ATLAB. Е сл и в сп и ск е н е т н жун о г о к а т л о га , т о ег о м о ж н о до б а в и т ь в ди а л о г в о м окн е Browse for Folder, к о т р о е п о я в л ес т я п о сл е н а ж ит я н а кн оп ку , р а с п о л ж ен у ю сп рав а о т сп и ск а . Т ещку и й к атло г м ож н о з адт ь и л и с о з ад т ь пр и п ом щ и и н с р тм у е н о т в окн а Current Directory. И н сртму ен т Show Visual Directory п о з в о л яе т седлат ь с о ед р ж и м о е окн а бо ле е и н фо р м а ит в н ы м (р и с . 5.4). Н а в и га ц и я п о дер в у к атлог в о щ с у е св т л я я в о бласт р еч и с л ен ы и м ен а в л о ж ен н ы х п ап о к с к уа з н и е м в ск обк а н и х и с ы лк а н а пак у в е рн х е г о р уо в н я < U P > . Н и ж л д я п о ч л уе н и я с в енд и й о фа й л а х е тк щ у е г о к атлог а о б н о в л ен и я с о де р ж и м о г о окн а в с чл у а е с уат н о в к и ил фл а г . П ер д сп и ск о м фа й л о в р а с п о л ж ен ы дв е с ы лк фа й л а (New file) и л и ген ер ац и и фа й л а contents.m с и н фо р м а ц и е о до у б н о , сле мо м к а т л о г а (run contentsrpt). Э т о сревдт
и Subfolders, гд е п е х ч и сл а фа й л о в е р асп о л ж ен ы фл а г и кн оп к а Refresh лд и сброс а к а ог - ли б и дл я со з адн и я н ов г й о соердж и и в тещк у е м к атло
в и я о о -
I. Ос но вы работы в MATLAB zyxwvu аЧс т ь 216 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е и м ет ь сп и со к фай л о в с п р и м еч ан и е м о б и х н а г е м н ог о фа й л о в , и в ы хоит з н ач ен и . П о с л е со з адн и я фа й л а contents.m, со стящ ег о и з срт о к к о м ен ат edit Contents.m. Д о п о л ри е в с и м ен ам и фа й л о в , п о яв л сет я ще е онд а с ы лк а zyxwvutsrqponmlkjihgfedcbaZY н и е тл ь н о в п о с л не д м с от л б ц е ат б л и ц ы с фа й л а м и в ы в о ди с т я п ер в а я в с рт е ч а ю щ а я с я с рт о ч к а к о м е н ат р и я в М - фа й л е и л и и н фо р м а ц и я No h elp п р и освтиу и та к о в о й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Current Directory - e:\MATLAB7\work Subfolders
d
I Work 4 (3) I Work 6 I ^ ж Щ Л Л work_5 (4) | work_7
Л
Refresh Г Sort by Contents.m
• Show actions
И Show file sizes
Г ~ Show thumbnails
I Show function/ script
edit Contents.m I run contents m i 1 new file
UOPK
C on ten ts kobbdugl
;
No help
(
I mydemo zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA t e s t for E d it o r я zl
Current DirectoryJ WorkspaceT^"^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
. 5.4. Довигла
с иР
Пр и м е ча н и К о м ен а р и т ис вод т В п иротвн о к о м н е ар и т п о л ь з в ан и
я в окн е
е онк
о Current Directory в рижме
и zyxwvutsrqponmlk
е нциавг
е й в табли ц е окн а Current Directory бе д у т кор екнт , ел с и о н н е сжрие од т ис м в о л в н ац и о н аль н о г е толь к о в фйа л е contents.m е д уб т врне м сча ул я (с.м паинеч имр в р.азд "Оине л м р о ф гикв"о афр ю си мвол в ки р ли ц ы ) .
О п р е дл н и е е пт у й п ои ск а фай л о в п р о и з в о ид ст н а в и г а то р а п е тй у , досут п к к о т р о м у о щс у е св т л я н ю File р а б о ч е й с р еыд . О к н о Set Path и з о б р а ж ен
я в ди а л о г в о
о восп ри з о ал фв и т о оражет
. н кес т
гавы л
т 3 п о ис -
м окн е Set Path я и з п ну к т а Set Path ме о н а р и с . 5.5.
л ав Г
217zyxwvutsrqpo
5. М - й лы фа
*> Set Path
BffiOillzyxwvutsrqponml
All changes take effect immediately, MATLAB search path: Add Folder.,.
(§| C:\ MATLAB~1ttoolbox\ matlab\ general
Щ
Q2 C:\MATLAB~1 \ toolbox\ matlab\ ops
Add with Subfolders...
(Щ C:\MATLAB - ntoolbortpnatl a b\lang f j C:\MATLAB- 1\toolbox\matlab\elmat
Move to Top i
:_j C:\MATLAB- 1Uoolbox\matlab\elfun
Move Up
jC:\ MATL/ .B- 1\ toolbox\ matlab\ specfun
L
Qj C:\MATLAB- 1\toolbox\rnatlab\rnatfun
Move Down
!2]C:\MATL^B~ntoolbox\rnatlab\datafun
Move to Bottom
Q j C:\MATLA В - 1\ toolbox\ matlab\ audio
Ш С Д М ATLAB - 1 t to о I b ox\rn atl a b\p о lyfu nzyxwvutsrqponmlkjihgfedcbaZYX
Ш C:\MATLAB~1 \ toolboK\matlab\funfun 4 L j
Remove Save :
Close
Рис
Revert
. 5.5. Довигла
j j
Help zyxwvutsrqponmlkjihgfedc
Default
е онк
F|
о Set Path
Д л я до б а в л е н и я к атлог а н аж м и т е кн оп к у Add Folder и в п о яв и в ш ем с я ид а лог во м окн е Browse for Folder в ы б ер и т е р т е б му ы й к атлог . Д о б а в л е н и к атлог а с о всем и е г о п о дк а т л о г а м и о щ с у е св т л я я п р и н аж ит и н а к н о п к у Add with Subfolders. П ту ь к од б а в л е н н о м у к атло г у п о я в л ес т я в сп и ск MATLAB Search Path. П о р ядо к п о и ск а со втес у т р ас п о л ж ен и ю е пт у й н е м — п ервы м п р о с м а рт и в а е ст я к атлог , пт у ь к к о т р о м у р аз м ещ е н в ер х сп и ск а . П о р ядо к п ои ск а м ож н о и з м е н и ьт , и л и в о б щ е а д л иу т ь пт у ь к к а к о - м у ли б о к а т л о гу . Д л я э от г о р т е б му ы й к атло г в ы е дл я с т я в сп и ск е и ег п о л ж ен и е о п р едляст я п р и п о м щ и сю луед щ и х кн оп ок : • Move to Top — п о м есит
ь в ер
• Move Up — п ер м есит
ь в ер
• Move Down — п ер м есит
;
х н а онд
у п о з и ц и ю
ь вн и
• Move to Bottom — п о м есит • Remove — адлиу т
х сп и ск а
ь и з сп и ск а
ь вн и .
;
з н а онд
у п о з и ц и ю
з сп и ск а
;
;
е е в у о
218
аЧс т ь
I. Ос но вы
р аб о т ы
в MATLAB zyxwvu
В н ес н ы е и з м ен ен и я е дй с вют у т то л ь к о д о кон ц а етк щ у е г о с еа н с а MATLAB. Е сл и ж ел ат ь н о с ор ха н и т ь с аут н о в к и пе т у й и л д я ю су л е д щ и х с еа н с о в , т о п о с л е в н ес н и я и з м ен ен и й се улд т с ор ха н и т ь и н фо р м а ц и ю о пу ят х п о и ск а , н а ж в кн оп к у Save. П р и п о м щ и кн оп к и zyxwvutsrqponmlkjihgfedcbaZY Default м о ж н о в о с ат н ови т ь с та н да р тн ы е с у ат н о в к и , а к н о п к а Revert п р едн а з н а ч ен а дл я в о з в р а т а к п рыед щу и м с о р ха н е н н ы м с у ат н о в к а м .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
[ ^
Пр и м е ча н и
е ^Д
с т е Р к о мн у д я р ан х и т ь н в е т ос б ы е М - й ал ф ы вн е п о к д а лт г а toolbox . Во- пвыре х , п р и пс у ер о сн о в н о г о калтог а MATLAB п о дув м п ри ч н ам ан т о в к е MATLAB айф лы , корты е с тжрае дос я в п ко а л д т г х о сн в н о г о к а лт о г а MATLAB, умог т бы т ь н у и о ж н че т ы . Во- орывт х , пр и кзспа у е MATLAB вс е фйал ы п коалдтг а toolbox рза мще юа с т я в п мтая и комп ью р е т а н ок е р ы т м о п и т м льа н ы м о б р аз м атк , обчт ы в ли е у ч т ь п ро и з в о д л ье н т о с ь р а б о ыт . лЕс и в ы з па и лс и М - йа ф л в эот т к атло г , т о вопс ьл т толь к о плсо е пзрекспа у а MATLAB. з о ь в ас т я и м мжон о бе д у
о м К а нд
ы дл
я ус т а новк
и птуе
й
Д е й с вт и я п о с у ат н о в к е еп т у й б у дл и р ю у с т с у ат н а в л и в а е ст я к о м а н до й cd, н а п р и м е р >> cd C:\users\igor Ря
д ком ан
я к о м а н да м и . Т екщу и й к атло г :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
п р и м ер ю с лу е д щ е ну и в е р с а л ь н о й м е н от к а т л о га ж ен и й
д M ATLAB до п су к а е т и х вы з о в в ф ну к ц и о н а л ь н о й фо р м е . Н а е о бр ащ ен и е к cd с вохнд ы м а р гм у е н о т м — срт о к й я фо р м а я в л е ст я боле е : c d ( ' С : \ u se r s\ i go r ' ) . Ф ну к ц и о н а л ь н а , п о с к о л ь к у п о з в о ляе т з адват ь в к а ч е с тв е в о х дн ы х а р гу в н е то л ь к о с тр о к и , н о и с тр о к о в ы е п ер м ен н ы е , с о де р ж а щ и е им я . Э т о о к а з ы в а е тс я п о л ез н ы м п р и н ап и сан и и с о б с тв е н н ы х п ри ло .
Р абот
а с о с тр о к в ы м
, э к в и в а л е н тн о
и п ер м ен ы м
Ф ну к ц и я cd, в ы з в а н н а я б е з а р мг у е н а т гу . Д л я до б а в л ен и я к атлог в в пт у р а я п о ум о л ч а н и ю п о м ещ ае т к а т л о >> addpath C :\ elena Э т о м ож н о п р о в ер и т лог в ^ вохядщ и в о ди т к о то б р а ж е н и в фну к ц и о н а л ь н о н ес т и пт у и п о и с к
и о п и с а н , в о з в р а щ а е и п ои ск г в н а ч л
а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ гаве л 8. а сжлуи о сп и ск
т п т у ь к тещку ем у к атло т к ом ан д а addpath, к о т а п о и с к а , н а п р и м е р :
ь п р и п ом щ и path , к о т р а я воз вращ ае т сп и со и п ои ска . З а м еьт , ч т о в ы з о в path к а к к о м а н д ю сп и ск а пет у й п ои ск а в к о м а н дн о м окн е , а о б р а щ ен и й фо р м е с в ы о хн д ы м а р мгу е н от м р = path п о з в о л яе а в срт о к в у ю п ер м н у ю (в н аш е м счлуа е р ) .
х в пт у
к к ат ы п ри
-
-
е т за -
ав Гл
5. М - ы йл фа Дл
я до б а в л е н и
219zyxwvutsrqp
я к атлог
а в кон е
ц сп и ск
а е ус л д
т и сп о ль з о в ат
ь п ар м ет
р zyxwvutsr
- end >> addpath C:\alex - end
Т а к ж е , к а к и cd, к о м а н д а a d d p a t h м о ж е т бы т ь вы з ван а в ф ун к ц и о н а л ь н о й форм е : a d d p a t h (С : \ e i e n a ) . П р и д о б а в л е н и и сраз у н есколь ки х к а та л о г о в и х и м ен а ук а з ы в а ю т с я в о в хо д н ы х а р г ум е н т а х a d d p a t h ч е р е з з а п я т ую . Ан а л о ги ч н ы е Т С О ЖН О М З О В И п р е до с та в л я е т p a t h : p a t h ( p a t h , ' c :\ u se r s\ igo r ' ) , 1 к о то р а я п ом ещ ае т к а та л о г в кон е ц сп и ска , zyxwvutsrqponmlkjihgfedcbaZYXWVU a p a t h ( ' с : \ u s e r s \ i g o r , p a t h ) — в н а ч а л о .
а п ут е й п ои ск а п р е дн а з н а ч е я о п р е де л е н н о г о к а та л о г а и з с п и с к я rm p at h . Н а п р и м е р , r m p a t h ( ' с : \ u s e r s \ i go r 1 ) уд а л я е т п ут ь к у c:\ users\ igor и з с п и с к а п ут е й . Ф у н к ц и я rm path м о ж е т бы т ь вы з ван а й форм е : rm path ( ' c : \ u s e r s \ i g o r ' ) .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
Д л я уд а л е н и н а ф ун к ц и к а та л о г И В к о м а н д н о
ре п П д у и н ж
е
Н е дау л я й т е б е з н е о б х ди м о с т и п ту и к к а т л о г а м , о с о б е н н з н ач ен и и кот ры х в ы н е ув е р н ы . даУл ен и е м оже т п р и в ест ч аст ь ф ну к ц и й , о п р е д л е н н ы х в M ATLAB, с та н е т н е д о с тп у н о й
о к те м и к то м у .
, в н а , ч т о
М ы п ри вел и в э то м р а з де л е то л ь к о н аи боле е и с п о л ь з уе м ы е ф ун к ц и и (к о м а н д ы ) M AT L AB д л я м а н и п у л и р о в а н и я к а та л о г а м и . П о л н а я и н форм а ц и я с о де р ж и тс я в сп равочн о й с и с те м е в р а з де л а х : M ATLAB Functions: Functions - Categorical List; D esktop Tools and Development; Workspace, S earch Path, and File; S earch Path и л и File Operations.
Ф а й л - и ц н ук ф
и
Р а с м о рт е н н ы е вы ш е фа й л - п р о гр а м ы яв л ю ст я п о с л е од в а е т л ь н о с ь т ю ко м ан д M ATLAB, он и н е и м юе т вондх ы х и вы ондх ы х а р м гу е н от в . Д л я реш ен и я в ы ч и с л и е ть н ы х з ад ч и н ап и сан и я с о б в е нт ы х п р и л о ж ен и й в MATLAB ч аст о р т е бс у я п р о гр а м и р о в а т ь фа й л - нфу к ц и , к о т р ы е п р о и з в о дя т не о б х ид м ы е ед й с в т и я с в о хн д ы м и а р мг у е н ат м и и воз вращ аю т р е з л у ь ат т в в ы о нх д ы х а р мг у е н а т х . Чи с л о в о нх д ы х и в ы о хн д ы х а р мг у е н о т в з ав и си т о т р еш аем о й з адч и — м ож е т бы т ь то л ь к о оид н в о хн д о й и оид н в ы о х нд о й ар , и л и то л ь к о вохнд ы е а р гм у е н ы т . В о з м о ж н а м гу е н т , н ес к о л ь к о и те х и дргиу х . В э от м р а з ед с и а у цт и я , к о гд а в о х нд ы е и в ы охнд ы е а р м гу е н т ы о с тв ю у т л е раз обран о н ес к о л ь к о п р о с ыт х п р и м ер о в , п о з в о л яю щ и х п о н ят ь работ у с фа й л - нфу к ц и я м и . Бо л е
е сло ж н ы
е п р и м ер
ы фай л- нфу к ц и
й п р и в едн
ы в гав е л
8.
220
Ф а й л - нф у к ц и фа й л о в
, со з адю ст я в р е д а к то р е М , ат к ж е к а к и фа й л - п р о гр а м ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Ф а й л - и ц нук ф П р е дп о л ж и м н фу к ц и
/. Ос но вы zyxwvutsrqponmlkjihgfedcbaZYX р аб о т ы в M ATLAB zyxwvut
аЧс т ь
и с онид , ч т
м вын до х
о в в ы ч и слен и я
м а ргму е нт о х ч аст
-
м
о н е о б хид м
о и сп о ль з о в ат
ь з н ач ен и
е
и
'/ +0.1 И ме т см ы с л о ид н р а з н ап и сат г д е н е о б х ид м о в ы ч и с л ен и крой т е в р е да к то р е М - фа й л о г ; " "
j Л ис т ин
• • • • •- • • •
г 5.2. Ф а йл - иц кн фу
е э от в н овы ...........
я с оинд
ь фа й л - нфу к ц и ю й н фу к ц и й фай
и лд л и н а б ер и т
, а п о т я з адн н ог
м в ы з ы в ат
ь е е всю уд о а р г м у е н ат т л и с ит н г
е тек с
...............................
м вныохд
м и оинд
, . От а 5.2.zyxwvutsrqponmlkjihgfed ...........
м вонхыд
м а рмгу е нт о
м
fu n c t i o n f = m yfun (x) f = e x p ( - x ) *s q r t ( ( x A 2 + l ) / ( x A 4 + 0 . 1 ) ) ;
С лов о fun ction в п ерво й с рт о к е о п р е дл я т , ч т о да н н ы й фа й л с о едр ж и т ф а й л - нф у к ц и ю . П ер в а я с рт о к а я в л се т я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML в ок м з а г л о фукн ци , в к о т р о й р а з м ещ а ю с т я я им фукн ци и сп и ск и вонхд ы х и в ы охнд ы х а р г м у е н то в . Вонхд ы е а р мгу е н т ы з а п и с ы в а ю ст я в кглрыу х ск обк а х п о сл е и м ен и фну к ц и . В н аш е м п р и м ер е ест ь то л ь к о о ид н вохнд о й а р мгу е н т — х . В ы охнд о й а р мг у е н т f ука з ы в а ес т я с л ев а о т з н а к а р а в ен с вт а в з а го л в к е нф у к ц и . П р и выб о р е и м ен и фа й л - н фу к ц и и е с ул д т п о з а б о ит ь с я о б освтиу и к о н ф л и к от в с з а н яты м и и м ен а м и в M ATLAB. нА а л о ги ч н ы й воп ро с м ы обжсаудл и вы ш е : к а к сроах н и т ь фа й л - п р о г а м у в фай л е с ун и к аль н ы м и м ен ем . Т о т ж е сам ы й п о хд , о сн о в ан н ы й н а о б р а щ ен и и к фн у кц и и e xist , в ы м о ж ет е п р и м ен и т ь лд я з а да н и я и м ен и фай л- нфу к ц и . П осл о п е р а то р о ри т м ер р аж ен и
е з а го л о в к
а р а з м е щ а е ст я е т л о ф а й л - ф ун к ц и и в (и х м ож е т бы т ь д о с та о ч н о м н ог ) м п о чл у е н и я з н а ч ен и я в ы онхд ы х п ер м н ы е а л го р и т м п рост й — п о з а д н н о м у х в ы ч и сляет е и р е з луь ат т з ап и с ы в аест я в f.
- о ид , к о т р ы х и з вохнд ы х
н и л и н ес к о л ь к е р е а л и з юу т а л го . В н аш е м п ри я а р и ф м е ит ч е с к о е вы
Т еп р ь с о рх а н и т е фа й л в р а б о ч е м к а т л о ге . О б р а ти е вн и м ан и е , ч т о в ы б о п н у к от в Save и л и Save as... мне ю File п р и в о ди т к п о яв л ен и ю ди а л о г в о г окн а с о р ха н е н и я фа й л а , в п о л е File name к о т р о г о ж у е соедрж и ст я н аз в ан и myfun. С о рха н и т е фа й л - н фу к ц и ю в фай л е с п р елдо ж ен н ы м и м ен ем . Т еп р
о р о е ь
л ав Г
5. М - й лы фа
с о з ад н н у и дргиу е
221 zyxwvutsrqpo
ю н фу к ц и , н а п р и м е р
ю м ож н , и з к о м а н дн о
о и сп о ль з о в ат
ь ат к ж е :
й с рт о к и
, ка к и в срт о ен н ы
е sin , cos
>> у = m y f u n ( 1 . 3 )
0.2600
П р и с о з ад н и м а н нд о е окн о э то г о н е с ед л а ь т п рави ло , члуш от ч н ы х в ы ч и с л ен и И м я фа й л - н фу к ц и н ак о о б р ащ ен и f22.m соедрж и ст в а т ь та к :
и фа й л - н фу к ц и , з ав ер ш и
и myfun м ы п о адв и л в о п е р а то р п ри св аи в ан и , т о о н о вы всетд я п р и о б р ащ ен и е и з б е га т ь вы вод а в к о м а н дн о й в н рту и фай л- нфу к ц и . и н е о б я з а ет л ь н е к н е й п р о и сохид я н фу к ц и я с з а го л в к о
о од л ж н т п о и м ен
и вы во я от ч к о
д з н ач ен и я f в к о й с з а п я то й . Е сл и и у = myfun (1.3). К а к о р е з л у ь ат о в п р о м еж у -
е окн
о со в п адт ь с и м ен м фа й л а , од и фай л а . Н а п р и м е р , есл и в фай л е м g = in it ( z) . , т о е е е сулд т вы з ы -
» f = f22(- 0.9) а в о в с
е н е
>> f = i n i t ( - 0 . 9 ) Вы зо и з дргоу
в с о б вт ен н ы
х н фу к ц и й фай л- нфу к ц и
й м ож е т о щ с у е св т л ь я я и з фа й л - п р о г а м ы и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р е уд п р е д ж н и е
^
К а тл о г , в корт м сс жтрае од тп у ь к нм е у джлое н бы т ь добавле н е н йеа д т н цку ф и ю ил и вы з ове он а нисодт ха я в калтогх , дп ну тосы Ф а й л - нф у к ц и я д о с та о к ош и бке н и и в срто ен н ы
я й а ф - л н у к цф и
, жлое д н в пт у
т т с вм е
и п о и ск а о н е е дуг р х л д я п ои ска)
н бы т ь тщ куе и м , ил и , и н ча е MATLAB п рост о ю с те м ж е н ием м (елс и .
, п р и в едн н а я в ли ст н г е 5.2, и м е т оид н щ с у е вс т н ы й не . П о п ы тк а в ы ч и с л ен и я з н а ч ен и й н фу к ц и и о т м ас и в а п р и в о ид т к , а н е к м аси в у з н ач ен и й та к , к а к э т о п р о и сохид т п р и и сп оль з ова х фну к ц и й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» х = [1.3 7.2]; >> у = myfun(х ) ??? Error using ==> mpower Matrix must be square. Error in ==> myfun at 2 f = exp(- x)*sqrt((х Л 2 + 1)/(х л 4 + 0.1));
222
аЧс т ь
Е сл и в ы и з ч уи л и работ у с м ас и в ам и вы з ове т з а р т дн у е н и й . Н ео б хди м ц и и п р и м ен и т ь п о э лем н т ы е о п ер ац и и»вакмерто авыг л 2). И з м ен и т и з м ен и
I. Ос но вы
в zyxwvutsrqpon M ATLABzyxwvut
р аб о т ы
, т о срутан ен и е э то г о н е до с а т к а н е о п р и в ы ч и с л ен и и з н ач ен и я фн у к и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI (с.м р.азд ''Петны ме лэо ацпирео с
о п рост
е тел о нфу к ц и , к а к ук а з а н о в л и сит н г е 5.3. Н е з а бдьу т е с о р ха н и т ь я в фай л е myfun.m!zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
^ н В е си р ас п о нт е н а р ан х е о тм ло в к ! Л ис т ин
Пр и м е ча н и
е J е и зн ме и
й в тксе т й а - л ф н ц ку ф и я о ш и бк а н ч аи н ю а щ и , то , ка к н е сожлн о уиьясдебт , чт о йаф л и н з ме н и н е р н а со х е е окн а раекдотр а ро дя м с ин ем г 5.3. Ф а йл - ицянку ф
и бе з нра осхе и х п о л ь з е йв а т , бе д у т вы ьсчитял , е ву ьлтсе ви д м риакметдоруг
, ра бот а щю
я с м а с иов
я ай ф л . лЕс я ар с т т з в е о ч дк о аф й л
м зна еч ни
а — тсча о л н е со . О а в з ао г .zyxwvutsrqponmlkjihgfed
и йа ф я н у к цф и я
й
I
fu n c t i o n f = m yfun (x) f = e x p ( - x ) . * s q r t ( ( x . A 2 + 1 ) . / ( х .
Т еп р м а рт и ц
ь а р мг у е н о т а з н а ч е н и й
м н фу к ц и , н а п р и м е р
л
4 + 1 ) ) ;
и myfun м ож е т бы т ь ка к ч и сло , та к и в ек от р ил и :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
» х = [1.3 7.2]; >> у = myfun(х )zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA =
У
0.2600
П ер м ен н а а в от м а ит ч е с к
0.0001
я у , в к о т р у и с ат н о в и ст
П о с тр о й т
е гр а фи
п р о гр а м
ы ил
»
ю з а п и с ы в а е ст я в ек от р
к н фу к ц и и и з к о м а н дн о
я р е з л у ь ат м н жун о г
и myfun н а о ртез к й с рт о к и
т вы з ов о р аз м ер а
а н фу к ц и
и myfun,
и п ом щ
и фа й л
. е [0, 4] п р
-
:
х = 0 : 0 . 5 : 4 ;
>> у = m y f u n ( х ) ; >> p l o t ( x ,
Р еш ен и е в ы ч и с л и етл ь н ы н и я п р о гр а м и р о в а т ч е (н а п р и м е р д ы н те г р а л ь н а
у )
, п р а в я фну к ц и я)
х з ад ч с р е дв т а м ь фа й л - нфу к ц и , со втес юу щ и я ч аст ь с и ем т ы ид ф е р н ц и а л ь н ы .
и MATLAB п о ртеб у е п о с ат в л е н н о х р уа в н е н и
т о т в а с ме у й з ад й и л и п о
-
л ав Г
223 zyxwvutsrqpon
5. М - й лы фа
Р еш ен и М ни к о ни в ы р аж ен и р ас п о р яж ен и н фу к ц и с рт о ф а х гр а н и ц
ю в ы ч и сли етль н ы
х з ад
ы р а с м о рт и м с ей ч а е фай л- нфу к ц и й ч т о в ы п о с рт о и л я в е к то р а у н е о б яз а етл ь н е дл я н ег и фа й л - н фу к ц и и fpio t , к о т р о ) и л и куаз етл ы о рт е з к а дл
ч п о с в ящ ен
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM гав л 6.
с то л ь к
о о ид н п рост й п ри м е р то г о т в и з а ул и з а ц и ю м ает и ч е с к и к п р и п о м щ и p l o t . З а м еьт о бы л о в ы з ы в а т ь myfun — м о ж н о и п о т м ку а з а т ь п ар у х и у в p lo t . И м ею щ аяс я myfun п о з в о л яе т о б р а ит ь с й требсту я куа з т ь и м я н аш е й фай л- нфу к ц и ь н а н е е (с о п е р а то р м @ п ер д и м ен я п о с рт о е н и я гр а ф и к а (в в ек от р е и з дву
уп р о щ а е и гр а фи
, к а к и с п о л ь з о в а х нф у к ц и й . Т о л ь , ч т о лд я в ы ч и сле о сраз у з ап и сат ь я в н аш е м я к с п ец и ал ь н о й и (в а п о м нфу к ц и ) и х э лем н отв )
1
» fpiot('myfun , [0 4]) ИЛ »
И f p i o t ( @m y f u n ,
П о с тр о й т ка к п о к аз ан ж ае т п о в едн и ш а г а р г му е н та м о й фну к ц и
е г р а ф и к
[0 4 ] )
и p lo t и fp io t н а о нд и о н а ри с . 5.6. Г р а ф и к , п о с тр о е н н ы е фн у к ц и , т . к . а л г о р и т , му ен ь ш а я е г о н а ч у а с кт а .
Рис
. 5.6. С р а в н е н и
х о ся
х (и с п о л ь з йу т й fp io t , б о л е м fp io t а в то м а ти ч е с к х б ы с тр о г о и з м ен ен и
е p l o t и f p i o t
е hold on) та к е то ч н о о тр а и п о дб и р а е я и с елуд
, т -
I. Ос но вы работы в MATLAB zyxwvu аЧс т ь 224zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Ка
к бы л
че
м н а дч е у н ы
ес т
о о мт е ч н
о в ав ег л й вы бо у и з гав ы л
ь к п р и м ер и т ь гр а фи
к н фу к ц и
п р е лд а г л о с н фу к ц и
ь вы брат ю myfuni (ли ст н
3, щсу вестн н у
р ш аг
а м ож е
ю рол т п р и в ес т
3, в к о т р о
ь и гр а е
м пр
и п о м щ
и p lo t тр е б о в а л о с
и / ( * ) = ~ е Л (sinJC + O.lsin (Ю:)д г т О ь ша
т вы бо у р ез луь ату
и к н ев р н о м
г 0.01. З а п р о гр а м и р йу т г 5.4) и с орха н и т
е е е в фай л
) н а о рт е з к
р ш аг
, п ри
-
. В ерн и ь п о с рт
-
е [0,1] и
е с о вт е с ю у щ у ю фа й л е myfunl.m.zyxwvutsrqponmlkjihgfed
: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 5.4. Ф а йл - иц кну ф я дл я в ы ч и с л е н и я и с ле дуе м о й и ц ун к ф и zyxwvutsrqponmlkji
myfuni(t) function z = z = exp(- t).*(sin(t) + 0.1*sin(100*pi*t));
^
Пр и м е ча ни
В э то ф а й л - ф ну к ц и н ы ми з а п и с ы в а ть с а р г му е н з н ач ен и е
м п р и м ер
е
^Д
е м ы н ам ер н н и м о гу т бы т ь лю бы е , о т к о то р ы х б ед у т в ы з ы в а ть с я р е з лу ь т а . Н а п р и м е р т равн ы м Ь , з а ет т t с та н е .
0.1 Рис
0.2
о и сп оль з овал , о н
и н и к а я ф а й л - ф ну к ц и , п р и в ы з о в м в ы ч и с л и тс
0.3 0.4
. 5.7. В ы бо
р ш аг
и z и t . И м е н а а р г му е н т о к н е с в я з а н ы с те м и п ер м ен я и л и в к о т р ы е бе д у е а = myfuni (b) в ох дн о я z, и п е р м е н н а я а п р и м е т е
0.5 0.6 0.7 а н уф к ц и е
0.8 0.9
й fp l o t
в т й е
л ав Г
5. М - й лы фа
225zyxwvutsrqpo
Д л я п о с рт о е н и я г р а ф и к а о сатло с ь в ы з в ат ь fpiot. В ы м о ж ет е уз н ат р е з н ач ен и й а р мг у е н т а н уф к ц и е й fpiot, куаз в рт еь и м е е ов н дх ы м ен о т м с в о й с вт а ли н и и и м ар к ер а ат к ж е , к а к и в p lo t . В о з ь м и т к а ч е с вт е м ар к ер а и сп ло ш н у ю ли н и ю
ь о в ы б о м а р гу е от ч к у в
>> fpiot(@myfunl, [0 1], ' . - ' ) П о л ч у а е тс с втю у котры з ац и
я гр а фи к , п р и в едн н ы т а д п ти в н о п од бран н ы х fp io t в ы ч и с л и л .
Ф ну к ц и з н ач ен и
й н а р и с . 5.7. б Ас ц и с м з н ач ен и я м н ез ав и с и м о ю нфу к ц и ю дл
а и с е лм у д
ы м ар к ер о
в с о вт е
-
й п ер м ен н о й
, в
я к о р е к тн о
й в и з аул и
-
я fpiot п о з в о л яе т з а д в а т ь р я д п а р м е тр о в , уп р ав ляю щ и х вы боро м й абсц и с с zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "Бе ло он б пр д о о fpiot" авыг л 6).zyxwvutsrqponmlkjihgfedcb
Ф а й л - и ц нук ф
и с не осилмкь
и вм ын до х
и аргму е нт а м
и
Н ап и сан и е фа й л - н фу к ц и й с н еск о ль к и м и вонхд ы м и а р мг у е н а т м и п р а к ит ч е ск и н е олти ч аест я о т ч с ла у я о нд о г о а р мг у е н а т . В с е вохнд ы е а р мг у е н т ы раз м ещ а ю с т я в сп и ск е ч ер з з а п я ю ут . Н а п р и м е р , ли сит н г 5.5 с о едр ж и т фа й л нф у к ц и ю , в ы ч и сляю щ у ю л ди н у р а и д с у- в е к о т р а от ч к и рт е м х р н о г о п ро с рт а н с вт а \ ]х + у + z .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ! Л ис т ин
г 5.5. Ф а йл - иц кн фу
я с т ре м
я вмынодх
и а рмгу е нт а м
и
;
fu n c t i o n r = r a d i u s 3 ( x , у , z) г = s q r t ( x . A 2 + у .
Дл ци
л
2 + z . A 2 ) ;
я в ы ч и с л ен и я лд и н ю rad iu s3, н а п р и м е р
ы р а и д с у- в е к о т р а е пт р ь м ож н о и сп о ль з о в ат ь н уф к :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» R = radius3 (Г , '1, 1) R
= 1.732
К ром фн у к ц и о н дх ы
е фн у к ц и
й с н еск о ль к и м и
, в о з в р а щ а ю щ и х а р г м у е н от в
Ф а й л - и ц нк у ф Ф а й л - н фу к ц и л ен и з ы в а ю ст
а р гму ен атм и е н ес к о л ь к
о з н а ч ен и й
и с н еск о ль к и м , в о з в р а щ а ю щ и я в-керто укн ци )ф .
т с о з да в т х н ес к о л ь к
ь о в ы
-
.
и с не соликмь и нф у к ц и й
, MATLAB п о з в о л яе , т . е . и м ею щ и
и вм ы н до х ы и в ы охнд ы м х н ес к о л ь к В ы о н хд ы
и аргум е нт а м и а р мг у е н ат м о з н ач ен и
е а р м гу е н т
и од бун й (в м аетм аит к ы до б а в л я ю с т
и ы пр
и в ы ч и с е он и н а я ч ер з з ап я -
226
аЧс т ь
ут ю в сп и со к в ы охнд ы х а р г м у е н от в ск обк и . Ли с ти н г 5.6 соедр ж и в р ем н и , з а д н н о г о в сенк у адх
т п ри м е , в ч ас ы
I. Ос но вы
в MATLAB zyxwvuts
работы
, а са м сп и со к з ак л ю ч аест р та к о й фай л- нфу к ц и , м и н т у ы и секну ыд
я в zyxwvutsrqponmlkjihgfed кеатрынв д и hms дл я п ер в о д а .zyxwvutsrqponmlkjihgfedcbaZY
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 5.6. Фицнук я пе р вод а сену к д в ча с ы , м туин ы и с е нудк ы
I zyxwvuts
function [hour, minute, second] = hms (sec) hour = floor(sec/3600); minute = floor((sec - hour*3600)/60); second = sec - hour*3600 - minute*60;
П р и вы з ов та т е у с л д »
е фа й л - н фу к ц и т з а п и с ы в а т
й с н еск о ль к и м
и в ы охнд ы м
ь в в ек от
и а р мг у е н а т м
р с о в т се ю у щ е
й дл и н ы
и р ез л ь у
-
:
[Н , М , S] = h m s ( 1 0 0 0 0 )
Н 2 М = 46 S = 40
Е сл
и сп и со
к в ы о х нд ы
х а р мг у е н о т
f u n c t i o n m yfu n ( a , b) ИЛ
н е бед у в а ю ст П р е с уд м о р т е н с п о с а б л и в а ю ст н фу к ц и П о др б н е п о с в ящ ен н о
т воз вращ ат я п о л ез н ы м и
, т . е . з а го л о в о
к в ы г л я ди
т та к
:
ь н и ка и
х з н а ч ен и й
. Т а к и
е фн у кц и
и то ж
е и н о гд
я
а о к аз ы
-
.
а воз м ож н ост я к ч и сл й M ATLAB р а б о та ю е о с о з ад н и й п р о гр а м и р о в а н и
в п сту
И f u n c t i o n [ ] = m yfu n ( a , b) , TO ф а й л - ф у н к ц и
ь с о з ад в т у ов н дх ы т и м ен н
ь фа й л - нфу к ц и х и в ы о нх д ы х а р г м у е н от в о так и м образ ом
и фай л- нфу к ц и
Ф ну к ц и и M ATLAB о б л а д ю сь т ю п о л ч у е н и я и н фо р м а ц и h elp fpiot . С о б с вт ен н ы с вт о м , и сп о ль з у я с рт о к и го л о в к а и д о етл а нфу к ц и к о м а н до й h elp. И з чуи т е котры й расп о л ж е н в к атлог а M ATLAB. Р аз м есит з н ач ен и и (ли ст н г 5.7) и
й и фа й л - п р о г а м ю с о б вт ен н ы
, к о т р ы
е сам
о
. о в чтаис
м н ап и сан х п р и л о ж ен и й
и п ри
. Бо л ь ш и н с вт
II,
.
т ще е онд и и о ни х пр е фа й л - н фу к ц и к о м е н ат р и е в и ил с о ед р ж и м о п о дк а т л о г п р о в е р ь те
м п о л ез н ы м к ач есвт о м — в о з м о ж н о и п ом щ и к о м ан д ы h elp, н а п р и м е р и та к ж е м о ж н о н а ед л и т ь эи т м . Вс е срто к и к о м е н ат р и е в п о сл и п ос т у й с рт о к и в ы в о яд с т я в к о м а н дн о е фа й л а fplot.m с фай л- нфу к ц и е й е \ toolbox\ matlab\ specgraph\ о с н о в н о г е в фа й л - н фу к ц и и hms к о м е н та р и и о : h elp hms.
, св о й
-
е за е о к н о fpio t , о е е на -
л ав Г
5. М - й лы фа
227zyxwvutsrqp
izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 5.7. Пом е щни е ком м е нт а рие в в фа йл - иц кн фу ю
; zyxwvuts
function [hour, minute, second] = hms(sec) %hms - по в е р % Фи ц к н у
д сн у к е
д в чы с а
, мт у н и
я hms пн е ч а н з а н д е р
% в чс а
ы мт у н и
а дл
ы и сы д н у к е
ы и сд н у к е я пд о в е р
ы а сн у к е
д
.
% [hour, minute, second] = hms (sec) %
sec - чл с и
%
hour - чл с и
%
minute - чл с и
%
second - оо т а с
о сн у к е
д
о пы н л о
х чо с а
о пы н л о
в х муни
к сн у к е
т д
hour = floor(sec/3600);
minute = floor((sec - hour*3600)/60); second = sec - hour*3600 - minute*60;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
М ы н ам ер н н о з ап и сал и в п ер в о ц и ю о фа й л - нфу к ц и . П ер в а я ц и и н а з ы в а е ст я H I- line и и сп о ль зсету к о м ан д а ищ е т ку а з а н н о е сло в л о га х , куаз н н ы х в яп т у х п ои ск а в е р ь ет : lookfor hms. Н а ш л а с н фу к ц и й лд я п р е о б р а з о в а н и я MATLAB о ф р м л ен ы и м ен о нфу к ц и й , п р енд аз н ач ен н ы х лд п р и ед р ж и в а ь т с я ад н н ы х с о гл а ш е н и й ^ ло Б н ма д
Р а зо н с и в д т
Пр и м е ча ни к к о м н е ра и т е help.
е в н ь зл е
й с рт о к
е к о м е н ат р и е в к р а кт у ю и н фо р м а а к о м е н ат р и е в п о сл е з а го л в к а н уф к я п р и п о и ск е к о м а н до й lookfor. Э т а о в с рт о к а х H I- line все х фай л- нфу к ц и й в к а т , в от м ч и сл е и в ещ к т у е м к а т л о ге . П р о ь ка к в аш а нф у к ц и я , ат к и р я д в срт о ен н ы х фо р м а т а в р ем н и . Вс е в с рт о ен н ы е н фу к ц и и в та к о м сит л е , п о э тм у п р и с о з ад н и и н абор а я ш и роког о к рг у а п о л ь з о в а ет л й , ест ь см ы с л . с тр о к
^ я и с п о л ь з в ат
и фицунк
О фо р м л ен и е а л г о р и тм а в о нд о й фа й л - н фу к ц и р ы е с ат н д а р нт ы е ч аст о п о в т р яю щ и ес о е длт ь н ы х нф у к ц и й , св яз ан н ы х с о с н о в н ы ат в л я е т раз ли ч н ы е сп ос б ы о р га н и з а ц и в е а т ын фукн ци , укн ц пи ,ф до е ын вж о л
ь л д я н ч е п и у ло
я п с к аз о д
и п о ко
-
й я е дй с в т и м а л г о р и тм о м и с в яз е укн ци .ф
и н е в с е гд я е с ул д й м ж ед
а до у б н о . Н е к о т т оф рм и т ь в ви д е . M ATLAB п р еод с у нфу к ц и я м и —zyxwvutsrqponmlkj и п- р
228
и ц н у к фо П д
и
И сп о ль з о в ан и ч аст
и а л г о р и тм от м ж е ф а й л е П р е дп о л ж и м ч аст о п р и о х д ст ы ст м к оп и рован и е ит н г 5.8). j Л ис т ин
/, Ос но вы zyxwvutsrqponmlkjihgfedcbaZYXWV работы в MATLABzyxwvut
аЧс т ь
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е п о нфд у к ц и а в с а м о с т яе л ь н у , ч т о и о с н о в н а , ч т о в фай л- нфу кц и я в ы ч и с л ят м срт о
й и в ло ж ен ы
х н фу к ц и ю нфу к ц и ю
я нфу к ц и я ь н ек о т р о к до б а в и т
г 5.8. Ф а йл - иц нк фу
, етк с
. Р ас м о рти и simple, рахн ящ ей с е в ы р аж ен и е ь с о вт ес ю у щ и
я s i m p l e в файл
й осн ован о н а в ы е дл н и и т котро й с о е др ж и с т я в м м о ед л ь н ы й п р и м ер . я в фа й л е simple.m, . К о н е ч н о , м о ж н о п ро е о п е р а то р ы (ли с -
е simple.m zyxwvutsrqponmlkjihgfedcbaZYXW
function simple; х = 1.1; У = 2.1; fl = х" 3 - 2*у" 3 + 3*(х" 2 + у">2 ) - х* у + 9 х = 3.1; У = 4.2; л л f2 = х А 3 - 2*у 3 + 3*(х" 2 + у 2) - х* у + 9
х = - 2.8; У = 0.7; f3 = х" 3 - 2*у^ 3 + 3*(х л 2 + у^2 ) - х* у + 9
П рощ в мд у М - е йл фа j Л и с т и н
е и н а г л я нд е е о п р едл и т я в о х нд ы м и и онд и simple.m. г 5.9. Ф а йл - иц нк фу
ь в ы ч и с л яем о м в ы о хнд ы
е в ы р аж ен и м и ртисеь азм
м а р мг у е н от
я s i m p l e с п о уд нф к ц и е
й f в файл
е в zyxwvutsrqponmlkjihgfedcbaZ у кн ц и ф д п о f с е в тмо же
е simple.m
I
function simple; % Оа н в о с я фицкну я fl = f(l.l, 2.1) f2 = f(3.1, 4.2) f3 = f(- 2.8, 0.7) function z = f(x, y) % Пи ц к н у ф д о я z = х л 3 - 2^yA3 + 3*(xA2 + y A 2) - x*y + 9;
П ер в а о п е р а то р
я нфу к ц и ы в ы п о л н я ю тс я
я simple яв л сет , сел
я йв он с и п о л ь з о в а ет л
фукн цийе ь в ы з ы в ае
в simple.m, и м ен н т simple, н а п р и м е р
о е е , и з
л ав Г
5. М - й лы фа
к о м а н дн о п р и в о ди ю у д щ ем
229 zyxwvutsrqp
й с рт о к и т к п ое р д х у в о з в р а т
. К аж од
е о б р ащ ен и
у к р аз м ещ ен н ы у в о сн о в н у
Ф а й л - нфу к ц и я м ож е в о х нд ы м и и в ы о хнд ы м то л ь к о о нд а . З а го л в о ко м к он ц а п р еы д щ у е й п о н фд у к ц и я м и то л ь к р ем н н ы е , о п р едл н н ы он и одпсут н и,м ьын коал жи т п ри м е р фа й л - н фу к ц и
ю н фу к ц и ю
е к п онфуд к ц и м в п о н ф уд к ц и .
и f в о с н о в н о и о п е р а то р а
т с о ед р ж а т
ь он д у и л и н ес к о л ь к и п а р м е тр а м и , н о о с н о в н а к н ов й п но ф у д к ц и и о нд о в р е м н н . О сн о в н а я н фу к ц и я о б м е н и в а ес т о п р и п ом щ и во н хд ы х и в ы о нхд ы е в п о н ф ду к ц и я х и в осн овн о ы в п р е лд а х св о е й нфу к ц и и с п онфду к ц и ей , п р и в о ядщ и
г
I Л и с ти н
о п о н ф ду к ц и я н фу к ц и
й фну к ц и м и п о сле й с о св о и м я м ож е т бы т я п ри з н а
и и
ь о я в л се т я и н фо р м а ц и е й с х п а р м е тр о в . П е й нфу к ц и , яв л ю ст я zyxwvutsrqp . иЛ сит н г 5.10 соедр й к о ш и б к е !zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
, zyxwvutsrq
...............................................
г 5,10. Н е д о п у с ти м о
е и с п о л ьз о в а н и
е л о к а л ьн ы
х п а р м е тр о
в zyxwvutsrqponmlkji
function simplel; ALP =5.3; BET = 9.1; fl = f(l.l, 2.1) function z = f(x, y) z = x^3 - 2*y^3 + 3*(x^2 + У А 2) - x*y + 9 + ALP*BET;
П о п ы тк а в ы п о л н и т ч т о п ер м ен а р а ) н е о п р едл н а
ь н фу к ц и я ALP (о н :
а п ер в о
ю sim plel п ри в ед й в с рт е и л а с
т к в ы в о д ь п р и и н ет р п р е ат ц и
у с о б щ ен и
й о то м и о п е р а от
, -
>> simplel ??? Undefined function or variable 'ALP1. Error in ==> simplel > f at б z = х л 3 - 2*y^3 + 3*(xA2 + y^2) - x*y + 9 + ALP*BET; Error in ==> simplel at 4 fl = f(l.l, 2.1)
Оид ю ст р ем н ы п ом щ ит н j Л и с ти н
н и з воз м ожн ы х в а р и а н то я общ и м и л д я в се х н ф у к ц и х в н ач л е осн овн о и global с о сп и ско г 5.11). г 5.11. Оябв ъл е н и
function simple2; global ALP BET ALP = 5.3;
в и сп о ль з о в ан и й М - фа й л а й н фу к ц и м и ме н п ер м ен ы х
е г л о б а л ьн ы
, со ти и и п о н ф уд к ц и
х перем ен ы
я п ер м ен ы х , к о т р ы т в о б ъ яв л ен и и ад н н ы и ка к х,ьын алб о г л , р аз едля м ы х п р о б ело
х
е яв л х пе пр и м (ли с -
-
230
Ча с т ь
I. Осыовн
в M ATLABzyxwvu
ра бот ы
BET = 9 . 1 ; fl = Ј ( 1 . 1 , 2.1) f u n c t i o n . z = f ( x , y) g l o b a l ALP BET z = x A 3 2 * у л
С е лу д осн овн о п о н фду к ц и не нфу к ц и
ь в в и уд
т и м ет й н фу к ц и е
3 + 3 * ( х
л
2 + У
А
2)
- x *y + 9 + ALP *BE T ;
, ч т о члуш и м сп ос бо й и п о н фд у к ц и я м и я в л се т . З н а ч ен и е гл о б а л ь н ы х п ер м н ы о в рабоч е й с р ед е и л и п р и вы з ов е рд г оу , к о т р а я о б р а щ а ест я к о нд о и м ен н ы
О м т ие м о с б ен н о с т о ш и бк ам . И с то ч н и к о ц и и в к а ч е с вт
м о б м ен я п е р ад ч х м ож е й фа й л - п р о гр а м м гл о б а л ь н ы
и работ ы с п о фн д у к ц и я м и м ош и бо к ч аст о я в л се т о а р гм у е н т а та к и
е в о х дн о г
, к о т р ы я н ев р н о
а п ер м ен н ы м
и ж мд е
а и х в п а р м е рт а т бы т ь с лч у а й н ы ил м п ер м ен н ы м
у
о и з ме и фа й л
х .
е ч аст о п р и в о дя т к е ку а з а н и е п н о фу д к й M ATLAB, к а к fpiot,
х н фу к ц и
f z e r o , f m i n s e a r c h , q u a d И д р у г и х
, В ы з ы в а е м ы
О б я з а ет л ь н о и сп о ль з о в ан и е с ы лк MATLAB и гн о р и реу т п о нфд у к ц и щ ку е м к атлог е и в яп т у х п ои ск а осн овн о й нфу к ц и и mainfun с п онфуд к ц и е п с и ту м о с т ь з адн и я и м ен и п онфду к ц и
и н а п о фд н у к ц и ю , а н е е е и м ен и ю и н ач и н ае т и ск ат ь фа й л - нфу к ц и . Ли сит н г 5.12 соедр ж и т п рост й subfun, дем о н с рт и рюу щ и и в п ер в о м вохнд о м а р гм у е н т
х в н утр
и Н ОВ С О
Й Н фу К Ц И И
.
, и н ач е ю в ет й п ри м е р й н о ед е fpiot.zyxwvutsrqponmlkjihgfedc
'zyxwvut
г
i Листин
г 5.12. ыньливарП
й ы н ьил и в а р п ен
й озыв
в fpiot в основно
й и ц к нуф
и :ќ
function mainfun % оа н в о н с
я ицкнуф
figure % си н а д з о
я е г о к с е ч и ф а р г
о нко
subplot(2, 1, 1) % си н а д з о
е е н х р е в
fpiot(@subfun, [15]) % пы н ь л и в а р subplot(2, 1, 2) % си н а д з о
й пр а
ы ое с
й во з ы е е н ж и н
fplot('subfun', [15]) % ны н ь л и в а р п е
а
й пр а
й
в fpiot с уе л т а з к ы ое с й озыв
м н а пи ц к н у ф д о
ю
й в fpiot с ие н м
м пи ц к н у ф д о
и
function у = subfun(х ) % и ц к н у ф д о п
я
у = sin(pi*x);
В р ез луь ат е вы з ов >> mainfun с о з ад е с т гр а фи к
я гр а фи ч е с к о , п о члуен н ы
а
й пр
е окн о с мв д у я п ар м и в ы з о в е fpiot с указ етл
и о с ей
, п р и ч е м то л ь к м н а п о дфну к ц и ю
о в е рн х и , являет
й -
л ав Г
5. М - й лы фа
231 zyxwvutsrqpo
с я в е р н ы м . Е сл и в тещку е й п ап к е и пят у х п ои ск а н е т фай л- нфу к ц и т о н и жн и й гр а фи к с о е др ж и т п р ям у ю ли н и ю . Т а к всегд а р а б о та е гд а MATLAB н е м ож е т н ай т и М - аф й л с фа й л - н фу к ц и е й лд гр а фи к а . З а м еьт , ч т о п р и н али ч и и в тещку е й п ап к е фай л- нфу к ц и в М - фай л е fplot едбу т п ы ать с я п о с рт о и т ь е е гр а фи к . П о фд н у к ц и я од с п у т н в ы з в ат ь п о н фду к ц и др г у о й фа й л - нфу к ц и т о п о лч у и т е с о б щ ен и
а то л ь к о в н рт у ю f н е и з фай л- нфу к ц и , фа й л - п р о г а м е о б о ш и б к е
и осн овн о
й нф у к ц и . Е сл и simple (см . л и сит н ы и л и п рост о и з к о м а н дн о
и subfun, т fplo t , к о я п о с рт о е н и я и subfun и в ы р еш и т е г 5.11), а и з й с тр о к и ,
:
» f( i, 1) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ??? Undefined command/function 'f. Р а з м у е стя с я фай л- нфу к ц и п ер м ен а Е сл и до спут н в с рт о е н н ы е т о п р и о р и те
, сле
и в тщеку е я f, рхан ящ аяс я f, т о о ш и б к ы раз ли ч н ы , п о л ь з о в аетл ь с к и т св яз ы в ан и
м к атло г
е (и л и пят у х п ои ск а MATLAB) н аохид т я в фай л е f.m, и л и в р а б о ч е й с р ед е о б ъ яв л ен а и м о ж е т и н е б ы ть , и л и о н а бед у т др гуо о а х р к те р а . е о нд о и м е н н ы е фн у кц и и (п р и в а нт ы е , п о фдну к ц и , е и з е к тщ у е г о к а т л о га , нфу к ц и и и з Toolbox), я и м ен и и о б ъ ек т а с ю л уе д щ и й .
1. И щ ест я и м я в тещку е й рабо ч е м ен а я с так и м и м ен ем , л и б в)е , л и б о ан о н и м н а я фн у к ц и гав.е л ю ст я в сйеующ д л
т б ы т й сред : м огу о в л о ж ен н а я н фу к ц и я и л и inline- нфу к ц и я
2. И щ ест
я п онфду к ц и
м М - фа й л е
3. И щ ест
я п р и в а нт а
4. И щ ест
я в срт о ен н а
5. Д а л е и пят у
я в тщеку е я фну к ц и я фн у кц и
е п р о и з в о ид с т х п ои ск
Т ак и м образ ом н и е м с лч у а я фа й л ен н о й . К а к зу н а ть Д л я э то й ц е л и ав ег л 1. В о з в р а щ а е м ы 1 — и м я з а н я т н а в пят у х п ои ск П р и в а тн ы е нф у к ц и п ри м е р max И » exist max ans = 5
я (с.м
.
сиующй де л
)ле аздр .
я (built- in function).
я п ои с к требму о а MATLAB. , п о л ь з о в а те л ь с к и
ь о п р е дл н ы ли б о п ер я zyxwvutsrqponmlkjihgfedcbaZYXWVUTS (с.м де ал в эйто га- л , к о т р ы е р а с м а тр и в а -
й фа й л - н фу к ц и
и в тещку е
м к атлог
е
е нф у к ц и и и м ею т п р и о р и те т з а и ск лю ч е и и з ет к щ у е г о кат лог а п о о тн о ш е н и ю к в с тр о , яв л ест я л и нф у к ц и я MATLAB в с тр о е н н о й и л и н ет ? сжл уи т с п ец и аль н а я нфу к ц и я e xist , о к о т р о й ш л а р еч ь в е з н ач ен и я в с лчуае , есл и а р гму е н т ф ну к ц и я , та к о в ы : о п о д п ер м ен н у ю рабоч е й с р е ыд , 2 — нфу к ц и я расп олож е а фай л о в , 5 — в с тр о е н н а я нф у к ц и я (built- in function). и и п о дф н у к ц и и н е и д е н ти ф и ц и р ю у тс я . С р а в н и те , н а ba r : нф у к ц и
232
аЧс т ь
I. Ос но вы
работы
в MATLAB zyxwvutsr
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA e x i s t b a r a n s = 2
И та к , фну к ц и щ е м к а т л о г н о й с рт о к в с рт о е н н о
я max явлсет я в с рт о е н н о й , a bar — н ет . П о э то м у , есл и в кеу т е е с т ь в д е н фу к ц и и max и bar, к о т р ы е в ы з ы в а ю ст я и з к о м ан д и и л и н ек о т р о й нфу к ц и , т о о б р а щ ен и е е д бу т п р о и с о х ид т ь к й фну к ц и и max и п о л ь з о в аетл ь с к о й bar.zyxwvutsrqponmlkjihgfedcbaZYXWVU
е ицнку ф
л В е о ж ын Д р гу о й р а з н о в и д н о с ть в л о ж ен н ы е фн у к ц и осн овн о й фн у к ц и г о о б с от я е л ь с вт н ы и в о в л о ж ен н о ж ащ е й в ло ж ен н у ! Л и с т и н
и
ю нф у к ц и й , допсут н ы . Е сл и п о н ф уд к ц и , т о в л о ж ен н а я фн у к ц и а п ер м ен н ы е и з р а б о ч е й нф у к ц и . П р о с етй ш а ю fn ested, п р есдатв лен
г 5.13. Прос т е йша
я влеожан
я фуиц кн
х в о нд о м М - фа й л е , яв л ю ст я я я в л се т я в н еш н е й п о о нт о ш е н и ю к я являсет я в н ртуен н ей . В си л у э от й с р ед ы осн овн о й фн у к ц и и оп д су т я с р кт у а н фу к ц и и main, соерд а в ли сит н г е 5.13.zyxwvutsrqponmlkjihgfedcbaZY я
; zyxwvuts
function main; ALP = 5.3; BET = 9.1; fl = fnested(1.1, 2.1) function z = fnested(x, y) z = x^3 - 2*yA3 + 3*(x/N2 + y^2) - x*y + 9 + ALP*BET; end end
С равн и т е э т у нфу к ц и ю с фн у кц и е й sim plel и з л и сит н г р еали з о в ал с ь к а к п о нф д у к ц и я , и п ер м ен н ы е ALP И в н рт у и п о фд н у к ц и . Т еп р ь п ер м н ы е ALP И BET допсут н П р и н ап и сан и и в ло ж ен н ы х н фу к ц и й се улд т и сп о ль з о в ат з а к р ы ти я е т л а нф у к ц и . П о э т м у в л о ж ен н а я н фу к ц и я лю бо м м ес т е е т л а нф у к ц и , е е со едр ж ащ ей . О с н о в н а в е р ш а ест я о п е р а то р м end. В онд о м М - фа й л е од п с у к а е с т п о н фд у к ц и й и в ло ж ен н ы х н фу к ц и й о дн о в р е м н н о , н о р а то р о м п о н фд у к ц и и до л ж е н бы т ь end.
а 5.10, гд е нфу к ц и я f BET бы л и н е и з в е сн т ы ы в тел е фну к ц и . ь о п е р а то р end дл я м ож е т р а з м е щ а ьт с я в я н фу к ц и я ат к ж е за я и сп о ль з о в ан и е то гд а п о с л е нд и м оп е -
л ав Г
5. М - й лы фа
233 zyxwvutsrqpo
р Уо в е н ь в л о ж ен н о с т в л о ж ен и и в о з н и к а е м ож е т о б р а ит ь с я в л о ж ен н у ю н фу к ц и с я к н фу к ц и и то г н фу к ц и ю в е рн х е г о н ы е и з н е . Н а п р а к ит к ка к п р а в и л о , н е требстуя
и н фу к ц и й н е о гр а н и ч ен т в о п р о с , к ак и е в ы з о в к св о е й в л о ж ен н о й нфу к ц и ю н и ж н ег о уро в н я . В ло ж ен н а о ж е руо в н я . Ф ну к ц и ру о в н я , в к о т р у ю он е та к о й сло ж н о й .
Д р гу а я п р о б лем а м н о г руо в н е в о г н ы х в с р ед е в л о ж ен н ы х и вн еш н и в н еш н е й нфу к ц и , допсут н ы и в о с ат в л я е т ч с ла у й кол и з и и п ер м н ы с ч л уа е в о в л о ж ен н ы х н фу к ц и я х эт и м ен ем . Е сетв н н о , ч т о в о вн еш н е о нд и м и м ен м н е в о з м о ж ен , п о э тм В л о ж ен н ы п оль з оват п ри м е ит п н ы ! Л и с ти н
т бы т и м о уг ь н а в л о ж ен н у
е н фу к ц и ь к у а з етл р та к о г х н фу к ц и
о и сп о ль з о в ан и й с р а з н ы м
я н и ж н ег а в л о ж ен а с рк т у
у п р и м н о г руо в н е в о , а к ак и е н ет , н о н е м ож е т и сп о ль з о в ат я н фу к ц и я м ож е т о р уо в н я м ож е , и вс е нфу к ц и ы в л о ж ен н о с т и
м . Ф ну к ц и
я ь
о б р а ти ть т вы з ват , допсут фн у к ц и й
ь ,
о в л о ж ен и х нфу к ц и й в ло ж ен н о й
я — э т о од спут н о с т ь п ер м н . П ер м ен н ы е , о п р едл н н ы е в о , и н а о б о р о т . И ск лю ч ен и е со х л д я н фу к ц и й о дн о г о руо в н я . В э от м о раз н ы е ло к аль н ы е п ер м ен ы е с онд и м й фн у кц и и досут п к дву м п ер м н ы м с у н и онд а и з н и х н е до спут н а .
ь од п с у т н
я в л о ж ен н о и п а р м е тр а м и
г 5.14. Указ те л
. П о э т м ы до п суит м ы
ь н а в л ое нж у
ы н е то л ь к о в М - фа й л е , сле и и с ю нф у к ц и ю . В ли ст н г е 5.14 п р и в ед н й н фу к ц и и дл я со з адн и я дву х о нд о .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON ю фун к ц и
ю zyxwvutsrqponmlkjihgfedcbaZYXWVUT
function pointer = fixed__parm(a/ b, с ) % a, b, с - пртема % Синадзо
е летаз ку
ы ас ецорп
.
я н а вунежол
ю ицкнуф
ю
pointer = ©process; function у = process (t) у zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ± a*sin(b.*t + с) ; end end
З ап и ш и т е фну к ц и ю f ixed p arm в текщ у и » f = fixed_parm (1.5, 2, 0); >> g = fixed_parm(1, 10, 25); >> fplot(f, [- 2, 2] ) >> hold on; » fplot(g, [- 2, 2])
й к атло
г и в ы п о л н и т
е к о м а н ды
:
I. Ос новы работы аЧс т ь 234zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
в MATLABzyxwvut
е удб т п о с рт о е н ы гр а фи к и дву х раз н ы х нф у к ц и й . Т а к и м обра В р е з л уь ат з ом , со з адн ы вд е н ф у к ц и и f и д , з ав и с ящ и е о т онд о й п ер м ен н о й , дл я к о т р ы х з н а ч ен и я п а р м е тр о в з а фи к с и р о в а н ы н а м о ен т о б р ащ ен и я к фн у кц и и fixed_parm.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
а т вы и р н П
е ицнук ф и
П р о с ет й ш и й п ри е м с е лд а т ь н ек о т р ы в р а з м ещ ен и и М - фа й л о в в рабоч и та л о г а с п о л ь з о в а ет л ь с к и м и фа й л - н фу к ц и я м в с п о м о г а ет л ь н ы е нф у к ц и , к о т р ы с о едр ж а щ и м и с я в М - фа й л х да н н о г иг х к а т л о г в яв л ю ст я н е од пс у т н ы м и л о г с и м ен м private и р а з м есит Р и нсу о к 5.8 п о яс н яе т досут п к п р и в ант ы
е фн у к ц и
и в и д м ы м и и л и н ет , со сти . О п р едл н н а я с р тк у а ка и п о з в о л яе т з адт ь н ек о т р ы е и с п о л ь з ю у ст я то л ь к о фай л- нфу к ц и ям и о к а т л о га , а дл я фай л- нфу к ц и й и з руд . Д л я э от г о е с лу д т с о з да т ь п о кд а т ь в н е м в с п о м о г а ет л ь н ы е фа й л - н фу к ц и м фну к ц и ям .
т
х к а т л о га х
е , .
workl " t i J private* funl.m fun2.m — calc.m
"Ш
t
— myplot.m ;
~ Zil work2 3 private funl.m fim2.m test.m
E
Ф а й л - нф у к ц и и t e st и main ен ют е им д о с п ут а к п р и в а тн ы м фну к ц и ям , раз м ещ ен ы м в п о дк а т л о г е private дру го о к а т л о г а .
• main.m Рис
Р а з б и е ни В ер н ем с н и я о е д тл ь н ы
. 5.8. Семх
е М - йл фа я ет п е р
ь к фа й л - п р о гр а м а х и х ч а с ет й
а допсут
а к п р и в ант ы
а н а яеч йк м и оидбсу . Оид
н и з с п о с б о
м фн у кц и я
-
м
и м о д бу н о в — в ы едл н и
е с р е д вт е фр а гм е н т
о в ы п о лн е
а код
а и
л ав Г
5. М - й лы фа
235zyxwvutsrqpo
ег о в ы п о л н е н и е п р и п о м о щ р е д а к то р М - фа й л о в п о з в о л яе н ят ь и х н е з а в и с и м о . Т ек с м е н ат р и е в , н ач и н аю щ и сх
и < F 9> — б ы л р а с м о рт е н вы ш е . К р о м е э то г о т раз би т ь вс ю п р о гр а м у н а яч ей к и и в ы п о л т р а з б и в а е ст я н а яч ей к и п р и п ом щ и с рт о к ком я с дву х ищ уд и х п о др я д з н а к о в п р о ц ен т а (%%).
, -
т Д л я и сп о ль з о в ан и я с р ет д в р е д а к то р а п р и работ е с яч ей к а м и код а ес л у д с у ат н о в и т ь р еж и м Cell Mode, в ы б р а в в м ен ю Cell п ну к т Enable Cell Mode. П р и э от м с ат н о в я ст я од с п у т н ы м и рд г и у е пну кт ы э то г о м ен ю , а в ы б р а н н ы й и з м е н и стя н а Disable Cell Mode дл я омт ен ы р еж и м а . К р о м е то г о , п о яв л ест я п ан ел ь и н с р тм у е н о т в дл я р а б о т ы с яч ей к а м и . Д л я о ф р м л ен и я фа й л а м о ж н о и сп о ль з о в ат ь ю с лу е д щ и е п ну кт ы м не ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO Cell: • Insert Cell Divider — в с ат в к
т а (%%). Е сл ет л ь в с ат л я е ст
и к р ус о
а р а з ед л и е т л
р н о а хи д с т я з а тещку е
я яч е
я н е в п ер в о й с тр о к о й , и н ач
к и з дву й п оз и ц и е п ер
• Insert Cell Divider around Selection— в с ат в к п о сл е в ы едл н н о г о фр а гм е н т а (срто к и п р евд а р и етл ь н ед л н ы ) ; • Insert Text M arkup — р а с к р ы в а ю щ и й с образ ц о в к о м ен ат р и е в в м есот С п ос
б и сп о лн ен и
я яче
к фа й л
я в м ен
я с рт о к
• Evaluate Entire File — в ы п о л н яест
я вес
и ещ к т у е
ю лд
й яч е
к (%%) д о и ы бы т ь вы -
я в с ат к
и с рт о
к
. ю Cell: й яч ей к и
я срт о к
-
, и о н и текщу е
а о са т
-
й яч ей к и
,
; ь фа й л
.
и фай л а тсяетрбу , чотб ы п рем н ы е , и сп ольмезыу е в к о м ан у н е р е к о м е н уд , п р и ству о ал и в с р ед е Workspace. П о э т м ь яч ей к и фа й л - н фу к ц и й , т . к . и м ен а а р мг у е н о т в п р и о бращ е и и и м ен а п а р м е тр о в в е тк с е нф у к ц и , к а к п р а в и л о , н .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р е уд п р е д ж н и е В ы п н ол е и ел ь т н о г п ом щ р а нх и ь т
т м ен н к ру с о р
е о п р едляст
• Evaluate Current Cell and Advance — в ы п о л н яю ст и тещку е й с ат н о в и ст я сюлуед щ а я яч ей к а
в п р о ц ен , т о р а з дел и
о до л ж н
я пну к
• Evaluate Current C ell— в ы п о л н яю ст сет я текщу ей ;
П р и в ы п о лн е и ад х и фну к ц и ях с те я и с п о л н я т н и и к н фу к ц и со в п адю т
а р а з ед л и е т л
, гд е р а с п о л ж е а так ж
х си м вол и с рт о к и д н ей ;
е
^ е яеч к М - йафл а в ржием е Cell Mode п риод сх о н р а о сх е и я ге о н а диске , в лиотч е о т з ап с к у и . П оэмту , лс е и в ы лажоит ве е айф л , и н ча е вн ес ы е и знме и я муог т бы т ь п реняот ы
т еб з пвраиде о ай ф л
а г в ес , н е зьтд абу .
а п р и е ге о ос -
236
аЧс т ь
I. Ос но вы
в MATLAB zyxwvut
работы
м ввер х и в н и з ощсу есвтля я вы бор м в мн е ю zyxwvutsrqpo Cell П ер м ещ ен и е п о яч ей к а п н у кот в Previous Cell и Next Cell с о вт ес н н о . Ц в е т фо н а яч ей к и о п ред лс я е т я в н а с тр о й к а х р е д а к то р а в ди а л о г в о м окн е Preferences. В н е м се улд т в ы брат ь пну к т Display, усатн о в и т ь фл а г Show cell highlighting и в ы б р а т ь ц ве т в р а с к р ы в а ю щ ем с я сп и ск е с п р а в а о т фл а г . Дл
я о с в ен и
я п р о с етй ш и
яч ей к и , с о з ад й т (см . ли ст н Cell в ы б ер и т и з вуд х з н ак о фа й л , и сп о ль з у п а н ел и и н с рт м у е н от в н и т е со едр ж ащ и й с В и д п ер в о г гр а фи к р дг о у в ай т е гр а фи ч е с к о фа й л , р а з б и ты то р а я с о вт ес у
х п ри н ц и п о
в р а б о т
ы с М - фа й л а м и е н овы й фа й л и с к о п и рй у т е д у т а е тк с г 5.1). П ер м есит е кр су о р в кон е ц с рт о к е п ну к т Insert Cell Divider. П о с л е э о т й с рт о к в п р о ц ен т а %%, делящ а я фа й л н а вд е яч ей к и я пн у к т Evaluate Entire File и л и со втесюу щ у . И з м ен и т е н фу к ц и ю е рх ( - х ) н я в п ерв о й яч ей к е к о д , в ы б р а в пну к о гр а фи к а и з м е н и ст я . нА а л о ги ч н ы м образ о й н фу к ц и и н а дргиу е оси , в ы п о л н и в в от р у е окн о , п о тм у ч т о м ы с ей ч а с р а с м о тр и й н а яч ей к и , — ав от м аит ч ес к и 'соз анд у т н а ш ем у гр а фи ч е с к о м у окн у .
, р а з б и ты м
и н а т и з фа й л а mydemo.m и p io t ( x, f) и в мне ю и в с ат в и ст я с рт о к а . В ы п о л н и т е в се ь ю кн оп к у н а а io g( i + x) и в ы п о л т Evaluate Current Cell. м м ож н о в ы в ес т и ю яч ей к у . Н е з ак р ы м ещ е о и д н М ю ф а й л - нф у к ц и ю , к о -
П е р й ид т е в гр а фи ч е с к о е окн о и сген ер и рйу т е к о д л д я е г о п о с тр о е н и я б р а в в мне ю File п н у к т Generate M- File. В р е да к то р е М - фа й л о в с о з а д ес т во е окн о с ет к с о м фа й л - н фу к ц и и c r ea t efigu r e, п р и в едн н ы м в ли ст н г е 5.15.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с ти н •
г 5.15. Ав то м а ти ч е с к
и с о з д а н а
я фун к ц и
я д л
я г р иа ф ч е с к о г
о о кн
, вы я н о
-
а
function createfigure(xl, yl, y2) %CREATEFIGURE(X1/ Yl,. Y2) % XI: vector of x data % Yl: vector of у data % Y2: vector of у data % Auto- generated by MATLAB on 24- Jul- 2004 08:16:35 %% Create figure figurel = figure('PaperPosition', [0.6345 6.345 20.3 15.23], 'PaperSize' [20.98 29.68]);
%% Create axes axesl = axes('OuterPosition', [0 0 0.4823 1], 'Parent',figurel); hold(axesl,'all');
! • zyxwvut
л ав Г
5. М - й лы фа
237zyxwvutsrq
%% Create plot plotl = plot(xl, yl, 'Parent1, axesl); %% Create axes 1
axes2 = axes('OuterPosition1, [0.4823 0 0.5177 1], 'Parent , figurel); hold(axes2, 'all'); %% Create plot
plot2 = plot(xl, y2, 'Parent1, axes2);zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
M ATLAB со з аде с рт о е н и я : со з адн и н и т ь и до п о л н и т н фу к ц и я з ав и си т п а р м е тр а м и , к о т р ы н ап р и м ер , уадли т и з ам ен и т ь фо р м а л ь н ы д ы х , f и g с о вт ес н н о фа й л - п р о г а м ы окн а с гр а фи к а м н ы е яч ей к и к о м а н д
т фа й л - н фу к ц и ю с в ы едл н и е м чя е к дл я к а ж до г о ш аг а по я гр а фи ч е с к о г о окн а , осе й и гр а ф и к о в , в ы м о ж ет е и зме ь е кт с т э о т й фа й л - н фу к ц и и п о с в о ем у с у м о рт е н и ю . Ф а й л о т тре х армгу ен от в xi, yl и у2 , явл ю щ и с х я фо р м а л ь н ы м и е н е о п р е дл н ы в рабо ч е й с р ед е zyxwvutsrqponmlkjihgfedcbaZY Workspace. М о ж н о , ь з а го л о в о к , п р ев р аит в фа й л - н фу к ц и ю в фа й л - п р о гр а м у , е п ер м н ы е xi, yl и у 2 н а п ер м ен ы е р а б о ч е й ср е . П о с л едо в а етл ь н о е в ы п о л н ен и е яче к п о лчуен н о й п р о ед м о н с р т и р е у т вс е ш аг и л д я с о з ад н и я гр а фи ч е с к о г о и н ж ну о й нфу к ц и . В к ач есвт е п у р а ж н ен и я до б а в ь т е в нж у ы дл я в ы в о д а з а го л в к о в к гр а ф и к а м .
Р аз б и ен и е фа й л - п р о г а м ы н а яч ей к и и и х в ы п о л н ен и е ад е т в о з м о ж н о с т ь к о н тр о л я з а одх м работ ы п р о гр а м ы . Д л я фай л- нфу к ц и й п р и м ен ен и е э то й е нт х о л г и и с о п р яж ен о с о п р е дл н н ы м и р т нд у о с я т м и , п о ск о ль к у е е п ер м ен ы е яв л ю с т я лок аль н ы м и . Э т о о б сот яел ь свт о п о чд е р к н т у о в сп рав о ч н о й с и ем т е MATLAB. Р еда к от р М - фа й л о в в к л ю ч а е т в с бе я б о л е е м ощ н ы й и н с рм т у е н т — о лт а дч и к , о п и сан и ю и дем о н срт а ц и и в о з м о ж н о сет й котрог о м ы ле и д у м адл е е в н и м ан и е п р и п р о гр а м и р о в а н и и п р и л о ж ен и й (ср есдвт а гаве л 8). ди а л о г в о й о л т а кд и р а с м а рт и в а ю ст я в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK О б р а ит м с котра с в р те д
я е тп р
ь к ще я п о м о га е т э ф е к ит в н у M- Lint дл я ди а гн о с ит к
а М - лйо фа
и а г н оД с т и к В с о ат и к о р е к нт о с т е су л д
в с р ед т в м ен
е о нд о
й п р и в л е к а тл ь н о о р еа л и з о в ы в а т и М - фай ло в
й воз м ож н ост
и M ATLAB, ь с о б вт е н н ы е а л г о р и тм ы — к .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
в
ы MATLAB в к лю ч ен о с р е вд т и н ап и сан н о г о к о да . Д л ю р е да к то р а Tools в ы б р а т
я э от г ь пну к
о M- Lint лд я п р о в ер к и к а ч е с вт о п о сл е с о р ха н е н и я М - фа й л т Check Code with M- Lint (есл
а и
а
аЧс т ь
238
фа й
л н е бы
л с орха н ен
, т о э от
with M- Lint). В о с п о ль з йу етс
л и с ит н г
а 5.9. П о с л
Report с о тч е о м
I. Ос но вы
в MATLABzyxwvu
р аб о т ы
т пну к ь эи т
е в ы п о л н ен и , п р есдатв л ен н о
т м не ю н а з ы в а ес т я zyxwvutsrqponmlkjihgfedcbaZY Save and Check Code м срсевдто м лд я п р о в ер к и фа й л - н фу к ц и и и з я п р о в ер к и п о я в и ст я окн о M- Lint Code Check е н а р и с . 5.9.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
К * M - Lint Code Check Report zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA File Edit View Go Debug Desktop Window Help zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
M- Lint Code Checker ReportzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
k\uork 5zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM \зimp1 e Report for file e:\MATLAB7\wo r e:\MATLAB7\work\uork_5\simple.m 7 messagesiij_ Extra semicolon is unnecessary J3: The value assigned here to variable 'f1' is never used 13: Terminate line with semicolon to suppress output ;4^_ The value assigned here to variable ' f 2' is never used |4: Terminate line with semicolon to suppress output 15: The value assigned here to variable 'f3' is never used !5: Terminate line with semicolon to suppress output
Рис
В к а ж од Н ом е п е ор д х
. 5.9. О к н
о M- Lint: Code Check Report с ди агн о сит ч еск и м
м п р еу д ж е дн и р срто к
и куа з н и яв ляест
у к со втесюу щ е
я ги п ер с ы л к о й й с рт о к
ы н ом е , щ елч о е в р е да к то р
и с о б щ ен и ям
р с рт о к и и в ы яв л ен н ы к мы ш и п о к о т р о е М - фа й л о в .
и
й н ео д ч т й п р и в о ид
. т к
В н аш е м п р и м ер е в ы яв л ен ы рт и ти п а н е д о с ат к о в . В о - п ерв ы х , в ы в едн о со о б щ ен и е о то м , ч т о в п ер в о й с рт о к е н е требсту я си м в о л то ч к и с з а п я то й . В о - в от р ы х , п ер м ен н ы е fl, f2, f3 н и гд е н е и сп о ль з юу ст я (срто к и 3, 4 и 5). В - рь е т и х , п о л ь з о в а етл ю р е к о м е н с ту д я с ат в и т ь от ч к у с з а п я то й лд я п о адв л ен и я вы вод а р е з л у ь ат о в в ы п о л н ен и я н а э к р а н (срто к и 3, 4 и 5). В н аш е м с ч л уа е и ме т см ы с л ч есу т ь и н фо р м а ц и ю о б и с п о л ь з о в а н и и от ч е к с з а п я то й . О с ат л ь н а я д и а г н о с ти к а н е в а ж н а , т . к . п р и м е р с фай л- нфу к ц и е й simple и л л ю с тр и р о в а л рд г и у е в о з м о ж н о с т и п ак ет а M ATLAB.
л ав Г
5. М - й лы фа
Зад ни
239 zyxwvutsrqpo
я
лд я соньлетясма
й работ
1. Н а п и ш и т щ и х н фу к ц и н ы е ит п фа й л - н фу к ц и ю р и нс у к е
ы
е и вы п олн и т е фа й л - п р о г а м й с з а г о л о в к о м , п о д и сям ы л и н и й и м а р к е р о в . Д л я в ы ч и слен и . Д л я fpiot и p lo t и сп оль зй у т :
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
у п о с рт о е н и и к о сям
, с ект о й я з н ач ен и е вд е п о д б л а с т
я гр а фи к о . И с п о л ь з йу т й фну к ц и
в ю с ул е д
е раз
-
й с о з да й т и н а о нд о
е м
• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA u (x) = sin (in (x + 1)) + cos (in (x + 1)), х G [О , 2п] ;
J C G T - 09 0 9l• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI
-
f(x) =
l + x
.
х
g(x) = x х , zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA * e [ 0 . 5 , U j; x
x
2. Н а п и ш и т Д л я в ы ч и слен и
е и в ы п о л н и т
3. Н а п и ш и т
е фай л- нфу к ц и
• вы ч и сли т • н ай т и м ак си м аль н о н о й м а рт и ц ы
• п р о с му и р о в а т
2
x ),
ю дл у в ек от р м о т сренд ег ь м су
* e [ 0 , 1] .
е фа й л - п р о г а м й фн у к ц и
я з н ач ен и
• п о з адн н о м о кт л н е н и е
• п е р с ат в и т
—
у лд й с о з адй т
я р еш ен и
у о п р е дл и т о а р и ф м е ит ч е с к о г
у все
х э лем н от
е с р ед
я п о в е р н х о с ет й :
я сю луед щ и
х з адч
ь н ом е
р ег о э л е м н т о все х э лем н от
в в е к то р
е з н ач ен и
я п о с рт о е н и е фай л- нфу к ц и ю
.
:
а с н еч нт ы м
а с н а и б о л ь ш и в в е к то р а
м ;
и и н едк с а м и
и ди а г о н а л ь н ы
;
х э л е м н от
в з адн
-
; ь п ер в ы
й сотлб е ь вс е в н еди а го н а л ь н ы
ц к в а др тн о
й м а рт и ц е э лем н т
ы с е е ди а го н а л ь ю ы з а д н н о
; й м а тр и ц ы
;
240
аЧс т ь
• з ам ен и т э л е м н от в
ь м ак си м аль н ы ;
• з ам ен и т м ен от
ь э л ем н в м а тр и ц ы
• п о с рт о и т ь м н ог уль н и (xi9yi), з а д н н ы м • от браз и т ь э л ем н т м аль н ы й э лем ен т н о г о э л е м н ат .
й э л ем н
т в е к от р
т м а рт и ц
ы с и н е дк с а м
и в е к от р а м
к (з ам к н ыту й и х ун ;
I. Ос но вы
а с рн ед и
в MATLAB zyxwvu
р аб о т ы
м в ес
м з н ач ен и е
и 1,1 п р о и з в едн и е
м в се
х ег о х э ле
-
;
ы з адн н ог — к расн ы
о в е к от р м и в ерн ту
) с к о р ди н а т м
а си н и м ь з н а ч ен и
и м ар к ер ам и е и н ом е
и в ер ш и
н zyxwvutsrq
, а м акси р м ак си м аль
-
-
ТС АЧ И ЫВ Н Ч С Л Е И И МН АРВОИ Г П
Ь II Я Е
л Га в
а 6
Мд е то
ы и елнс вч ы
й в MATLABzyxwvutsrqponmlkjihgfedcb
т бо ль ш и M ATLAB о б л а д е раз ли ч н ы е ч и с л ен н ы е п р и б л и ж ен и е ат б л и ч н ы н о й а л ге б р ы , о п ти м и з а ц и я н ы х урав н ен и й , р а б о т а п ер ч н ь в о з м о ж н о с ет й н о р еш ен и е ти п о в ы х з ад ит ч е с к и е п р о б л ем ы ч и с л ен н о г рам к и н асотящ е й к н и ги
с И л е о в да н и
м н або р м е о т ыд х нф у к ц и й
м с п ец и а л ь н ы . Н аохж едн и
е корн е , и н етгр и р о в а н и е е си ест
, р еш ен и с р а з р еж н н ы м , п р еод сатв ляем ы ч н а п р и м ен ен и о ан али з .
е фицунк
х нф у к ц и й й р уа в н е н и , р еш ен и
, р еали з юу щ и й и с и е мт е з ад ч л и н ей
м о б ы к н о в ен н ы х ди ф ер н ц и аль и м арт и ц а м и — в о т дал ек о н е п о лн ы х MATLAB. В эот й гл а в е раз обра е в ы ч и сли етль н ы х м е от д в . Т ео р а р а с м а рт и в а е м ы х з ад ч в ы о х яд
х , й т з а
й
Р еш ен и е ура в н ен и й , н оахж едн и е м ак си м у а ил и ми н и му а н фу к ц и и о нд о й и л и н ес к о л ь к и х п ер м н ы х о щ с у е св т л я ю с т я вы з ов м с п ец и а л ь н ы х н уф к ц и й M ATLAB. Чи с л о а р мг у е н от в э и т х н фу к ц и й м ож е т бы т ь раз ли ч н ы м , в з ав и си м о ст и о т тр еб ум о г о в и д а р е з л у ь ат . Д л я р а б о т ы с н и м и , к а к п р ав и л о , н ео б хид м о з а п р о гр а м и р о в а т ь и ем с у л д ю нф у к ц и ю , н а п р и м е р , в в и д е фа й л - н фу к ц и . П р и эот м м о ж н о о б р а щ а ьт с я к фа й л - н фу к ц и и л и б о п о и м ен и фа й л а , л и б о п о ссы лк е н а н е е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE (с.м р.азд "Ф- айл кн ци "фу авыг л 5). Е сл и и се м л у ад лой , т о н е о б яз а етл ь н с т и в с рт а и в а е м у in lin e , и л и о п р едли т
с Вт р а и в е м ы
я н фу к ц и
я з адестя
д о с та о ч н ь фа й л - нфу к ц и ю ю (inline- нфу к ц и ю ) ь ан о н и м н у ю фну к ц и ю
ю н фу к ц и
е и аионм ын
В с рт а и в а е м а н и е к к о т р о _ ямИ ицкнуф
я н фу к ц и й в ы гл яид
я о п редляст т ю с лу е д щ и
и = inline('ф' алумро 9 Зк а
. 130
о п рост
о с о ат в л я т
, в о с п о л ь з о в а ш и с
, _ к о с ви оп тс н е м у г р а
й фо р м у о о д бу н ь н фу к ц и е
о ве
й
.
е фицнку я пр м образ ом
й и к о р о тк о о э от г
. В м ест
и п ом щ
и
и н фу к ц и и in lin e , о б р а щ е :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR )
244
аЧс т ь
к а р гм у е н от т в ы р аж ен и
С п и со з а де С ю лу е д щ и н уф к ц и
в н е о б яз аетл н е дл я в ы ч и слен и
, а 'формлау я з н ач ен и
II. Вчиы с лени я
zyxwvut
и пр о г ам м и р о вани е
' явлсет
я тек с от в
я фну к ц и
й с рт о к
й и
.
й п ри м е р дем о н срт и реу т с о з ад н и е в р а б о ч е й с р ед е в с рт а и в а е м о й и fun:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA A
» fun = inline('sin(x) - x. 2.*cos(x)') fun = Inline function: fun(x) = sin(x) - х. Л 2.*cos(x)
Inline- нфу ц и я fun м ож е MATLAB, н а п р и м е р :
т бы т
ь и сп о ль з о в ан
а ка к лю ба
я др г у а
я н уф к ц и
я
> > у = f u n ( 0 . 5 ) У = 0.2600
Е сл и н фу к ц и мгу е н ат м ке :
я з а в и с и и в е дн н о
т о т н ес к о л ь к и й inline- н фу кц и
х п ер м ен н ы х и и р а с п о л а г ю ст
, т о вс е он я в а л ф в и нт о
и яв л ю ст
я ар м п о ряд
-
> > funl = inline('sin(a*x) - х. Л 2.*cos(b*x)') funl = Inline function: funl(a / b / x) = sin(a*x) - x.^2.*cos(b*x)
Дл
я и з м ен ен и сп и ск
я п о р ядк е в ы р а ж е н и я
е п осл
а ар мгу ен от , о п р едляю щ ег
в и х е услд о в и
т п ер ч и с л и т д фну к ц и
ь ч ер
з з а п я ыт
е в
:
>> fun2 = inline('sin(a*x) - х.^2.*cos(b*x)' , 'х 1 , 'a', 'b') fun2 = Inline function: fun2(x, a, b) = sin(a*x) - x.^2.*cos(b*x)
Е сл н фу к ц и е
и в сп и ск
е с чл у а й н
о п ро п щу е я н е уадстя
й в о с п о л ь з о в а ть с
н о тх
я б ы оид
н и з а р г м у е н то в
, т о inline-
:
>> fun3 = inline('sin(a*x) - х . Л 2.*cos(b*x)', 'х 1 , 'b') fun3 = Inline function: fun3(x,b) = sin(a*x) - x.A2.*cos(b*x)
Даж в ед
е п р и н али ч и т к с о б щ ен и > > а = 1 ; > >
fu n 3( 5, 0)
и п ер м ен н о ю о то м
й а в р а б о ч е й с р ед , ч т о армгуен т а н е з а д н
е вы з о :
в нфу к ц и
и fun3 п р и
-
л ав Г
6. М е т ыо д
вчиы с лени й в
MATLAB
245zyxwvutsr
??? Error using ==> inlineeval Л
Error in inline expression ==> sin(a*x) - x. 2.*cos(b*x) ??? Error using ==> eval Undefined function or variable 'a'. Error in ==> inline.subsref at 25 INLINE_OUT_ = inlineeval(INLINE_INPUTS_/ INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Э от т п ри м е р ед м о н с р т и р е у т , ч т о п р и в ы ч и слен и и з н ач ен и я в с тр а и в а е м о н фу к ц и и п ер м ен н ы е рабоч е й с р ед ы н е од пс у т н ы . Вс е армгу ен т ы н фу к ц и i n li n e од л ж н ы бы т ь си м воль н ы м и с тр о к а м и , з ак л ю ч ен н ы м и в а п о с тр о ф ы и л и с рт о к в ы м и п ер м ен н ы м и . В п р о ит в н о м чс л ау е п о лч у а е с т я н ео д п с и ту ма я к о н с ртку ц и я . Р а б о т а с о срт о к в ы м и п ер м ен н ы м и о п и с ан а дале е в к н и ге , а п р и чент и и э от й г л а в ы д о с та о ч н о п р и ед р ж и в а ь т с я п ростг о п рав и л а — сатв и т ь а п о с рт о ф ы в армгуен ат х н фу к ц и и in lin e . л А ь ет р н а ит в н ы н и и а н о н и м н о _ ямИ ицкнуф
й сп о с й фн у к ц и
б з адн и и с п о м щ ь
я и с е м л у од
й н фу к ц и а к у а з ет л
ю о п е р а то р
и = @(с_ к о с ви оп т н е м у г р а
) фл у м р о
В о л ти ч и е о т inline- н уф кц и , и армгуен ыт н о м в и ед , а н е к а к тек сот в ы е с рт о к н фу к ц и и о д сп у т н ы п ер м ен н ы е р а б о ч е О дн а к о о н и яв л ю ст я к о н с та н та м и эи т х п ер м н ы х в м о ен т с о з ад н и и з м ен ен и е и х з н ач ен и й н е бед у т учи ыт в аьт с
и со ти я (@):
й и , -
т в о б ъ яв л е
-
а
, и формл у а з ап и сы в аю ст я в обы ч и в а п о с рт о ф а х . К р о м е то г , а н о н и м н о й с р еы д , к о т р ы е в о х яд т в фо р м л у , в к ач есвт е котры х б с етр у я з н ач ен и я ан о н и м н о й нф у к ц и , и п о сюлеуд щ е я п р и в ы ч и слен и и фну к ц и :
й . я е
>> а= " 1; » п и д пид
З = @(х , b) (sin(a*x) - х. А 2.*cos(b*x)) З = @(х , b) sin(a*x) - х. л 2.*cos(b*x)
>> дипЗ(5
, 0)
ans = - 25.9589 » а = 1000; »
дипЗ(5
, 0)
ans = - 25.9589
П о сп о с б н о о лт и ч а ест
у и сп о ль з о в ан и я ет м
я а н о н и м н а , ч т о со з адест
я фн у к ц и я к у а з ет л
я н а п о м и н а е ь н а нф у к ц и ю
т inline- нфу к ц и ю , к о т р ы й с в яз а
, н с
246
аЧс т ь
. Э т о охр ш и с п о л н яем ы м кодм вы вод е и н фо р м а ц и и о фн у кц и я > whos gun3 Name Size пид
З
о в и нд х с п о м о щ ь
II. Вчиы с лени я
zyxwv
и пр о г ам м и р о вани е
о ли б о в окн е zyxwvutsrqponmlkjihgfedcba Workspace, л и б о пр и ю whos:zyxwvutsrqponmlkjihgfedcbaZY Bytes Class
lxl
16 function_handle array
Grand total is 1 element using 16 bytes >> whos fun3 Name fun3
Size
Bytes Class
l
lxl
908 inline object
Grand total is 79 elements using 908 bytes
И н фо р м а ц и н и мн о н фу к ц и
я о в ы ед л н н о й фну к ц и и и сп о лн яем ы и э т о еид н ы й о б ъ ек т
й по
д н фу к ц и й к о д и указ етл
и п а м ят
и п о к аз ы в ает ь н а н е е о детл н ы
, ч т о лд я ан о , а дл я inline-
.
В ы ш ео п и с а н н ы е сп о с б ы з адн и я и е м с уы л д х м а ет и ч е с к и х н фу к ц и й (п о и м ен и М - фа й л а , п о с ы лк е , а н о н и м н а я фн у кц и я и л и inline- нфу кц и я ) до п ис т у м ы в о в се х в ы ч и с л и етл ь н ы х а л г о р и мт а х M ATLAB, о к о т р ы х п о й ед т м и сп о ль з о в ат ь вс е э т и в о з м о ж н о с т и и р еч ь в сюлуед щ и х р а з де л а х . М ы бе д у . П о дч е р к н е м , ч т о дл я до с та о ч н о п р о с ыт х и с е м л у ды х н фу к ц и й р я д дргиу х о д б ну е е в с ег о о п р е дл и т ь с о в т ес ю у щ у ю inline и л и ан о н и м н у ю н уф к цию . В т о ж е в р ем я , лсе и н фу кц и я з адн а г р о м о з дк и м в ы р аж ен и ем , члуш е в с ег о н ап и сат ь с о в т ес ю у щ и й М - фа й л . А в счлуае , к о гд а н фу к ц и я вы ч и с л яет я п о сло ж н о м у а л г о р и мт у , э т о о к аз ы в аест я п рост о н е о б х ди м ы м .zyxwvutsrq
Р е ш ни
е руа вне и
Д л я н оа х ж е д н и лд я о п р е дл н и
Р е ш ни е Ф ну к ц и котро В п р о с е тй ш е о н хд ы ф а й л - нф у к ц и б л и ж ен и н ап р и м ер
й я корн е я все
пынловьизр
й п рои з воль н ы х корн е
й п о л и н о м о
х р ау в н е н и в п р и м ен яест
х ура енв и
й
й ж с л иу
т н фу к ц и я ro o t s.
я f zero, a
я f zero п о з в о л яе т п р и б л и ж ен н о в ы ч и с л и т ь к о р ен ь р уа в н е н и я н а н е м и н ет р в а л е и л и б л и ж ай ш и й к з адн н о м у н ач ль н о м у п р и б ли ж ен и ю м вари ан т е f zero в ы з ы в аест я с вм д у я в о х нд ы м и и о нд и м вы f м а р мг у е н о т м х = fzero ( ' func_name , О)х , гд е func_name — ИМ , в ы ч и сляю щ е й л ев у ю ч аст ь руа в н ен и я , х О — н а ч л ь н о е п ри е к корн ю , х — н ай едн н о е п р и б л и ж ен н о е з н ач ен и е корн я . Р еш и ет , н а о рт ез к е [- 5, 5] руав н ен и е : si n x- x cosx = 0.
. Я ,
(6.1)
л ав Г
6. М е т ыо д
вчиы с лени й
в MATLAB
247zyxwvutsrqpon
П ер д н оажхенд и е м корн е й п о лез н о п о с рт о и т ь гр а фи к фну к ц и , вояхдщ е й в л ев у ю ч аст ь руа в н е н и я . Д л я п очлуен и я гр а фи к а м ож н о п р и б е гн т у ь к p lo t , н о вс е р а в н о п о н а од б и с т я з а п р о гр а м и р о в а т ь нф у к ц и ю , п о э тм у и ме т см ы с л в о с п о л ь з о в а ьт с я fpiot , к о т р а я к то м у ж е п о з в о л яе т п о лч у и т ь бо ле е от ч н ы й гр а фи к п о с р а в н ен и ю с p lo t (н ап и сан и ю с о б втен н ы х фа й л н фу к ц и й п освящ е н zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA р.азд "Ф- айл укн ци "ф гавы л 5). В л и сит н г
е 6.1 п ри вед
н тек с
т треб ум о
й фай л- нфу к ц и
.
Л и с т и н г 6.1. Ф а йл - ицянку ф , в ы ч и с л я ю щ а я л е в у ю ч а с т ь у р а в н е н и я zyxwvutsrqponmlkjihg ; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
i '• zyxwvutsr
function у = myf(x) у = sin(x) - х.^2.*cos(x) ;
Т еп р
ь п о с рт о й т
е гр афи
к фн у кц и
и myf, и сп оль з у
я fpiot , и н ан еси т
е скеут
.
1
» fpiot('myf , [-5 5]) >> grid on И з гр а фи к н ес н ы с р е дв т а м корн я . Оид в р уа в н е н и
а нф у к ц и н к о р ен е (6.1).
, и з о б р а ж ен н о г о н а р и с . 6.1 (п о ясн ен и и MATLAB), в и дн о , ч т о н а эот м ортез к ь р а в е н н л юу , в че м н есло ж н о убеид ьт ся
и фа Гр
к и ц фук н
и myf- пра во
й чатс
и уиенавр
я н а гр а фи к е и м ею с т , п о сдатв и
е н а я ч еы т р е в х = О
я
15
10
V\ 4\1 1
\ \ \ \
/
/ ре н \
/
Ч
к о )е н ь в
ь izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF бл и з и х = - 2 /
1
\
ШИЗ
И )
у
— _5
ор е н
ь в бли
\
з ix= 5
- 10
- 5 - 4 - 3 - 2 - 1 0 1 2 3 4 Рис
. 6.1. Г рафи
к л ев о
й ч аст
и уравн ен и
я (6.1)
5
248
аЧс т ь
от У ч н и т е з н ач ен и f zero:
е корн я
, р а с п о л ж ен н о г
II. Вчиы с лени я
о в бли з
zyxwvu
и пр о г ам м и р о вани е
и zyxwvutsrqponmlkjihgfedcbaZYXWVU х = - 5 , п р и п о м щ и
» xl = fzero('myf', - 5) Zero found in the in t erval: [- 4.7172, - 5.2]. xl = - 4.7566 И та к н ог
, п р и б л и ж ен н о о п р и б л и ж ен и я к т . е . в б ли з и з адн н ог ж ащ и й к о р ен ь . В эот о п р е дл н и я нф у к ц и ч и сли
в з н ач ен и
е з н ач ен и е корн я равн о - 4.7566. П р и ку а з а н и к о р н ю а л го р и т м f zero а в от м аит ч ес к и о ед т л я о н ач ль н ог о п р и б л и ж ен и я н а о х ид с т я о тр е з о к м с ч л уа е f zero м ож е т и сп о ль з о в ат ь боль ш и , че м и осндх ы й о рт е з о к [- 5, 5]. П р о в е р ь т
е фн у кц и
и myf в то ч к
о з н ач ен и ю то ч н о с т з н ач ен и фа к ит ч е с к
е н фу к ц и и б л и з к о к н люу , в о б щ е го в о р я ь н а й ед н н о г о корн я . Г а р н ти р о в а н н а я о п р е дл я с т я р а с от я н и е м д о е г о и с ит н н о г и т о ж е сам о е ) к о ли ч есвт о м в ер н ы
и н ач ль т к о р ен ь , , соерд й и н ет р в а л е о вт е , в ы -
е xlzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
» myf(xl) ans = 2.6645e- 015 К о н еч н о , то , ч т ч а е т д о с ат о ч н у п р и б ли ж ен н о г о ч ен и я и л и (ч т о ц и фр .
З адн и ю то ч н о с т и в ы ч и с л ен и й п о с в ящ е ин й " й а он д г.авы л Д л я то г о чотб ы в иу е тд е су л д т с у ат н о в и т ь фо р м а т long и вы вест м ы х п а к е от м M ATLAB р а с ч еот в н е з ав и си та !) .
н р.азд "Уине апврл хм о д о ь бо ль ш е з н ач щ и х циф и xl ще е р а з (то ч н о с т т о т фо р м а т а вы вод
, н е о з н а я от ч н о с т о зн а х з н ач щ и в-е лисч ы р к о р н ь п р о в ид а р е з л ьу а т
ь х
я xl, -
» format long » xl xl = - 4.75655940570290 В о з н и к ае т воп рос тьсюон ч н а й ед н ч и слам и , и м ею щ и м ч и сла) . Э т о со втес у сел , к о т р у ю воз вращ ае
, с к о л ь к о в о вт е е от ч н ы х з н ач щ и о р еш ен и е . Н а к о м п ь ю етр е в ы ч и с л ен и и 52 вд о и ч н ы х р аз р яд а в м ан ит с т о нт о с и ет л ь н о й п о гр е ш н о с т т н фу к ц и я eps, в ы з ы в а ем а я бе з
» eps ans = 2.220446049250313е- 01 6
х ц и фр
, т . е . с к айо я п р о и з в о дя ст я с е (бе з ч ует а п о р я дк а и п р е сд а т в л е н и я чи вохнд ы х а р г м у е н то в :
л ав Г
6. М е т ыо д
л Аг о р и т ьс т ч ес к н ит
вчиы с лени й
249 zyxwvutsrqpo
в MATLAB
м н фу к ц и и f zero п о ум о л ч ан и ю н а о х ид т к о р ен ю eps, т . е . ± 2 в ш еснт ацд аот м з н ак е п о сл е десяит ч н о и с м а к с и м а л ь н о воз м ожн о й то ч н о с ть ю . Ч то б ы б и е уд ь т с е фо р м а т п р есдатв лен и я дан н ы х н а long e и в ы в едт
ь урав н ен и й от ч к
я с то ч н о и — п р а к ит я в э то м , и з м е е xi:zyxwvutsrqponmlkjihgfed
» format long e >> xl xl = - 4.756559405702904e+000 Чи с л о з н ач щ и х циф long). Э т о сам о е то ч н о т а MATLAB. И з м ен и т в то ч к е xl:
р в уе л и ч и л о с е п р е сд а т в л е н и е п о сленд ю
ь н а но д у (п о ср ав н ен и е ч и сл а в десяит ч н о ю ц и фр у 4 н а 5 и в ы ч и сли т
й фо р м
ю с ф о р м а то е дл е з н ач ен и
м я п ак е е myf
» xl = - 4.756559405702905e+000; » myf (xl) ans = - 1.765254609153999e- 014 П оск оль к л еж и корн
у и с е м л у ад т и ск ом ы е в п ослнед
^
П р и м е ча н и
и Ч н елс о ю а жр д ве щ т и р е з ло ь а в т у ла е д П р о в ер ь т л я , та м
й к о р ен й з н ач щ е
я н фу к ц и ь руа в н ен и я
я см ен и л й ц и фр е
а з н ак , т о мжед у э ит м и з н ач ен и ям и . С л едо в а етл ь н о , о ш и б к а в н а й едн н о м .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
е ^Д е рше н и
и тако е работ , гд е то ч н о
е лю об х (ка к п рави ло . Дл я зачд й чнеилс ы
й з ач д
и е бр у т , толь к
и н е ж о ди х а й экпсрие мн т
у fzero, в ы ч и с ли е з н ач ен и е к о р н
в к о р ен я р а в н
т доп лн иьент ы о нк ов се о я к орн . о н л юу
х р а с ч о е вт ) п рави льн ост
я увнра е и
, пдо ь н ч е п у ол ы
я в ы толь к
ь myf, р а с п о л ж ен н ы .
х
о чт о п ро й вбли з
-
и ну -
1 >> х 4 = fzero ('myf , - O.I)
Zero found in the interval: [0.028, - 0.19051]. x4 = - 1.242386505963434e- 022
Ф ну к ц и я fzero едй свт и етл ь н ш е eps. Н а й ди т
е с а м о с т яел ь н
о г а р н ти р е у т о корн
и х 2 и хЗ
, ч т о от ч н о с т , р а с п о л ж ен н ы
ь р еш ен и е о к о л
я н е мне ь о то ч е
-
к - 2 и - 5.
250
аЧс т ь
В м ес т и н ет р в а л
о н ач ль н ог , н а к о т р о
»
о п р и б л и ж ен и м е с лу д
х 2 = f z e r o ( ' m y f \
т н ай т
я в от р ы и к о р ен ь
II. Вчиы с лени я
м п а р м е рт о :
zyxwvu
и пр о г ам м и р о вани е
м f zero м о ж н
о з адт
ь
[- 3 - 1 ] )
Z e r o f o u n d i n t h e i n t e r v a l :
[ - 3 ,
- 1].
x2 = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA - 1.85392745969615
Н а гр а н и ц а раз н ы х з н а к о в В к а ч е св т ч ес к а
х ку а з ы в а е м о г
о и н ет р в а л , и н ач
е и с е мл у д о я фну к ц и я
а н фу к ц и
е вы всетд й н фу к ц и р
, н а п р и м е
я до л ж н е о б о ш и б к е
я с о б щ ен и и м ож е
т в ы пс у т а
а п ри н и м ат ! ь и в с рт о ен н а
ь з н ач ен и
я
я м ае т и
-
» fzero('sin', [2 4]) Zero found in the interval: [2, 4]. ans = 3.14159265358979 Д о п с у ит м гл а в е з адт
ы др г у и . В о- п ервы х ь п р и п о м о щ
е сп ос б , нфу к ц и и указ етл
ы вы з ов а f zero, о к о т р ы ю с и есмлуод й м а ет и ч е с к о я н а н е :
) ; » х 2 = fzero(@myf, [- 3 - 1] х 2 = - 1.8539
В о - в от р ы х
, в о с п о л ь з о в а ш и с
ь н фу к ц и е
й in lin e :
A
» fun = inline('sin(x) - x. 2.*cos(x)') fun = Inline function: fun(x) = sin(x) - x.^2.*cos(x) » xl = fzero(fun, - 5) xl = - 4.7566 » fun(xl) ans = 2.6645e- 015 В - рь е т и х
, со з ад
>> f u n = @( х )
в ан о н и м н у
ю фну к ц и ю
s i n ( x )
-
x. A2. *c o s( x)
f u n = @( x)
s i n ( x )
-
> > x l = f z e r o ( f u n ,
x. A2. *c o s( x) - 5)
:
х шл
а р еч ь р а н е й н фу к ц и е
е в э от й м о ж н
й о
л ав Г
6. М е т ыо д
вчиы с лени й
251 zyxwvutsrqp
в MATLAB
x l = - 4.7566
О б р ащ ен и п р и б л и ж ен н то ч к е
е к f zero с дмву о н ай т и к о р ен ь
я в ы о хнд ы м , н о и п о лчуи т
и а р мг у е н ат м
и п о з в о л яе е н фу к ц и
ь з н ач ен и
т н е то л ь к и в н а й ден н о
о й
.
»
[х 2 , f] = fzero(@m yf, - 2)
х 2 = - 1. 8539 f = - 2. 2204е - 01 6
В аж н о й о с б е н н о с ьт н и , в к о т р ы р ен ь урав н ен и
ю f zero явлсет я то , чт о о н а в ы ч и сляе т то л ь к о т е к о р х н фу к ц и я меzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA т е ян з ан к , а н е к а с ет я ос и а б с ц и с . Н а й т и ко я х = О п р и п о м щ и f zero н е уасдетя :zyxwvutsrqponmlkjihgfedcbaZY
>> fun=inline('х. Л 2'); >> х = fzero(fun, - 0.1) Exiting fzero: aborting search for an interval containing a sign change because NaN or Inf function value encountered during search (Function value at 1.372960e+154 is Inf) Check function or try again with a different starting value. x4 = NaN
В да н н о г о з н ач ен и щс у е с в т о а н и о п р е дл и т окн о .
м п р и м ер
е fzero п ы атл с ь н ай т и myf и м ею т раз ли ч н ы е корн я н а эот м п р о м ежкту ь н е ад л у о с ь , и fzero в ы в ел я н фу к ц и
, н а гр а н и ц а е з н ак и , ч т о г а р а н ти р о в а л . Т а к о й п р о м е ж от у к а с о б щ ен и е о б ош и бк
П р о гр а м и р о в а н и е с о б втен ы х п р и л о ж ен и е тл ь н ы х н фу к ц и й ртеб у т п о ч л уе н и я с е нв д и н о г о п р о ц ес а л д я п е р о хд а к с о в т ею у щ е м щ ен и е к fzero с трем я в ы охнд ы м и а р мг у е н ат м
и п р о м е ж от ук
й с и сп о ль з о в ан и е й о з а в ер ш ен и у бло к и
х котро
о б ы
, ест в ен н о е в к о м а н дн о
, е
м в ы ч и сли
-
и в ы ч и с л и ет л ь у а л г о р и тм а
. О б р а
-
» [xl, fl, flag] = fzero(fun, 0.1); п о з в о л яе т вы брат ь ад л ь н е й ш и е е дй с в т и я в з ав и с и м о с т и о т с о ед р ж и м о г р ем н н о й fla g. П о л ж и те л ь н о е з н а ч ен и е flag св и едлть св у н о м з а в ер ш ен и и в ы ч и с л и ет л ь н о г о п р о ц ес а . О тр и ц а те л ь н о е з н ач ен и р и т о то м , ч т о л и б о н е уадлос ь о ед тл и т ь и н е тр в а л с о с м ен о й з н а к н а гр а н и ц а х , л и б о в п р о ц ес е в ы ч и с л ен и й п о чл у и л о с ь к о м п л ек с н о н и е , б ес к о н еч н о сьт , и л и в ы п о л н ен а о п ер ац и я с н е о п р е дл н н ы то м , н а п р и м е р , дел н и е нл у я н а н о л ь .
о пе т о б с п у ше е го в а фн у к ц и и е з н ач е м р е з л ьу а т -
252zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA аЧс т ь II. Вчиы с лени я и пр о г ам м и р о вани е
zyxwvuts
Ф ну кц и я fzero, ат к ж е к а к и б о л ь ш и н с вт о в ы ч и с л и ет л ь н ы х н фу к ц и й MATLAB, до п сук а е т пу р ав л ен и е м н о ги м и п а р м е тр а м и з ал о ж ен н ы х в не й а л г о р и тм о в . К р о м е то г , дл я к о н тр о л я в ы п о л н ен и я а л го р и тм а и и з м ен ен и я ег о п а р м е т р о в е ус л д т п о чл у и т ь и н фо р м а ц и ю о о дх е в ы ч и с л ен и й . пУ р ав л ен и е а л го р и тм о м и к о н тр о л ь з а н и м тр ебюу т с п ец и а л ь н ы х сп ос бо в вы з о в а н фу к ц и й M ATLABzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "Уине апврл хм о д о виней"лисч ы дйаон гавы л и ине пж о илр 1).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и с лч еы В н
е все
х корне
й пол инм
а
П оли н о
м в MATLAB з адестя
в е к от р
м е г о к о э ф и ц и е н от в
о п р е дл н и
я п оли н ом
з о в ат
ь к о м ан д
»
а -р х
, н а п р и м е р
+ 3.2х - 5.2л : + 0.5х +х- 3
е с лу д
, дл
я
т и сп о ль
-
у
р = [ 1 0 3 . 2 - 5 . 2 0 0 . 5 1 - 3 ] ;
Чи с л и ед н и ц в е к от р е
о э л е м н от у боль ш .
Ф ну к ц и котрог
в в е к то р а е е г о се п т н и
я poiyvai п р енд аз н ач ен о а р г м у е н ат :
»
p o i y v a i ( р ,
, т . е . ч и сл , н левыу а лд
о к о э ф и ц и е н от е к о э ф и ц и ен т я в ы ч и с л ен и
в п о л и н о м а ы до л ж н я з н ач ен и
, всегд ы с о едр ж а ь т с я п оли н ом
а н а я в а о т н е -
1)
a n s = - 2.5000
р м гА у е н п о э л ем н т о м арт и ц
т м ож е у ил
т бы т ь м а рт и ц е й ил е в ы ч и с л ен и е з н а ч ен и и в е к то р то г о ж е р а з м е р а
и в е к то р о м й п оли н ом , ч т о и армгуен т
, в э от м счлуа а и р е з л у ь ат .
е п р о и з в о д и ст т п р е сд а т в л я е
я т
Н а о х ж ед н и е в се х к о р н е й п оли н ом о в о щ с у е св т л я я п р и п ом ощ и нфу к ц и и ro o t s, в к ач есвт е а р мг у е н т а котро й к у а з ы в а ес т я в е к от р с к о э ф и ц и ен атм и п оли н ом а . Ф ну к ц и я ro o t s в о з в р а щ а е т в е к от р корн е й п о л и н о м а , в то м ч и сл е и к о м п л ек с н ы х :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> г = roots(р ) г —- 0.5668 + 2.0698i - 0.5668 - 2.06981 1.2149 0.5898 + 0.6435i 0.5898 - 0.6435i - 0.6305 + 0.5534i - 0.6305 - 0.5534i
л ав Г
6. М е т ыо д
И з в е с тн о и д е ст то р
вчиы с лени й
253 zyxwvutsrqpo
в MATLAB
, ч т о ч и сл о в се х к о р н е й п оли н ом а с о в п аде т с е г о с е тп н ь ю . беУ ь в п рав и ль н о ст и работ ы ro o t s, в ы ч и сли в з н ач ен и е п оли н ом а о т в ек а ег о к о р н ей :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» polyval(p,r) ans = 1.0е- 01 2 * - 0.1008 + 0.0899i - 0.1008 - 0.0899i - 0.0666 0.0027 - 0.0018i 0.0027 + 0.0018i 0.0102 - 0.0053i 0.0102 + 0.0053i
В венрх е то р ы
й с рт о к й се улд
а Н х о де ж н и В ы ч и с л и е тл ь н ы н фу к ц и й ын н фу к ц и е дл н и д о с та о ч н
е р ез луь ат т умн о ж и т
а с о е др ж и с т
я общ и
ь к аж уд
й м н о ж и е тл у п о члуи в ш его с
ю к о м п о н ен т
е эскт ре м ум о
в фицунк
ь l . Oe- 012, н а к о я в е к то р а .zyxwvutsrqponmlkj
й
т н ай т и от ч к и ми н и му а е н фу к ц и и MATLAB п о з в о л яю й и л и н ес к о л ь к и х п ер м н ы х . Р ез луь ато м я в л се т я zyxwvutsrqponmlkjihgfe ь- к о а л ,ум ин м т . е . то ч к а , в о к р еснт о ст и котро й з н а ч ен и я и с е м л у до й и п р ев ы ш аю т е е з н ач ен и е в то ч к е лок аль н ог о м и н и м уа . Д л я оп ре я от ч е к лок аль н ог о м ак си м у а н е т с п ец и а л ь н о й нфу к ц и , п о ск о ль к у о и ск ат ь ми н и му м фн у кц и и с о б р а нт ы м з н а к о м .zyxwvutsrqponmlkjihgfedcbaZYXW и о нд о
Мин м зац
я функци
П ои с к лок аль н ог р ез к е о щ с у е св т л я f zero. Н а й ди т
о ми н и му я пр е л о к а л ь н ы
и оонд
й понемр
а н фу к ц и и п ом щ е м и н и м у
й
и о нд о й п ер м ен н о и fminbnd, и с п о л ь з о в а н и ы фн у к ц и и
й н а н е к о т р о е котро
м от е с
й о жс х
2
e* + sin 37U н а о рт е з к фа й л - н фу к ц и ю н фу к ц и у кн ц и ф П ер н фу к ц и
е [- 1.5,1.5]. Т р ебсту , н а з в а в ее , к п ри м ер ю (н ап и с ан и ю с о б вт е н н ы " гавы л 5). д н о а ж х е нд и е и к о м а н до
(6.2)
я п р е дв а р и е т л ь н
м ло к аль н ы х м и н и м уо й fpiot. И з гр а фи к а
у ft e st , и л х фа й л - н фу к ц и в п о с рт о й т , п р и в едн н о г
о с о з ад т и ввест
ь с о в т ес ю у щ у и inline и л и ан о н и м н у й п о с в ящ е н .аздр е гр а фи о н а р и с
к и с е м л у до . 6.2, в и дн о
ю ю "Ф- айл й , ч т о
II. Вчиы с лени я и пр о г ам м и р о вани е zyxwvuts аЧс т ь 254zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и е м с лу а д я н фу к ц и я и м е т ч ые т р е ло к аль н ы х м и н и м уа . В ы ч и сли т е з н ач е н и е х , п р и к о т р о м од с и т г а е с т я в то р й ло к аль н ы й ми н и му , з а д в п ер в ы м а р м гу е н от м fminbnd и м я фай л- нфу к ц и и и л и к у а з ет л ь н а н е , а в от р ы м и рт еь и м — гр а н и ц ы о рт е з к а , н а к о т р о м и щ с ет я лок аль н ы й ми н и му м (усатн о в к а то ч н о с т и и до п о л н и етл ь н ы х п а р м е рт о в м и н и м и з ац и и о п и сан а в .аздр "Уине апврл хм о д о виней"лисч ы йаон д г)авы л : »
х 2 = f m i n b n d ( @f t e s t , . - 0 . 5 ,
0)
х 2 = - 0.1629
- 1.5.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
с иР
Дл ж ащ и
я чл у ш е г
. 6.2. Рн ежиоплса
о п о н и м ан и й вс е то ч к
е лньлаыко я р а б о т
и л о к а л ь н ы
х момин у
в фнцки у
и (6.2)
ы fminbnd з а д й т е и н ет р в а л п ои ска , соерд .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
х м и н и м уов
» х х = fminbnd('ftest', - 1.5, 1.5) х х = 0.4861
Дл е уд
я о дн о в р е м н н о г т в ы з в а т »
о в ы ч и с л ен и ь fminbnd с двму
я з н ач ен и
[ х 2 , f] = f m i n b n d ( @f t e s t ,
x2 = - 0.1629
я фн у к ц и :
я а р гм у е н а т м и - 0 . 5 ,
0)
и в то ч к
е ми н и му
а сле
-
л ав Г
6. Метыо д
вчиы с лени й
в MATLAB zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM 255 zyxwvut
f = 0.0275
Т а к ж е , к а к и fzero, нфу к ц и ным и а р г м у е н ат м и : »
[ х 2 , f,
р м гА у е н о ж х е нд и г о к о л и ч е с вт р а с о х ид м о с т
я fminbnd м ож е
f l a g ] = f m i n b n d ( @f t e s t ,
т flag м ож е и лок аль н ог а вы з ов и в ы ч и с л и ет л ь н о г
т п ри н и м ат о м и н и м уа в и с е мл у до
т бы т
ь вы з ван
а с трем
я в ы о хд
-
- 0 . 5 , 0) ;
ь рт , н левуо
и з н ач ен и я й н фу к ц и
о п р о ц ес а
е с а м о с т яе л ь н и (6.2).
Р е к р су и в н ы п р и в ед
й а л го р и т м лд я п о и с к а в се х л о к а л ь н ы х м и н и м уо в н а о рт е з к ав е л 8. н в гzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA м н фу к ц и й ад л е х п ер м ен н ы х
М и н м и за ц
и не оислкь
я н фу к ц и
и н еск о ль к и ю с м и н и м и з ац и е й а д п ит в н ы х с п у еш н о р еш и т о п р и б л и ж ен и и о нд о й п ер м ен н о х — в е к то р м
й п о с р а в н ен и х с ч л ау я я н ач ль н о г е фн у к ц и х п ер м ен н ы
З адй т е н ач ль н о л а и н ай ид т
е точ к
е ми н и му
ы и м ак си м у
ы е
и м ож н о ат к ж е с п р и м ен ен и е м fminsearch, р а с я п р е нд а з н а ч е н а дл я м и н и м и з ац и и фн у к ц и и од .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
я фицунк
М и н и м и з ац и ад ч е к ом би н и рован н ы м н о ги куа з н и чс л ау ск о ль к и
»
, к о т р а
е ло к аль н ы
— п р и н а и м ак си м аль н о е — в счлуа е
Н а й ди т н фу к ц и
И ск ат ь ми н и му с м а рт и в а е м о н о й и н еск о ль к и
о о с ат л ь н ы
: п о л о ж и те л ь н о е е — п р и досит ж ен и и и о тр и ц а те л ь н о .
е п р и б л и ж ен и у лок аль н ог
х пе р м е ын х п ер м н ы
х я в л се т и о нд о
я бо ле е сло ж н о й за й п ер м ен н о й , о дн а к о й а л го р и т м н фу к ц и и fminsearch п о з в о л яе т в о . Ф ну к ц и я fminsearch рт еб у т ь эт у з а дч у я дл я и с к о м й то ч к и м и н и м уа , к о т р о е в й до л ж н о бы т ь ч и слом , а дл я нфу к ц и и н е . й н фу к ц и
е р а в н о о м и н и м уа
х 2 = f m i n s e a r c h ( @f t e s t ,
х
е - 0.5 в п р и м ер :
е п р еыд щу ег
о р а з де
-
- 0.5)
х 2 = - 0.1629
В ы би ра вс е то ч к Р а с м о рт и м ер
е фн у к ц и
я п о с л е од в а е т л ь н и м и н и м у о м теп ер и дву
о п о хд я щ и
е н ач ль н ы
в и м ак си м уо ь м и н и м и з ац и х п ер м ен н ы
в фну к ц и ю фн у к ц и
е п р и б л и ж ен и я
, н а й ид т
е
. й н еск о ль к и
х п ер м ен н ы
х н а п р и
-
х
/ ( х , ;y) = sin7Uc- sin7ry.
(6.3)
256
аЧс т ь
С н ач л а п о лч у и т р уо в н я п р и п ом ощ ц и и дву х п ер м ен ы
е п р е сд а т в л е н и и ю с ул е д щ и х о п и сан
II. Вчиы с лени я
zyxwvutsrqp
и пр о г ам м и р о вани е
е о п о в е дн и и нф у к ц и , п о с тр о и в е е л и н и и х к ом ан д (о от б р а ж ен и е ли н и й руо в н я н уф к о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд "Ке тныуор ик "гафр гавы л 3):zyxwvutsrqponmlkj
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [X, Y] = meshgrid(0:0.01:2); » Z = sin(pi*X).*sin(pi*Y); » [CMatr, h] = contour(X, Y, Z,[- 0.96, - 0.9, - 0.8, - 0.5, - 0.1, 0.1, ..., 0.5, 0.8, 0.9, 0.96]); » clabel(CMatr,h) » col ormap (gray) Н а п о лч у и в ш е м с ло к аль н ы
я гр а фи к е х м и н и м уо
, п р и в едн н о
м н а р и с . 6.3, в и дн о р асп о л ж ен и е .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
в и м ак с и м у о в
Лин
и руо в н
и sin лх
я фуиц кн
sin л у
1 8 Г
н ы Л ь л оа к
е м и н м му
н ы Л ь л оа к
ы
zyxwvutsrqponm
е м с ак и м у м
ы
с Ри
. 6.3. Рн ежоиплса
и момин у П ер д п р и м ен ен и е ч и с л яю щ у ю з н ач ен и од л ж е н бы т ь в е к то р а в то р о й — у. Т ек с г е 6.2.
е льнлакоы в фнцки у
м fminsearch н ео б хид м я и ск ом й нф у к ц и , п р и ч е , п ервы й э лем н т к о т р о г т р т е б му о й фа й л - н фу к ц и
х ом и ус к ам и (6.3)
в
о с о з ад т ь ф а й л - нф у к ц и ю , в ы м а р мг у е н о т м фа й л - нфу к ц и и о с о вт ес у т п ер м ен н о й х, и f t e st 2 п р и в ед н в л и с ит н -
л ав Г
6. М е т ыо д
вчиы с лени й
257 zyxwvutsr
в MATLAB
J...«,.,»,,««.—«,,,,,.„«,.««« ,....., ,,,,,».«.«.,».»«. ; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 6.2. Ф а йл - иц кн фу я f t e s t 2
jzyxwvutsrqp
fu n c t i o n f = f t e s t 2 ( v) x = V( l ) ; У = v ( 2 ) ; f = s i n ( p i * x ) . * s i n ( p i * y ) ;
Т еп р в о х нд ы м н ие м и н и м уа »
ь дл
я ноажхенд и и а р мг у е н ат м
я лок аль н ог и — и м ен
м и в ы охнд ы
м а р мг у е н от
о ми н и му м фа й л - н фу к ц и м — в ек от р
а в ы з о в и т и и н ач ль н ы м с к о р ди н а т м
е fminsearch с двму м п ри бли ж е и и ск ом й то ч к
я и
: М
= f m i n s e a r c h ( ' f t e s t 2 ' ,
[ 1 . 4 , 0 . 6 ] )
М = 1 . 5 0 0 0
0.5000
Р еш ен и е н ай едн о с то ч н о с ьт ю Ю - 4, к а к п о знач ен и я м zyxwvutsrqponmlkjihgfedcbaZYXW х и у , та к и п о знач е н и ю нфу к ц и . Д л я п очлуен и я н е то л ь к о в е к от р а с к о р ди н а т м и от ч к и ми н и м уа , н о и з н ач ен и я фн у к ц и и се улд т в ы з в а т ь fminsearch с двму я в ы о хд ным и а р г м у е н ат м и :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 0.6]) » [М , f] = fminsearch(@ftest2, [1.4, М = 1.5000
0.5000
.р - 1.0000
О б р ащ ен и flag »
[М
п о з в о л яе г о а л г о р и тм а с м о рт е н н о
е к fminsearch с треьт и , f,
м в ы о хнд ы
f l a g ] = f m i n s e a r c h ( @f t e s t 2 ,
т з а п и с а т . С м ы с й в п рыедщ у е
И с е лм у д а я н фу к ц и п . В э о т м с ч л уа н фу к ц и и и н а ч л ь н о В н аш е фа й л е в е к то р
м до п о л н и е т л ь н ы
й з а д ч . П о с к о л ь к , т о сюлуед щ и
ь в н ег о и н фо р м а ц и л ег о з н ач ен и м р а з де л я м ож е е в о х нд о е п р и б ли ж ен и
е н е о б яз а етл ь н у в о хн д ы е к о м ан д
й то . т з а в и с ет й а р мг у е н
о бы л м а р мг у е н от ы п р и в еуд
[М
, f] = f m i n s e a r c h ( f u n ,
м
[ 1 . 4 , 0 . 6 ] ) ;
ю о п р и ч и н т ж е , ч т
е о с та н о в о и дл я фн у к ц и
ь о т п р о и з в о л ь н о г т argvect со втесюу щ е е до л ж н ы бы т ь в е к то р а м о п р о гр а м и р о в а т м ан о н и м н о т к п ои ск
» fun = @(v)sin (pi*v(l)).*sin (pi*v(2)); »
м а р мг у е н о т
[ 1 . 4 , 0 . 6 ] )
а в ы ч и с л и ет л ь н о и fminbnd, рас о ч и сл
а п ер м ен н ы
ь фа й л - н фу к ц и й н фу к ц и у м и н и м уа
и м ож е :
х й фа й л ы п .
и дли н
-
-
ю в М т бы т ь
258 м
аЧс т ь
II. Вчиы с лени я
zyxwvutsrq
и пр о г ам м и р о вани е
= 1 .5000 0.5000 = . f - 1 .0000zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е ча н и
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Optimization Toolbox, окртм ь л ен т ы е в т с д ре а м и н и м з ца и п о ль з о в ат ь дл я п ои кс а ми н ми у
инелварпУ
е ход
Ф ну кц и е тл ь н ы ля ед м бы т п р е д в а р и ет л ь н ет р о м ен а ных ч е тн и м ож н и сп о ль з о в ан и х а ын д
Э ТОГ
м винелсчы
м к фо р м и р о в а н и и о нд о й п ер м ен н о ю о р а б о т О ВЫ ЗОВе
М ф уН К Ц И
е а л г о р и тм Ю
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP ав г л 16, ржеиосд т о п д нл и . Н ап ри м ер , fminunc мжон о ис и н ькослие х пмнер ы х .zyxwvutsrqponmlkj
й
и fzero, fminbnd и х п а р м е тр о в лд я п у р а в л е н и з а н им . П а р м е тр ы з а д ю ст н аз ы в ат ь opt ion s, к а к в ь п рои з воль н ы м . П ер о с фо р м и р о в а т м рт е б у м о г о к о н тр о л я я option s н а сам о м е дл — д о ис х п о р в ы и м ел и р а з де л о в э от й г л а в ы о п рост о с л е од в а т ь п р и в е дн ы я пу р а в л яю щ е опаинс в гаве л 8).
П р и пс у т и н фу к ц и и н фо р м а ц и
у п щ вя ос н е и фн укц и й а фн цку и
fminsearch од п сук аю т о п р е дл н и е од п о л н и я в ы ч и с л и етл ь н ы м п р о ц ес о м и к о н тр о я в п у р а в л яю щ е й с р кт у е , к о т р у ю м ы уб сп рав о ч н о й с и ем т е M ATLAB, отх я и м я м ож е д вы з ов м в ы ч и с л и етл ь н ы х н фу к ц и й е ус л д ь п ер м н у ю option s в с о вт ес и и с хар к , в о с п о л ь з о в а ш и с ь н фу к ц и е й optim set. П ер е я в л се т я уткйрс.о Э т о н овы й и т п ад н и едл о то л ь к о с ч и сло в ы м и м ас и в ам и . П р м уе н и е р а б о та ь с о с ртк у а м и н е р т е б су я м п рав и ла м з ап о лн ен и я , п р о с м о тр а й ср к т у ы option s (ртао б ос и уткрсам ю с рк т у ы option s н а п р и м ер е м и н и м и з ац и й (6.2) п р и п о м щ и fminbnd. П о лчу и м сн ач л а м и н и м и з ац и и н а ег о п о сленд м ш а ге . Д л
o p t i m s e t С О ДН И
М В Ы ОХ Д Н Ы
М ар гум ен то
т т и , и
и а я
м o p t i o n s И
мв д у я в о х нд ы м и 'D isplay' и ' fi n a l 1 , а з ает м к а жу е м option s в до п о л н и ет л ь н о м ч е вт р о м в о х нд о м а р мгу е н т е fminbnd. В сю д у ад л ь ш е м ы е д бу м и сп о ль з о в ат ь ет р м и н ы тйв,со вид ,я локтнр п ц ои я и л и т е р па м р (в дан н о м с ч л уа е D isplay) и инезач св о й свт а и л и п а р м е тр а (в да н н о м с ч л уа е ' fi n a l ' ) . сУат н о в и т е фо р м а т вы вод а long, п о ск о ль к у н а м п о н а до б я с т я вс е з н ач щ и е ц и фр ы дл я а н а л и з а р е з л у ь ат .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP » format long » options = optimset('Display', 'final'); » x2 = fminbnd(@ftest, - 0.5, 0, options) Optimization terminated successfully:
л ав Г
6. М е т ыо д
вчиы с лени й
в MATLAB zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ 259zyxwvutsrq
the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e- 004 x2 - 0.1629zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
К ром е к о р ди н а т ы то ч к и лок аль н ог о ми н и му с п у еш н о м з а в ер ш ен и и в ы ч и с л и етл ь н о г о п р о ц ес му о л ч а н и ю ) н ай едн о р еш ен и е . Д л я и з м ен ен и с фо р м и р о в а т ь р к ус т у option s, куаз в ще то в . В ю уследщ е м п р и м ер е м ы з а де м н е то л ь к н ост ь 10~9 п о армгуен т у п р и п о м щ и п а р м е тр
а в ы в о ид ст а и то ч н о с ти я от ч н о с т е он д у п ар о оп ц и а Toix.
я и н фо р м а ц и я о б , с к о т р о й (п о и е с ул д т з ан ов о у в о нх д ы х а р м гу е н ю D isplay, н о и от ч -
1
'final , 'TolX', 1.0e- 09); » options = optimset('Display',zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI >> x2 = fminbnd(@ftest, - 0.5, 0, options) Optimization terminated successfully: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e- 009 x2 = - 0.16289942841268 С рав н и т е п о чл уе н ы й р е з л у ь ат т с о з н ач ен и ем , в ы ч и слен н ы м fminbnd с и с п о л ь з е му о й п о му о л ч а н и ю от ч н о с ьт ю 1(Н . Р аз л и ч и е п о лч у е н о в ш е ос т м з н ак е п о сл е десяит ч н о й то ч к и , с л едо в аетл ь н о , п р и п ерв о м в ы ч и с л ен и и от ч н о ст ь бы л а 10~5, а н е Ю - 4 к а к в ы в едн о в с о б щ ен и . И н ф о р м а ц и я , в о з в р а щ а ем я фн у кц и е й fminbnd, соедр ж и т г а р н ти р о в а н н у ю то ч н о с ть , в т о в р ем я ка к р еа л ь н а я то ч н о с т ь м ож е т бы т ь боль ш е . н А а л о ги ч н ы м и з ац и
и фн у к ц и
м о браз о
В о бщ е
м счлуа
м от ч н о с т
ь з а д ес т
и н еск о ль к и
я пр .
х п ер м ен ы х
е в о хн д ы
е а р мгу е н т
и корн е
ы optim set з адю ст
f
див ' ялортнок (...., _ options = optimset
В дву х п р ые д щ у и х п р и м ер а 1.0е - 09 , с о тв е тс в е н н о ви _д кон ротл я И з н ач ен и
и н о а хж е д н и я п оп арн
, е и н е ч а н з
д кон рлт
D isplay
я
-
о
, . . .)
х D isplay и Toix — в и д ы к о н тр о л я , а ' fi n a l ' и — и х з н а ч ен и я . В о з м о ж н ы е с о ч еат н и я п а р м е тр о в е п ри в едн ы В табл . 6.1.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON и ц Та л б
Ви
й и м и н и
З н чеа и ' o ff
'iter'
е
6.1. Пытер амр
Р ез л ь ау т И н о ф р м ац и ьл ен т о с и тд В ы си вод т о ж д ак ле ь т н о г
optimset П ир м ч н а е и
т я о вы чи лс
м пцорс е
е н е вы во
-
я я и н о рм ф ц а и м ш га е вы чи лс о п цорсе
я о а
-
е
аЧс т ь
260
II. Вчиы с лени я
6.1zyxwvutsrqponmlkjihgfe (оаин)екч о zyxwvuts
а ц и а лб Т Ви
д ол р т он к
Р ез л ь а у т т я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и ен ч а Зн е и н а е ч м Пи р е ' fi n a l '
D isplay
' n o t ify'
MaxFunEvals
M axlter
TolFun
TolX
Ц ло е
е чилс
Ц ло е
П о л ж и еь н т о щ н ве т с о чи л с П о л ж и еь н т о щ н ве т с о чи л с
е чилс
о
В ы с и тв о д о лт ь к ч и сл ь е н т о г
я и н ормфца и о о зршвеа н и
В ы с и вод т н ие с и тд м о лч н а у и ю
я е ж пд р у д п е р , ел с и пцорсе я (ис тпеьлозу )
М ак с и м л ь н о вы з ов н у цк ф и
в мое у делис и
М ак с и м ал ь н о ирцае т п о цр с е о
е е
я и вы о п роц се
а -
с н е со х я п о
-
е коли вчсте
о
Т о ль к о дл я fminbnd fminsearch
й е коли вчсет
о
й вы чи сльент ог
о
а
Т о ч н о ст о а нс т о в
ь п о н цкуфи а вы чинелс
Т о ч н о ст н у цк ф и н ич е л с
ь п о амне утрг и дл я оанст в й
и дл
я
е е о
в н уф к ц и ь р еш ен и е имеоуслд о н есколь к
, и м ею щ и м п р е сд а т в л е н и е в ы ч и с л ен и й , в ы в о ди м ы 1 м ' i t e r . П о с л едо в а етл ь н о с т
у а вы
Т о ль к о дл я fminbnd fminsearch Т о ль к о дл я fminbnd fminsearch
й
о
О гр а н и ч и в а т ь к о л и ч е св т о вы з ов л с е и тс е ь о п а с е н и е , чт о п очлиу т ч и с л и е ть н о г о п р о ц ес а . В н ек о тры н о сь т , н ап р и м ер , елс и вы ч и слен и м не и , а трсетбу я п оч л иу т ь от л ь к П о л ь з о в а те л я м с вен д и я о ход D isplay, р а в н о
zyxwvuts
и прогам м и р о вани е
-
о и е тр а ц и й и ме т см ы сл й и чи сл е н е ус атд я и з - з а р а о с ж х е нд и я вы х ч аяс л у х п р и о дх с т я м уен ь ш а т ь точ й н уф к ц и и з ан и м ае т м н ог о вре о п ревы х з н ач щ и х ц и ф р овтае . е о ч и с л ен ы е н а э к р а ь к ом ан
н п р
f(x) 0.873024
Procedure initial
-
х м е о т ад х , п о лез н ы и з н ач ен и и п а р м е тр а д zyxwvutsrqponmlkjihgfedcba
1 » options = optimset('Display', 'iter , 'TolX', 1.0e- 09); options) » x2 = fminbnd(@ftest, - 0.5, 0, п р и в о ид т к п оявлен и ю в к о м ан д о м окн е кром е р е з л уь а т а ще е и та б л и ц ы т и н фо р м а к аж д я с рт о к а котро й с о ев т у т онд о й и е рт а ц и и и соердж и ц и ю о то м , к а к о й р а з выз ы в ал с ь и ме а у с л д я н фу к ц и я , щекут е п р и б л и ж ен и и з н ач ен и е фн у кц и и о т н ег о и м оетд , п ри м ен яем ы й н а адн н о й и етр ац и .
Func- count x 1 - 0.309017
, -
, е
-
л ав Г
6. М е т ыо д
вчиы с лени й
в MATLAB
261 zyxwvutsr
2zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA - 0.190983 0.063294 golden - 0.118034 0.117247 3 golden 9
- 0.162899
0.0275217
parabolic
10
- 0.162899
0.0275217
paraboliczyxwvutsrqponmlkjihgfedcbaZYXWVUTS
Ф ну к ц и р ы . Н а п р и м е р
я optim set жслиу , елс и с н ач л
»
т ат к ж а бы л
е л д я м о ид ф к а ц и а з а д н а то л ь к
o p t i o n s = o p t i m s e t ( ' T o l X ' ,
а в даль н ей ш е и п о лч у и т с ат о ч н
м п о рт е б о в а л о с ь и н фо р м а ц и о о б р а ит ь с
и сщ у ювест щ е
я к фн у кц и
-
ь п о а р мгу е н т
у
1.0е- 09) ;
ь д о п о л н и те л ь н ю о к а ж од
й кср у т
о то ч н о с т о куа з т
ь от ч н о с т
м ш аг е в ы ч и с л и ет л ь н о г и optim set юсулед щ и
ь п о фну к ц и о п р о ц ес а
м образ ом
и , т о од
-
:
1 » options = optimset(options, "TolFun', 1.0e- 07, 'Display , 'iter');
П ри м и т и м ен ам и л ен и
е в о в н и м а н и е , к п р и м ер у
, ч т о м о ж н о с о з адт ь н ес к о л ь к : o p t io n si и option s2, лд м а л г о р и тм о м .
я в ы ч и сли етль н ы
Дл
я п р о с м о тр а все х тещку и х оп ц и й м о ж н м а н нд о е окн о и л и о кт р ы т ь е е в р е д а к то р с рт о к е с option s в ок н е б р азу е р а п ер м н ы з н а ч ен и я о ед т л ь н о г о п а р м е тр а п р о и з в о ид с т optimget, вохнд ы м и а р мг у е н ат м и котро з в ан и е тр еб ум о г о п а р м е тр а :
о сркту
р с р а з л и ч н ы м
я раз ли ч н ы
о вы вест е м ас и в о
х в а р и а н то
и в пу р а в
-
и р кс у т в вд о й н ы
у option s в к о м щ ел ч к о м п о х рабоч е й с р еыд . П о лчу ен и е я п р и п ом ощ и н фу к ц и и й яв л ю ст я и м я с р кт у ы и на -
1
» err = optimget(options, 'TolX ) err = 1.0000e- 009 Е сл р ут ы
и дан н о м , т о в о з в р а щ а ест
Вы зо
в н фу к ц и
у п а р м е рт я п ос т у
у н е б ы л о п р и с в о ен й м ас и в .
и optim set бе з вонхд ы
о з н ач ен и
х а р мг у е н от
е п р
и ген ер ац и
и кср т у
о м н о ж е с вт х ск обк а е п о ум о л ч а н и ю
х к уа з
-
в
» optimset п р и в о ди р а м е тр о н ы з н а ч ен и я
т к о т б р аж ен и ю в к о м а н нд о в в м ес т е с и х до п сиут м ы м , и сп о ль з ему ы е в в ы ч и с ли етль н о
м окн
е н аз в ан и
и з н ач ен и ям и
я всег . В фи рнгу ы
м а л г о р и мт
а па .
Mathematics: Function Functions: ы MATLABzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ а п о др о б н а я и н фо р м а ц и я о м и н и м и з ац и и н фу к ц и й и р еш ен и и р уа в н е н и й и , к р о м е то г , п р и в едн ы с ы лк и н а л и ет р а у у с о п и сан и е м в ы ч и с л и етл ь н ы х м е от д в , р еа л и з о в а н н ы х в MATLAB. Н е к о т р ы е до п о л н и етл ь н ы е воз м ож н ост и н фу к ц и й fpiot , f zero, fminbnd и fminsearch обжсаудю ст я в ю с у л ед щ е м р а з де л . В з ак лю ч е н и е э от г о р а з де л а о мт е и м , ч т о б о л ь ш и н с вт о в ы ч и с л и ет л ь н ы х нф у к ц и й , в
В р а з ед л
е сп рав о ч н о
й с и ем т
Minimizing Functions and Finding Zeros р а з м ещ ен
262
аЧс т ь
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
от м ч и с л е f zero, fminbnd и fminsearch, н ап и сан ы н а яз ы к е п р о гр а м и р о в а н и я MATLAB. О н и и м ею т о кт р ы т й к о д и р ас п о л ж ен ы в п о дк а т л о г е \ toolbox\ matlab\ funfun о с н о в н о г о к а т л о г а MATLAB.zyxwvutsrqponmlkjihgfedcbaZYXW
е продбн
л ое Б
М ы уж е о тм е ч а л и н ог о в ы бо р а ш аг ж аю щ и м п о в е дн и н о е в н и м ан и е те а д п ит в н ы й вы бо ц и и и р а б о та ь н ес к о л ь к и х п а р м е тр о в
о о fplot zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB , ч т о fplot чуи ыт в ает п о в е дн и , ч т о п р и в о ди т к гр а фи к а м е и е с м лу о д й нфу к ц и . Уелид м сп ос ба м вы з ов а fplot, к о т р ы р ш аг , п о лчуат ь в м ес т о гр а фи к с м а ет и ч е с к и м и нф у к ц и я м и .
е фн у к ц и , до с та о ч н м ет п р е п о з в о ляю а та б л и ц , з ав и с ящ и м
и з а сч е т адп ит в о то ч н о отбра ь бо ле е п р и сатл ь т н а с рт а и в а т у з н ач ен и й фн ук и о т о дн о г о ил
ь и
Д о ис х п о р п р и и с п о л ь з о в а н и и fplot м ы з а д в а л и в о в о х нд ы х а р мгу е н ат х и м я фа й л - н фу к ц и и (указ етл ь н а н е , i n l i n e и л и а н о н и м н у ю н фу к ц и ю ) , п р елд ы н ез ав и с и м о й п ер м ен о й и с в о й с вт а ли н и . С а м ы й общ и й сп о с б вы з ов а fplot та к о в :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [X, Y] = fplot(@pfun, limits, tol, n, LineSpec, PI, P2,...) С е лу д з а н о с ят ч ен и л яе то ч н
т ч у е сь т , ч т о п р и указ н и я з н ач ен и я н ез а в и с и м о я нф у к ц и , а са м гр афи к н т п о лчуи т ь та б л и ц у з н ач ен и о в ы п о л н и т ь plot(X, Y).
и н ео б яз аетль н ы й п ер м ен н о й е в ы в о ид ст я й фну к ц и
х в ы о х нд ы , B Y — с о вт ес юу щ и . Т ак и м образ ом , дл я в и з аул и з а ц и
х а р мг у е н от
в в х е зн а , fplot п о з в о и котро й од с а т -
Дли н а сп и ск а в о х нд ы х а р мг у е н от в до л ж н а бы т ь боль ш е и л и равн а в дм у , т . е . нфу к ц и я , в ы ч и с л яю щ а я з н а ч ен и я м а ет м а ит ч е с к о й фн у к ц и й , и в ек от р с п р е дл а м и л д я п о с рт о е н и я гр а фи к а з а д ю ст я в с е га д . О мт еи м , ч т о в ек от р lim it s м о ж е т с о ед р ж а т ь к а к дв а э л е м е н т а — п редл ы п о ос и абсц и с , та к и ч е ты р е — п р едл ы п о ос и абсц и с с и о р ди н а т , н а п р и м е р , fplot (@sin, [- 2*pi 2*p i. - 0. 5 0.5]) . лАго р и т м fplot а д п ит в н о п о дб и р а е т ш аг , и з м ел ь ч а я ег о в б л и з и ч у а с кт о в б ы с рт о г о рост а и л и буы в а н и я н фу к ц и и та к , ч от б ы о б ес п еч и т ь о нт о с и ет л ь н у ю от ч н о с т ь 2# 1(Н . П р и н ео б х ди м о с ит , от ч н о с т ь м ож н о з адт ь в треьт м в о нх д о м а р мг у е н т е t o l (о н а до л ж н а бы т ь м ен ь ш е е ид н и ц ы ) . С р а в н и т е гр а фи к и ф ну к ц и и sin(l/ x) н а о рт ез к е [0.01 1], п орстен ы
е с точ н осьт
ю 2«1(Н п
» fun = inline('sin(1/x)') » subplot(2, 1, 1) » fplot(fun, [0.01 1]) » subplot(2, 1, 2) 1.0e- 4) » fplot(fun, [0.01 1],
о умолчан и
ю и с то ч н о с ть
ю КН
.
л ав Г
6. М е т ыо д
Д р гу о н ог до л ж н
вчиы с лени й
й сп ос б пу р ав л ен и о ч и сл а р аз б и ен и о бы т ь боль ш
263 zyxwvutsrqpo
в MATLAB
я а л г о р и мт о й и с о х нд о г е л и б о р а в н
о о рт е з к о еид н и ц е
м fpiot со ти т в з адн и и м и н и м аль а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK п (1 п о му о л ч а н и ю ) , п р и ч е м п .
П я ыт й п ар м ет р LineSpec п р енд аз н ач е н дл я о п р едл н и я ти п а л и н и , ц в ет а и м ар к ер а . П о ск о ль к у от ч н о с т ь t o l м ож е т бы т ь то л ь к о м ен ь ш е е ди н и ц ы , м и н и м аль н о е ч и сл о р аз б и ен и й п боль ш е е ид н и ц ы , a LineSpec н е яв л ест я ч и сло м , т о нфу кц и я fpiot од п сук ае т оид н и з ю с лу е д щ и х вы з ов в с рт е м я в о х нд ы м и а р мг у е н а т м и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> fpiot(@pfun, limits, tol) >> fpiot(@pfun, limits, n) >> fpiot(@pfun, limits, LineSpec) и с ам Р аз б ер н ач и н а ск а
а в ы б и р а е
т нжу
м е тп р я с ш еост я н фу к ц и
ь н аз н ач ен и й п оз и ц и я м ож е
ю п о с л е од в а е т л ь н о с т
ь ед й с в т и й е во н хд ы
и сп и ск т з ав и с ет
Pl x
у( х) = e ' - р 2 sin x. Т ребсту п а р з н ач ен и й се т я вн оси т гр а м и р о в а т ры х ит н
, м о ж н
: р х = 0.1, р 2- 2\
.
х а р г м у е н от в , к о т р ы а п о сл е LineSpec. И с лемуда ь о т н ес к о л ь к и х п а р м е тр о в
я п о с рт о и т р х =0.2,
ь гр а фи к р 2- 2.Ъ\
и фну к ц и
е к у а з ы в а ю ст я я м а ет м а ит ч е , н а п р и м е р й дл
, :
я юс л уе д щ и
х
/ ^ = 0. 3, р 2 = 3.7. Р азмуе
-
о н ап и сат
ь тр и н ф у к ц и и дл я в ы ч и слен и я у ( х ) , и л и к а ж ыд й ра з ь и з м ен ен и я в он д у и т у ж е нф у к ц и ю . Г о р а з д о э ф е к ит в н е з а п р о ь н фу к ц и ю с рт е м я в о х нд ы м и а р г м у е н ат м и , п ер в ы й и з кот — н ез ав и си м а я п ер м ен н ая , а о сатл ь н ы е — п а р м е тр ы н фу к ц и и (ли с г 6.3).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Л ист ин г 6.3. Ф а йл - иц кн фу я дл я фицнку , за виесщя й о т па р м е т ро в I zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
j
fu n c t i o n f = p fu n ( x, p i , p2) f = e xp ( p l *x) - p 2 *s i n ( x ) ;
Т еп р ь п р и вы з ов е fpiot е услд т куа з т ь е к тщ у и е з н ач ен и я п а р м е тр о в сп и ск е в о х нд ы х а р г м у е н от в , н а ч и н а я с ш е ос т й п оз и ц и . Д л я э от г о н ео б х ди м о з адт ь п я т ь п р ые д щ у и х а р г м у е н от в , п ри ч е м в к а ч е с вт е t o l , n и л т и с п о л ь з о в а ьт с я с ау т н о в л е н LineSpec м о ж н о в з ят ь п со ту й м ас и в — удб н ы е п о му о л ч а н и ю з н ач ен и я . одУв л ет о р и м с я с ат н д а р нт о й то ч н о с ть ю м и н и м аль н ы м ч и сло м р аз б и ен и й , о п редли м то л ь к о ит п л и н и и дл я к аж од п а р ы п а р м е тр о в : » fplot(@pfun, [- 3 3], [ ], [ ], ' - ' , 0.1, 2); >> hold on » fpiot(@pfun, [- 3 3], [ ] , [ ] , '- - '/ 0.2, 2.5); » fpiot(G pfun, [- 3 3], [ ] , [ ] # ' : ' / 0.3 , 3.7) ;
в и и й
264
аЧс т ь
В оз м ож н ост н е от л ь к о д п с ук а ю е м м и н и м и з ац и
ь работ ы с фну к ц и ям и о в fpio t . В с е обжсаудем ы т н али ч и е п а р м е тр о в ю и н оахж едн и
е фицункй х о т па р м е т ро
с И л е о в да н и з а ви с щ я
II. Вчиы с лени я
, з ав и сящ и м е в э от . В сю уледщ е е к о р н ей так и
zyxwvuts
и пр о г ам м и р о вани е
и о т п а р м е тр о в , р е а л и з о в а н а й гл а в е в ы ч и с л и ет л ь н ы е з адч и м р а з ед л е м ы п р о ед м о н с р т и р у х фну к ц и й .zyxwvutsrqponmlkjihgfedcbaZYX
, в
Ф ну к ц и и f zero, fminbnd и fminsearch п оердж и Ё аю ск и м и фн у к ц и я м и , з ав и сящ и м и о т п а р м е тр о в MATLAB 7.0 ну а с л еод в а л а о т п р ые д щ у е й то т ж fpiot , отх я ег о о п и сан и е и с к л ю ч ен о и з сп рав о ч н о р а м е тр о в п о с л е од в а е т л ь н о з а д ю ст я в сп и ск е в о хнд ы пу р а в л яю щ е й с р кт у ы option s. З ап о л н ен и е сам о те л ь н о , есл и п р и реш ен и и урав н ен и я и л и м и н и м и з ац и н ел О п д р ы х П О умо лч ан и ю З н ча е и й 'D isplay', 'ToiF un 1 , 'T o ix 1 . К а к и в счлуа е с fpiot одп сук ает си в а в м ест о н е и н е рт ю с у щ е и н а с уп р ав ляю щ е й с ртк у ы
т работ . З а м е ти м е п о дх й с и е мт ы
у с м ает и ч е , ч т о верси я , ч т о оаслт я в . З н ач ен и я п а х а р гм у е н от в п о сл е й с р тк у ы н е о б яз а и фну к ц и и до с та о ч н о 'MaxFunEvals', 'M axlter', я ку а з а н и е п с о ут г о м ас , н а п р и м е р
» [xl, fl] = fzero(@pfun, 0, [ ], 0.1, 2) xl = 0.5570 fl = 0 н А а л о ги ч н ы нф у к ц и
м образ о , з ав и сящ е
м р е ш а ест й о т п а р м е тр о в
я з адч .
а о п о и ск
е лок аль н ог
о ми н и му
В в ер с и и 7.0 р ек о м ен студ я п р и м ен ят ь п о дх ы , о с н о в а н н ы е н а и сп о ль з о в ан и и ан о н и м н ы х и л и в л о ж ен н ы х нфу к ц и й . В п ерв о м с ч л уа е д о с та о ч н з адт ь з н ач ен и я п а р м е тр о в в п ер м н ы х рабо ч е й с р ед ы и о б р а ит ь с нфу к ц и , о п р едл и в в к ач есвт е а р мг у е н т а ан о н и м н у ю фну к ц и ю : >> p i = 0. 1; > > р 2 = 2 ; »
[ x l ,
f l ]
x l = 0.5570 f l
= 0
= f z e r o ( @( x )
e x p ( p l * x )
- p 2 * s i n ( x ) /
0)
а о я к
л ав Г
6. М е т ыо д
вчиы с лени й в
265zyxwvutsrqp
MATLAB
П оск оль к у п р и с о з ад н и и ан о н и м н о й н фу к ц и и п ер м ен н ы е с р ед ы фи к с и р у ю ст я , т о н е т см ы сл а о п р е дл я т ь о ед т л ь н о ан о н и м н у ю фну к ц и ю и п ер да в т ь е е и м я в к а ч е свт е а р мг у е н а т , и б о лд я н овы х п а р м е тр о в вс е к о м а н д ы н ад о п о в т р и ьт . В ли ст н г е 6.4 п ри евд н п ри м е р и сп о ль з о в ан и я влож ен ы х н фу к ц и й дл я р еш ен и я то й ж е з а д ч и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
function [х , у ] = froot(pl, p2, хО [х , у ] = fzero(@pfun, xO); function f = pfun(x) f = exp(pl*x) - p2*sin(x);
)
end end
Т ер н фу к ц и
ь в м ес т о вы з ов и froot:
»
[ х , у ]
и fzero е услд
а н фу к ц и
= f r o o t ( 0 . 1 ,
т о б р а щ а ьт с
я к с о б с вт е н н о
й
2, 0)
х = 0 . 5 5 7 0zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA У = 0
Пр сп и со м ож е
и н е о б х ид м о с т к в о нх д ы т в ы б р а т
и м ож н х а р мг у е н о т ь н аи бо ле
о до б а в и т в лд я п е р адч е п р и ем л ы
н И т е гр и о в а н и л п о с в ящ е
н п р и б л и ж ен н о м х о п р е дл н н ы ь вы би рат я в з ав и с и м о с т
у в ы ч и с л ен и в с з а д н н о ь н аи бо ле е п о х дя щ и и о т св о й ст в п о ды н етгр а л ь н о
е опре дл е ын м с п р и м е р
а н оахж едн и
у option s в ь п ак ет а
й х и н ет г р а л о
т воз м ож н ост
ис л ч е ы Вн
ю р с к ут и е е fzero. П о л ь з о в а те л я н ег о в а р и а н т .
й дл
е фуцинк
Э от т р а з ед л о в и дв о й н ы е тл ь и м е и н ет г р и р о в а н и
Н ач н е
ь пу р а в л яю щ у
х итнерагл о я з н ач ен и
я о п р едл н н о г
ю о п р е дл н н ы й то ч н о с ть ю й м ое т й фну к ц и
х и н е тг р а . П о л ь з о в а д ч и с л ен н о г
о .
в о и н те г р а л
а
1 x
JzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC e~ sin x'dx.
266
П ер в ы в ы р аж ен и е
аЧс т ь
м ш а го
м я в л ес т , е е тек с
я с о з ад н и т п р и в ед
е нф у к ц и
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
, в ы ч и сляю щ е й п о д ы н ет г р а л ь н о е е 6.5.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
н в ли ст н г
: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г 6.5. Ф а йл - ицянку ф , вичсыалщюя я пнтоыд е гра л ноь е рв ы а е ж н и
е
fu n c t i o n f = f i n t ( x ) f = e x p ( - x ) . * s i n ( x ) ;
Т еп р с ы кл и н те г р и р о в а н и я м ен о й
ь лд я в ы ч и с л е н и у н а фну к ц и , в к о т р у
я и н ет г р а л ю f in t , а в от р ы . В к ач есвт е в ы о х дн о г ю е ус л д т з а п и с а т
а вы з ови т м и тр еьт и
е quad, з а д м — н и ж н и о а р мг у е н т а м ож н ь н а й ед н н о е з н а ч ен и е
в п ер в ы м а р м гу е н о т м й и в ернх и й п рел д ы о ку а з а т ь и м я п ре :zyxwvutsrqponmlkjihgfedc
>> format long » I = [email protected], - 1, 1) I = - 0.66349146785310 ^
Пр и м е ча ни
е
j |
П ы о д н рег а л т ь н а я н цку ф и я м ж ое ка к inline- н укцф и я и л и на о и м н а fminsearch, fminbnd.
т бы т
П о му о л ч а н и ю н фу к ц и я quad в ы ч и сляе с от ч н о с ьт ю 1(Н . Д л я и з м ен ен и я от ч н о с т п о л н и ет л ь н ы й ч ев т р ы й а р мгу е н т : » I = quad(@fint, - I, I, 1.0e- 07)
ь з ан д я а т к же т п р и б л и ж ен н о и в ы ч и с л ен и
а и нм е , ли б о н ел о п д р а , ка к и в ча улс е fzero, е з н а ч ен и й е с ул д
е и н те г р а л т з адт
а ь од -
I = - 0.66349366574399 Р еали з о в ан н ы й в quad р ек уси в н ы фо р м л у е С и м п сон а с а в от м а ит ч е с к и од с и т ж е н и я тр еб ум о й о нт о с и ет л ь н о р е з л у ь ат ы , м о ж н о с е лд а т ь вы вод ад е т о ж и д а е м о г о к о л и ч е с вт а в ер н ы б л ем а з а к л ю ч а е ст я в сп ос б е о ц ен к м о м а л г о р и тм е , н о э от т в о п р о с и з о хи д т з а рам к и и з лаг ем о г о м а ет р и а л н е о б х ид м о п рост о ч у и ыт в а т ь ег о ет о р е ит ч е с к и м и а с п е к ат м и п р и м ен яем о г тр а с и р о в к а в ы ч и с л ен и й , к о т р а я в о м з н ач ен и и п я от г о в о х дн о г о а р мг у е н т л ен и й п р е сд а т в л е н а в в и д е та б л и ц ы
й а л го р и т м осн ова н н а к в а д р ту н о м п о дб р о м ш аг а и н те г р и р о в а н и я лд й п о г р е ш н о с ит . С р а в н и в а я п о лч у е н н ы 6 , ч т о о нт о с и етл ь н а я п о г р е ш н о с ть ю н х з н ак о в п о сл е ед с я и т ч н о й то ч к и . П р о и п о гр еш н о с т и в ы ч и с л ен и й в п р и м ен яе о б л ас т и в ы ч и с л и ет л ь н о й м а ет м а ит к и вы . П р и и с п о л ь з о в а н и и с р е дт в п ак ет о с б е н н о с ит . Е сл и п о л ь з о в а те л ь з н ак о м о м еотад , т о ме у о к аж ест я п о л ез н о в ы в о ид с т я в к о м а н дн о е о к н о п р и н е л у е в ы ч и с а quad. И н ф о р м а ц и я о о хд . В к аж од й е е с рт о к е п р и в е дн ы з н ач е
й я е е а с й -
л ав Г
6. М е т оы д
ни е тк щ у е г
вчиы с ле ни й
я к о л и ч е с вт
267zyxwvutsrqpo
в MATLAB
а в ы ч и с л ен и
й п о ды н е т г р а л ь н о
о п р о м е ж кт у
а и н те г р и р о в а н и я
, ег о дл и н
й нф у к ц и а и з н ач ен и
, н а ч л ь н а е и н те гр а л
я то ч к :
а
» I = quad(@fint, - 1, 1, 1.0е- 07 , 3) 9
- 1.0000000000
5.43160000е- 00 1
- 0.7696256630
11
- 1.0000000000
2.71580000е- 00 1
- 0.4927577867
13
- 1.0000000000
1.35790000е- 00 1
- 0.2772168074
15
- 0.8642100000
1.35790000е- 00 1
- 0.2155409801
37 39 41
0.4568400000 0.4568400000
5.43160000е- 00 1
0.1696814429
2.71580000е- 00 1
0.0830983395
П р о а н а л и з и р йу т от ч н о с т
0.7284200000zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC 0.0865830829 2.71580000е- 00 1 е к о л и ч е с вт
и в ы ч и слен и
Ф ну к ц и щ ен и я
о от ч н ы й в quadi лд я п р и м ер а
и quad и quadi м о гу
х з н ак о
т в ы в о ди т
в в з ав и си м о ст , р а з о б р а н н о г
ь ю с ул е д щ и
о в ы ш е
и о т з ад в аем о .
й
е ид а г н о с и т ч е с к и
е со б
-
:
•
'M in im um s t e p s i z e r e a c h e d ' — ш а
н ог и ме
о з н ач ен и я т н еи н етгр и рему
, н о рт еб ум а
г и н тегр и р о в а н и
я от ч н о с т
я И ТС О Д
ь н е п о чл у е н а
ю о с б е н н о с ьт
Г М И Н И М аль
. В о з м о ж н о
-
, фну к ц и
я
;
• 'Maximum fun ction count exceeded 1 — од сит гн у г о к о л и ч е с вт а в ы ч и с л ен и й з н а ч ен и й п о ды н ет г р а л ь н о 10 000). В о з м о ж н о , нфу к ц и я вед т с еб я к а к н ф у к ц и о с б е н н о с ьт ю ;
т п р ед
л м ак си м аль н о
й н фу к ц и я с н е и н ет г р и р е ум о
и (б о л е
е й
L3 ' I n f i n i t e o r N o t - a - N u m b e r f u n c t i o n v a l u e e n c o u n t e r e d ' —П р О И З О Ш
л о п ер п о л н ен и в а л а и н те гр и р о в а н и я Н ап р и м ер му
е п р
, п р
и в ы ч и слен и .
и и н ет г р а н д
и и н ет г р и р о в а н и
ю о с б е н н о с ьт
, п о ортез к
» fun = inline('х.^- . О ' Э )
и н фу к ц и
а в о в н ртеун н е
й то ч к
-
е и н етр
-
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML у = х~ 0'9, и м ею щ е й и н ет г р и р е у -
у [0,1] ;
» I = quad (fun, 0, 1, le- 7) Warning: Minimum step size reached; singularity possible. > In quad at 88 I = 9.8955
в к о м а н дн о м ож н ог
о ш аг
е окн о в ы в о ид с т а и н те г р и р о в а н и я
я с о б щ ен и , п ри ч е
е о од с и т ж е н и м е дл а с т
я вы во
и м и н и м аль н д о воз м ожн о
о воз й ос
-
268
аЧс т ь
б ен о с т и п о д ы н те г р а л ь н о в о ж а д се т я н о м ер о л о к п р еуд ж едн и ю
й нфу к ц и и фа й л - н фу к ц и
м с рт о к
II. Вчиы с лени я
zyxwvut
и пр о г ам м и р о вани е
. Д и а гн о с ит ч ес к о
е с о б щ ен и и quad, в ы п о л н ен и
е соп ро й п ри в е
е к о т р о
-
.
О ч е в и нд о , ч т о п о лчуен н ы й о вт е т 9.8955 н е со втес у т з адн н о й то ч н о ст и — о б р а щ ен и е к quadi атк ж е н е учлшу и т с и а уц т и ю . П р и ч и н а з ак л ю ч ает с я в м еотадх , р еа л и з о в а н н ы х в MATLAB лд я в ы ч и слен и я о п р е дл н н ы х и н те г р а л о в . Чи с л ен н о е и н етгр и р о в а н и е фн у к ц и й с о с о б ен н о сятм и м ож е т бы т ь о сн о в ан о н а к в а др утн ы х ф о р м л уа х , з ул ы к о т р ы х н е яв ляю ст я гр а н и ц а м и и н ет р в а л , и л и н а к в ард утн ы х ф о р м л ау х с в есо в й н фу к ц и е й дл я вы елд н и я о с б е н н о с ит . Т а к о й а л го р и т м в ы с м о ж ет е з а п р о гр а м и р о в а т ь сам о с от я е л ь н о п осл е ч ен т и я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ав ыг л 7, п о св ящ ен н о й к о н с рт к у ц и я м яз ы к а п ро 8 р а с м о рт ен о н ап и сан и е с о б вт е н н ы х гр а м и р о в а н и я MATLAB. В авег л фа й л - н фу к ц и й лд я в ы ч и с л е н и я о п р е дл н н ы х и н ет г р а л о в н а осн ов е рд г и у х к в а рд у т н ы х фо р м лу . П осл н о с ть н фу к ц и о с б е н н о с ьт
е вы вод а п р еу д ж е дн и я о то м , ч т о н фу кц и я м ож е т и м ет ь о с б ен , в ы ч и слен и я п р о д л ж а ю тс я . П о п р о б йу т е вы ч и сли т ь и н ет г р а л о т и у = I/ х п о ортез к у [0,1], н а к о т р о м он а и ме т н е и н е т г р и р е му ю .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
^ Пр
Пр и м е ча н и и и н ргеит ован и
м ы е ур об ч т о т быромнетсюя щ си х г о пк тромжеу
и с лч еы В н
е ^] и нки далге
й раз ры в ы н а п ы о д н р е в ал т
) и н рвеа т
х н цку ф и
и м о н т н о ст
й (тип я се у дел я бы л а к л га о д й й та к ж е воз м жн и п ыод н ргаельт о
х итне рагл о
в
л и н р г е т о в ан и х н цку ф и я н цк у фи
а н а ук тчса
е дынйов
а |л : ; ил и июме щ и т раз би ват . Вы нчиелс о пр и раз би не и
х и нриге т ь н а чтса е и н р гае л о т и ин до хс й фн укц и
В MATLAB о п р едл н а н фу к ц и я dbiquad лд я п р и б л и ж ен н о г е в ы ч и слен и я о п р е дл н н ы вд о й н ы х и н те г р а л о в . К а к и в счлау е с лу д т н ап и сат ь фа й л - н фу к ц и ю лд я в ы ч и с л е н и я п о д ы н те г р а л ь н о г ж ен и я . Н а й ди т е з н ач ен и е и н ет г р а л а
и так
, в -
.
о в ы ч и с л ен и х и н те г р а л о в
я , о вы ра
-
1 71
J J (е х sin у + е х cos у I dxdy .zyxwvutsrqponmlkjihgfedcbaZYXWV 0- я
Ф ну к ц и п р и в ед
я fin t 2 до л ж н н в л и сит н г
а с о ед р ж а т е 6.6.
ь в д а в о нх д ы
х а р мг у е н т
а х и у , е е етк с
т
л ав Г
6. М е т ыо д
вчиы с лени й
269 zyxwvutsrqp
в MATLAB
Л ист ин г 6.6. Ф а йл - ицянку ф , ичвысалщюя я пнтоыд е гра л нуь ю фицнку ! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ю zyxwvutsrqponmlk
function f = fint2(x, у ) f = exp(x).*sin(y).Л 2 + exp(- x).*cos(у). Л 2;
^
П р и м е ча н и
т с Ве м
о фй-ал н цкуиф
Ф ну к ц и м о ч у е сь т в то р ы м
е ^Д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC и мнжо
о и пс оьлз вта
ь ан о и мн ы
е ил и inline- н цкуфи
.
я dbiquad и м е т п я т ь в о хн д ы х а р г м у е н от в , п р и е е в ы з о в е н е о б х ид , ч т о п ерв ы м и з а д ю ст я п р е дл ы в н р т уе н н е г о и н ет г р а л а п о zyxwvutsrqponmlkjih х, а и — в н еш н ег о п о у: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
» dbiquad(@fint2, - pi, pi, 0, 1) ans = 23.0977 Д о п о л н и те л ь н ы м ш еы с т м п а р м е тр о м м ож н о з адт ь от ч н о с т ь в ы ч и с л ен и я и н ет г р а л . П о ск о ль к у в dbiquad р е а л и з о в а н ы в дм у е р н ы е к в а д р ут н ы е ф о р м л уы , о с н о в а н н ы е н а о нд о м е р н ы х , т о п р и в ы ч и слен и и дв о й н о г о и н ет гр а л а dbiquad е у З Ь Л ОП СИ т quad. ЕСЛ И сьедм ы м а р мгу е н от м куа з т ь 'q u a d l 1 , т о бед у т п р и м ен яьт с я со втесюу щ и й а л го р и т м » format long » dbiquad(@fint2, - pi, pi, 0, 1, 1.0e- 012, 'quadl1) ans = 23.09747871451549 В сч л ау с о к р а ит
е г л а кд и ь в р ем
х п о ыд н е т г р а л ь н ы я с ч еа т .
ис л ч е ы Вн В да н н о ци , з ав и сящ е н и м п р едл о м
т н И е раг л ы
х н фу к ц и
е неот ркы м р а з де л
х итне рагл о
е раз обран й о т п а р м е тр о в .
, за висщя
о н ес к о л ь к , и в ы ч и слен и
т н а о х ид т и п а р м е тр о , к о т р а
т
в о п р и м ер о в е и н ет г р а л
е о т па р м е т р
Ф ну к ц и и quad и quadl п о з в о л яю о т п а р м е тр о в . П р и ем ы п е р адч f zero. О п и ш е м т у в о з м о ж н о с ть п о с лн е д й в ер с и и п ак ет . рмАгу ен атм
е 'qu ad l 1 п о з в о л яе
й з адн и
: и н те гр и р о в а н и а с п ер м ен н ы
е н уф к м верх
-
а ь з н а ч ен и я о с ат л с и нф у к ц и
я и н те гр а л о в , з ав и сящ и в т е ж е , ч т о и лд я нфу к ц и ь н е до к м у е н и т р о в а н н о , в ы ч и сляю щ е й п о ыд н е т
х и й в -
270
аЧс т ь
рт а л ь н о е в ы р аж ен и е н о и вс е п а р м е тр ы чи н а я с ш есот г
, до л ж н . З н ач ен и
II. Вчиы с лени я
а бы т ь н е то л ь к о п ер м ен н а я п а р м е тр о в к у а з ы в а ю ст а quad и л и quadi. В ы ч и сли т
о а р гм у е н т
zyxwvuts
и пр о г ам м и р о вани е
я и н те г р и р о в а н и я , я ч ер з з а п яю у т , н а е и н ет г р а л zyxwvutsrqponmlkjihgfedcb
+ р 2 sin xjdxzyxwvutsrqponmlkjihgfedcbaZYXWVU
- l п р и з н ач ен и я Н ь ю то н а —Ко те с Т ек с з н а ч ен и
х п а р м е тр о
в р х = 22.5, р 2 = - 5.9 п о к в а др утн ы м вы бор м ш аг .
а с ав от м аит ч ес к и
т н фу к ц и
и fparam, з ав и сящ е е п о ды н те гр а л ь н о
й нф у к ц и
г 6.7. Па р м е т р иеч с к
i Л и с т и н
й о т х ет р , п ри вед
и за дн
а р г м у е н от в
я фуиц нк
м фо р м л ау
м
, к о т р а я в ы ч и с л яе т е 6.7.zyxwvutsrqponmlkjihgfedc
н в л и сит н г я
fu n c t i o n z = fp a r a m ( x, P a r l , P ar2) z = P a r l . *x . / 4 2 + P a r 2 . *s i n ( x ) ;
Н а й ди т в о ид с т
е з н а ч ен и я а н а л о ги ч н о
е и н етгр а л
а п р и п о м щ и quad, и с п о л ь з о в а н и е quadi п р о и з .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
- I, 1, l.Oe- 05, 1, 22.5, - 5.9) » q = quad(@fparam,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA q = . 15.00000005742834 П я ыт й п а р м е тр , р а в н ы й е ид н и ц е , п о сатв ле н лд я в ы в о д а в к о м а н дн о е о к н та б л и ц ы с и н фо р м а ц и е й о о дх е р ек ус и в н о г о а л г о р и тм а и н те г р и р о в а н и я Е сл и н жу о п о лч у и т ь то л ь к о з н ач ен и е и н ет г р а л , т о п яыт й п ар м ет р од л же н бы т ь н л е ум . З а м еьт , ч т о сле и п р о п суит ь э от т п а р м е т р , т о п о яв и ст с о б щ ен и е о б ош и бке , т . к . нфу кц и я fparam п р едп о л а г е т н али ч и е рте в о х нд ы х а р г м у е н то в . И та к , п р и в ы ч и слен и и и н те г р а л , з а в и с ящ ег о о т па р а м е тр о в , и х еслуд т к у а з ы в а ть , н а ч и н а я с ш е с от г о а р гм у е н т а quad и л quadi. Т ак ж е лд я в ы ч и с л е н и и сп о ль з о в ан а а н о н и м н а » P arl = 22.5;
я и н те г р а л я фну к ц и я
»
Р аг
»
q = q u a d ( @( x) Р а г 1 . * х .
, з ав и с ящ ег :
о о т п а р м е тр о в
, м ож е
о . я х и
т бы т
2 = - 5 . 9 ;
ь
л
2 + P a r 2 . * s i n ( x ) ,
- 1,
е в л о ж ен н у
ю н фу к ц и
1,
1.0е- 05 )
q = 15
В к а ч е с вт з адч и
е пу р а ж н ен и .
я п р и м ен и т
ю лд
я р еш ен и
я э от
й
л ав Г
6. М е т ыо д
вчиы с лени й в
т н Ие р а г л
ы с пе р м е ны
И н те г р а нф у к ц и ю
271 zyxwvutsr
MATLAB
м ве инрх
л с п ер м ен ы , н а п р и м е
м пре д л о
м zyxwvutsrqponmlkjihgfedcbaZYXW
м в е рн х и м п р е дл о м п р е сд а т в л я е т соб й н ек о т р у ю р zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA у
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
F (У ) ~ I e Л ( s*n x- cosx)dx.zyxwvutsrqponmlkjihgfedcbaZYXWVUT о Дл
дл
я в ы ч и с л ен и я п о ды н е т г р а л ь н о л д я к а ж од г г е 6.8, п ри ч е
я та к о г о з н ач ен и м Fy являсет
I Л ис т ин
г 6.8. Ф а йл - ицякну ф
*
•
f
u
f
f
f
n
c
=
u
о и н ет г р а л й нфу к ц и я у . Т ек ст я осн овн о
n
=
Т еп р з ад гр а л
c
t
i
o
n
q
u
a
d
t
i
o
n
e
x
p
(
•
"'
а п р и с е дт , и Fy — к о т р а ы рт е бму ы й фну к ц и ей
, вичсаылщюя
я н ап и сат
ь в д е нф у к ц и я н а о х ид т з н ач ен и х н фу к ц и й п р и в е дн , a fin t — п онфду к ц и ей
я знаеч и
е и тн е р г а л
-
f
l
(
x
)
f
.
*
f
а
j
-
=
@
: fin t — я и н те г р а л а ы в л и с ит н .zyxwvutsrqponmlk
F
y
(
n
t
,
f
i
n
t
(
s
i
n
(
x
=
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
y
i
;
)
0
,
(
)
y
x
,
1
.
0
e
-
0
9
o
s
(
x
)
)
;
)
;
)
-
ь м ож н о в ы ч и сли т в ег о в к а ч е с в т е а р мг у е н т а о т в ернх ег о п р е дл
c
ь и н ет г р а а о щ с у е св т л я
л п р и лю бо а Fy. П о с рт о ен и я пр
м з н а ч ен и е гр а фи к и п о м щ
и в е рн х е г а з ав и си м о ст и fpiot
о п р едл а
, и и н ет
-
» fplot(@Fy, [0, pi})
ло м иПн Т е кщ у и ет р п о л я ц и г о дх ву
ы и итнеирлпоц я й р а з ед и пр - и трмех р н ы
л п о с в ящ е и п о с рт е н и
н о п ер ац и я и п оли н ом а е та б л и ч н ы
Оп е р а иц
и с пол инм а м
м У н о еж н и е
, де л е ни
Н ап ом н и м э ф и ц и е н от з н ач ен и
я м с п оли н ом а , н аи члуш и е да н н ы е .
и и р еш ен и м образ о
ю з адч
и ин
м п ри бли ж аю щ е
и , с л оеж ни
е и тианч ыв
, ч т о п о л и н о м ы в MATLAB п р есдатв ляю ст в (з адн и е п оли н ом а , н оахж едн и е в се й о п и с а н о в р.азд "Вине лисч ы вхес кйенро
е я в в и д е в е к то р а ко х ег о к о р н е й и в ы ч и слен и е а" пмион ло дйаон г)авы л .
-
272
аЧс т ь
м У н о ж ен и лд я в ы ч и слен и
е вд у
х п оли н ом о я п р о и з в едн и
II. Вчиы с лени я
zyxwvuts
и прогам м и р о вани е
в о щ с у е св т л я я п р и п ом ощ и conv. Н а п р и м е р , я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB s(x) п о л и н о м о в
(р х) = х 5 + х 3 + 1 и q(x) = x2 +2х + 3zyxwvutsrqponmlkjihgfedcbaZYX
еуделс отнемугра
т т а д з о с
ь вд а р о т к е в в conv:
»
р = [ 1 0 1 0
»
q = [ 1 2
»
s = c o n v ( p , q )
в и т а в о з ь л о п с и
а и х отнеицфэк
ь и х вв т с е ч а к
е
0 1 ] ;
3];
s = 1
2
В р е з л у ь ат от р у s
4
2
е п о лч у а е с т
3
1
я п оли н о
2
3
м с ье д м о
й се пт н и
, с о вт ес юу щ и
й в ек
-
s(x) = x7 +2х 6 +4х 5 +2х 4 +3х 3 +х 2 +2х + 3 . Ф ну к ц и я deconv ощсу есвтля с те я с дмву я в ы о х дн ы м
т е лд н и
е п оли н ом о и — ч аснт ы
и а р мг у е н ат м
в с о с та к о м м и о с ат к о
. О н а в ы з ы в а м о т дел н и я
:
» [d, r] = deconv(p, q) d = 1 2 2 2zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA =
т
0
Р аз м е и з р аз м ер о
0
р в е к от р а
1 0 -
о к о э фи ц и е н т
ы о сатк х е л ди м о
ь м ак си м аль н ы
ь н овы
В л и с ит н г е 6.9 п р и в ед м су ы п о л и н о м о в
5
, соювстеу щ и
я и в ы ч и ат н и я п оли н ом о е в р ем я и сп о ль з о в ан и й ес п т н и п р и в ед т к . Е сл и в ы и з ч уи л н ап и сан и е со бсвтен н о т боль ш ог о т в е к от р ы р
2. С о вт ес юу щ и м ак си м аль н о м 3. С л о ж и т
0 -
, соердж ащ ег в в ек от р в
Д л я с л о ж ен и ц и . В т о ж н ом о в раз н о раз н ы х р аз м ер о в нф у к ц и й , т о н ом о в н е п р е сд а т в л я е котры м с о вт ес юу 1. В ы б р а т
0
й р а з м е м образ о у р аз м ер у
.
е в е к то р ы
. н е тк с
.
в в е з н ак а ош и бке и работ й н фу к ц и р т ад у и q, до с та о ч н
р и з дву
, рав е у п о ли н о м
н м ак си м аль н о м у и ег о едли тю
MATLAB н е т с п ец и аль н о й н уф к "+ " дл я н оахж едн и я м су ы п о ли , т . к . н ель з я с к л а ыд в а т ь в е к от р у с м ас и в ам и и с о з ад н и е фа й л и дл я н оахж едн и я мсу ы п о ли . лАго р и т м с л о ж ен и я п оли н ом ов о п рост , рт еб уст я : х в е к то р о в
у . ы ,
.
м п р ео бр аз о в ат
ь к а ж ыд
й и з в ду
т фа й л - н фу к ц и
и poiysum, н оаяхдщ е
х в е к то р о
й з н ач ен и
в к
е
л ав Г
6. М е т ыо д
вчиы с лени й
в MATLAB
273
Л ис т ин г 6.9. Ф а йл - иц кн фу я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA p o lysum , вичсаылщюя я сму м у пол инм о в zyxwvutsrqponmlkj \ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA function s = polysum(p, q) % ви н е л с и ч ы
е см у
% ни н е д ж о х а
е не ш ь л о б и а
ы пв о м н и л о
, зы н а д й и з ди л
х вм а р о т к е
н вы н д о х
и ко т н е и ц ф э о
х во р т к е
в
в
maxlen = max(length(p), length(q)); % си н а д з о
е в ыньлетагом пс
% ии щ ю е м
х во р т к е
х ны в е л у
е эт н е м л
в pi и ql дн и л
ы maxlen,
ы
pi = zeros(I, maxlen); ql = zeros(1, maxlen); % пи н а в о з а р б о е р
е иы н д о х с
% рр е м з а
х во р т к е
в к ва р о т к е
м ог о в к а н и д
о
а maxlen
pi(maxlen - length(p) + l:maxlen) = р ; ql(maxlen - length(q) + limaxlen) = q; % ви н е л с и ч ы
е ко т н е и ц ф э о
% по м н и л о
в па м о н и л о
, яс о г е щ ю я л в
я со м у
й иы н д о х с
х
в
s = pi + ql;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Т еп ер ь л д я н о а хж е д н и polysum.
я м су
ы и р а з н о с т
и п оли н ом о
в е су л д
т и сп оль з оват
ь
» s = polysum(p, q) 1 0 1 1 » d = polysum (p, - q) d 1 0 1 -
ис л ч е ы Вн
2
4
1 -
е ын дорпивз
2 -
х
Ф ну к ц и я p io iyd er п р едн а з н а ч ен о т п оли н ом а , н о и о т п р о и з в едн и poiyder с онд и м а р мг у е н от п р и в о ид т к в ы ч и слен и ю в е к то р »
р =
»
p i = p o i y d e r ( р )
а лд м — в е к то р м а к о э ф и ц и е н от
[ 1 0 1 0 0 1 ] ;
p i = 5
0
2
3
0
0
я в ы ч и с л ен и я и ч а с нт о г
я п р о и з в о дн о х п оли н ом ов о в уд , со втесюу щ и в п р о и з в о дн о
й н е то л ь к о . В ы з о в м п оли н ом у , й п оли н ом а :
274
Дл з о в ат
аЧс т ь
я в ы ч и с л ен и я п р о и з в о дн о ь poiyder с двму
И. Вчиы с лени я
т и сп о ль я п оли н ом о в е с лу д :zyxwvutsrqponmlkjihgfedcbaZYXWVUT
й о т п р о и з в е дн и и а р г м у е н ат м и
я в о х нд ы м
zyxwvu
и пр о г ам м и р о вани е
» р = [10 1 0 0 1]; » q = [12 3]; » pql = poiyder(p, q) pql = 7
Е сл др о б и е ус л д
и н е о б х ди м , ч и сли етл т в ы з в а т
12
20
8
о н ай т и п р о и з в о нд у ь и з н а м е н а ет л ь poiyder с двму
» [n, d] = poiyder (p, q) n = 3 8 16 4 d = 1 4 10 12 П ер в ы й ар мгу ен d — з н а м ен аетл
т п р ез луь ат я п о лч у а ю щ е г о с
9
2
ь котро я в ы о х нд ы м
ю о нт о ш е н и я в ду й ат к ж е я в л ю с т и а р г м у е н ат м и
9 -
2
2 -
в в в и ед , т о
2
9 а с о едр ж и я о нт о ш е н и
т к о э ф и ц и ен т
ы ч и с л и етл я , а в то р й .zyxwvutsrqponmlkjihgfedcbaZ
я п о л и н о м о в
е и с гл аивж н
тн И е р п о л и в а н
х п оли н ом о я п оли н ом ам и :
е
Т абли ч н ы е да н н ы е о ч ен ь ч аст о о д уб н о и н те р п р е ти р о в а т нф у к ц и ю , в ч а с нт о с ит , п о л и н о м и а л ь н у ю ил и котра я н а о рт е з к а х о бласт и о п р е дл н и я равн с е тп н и . ед уБ м раз ли ч ат ь дв а к р и е т р и я п р и б л и ж ен и ваоин,ер лпиотнре п р и к о т р о м а п р о к с и м и р юу щ а та б л и ч н о й в уз л ах , и сиван,е аж г л о с н о в а н н о к р и те р и я , н а п р и м е р , см у ы к в а д р то в о кт л н е н и з адч а о п о с рт о е н и и п о ли н о м и аль н о й и л и к суо ч н о ц и и лд я п р и б л и ж е н и я н ек о т р ы х и д с к р ен т ы х н ы х н фу к ц и й M ATLAB соедр ж и т н фу к ц и и лд с ч л уа е о дн о м ер н ы х , ат к и м н о г м ер н ы х ад н н ы х соб в п р и б л и ж ен и я та б л и ч н ы х нф у к ц и й , п р елдаг ем ы п оли н ом и аль н о е с гл а ж и в а н и е м ео т д м н а и м ен ь ш и
ь к а к н ек о т р у ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP а й н п лс — гл акд у ю нф у к ц и ю , а п оли н ом а м о п р е дл н н о й я та б л и ч н ы х нф у к ц и й : я н фу к ц и я со в п аде т с е н а м и н и м и з ац и и н ек о т р о г о й в уз лах . И та к , в о з н и к а е т п о ли н о м и аль н о й н уф к да н н ы х . Н а б о р в ы ч и с л и ет л ь я р еш ен и я ат к и х з адч , к а к в . Онд и м и з п р о сетй ш и х сп о м M ATLAB, явлсет я х к в а д р а то в .
рП и б л ие ж н
х квард т о
П с ут фи к с и р о в а н н о м ен о
е п о м е т од ь и с е м л у ад
я н фу к ц и й е пс т н
й п р о и з в о ди с т
у наим ешиьн
я да н и лд я п р и б л и ж е н и я п р и п ом щ
а в в и ед
в
та б л . 6.2. П о с рт о ен и е п оли н ом я та б л и ч н о й н фу к ц и и о дн о й п ер и p o iyfit . П ер в ы е дв а е е в о х н д ы е а р уг
а -
л ав Г
6. М е т ыо д
м ен т нф у к ц и
а яв л ю ст
вчиы с лени й в
я в е к от р а м й — ртебму о
, а тр еит
275zyxwvutsrqponm
MATLAB
и с о з н а ч ен и ям й е пс т н ь
и абсц и с ю п оли н ом а и ц Та л б
П ри бли з ь т гр а фи к да й т
с и о р ди н а т та б л и ч н о й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR 6.2. Ф,укн ция
заня д
тицйе лаб
0.1
0.2
0.4
0.5
0.6
0.8
1.2
- 3.5
- 4.8
- 2.1
0.2
0.9
2.3
3.7
е е е п оли н ом а
и ч е вт р о й й а х р к ет р п р и б л и ж ен и й у LSin terp, тек с
, о рт а ж ю щ и е фай л - п р о г ам
, п оят
й и ш оес т . Д л я реш ен и й п р и в ед
т котро
й еп с т н
и и в ы в е ид т е й з адч и со з е 6.10.zyxwvutsrqponm
я эот н в л и сит н г
! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 6.10. Прибле жни е пол инм а м и м е тод м на им е шиьн х в а рк д т о
% зи н е л о п а
е мо в и с а
в дл
я то н ч и л б а
й фи ц к н у
в
; zyxwvutsrq
и
х = [0.1 0.2 0.4 0.5 0.6 0.8 1.2]; у - [- 3.5 - 4.8 - 2.1 0.2 0.9 2.3 3.7]; % во в ы
д гк и ф а р
а то н ч и л б а
plot(х , у , 'к' о % ви н е л с и ч ы
й фи ц к н у
е ко т н е и ц ф э о
% пи щ ю а ж и л б и р
и мм а р е к р а
и
) в по м н и л о
х ту н ч и л б а
в ры н з а
х сй е н п е т
,
ю фи ц к н у
ю п о мд о т е
р 4 = polyfit(х , у , 4); % ни н е д ж о х а
е ко т н е и ц ф э о
в пм о н и л о
а 4- о й сн е п т
р 5 = polyfit(х , у , 5); % ни н е д ж о х а
е ко т н е и ц ф э о
в пм о н и л о
а 5- о й сн е п т
р б = polyfit(х , у , б ) ; % ни н е д ж о х а
е ко т н е и ц ф э о
в пм о н и л о
а б- о
% ко т а р д а в
у ни ш ь н е м и а
х
в
% пи н е о р т с о
е го к и ф а р
в по м н и л о
и и
й сн е п т
и
в
t = 0.1:0.01:1.2; Р 4 = p o l y v a l ( p 4 ,
t);
Р 5 = p o l y v a K p S , t ) ; Р б = p o l y v a l ( p 6 , t ) ; h o l d o n p l o t ( t , P 4 ,
' k - \
legend('ты н ч и л б а title('Пи н е ж и л б и р
В р е з л уь ат б р а ж ен н ы о хр ш и й 10 Зак
t , P 5 , ' k : \
е д' еын а е то н ч и л б а
е в ы п о л н ен и й н а ри с р е з л у ь ат . 130
t , P 6 , ' k - . ' )
f , ' n = 4 ' , ' n = 5 , 'n=6',0)
й фи ц к н у
и пм а о н и л о
я фа й л - н фу к ц и . 6.4. П р и б л и ж ен и т н е в сеагд , бо ле
е м ео т д е то г о
и сн е п т
и LSin terp п о члуаестя м н а и м ен ь ш и , п р и увели ч ен и
и n f )
гр а фи к
, и з о в ад е
х к в а д р от и еп с т н
и воз м ожн
о
т
аЧс т ь
276 е п р и б ли ж ен и я е п оли н о м ш ео с т й я котрог о со в п адю е та к о е п р и б л и ж ен и й р ег с и и пр и и та б л и ч н о з адн н о о п е р о хд а о т о дн о г
ш д у не х и ч с ла у з н а ч ен и м не м и аль н о ро в ан и п лав н о г
и н е ж и лб р П
II. Вчиы с лени я
zyxwvuts
и пр о г ам м и р о вани е
, к а к п р о и сохид т , н а п р и м ер , п р и п = б . В н аш е м еп с т н и яв л с ет я и н ет р п о л я ц и о н н ы м п оли н ом ом , т с о з н а ч ен и ям и та б л и ч н о й фн у к ц и . Те м н е е и с п о л ь з ес т уя , н а п р и м ер , дл я п о с рт о ен и я п о ли н о м о ед л и р о в а н и и ад н н ы х . О б ы ч н о , п р и и н етр п о ли й н фу к ц и и п р и м ен яю ст я сп лай н ы л д я п о ч л уе н и я .zyxwvutsrqponmlkjihgfedcbaZYXWVUTS о з н а ч ен и я к дргоум
е о н ч и бл а т
й иц кн фу
и пмони ла
и снеп т
и п
30 25
/
20
t 9 t t
15 / i
10
\ i i i i
#
\ i i i i i 1
t 1
/
50 Г О
Рис
е дына
е
n=4 n=5
-5 10 0
ы н ч и бл а т
0.2
. 6.4. П р и бли ж ен и
1 0.6
0.4
е п о л и н о м а
и п о модте
0.8
у н а и м ен ь ш и
1.2
1
х к в а др то
1 4
в (poiyfit)
П ри бли ж ен и е та б л и ч н ы х ф ну к ц и й п о м е от д у н аи м ен ь ш и х к в а др а то в яв л я е тс я п р о с те й ш е й з адч е й п о дб о р а п а р а м е тр о в . Б о л е е де та л ь н о э то т к лас с з ад ч раз обра н в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB ав ег л 19, п о с в я щ е н н о й оп и сан и ю Curve Fitting Toolbox.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
я спл а йн м
т н И е и р п ол ц я С ам ы сп лай н о н л юу ) равн ы
м п р о с ыт м н л уе в о г , п р и к о т р о м б л и ж а й ш ем
м сп о с бо о п о р я дк й з н ач ен и у з н ач ен и ю
и м и н ет р п о л я ц и а (н а к аж од е в к а ж од , з а д н н о м
и я в л се т я ап ро к си м ац и м ч уа ск т е е пс т н ь п оли н ом й п р о м е ж от у ч н о й то ч к е п р и н и м а е ст у в та б л и ц е . В р ез луь ат
я ад н н ы а равн
х а я
е да н н ы
е
л ав Г
6. М е т ыо д
п р и б л и ж а ю ст ц и й е я л п от р е неи ю ст п о чл у е н и и кс м п о ль з о в ан и от ч е к ли рован и я
и с о н ед и я лом ан о си.айнм пл , в
вчиы с лени й
277zyxwvutsrqpo
в MATLAB
я пс у т е н ч а о т по синм дес о х от ч е к о рт е з к а м й ли н и е й я бо ле е г л а кд о й Вс е э т и я котро й е су л д котры х в ы ч и с л яю ст :
й н фу к ц и е й т.к чамо (сп лай н фу к ц и сп о с б
• ' n e a r e st ' — п р и б ли ж ен и • ' l i n e a r ' — ли н ей н а сп ос б и н те р п о л и р о в а н и
, а Лийеаня и п рям ы х н п ер в о г о и се улд ы р еали з о в ан т з адт ь к о р ди н а т я з н а ч ен и я
сам
е п о сонсед и
м э лем н атм
я и н ет р п о л я ц и
• ' pch ip — и н етр п о л яц и
и с п л а й н а м и
я кбиу ч еск и м
х от ч к а х х сп ос бо
I НИ ТСЛ ќ
% зи н е л о п а
е мо в и с а
и с п л а й н а м и я сп лай н т е фдк н с о р ха н я е
н и ме й сп лай
м i n t e r p i явлсет . Т ек с т фа й л - п р о г а м в и н ет р п о л и р о в а н и
Г 6 . 1 1 . Ф а Й Л - п р о г р а м м
, сел
я в е к от
.
а м ож е т бы т ь раз ры в т вда ) в о лт и ч и т ч у а ск т и м он отн
я то н ч и л б а
я п ри вед
й фи ц к н у
и
у = [- 3.5 - 4.8 - 2.1 0.2 0.9 2.3 3.7]; % во в ы
д гк и ф а р
а то н ч и л б а
% зи н а д
е пы н ч о т у ж е м о р
й фи ц к н у х те ч о
е со т а ч н е п у т
и
)
xi = [х(1):0.01:х(length(x))] % ви н е л с и ч ы
и мм а р е к р а к дл
я и и наворилопретн
я
;
й фи ц к н у
и в пы н ч о т у ж е м о р
х та к ч о
х
ynear = interpi(х , у , xi, 'nearest'); % ви н е л с и ч ы
е к- о н ч о с уо н й е н и л
й фи ц к н у
и в пы н ч о т у ж е м о р
l у in e = interpi(x, у , xi, 'linear'); % мнжо % ви н е л с и ч ы
е кг о к с е ч и б у
о сн й а л п
а в пы н ч о т у ж е м о р
yspline = interpi(x, у , xi, 'spline'); hold on
-
; zyxwvutsr ;
х = [0.1 0.2 0.4 0.5 0.6 0.8 1.2];
plot(x, у , 'к' о
е о т
р з н а ч ен и й и н ет р п о л я н т а в ы in terpidem лд я ср ав н ен и я н в ли сит н г е 6.11.zyxwvutsrqponmlkjihgfed
а i n t e r p i d e m
в дл
и
;
и э р м и от в ы м
П р и и сп о ль з о в ан и и pchip в то р а я п р о и з в о нд а н а (в э от м чслау е го в о р ят , ч т о сп лай sp lin e. О дн а к о кб и у ч е с к и й э р м и от в ы н о ст и и осндх ы х ад н н ы х . м а р мг у е н о т
я п о му о л ч а н и ю
;
я кбиу ч еск и м
f
;
я (п ри м ен ясет я н е з а д н )
• ' sp li n e ' — и н етр п о ляц и
В ы о н хд ы п р о м е ж о т уч н ы раз ли ч н ы
о п р и б л и ж ен и е н а з ы в а е ст я zyxwvutsrqponmlk и -н иция лпотнре о с н о в а н а н а соиед — та б л и ч н ы е ад н н ы е п ри бли ж а п о р я дк а е дф к т а е ди н и ц а ) . Д л я т п р и м ен ят ь ицию я лпотнре -екичуб ы в н фу к ц и и i n t e r p i , лд я и с ы абсц и с с п р о м е ж от у ч н ы х и н ет р п о л я н ат , и сп о с б и н ет р п о -
х та к ч о о н е ут а в ы з а к х та к ч о
х
х
ь 'linear'
аЧс т ь
278
II. Вчиы с лени я
и пр о г ам м и р о вани е
zyxwvut
%zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA пи н е о р т с о е го к и ф а р в ио т н я л о п р е т н в 1
plot(xi, ynear, 'k , xi, yline, 'k:', xi, yspline, 'k- .') title('Ры н ч и л з а
е сб о с б п
ы ии ц я л о п р е т н
и ф' йицкну
)
xlabeK '\itx' ) ylabeK '\ity') legend('та н ч и л б а
я ф' яицкну
, 'п о си н д е с о 1
'ла н й е н и
1
м эа т н е м л
я (linear) , 'ки к с е ч и б у
м (nearest) , ... 1
ы (spline) ,4)zyxwvutsrqponmlkjihgfedc
е сн й а л п
В ы п о л н ен и е in terpidem п р и в о ид т к п о яв лен и ю г р а ф и к а , и з о б р а ж ен н о г о н а р и с . 6.5, к о т р ы й н а г л я нд о ед м о н с р т и р е у т сп ос б ы и н те р п о л я ц и . Д о б а в ь т е с а м о с т яел ь н о гр а фи к к б уи ч е с к о г о э р м и то в а сп лай н а , ука з а в 'p ch ip 1 в к а ч е св т е ч е вт р от г о а р мгу ен т а фн у кц и и i n t e r p i .zyxwvutsrqponmlkjihgfedcbaZYXWVU
ы н чи л з а Р
е сопс б
ы иц я лоп ире тн
и иц к н фу
й
УМ . zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA у
3
t
2 1 ^ 0 -1 г
-2 О а н чи б л а т я иц к фун я >3 п о с осинде м эа метлн м (nearest) а нй е и л я (linear) - 4 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA •
%
• • •• '
б еис у ч к
0
0.2
0.4 0.6
. 6.5. Ризнлчаы
MATLAB п о з в о л яе вд м у е р н ы е и м н о г м ер н ы
т н И е р п ои л ц я И н те р п о л я ц и р ем н н ы х
е сбосп
ы аипцскмаор
е да н н ы е
.
т и н те р п о л и р о в а т
я вд м у е р н ы , п р и б л и ж аю щ е
.
•
/
' •
1 .
х и м онмг е рын х ад н н ы й з адн н ы
.
.
1.2 •
• • •.
••
и фнцки у ь н е то л ь к
я дмув е ырн
ы (spline)
0.8 > С
с иР
е снй а лп
е в от ч к а
•
•
.
•
•
-
•
1.4 ;
.
•
•
•
•
•
•
.: :
=
zyxwvutsrqponmlkjihgfed
й (interpi)
о о дн о м е р н ы е
х дыан
х с в яз а н
:
, н о атк ж
е
х
а с п о с рт е н и е м н фу к ц и и дву х пе х (х / :, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR yt) з н ач ен и я zt. Д л я и н -
л ав Г
6. М е т ыо д
вчиы с лени й
я в мд у е р н ы й meshgrid и в о с п о л ь з о в аьт с в и н те р п о л и р о в а н и я
те р п о л и р о в а н и к о м а н до сп ос бо м ен ат
279 zyxwvutsrqp
в MATLAB
х ад н н ы
х е у слд т з адт ь п р о м е ж от уч н ы я in t erp 2, к о т р а я р еал и з еу и о т з н а ч ен и я п о с л ен д е г
, в з ав и си м о ст
е з ул т о ид
ы н и з
о а р гу
-
:
• • n e a r e st ' — и н етр п о л яц и
я п о соснед и
1
• ' b i l i n e a r и л и ' l i n e a r ' — би ли н ей н а му о л ч а н и ю , елс и сп о с б и н етр п о л и р о в а н и • ' bic u bic ' и л
м э л ем н атм
;
я и н етр п о л яц и я н е з а д н )
;
и 'cubic'—и н т е р п о л я ц и
я би кбиу ч еск и м
я кбиу ч ески м
и с п л а й н а м и
• ' sp l i n e ' — и н етр п о ляц и
я (п ри м ен ясет и с п л а й н а м и
я п о ;
.zyxwvutsrqponmlkjihgfedcbaZYX
\ ^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П р и м е ча н и е ^Д й в ча улс
Д л я н е к ро с и у я вы чинелс я и с ющм я н е и з м и,ант мдрко п о ль ю з с яу т , свнест о ил и ' *sp li n e ' . С р ав н ен и бы т ро в мд у е р н ы п ер м ен н ы х
е рzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK ищх ятаосвн к е чт о с моонт х ба л и т ч н ы м ан д ы м , ис ы ' ^ n e a r e st ' , ' *l i n e a r 1 , ' *c u bic '
ю ву щ т с иве о т с , амне утгр
е п ер в ы
ь о щс у е св т л н й п р и в ед
; Л ист ин
х рте х в ы ш еп р еч и с л ен ы х сп ос бо в и н ет р п о л я ц и и м ож е т о п р и п ом щ и фа й л - п р о г а м ы interp2dem, етк с т кот н в ли ст н г е 6.12. Д л я и з беж ан и я уот м и етл ь н о г о в од а та б л и ц ы х ад н н ы х о н и ген ер и рюу ст я п р и п о м щ и н ек о т р о й фну к ц и и дву х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA г 6.12. Ф а йл - прога м м
% ги н а в о р и е н
е зи н е ч а н
а i n t e r p 2 d e m й то н ч и л б а
й фи ц к н у
[X, Y] = meshgrid(O:0.2:1); Z = sin(3*pi*X) .*sin(3*pi*Y) .*е( рх - . Х % ви ц а з и л а у з и
я то н ч и л б а
й фи ц к н у
izyxwvutsr
л
и 2 - Y. /4 2);
и
subplot(2,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 2, 1) surf(X, Y, Z) title('та н ч и л б а я ф' яицкну ) % си н а д з о е ск т е и дл я пы н ч о т у ж е м о р [Xi, Yi] = meshgrid(0:0.02:1) ,ќ
х зи н е ч а н
й
% ии ц я л о п р е т н я п о си н д е с о м зя и н е ч а н м ZiNear = interp2(X, Y, Z, Xi, Yi, 'nearest'); % ба н й е н и л я ии ц я л о п р е т н я (мн ж о о н е ут а в ы з а к ь 'bilinear') ZiBiLin = interp2(X, Y, Z, Xi, Yi, 'bilinear'); % ба к с е ч и б у к и я ии ц я л о п р е т н я ZiBiCub = interp2(X, Y, Z, Xi, Yi, 'bicubic');
280
//. Вчиы с лени я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ и прогам м и р о вани е zyxwvut
аЧс т ь
%zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA во в ы д о т а ь л у з е р в subplot(2, 2, 2) surf(Xi, Yi, ZiNear) title ('п о и н д е с о
1
м я и н е ч а н з
м (near) )
subplot(2, 2, 3) surf(Xi, Yi, ZiBiLin) title('ба н й е н и л
я (bilinear)')
i
subplot(2, 2, 4) surf(Xi, Yi, ZiBiCub)
я (bicubic)')zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
title('ба к с е ч и б у к и
Н а ри с . 6.6 п р и в едн иф к и о тр а ж а ю ли ч н ы м и с п о с б а м и
ы гр а фи к и
, п очлуен н ы е п р и п ом щ и interp2dem. Г ра е и н етр п о л и рю у щ и х нф у к ц и й , п о члуен н ы х раз .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
т п о в е дн и
а н чи лб а т
я и ц к н фу
я
п о си н дсео
м яи зне ч ан
м (р о щ
1
0
0
•. 1
1 1 • • '• • ,
о" о а нй е ни либ
я (bilinear)
/киб а ске чиб
1 ь
1
0
0
- 1,
•1 I
0 0 zyxwvutsrqponmlkjihgfedcbaZYXWV
0 0
Р ис
п ри бли ж ен и
й (bicubic)
. 6.6. Р а з л и ч н ы
я д в ум е р н ы
е сп о с о б х д а н н ы
ы х ( in t erp 2)
Дл я ап ро к си м ац и и трмех р н ы х ад н н ы х ж с ли у т н фу к ц и я in t e r p 3, дл я м н о го м ер н ы х — in t erp n . С о з да н и е м н о г м ер н ы х со е т к о щс у е св т л я я н уф к ц и е й n dgrid. М н о г м е р н о е п р и б л и ж ен и е п р о и з в о ид ст я а н а л о ги ч н о вм д у е р н ом у , п о др б н е е о н е м м ожн о зу н ат ь и з сп рав о ч н о й с и ем т ы п о M ATLAB, н абра в в р а з дел е Index и м я фн у к ц и и in t erp n .
л ав Г
6. М е т ыо д
вчиы с лени й
281 zyxwvutsrqpo
в MATLAB
В эот м р аз едл е раз обран ы сам ы е п р о с ыт е сп о с б ы п р и б л и ж ен и я та б л и ч н ы х н фу к ц и й сп лай н ам и р а з л и ч н ы х п о р я дк о в . П р и м ен ен и ю с п л ай н о в п о св ящ е н 18).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB Spline ToolboxzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м гаву л
З адч
и л иен йо
й аелгрб
ы
П оск оль к у н аз в ан и е MATLAB явслет (м арт и ч н а я л а б о р а то р и я ) , т о есвтн MATLAB лд я з ад ч л и н ей н о й алгебр ы с п ец и а л ь н ы е н фу к ц и и MATLAB п о з в о л яю в е к то р о в , о б р а щ а т ь м а рт и ц ы , р еш а т ь ч и сл е п е р о п р е дл н н ы е и н е од п р е д л н н ы м и ) , н аохид т ь с о б вт е н н ы е ч и сл а и в е к от р ы ч и с л ят ь н фу к ц и и м а рт и ц . В п р и ло ж ен и я ж ен ы е м а рт и ц ы (соедр ж ащ и е боль ш о э ф е к ит в н о г о р еш ен и я з ад ч с р аз р еж н н ы м ц и аль н ы е а л г о р и тм ы , м н о ги е и з к о т р ы г о ч от б ы о с з н ан н о и сп о ль з о в ат ь б о г а ыт MATLAB лд я р еш ен и я з ад ч л и н ей н о м и , н ео б хди м о , к а к м и н и м у , о б л а д т не тх и ч е с к о г о взу а (р аз р еж н н ы м м а рт и ц а
м о т Matrix Laboratory , ч т о в о з м о ж н о с т и о ш и роки . Д е й с тв и те л ь н о , т в ы ч и с л ят ь н орм ы м а рт и ц и с и ем т ы л и н ей н ы х руа в н е н и й , в от м е (с п р ям огу л ь н ы м и м а рт и ц а , фа к то р и з о в а т ь м а тр и ц ы , в ы х о ч ен ь ч аст о в с рт е ч а ю ст я раз ре е ч и сл о н л ев ы у х э л е м н от в ) . Д л я и м а рт и ц а м и щ с у е ю св т у т сп е х р еали з о в ан ы в M ATLAB. Д л я то е в о з м о ж н о с ит , п р еод сатв л яем ы е й а л ге б р ы с р аз р еж н н ы м и м а рт и ц а ь з н а н и ям и в о б ъ ем е п р о гр а м ы м п о с в ящ ен а гав л 17).
Дан н ы й р а з де л о п и сы в ае е т MATLAB лд я реш ен и л и ет л й , н оажхенд и я с о б втен ы
е в о з м о ж н о с ит
и сС т е м о б р а е щ ни Зн а а л ге б р а и ч е с к и сп рава ч аст фе к и т в н ы Р еш ен и ин е
т п р о с е тй ш и я си е т
ы ура енв ий
я с о к р а щ ен и е о п р е дп о л ж и ь т д о с та о ч н
м л и н ей н ы х ч и се
, к о т р ы
х руа в н е н и й л и в е к то р в
я о п р ед
-
.
, опре дл ит е л и е м а т ри
е п р е од с а т в л я , в ы ч и с лен и
,
ц
к о б р а тн о
й кос й ч ер т ы \ п р е нд а з н а ч е н лд я р е ш е н и я си е т м л и н ей н ы х х руа в н ен и й , слев а о т н ег о з а п и с ы в а ест я м а рт и ц а с и с етм ы , а — в ек от р п рав о й ч а с ит . П р и ч е м , к а к м а рт и ц а , ат к и в ек от р п раво й т бы т ь к о м п л ек с н ы м и . MATLAB сам а п о бд и р а е т н аи бо ле е э ф и м о гу й м ое т д и р еш а е т с и ем т у . е си емст
стимес
ы р уа в н е н и лх ийеын
И сп о ль з о в ан и ад ж
е пр В сп рав о ч н о
и та к о
й р а с м о рт е н уавинрей"
е з н а к а \ явлсяет м п рост м п о хд й с и ем т е п р и в ед
о в к а ч е с вт гавы л я сам ы
м п р о с ыт
м сп ос бо ы щ с у е вс т н ы
е воз м ожн н а л го р и т
е п р и м ер
а в р.азд
"Р-еш
2.
м р еш ен и
м р еш ен и я я си е т
е з а р т нд у е н и я м л и н ей н ы
, о дн а к
о .
х р аув
-
282
н ен и й а л го р и т
//. Вчиы с лени я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ и прогам м и р о вани е zyxwvutsr
аЧс т ь
, к о т р ы м о п и с ы в а ест
й ч у и ыт в а е
т ви я ю с ул ед щ и
1. Е сл и м а тр и ц т о п р и м е н я ес т
а к в а д р тн а я сп ец и аль н ы
2. Е сл
а тр е г у о л ь н а я
и м арт и ц
3. Е сл и м а рт и ц т о п р и м е н я ес т
д м а рт и ц м образ ом
ы с и ем т
я и л ен от ч н а й а л го р и т
я с о гр а н и ч ен н о м р еш ен и
, т о и сп о ль зсету
а п е р с ат н о в к а м я м о ид ф к а ц и
и с рт о я м еотд
и м а тр и ц
6. Е сл п о л ь з се т у м а рт и м уен ь ш ен и
и м а рт и ц
е с тр егоу л ь н о
а к в а д р тн а я м е от д Г са у ц п р е дв а р и е т л ь н я з ап о лн ен и
7. Е сл и м а тр и ц лд я QR- фа к от р и з а ц и р еш ен и е с и е мт в ает , р а з р еж н н а
т
я л ен от ч н ы д п о д с та н о в к и
в с в о ид с т
й л е н ыт х м а рт и ц
, .
. я к тр е г у о л ь н о й
,
. в к о м п л ек с н о и н а ди а г о н а л и ь р аз ло ж ен и п о л ж и ет л ь н а
м ч и сло в м п ро , т о в ы з ы в аест я е Хо л е ц к о г . П р и я о п р е дл н н о с т ь й м а рт и ц ы н о а и хд с т я м р е ш а ю ст я вд е си емст ы ме я и со х н д о й с и е мт ы р ау в н е о п ер д р аз л о ж ен и е м Хо л е ц к о г о а срт о к и с от л б ц о в п о а л го р и т я з ап о лн ен и я м н о ж и е тл й и в ы з ы в аест я нфу к ц и я symmmd. , т о п р и м ен яест
я м ео т
д
.
т с лу о в и я м п . 1—5, т о и с я и н е уод в лето р яе а в фо р м е LU - фа к то р и з а ц и . Д л я р а з р еж н н ы х о п е р с атв л я ю ст я с рт о к и и с от л б ц ы с ц ел ь ю я м арти ч н ы х м н о ж и е лт й LU - р а з л о ж е н и я .
а п р я м о гу л ь н а я и м а рт и ц ы ы в см ы сл я м а рт и ц а
о э от
й ш и ри н о
к и сот л б ц о а п о д с ат н о в к и
, н о н е р а з р еж н н а я й м а рт и ц е й
а е сх н б е р г о в а я к си семт
. К р а тк
я дл
я м ое т
4. Е сл и м а тр и ц а с и м ер т и ч н а я (э р м и от в а срт а н свт е ) с п о л ж и етл ь н ы м и э л е м н атм н фу к ц и я ch oi, к о т р а я п ы а т ес я вы п олн и т эот м в п р о ц ес е р аз ло ж ен и я в ы я с н яс е т я е п о л ж и ет л ь н о о п р е дл н н о м а рт и ц ы . В счлуа м н о ж и е лт ь р аз ло ж ен и я Хо л е ц к о г , с к о т р ы от д м п о д с ат н о в к и л д я п о ч л уе н и я р еш ен и н ий . Е сл и м а тр и ц а с и ем т ы р аз р еж н а , т п р о и з в о ид с т я с и м ерт и ч н а я п е р с ат н о в к ю м уен ь ш ен и м у м и н и м аль н о й еп с т н и с ц ел ь Хо л е ц к о г . Д л я в ы п о л н ен и я э от й о п ер ац и 5. Е сл с ве н д и
ы руа в н е н и й .
, т о п р о и сохид , к о т р а е н а и м ен ь ш и , и л и н ет
т о б р ащ ен и я п о з в о л яе х к в а д р а то в
т н ай т . лАго р и т
е к н фу к ц и и qr и н а и ч л уш е е м qr чиу ыт -
.
Ф ну кц и и M ATLAB, и сп о ль з ему ы е в в ы ш ео п и с а н н о м а л г о р и тм е , о сн о в ан ы н а п р о ц ре у д а х п о п л уя р н ы х б и б л и о ет к LAPACK и U M F P AC K дл я р еш ен и я з ад ч л и н ей н о й а л ге б р ы . С о вт ес юу щ а я и н фо р м а ц и я соедрж и ст я в сп ра вочн о й с и ем т е M ATLAB. Д л я е е п о члуен и я д о с та о ч н о о б р а ти ь с я к раз ел д у zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA MATLAB: Functions — Categorical List: Mathematics: Linear Algebra и пе р ей т и в н е м п о ги п е р с ы л к е \ and /. П р и эот м о кт р ы в а ест я с тр а н и ц а сп рав о ч н о й с и с етм ы , п н у к т Algorithm к о т р о й п о с в ящ е н о б жс у а д е м о у з ес д ь а л г о р и тм у . В н е м уп о м ян ту ы т е фн у кц и и б и б л и о ет к и LAPACK, к ко то р ы м о б р а щ а е тс я MATLAB п р и р еш ен и и си е т м л и н ей н ы х ру а в н е н и й . х м арт и ц , MATLAB в ы з ы в ае т п р о В р яд е чслаеув , н а п р и м ер , дл я раз реж н ы
л ав Г
6. М е т ыо д
вчиы с лени й
ц р уед с ы лк
ы б и б л и о ет к и дл я до спут
283 zyxwvutsrqp
в MATLAB
и U M F P AC K. В н и з а к до кму ен атц и и эи т
у с рт а н и ц х б и б л и о ет
ы р ас п о л ж ен к в И н етр н ет
ы вд .
е ги п е р
-
В zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ав ег л 15 р а с м арт и в а ю ст я о с б ен н о с т и р еш ен и я си е т м с р аз р еж н н ы м и м а тр и ц а м и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ис тС е м
ы с плхо
о осмлубвоеын
Р а с м о рт и
м п рост
й п р и м ер
и матрицм : требсту
я н ай т
и и р еш ен и
=8
2*1 + 3 х 2 + 3 х
3
4*! + 2х 2 + Зх
3
е сю улед щ е
й с и с етм ы
:
'>
= 7;
] +5х 2 + 6х 3 = 7. В в ие д т е м арт и ц у и в ек от р и з к о м а н дн о й с рт о к и и п р и м ен и т е о б р а нт у ю ко ус ю ч е р у т :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA »
А = [ 2 3 3 4 2 3 6 5 6 ] ;
»
b = [ 8 ; 7 ; 7 ] ;
»
х = A\ b
В к о м а н дн о н а и л и п ло х
е о к н о о бс ул о в л е н а
о в ы в о ид ст
я п р уе д ж нд и , и з ает м п о лч у е н н о
е о то м е реш ен и
, ч т о м а рт и ц а в ы р о ж ед е х :zyxwvutsrqponmlkjihgfed
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.306145e- 017. x = 1.0e+016 * 0.9007 1.8014 - 2.4019 П о лчу е н н о е р еш ен и е н ев р н о , в че м н еслож н ж и в А н а х . Д ел о в то м , ч т о А являсет я в ы р о ж ед н н о й н лю у . Д л я в ы ч и слен и я о п р е д л и е тл я п р е нд а з н а ч е н det: » det (A) ans = 0
о б ие у д ь т с
я п р о в ер к о й , е е о п р едли етл а в с рт о е н н а
, умн о ь рав е я н фу к ц и
н я
284
аЧс т ь
О дн а к р еш ен и
о "о ч ен и си семт
ь м ал ен ь к о е ы в о з н и к н у
" з н ач ен и т трнду о сит
е о п р едли етл . Н а п р и м е р
[ 2.О - Ю" ^
р е ш а ес т я то ч н о , н и к а и х с о б щ ен и ри ц ы с и емт ы рав е н 2.96- Ю о п р едл и етл ь !) . В оз м ож н ост ем л о е тр и з ю у щ и п р е сд а т в л е н и чл у и ь т с и ме м ощ е тм
ь р еш ен и
80
(убиед ст
1
JCJ -
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
я ще е н е о з н а ч е т , ч т о п р и , си семт а zyxwvutsrqponmlkjihgfedcbaZY
40
h 3 .0 • 1 0 ~ = 2
й н е в ы в о ид ст я ь в э то м
, отх , р еш и
я о п р е д л и ет л в с и ем т
ь м ат
-
у и в ы ч и сли
в
ы л и н ей н ы х а л ге б р а и ч е с к и х руа в н е н и й с п ри я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH м о ли с ч т оис оне в ло усб м а тр и ц ы , архк м ч в у с т и е тл ь н о с т ь р еш ен и я к ош и бк а м в ы ч и с л ен и я и то ч н о с т и я ад н н ы х в к о м п ь ю ет р . Е сл и он о в ели к о , т о о вт е т м ож е т по е н ев р н ы м . П ер д р еш ен и е м с и ем т ы я н е о ч ен ь от ч н ы м и л и ад ж т см ы с л вы ч и сли т ь ч и сл о о бс ул в л е н н о с т и м а рт и ц ы с и емт ы пр и по и фн у к ц и и cond, з ад в а р м гу е н от м м а рт и ц у . Н а п р и м е р , дл я п ер в о й си с :zyxwvutsrqponmlkjihgfedcbaZYXWVU ы н фу к ц и я cond в ы аде т ю с ул ед щ и й р е з л у ь ат й то ч н о с ть
я с и ем т
ю о п р е лд я с т
» cond(А ) ans = 2.752б+ е 01
Чи с л р е ш а ес т
б
о о бс ул о в л е н н о с т я п р а в и л ь н о ^
и м а рт и ц ы в то р о й с и ем т ы равн о 3.0808 и си емт а .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Пр и м е ча ни
Н а м ао с ск б е о н ч и о ст ич л с а с л о в н еб у и о с т р и м та ц н и е чи л с м е ит с ы З н а к о б р а тн о ш ен и я н ес к о л ь к и ч а с ят м и . Д л в а т ь м а рт и ц от м я в л с е т юв у щ е й с и ем т р еш ен и я с и с е тм л о ж ен и е м арт и ц
е м ле д м м уог а о лс н в е б у о тс може й кос
^|
е чи л с о н о лве с у б о т с . MATLAB и псеьолзу , корты т дав т ь н р ев ы и си н г и л а з е р у т бы т ь н пе рави льн ы м
и ри м т ац ы п рв о е й м е и тс ы р ав н т н еич л с ы е до т м е ы л д я н е ж оид х а е в п и рн м е и и к п олх о н е овл с у б ы й резльату . Н о вс е р ав н о , больш о е з н чае т о о тм , чт о н йае д н о е рше н и .
й ч ер т ы м ож е т бы т х си е т м с о нд о й и от я э то г о и з в е к от р - с от л б ц о у и п о м е с ит ь е е п о сл е з н ак я м а тр и ц а , кажыд й с от л б е ы л и н ей н ы х руа в н е н и й , та к о й п о хд д сщ у евстн ы в ы п о л н яест я то л ь к о
ь п р и м ен е й ж е м арт и ц е в п р ав ы х а о б р а тн о ц котро й . В олти ч и о экон оми о ид н р а з .
н лд
я о дн о в р е м н н о г й и раз н ы м и п рав ы м т с фо р м и р о ч а се т й е с лу д й кос й ч е р ыт . Р езльуат се т ь р е ш е н и е с о в т ес е о т п о с л е д о в а ет л ь н о г т в р ем я , п о с к о л ь к
о я м е о ре и о
у р а з
-
л ав Г
6. М ет ыо д
вчиы с лени й
в MATLAB
е П р о п е д л е ын
285zyxwvutsrqp
е и неопрд л еын
е си т е м
ы zyxwvutsrqponmlkjihgfedcb
т р еш ат ь с и ем т ы с п р я м о гу л ь н ы м и м а тр и ц а м и , ат к MATLAB п о з в о л яе н аз ы в аем ы е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA е ын ле дпрое сиемт ы , в к о т р ы х р уа в н е н и й боль ш е н еи з в е снт ы х , и е ын нле дпро де сиемт ы с ч и сло м руа в н е н и й , м ен ь ш и м ч и сл а н е и з в е сн т ы х . П ер о п р едл н н ы р а м е тр о че м ч и сл
е с и ем т ю од у в л е т о р е н и
в с ц ел ь о п а р м е тр о в
х п о дб р , ч и сл
я с о нт о ш е н и я м
а н ес к о л ь к и о котры
х п а
-
х боль ш е
,
.
м з а дч
Р а с м о рт и з ак он
я в з адч а
ы в с рт е ч а ю ст
у о п о дб р
е п а р м е рт о
в а и Ъ н е к о т р о г
о фи з и ч ес к о г
о
а у - a • e~r + b • t
п о р е з л у ь ат та б л . 6.3.
м и з м ер н и
я в ели ч и н
ы у в м о ен т
и ц Та л б
ы в р ем н и
6.3. Рьта ызуел
, п р и в едн н ы
иинейр зм
фикйсеозич
виынч ле
hzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 0 0.2 0.4 0.1 0.3 [У
Д л я н а хо ж д е н и ском у з акон у
4.25
3.64
3.95
я п а р а м е тр о , т . е . в ы п о л н е н и
в п о т р е б уе е ш ест
3.41
я и з м ерен и в в и да
0.5 3.04
3.21
м с о тв е тс тв и и равен ст
е в
й фи з и ч е
-
:
у. = а • е~ Г / + Ъ • Ц. Э т и р а в е н с тв а я в л я ю тс я н и ч е ш ест и ли н ей н ы х алгебр аи ч еск и м а тр и ц а А и в е к т о р п раво й част
м и н ы м , к а х ур а в н е н и и Y с и с те м
к п е р е о п р е д е л е н н о й с д в ум ы и м ею
й с и с те м о я н е и з в е с тн ы м т в и д
й и з и а и Ъ ,
\У А =
Y =
гУ У в
Д л я н а хо ж де н и я н еи з в естн ы х с л е дуе п ом щ и з н ак а о б р а тн о й кос й ч е р ыт н фу к ц и ю б е з п а р м е тр о в , р еш аю щ у рам и гр афи к и осндх ы х ад н н ы х и ли н и е
т реш ит ь э т у с и с т е м у в M A T L A B п р . Н а п и ш и т е с а м о с т яел ь н о фа й л ю ад н н у ю с и ме т у и срт о я щ у ю м ар к е й гр а фи к фи з и ч еск о г о з а к о н а с п олу
и -
286
аЧс т ь
чи вш и м и с я п а р м е тр а м и ц и и о т р т е х а р гм у е н о т н уф к ц и и fi t с в л о ж ен н о
. Ф и з и ч еск и в — п ер м н о й фн у кц и е
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
й з а к о н ч л шу й t и п а р м ерт о й law соердж и ст
е оф рм и т
ь в в и д е н уф к в а , ь . Т ек с т фа й л я в л и сит н г е 6.13.zyxwvutsrqponmlkji
Л ист ин г 6.13. Ф а йл - иц нк фу я f i t бпорд а па р м е т ро в zyxwvutsrqponmlkjihgfedcbaZY IzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ; function [a, b]=fit function у = law(t, a, b) у = a.*exp(- t) + b.*t; end % зи н а д
е тц и л б а
ы с м ы н ь л эа т н е м и р е п с к
и дм ы н а
и
t = [0; 0.1; 0.2; 0.3; 0.4;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG 0.5] ; у = [4.25; 3.95; 3.64; 3.41; 3.21; 3.04]; % си н а д з о
е мцирта
ы см е т с и
ы лы н й е н и
х уи н е в а р
й
А = [exp(- t) t]; % ри н е ш
е см е т с и
х = \ А у
ы и пи н е ч у л о
е иы м о к с
х ко т н е и ц ф э о
в фг о к с е ч и з
о зн о к а
а
;
а = х(1) ; Ъ = х( 2) ; % пи н е о р т с о
е гк и ф а р
а ы н ь э латнемирепск
х ды н а
х
plot(t, у , 's') hold on % пи н е о р т с о
е гк и ф а р
а фг о к с е ч и з
о зн о к а
а
fplot(@law, [0 0.5], [ ], [ ], ќ- ', а , Ь ) end
Ф а й л - н фу к ц и з и ч ес к о г в ращ ае
о з ак он т в в ы охнд ы
я fi t с рт о и т и з о б р аж ен н ы а п р и н а й е дн н ы х а р мгу е н ат
х з н а ч ен и я
е н а ри с х п а р м е тр о в
. 6.7 гр а фи к
и да н н ы , к о т р ы
е он
х и фи а воз
-
х
» [a, b] = fit »
а = 4.2478
b = 0.9070
В н ес и т та б л и ч н ы гр а фи
е с а м о с т яел ь н е да н н ы к н ан о си т
о в фа й л - н фу к ц и е с ч и ыт в а ю ст я вс я н ео б хид м а
я и з те к с то в г я и н фо р м а ц и я
ю fi t н е к о т р ы о фа й л .
е и з м ен ен и я а н фу к ц и е
. П сут ь й load, а н а
л ав Г
6. Метыо д
вчиы с лени й
О
с иР
П ер й ед ры
в MATLAB
0.05
0.1
0.15
0.2
ь к н еод п р едл н н ы а руа в н е н и й а со ти т и з о дн о г о м н ог о р еш ен и й ы MATLAB и щ е . Ба з и с н о е р еш ен и е уп р аж н ен и я с и ме т
с и е мт б ес к о н еч н с и ем т н л е йу вс т
0.3
0.35
0.4
0.45
0.5 zyxwvutsrqponmlkjihgfedc
. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 6.7. Поб д р пор тмеа в фгокисзеч о зкноа а
м е тп р
х боль ш
0.25
287zyxwvutsrqp
е ч и сл
м с и с е тм а м п рост я с дмву
. В сам о о р уа в н е н и
, ч и сл м чс л ау
о н е и з в е нс т ы е н е од п р е д л н н а
х в к о т
я
я н е и з в е с нт ы м и , к о т р о е и ме т . П р и н оажхенд и и р еш ен и я н е од п р е д л н н о й т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB е а о нз и с б рин,еш соедр ж ащ е е ка к м о ж н о боль ш е е то ж е м ож е т бы т ь н е еид н свтен н ы м . Р еш и т е в к ач е у Г х х + 2х 2 + Зх
3
= 2;
[3*! + 4х 2 + 5х 3 = 2 и п р о и з в еид т Дл о нд о си е т
я р еш ен и я н ес к о л ь к и й и то й ж е м раит ц е м с к в ард нт о
Р е ш ни Пр н ей н ы роки зн а
е п р о в ер к у
и и сп о ль з о в ан и х р уа в н е н и е в о з м о ж н о с т к о б р а тн о е т м с о нд о э о т м од п с у к а е
е с ис т е
, умн о ж и
в м арт и ц у
х п е р о п р е л дн ы й п ри м ен и й м ар т и ц е й
м пр
м то , оп и сан ы
и пом ощ
и фицунк
с и ем т х ил т ж е сам ы й в кон ц
ы н а н ай едн н о и н ое д п р е лд н ы й п охд е п рыедщ у ег
е р еш ен и е х си е т , чт о и п р и реш ен и о р а з ед л а
.
м с и .zyxwvutsrqponm
и zyxwvutsrqponmlkjihgfedcbaZYXWVUT linsolve
и з н ак а о б р а тн о й кос й ч ер т ы лд я р еш ен и я с и ем т ы ли й вы бо р м ео т д а р еш ен и я о с а те я з а M ATLAB. Бо л е е ш и и п р е од с а т в л я е т н фу к ц и я lin so lve , к о т р а я , та к ж е к а к и й кос й ч е р ыт , п о з в о л яе т р еш ат ь с и ме т у и л и н ес к о л ь к о си с й и от й ж е н е о б я з а е т л ь н о к в а д р тн о й м а рт и ц е й ХА - В , и п р и т вы бо р м ео т д а е е р еш ен и я в с о вт е с и и с о с в о й с вт а м и
II. Вчиы с лени я и прогам м и р о вани е zyxwvutsrq аЧс т ь 288zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
м а рт и ц ы н фу к ц и
, ку а з а н н ы м и lin so ive и м е
X = l i n s o i v e ( А ,
и п о л ь з о в а ет л м т в и д
. В п р о сетй ш е
м с ч л уа
е о б р ащ ен и
е к
:
В )
Пр
и эот м дл я р еш ен и я си емст ы в счалу е к в а др нт о й м а рт и ц ы А п р и м ен яет с я LU - р а з л о ж ен и е с вы бор м щ в уед г о э л е м н ат , а лд я п р ям огу л ь н о й — QR- р а з л о ж ен и е . Р а с м о рт и м , ка к п о в ли ят ь н а вы бо р бо ле е э ф е к ит в н о г о т с фо р м и р о м ое т д а р еш ен и я , учи ыт в а я с в о й свт а м а рт и ц ы . Д л я э то г о е с лу д в а т ь пу р а в л яю щ у ю рс к т у , соедрж ащ у ю п ол я с о з н а ч ен и ям и t r u e и л и false в з а в и с и м о с т и о т св о й ст в м а рт и ц ы , и куаз т ь е е в к а ч е с вт е рт еь г о , к а к и р а н е , и с п о л ь з о в а т ь в о х нд о г о а р гм у е н т а н фу к ц и и lin so ive. емд Бу лд я п у р а в л я ю щ е й с ркт у ы и м я opt ion s, отх я о н о м о ж е т бы т ь п рои з воль ным , боле е то г о , сле и р еш аест я м н ог о си е т м с р а з н ы м и с в о й с вт а м и , ц ел со браз н о с о з ад т ь н ес к о л ь к о п у р а в л яю щ и х с р тк у , и сп о ль з у я нжу ю в к о н к р е нт о м с лч у а е . П о л е TRANSA о п р едля т , ка к з а д н а м а тр и ц а с и е тм ы : з н ач ен и е t r u e о з н а ч е т , ч т о солвер у п е р а сд т я тр а н с п о н и р о в а н н а я м арт и ц а си сетм ы . Н ап р и м ер , сел и в енд а м а рт и ц е ус л д т о б р а ит ь с я к солвер у ю с у л ед щ и >> options.TRANSA = true; >>
т ь с и ем т у А Х = В, т о :zyxwvutsrqponmlkjihgfedcbaZYX
у = linsoive(А , В , options)
П а р м е тр ы
, о п р едляю щ и
е с в о й свт и ц Та л б
Ф ла
а А и н ад о р еш а т м образ ом
г
а м а рт и ц
6.4. Фаг и,л
ы си семт ы июще я ле дпро
ы в та б л
стйвсоа
С вой т с
о мри тац
LT
Н и жн я
я р т е г оу л ь н а
UT
В нер х я
я р т е г уо л ь н а
UHESS
В не р х я
я п очт
SYM
С и м е рт и ч н а
POSDEF
П о л ж и те л ь н
о о п р е дл н н а
RECT
П р я м о гу л ь н а
я
В та б л . 6.5 п р есдатв лен ы воз м ожн ы л яю щ е й с р тк у е . Н е к о т р ы е к о м б и н а ц и г о в а м а рт и ц а н е м ож е т бы т ь тр е г у о л ь н о й с о в м е щ а ьт с я , н е до п суит м ы . Н а п р и м е р
, свенд
маитцры
. 6.4. сы тимес
ы я я и тр егоу л ь н а
я (хес н бер го в а
)
я я
е к о м би н ац и
и з н ач ен и и о ч ев и нд ы , а н е к о т р ы е , тр егуо л ь н а
й фл а го , н а п р и м е р , к о т р ы я м а рт и ц
в в пу р ав , хесн бер е м о гл и б ы а м ож е т бы т ь
л ав Г
6. М е т ыо д
вчиы с лени й
п о л ж и ет л ь н щ и м ф а к от р
289zyxwvutsrqpo
в MATLAB
о о п р едл н н о й м являсет
, н о п р я е е п р о фи л ь
и вы бор е сп ос б а р еш ен и я о п р е дл яю .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK Таблиц
6.5, Возмжные
комбинац
флагов
LT
UT
UHESS
SYM
POSDEF
RECT
true
false
false
false
false
true/false
false
true
false
false
false
true/false
false
false
true
false
false
false
false
false
true
true
true
true
true/falsezyxwvutsrqponm falsezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH falsezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI false false falsezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е 2
П р е д у п р е д же н и
Ф н у кц и
я lin so lve н е п реовя ы в п ю я вл а р у щ е м п ар м е т . П омэт у рлзеаьту т же м о
к аз у н н ий Е сл
и м а рт и ц
т о в ы в о ид ст си м ы м
а с и ем т я п р еу д ж е дн и е и с рт о к а м
ы п ло х и дае
т п р ав и л ь н о с т т бы т
о о бс ул о в л е н . Н а п р и м е р
т р е з л у ь ат
ь вой с т , и н е вы ивод ь н рнве ы й
в м р и ат ц ы
, корты
т н и ка
х е пж д р у п е р
а и л и е е р а н г м ен ь ш , реш ен и е си емст
е р а з м е р н о с ти ы с л и н ей н
е -
. , о з ав и
-
:
> А = [2 3 3 - 2 - 3 - 3] ; » b = [8; 7] ; >> X = linsolve(A, b) Warning: Rank deficient, rank = 1, tol = 2.8262e- 015. ќ X = 0 0.1667 0
С о б щ ен и е м ож н то р ы й з а п и с ы в а ест в ел и ч и н а , о б р а тн а цы) .
о п о д а в и ть , сле я ран г м а рт и ц я к ч и сл у о бс ул о в л е н н о с т
>> [X, г ] = linsolve(A, b) X =
и з адт ь в то р й в ы о х нд о ы (в счлуа е п р я м о гу л ь н о и (в счлуа
й а р мг у е н т й м а рт и ц ы е к в а д р нт о
, в к о ) и л и й м арт и -
290
аЧс т ь
II. Вчиы с лени я
zyxwvutsr
и прогам м и р о вани е
0. 1667 0 г = 1
Е сл о хн д о г
и п р уе д ж нд и о а р гм у е н т
а лд
я п о да в л я ю с т я я о ц ен к
е м а т ри
О б р а е щ ни
, т о е услд и п о лч у а е м о г
ь з н а ч ен и
е вы .zyxwvutsrqponmlkji
о р еш ен и я
ц zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
ай т рон б О к к в а др тн о й й оне д ж о рвены ри ц а ~ А , к о т р а я п р и м ун о ж ен и ие д н и ч н у ю м а рт и ц у . В срто ен н а н ы м а р мг у е н о т м яв л с ет я и о с н хд а и д т е к в а д р нт у ю м ар т и ц у р аз м ер в ы р о ж ед н н о с т и п р и п ом щ и р е з л у ь ат т м ун о ж ен и е м сп рав В п ри н ц и п е , р еш ен и е си е т м м ож е т о щ с у е с в т л яь с я м ун о ж е н и е ч аст и с и е мт ы . О дн а к о ат к о й и п а м я ит , к то м у ж е о н м ож е м у лд я р еш ен и я си е т м е ус л д н фу к ц и ю lin so lve . Ф ну кц и й.ьон угл о
т и сп о ль з о в ат
и п р ав и л ь н о с т
м арти ц и н а А я н фу к ц и я я м а рт и ц а а рт и с а м о с т я е л ь н о det и н ай ид т а и с л ев а п о чл у е н н о л и н ей н ы х р уа в н е н и м о б р а тн о сп о с б рт е б у т ад т ь б о л ь ш у т п р и м ен ят ь
е А н а з ы в а е ст я та к я м ат сп рав а и с л ев а да е т в р е з л уь а т inv о б р а щ а е т м а рт и ц у , е е одвх , а в ы охнд ы м — о б р а тн а я . Вве , беиуд ст ь в е е н е е о б р а тн ю у , а з ает м п р о в ер ь т й м а рт и ц ы н а и ос н х д ю у й с к в а д р а тн о й м а рт и ц е й м а рт и ц ы н а в е к то р п рав о т щ с у е вс т н о боль ш е в р ем н ю п о гр е ш н о с т ь р еш ен и я . П о э то з н а к о б р а тн о й кос й ч ер т ы ил
е е . й й и и
я pinv п о з в о л яе т н ай т и патрунюб о ведс м арти ц у к и сохнд о й п-о м яр zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA А = [1 2; 3 4; 5 6]; » » Р = pinv (А ) ; » * Р А ans = 1.0000
0.0000
- 0.0000
1.0000
о С б с т ев ы н иц у н к ф
е числ и м а т ри
етвсынб о С
ча лис
А до у в л е вт о р я ю н ы м а р мг у е н о т сы в ае т и х в в ы охнд о »
а и вте рок
ы матыриц
,
ц Xi и етвсынб о выкерто т р а в е н с вт а м -А и { =^ iui. Ф ну к ц и м м а рт и ц е й , н аохид т вс е со бсвтен н ы й а р мг у е н т — в е к то р :
А = [2. 3 ; 3 5 ] ;
>> l a m = e i g ( A )
ut Ф 0 к в а др тн о я eig, в ы з в а н н а е ч и с л а м а рт и ц
й м а рт и ц я с ов дх ы и з ап и
ы -
л ав Г
6. М е т ыо д
вчиы с лени й
291 zyxwvutsr
в MATLAB
lam = 0.1459 6.8541zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Д л я о дн о в р е м н н о г в ы з в ат ь eig с дмву
я все и а р гм у е н а т м и
о в ы ч и слен и я в ы о х нд ы м
х собсвтен ы
х в е к от р
в и чи се
л се луд
т
.
» [U, Lam] = eig(A); П ер в ы й в ы о х нд о р о й яв л ю ст с о б вт е н н о м от ч и я
й а р мгу е н я с о б втен н ы м у в е к от р
т и п р есдатв ляе и в е к то р а м и т и сп о ль з о в ат
у е су л д
т со б я до спут а ь и н едк с а ц и
. Д л
й м а рт и ц у
, сот л б ц , н а п р и м е р ю пр
ы кот , к п ер в о м и п о м щ и вд о е
у -
» ul = U (:, 1) ; В от р ы с о ед р ж а щ а
м в ы о н хд ы
м а р мгу е н от я с о б вт е н н ы
» Lam Lam = 0.1459 0 П р о в е р ь те с о в т ес ю у щ и
е ч и сл
м Lam в о з в р а щ а ест а и оснхд о й м а рт и ц ы
я ди а г о н а л ь н а .
я м а тр и ц а
,
0 б .8541
, п р а в и л ь н
о л и н а й едн ы у со бсвтен н ы
й ме
, н а п р и м е р й в е к то р
, в то р . В о сп о ль з йу ест
е с о б вт е н н о
е ч и сл ь о п р е дл н и е м
о и :
» A*U(:, 2) - Lam(2, 2)*U (:, 2) ans = 1. 0е - 01 5 * 0. 4441 - 0. 8882
В о з в е дн и п р и п о м щ »
е к в а д р нт о и з н а к
В = А
Л
й м а рт и ц а
А
, н а п р и м е р
ы в лю бу ю ц ел у ю епс т н ь о щс у е с в т л я я :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
2
В =
Пр еонитчр ма
1 3
21
2 1
34
и в о з в е дн и
и м а рт и ц умн о ж ен и , в о лти ч и
ес п т н и Д л я о рт и ц а ет л ь н ы м ож н о и сп о ль з о в ан и к в а д р тн о й м а тр и ц ы п о н ен т а И Лифр аГО
е м а рт и ц е о т п о э л ем н нт о г х еп с т н е е др о б н ы , т о лч уш С Т мЯЮ Л С И ВЫЧ
ы в ц ел у ю п о л ж и ет л ь н у ю есп т н ь п р о и с о х ид т zyxwvutsrqp ы н а сам у сб е я с о т л ь к о раз , к а к о в п о к а з а ет л ь о м ун о ж ен и я п р и п о м о щ и о п ер ац и и .А . й в ы ч и с л яет я е пс т н ь о б р а тн о й м а тр и ц ы . В оз х се п т н е й . Е сл и р т е бс у я и з в л еч ь к о р ен ь и з е п р и м ен и т ь н фу к ц и ю sqrtm. М а тр и ч н ы е экс Я П р и ПОМОЩ И И Ц К уН ф Й expm И logm.
292
аЧс т ь
П о л ь з о в а ет л е ус л д т с о з да т inline- нфу к ц и ю п ер в ы м а р мг у е н о т и л и к у а з е тл ю в у щ тс е н фу к ц и
ь м ож е
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
т н ай т и з н ач ен и е л ю б о й н фу к ц и и о т м а тр и ц ы . Дл я э от г ь с о б втен н у ю фа й л - н фу к ц и ю , ан о н и м н у ю н фу к ц и ю ил , а з еат м и сп о ль з о в ат ь с п ец и а л ь н у ю н фу к ц и ю funm, з ад м и м я фа й л - н фу к ц и и в а п о срт о фа м м а рт и ц у , а в от р ы
ь н а нф у к ц и ю
. В ы ч и сли ет и matrf п ри евд о и сп о ль з о в ан и
й аф й л - н уф к ц и и о б я з а те л ь н
о и в х
А
, н а п р и м е н в ли ст н г
р е - sin Л . Т ек с т с о в те е 6.14. П р и соз адн и и фай л х о п е р а ц и й !zyxwvutsrqponmlkjihgfedc
е п о э лем н т ы
Л ист н г 6.14. Ф а йл - иц нк фу я m a t r f дл я вичсыл е ни я фицнку и м а т риц ы zyxwvutsrqponmlkji • zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA : . . . . . . . . . . . . ; , . . . . . . . . . . . . . . . .; ... ,..;.... . ... ... . . ; : zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON zyxwvuts ' . . . . . . . . . . . . .
. . . . . . . . . . ; ' . ; . . . -
.
. . . . . . . . . . . . . . . . . . . . . . .
. . . Л . . . . . . . . . .
.
• ; • . . . .
. . . . . . .
function В = matrf(A) В = ( рхе ) А .*sin(A)
;
Т еп р
и funm н ай ид т
ь пр
и п о м о щ
е з н ач ен и
е з адн н о
й фну к ц и
и о т м арти ц
ы в :
В = funm(A, @matrf) >> В = 141.6829 228.9756 228.9756 370.6585
Д л я к о н тр о л я то ч н о с т и в ы ч и с л ен и й н фу к ц и в ат ь в ы з о в funm с дмву я в ы о хн д ы м и а р гм у е н а т м и м е щ са е т я и н фо р м а ц и я о то ч н о с т и в ы ч и с л ен и й н фу к ц и и M ATLAB (sin , cos и дргиу е ) м о ж н ги ч н ы м о б р а з о м , н а п р и м е р »
В
= fu n m ( A,
'sin ')
П р е пд о ч и т е л ь н е е п р о и з в о ди т в ан и е м с п ец и а л ь н ы х м а рт и ч н ы (ртех А ) в м ест о funm (А , ' е хр ' в а н ы с п ец и а л ь н ы е а л г о р и тм ы а л го р и т м funm. Ф ну кц и с и ме т
и м а рт и ы ли н ей н ы
ц и м ею х ди фер н ц и аль н ы
т ш и року
ь в ы ч и с л ен и я фн у к ц и й о т м а рт и ц с и сп о ль з о х н фу к ц и й expm, logm, sqrtm, т . е. , н а п р и м ер ) и т . д . В эит х м арти ч н ы х н фу к ц и я х р еал и з о , р а б о та ю щ и е от ч н е е и н а ед ж н е , че м о бщ и ю о бласт
т бы т х урав н ен и
ь н а й ед н й и си ест
ь п р и м ен ен и я х уравн е и
— = А- ,Х dt м ож е ны
и о т м а рт и ц ы чл у ш е и сп о ль з о . В о в то р о й а р мг у е н т по . В срто ен н ы е м ает и ч е с к и е о в ы ч и с л ят ь о т м а рт и ц ан ало -
о п о фо р м л у м п о с в ящ е
, в ч аснт о сит й с н ач ль н ы
(Х 0) = Х
tA е X(t) = X0- e . н сюлуед щ и й р а з де л
, реш ен и м с л о ув и е
, й е
м
0
Р еш ен и
ю ид ф е р н ц и а л ь .
-
л ав Г
6. М е т ыо д
вчиы с лени й
293 zyxwvutsrq
в MATLAB
дре ифе ацн лыьф
Р е ш ни е
х ура вне и
й
zyxwvutsrqponmlkjihg
Дан н ы й р а з ед л п о с в ящ е н о п и сан и ю в о з м о ж н о с ет й , п р еод сатв л яем ы M ATLAB, лд я ч и слен н о г о р еш ен и я з ад ч К ош и и к р аев ы х з ад ч лд я о б ы к н о в ен н ы х ид ф е р н ц и а л ь н ы х р уа в н е н и й п рои з воль н ог о п о р я дк а и с и с е тм в к лю ч а я к р а ев ы е з адч и с н е и з в е сн т ы м и п а р м е тр а м и и в ы р о ж ад ю щ и м и с к о э ф и ц и е н ат м и . Р ас м арти в аест я атк ж е р еш ен и е ди ф ер н ц и аль н ы х р уа в неи й с з а п а з ды в а ю щ и м а р мг у е н о т м . Д л я реш ен и я эит х з ад ч п р е нд а з н а ч е н ы с п ец и а л ь н ы е н фу к ц и и MATLAB, в в ы ч и с л и етл ь н о й м а ет и к е и х на з ы в аю т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA .ывре л ос MATLAB и м е т д о с та о ч н о боль ш о й н або р со лв ер о в , ос н о в ан н ы х н а р а з л и ч н ы х ч и с л ен ы х м ео т а д х .
Р е ш ни Дл
е за д ч я р еш ен и
и Кош
я з адч
и К ош
, в к лю ч а о о бщ е
и в MATLAB щсу евт
я ю с ул ед щ и х в ы ш
я сп о с б м сч л ау м о браз о
е с о л в ер о в )
, я -
и т м ес
ь с о лв ер о в
ode23, odell3, odel5s, ode23s, ode23t И ode23tb. Мето д и к
н и я о ди н а к о в а В д о с та о ч н и з в о ид с т ч и с л ен ы
х
: ode45, zyxwvutsr
а И Х ИаВОЗЬЛПС
ы з адн и я вонхд ы х и в ы онхд ы е вы з о в с о л в ер а лд я р еш ен и я з адч м (зсед ь п о д so lver п о н и м аест :
-
х а р г м у е н то в и К ош и п р о я оид н и з п ер
. -
[Т , Y] = solver(odefun,interval,YO,options)
дг е odefun — н фу кц и я лд я в ы ч и с л е н и я в е к о т р - н фу к ц и и п рав о й ч аст и си е тм ы руа в н ен и й , in t e r va l — м аси в и з дву х ч и с ел , з адю щ и й п р о м е ж от у к й в е к от р н ач ль н ы х з н ач ен и й и ск о лд я р еш ен и я р уа в н е н и я , YO — з адн н ы м о й в е к о т р - нф у к ц и , o p t i o n s— сркту а лд я п у р а в л ен и я п а р м е тр а м и и о дх м в ы ч и с л и ет л ь н о г о п р о ц ес а . С о л в е р в о з в ращ ае т м ас и в т с к о р ди н а ат м и зу ло в с ек т и , в к о т р ы х н а й ед н о р еш ен и е , и м арти ц у р еш ен и й Y, каж ыд й с от л б е ц котро й я в л се т я з н а ч ен и е м к о м п о н ен т ы в е к от р - н фу к ц и и ре ш ен и я в узла х секти . Дале е м ы ио д б с у н а р яд е п о к а з аетл ь н ы З адч нф у к ц и п о р я дк
м п р и м ен ен и х п р и м ер о
е с о л в ер о в и з п ер ч и слен ы
а К ош
в и пу р а в л ен и х в ы ш
е п р о ц ес о е к лас о
м р еш ен и в з адч
я .
и я л д ди ф е р н ц и а л ь н о г о р уа в н е н и я со ти т в н оа хж е д н и , уод в лето р яю щ е й ид ф е р н ц и а л ь н о м у р уа в н е н и ю п рои з воль н ог а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и о
WzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC .А ' М ) и н ач ль н ы
м с луо в и я
м пр
и t = t0
294
С ем х
аЧс т ь
а р еш ен и
я та к и
1. П р и в едн и р ау в н е н и н е т н ео б хди м о с ит ) 2. Н а п и с а н и
о п о р я дк .
а (елс
е сп ец и аль н о
3. В ы з о
о с о л в ер а я р е з л у ь ат
м р еш ен и х м а ет р и а л ь н о й с о п р о ит в л е н и
и дл
х э та п о в
я к си есмт о з адн я с и ем т
zyxwvuts
и пр о г ам м и р о вани е
т и з сюлуед щ и
о урав н ен и и и з н ач ль н
й фн у кц и
в п о хд я щ е г
4. В и з аули з ац и Р а з б ер бан и я в аю щ е с я уравн ен и е
ч в MATLAB со сти
х з ад
е ди ф ер н ц и а л ь н о г й п ер в о г
II. Вчиы с лени я
е ди ф ер н ц и аль н ы а с и с етм а
ы ура в н ен и й
. х , т о в эот
м
.
. .
е ди фер н ц и аль н ы й от ч к и п о д в о з едй свти е е к о л еб а н и ям м в то р о г о п о р я кд а
х р уа в н е н и
й н а п р и м ер м в н еш н е
. П ер м ещ ен и
е то ч к
е з а д ч и о коле й си л ы в сред , о к аз ы и в сред е о п и с ы в а ет
-
/ ' + 2 / + 1PJ> = sin zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO t. П р е дп о л ж и м л а с ь еи д н и ц е в и я и м ею
, ч т о к о р ди н а т , а с к о р с т т в и д
П ри м е р н о си т д е м о н с рт а ц и о н н ы ск и х в ели ч и н к у а з ы в а ьт с к си емст е ди ф ер н ц и а л ь н ы г а ет л ь н ы х фн у к ц и й м ы дв е в с п о м о га те л ь н ы
а от ч к ь — н люу
. Т о гд
и в н ач ль н ы а с о в т ес ю у щ и
о д о г а д ть с я и усл о в и ям и
, треб ум а
т в р ем н е н ач ль н ы
й а х р к те р , п о э тм у р аз м ер н о ст я н е бт уд . Т еп р ь и о нс д х у ю з адч у н ад х р уа в н е н и й . Д л я э от г о в о дя т с от л ь к , к а к о в п о р яд к руа в н е н и я . В да н н о м с чл у а е н фу к ц и и у х и у 2 , о п р едля м ы е ф о р м луа м \У = У>
Н ес л о ж н ным
й м о ен
, ч т о си емт я лд
и р а в н я е с л оу
и фи з и ч е о п р и в ес т о всп ом е н е о б ихд и
-
и -
2У = У' •
а ид ф е р н ц и а л ь н ы я даль н ей ш е
х р уа в н е н и й р а б о ты
, та к о в
й с н ач ль а zyxwvutsrqponmlkjihgfedcba
oj" В от р й э ат п с о т и т в н ап и сан и и фн у к ц и и руа в н е н и й . Ф ну к ц и я до л ж н а и м ет ь вд а во н хд ы п о котро й п р о и з в о д и ст я ди ф е р н ц и р о в а н и е рав е н ч и сл у н е и з в е сн т ы х н фу к ц и й с и е мт ы фи к с и р о в а н ы , да ж е есл и t яв н о н е вохид т в н фу к ц и и я в л се т я в е к от р п рав о й ч аст и с и е мт ы р аз би р аем о г о п р и м ер а п ри в ед н в л и сит н г е
дл
я с и емт ы ид ф е р н ц и а л ь н ы х х а р гм у е н а т : п ер м н у ю /, , и в е к то р , р а з м е р котрог о . Чи с л о и п о р я до к а р гм у е н от в си есмту . В ы онхд ы м а р гм у е н о т м . Т ек с т н фу к ц и и o sc il лд я 6.15.
л ав Г
6. М е т ыо д
вчиы с лени й
в MATLAB
2
95zyxwvutsrqpo
Р еш и т е з адч у , и с п о ль з яу , н а п р и м ер , со лв е р o d eii3. Вондх ы м и а р мг у е н ат м и с о л в ер о в в сам о м п рост м сч л ау е я в л ю ст я : куаз етл ь н а нф у к ц и ю (и л и е е и м я в а п о с тр о фа)х , в ек от р с н ач ль н ы м и к о н еч н ы м з н а ч ен и е м в р ем н и х а рм гу е н н а б л ю ед н и я з а п р о ц ес о м и в ек от р н ач ль н ы х с ул о в и й . В ы ондх ы от в дв а : в е к то р , соедр ж ащ и й з н а ч ен и я в р ем н и , и м а рт и ц а з н ач ен и й и ск о м ы х н фу к ц и й в со втес юу щ и е м о ен т ы в р ем н и . З н ач ен и я фну к ц и й р а с п о л ж ен ы п о с от л б ц а м м а тр и ц ы , в п ерв о м с то л б ц е — з н ач ен и я п ер в о й нф у к ц и , в о в то р м — в то р й и т . д . В ис л у п р о едл ан н ы х з ам е н zyxwvutsrqponmlkjihgfe у х = у, У г = у\ йвпыре сце б лто маитцры с о е др ж и т ка к р а з з н ач ен и я н е и з в е с нт о й н фу к ц и и y(t) 9 йещ я вдхо в е о н д х и со е ьон циалр фе иф д авуин,ре а в то р о й с от л б е ц — з н ач ен и я е е п р о и з в о дн о й . К а к п р а в и л о , р а з м ер ы м а рт и ц ы и век е ср аз у от браз и т ь р е з л у ь ат т н а гр а т о р а д о с та о ч н о в ел и к и , п о э тм у чл уш фи к е . П р и м ен ен и е со лв ер а л д я н о а жх е д н и я р еш ен и я п р и t > sxint = deval(sol, xint) п р е дп о л а г е е уд
т вы ч и сли т с ы в а ю ст к о м п о н ен п р и м ер со т я щ и к о м а н ды
т куа з н и е в е к то р а xin t с к о р ди н а т м и от ч е к ь р еш ен и е . Н а й ден н ы е з н а ч ен и я к о м п о н ен я в в ы охнд о м а р мг у е н ет , т . е . в sxin t (:, i) рхан яст т и ск ом й в е к о т р - н фу к ц и и в от ч к е с к о р д и н а то , лд я в ы ч и слен и я к о м п о н ен т р еш ен и я н а о рт е з к х от ч к а х с ш аго м 0.02 и п о срт ен и я гр а фи к о в до с та о ч н :
, в к о т р ы х сле т п о с тр о ч н о з ап и я з н ач ен и я все й xi n t ( i ) . Н а е [0, 5] в р а в н о т о вы п олн и т
х ь
» xint = 0:0.02:5; » sxint = deval(sol, xint); » plot(xint, sxint(1, :), xint, sxint(2, :)) И н ет р п о л я ц и ч с ал у во н хд ы
я воз м ожн е н ео б хид м х а р мг у е н от
о ку а з т в
а то л ь к о лд ь и х н о м ер
>> sxint = deval(sol, xint, idx)
я н ек о т р ы а в в ек от р
х к о м п о н ен е idx и в к лю ч и т
т р еш ен и я
, в эот ь ег о в сп и со
м к
298
аЧс т ь
II. Вчиы с лени я
zyxwvut
и прогам м и р о вани е
В н аш е м п р и м ер е р еш ен и е з адч и К ош и лд я с и емт ы ид ф е р н ц и а л ь н ы х р уа в н е н и й , с о втесюу щ е й и о с н хд о й з адч е л д я ди ф е р н ц и а л ь н о г о р ау в н е н и я в то р о г о п о р я дк а , б ы л о п о чл у е н о п р и п ом ощ и с о л в ер а o d eii3, котры й осн ова н н а м ое т д е дАа м с а —Бэ ш ф о р та —М и л то н а . К р о м е с о л в ер а o d e i i 3 , M AT L AB и м е т е щ е р я д с о л в е р о в дл я з а да ч и К ош и : ode45, ode23, я о т o d e i5s, ode23s, o d e23t , o d e23t b, и н т е р ф е й с к о то р ы х н е о тл и ч а е тс o d e l l 3 .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е ча н и Вы зо в с о лв р е н ак о в м у в ы бо р о б д а в л яе т о ч н п т р м ы ж еу ач е обрща не и П р и вы бор е с о л в ер с и ем т ы ид ф е р н ц и а л ь н ы р е з л у ь ат т и л и з а тр а ти т р а з де л е н а п р и м ер с я в а ж н о с т ь с о вт е с и
Р е ш ни
е ура вне и
В к а ч е с тв
е объект
з а с ущ е с т в о в а н и е ков
. Ч и с л
е а с он ди у з ол у
м и дм ув я н вы од х м и м н е у ра г т в н а зан д о м рзе о т к . Еи дн ве тсн ы е о ч кт и и са м ещялв утсое у с дм ув я н вы од х м и м н е а ур г и т
я к нм е а лд
я р еш ен и ь сли ш к о
е с и ем т
м м н ог ы р уа в н е н и
я с о л в ер
а р еш а ем о
й Ли— т о к т л о ьеВ р а и с л е до в а н и в и ж е р т
т к ои д р ode45 ю в су л -
й своел т и н р пе т о ц л я и .
и н е о б х ид м о ч у и ыт в а т ь с в о й свт , и н ач е м ож н о п о лч у и т ь н еот ч н ы о в р ем н и н а р еш ен и е . В ю уследщ е й Ло тк и —В о л ь те р ы е д м о н с р т и р е ту й з адч е .
х руа в н ен и й
. О б о з н а ч и м о хи щ н и к о
я з адч
и п ри вод
а й м -
ы я воз ьме
м м о де л
ь Л о т к и —В о л ь т е р р
ы борьб
ы
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG у { (t) — ч и с л о ж е р тв , у 2 (t) — ч и с л о хи щ н и в в т е ч е н и
е врем ен
и t и з м е н я е т с
я п о з а к о н
у
\ у'\ =Р'У\ - Р'У\ У2> \2У =- 'К 2У +
Г
'У\П У
г д е Р — ув е л и ч е н и е чи сл а ж ерт в в о т с ут с т в и е хи щ н и к о в , R— ум е н ь ш е н и е чи сл а хи щ н и к о в в о т с ут с т в и е ж е р тв . В е р о я т н о с т ь п о е да н и я хи щ н и П к о м ж е р тв ы п роп орц и он альн а и х чи сл у \У 2У * Р И э то м слагаем о е ~Р'\У 2У с о т в е т с т в уе т вы ми ран и ю ж е р тв , а г • у х у 2 — п о я в л е н и ю хи щ н и ков . В о з ь м и т е дл я п р и м е р а Р = 0.8, R = 1, р = г = 0.001, с ч и т а й т е , ч т о в н а чальн ы й м ом ен т врем ен и бы л о 1000 ж е р т в и 1100 х и щ н и к о в . П р и п о м о щ и солвер а o d e i i 3 р е ш и т е э т у с и с те м у ди ф е р е н ц и а л ь н ы х ур а в н е н и й дл я Г < 100, а з а т е м и с п о л ь з уй т е ode23s (з а д а н и е е г о а р г ум е н т о в п р о и з в о ди тс я ан ало ги ч н о o d e i i 3 ) . В ы в е д и т е п о л уч е н н ы е пр и п омощ и o d e i i 3 и ode23s реш ен и я н а раз н ы е графи к и , и с р а в н и т е и х . Л и с т и н г 6.16 с о д е р ж и т те к с т н е о б хо д и м ы х ф ун к ц и й .
л ав Г
6. М е т ыо д
вчиы с лени й
299 zyxwvutsrqpon
в MATLAB
, от ч н ы м р еш ен и е м з адч и Ло тк и —Во л ь те р ы н а п лоск ост и zyxwvutsrqpon я з а м к н ат у я к ри в ая . Г р а фи к и п р и б л и ж ен н ы х р еш ен и й , п р и в е г о т рд г а у , о хт я в ы ч и слен и я п о ед н н ы е н а ри с . 6.9, си ль н о о лт и ч а ю ст я рд у му о л ч а н и ю в o d eii3 и ode23s п р о и сохяд т с о ди н а к о в й то ч н о с ть ю . П р и б л и ж ен н о е р еш ен и е , п о члуен н о е с о л в ер о м ode23s, н а м н о г о от ч н е , че м в сч л ау е o d eii3. Д ел о в то м , ч т о руав н ен и я Ло тк и —Во л ь те р ы яв л ю ст я п р и м ер о м та к н аз ы в аем ы х ткс их же ,тимес дл я реш ен и я к о т р ы х в п ак ет е M ATLAB и м ею ст я с п ец и а л ь н ы е с о л в ер ы . Оид н и з них — ode23s. В сп ра вочн о й с и ем т е MATLAB п ри вед н рд г о у й п ри м е р ж е ск т о й з адч и — руав н ен и е В ан - ерд- П ол я с б о л ь ш и м з н а ч ен и е м п а р м е тр а , дл я и с леодв ан и я к о то р о й е с ул д т п р и м ен ят ь сп ец и аль н ы й со лв е р odei5s (см . р а з д .zyxwvutsrqponmlkjihgfed Mathematics: Examples: Differential Equations - Initial Value Problems, п о рд а з едл ы The van der Pol Equation, ц = 1000 (Stiff) и Stiff Problem (van der Pol Equation) с п р а в о ч н о й си емст ы MATLAB).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Ка
к и з в е с нт о у х у 2 я в л е с т
ше Р ине
е и н е в ра у
й Л-а к от ре т ьоВл
а (ode113)
ше Р ине
е уиневра
й Л-а к от ре т ьоВл
а (ode23s)
1100
1000
900
800
700 700 600
600
900
1000 1100 1200 1300 1400 в рт же ы
700 800 900 1000 1100 1200 1300 1400
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA втреж ы
Рис
И та к , п р и реш ен и н ач ль н ы м и с лу о в и я м о т св о й ст в з адч и м ен и я с о лв ер о
. 6.9. С р а в н е н и
е с о л в е р о
и в MATLAB ид ф ер н ц и аль н ы и е с ул д т п рав и ль н . В ю уследщ е м р а з ед л в MATLAB.
в o d e l l 3 и ode23s
о вы би рат е к р а тк
х р уа в н е н и ь со лв е о о б ж с а у дю с т
й и си е т м с р в з ав и си м о ст и я о бласт и п ри -
300
аЧс т ь
II. Вчиы с лени я
zyxwvuts
и пр о г ам м и р о вани е
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 6.16. Ф а йл - иц кну ф я дл я с ра вне и я ode45 и ode23s izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
function comparesolvers % фи н а в о р и м р о
е вр о т к е
а ны н ь л а ч
х уи в о л с
й
Y0 = [1000; 1100]; % во з ы
в ср е в л о
а odell3
[Т , Y] = odell3(@LotVol, [0 100], Y0) ; % во в ы
д гк и ф а р
% в вд и
а ри н е ш
я иг о н д о х с
е п оксечиртемар
о г д оньлаицнер ф и
й ко в и р
о уи н е в а р
я
й
subplot(1, 2, 1) plot(Y(:, 1), Y(:, 2)) % во в ы
д пи н е с я о
й н а ги ф а р
title('Ри н е ш
й Л— икто р етьлоВ
ы (odell3)')
1
xlabel('жывтре
)
ylabel('х' ик нщи %во з ы
к
е уи н е в а р )
в ср е в л о
а ode23s
[Т , Y] = ode23s(@LotVol, [0 100], Y0) ; % во в ы
д гк и ф а р
% в вд и
а ри н е ш
я иг о н д о х с
е п оксечиртемар
о г д оньлаицнер ф и
й ко в и р
о уи н е в а р
я
й
subplot(1, 2,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 2)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA plot(Y(:, 1), Y(:, 2)) % во в ы
д пи н е с я о
й н а ги ф а р
title('Ри н е ш
е уи н е в а р
xlabel('ж' ывтре
й Л— икто р етьлоВ
ы (ode23s)')
)
ylabel('х' ик нщи % пи ц к н у ф д о
к
) я ви н е л с и ч ы
я пы в а р
х че т с а
й уи н е в а р
й
function F = LotVol(t, у ) F = [0.8*у(1 ) - 0.001*у(1)*у(2)
об ы В
р сол ве р
В да н н о м р а з де л р еш ен и я о б ы к н о в ен н ы ч аль н ы м и сул о в и я м и от д а х р еш ен и сан и е м а л г о р и тм о M ATLAB.
а дл е о п и сан
я ре ш ни а с рт а е ги х ид ф е р н ц и а л ь н ы . Ч и та е л и
я ид ф е р н ц и а л ь н ы в с о лв ер о в
; - 1.0*у(2 ) + 0.001*у(1)*у(2)]
я за д ч
и Кош я п р и м ен ен и
, и м ею щ и х руа в н ен и й , к о т р ы е п р и в е дн
и zyxwvutsrqponmlkjihgfedcbaZYXWVU я с о л в ер о
х р уа в н е н и е п р е сд а т в л е н и , м о гу
;
в M ATLAB лд й и л и си е т м с на е о ч и с л ен ы х ме т в о с п о л ь з о в а ть с я оп и ы в сп рав о ч н о й с и ем т
я е
л ав Г
6. М е т ыо д
вчиы с лени й
301 zyxwvutsrqpo
в MATLAB
О ч ен ь ч аст о со лв е р ode4 5 дае т в п о л н е о хр ш и е р е з л у ь ат ы , и м соти т вос п о л ь з о в а ьт с я в п ер в у ю о ч е р ьд . О н о сн о в а н н а ф о р м л ау х Р ну ге—Кту ч е вт р от г о и п я от г о п о р я дк а то ч н о с ти . С о л в е р ode23 атк ж е осн ова н ф о р м л ау х Р ну ге—Кыту , н о ж у е бо ле е н и з ког о п о р я дк а то ч н о с ти . И м е см ы с л п р и м ен ят ь ode2 3 в з а д ч а х , соедр ж ащ и х н еб о л ь ш у ю ж е с кт о с ьт , к о гд р т е бс у я п о чл у и т ь р еш ен и е с н ев ы со к й е сп т н ь ю то ч н о с ти . Е сл и ж е рте с ет б у я п о чл у и т ь р еш ен и е н е ж ск т о й з а дч и с вы сок й то ч н о с ть ю , т о н аи т адс т o d eii3, о с н о в ан н ы й н а моетд е п ер м ен н о г о п о р я дк чл у ш и й р е з л у ь ат дАа м с а —Бэ ш ф о р та —М и л то н а . С о лв е р odeii3 о к аз ы в аест я о с б ен н о эф фе к и т в н ы м лд я н е ж к с ти х си е т м ид ф е р н ц и а л ь н ы х руа в н е н и й , п р а в ы ч аст и котры х в ы ч и с л я ю ст я п о сло ж н ы м ф о р м л уа . Вс е солвер ы п ы ат ю ст н ай т и р еш ен и е с о нт о с и ет л ь н о й от ч н о с ьт ю 1(Н и а б с о л ю т н о й — К Н . оХ рош и м е тс о м к а ч е с вт а п р и б л и ж ен н о г о р еш ен и я я в л се т я в еу л и ч е н и е от ч н о ст и в ы ч и слен и й (з адн и е то ч н о с т и в ы ч и с л ен и й и р яд а дргиу х п а р м е тр о о п и сан о в сю уледщ е м р а з ед л ) . Е сл и в с е п о п ы кт т о в о з м о ж н о си е т м п о хид котры й од п с у к а е ад ч у с н ев ы с о к ode23s, р еали з юу щ и
ы н а
и п р и м ен ен и я ode45, ode23s, odeii3 н е п р и в о дя т к с п у хе , ч т о р еш а ем а я с и емт а яв л сет я ж ескто й . Д л я р еш ен и я ж ексти т со лв е р odei5s, о с н о в ан н ы й н а м н о г ш а го в м м ое т д е Г и ра т и з м ен ен и е п о р ядк а . Е сл и требсту я р еш и т ь ж к е с ут ю за й то ч н о с ть ю , т о охр ш и й р е з л у ь ат т м ож е т да т ь с о л в е й о дн о ш а г о в ы й м ое т д Р о з ен б р о к а в то р о г о п о р я дк а .
т а а е я в , х , р
П р о с ет й ш е е и с п о л ь з о в а н и е в ы ш еп реч и слен н ы х с о л в ер о в п р о и з в о ди с т я та к "Са хме ринеяш ач з д с и м ьын алч и"м увиоя лс ж е , к а к и odeii3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд й а он д г)авы л .
П р и р еш ен и и п р а к ит ч е с к и х з ад ч в аж н о к о н тр о л и р о в а т ь в ы ч и с л ен и я . В с е с о л в ер ы од п с у к а ю т з адн и е р яд а п а р м е тр о в , п о з в о ляю щ и х п овы си т ь эф фе к ит в н о с т ь в ы ч и с л ен и й в з ав и си м о ст и о т р еш а ем о й з адч и . В ч а с нт о с ит , п р и реш ен и и жкести х з ад ч з адн и е як о б и ан а си емст ы п о з в о л яе т в уе л и ч и т ь б ы с р т о ед й с в т и е в ы ч и с л ен и й . О нд о й и з в а ж н ей ш и х а х р к ет р и с ит к п ри бли ж ен н о г о р еш ен и я явлсяет я ег о ттьс.он ч zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
е проец с о
п р а Ув л е ни Э ф е к ти в н о н и м ан и я осн овн ы M ATLAB н вы брат ь п о дх я щ и и п р о и з в ес т бли ж ен н о г о то ч н о с ть ю . С о л в ер в ы ч и с л и е тл ь н ы
м ре ш ин
е р еш ен и
я
е ди ф е р н ц и а л ь н ы
о бе з п о . С о л в е р ы я "ч е р н ы м и ящ и к ам и " . П о л ь з о в а те л ю н е о б х ди м о й со лв ер , в з а в и с и м о с т и о т свой ст в р еш аем о й з ад ч и , е су та н о в к и , о б е с п е ч и в а ю щ и е п о лчу е н и е п ри я с тр е б у м ы м и с в о й с тв а м и , н а п р и м е р , с з а д н н о й
х воп росов е я в л ю ст и н е о б х ди м ы р еш ен и
ы од п с у к а ю
т куа з н и м п р о ц ес о м
х ру а в н е н и х с ч и с л ен н ы м
, с в яз а н н ы
е п а р м е тр о . С п о с
б з адн и
в л д я к о н тр о л я п а р м е тр о
й н ев о з м о ж н и м е то да м и
я и пу р ав л ен и в с о л в ер о
я в ode4 5,
302
аЧс т ь
II. Вчиы с лени я
и прогам м и р овани е
zyxwvutsrq
а н а л о ги че н т о му , к о т о р ы й o d e 23, o d e l l 3 , o d e l 5 s , o d e 2 3 s, o d e 2 3 t И o d e 2 3 t bzyxwvutsrqponmlkjihgfedcbaZYXWVUTS в ы п р и м ен ял и п р и н оажхенд и и корн е й фн у к ц и и и л и л о к а л ь н ы х м и н и м уов . З н а ч ен и я п а р м е тр о в з а п и с ы в а ю ст я в пу р а в л яю щ у ю с р кт у , к о т р а я с о з а де т я н фу к ц и е й odeset. В общ е м сч л ау е о б р ащ ен и е к odeset и м е т в и д :
o p t i o n s = o d e se t ( . . . , ' в и д _ к о н т р о л я ' П а р м е тр п р и в е нд м н о иг п о ч л уе н и
ы со лв ер о в ы в та б л
, с грпу и р о в а н н ы . 6.6. С елуд в м ож е т п о в л еч х р е з л у ь ат о в
х п а р м е тр о е н ев р н ы
, з н а ч е н и е
, . . . )
е в к аетго р и и п о с в о ем у н аз н ач ен и ю , ь в в и уд , ч т о н е о п р а в да н н о е и з м ен ен и е ь м уен ь ш ен и е э ф е к ит в н о с т и с о лв ер а ил и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
т и м ет
6.6. Пытер амр
и ц Та л б п у Гр
Им а
К о н р от л ыв ч и н е л с
ь точн ост й
Ша
е дан ы
Як о б и а М р иа т ц
J a c o bia n , J P a t t e r n , Ve c t o r iz e d
а мса с и мриат ц ы ОД У
С о бы и т
M ass,M StateD ependence, M vP attern , M assSin gu lar, I n i t i a l S l o p e а
E ven t s я
Т о ль к
MaxOrder, BDF
о дл я ode 15s
С р тк у а с о п ц и ям optim set п р и р еш ен и
и с о л в ер о и урав н ен и
в м о и д ф ц и р ес т у й и м и н и м и з ац и
options = odeset(options, в_д и я л о р т н о к Вы зо окн ск обк а
в odeset бе з овндх ы е и м ен а в се х с в о й с т х куа з н ы з н а ч е н и я
Ф ну к ц и р ут
)
O u t p u t F c n , O u t p u t S e l, R e fin e , S t a t s е
н
м е итс
д я ол р т онк
I n i t i a l S t e p , M axStep я
н В доы х
а (ви
R elTol, AbsTol, N ormControl и
г и н р гие т о в а н и
я прет ма р
odeset
, з,е и н е ч а н ...
х а р мг у е н от в и и х воз м ожн ы , и сп о ль з ему ы
я odeget п р едн а з н а ч ен
я та к ж е и фну к ц и й
а лд
, к а к и в чслау е с :zyxwvutsrqponmlkjihgfedc
)
в п о з в о л яе
т п о с м о рт е е з н ач ен и я
е с о л в ер ам я и з в л еч н и
ь в к о м а н дн о м в ф и р г ун ы .
, п ри ч е и п о ум о л ч а н и ю я з н ач ен и
я с в о й свт
м х
а и з к р с ут
-
ы
инечанз Пр лен о П р е дн а з н а ч е н и вочн о
е = odeget(options, _д и в я л о р т н о к и ге н е р а ц и , в э от й с и е мт
и ср к т у м счлуа
ы н фу к ц и е е в о з в р а щ а е ст
е все . Д л
)
х п а р м е тр о я п о чл у е н и
я п ос т у
й odeset з н ач ен и й м ас и в
в с о л в ер о в раск ры т я эот й и н ф о р м а ц и
е м о гл
о бы т
ь н е о п ред
-
. о в и н те р а к ти в н о и о б р а ит е с
й сп ра ь к о п и сан и
ю
л ав Г
6. М е т ыо д
вчиы с лени й
303 zyxwvutsrqpo
в MATLAB
, н а п р и м е р , и н екдсн ы м п ои ск о м н а н фу к ц и и odeset (в о с п о л ь з о в а ш и с ь в к лад е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Index) и к р а з д . Mathematics: Differential Equations: Initial Value Problems for ODEs and DAEs: Changing ODE Integration Properties. Р я д о п ц и й со лв ер о в , к и з м ен ен и ю котры х п р и о хд ст я п р и б е га т ь н аи бо ле е ч а с то , м ы р а с м о рт и м в сю улед щ и х н ес к о л ь к и х р а з ед л а х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
е т онсчт
З а д ни Т оч н ост б л и ж ен н о г да н н о г к о н тр о л
ь в ы ч и с л ен и о р еш ен и я о в и д а к о н тр о л я то ч н о с т
1. П о л о к а л ь н о есл и п а р м ет 2. П о ев к ли одв
и всилечны
й и ша г
й о к аз ы в ае . Уп р ав л яю щ и я п ер ч и с л ен и в з ав и с и м о с т
а итн е ригаовн
т щ с у е вс т н о е п а р м е рт ы в та б л и о т з н ач ен и
я
е в л и ян и ы с о л в ер о . 6.7. Д о п сук аест я п а р м е тр
е н а к а ч е с вт о п ри в и и х з н ач ен и я дл я дв а с п о с б а N ormControi:
я а
й п о гр е ш н о с т и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA е 1 z'- о й (yt) к о м п о н ен т ы в е к то р а р еш ен и й , р N ormControi и м е т з н ач ен и е ' o ff (п о ум о л ч а н и ю ) . й н орм
е п о г р е ш н о с ит
, лд я N ormControi, усат н о в л ен н о г
о в
'оп \
В п ер в о м чс л ау е от ч н о с т ь с ч и а с ет я од с и т г н о т у й п р и в ы п о л н ен и и с лу о в и т в е к то р а р еш е Ј / ( ^ ) > options = odeset('OutputFcn', @odeplot) » [T,Y] = ode45(@oscil, [0 15], Y0, options); П р е сд а т в л е н и и з в о ид с т
е р еш ен и
я н а фа з о в й п ло ск т И odephas2!
и ПОМОЩ
я п р
и та к о е
, к а к н а р и с
. 6.13, п ро
-
>> options = odeset('OutputFcn', @odephas2) » [T,Y] = ode45(@oscil, [0 15], Y0, options); П о л ь з о в а те л н и я и л
ь м ож е и о б р а б о тк
Р а с м о рт и те г р и р о в а н и
т с о з ад в т и р е з л у ь ат о
м о ид н п рост е ди ф ер н ц и а л ь н о г
ь св о в к а ж од г
и фа й л - н фу к ц и
и дл о ш аг
й п р и м ер
. Т ресбту
а ч и с л ен н о г
я в и з аул и з а ц и о и н те гр и р о в а н и я
и р еш е
я п р о и з в о ди т ь ч и с л ен н о е ин я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
о урав н ен и
у" + у = е л (sin х + 2cos у ) пр
и н ач ль н ы
ни
я н фу к ц и
н о в ен н ы ч аст
х с л уо в и я
х у( 0 ) = 0 , F(t,Y,Y) д о ет х п о р
и у( х) н е п р ев з о й ед х ид ф е р н ц и а л ь н ы
ь в фай л- нфу к ц и
т 100. П р и в еид т х р уа в н е н и
и syst (ли ст н
.
е урав н ен и й и з а п р о г р а м и р йу т
г 6.18).
(6.6) , п о к
а м л оуд
ь з н ач е
е к си есмт
е о бы к е е е п рав у
ю
-
л ав Г
6. М ет ыо д
вчиы с лени й
в MATLAB
- 0.2
- 0.4
Рис
0
. 6.13. В и залуи з ац и
я р еш ен и н а фаз о в
нт с и Ч
г 6.18. Прав
0.2
я част
f u n c t i o n F = s y s t ( t ,
ь сист е м
я ди фер н ц и аль н о г й п ло ск т
309zyxwvutsrqponm
0.4
0.6
0.8 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
о р а ув н е и я (6.4) и (odephas2) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
ы де рф инца л ньы
х р у а в не и
й ( 6.6)
у )
F = [ у ( 2 ) ; e x p ( t ) . * ( s i n ( t )
2* cos(t)) - yd)];
П р и вы з ов е с о л в ер а , к п р и м ер у , o d eii3, ртесбу рован и я , н о ег о п р ав я гр а н и ц а з а р н е е н еи з в еснт в ка о й м о ен т в р ем н и м л оу д ь з н а ч ен и я н фу к ц и п р и м ер , дл я о рт ез к а [0, 10] п о члуаю ст я щ с у е вс т н
я ку а з а т ь о рт е з о к и н е тг р и а — м ы н е з н ае м а п р и о р и и с а нт е т боль ш е 100. Н а о бо ль ш и е з н а ч ен и я :
, -
» [T,Y] = odell3(@syst, [0, 10], [0 1]) » plot(T, Y(:, 1)) Вы ох д со ти т в н ап и сан и и фай л- нфу к ц и и дл я о б р а б о тк и з н ач ен и я , в ы ч и с лен н о г о н а щек ту е м ш аг е и н те г р и р о в а н и я . С о л в е р е д бу т в ы з ы в ат ь эт н фу к ц и ю п о сл е к а ж од г о ш аг а и ощсу есвтля ь ад л ь н е й ш и е е дй с в т и я в з ав и си м о ст и о т в о з в р ащ аем о г о е й з н ач ен и я . Н а з о в е м э т у н фу к ц и ю soiproc. Е з а го л в о к од л ж е н и м ет ь в и д : fun ction st a t u s = so ip r o c ( t , y, flag)
у е
-
310
н Во д х он д
аЧс т ь
й а рм гу е н о и з тре х з н ач ен и й
т flag явслет , к о т р о
1
• ' i n i t — п р и п ерв о ц се а и н те г р и р о в а н и я от в — г р а н и ц о рт е з к ч аль н ы х з н а ч е н и й
я с рт о к в о е в сво ю оч ерд
м вы з ов . П р а и н ет г р и р о в а н и
II. Вчиы с лени я
й п ер м н о ь о п р е л дя
й и м ож е т с о е рд ж и м о
е н фу к ц и и soiproc с о лв ер о и эот м t явлсет я в е к от р я п о в р ем н и
1
т п р и н и м ат
ь е t zyxwvutsrqponm ц у :
м д о н ач л а п ро м и з в уд х э л ем н , а у — в ек от р м на -
;
• • ' (пасту я с рт о к а ) — п осл е к а ж од г о ш аг а и н те г р и р о в а н и я а р мгу е н ат х t и у н оахядст я е кт щ у и е з н а ч ен и я а р гму ен т т t м ож е т с о ед р ж а т ь н ес к о л ь к г о р еш ен и я . Армгу ен п р и эот м в i- о м сот л б ц е м ас и в а у з ап и сан ы з н ач ен и н и я дл я t ( i ) ; • 'don e — п о сл аль н ы х руа в н е н и й
zyxwvu
и пр о г ам м и р о вани е
е з ав ер ш ен и . В к ач есвт
я ч и с л ен н о г е t и у п ер адю ст
. В о овндх ы
х
а и п р и б л и ж ен н о о е тк щ у и я к о м п о н ен
о р еш ен и
я с и ем т я п сы т у
х з н ач ен и й
, т реш е
-
ы ид ф ер н ц и
-
е м ас и в ы
.
я п ос т у й с тр о к о й , дл и н а в о х дн о г о а р мгу е н т а t В с ч л уа е , к о гд а flag явлсет о п р е дл я с т я з н а ч ен и е м с в о й свт а Refine. П о му о л ч а н и ю он о равн о 1 и вс е с о л в ер ы (к р о м е ode45) н а к ажод м ш аг е удб т в ы з ы в ат ь н фу к ц и ю soiproc то л ь к о о т о дн о г о з н ач ен и я н ез ав и си м о й п ер м ен н о й . С о тв е с тв е н н о , у уб м п оль з о е д т в е к от р м с о з н а ч ен и ям и к о м п о н ен т р еш ен и я , че м м ы и е д бу в а ьт с я в н аш е м п р и м ер е дл я со лв ер а o d eii3.zyxwvutsrqponmlkjihgfedcbaZYXWVUTS ^
Пр и м е ча ни
ю п я л в а р щУ и й п мрате о ры к т х с т ы ве я ич л с Refine на етлвос у о ль т к о дл я кон ц щ еук м ш е га . П р з ек р е и н р г е т о в на и я к ь ос л о указн о п ц с е ьи н л а ы х н ж ел о п д и р й ич е о т оьлан тс ы х
е р Refine н пдзаер ч н дл я ш е нр и е н а о дж а к м ш га н в 1 (п о умчнола и ю ) , т о пирлнбже о а орзетка , п о корм т у п ио р с з т д в и униелч в и Refine с тя дов я ч о н т ы п ж ум о р е , оркыт е р аз б и в аю т ге в Refine. шРен и е в эи т х точка , энокщмя и х вм ер я са тче , вд гес а п о унчмало и ю ие пьсзлоу
е работ ы н фу к ц и и soiproc фо р м и ресту В р е з л у ь ат st a t u s, к о т р ы й м ож е т бы т ь 1 л и б о 0. Е сл н фу к ц и я soiproc в ер н лу а 1, т о п р о ц ес с и н те гр и р о в а н и л и 0 — т о п р о д л ж а е тс я . И та к , н а м ртебсу я з а п р о гр а м и р о в а т а л г о р и тм : сел и fl a g— п сату 100, т о в ер н ту ь 1, и н ач е в ер н ту в л и сит н г е 6.19.
ь нф у к ц и ю я с рт о к а и мл о у д ь 0. Т ек с т требму о
и со лв е
я унилеч в
я чилс
а точке
е и н р г е т о в на и я
. л сЕ е рше н и
я и рнигеоват и
е нси тдо ха
е н а те е оч к т и н а от о и н о вл р а е т , я пр и пщмо и р ode4 5, в оил т .
о н а о ь л к тс х с ы т в е яи ч л с . Свеол т 4 и н рвеал т я в ы о х дн о р о б н а р жу и в а е т я п р е к р а щ а е тс я
й а р мг у е н
, р еал и з юу щ у ь з н ач ен и
, в и я
т , ч т о , а ес -
ю п рост
й
я (у 1 ) п р ев о с хид й фа й л - н фу к ц и
т и п ри в ед
н
л ав Г
6. М е т ыо д
вчиы с лени й
з 11 zyxwvutsrqp
в MA TLAB
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 6.19. Ф а йл - иц кн фу я s o l p r o c л д я п р о ве к и р икт е р и я о с т а но в а с о л ве \ р а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
- zyxwvutsrqp
function status = solproc(t, у , flag) % фи ц к н у
я т е я л е д р п о
% ри н е ш
я л с и ч
% ел с
, и с ы в е р п о 100 пл с о
л л и мл у д о е г о д ж а к
и д а — status = 1, ел с
о шг а и не
ь по в р е
й кт н е о п м о
а и н а в о р и г е т н и
ы я
т — status = 0
status = (length(flag) == 0)&&(abs(y(l)) > 100)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
В тел е нфу к ц и и дл я о п р едл н и я з н ач ен и я в ы охдн о г о а р мг у е н т а м ы з ап и са л и л о ги ч е с к о е в ы р аж ен и е с о п е р а то р м && (ло ги ч еск о е "и ") , к о т р ы й пр и н ев ы п о л н ен и и п ер в о г о с лу о в и я в то р е ж у е н е п р о в ер я т . Д ей с вт и етл ь н о , в то р е с лу о в и е и ме т см ы с л п р о в ер ят ь то л ь к о в то м счлуае , к о гд а со лв е р н а ще к т у е м ш аг е и н етгр и р о в а н и я в ы з в а л н аш у н фу к ц и ю с flag, р а в н ы м п ос т у й с рт о к е . П р и п ослнед м вы з ов е solproc со лв ер о м в о в о х нд о м а р мг у е н т е у п е р а дс т я п со т у й м ас и в , и о б р а щ ен и е к ег о п ерв о м у э л ем н т у п р и в ел о б ы к о ш и б к е (з ап и с ь ло ги ч еск и х в ы р аж ен и й в MATLAB п о др о б н о р а с м о тр е н а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гаве л 7). П р и фо р м и р о в а н и solproc в к ач есвт гр а фи к п ер в о
и с рк т у е з н ач ен и
ы option s з а д й т я output Fen, в ы з о в и т ы р еш ен и я .
й к о м п о н ен т
е к у а з етл е со лв е
ь н а н фу к ц и р o d eii3 и п о с тр о й т
ю е
, ©solproc) » options = odeset('OutputFcn'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ » [T, Y] = odell3(@syst, [0, 10], [0 1], options) » plot(T, Y(:,l)) П о лч у и в ш и й с в р ем н н о М п о лч у а е м о р еш ен и ны ны ни
я гр а фи к
, п р и в едн н ы
м о с ат н о в
е в ы ч и с л и етл ь н о г
ы п р и в ели
б уду
, п о ж а лйу й в п р о ц ес я solproc м о гл й н а яз ы к е п р о гр а м и р о в а н и й сп ос б в и з а ул и з а ц и я к о н с рт к у ц и й яз ы к т Н Т П ЯО
нж е ы И з ч уе н и о то м м и ро в ан и П р и п о м щ р еш ен и я г о н е о б х ид м
Ы те к с т
. 6.14, св и елдть св у .
й п ри м е р и сп о ль з о в ан и о и н те г р и р о в а н и я ь и бо ле е сло ж н ы я MATLAB, к о т р ы я и р я д а е г о а х р к ет р и с ит к я и де с к р и п о т р н о
т о св о е
. Ф ну к ц и й а л г о р и тм й р еал и з еу
-
я и н фо р м а ц и , я о б р а б о тк и , з а п и с а н т с о б втен . П о с л е о св е й гр а фи к и ва м
Й o d e p l o t , o d e p h a s2 , o d e p h a s 3 , р а с п О Л
-
е \ toolbox\ matlab\ funfun\ осн овн ог о к а тл о г а MATLAB. в э и т х фа й л - н фу к ц и й п о з в о л и т п о чл у и т ь п р е сд а т в л е н и е ь о б р а б о тк у в ы о х нд ы х ад н н ы х с о л в ер о в (п р о гр а м 7—9). й гр а фи к е п о св ящ ен ы гавы л
и п а р м е тр е удб о ку а з а т
и р еш ен и а п р о гр а м и р о в а н и ы ф а Й Л - ф ну К Ц И
х в п о к д а лт г е а л го р и тм о , к а к о р га н и з о в а т ю и дес к р и п то р н о , к о т р ы
, сам ы й п рост е ч и с л ен н о г а б ы с о ед р ж а т
й н а ри с о п р о ц ес а
а Outputsei в ы м ож ет т п е р ад в ь т с я в фа й л - н фу к ц и ь в е к от р н о м ер о в р т е б му ы
е о п р е дл я т
ь н о м ер ю о б р а б о тк и х к о м п о н ен
а к о м п о н ен т ил
. Д л и о ид
т я э от н н о
-
м ер п р о ц ес
//. Вчиы с лени я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ и пр о г ам м и р о вани е zyxwvuts
аЧс т ь
312
, ка к э т о седлан а н оахж едн и
о в ю су л е д щ е я то л ь к
о п ер в о
м п р и м ер й к о м п о н ен т
е лд
я гр а фи ч е с к о г ы р еш ен и я
о о т б р аж ен и я .zyxwvutsrqponmlkjihgfe
» options = odeset('OutputFcn', @odeplot, 'OutputSel', 1) » [T, Y] = odel!3(@syst, [0, 10], [0 1], options)
0 0,5 1 1.5 2 2.5 3 3,5 4 4.5 5zyxwvutsrqponmlkjihgfedcb . 6.14. Ршн еи
с Ри
с киер итр
о унваери а сревло
а п о зн ечиа
П р и к о н тр о л е з а н па с у т л е н и е м н ек о т р ы и н ет г р и р о в а н и я ч аст о в аж н о д о с та о ч н с о б ы ит я . Д л я э то г о е услд т з а п р о гр а м и р о в а т г о в и ад , з а д т ь к у а з ет л ь н а н е е в к ач есвт з в ат ь со лв е р с п яьт ю в ы охнд ы м и а р мг у е н ат м
х с о б ы ит о то ч н
е м ат риц
З а д ни лд
е н ер дцьилфгао м она твос
я пешиынво
ы Яобк я е эткифвнос т
ю нцки у ф
о з н ат ь фа й л - н фу к ц и
й в п р о ц ес ь в р ем
е з н а ч ен и я
п а р м е тр и ил
и с рт к у о й
я (6.6) и
е ч и с л ен н о г о я н ап с у т л е н и я ю сп ец и аль н о а Events и вы .zyxwvutsrqponmlkjihgfe
и и всилечн ы
й
П осл е з ав ер ш ен и я с ч ет а со лв е р м ож е т в ы в ес т и в к о м а н дн о е окн о см у а р н у ю и н фо р м а ц и ю о в ы ч и с л и ет л ь н о й р а б о те , в к л ю ч аю щ у ю к о л и ч е с вт о вы ч и с л ен и й п рав о й ч аст и м а рт и ц ы Як оби , усп еш н ы х и н спеу ш н ы х ш а го в со лв ер а и дргиу е с в е дн и я . Д л я э от г о е су л д т с уат н о в и т ь с в о й с вт о ' st a t s • в 'o n 1 . П о др о б н о е о п и с ан и е все х свой ст в пу р а в л яю щ е й с ркт у ы и п р и м ер ы с о ед р ж а с т я в сп рав о ч н о й с и ем т е MATLAB в р а з д . Mathematics: Differential Equations: Initial Value Problems for ODEs and DAEs: Changing ODE Integration Properties.
л ав Г
6. М е т ыо д
в MATLAB zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC 313zyxwvutsrqponm
вчиы с лени й
и жкисет х ис е т П р и реш ен и ode23s, ode23t и ode23tb с и ем т ы м ое т д м к о н еч н ы бы т ь п о в ы ш ен а пет у м з адн и е уд т н ап и сат ь фа й л - нфу к ц и ю щк у и х з н ач ен и й н ез ав и си м о н фу к ц и и до лж е н и м ет ь ви д f u n c t i o n J = j m a t r ( t ,
Д л я т о г о ч от б ы со лв е м о п ри свои т ь с в о й вс т н фу к ц и ю jm atr. Е сл м и ро в ат ь фа й л - н фу к ц и свт а Jacobian .
м и д фер н ц и а л ь н ы а п р о к с и м и р юу х р а з н о с те й я м а рт и ц , к о т р а й п ер м ен н о
х р а ву н е и
й с о л в ер ы у Як о б и п рав о . Э фекит в н о ст ь в ы ч и с л ен и ы Я к о б и в явн о м в и ед . Д л я э то г я в о з в ращ ае т м арт и ц у Як об и й и к о м п о н ен т р еш ен и я . З а го л в о т м ар т и ц
odei5s, й ч аст и й м ож е т о с ле лд я е т к
у )
р м о г в о с п о л ь з о в а ьт с у Jacobian пу р ав ляю щ е и м а рт и ц а Як о б и п о с т ян н а ю — до с та о ч н о куа з т
я яв н ы м
и фо р м луа м и й р с к ут , т о н е требсту ь е е в к ач есвт
, н ео бхид
-
ы к у а з а ет л
ь н а я п р о гр а м
е з н ач ен и
я св о й
-
Дл
я р а с м о рт е н н о й вы ш е с и ем т ы р уа в н е н и й Ло тк и —Во л ь те р ы (6.5), п р и Р = 0.8, Д = 1, р = г = 0.001, нфу к ц и я , в ы ч и с ляю щ а я м ар т и ц у Як оби , п ри в е ед н а в ли сит н г е 6.20.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 6.20. Прога м м ирова ни е м а т риц ы Яобк и | zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA f u n c t i o n J = J L o t Vo l ( t ,
I
у )
J = [ 0 . 8 - 0 . 0 0 1 *у ( 2 ) - 0 . 0 0 1 *у ( 1 ) 0 . 0 0 1 *у ( 2 )
- 1 + 0 . 0 0 1 * у ( 1 ) ] ;
В н ес и т (ли ст н м и рй у т а р мг у е н т
е JLotVol В к ач есвт г 6.16) и п ер д вы з ов е пу р а в л яю щ у ю р кс у т а ode23s. С о вт ес юу щ и
j Л ис т ин
г 6.21. Уакз ни
:
е П н у ф о кд ц и
и В фЙа- Л н цкуфи ю comparesoivers й н фу к ц и и с фо р м с о л в ер а ode23s в о с н о в н о у option s и укаж и т е е е в к ач есвт е в о х дн о г о е к о м ан д ы п ри венд ы в л и сит н г е 6.21.
*
е м а т риц
•
ы Яко б
и с о л в е р
> sol = ode45(@syst, [tO, tl], YO, options, pi, p2, ...)
Вы зо то г о н о жеахд и н о в л ен н ы м
в р г ди у , в м ест
Т ак о й п о хд ци , в ы ч и сляю щ е е е з а го л в о
х с о л в ер о о с р кт у я п р и б л и ж ен н о г и п о му о л ч а н и ю
в лд я з а д ч и К ош и п р о и з в о ид с т я а н а л о ги ч н о ы option s од п сук аест я з адн и е п с уот г о м ас и в о р еш ен и я с точ н о сьт ю и дргиу м и о п ц и ям и .
д н а к л а ыд в а е к од л ж е
й п р ав у н и м ет
f u n c t i o n F . = s y s t ( t ,
Е сл м а рт и ц с о вт ес ю у щ е
и в п р о ц ес ы Як оби
е р еш ен и , т о п а р м е тр й н фу к ц и
f u n c t i o n F = j a c ( t ,
т о п р е дл н н ы ю ч аст ь с и ем т ь в и д : у , p i ,
е рт е б о в а н и ы ид ф е р н ц и а л ь н ы
я н а и н е тр ф й
; к р о м
с н уф к х р уа в н е н и
е
а лд , уа ст
я -
й —
р2,... )
я и с п о л ь з ю у ст
я яв н ы ы в к л ю ч а ю ст
е фо р м л у я в сп и со
ы лд к в о х нд ы
я в ы ч и с л ен и х а р мг у е н от
я в
и у , p i ,
р2,... )
П р и в едн н а я вы ш е с и с ет м а ди ф е р н ц и а л ь н ы х ру а в н е н и й Ло тк и В о л ь те р ы з ави си т о т ч е ыт р е х п а р а м е тр о в : Р, ,р R и г , и п р и м н о г к р а тн о м е е р еш ен и и дл я р а з л и ч н ы х з н ач ен и й п а р а м е тр о в ц ел со бр аз н н ап и сат ь с о тв е с тв ю у щ у ю ф а й л - фну к ц и ю , в м ес т о то г о , ч то б ы к а ж ды р а з и з м ен ят ь з н ач ен и я э ит х п а р а м е т р о в . Т ек с т та к о й ф а й л - фну к ц и и п р и в ед н в л и с ти н г е 6.22.
— о й -
л ав Г
6. М е т ыо д
вчиы с лени й
315zyxwvutsrqp
в MATLAB
•
;
zyxwvutsr
function LVpar(P, p, R, г ) Y0 = [1000; 1100]; % зи н а д % фи н а в о р и м р о
е ны н ь л а ч
е уе щ ю я л в а р п
х уи в о л с
й ср у т к у р т
й
ы с ме ц и р т а
й Яб о к
и
1
options = odeset('Jacobian , @JLotVolPar); % во з ы
в ср е в л о
а и пч а д е р
а зи н е ч а н
й по р т е м а р
в
[Т , Y] = ode23s(@LotVolPar, [0 100], Y0, options, P, р , R, г ) ; % пи н е о р т с о
е гк и ф а р
а ри н е ш
я
figure plot(Y(:, 1), Y(:, 2)) % пи ц к н у ф д о
я дл
я ви н е л с и ч ы
я по в а р
й чт с а
и сы м е т с и
, зе щ я с и в а
й о т по р т е м а р
в
function F = LotVolPar(t, у , Р , р , R, г ) F = [Р*( у 1
) - р*( у 1)*у(2
)
- R*y(2) + * г ( у 1)*у(2)] % пи ц к н у ф д о
я дл
я ви н е л с и ч ы
; я мц и р т а
ы Яи б о к
, зе щ я с и в а
й о т по р т е м а р
в
function J = JLotVolPar(t, у , Р , р , R, г )zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP J = [Р - р*( у 2 ) - р*( у 1 ) у 1)] ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA * г ( у 2 ) - R + г*(
Т еп р ь о б р ащ ен и е к фай л- нфу к ц и и LVpar п о з в о л яе В о л ь ет р ы лд я р а з л и ч н о г о н абор а з н а ч ен и й п а р м е тр о в » LVpar(0.75, 0.002, 0.95, 0.001) ИЛ
т р еш и т
ь з а дч , н а п р и м е
у Ло тк и р
—
И
» L V p a r ( 0 . 8 ,
0 . 0 0 1 ,
0 . 9 ,
0.003)
л Аь ет р н а ит в н ы й сп о с б р еш ен и я з ад в и сп о ль з о в ан и и ан о н и м н ы х и л и в л о ж ен н ы п о хд д п р и п о и ск е к о р н е й и л о к а л ь н ы ев д м з ес д ь то л ь к о е тк с т с о в т ес ю у щ е ным и н фу к ц и я м и бе з до п о л н и е т л ь н ы х щ ен и е К LVparl С Т ВОДИ З ОИ Р П Я аТ к Же , Ка
ч с и з в еснт ы м
и п а р м е тр а м и со ти и э от . М ы о бжсаудл х м и н и м уо в нфу к ц и й , п о э т м у п ри й фа й л - н фу к ц и и с дмв у я в л о ж ен к о м е н ат р и е в (ли ст н г 6.23). О б р а к И К LVpar. х нф у к ц и й
! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 6.23. Пе р адч а па р м е т р о в ечр з вынодх е а рмгу е нт ы с о л ве р
function LVparl(P, p, R, г ) % ва н е ж о л я фи ц к н у я дл я ви н е л с и ч ы % зе щ я с и в а й о т по р т е м а р в function F = LotVolPar(t, у )
я по в а р
й чт с а
и сы м е т с и
,
а
т т -
316
аЧс т ь
F = [ Р *у ( 1
)
- р *у( 1 ) *у( 2
II. Вчиы с лени я
zyxwvutsrq
и пр о г ам м и р о вани е
)
- R *y ( 2 ) + r * y ( l ) * y ( 2 ) ] / e n d zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
% ва н е ж о л
я фи ц к н у
я дл
я ви н е л с и ч ы
я мцирта
ы Яи б о к
, зе щ я с и в а
й о т по р т е м а р
в
function J = JLotVolPar(t, у ) J = [Р - р*( у 2 * г ( у 2
) - р*( у 1
)
) - R + г*( у 1)]
;
end; Y0 = [1000; 1100]; % зи н а д % фи н а в о р и м р о
е ны н ь л а ч
е уе щ ю я л в а р п
х уи в о л с
й ср у т к у р т
й
ы с ме ц и р т а
й Яи б о к
.
1
options = odeset('Jacobian , @JLotVolPar); % во з ы
в ср е в л о
а
[Т , Y] = ode23s(@LotVolPar, [0 100], Y0, options); % пи н е о р т с о
е гк и ф а р
а ри н е ш
я
figurezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA plot(Y(:, 1), Y(:, 2)) endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
, н е ра зре ш ны
и Сс т е м ы е р ф и нд ц а л н ь о - а л г е б р а и е ч с к
е отсони е л ь
о произвндй е руа енв и
Д о ис х п о руа в н ен и й
р м ы р а с м а рт и в а л , р а з р еш ен н ы
и з а дч
у К ош о п р о и з в о нд ы
х о нт о с и ет л ь н
Y' = MATLAB п о з в о л яе н ы х в н еяв н о й фо р м
В аж н ы
м ч а снт ы
т р еш ат е
ь с и ем т
м ч с л а уе
м так и
и лд
я си е т
м ид ф е р н ц и а л ь н ы х х zyxwvutsrqponmlkjihgfedcbaZYXWVUT
f(t,Y).
ы ид ф е р н ц и а л ь н ы
х си е т
, я
м яв л ю ст
я с и е мт
х ру а в н е н и й
, з адн
ы с м арт и ц е
й м ас
-
с
M(t,Y)Y'=F(t,Y), п ри ч е Дл м а рт и ц е ласт
м М (t, У ) м о ж е я р еш ен и ь п р и м ен ен и
я си е т й м ас с м о гу
т бы т
ь к а к н ев ы р о ж едн н о й
, та к и в ы р о ж де н н о й
м в и д а F(t, F, Y') = 0 жслиу т со лв е т бы т ь р еш ен ы лю бы м и з с о лв ер о в я с о л в ер а ode23s о гр а н и ч е н а то л ь к
.
р o d e isi, а си емт ы с . З а м е ти м , ч т о об о п о с т ян н ы м и м а рт и -
л ав Г
ц ам и
6. М е т ыо д
вчиы с лени й
, а в чслау
е в ы р о ж ед н н о
317zyxwvutsrqpo
в MATLAB
й м а рт и ц
ы н е о б х ид м
о п р и б е га т
ь к с о л в ер а
м
o d e l 5 s И o d e 2 3 t .
В ы р о ж ед н н а я м а рт и ц а м а с с с о в т ес у а л ге б р а и ч е с к и х руа в н е н и й , к о т р а я н а р яд т а л ге б р а и ч е с к и е с в зя y' = f(t,y9 u) соедр ж и з адн н ы е в е к о т р - нф у к ц и , а у и и — и ск о м ы ет м а м ож е т бы т ь р еш ен а в MATLAB п р и суло в и н ице , т . е . м а рт и ц а (dgj/ diij) н ев ы ро ж едн а н о - а л ге б р а и ч е с к и х р уа в н е н и й п р и м е н я се т М У = F (7, У ) с в ы р о ж едн н о й м ар т и ц е й м ас
дг е / — еид н и ч н а я м а тр и ц а н е и з в е сн т ы х у , а о сатл ь н ы
Е сл ч ес к и та к о
и ид ф е р н ц и а л ь н ы х урав н ен и й си емст
Р а с м о рт и т о п р и в о ид м о р еш ен и О нд н ен
, р а з м е
р котро
е бло к
а р еш ен и
я ж ек с т и
о и з ид ф е р н ц и а л ь н ы о урав н ен и е
х р уа в н е н и
й с и ем т
Л
(
0
Пр и м е ча н и
+
Л
(
е и и л чо т м я е и з п акте
а
, т о лд й м ар т и ц е у и х м и ч ес к о
я р еш ен и
й м ас с н а ч ас , лд я и л ю с рт а ц и й к и н е ит к и
я и
ы (y'3(t^ = 3- 10 ^ ( О ) з ам е
. -
0.04yl(t)- l04y2(t)y3(t)- 3- W 1y2(tf;zyxwvutsrqponmlkjihgfed 0
te [0,100],
С н о р кы е т м п ир м е
й в е к то р
.
y2{t) =
К ^
е ид ф е р н ц и а л ь н о - а л г е б р а и о п р о и з в о дн о й р o d eisi.
е си е т м с в ы р о ж едн н о , о п бул и к о в а н н о м Р о б е р тс о н о м й — н ели н ей н у ю з а дч
м бал н са
т с лд и н о
е и
ы о нт о с и ет л ь н ь со лв е
м п р и м ер х р уа в н е н и
и zyxwvutsrqpon ь / и g — . Т а к а я си с о е е и н е кд с р ав е н и де и ди ф ер н ц и ал ь с вен д и е к с и емт е
я в с и ем т
й н е р а з р еш ен т п р и м ен ят ы е ус л д м сн ач л
е ид ф е р н ц и а л ь н о ид ф е р н ц и а л ь н ы м w) = 0 . Зесд
й с о в п аде
и н левыу
е р ау в н е н и
т с и ем т у с и g(t, у, е в екотр - нфу к ц и , ч т . П р и реш ен и я и х с
+
Й
(
0
-
1
=
°
5
> ,(0) = 1, у 2(0) = 0, >>з(0 ) = 0- zyxwvutsrqponmlkjihgfedc
^
и э т а ж е з ач д а п н е ир д в а MATLAB (фн цук и я ihbldae).
а в дмеон рацст и он о
м
318
аЧс т ь
м счлуа
В н аш е
е м а рт и ц
а м ас
с п о с т ян н
II. Вчиы с лени я
а и и м е
zyxwvutsr
и пр о г ам м и р о вани е
т ви д
:
(\ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK О О zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
М = О 1 О 0 0 0 Д л я и л ю с рт а ц и г о к лас а н ап и сан з о в ан и е м в л о ж ен н о жо д й н фу к ц и м а с ш а т б и р е с ут
и п р и м ен ен и а фа й л - н фу к ц и й н фу к ц и и в ы в о ид с т я о с ь о р ди н а
г 6.24. Ре ш ни
Л ист ин
я со лв ер
а odeiss п р и р еш ен и и з а д ч куа з н н о я (ли ст н г 6.24) бе з а р гму е н то в , с и сп оль и лд я в ы ч и с л ен и я в е к то р а F(t, Y). Г р афи к ка я н а св о и о с и , п р и эот м а в от м аит ч ес к и т дл я к о м п о н ен т ы у 2 .zyxwvutsrqponmlkjihgfedcbaZYXWVUT
е с ис т е м
ы де рф инца л ньы •
f
u
n
c
t
i
o
n
e
% Ванежол
x
a
m
p
l
e
_
я фицкну
d
a
•
х ура вне и
й
.
я инелс чыв
я роткев
а f(x, у )
function resid = rob(t, у ) resid (1) = - 0.04*y(l) + Ie4*y(2)*y(3); resid (2) = +0.04*y(l) - Ie4*y(2)*y(3) - 3e7*y(2)^2; resid (3) = y(l) + y(2) + y(3) - 1; endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA е условия
.
yO = [1; 0; 0] ; % циртам
а мас
с
m = diag([1, 1, 0]); % иавретн
л интегр ова я
.
xtime = [0 100]; % зинад
е уещюялварп
й рутк с
ы (тьтсонч
) 1
options = odeset('RelTol', 1С 4, 'mass , m ) ; % возы
в ревлос
а
[t,y] = odel5s(@гоЬ % вовы
д окифарг
в ринеш
•
:
.
;
zyxwvuts
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
e
resid = zeros(3, 1 ) ;
% ыньлач
: • •
, xtime, yO, options); й
subplot(3, 1, 1 ) ; plot(t, y(:, 1)); grid on legend ('y_{l}'); subplot(3, 1, 2 ) ; plot(t, y(:, 2));
л ав Г
6. Метыо д
вчиы с лени й
319 zyxwvutsrqpon
в M ATLAB
g r i d on l e g e n d C y_ {2 } ' ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA subplot(3, 1, 3 ) ; plot(t, y(:, 3)); grid on legend ('y_{3}' , 4) ; end
П осл п р е сд а т в л е н н ы
е в ы п о л н ен и
я фай л- н фу кц и и и з л и с ит н г а 6.24 п о лчуаю ст я р е з л у ь та ы , е н а р и с 6.15.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
О
с Ри
П о др о б н ы м ас п о з в о л яе з ав и си м о ст э л е м н от м а рт и ц ы
е с в ен д и
с п р и в е дн
10
20
30
40
50
60
70
80
90
100
10
20
30
40
50
60
70
80
90
100 zyxwvutsrqponmlkjihgfed
. 6.15. Ршн еи
е зча д
и хок с иемч
й кикнт е
и (6.7)
я о н а с рт о й к а х с о л в ер о в лд я р еш ен и я з а д ч с м арти ц е й й с и ем т е M ATLAB. пУ р а в л яю щ а я с р кт у а ы в сп рав о ч н о т з адт ь кром е м а рт и ц ы м ас с ще е р я д о п ц и й , в ч а с нт о с ит : епст н ь и м а рт и ц ы м ас с о т н е и з в е снт ы х , р а с п о л ж ен и е е е н е л в уы х ч боль ш о й р а з м ер н о с т и и и н фо р м а ц и ю о в ы р о ж едн н о с т и в дл я з а д . В р а з д . Mathematics: D ifferential Equations: Initial Value Problems for
320
аЧс т ь
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
O D E s and D AE s : E x ample s : Applying the O D E Initial Value P ro ble m S olverszyxwvutsrq
п ри вед н п ри ме м ы х п р и в о ди тс м а тр и ц е й м ас
р ур а в н е н и я к с и с те м
я в ч а с тн ы е обы кн овен н ы
х п р о и з в о дн ы х х ди ф е р е н ц и а л ь н ы
, к о т о р о
е м е то до х ур а в н е н и
м п ря
й с
.
О б р а ти м с я те п е р ь к реш ен и ю з а да ч и К ош и дл я д и ф е р е н ц и а л ь н ы х ур а в н е н и й ви д а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA F(t, К , К ' ) = 0 , н е р а з р е ш е н н ы х о тн о с и те л ь н о с та р ш е й п рои з вод н ой , п р и п о м о щ и солвер а o d e i 5 i . О б р а щ е н и е к н ем у н есколь к о о тл и ч а е тс я о т с л уч а я р а с м о тр е н н ы х вы ш е солверов , п о с к о л ь к у в о в хо д н ы х ег о а р гу м е н та х до л ж н о бы т ь з а да н о з н ач ен и е YpO п р о и з в о д н о й реш ен и я в н ачаль н ы й м ом ен т врем ен и Y'(t0):zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB [Т , Y] = odel5i(odefun, interval, YO, YpO, options) Смы с ч и слен и ди тс п ерем ен н ой з н ач ен и н а й де н н о Воз може н ей ш е рез к
л о с та л ь н ы я в е к т о р - ф ун к ц и я и н те г р и р о в а н и е , д л я й Y(tQ); е реш ен и н вы во д м и с п о л ь з уе т с а и н те г р и р о в а н и
х е г о а р г ум е н т о
в то т ж е с а м ы й : o d e f u n — ф ун к ц и я дл я в ы и F; i n t e r v a l — о т р е з о к , п о к о т о р о м у п рои з во , и л и у п о р я д о ч е н н ы й в е к то р з н ач ен и й н ез ави си м о й т н ай т и реш ен и е ; YO — в е к т о р н ачальн ы х к о то р ы х с л е ду o p t i o n s — у п р а в л я ю щ а я с т р ук т ур а . М о м е н т ы врем ен и и е в н и х з а п и с ы в а ю тс я в в е к то р - с то л б е ц т и м а тр и ц у Y. р е з ул ь т а т а и в с т р ук т ур у с п олям и х и у , к о т о р а я в да л ь я дл я в ы ч и с л е н и я реш ен и я в п рои з вольн о й то ч к е и з от "Ринеш и ач з д иш"о К йтоэ )авыг л . я (с.м .аздр
В оз н и кае т воп рос , о т к уд р о е н е може т бы т ь п рои з вольн ы м t0 т р е б уе т с я вы п олн ен и п ри бли ж ен н ог о уд о в л е т в о р е н и В до с та то ч н о общ е м с л уч а
а вз ят
ь н ачальн о
е з н ач ен и е дл я п р о и з в о дн о й , к о т о , п о с к о л ь к у в н ачальн ы й м ом ен т врем ен и е ус л о в и я с о в м е с тн о с т и F(to,Y(to), K ' ( fo ) ) = O . ' Д л я я э то м у ус л о в и ю с л уж и т ф ун к ц и я decic е обращ ен и е к н е й в ы г л я д и т с л е д ую щ и м образ о м
[YO,YpO] = decic(odefun, tO, YOInit, YOFlag, YpOinit, YpOFlag) и п о д р а з ум е в а е т , ч т о з а д а н ы н ачальн ы е п ри бли ж ен и я к Y(t0) и ^'(/ о ) с о т в е тс тв е н н о в в е к то р а х YO in it и YpOin it. К а ж д о м у и з н и х с о п ут с т в уе т сво фла г — в е к т о р ы YOFlag и YpOFlag т о й ж е д л и н ы , о н и у к а з ы в а ю т ком п он ен е м о гу т и з м е н я ть с я п р и уд о в л е т в о т ы в е к то р о в YO in it и YpOin it, к о т о р ы рен и и ус л о в и я со гласо в ан и я . Д л я з а п р е т а и з м ен ен и я н е к о то р о й ком п он ен т реш ен и я и л и п р о и з в о дн о й с л е ду т ус т а н о в и т ь э лем ен т в е к то р а флаг а с но м еро м ком п он ен т ы в 1, а д л я р а з р е ш е н и я в 0. Д е й с т в и т е л ь н о , н е в с е г д а до п ус т и м о п рои з вольн о е и з м ен ен и е н ачальн ы х з н ачен и й . В з а д а ч е К ош и в ек т о р Y(t0) з а д а н и т р е б уе т с я н ай т и п о д хо д я щ е е Y'(t0). Д л я э т о г о с л е ду з а да т ь фла г YO in it , ц е л и к о м с о с то я щ и й и з е ди н и ц . Е с л и н и каки е ком п он ен т ы в е к то р о в YO in it и л и YpOin it н е ф и к с и р у ю т с я , т о с о т в е т с т в у ю щ и фла г можн о н е з а да в а ть . В о з в р а щ а е м ы е з н ач ен и я YO И YpO п р и б л и ж е н н уд о в л е т в о р я ю т ус л о в и я м с о в м е с тн о с т и и м о гу т с л уж и т ь в хо д н ы м и а р г ум е н та м и р е В Л ОС а o d el5i.
й ы т й о -
л ав Г
6. М е т ыо д
вчиы с лени й
321 zyxwvuts
в MATLAB
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
р П и м н ае и ч
П о му о л ч а н и ю сул о в и я с о в м е с нт о с т и д уо в л е т в о р я ю т с я с о тн о с и те л ь н о й т о б р а ти ть с я к ф ну к ц и и то ч н о с ть ю 10~3. Д л я и з м ен ен и я то ч н о с т и с ле у д d e c i c с сеьд м ы м в ох дн ы м а р г му е н т о м — пу р а в л я ю щ е й с т р ку т р о й o p t i o n s, п р е дв а р и те л ь н о с фо р м и р о в а в е е пр и п омощ и o d e se t (п о л е R elT ol о тв е ч а е т з а о тн о с и те л ь н у ю п о г р е ш н о с ть ) . Д л я к о н тр о л я вы п олн е н и я су л о в и й с о в м е с тн о с т и п о лез н о вы з ват ь ф ну к ц и ю d e c i c с тр е ть и м в о х дн ы м а р г ум е н т о м , в к о т р ы й з а н о с и тс я н ев яз к а , т . е . з н а ч е н и е F ( / o , (У г 0), zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Y'(tQ)) лд я п р и б л и ж е н н о н а й де н н ы х У (/ о ) , K'(fo)П р о д е м о н с т р и р уе К леро
м и сп ольз ован и
И з в е с тн о и б ду е К ош
е солвер
а o d e i 5 i н а п р и м е р
е ур а в н е н и
я
:
, ч т о у = Ct + h(C) е с т м сравн и ват и дл
я ур а в н е н и
ь п о л уч а е м о я К лер
ь общ е
е реш ен и
е п ри бли ж ен н о о пр
е э то г
о ур а в н е н и я
е реш ен и е
, с н и
. Р а с м о т р и
м м ы
м з а да ч
у
ss
и / ?(s) = e : te[0, 5]
с то ч н ы
м реш ен и е
м
П оскольк у э т о ди ф е р е н ц и а л ь н о е ур а в н е н и е п ервог о п о р я дк а , т о н е и з в е с т н о й я в л я е тс я всег о о дн а ф ун к ц и я , и п р и о б р а щ е н и и к d e c i c в к а ч е с т в е фла г о в и с п о л ь з ую т с я чи сл а YOFlag = 1 и YpOFlag = о (л и с т и н г 6.25). П о с л е вы п олн ен и я ф ун к ц и и d e c i c п о л уч е н н ы е н ачальн ы е з н ач ен и я д л я ф ун к ц и и и е е п р о и з в о дн о й в ы в о дя тс я в к о м а н дн о е окн о . О б р а т и т е вн и ман и е , ч т о н а ч а л ь н о е з н ач ен и е ф ун к ц и и н е и з м ен и лос ь и з - з а то г о , ч т о с о т в е т с т в у ю щ и й фла г раве н е ди н и ц е , а н а ч а л ь н о е з н ач ен и е п р о и з в о дн о й н а й де н о до с та то ч н о ох рош о (т о ч н о е з н ач ен и е равн о е ди н и ц е ) т а к , ч т о н е в я з к а п р и уд о в л е т в о р е н и и ус л о в и я м с о в м е с тн о с т и име т п о р я до к 10~ 9. В ы ч и с л е н н ы е вели ч и н ы YO И YpO м ы п е р е да е м в к а ч е с тв е в хо д н ы х а р г ум е н т о в солвер а o d e i si и с р а в н и в а е м п ри бли ж ен н о е реш ен и е с т о ч н ы м (р и с . 6.16). : zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 6.25. Испол зьва ни е с о л ве р а o d e l5 ± лд я ре ш ни я ура вне и
fu n c t i o n k l e r o tO = 0; % н а ч а л ь н а я то ч к YO I n it = е х р ( 1 ) ; % з а д а н н о YOF lag = 1 ; % н а ч а л ь н о % п р и у д о в л е т в о р е н и
а о тр е з к е н ачальн о е з н ачен и
а и н те г р и р о в а н и е ус л о в и е и ском о и ус л о в и я
я л е Кр
о
я [0, 5] е й ф ну к ц и м с о в м е с тн о с т
и н е до л ж н
о и з м е н и ть с и
я
;
аЧс т ь
322 YpOInit = 0 ; % пи н е ж и л б и р
е дл
YpOFlag = 0 ; % но н ь л а ч
я нг о н ь л а ч
е зи н е ч а н
% ис ь т и н е м з
я пр
II. Вчиы с ле ни я
о зи н е ч а н
я по н д о в з и о р
е по н д о в з и о р
й
й ио м к с
и у инеровтелвод
zyxwvut
и пр о г ам м и р о вани е
й фи ц к н у
и уя и в о л с
и межо
м ст с о н т с е м в о
т и
format long e % Пс и о % уя и в о л с
к нг о н ь л а ч
о зи н е ч а н
я пй о н д о в з и о р
м ст с о н т с е м в о
, у гещюяровтелвод
о
и
[Y0, YpO] = decic(@klerofun, tO, YOInit, YOFlag, YpOInit, YpOFlag) % Ри н е ш е
е уи н е в а р
я Кр е л
о н а ок з е р т
е [0, 5]
[Т , Y] = odel5i(@klerofun, [tO 5], Y0, YpO) ; % Пи н е о р т с о
е гк и ф а р
plot(T, Y, ' о
1
а пг о н е ж и л б и р
о ри н е ш
я
);
hold onzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % П о с т р о е н и
е гр афи к
а то ч н о г
о реш ен и
я
e xso l = i n l i n e ( r x + e x p ( l ) 1 ) ; f p l o t ( e x s o l , [tO 5] ) le ge n d ( ' п р и б л и ж е н н о
е р е ш е н и е ', 'то ч н о
е реш ен и е'
)
fu n c t i o n F = k l e r o f u n ( t , Y, Yp)
F' = Y - Yp*t - e xp ( Yp ) ; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
О
п е рн и о б л ж о н чт
Рис
. 6.16. Р еш ен и
е урав н ен и
е р еш ени е р еш ени
я К л ер
о
е
е
л ав Г
6. М е т ыо д
вчиы с лени й
е с и ем т В с ч л уа аль н о н е о лт и ч а е ст
323 zyxwvutsrq
в MATLAB
ы ид ф е р н ц и а л ь н ы
х р уа в н е н и о п р и м ер а
я о т раз обран н ог
Yp O l n i t , YOF lag И YpOF lag Н Ж ЛО Д
Ы б ы т
й ме с х , то л ь к
ь В еК Т О р а М И
а р еш ен и , К а
я п р и н ц и п и о YO, YpO, YOinit,
к И ВН ОД ЫХ
Й аргу
-
м ен т н фу к ц и и лд я в ы ч и с л е н и я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC F(t, Y, У' ) . Д о п о л н и те л ь н ы е воз м ож н ост и с о л в ер а o d eisi, в от м чи сл е р еш ен и е си е т м с з адн н ы м и п а р м е тр а м и , и оп ц и и п у р а в л яю щ е й с рк т у ы о п и сан ы в сп рав о ч н о й с и ем т е M ATLAB (см . р а з д .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA MATLAB: Mathematics: Differential Equations: Initial Value Problems for ODEs and DAEs: Solver for Fully Implicit ODEs и сю луед щ и й з а н им , а та к ж е с ат н и ц ы , п о св ящ ен н ы е фн у к ц и я м o d eisi и decic).zyxwvutsrqponmlkjihgfedcbaZYXWV
е р п дП у и н ж
е
П р и о ф р м и о в ан и и р у кт р с сю т я н е так , ка к дл я оьлантс ы с я р м и ат ц а Як о б и с н о яп т с ы м к еч я
, сщжаре до е к оп и нас
а в гаве л
ы option s н оркыет х с о л в ре . Н ап ри м ер и к о и э ф ц и н е ма и т
м в д е ри м та ц 8.
ы dF/ dy и dF/ dy . Р абот
М ы р а с м о рт ел с и е мт , в к лю ч а ч а й ру а в н е н и й ит м с я теп р аль н ы м р уа в н е н и я
и р еш ен и е з адч и К ош я ид ф е р н ц и а л ь н о - а л г е б р а и ч е с к и , н е р аз р еш ен н ы х о нт о с и ет л ь н ь к дргоум у ит п у ид ф е р н ц и а л ь н ы м с з а п а з ды в а ю щ и
Р е ш ни
е дре фе ицна лыьф
с за п взыиадщю В п ак е с и е тм а
и дл
я ди ф ер н ц и аль н ы о с а тр ш е
х урав н ен и
1. Н а п и с а н и во нхд ы м н и я к о м п о н ен
е н фу к ц и и а р мг у е н а т м
и лд т реш ен и
я в ы ч и с л ен и и котро я в м о м ен т
й и й улс . О б р а
-
й — ди фер н ц и
р dde23 лд я р еш ен и й в и ад :
-
я з адч
, о п и с ы в аем ы
х
...,y(t- xk )),te[a,b],
х р уа в н е н и х э та п о в я п рав о й яв л ю ст ы в р ем н
-
й
дг е y(t) — и с к о м а я в е к о т р - нф у к ц и я ; / — и з в еснт а в о й ч аст и с и с е тм ы ; т 1, т 2 , ..., т к — м о ен т ы з а п а з ды в а н и ч и сла) . Д л я реш ен и я си есмт ы р уа в н е н и й (6.8) требсту ш ен и я дл я t Д е (У
м ож е
я в к а ч е с вт
е ч е вт р о г
о в о х дн о г
ь ч у а е св т
т в о ц ен к х
т бы т
ь ч и слом
п о л ь з ес т у
я лд
к а ж од п о л н ен и
м и з учаскто и усло в и я
, л и б я о ц ен к
о в е к от р
г
о а р мг у е н т й к о м п о н ен т Х
)—
а с о л в ер
й с ек т и
а bvp4c. б Ас о ы в е к о т р - нф у к ц и
п р и б л и ж ен н о
м и з п э л е м н от в
и и н ет г р а л ь н о в р а с ч е нт о
е к а ж од
е р еш ен и е . П а р м е т
й н орм
ы || | к о м п о н ен
. В ы ч и слен и
я о с ат н а в л и в а ю ст
и , и
р RelTol и с т н ев яз к
и г ( н а я пр
и вы
-
: || JJ / max{|/ )- | , AbsToi ( i) / RelTol} || 0
и g(y(0), y(b)) = O. П р и э от м м а рт и ц а S до л ж н ь н е о б х ид м о у с ул о в и ю сщ у е с в т о а н и : Sy(0) = 0. В о з м о ж н а и бо ле е общ а я п о с та н о в к я н е и з в е сн т ы е п а р м е тр ы , к о т р ы е м о гу ю / , ат к и в в екотр - нфу к ц и ю гр а н и ч н ы х с л оу
а я а т -
л ав Г
6. М е т ыо д
вчиы с лени й
343 zyxwvutsrqp
в MATLAB
П о с л е д о в а ет л ь н о с т ь е дй с в т и й п р и и с л еод в а н и и в ы р о ж ад ю щ и с х я з ад ч в а с р еш ен и е м р а с м о рт е н н ы х вы ш е к лас о в гр а н и ч н ы х з адч . ц ел о м о сжх О лт и ч и е со ти т в то м , ч т о нфу к ц и я п р а в о й ч аст и с и ем т ы до л ж н а вы чи с л я т ь то л ь к о / ( х , zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA у ) , а м а рт и ц а S п ерасдт я с о л в ер у в к а ч е св т е з н ач ен и я с в о й с вт а singuiarTerm пу р ав ляю щ е й с р тк у ы . Р аз б ер р е . Т р ебсту
м р еш ен и
е в ы р о ж ад ю щ и с х и р еш ен и
я н ай т
я гр а н и ч н ы е урав н ен и
х з ад
ч н а м о ед л ь н о
м п ри м е
-
я
,/ 2 , х н а о рт е з к
е [0, 2], одув лето р яю щ е
w(2) = - 7 . Легк П р е о б р а з йу т
о б уе и д ь т с я
, ч т о от ч н ы ю з адч
е и о н сд х у
п ер в о г
о п о р я дк а
е гр а н и ч н ы
, введ
я н овы
м р еш ен и е
у к гр а н и ч н о е фн у к ц и
м с ул о в и я м м яв л сет й з адч
ь с и емт
и в екотр - нфу к ц и
П о лчу е н н а р ы е м о гу ц а S о б есп еч и в ае
ы р уа в н е н и
й в в ек от р н о
я н фу к ц и я с и ем т
я 1 — JC . ы р уа в н е н и
й
и у { (х) = w(x) , у } ( я ) = 0:
2 у' 2=- у 2- 21У +2(1- х 3); х' З ап и с
е лд
: г / (0 ) = 0,
[у 2(0) = 0. м ви д
е п о з в о л яе
т п о лч у и т
ь м а рт и ц
у S
ю f(x, у) :
я з адч а в о х ид т бы т ь р еш ен т в ы п о лн ен и
т в к лас ы п р и п ом щ
с в ы р о ж адю щ и сх я гр а н и ч н ы х з адч , к о т и со лв ер а bvp4c. Д ей с вт и етл ь н о , м арт и е услови я 5у ( 0 ) = 0, т . к . у 2(0) = 0.
я / (л % у} З а п р о г р а м и р йу т е н фу к ц и ю r sbsid e лд я в ы ч и слен и sbound гр а н и ч н ы х с ул о в и й . О п р едли т е п о х дя щ е е н ач ль н о е н и е , н а п р и м е р , п о с т ян н о е у 0 = [~ 7, 0], лд я к о т р о г о S у 0 =0. он д х у ю к тс е у н а о рт е з к е [0, 2] и з п ят и р а в н о тс о я щ и х зу ло в и 6 а дч у с о нт о с и ет л ь н о й от ч н о с ьт ю 10~ . С р а в н и т е гр а фи ч е с к и е в о з н и к н о в ен и р еш ен и е с то ч н ы м , та к к а к э т о седлан о н а р и с . 6.21. В счлау з а нр д т у е н и й в о с п о л ь з й у ет с ь л и с ит н г о м 6.34.
и н фу к ц и п ри бли ж е З адй т р еш и т п о лч у е н н о
-
ю е ис е за е я
//. Вчиы с лени я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP и пр о г ам м и р о вани е аЧс т ь 344zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
п р и б е л ин ж о от чн
О
0.2
0.4
. 6.21. С р ав н ен и
Рис
1
1.2
1.4
е п р и б ли ж ен н о г
в ы р о ж а дю щ е й с
за д ч
0.8
0.6
я гр а н и ч н о
е реш ени е
е реш ени
1.6
е
zyxwvutsrqponmlkjihgfedcbaZYXW
1.8
о реш ен и и с то ч н ы
й з адч
2 zyxwvutsrqponmlkjihgfedcbaZ
я м zyxwvutsrqponmlkjihgfedcba
1н г 6.34. Ф а йл - иц кн фу я лд я ре ш ин я веардщыоюйжс я гр а н и оч й и (6.13) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
!
function SingularProblem S = [0 0; 0 2]; % Зи н а д
е мцирта
у О = [- 7 0]; % Ои н е л д е р п
ы S
е нг о н ь л а ч
о пи н е ж и л б и р
meshinit = linspace(0, 2, 5); % Зи н а д % Фи н а в о р и м р о
е ср у т к у р т
ы с ны н ь л а ч
я
е но н ь л а ч
й ск т е
м пе и н е ж и л б и р
и
м
solinit = bvpinit(meshinit, у0 ) ; % Фи н а в о р и м р о
е уе щ ю я л в а р п
й ср у т к у р т
ы 1
options = bvpset('SingularTerm , S, 'RelTol1, le- 6) % Во з ы
в ср е в л о
а
sol = bvp4c(©rsbside, @sbound, solinit, options) % Пи н е о р т с о
е гк и ф а р
а по в р е
й кт н е о п м о
ы ри н е ш
я
plot (sol. x, sol.yd,:), 'or');zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG % Ди н е л в а б о
е гк и ф а р
а тг о н ч о А
fun = inline('l - х . 3'); hold on fplot(fun, [0 2])
о ри н е ш
я и лд н е г
ы
л ав Г
6. М е т ыо д
вчиы с лени й в
MATLAB
legend('по н е ж и л б и р
е р' еинеш
345zyxwvuts
, 'то н ч о
е р' еинеш
)
% % фи ц к н у
я дл
я ви н е л с и ч ы
я f(х , у )
function f = rsbside(x, у ) f =zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [у(2 ) - 2*у(1 ) + 2*(1 - х . А 3)]; % фи ц к н у
я гы н ч и н а р
х уи в о л с
й
function g = sbound(ya, yb) g = [ya(2)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA y b ( l ) + 7 ] ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
З а д ни
я
лд
я са м ост яе лонь
й ратоб
1. В ы ч и сли т
е и н ет г р а
л о т фн у кц и
ы
и c o s( ; t - V2 ) e 2 s i n *- l
п о п р о м ке ж т у ор тез к
у м ж де у [0, 4].
2. В ы ч и сли т
е и н ет г р а
у е е мв д у
л о т фн у кц и
я с о нед и м
и к о р н ям и
мо 3. Н а й ди т
у м ж ед , абсц и с
ы к о т р ы е к о р ен
cosx = 0
у е е ло к аль н ы
м м ак си м уо
м и л о к а л ь н ы
х п р и н а лд е ж а
т ортез к
у [- 5, 0].
ь урав н ен и
я f(z) = 0.1, есл
м ми н и му
и
f(z) = ]xtg2xdx. о 4. Р еш и т
е си мест
у ид ф е р н ц и а л ь н ы х)Ш
=1У (х- )Х ;
и
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG s'mx- x
п о п р о м екж т у
, п р и н а лд еж а щ и м
х р уа в н е н и
\ у2(х) = - у 2{х- 0.5)
й лд
я хе [ 0
, 5] :
\ S ](x) = smx + 0.1; + у, (х- 1);
\ s2(x) = x- 2
-
346
и дл
аЧс т ь
я п о лчу е н н о г
о р еш ен и
• и н ет г р а
л п о всем
• корн 5. Р еш и т
и урав н ен и
я в ы ч и с л и ет у п р о м ек ж т у
II. Вчиы с лени я
zyxwvutsrq
и пр о г ам м и р о вани е
:
у о т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI yl (х) ;
я у х [х) = - \ .
е ди ф ер н ц и а л ь н о
е урав н ен и
е дл
я ЕХ
[О , 7]:
6. / + 3 y- 0 . 1 ^ 2 = 2 si n x, y(0) = 0.02, / ( 0 ) = 1 и лд
я п о лчу е н н о г
м ум
ы у( х ) .
о р еш ен и
я н а й ид т
е вс е л о к а л ь н ы
е м ак си м у
ы и м и н и
-
л а вГ
а 7
п р а Уи в л щ ю я к зы я
е конс т ицрку
и
а прога м м ирова н
Ф а й л - нфу к ц и п р ые д щ у и к о м ан д Дл я ры х ви й пу р а в л яю щ и м о уг нфу к ц и й
я
и и фа й л - п р о гр а м ы х гл а в , яв л ю ст ы M ATLAB, соедрж ащ и ес р еш ен и я м н о ги х бо ле едй с в т и я п о в т р я ю ст в ы п о л н я ю ст я раз ли ч н ы е к о н с р тк у ц и т бы т ь и сп о ль з о в ан ы .
пеО р а т о
ы цлик
С о хж и е и п о в т р яю щ и ес ц и кл а for и while. Ц и к п о в т р яю щ и сх я ед й с в т и й н е и з в ес нт о , н о и з в еснт
и кЦ
я сам ы м е с ер ь з н ы я ц и к л и ч ес к и е и яз ы к пр и
zyxwvutsrqponmlkjihgfedcbaZYXWVUT
, к о т р ы е в ы с о з ад в л и п р и ч е тн и и в ду х и п р о с ыт м и п р и м ер ам и п р о гр а м . Вс е я в н и х , в ы п о лн яю ст я zyxwvutsrqponmlkjihgfedcbaZYX .ьон ватле д лспо х з ад ч р т е бю у с т я п р о гр а м ы , в к о т , а в з ав и с и м о с т и о т н ек о т р ы х с л оу ч аст и п р о гр а м ы . В да н н о й гл а в е о п и сан ы а п р о гр а м и р о в а н и я M ATLAB, к о т р ы е н ап и сан и и к а к фа й л - п р о гр а м , ат к и фай л -
а я едй с в т и я в ы п о л н я ю ст л for п р енд аз н ач е , a wh i le — лд о увиое лс п р о д лж ен и
н лд я ед й с в т и й
я пр я в ы п о л н ен и я ц и к л а
и п ом ощ , ч и сл .
и о п е р а то р о я згаон д о котры
в а члис х з ар н е
е
л for zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
И сп оль з ован и
е for ощсу есвтля
я ю с лу е д щ и
м образ ом
:zyxwvutsrqponmlkjihgfedcb
for count = start:step:final днамок
ы MATLAB
end
З се д к о н еч н о
ь c o u n t — аняе мепр е з н а ч ен и е
ц и к л а , a st ep — ш а г
, s t a r t — е е н а ч л ь н о , н а к о т р ы й увели ч и в аест
е з н ач ен и е
, fin a l — я count п р и каж -
348
од
аЧс т ь
м ю с у л ед щ е count сатн о в и ст то л ь к о ц ел ы е неи е ц и к л П ст у
II. Вчиы с лени я
м з ао х д е в ц и кл . Ц и к л з а к н ч и в а е ст я я боль ш е fin a l. П ер м ен н а я ц и кл , н о и в ещ есвтн ы е з н ач ен и я л ю б о г а for н а н ек о тр ы х а хр к ет р н ы х п р и м ер ах
ь рт е б с у
я в ы в ес т
з адн о н фу к ц и е н и й п а р м е тр ет л ь н о в ы ч и с л ят
и гр а фи к
и сем й свт
zyxwvutsr
и пр о г ам м и р о вани е
, к а к то л ь к о з н а ч ен и е а м ож е т п ри н и м ат ь н е о з н ак . Р а з б ер м п ри м е .
а кри вы
х лд
я zyxwvutsrqponmlkjihgfedcbaZYXWVU ЕХ [О , 2т]с , к о т р о е
й у( х, a^ — t'^sinx, з ав и сящ е й о т п а р м е тр а а о т - 0.1 д о 0.1 с ш аго м 0.02. М о ж н о , к о н е ч н о ь у( х, а ) и срто и т ь е е гр а фи к и лд я р а з л и ч н ы
а a , дл я з н ач е , п о следв а х з н ач ен и
й
а о т - 0.1 д о 0.1, н о го р а з д о о д б ну е е и сп о ль з о в ат ь цик л for. В р е да к то р е М - фа й л о в н аб ер и т е е тк с т фа й л - п р о гр а м ы , п р и в едн н ы й в л и с ит н г е 7.1, с ор ха н и т е ег о в ф а й л е F ORdeml.m и з ап суит е фа й л - п р о г а м у н а вы п ол н ен и е (и л и и з р е да к то р а М - фа й л о в , и л и и з к о м а н дн о й с тр о к и , н а б р а в в н е й FORdemi и н аж в ) (р а б о т а в р е д а к то р е М - фа й л о в и з ап су к фа й л 5).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED п р о гр а м м о п и сан ы в гаве л Л
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
IzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 7.1. Ф а йл - прога м м а FORdemi дл я В Ы Р izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
figure % си н а д з о
е гг о к с е ч и ф а р
о он к
х = 0:pi/30:2*pi; % ви н е л с и ч ы % по б е р
р зи н е ч а н
а
е вр о т к е
й пр т е м а р
а в цл к и
а зи н е ч а н
а zyxwvutsrqponmlkjihgfe
й ат н е м у г р
е
for a = - 0.1:0.02:0.1 % ви н е л с и ч ы
е вр о т к е
а зи н е ч а н
у = е( рх - * а ) х .*sin(x)
й фи ц к н у ; % ди н е л в а б о
и дл
я тг е щ у к е
е гк и ф а р
о зи н е ч а н а фи ц к н у
я пр т е м а р
а
и
hold on plot(x, у ) end
^
Пр и м е чан и
е
Р о а к т де рв н т у
р М - й а фо л и ц и кл а с п оу тс о
в о и м ав т ч с к е
J3
м о т лв е о г л д я р и у к от в ан с и я к е ст а п р о г ам ы н ав л и ае т п у тс о ы щ я од е хп й лид н ы indent н а вклад е Language дл я комп н е т ок н е Preferences. В р е з л у ь ат н о е н а р и с
е в ы п о лн ен и . 7.1, к о т р о
е со едр ж и
я FORdemi п о яв и ст т р т е б ум о
и еапгл др о к р ая
т р ас п о л ж и т ь о п ер а т . И сп ольйз ут е эт у в о з м ж н о с т . Р аокедт р о а мв и т ч с е к , елс и вы бра н п кр е лю ч т а ы Editor/ Debugger в ид алогв я гр а фи ч е с к о е с е м й св т
е окн о о кри вы х
, и з о б р а ж ен .
ы ь и а тс у ь Smart м -
л ав Г
7. У пр юавлщя и е
конс т рцкуи
яазкы
е фай л- п р о г ам
349 zyxwvutsrqpo
. 7.1. Св тйсем
Рис Н ап и ш и т
пр о г ам м и р о вани я
о киырв
у лд я в ы ч и слен и
я см у
х
ы zyxwvutsrqponmlkjihgfedcbaZYXWVUT
„ й 1 л Аг о р и т м в ы ч и с л ен и я м су ы л а мс у а равн а н л юу , з ает м в с я l/ k\ (т . е . 1/1!), до б а в л яест я в у е л и ч и в а ес т я н а еи д н и ц у , и га е м ы м н е с а тн е т 1/10!. Ф а й л - п р о гр а м г е 7.2, в ы ч и сляе т и ск о м у ю м су
ин е а к п л о р ез луь ат , т . е . сн ач и сп о ль зе у т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML п ер м н у ю к з а н о с и ст я еид н и ц а , в ы ч и сляет к S и р ез луь ат т в ао н с зиятсаон в S. Д а л е е к п р о ц ес с п р о д л ж а е ст я , п о к а п о с л ен д и м сла а FORdem2, п р и в едн н а я в ли ст н .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI
J^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П р и м е ча н и е ^ лЕс I Л ис т ин
и ш а
г ц и кл
а рвае
г 7.2. Ф а йл - прога м м
н 1, т о ег о можн а FORdem2 дл
% Ф- Л Й А М А Р Г О Р П А ДЛ Я ВИ Н Е Л С И Ч Ы Я М У С %. 1/1! + 1/2! + . . . + 1/10! % ои н е л у н б S = 0;
е S дл
я ни н е л п о к а
я м у с
я вичсыл е ни Ы
ы
.zyxwvutsrqponmlkjihgfedcbaZYXW
о н е указ ы вьат я сму м
ы zyxwvutsrqponmlkjihgfe
350
аЧс т ь
% ни н е л п о к а
е см у
ы в цл к и
е с шо г а
//, Вчиы с лени я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP и пр о г ам м и р о вани е zyxwvut
м 1
for k = 1:10 S = S + I/factorial(к) ; end % во в ы
д рт а ь л у з е
а в ко н д а м о
е он к
о
SzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Н аб ер и т ат л о г м ан д о от ч к
е фа й л - п р о г а м у в р е да к то р е в фа й л е FORdem2.m и в ы п о л н и т м окн е , т . к . в п ослнед й с рт о к и с з а п я то й дл я о т б р а ж ен и я з н ач ен и
е М - фа й л о в е е . Р ез луь ат е фа й л - п р о г а м я п ер м ен о
, с орха н и т
е в тещк у е
м ка я в к о я s бе з е о к н о
т о т б р а ж е тс ы с о ед р ж и с т й s в к о м а н дн о
s = 1.7183 О б р а ти б ы п о в леч л д я п о ад в л е н и
е вн и м ан и е ь вы во
, ч т о о сатл ь н ы я в ы в о д
П ер в ы
е с рт о к х з н ач ен и й е о к н о
д п р о м е ж о т уч н ы а в к о м а н дн о
е дв е срт о к
и с к о м ен атр и ям о ет к с а п р о гр а м ы ь п р и п ом щ ю о н аз н ач ен и
о т о с ат л ь н о г п о л ь з о в а ет л и н фо р м а ц и
и фа й л - п р о гр а м ы , з ав ер ш аю ст .
, к о т р ы я то ч к о
и н е счлуай н о о е д тл н . И м ен н о о н и в ы в о дя с т ы h elp и з к о м а н дн о ы FORdem2
и к о м ан д и фа й л - п р о г а м
е м о лг й с з а п яот
ы п со ту й с рт о к , к о гд я н а э к ран й с рт о к и п о лч у а е
и й й а т
» help FORdem2 -ЛЙАФ М АРГОРП
А ДЛ
Я ВИ Н Е Л С И Ч Ы
Я СМ У
Ы
1/1! + 1 / 2 ! + ... + 1/10!
Пр та р и я м и В аж н с ат н о в я ст
и н ап и сан и , о с о б ен н о п о н я ть я до спут н ы м
ат к н а з ы в а е м ы м ч ен и я к п осл е с рт о к е и н а ж т в ы п о л н ял с я ка п р о гр а м е м о гу ед , т . е . п ер м ен н ы Э т о м ож е т п о с жл у и т м ен яе т с о едр ж и м о л и бы т ь и н и ц и али з и рован п р о гр а м е .
и фай л - п р о г ам о есл
м и фай л- нфу к ц и и в ы п лан и реут
е п родлж и т
й н е п р ен еб р ега й т ь работ
у с н и м и
е к о м ен !
-
, ч т о вс е п ер м ен н ы е , и сп о ль зюу щ и ес я в фа й л - п р о гр а м е , и в р а б о ч е й с р ед е (см . о к н о zyxwvutsrqponmlkjihgfedcbaZYXW Workspace). О н и яв ляю ст я и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и м ьын алб о г л и.м ын пе мер Н а п р и м е р , дл я п о лчуен и я зн а в ы п о л н ен и я FORdem2 се луд т п рост о н абрат ь к в к о м а н дн о й ь < Enter> . Р ез луь ат т о ч е в и ед н , т . к . п о сленд и й ра з ц и к л for к р а з лд я к , р а в н о г о ед с я и т . С рдгоу й с то р о н ы , в фай л т и с п о л ь з о в а ьт с я вс е п ер м ен н ы е , в в едн н ы е в р а б о ч е й ср е е все х фай л - п р о г ам м и р а б о ч е й с р ед ы я в л ю ст я о б щ и м и . ь и с от ч н и к о м ош и бок , п о ск о ль к у фа й л - п р о гр а м а из е о нд о и м е н н ы х п ер м н ы х р а б о ч е й с р е ыд , к о т р ы е м ог ы и з к о м а н дн о й с рт о к и и л и в др г у о й фа й л -
л ав Г
7. У пр юавлщя и е
П о с та в и щ у ю ещ
конс т рцкуи
м з адч е о т п ер м ен н о
яазкы
у вы ч и сли т
пр о г ам м и р о вани я
ь м су , п ожх у ю н а п р еыд щ у ю у , н о з ав и с я й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA х : ю
Д л я в ы ч и с л ен и л и с ит н г
351 zyxwvutsrqpo
я да н н о
й м су я и з м ен и т
е 7.2, требсту
YЈ
ы в фа й л - п р о г а м ь срто к у в н рт у
е FORdem2, п р и в едн н о а for н а
и ц и кл
й в
S = S + x.^k/ fact orial( k) ; т о п р е дл и т ь п ер м н у ю х в к о м а н дн о й П ер д з а п с ку о м п р о гр а м ы е су л д с рт о к е . В ы ч и слен и е , н а п р и м е р , 5(1.5), п р о и з в о ди ст я и з к о м а н дн о й с рт о к и п р и п о м щ и сю улед щ и х к ом ан д :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG » х = 1.5; » FORdem2 S = 3.4817
В к а ч е с вт е х м ож е FORdem2 п р и н ак о п лен и
т бы т
ь в е к от и см у
р ил ы и сп о ль з о в ан
и м а тр и ц а
, п о ск ль к ы п о э л ем н т ы
у в фа й л - п р о гр а м е о п е р а ц и
П ер д з а п с ук о м FORdem2 н ж у о о б я з а ет л ь н о п ри свои т то р о е з н ач ен и е , а лд я в ы ч и слен и я мс у ы , н а п р и м е мы х , п ри есдт я в н ес т и и з м ен ен и я в е тк с т фа й л - п р о гр а м ы н ап и сат ь н у и в ер с а л ь н у ю фа й л - нфу к ц и ю , у к о т р о т з н ач ен и е х и в енрх и й п ре д л мс у ы м гу е н от в удб н и е м су ы S(x). И с п о л ь з о в а н и е к о н с р тк у ц и й яз ы к ч а с нт о с ит п р о гр а м а х
, ц и к л о в .
С о з да в
я фа й л - нфу к ц и ю
р и тм епс т н едй с в т и с л а г ем ы в ес ь м
, в фай л- нфу кц и я
и с л аг ем ы м и
о ч е в и дн о
, ч т о а 6 =а 4 - х/ 6 , а дл е с о нт о ш е н и е , в к о т р о
з в о л яе
т э ф е к ит в н
е -
, к а к и в фай л
е с уо в е р ш е н с вт о а н и
. П р е дп о л ж и м
, ч т о ж у я п рои з воль н ог
-
е в а л го
м фо р м а л ь н о в ы ч и с л ят
о а 5 - х / 5!, то гд
е е щк т у е
о а о =1. Д о с та о ч н ь мс у ы
е в ы ч и с л ен о к с п р а в е лд и в
: а к = а к _ х • х/ к , св яз ы в аю щ е
га е м ы е
-
, в
я ат к ж е
е н ек о т р о
й х н ек о и слаг е . Г о р а з д о чл у ш е в о хн д ы х ар м — з н ач е
к - то с л а г ем о г о а к - х \ к \ р т е бс у я в о з в ес т и х ф а к то р и а л к . Д л я н еб о л ь ш о г о ч и сл а с л аг ем ы х эт п р а к ит ч е с к и м гн о в е н н о , н о п р и веули ч ен и и ч и сл н абор е з н а ч ен и й х в р ем я с ч ет а м ож е т о к а з а ьт с у мв д у м п р и м ер е н ес л о ж н о з а м е ит ь с в яз ь м же д
с о не д и м но
й в к а ч е с вт , а в ы охнд ы а п р о гр а м и р о в а н и я
х п р о и з в о ид с т , в н еси т
. П р и в ы ч и слен и и ь к и в ы ч и с л и т ь я в ы п о л н я ю ст я х и боль ш о м а боль ш и м . В н аш е
ь п ер м ен н о р и з п я н т а дц а т
е .
о ч аст , в о з н и к а ю щ и
в и а я я а
о р ек у н т е и п р ые д щ у е о та к о
е с ла
й п о хд
е в п р а к ит ч е с к и
д по
х
-
352
з адч ах м ое
аЧс т ь
Ф а й л - н фу к ц и
zyxwvutsrqp
и пр о г ам м и р о вани е
т му н о ж ат ь п р еыд щ у е е слаге , н а к о т р ы й е су л д ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ak / ak _ x .
. К о э ф и ц и ен т н о нт о ш е н и
, р ав е
II. Вчиы с лени я
я sumN, в ы ч и сляю щ а
я S(x), п ри в едн
а в л и сит н г
е 7.3.zyxwvutsrqponmlkjihgfe
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г 7.3. Ф а йл - иц нк фу я sumN дл я ичвсыл е ни я с му м ы
fu n c t i o n s = sumN (x, N) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Ф- Л Й А И Ц К Н У Ф %
Я ЛД
Я ВИ Н Е Л С И Ч Ы
Я М УС
Ы
А
/ х 1 ! + х 2/2! + ... + x^N/N!
% ие и н а в о з ь л о п с
: S = sum(x, N)
% ои н е л у н б
е S дл
я ни н е л п о к а
я м ус
ы
s = 0; %но н ь л а ч
е е и н е ч а н з
, е щ ю у в т с е в т о с
е m = 0
и = 1 ; % ни н е л п о к а
е м ус
ы в цл к и
е
for m = 1:N u = u.*x/m; s = s + u; end
О н аз н ач ен и и и с п о с б е вы з ов н а ть , н а б р а в в к о м а н дн о й с рт о к п ер в ы е рт и с р т о к и с к о м е н та р и я м и п со т у й с тр о к о й . Я с н о , ч т о лд р е з ул ь та т »
, Т Ч
а фа й л - н фу к ц и и sumN п о л ь з о в а етл е h elp sumN. В к о м а н дн о , оедтл н н ы е о т ет к с т я х = 1.5 и N = 10 нфу к ц и
ь м ож е о в ы с в т еу д
е окн а фа й л - н фу к ц и я sumN да с
т то
т зу я и т ж е
О И F ORdem2:
S = su m N ( 1.5, 10)
s = 3.4817
О б р а ти т е вн и м ан и е , ч т о н фу к ц и и sumN н е яв л ю ст р ем н н о й m и л и и и з к о м а н дн о sumN п р и в о ди т к с о б щ ен и ед л н а (р аз муестя , сле и Е сл и в р а б о ч е й с р ед е и м се т р едл н н а я и з к о м а н дн о с в яз ан а с й ьо н к а л п ер м ен н о
в ин у е т р
и л
и ле ьын коал . П о п ы тк й с рт о к и п о сл ю о то м , чт о нфу к ц и я он а н е бы л а и н и ц и али з и рован я ьаня лб о г л п ер м ен н а й с рт о к и и л и в фа й л - п р о гр а м е й m в фай л- нфу к ц и я гл о б а л ь н ы м и
п ер м ен н ы а п р о с м о тр
е m и и фай л а з н ач ен и я пе е в ы п о лн ен и я фа й л - н фу к ц и и , и л и п ер м ен н а я , н е о п р е а д о вы з ов а sumN). я с те м ж е и м ен е м т , оп , т о о н а н и к а к н е . К а к п р а в и л о , лчуш е
7. У пр юавлщя и е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA конс т рцкуи яазкы пр о г ам м и р о вани я
л ав Г
о ф р м лят п ер м ен н ы е гл о б а л ь н ы н фу к ц и ци
ь с о б вт е н н ы , и сп о ль з ему ы х п ер м н ы я м ож е " гавы л
353 zyxwvutsrqp
е а л г о р и мт ы в в и д е фа й л - н фу к ц и й лд я т о г о , ч от б ы е в а л г о р и мт е , н е п о р ит л и з н ач ен и я о нд о и м ен н ы х х р а б о ч е й с р еы д . В п ро ч е м п р и н ео б хид м о с т и фа й л ь гл о б а л ь н ы е п ер м н ы е zyxwvutsrqponmlkjihgfedcbaZYXWVU (с.м р.азд "Пукн - ф до
т и сп о ль з о в ат 5).
Ц и кл ы for м оуг т бы т ь ыне жо вл дру г в дргау , п р и эот м п ерм н ы е влож ен В лож ен ы е ц и кл ы уобдн ы лд я з ап о лн ен и я н ы х ц и к ло в долж н ы бы т ь ри.м азын м а рт и ц . Н а п р и м е р , в р а з д .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG MATLAB: Programming: Basic Program Components: Program Control Statements: Loop Control — for, while, continue, break с п р ав о ч н о й с и ме т ы MATLAB сеоржди т я п ри м е р з а п о л н ен и я м ра ти ц ы Г и л ь б ер т а пр и п ом щ и в л о ж ен ы х ц и к ло в . Э лем н т ы м ра т и ц ы Г и л ь б ер т а п о р я кд а п оп ре е л дя ю с т я фо р м л а у и at j = l/ (/ + j - 1 ) , дл я i,j = 1,2, ..., n . е п р и м е р в н о в ы й М - аф й л п р и п ом щ и ф бе р у а о б м ен а Windows, е с и м ен м HiLdem.m и п р о д л ж и т е работ у с н им , к а к с фай л .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
С к о п и р йу т с орха н и т п р о гр а м о й
^
П р и м е ча н и
е ^Д
Н е п нре йагбт воч н й м е и тс ся ь жмеалог
е в о з м ж н ь о ст ю з ап с к т у е MATLAB, и и знме тя о р а ез л ь т у .
П ер д в ы ч и с л ен и е м э л е м н от в м а рт и ц е е п р и п ом щ и н фу к ц и и zeros, к о т р а м и . И н а ч е в ц и к л е р а з м ер ы м ас и в п о рт е б у т д о п о л н и те л ь н о г о в р ем н и то ч н о до б а в и т ь в к о н ц е фай л - п р о г ам т с н а б ид т ь ч аст и фа й л - п р о г а м ц у . С елуд бо ль ш и х и з м ен ен и й в ск о п и ро в ан н о в ы г л я ид т та к , к а к п о к а з а н о в ли ст н г
; % Зи н а д
ь п р и м ые ь и х п о смеов
"'
а мц и р т а ы
п = 4; % Ии ц а з и л а и ц н
я мц и р т а
ы и зи н е л о п а
е е е нм я л у
а = zeros(n); % Ви н е л с и ч ы
е мц и р т а
for i = l:n
е в спар , обид ва
ы Гт р е б ь л и
а к д я р о п
-
ы ц ел с о б р аз н о и н и ц и али з и ро в ат ь я с о з ад е т м ас и в , з а п о л н ен н ы й н ля у а удб т ид н а м и ч е с к и в у е л и ч и в а ьт с я , ч т о . Д л я в ы в о д а м а рт и ц ы н а экра н од с а т ы и м я м ас и в а , с о едр ж ащ ег о м а рт и ы к о м е н та р и я м и . П о с л е не м п р и м ер е фа й л - п р о гр а м а H ILdem е 7.4.
j е рр е м з а
, пнеирдв ы у н р е мс о т у и ю
а п
и
; zyxwvuts
354
аЧс т ь
II. Вчиы с лени я
и прогам м и р о вани е
zyxwvuts
for j = l:n a(i, j) = l/(i + j - 1); end end % Во в ы
д мцирта
ы Гт р е б ь л и
а н а эа р к
н
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
З ап с у ч евт р о г м ен о ри ц
т к вы вод у в к о м а н дн о е окн о м а рт и ц ы Г и л ь б ер т а к HiLdem п р и в о ди о п о р я дк а и п о яв л ен и ю в рабо ч е й с р ед е н ов й гл о б а л ь н о й п ре й — м ас и в а а р а з м е р а ч еы т р е н а ч еыт р е , с о едр ж ащ ег о э л ем н т ы м ат ы Г и л ь б е р та .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е ча н и
^
е ^[
И н и ц и ал з ац и
я юл ыб х и м ы е п с ь л зо у х н м е пр ы х с ч т иеа я ор ш х и м я п рогам , он а ниодм бхе а в о м н и ог х зя ы к а х п р о гам м и ро вна и я . В MATLAB и н и ц лазц и я н е оьлезнбята , формьлан о комна д у а = zeros (n) мжон о бы л о п р и о ьс т у , п оксьл у MATLAB омиавт че к с и в л и е у ч в еа т р аз м е ы и с м ва а п о р м е е п ир н в о ес я з н ча е и й г е о е эл на ме т м и вы од х а з а н юх р е в ю р на г и ц у бы т ь н е м т ож е . Э т а оснбе ост ь м ж ое т ж и п т у л ос ь о чи н т с к о м о ш и бо к . П нержб и е и н и ц и ла з ц и е й ати т в бес е щ е е он д у оп асн ьост . Птс у ь в рабоче й д ер с е ж у е тс е ь и с ма в а р а з м ер а 10 н а 10, а в фйа л- п рмаог е HiLdem и н и ц и ал з ц и я оте вус т у . Т одг а п л со е вы п онл е и я HiLdem мис а в н е и змне и т раз м еры , а эмелн ы т , р о ч н ст ы е и о цб л т с в ы е е с к и ен д ы к о р ты х я о дп в р е х с т ы ч те р , снато у я еб з и з мне и й .
иел тс
м н па и с на и
П о с ат в и м етп р ь з адч у — и с леодв ат т а дл я р а з л и ч н ы х п о р я дк о в м а рт и ц браз и т ь р е з л у ь ат т в в и д е гр а фи к о г о с о б вт е н н ы х ч и се л в з ав и с и м о с т з адч и р т е б су я N р а з в ы п о л н и т в е дн н о й в л и с ит н г е 7.4, и з м ен я ри ц ы Г и ль б ер т а п о р я дк а п н ео б хди м о 1. Н а й т 2. О п р едл и т м ен
и е е сп ек т т в е к то р
3. З а п о м н и т н ы х в е к то р о в В кон ц е се улд с нт о с ит , н аохж едн и вы 6).
р п р
и п о м щ
ь гр а н и ц а — а р гму ен т ь гр а н и ц
ы с п е к рт а
ь гр а н и ц ы с п е к рт ы (о т п ер в о г о д о н ек о т р о г в з н ач ен и й м а к с и м а л ь н о г и о т р а з м е р а м а рт и ц ы ь о п е р а то р ы фа й л - п р о гр а м я п о т еид н и ц ы д о N. П о с л : и в срт о ен н о
й фн у к ц и
х с и н едк со
ы Г и л ь б ер о N- ГО ) И от о и м и н и м а л ь н о . Д л я р еш ен и я э от й ы HiLdem, п ри е в ы ч и слен и я м ат -
и eig.
, т . е . м ак с и м ал ь н ы а eig.
ы в э л е м н ат
а м а рт и ц
й и м и н и м аль н ы
й э ле
-
м zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON п н ек о т р ы х в с п о м о г а ет л ь -
. т в и з ау л и з и р о в а т
ь р е з л у ь ат ю с п е к рт а
, п освящ е
н р.азд
т (о п ер ац и я "Зиач д
м с м а тр и ц а м и лйиеон
а"ыргбе л
, в ча га- л
7. У пр юавлщя и е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA конс т рцкуи яазкы пр о г ам м и р о вани я
л ав Г
Н ап и ш и т е фа й л - н фу к ц и ч ес к о г о окн а з ав и с и м о с т ес л м а р т и ц ы Г и ль б ер т н о г о ч и сл а и сп о ль з йу т а р мг у е н о т м фа й л - н фу к ц и и с е м л у ыд х м а рт и ц в о з н и к н о в ен и и з арндту ен и
ю H iispect, к о т р а и м ак си м аль н о г а о т п о р я дк а м а рт и ц е л о га р и фм и ч е с к у и H iispect одлж е , в ы охнд ы е а р мг у е н т й в о с п о л ь з й у етс
И с лй еуд т е гр а н и ц Г р а фи ч ес к о е о к н о » H ilSpect(12) до л ж н
о в ы гляедт
ы с п е к рт , п о яв л ю щ ес ь та к
а м а рт и ц
я в ы в о ди т н а р а з н ы е ос и гр а фи о и м и н и м а л ь н о г о с о б втен ы х чи ы (дл я м и н и м а л ь н о г о с о б вт е н ю ш к ал у п о ос и о р ди н а т) . Вонхд ы м н бы т ь м ак си м аль н ы й п о р я до к ы в дан н о м сч л ау е н е н жун ы . П р и ь л и с ит н г о м 7.5.
ы Г и ль б ер т я в р ез луь ат
, к а к п о к а з а н
М а кс и м а л н ь о
е в ы з о в
о н а р и с
е с о б с в те н о
355zyxwvutsrqpo
е чис л
а д о д в е н а д ц а то г а
о п о р я дк а
.
. 7.2.
о м р и та ц
ы Гбиельрт
а
1.Г
ь- —"^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
1.6 1- 4 1.2
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
10 - 12
10
"^
10"
• 01 : 12 Рис
К ^
Пр и м е ча н и
. 7.2. Гнариц
е
ы ср ткпе
а мирц та
ы Гтриеьбл
а
^
П р и ш ер н и и п и рк а т ч с е х з а чд , ю убщер т и затр с ив т я а л ь ун к т о й п р о бмле а х ыне мевр ч т о з ап о л н е и е мриат ц лчш у е щ т я в л уо с е нр о е в т с ы х н ц ку ф и й MATLAB, л с е и р уктр с Н а п р и м ер , л д я нче пиуло я р и м та ц ы Г и л ь б ре т h ilb. Уилвенч и ю п р о и з в л о ье д н т о с и п роамг ав г л 23.
х м н ог ком п ь ю ерат ь пр и п омщ а р и м та ц а п н р д е аз н ач е м п ольз еват
о в ы ч и н сел и й
, сна т о
-
. Оказ ы всяает и и н ц ак с е и д ы п о з в е ля а н ц ку ф и я пщвояс не
, и ил и т эот . я а
356
аЧс т ь
и пр о г ам м и р о вани е
function HilSpect(N) % Ии н а в о д е л с
е ги н а р
% ие и н а в о з ь л о п с
ц ср т к е п
а мц и р т а
ы Гт р е б ь л и
а
: HilSpect(N), N - мы н ь л а м и с к а
% ии ц а з и л а и ц н
я мо в и с а
в дл
я ги н а р
й по д я р о ц ср т к е п
к
а
Lmax = zeros(I, N) ; Lmin = zeros(1, N) ; % ви н е л с и ч ы
я дл
я ми р т а
ц о т пг о в р е
о пк д я р о
а д о N- ro
for n = 1:N % зи н е л о п а
е мцирта
% мнжо
о ит а в о з ь л о п с
ы Га т р е б ь л и
, вт с е м
ь ву н е о р т с
ю фи ц к н у
о вы н е ж о л
х цо л к и
в
ю А = hilb(n);
А = zeros(n); for k = 1:п for j = 1:n ( А к
, j) = 1/(к + j - 1);
end end % ви н е л с и ч ы
е ср т к е п
а и ег
о ги н а р
ц
Lambda = eig(A); Lmax(n) = max (Lambda) ; Lmin(n) = min(Lambda); end % во в ы
д зе т с о м и с в а
й ги н а р
ц ср т к е п
а о т пк д я р о
а мцирта
ы
figure; subplot(2,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA I, 1) plot(Lmax, 'ko- ') title('Мо н ь л а м и с к а
е со н е в т с б о
е чл с и
о мцирта
ы Гатребьли
1
)
xlabel('\itN') grid on subplot(2, 1, 2) semi logy(Lmin, 'k*- ') title('Мо н ь л а м и н xlabeK ' \itN' ) grid on
zyxwvuts
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC H i l s p e c t дл я ис л е овда ни я спеткр а а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
г 7.5. Ф а йл - иц кн фу ы Гилбье рт
Л ист ин м а т риц
II. Вчиы с лени я
е со н е в т с б о
е чл с и
о мцирта
ы Г' атребьли
)
л ав Г
7. У пр юавлщя и е
конс т рцкуи
азкыя
пр о г ам м и р о вани я
357zyxwvutsrqpon
В а л го р и т м з ап о л н ен и я п о с л е од в а е т л ь н о с т и м а рт и ц м ожн о в н ес т и с оу в е р ш е н с вт о а н и е , п о ск ль к у п р и увели ч ен и и п н а еид н и ц у н ова я м а рт и ц а обра с з ет у я и з с ат р о й од б а в л е н и е м срт о к и и с от л б ц а . В о сп о ль з йу етс ь с и м ет р и ч н о с ть ю м а рт и ц ы Г и лб ер т а и ет м , ч т о MATLAB ид н ам и ч ес к и в уе л и ч и в ае т р а з м е р ы м ас и в а п о м ер е н е о б х ид м о с и т . П р и в о з н и к н о в ен и и з ардту неи й о б р а ит е с ь к ли ст н г у 7.6, в к о т р о м п р и в ед н п о хя д щ и й бло о п е р а то р о в .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 7.6. Вичсыл е ни я м а т ри ц Гилбье рт а доба вл е ни м ст рок и и с т ол бц I zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
к
а
А = 1; f o r n = 2 : N f o r k = l : n - 1 A( n , k) = l / ( n + k - 1 ) ; A( k , n ) = A( n ,
k);
end A( n , n ) = l / ( 2 * n - 1 ) ; end
В з а к л ю ч ен и е э от г о р а з де л а о м т ие м ще е но д то р а я н а р яд у с в о з м о ж н о с ьт ю з адн и я в е щ е с вт н н о г сот я н н ы м ш а го м ед л а т цик л for до с та о ч н з н ач ен и й п ер м ен о й ц и к л а доп сук ает я и сп о ль з о в ан и
у о с б ен н о с т
ь ц и кл о с ч ет и к
о ну и в ер с а л ь н ы м е м ас и в
а for, к о а ц и кл а с п о . В к ач есвт е а з н а ч ен и й :zyxwvutsrqp
for count = A днамок
ы MATLAB
end
Е сл и А — в ек от р - с рт о к а е е э л е м н от в пр е ц и кл i - о м ш аг с те я в екотр - сотлбц о м рав н ы м А . Цик ч и сл п о в т р ен и й
икЦ Цик с ч л уа е н е ие
л for о к аз ы в аест а дей свт и й
, т о count п о с л еод в аетл ь н о п ри н и м ае т з н ач ен и е и к а ж од м з ао х д е в ц и кл . В чслау е двму ер н о г о м ас и в а А н а zyxwvutsrqpon а count соедрж и т с от л б е ц А ( :, i ) . Р аз муестя , сел и А яв ля , т о ц и к л вы п олн и ст я всег о оид н р а з с о з н ач ен и е м count, я п о л ез н ы
м пр
. С щу есвюту , р е а л и з о в а т
т а л г о р и мт ь котры
и в ы п о л н ен и ы с з а р н е
е п о з в о л яе
т бо ле
и о п р едл н н о г е н еи з в еснт ы е ги б к и
й ц и к
о к о н еч н о г м к о л и ч е с вт о л while.
о м
л while, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA сму м ирова ни е ро д я в л while жслиу , к о гд а ч и сл м н ек о т р о г
т лд я о р г а н и з а ц и о п о в т р ен и й з ар н е о с ул о в и я . Р ас м о рти
и п о в т р ен и е н е и з в е сн т м п ри м е
й о нд о и т п н ы о и о п р е дл я с т р н а в ы ч и слен и
х е дй с в т и
й в я вы п ол
е мс у ы
, п о
-
358
о жхи з адн н ог
аЧс т ь
zyxwvuts
и пр о г ам м и р о вани е
й н а п р и м е р и з п р еыд щу его р а з де л а . Т р ебсту я н ай т и м су у р яд о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA х (р а з л о ж ен и е в р я д sin x):
К о н еч н о м су у е то р и ч е с к з адн н у о гр а н и ч е н н о циф р и в аю щ е е for в о с п о л ь з о в а ьт с котры
, д о б еск о н еч н о ст с з адн н о й то ч н о с ть ю и д о с та о ч н ю то ч н о с ть , н а п р и м е р й от ч н о с ьт , в к о н еч н о м и от г е м ало ст ь е к тщ у е г я н е й р а б о та е т , п о к а
while уи в о л с днамок end
В да н н о кщ у е г п о н я нт о н фу к ц и ш ен и
II. Вчиы с лени я
и см у и р о в а т о е др у ж и в а т
ь с л аг ем ы е 10 , 10~ . О дн а к ю в ы ч и с л ен и й м ож е , к н ев рн о м у р е з л уь ат о слаг ем о г , з а р н е уадстя . В ы о х д со ти в ы п о лн яест я ув иое лс
е пи н е р о т в о ы MATLAB
м п р и м ер
ь н е уадстя , ч т о лд
. И з в е с тн о
я л к и ц
е с л уо в и е
, н о м о ж н я з н ак о п ер м ен н о г , п р ев ы ш а ю щ и
а лд
о н а к п л и в а т
я
ь о р яд
а е п о л м уо д ю о сму и р о в а н и е та к и х р я до в с т п р и в ес т и к п о ет р е з н ач щ и х . З н а ч ен и е к , о б ес п ч и е н е и з в е с нт о , п о э т м у ц и к ло м т в п р и м ен ен и и ц и к л а while, ца:ик л zyxwvutsrqponmlkjihgfedcbaZY
а
м п о в т р ен и
я ц и кл
а я в л се т
2kH
я то
, ч т о млоуд
ь ет -
10
е Ю. Д л я з ап и с и усло в и я в фо р м е о слаг ем о г о x j{2k + 1)! б о л ь ш й M ATLAB, е сулд т и сп о ль з о в ат ь з н а к ">" (б о л ь ш е) . Т ек с т фа й л и mysin, в ы ч и сляю щ е й м ус у р яд а н а о сн о в е р ек ру ен нт о г о с о нт о я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
, -
2 п р и в ед
н в л и с ит н г ^ К о н еч н о м е а с гл о рк я д а иг м к о п н ел о н ша е
i Л и с т и н
е 7.7.
Пр и м е ча ни
е
^|
, в щбо е м ча у л с е м о лт с а ь с ам л е г о е м жо е т бы ьт , смжкеа , п кордя . В эо т м ча улс е о в ил с у е о к н ч ан и , а и нме о молатс ь л у д мо я н от ш н е и й т с ча и м ы ус . П ок а н е е д уб й зчаед й с теялв я инче изу е работ г 7.7. Ф а йл - иц кн фу
о — п они тя е н о т с и ле ь т н о е , а 1(Н 0, н о и сма а см у а отг о ж е п о я см иу ронва и я должн о бы т ь ур д я тщ куег о с л а ме г о о к уж е н а м о б р ащ ат ь н а э т о в н и м на и я — ы с ц и клма .zyxwvutsrqponmlkjihgfedcbaZYX
я m ysin , ичвсыалщюя
я с ину
function s = mysin(x) % Ви н е л с и ч ы % Ие и н а в о з ь л о п с
е сс у н и
а ре и н ж о л з а
м в ря
д
: у = mysin(x), - pi > fpiot(@mysin, [- pi, pi]) » hold on » fplot(@sin, [- pi, p i ] , ' k. ' )
Рис
. 7.З . С р ав н ен и
е m ysin и si n
й и
360
аЧс т ь
П о лч у а ю щ и е с п рав и ль н о
я гр а фи к
и и з о б р аж ен
й р а б о т
II. Вчиы с лени я
ы н а ри с и my s in .
е фа й л - н фу к ц и
т с о ед р ж а т с Ул о в и е ц и кл а while м ож е и з о п ер ац и й о нт о ш е н и я и л о ги ч е с к и н и я с л уо в и я п о в т р ен и я ц и кл а о д п с иу т м н ы е в та б л . 7.1.
ь л о ги ч е с к о х о п ер ац и
. 7.3, он
О п ц ра е и
я он тшо не и
==
Р ва н е с т
о
=
З адн и
е бо ле ии л
м ен о л о ги ч е с к о г
е сло ж н ы а ц п ир е й о .
е ил и равн
о ль Б ш
е ил и равн
оинеяшто
, слуо в и а х> -
о о
о
й п р о и з в о ид с т
и н ер ав ен свт о о п е р а то р
7.1. Оацпире я
М н е ьш
х с л уо в и Н а п р и м е р
м в ы п о л н ен и
т о
е
Н е равн
в о ар т п е
и с в и е д тл ь с в ю у
е в ы р аж ен и е , со атв лен н о е й и л и о п е р а то р о в . Д л я з ад ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO а ц п ир е о о,инеяшто п р и в е нд -
и ц Та л б зо О б н ч е а и
zyxwvuts
и пр о г ам м и р о вани е
я с п р и м ен ен и е е - \ = 2 , и л и "л о ж ь " . П р и х р а в н о м вд м у . "И с ти н е " в MATLAB со втес у т л о ги ч е с к а я и де я л о ги ч е с к и м н л ем у . р иА фм еит ч еск и е п ер м ен н ы е я в онд о м в ы р аж ен и и с л о ги ч ес к и м и , в о лт и ч и е о т мн о . Н а п р и м е р , в ы р аж ен и е а + (Ь > с ) н е явля , в че м л егк о б ие у д ь т с я п р и п о м щ и к о м ан д :zyxwvutsrqponmlkjihgfedcba
»
а = 1;
»
b = 5 ;
»
с = 3;
»
а = а + (Ь > с )
а = 2
с Ул о в и о нт о ш е н и н и е о п ер ац и с п ер м н о
е b > с в ы п о л н яест , т . е . явлсет я "б о л ь ш е " р ав е н е ид н и ц е , к о т р а и "м ен ь ш е " п р и в ел о б ы к ло ги ч ес к о м й а н е и з м ен и л о б ы е е з н а ч ен и я
Р е з л ьу а т м ен н о й
:
т в ы п о л н ен и
>> f = а < = b f = 1
я л о ги ч е с к о г
о в ы р аж ен и
я "и с ти н о й " я п р и б а в л я е ст
. Р ез луь ат у н люу
т о п ер ац и я к а . И с п о л ь з о в а , сло ж ен и е котрог
и о
. я м ож е
т бы т
ь п ри свое
н п ер
-
380
аЧс т ь
П о с м о тр и т н а я f явлсет
е ит п f в о к н я л о ги ч е с к о й
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI Workspace б р азу ер а рабоч е й с р ед ы — п ерм н , точ н е е ло ги ч еск и м м ас и в о м р аз м ер а 1 н а 1.
О п ер ац и и о нт о ш е н и я п р и м ен и м ы к м ас и в а м о ди н а к о в о г о р аз м ер а . П р о и с о и хд т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA е тн о м е л э п о ср ав н ен и е и р е з л у ь ат о м я в л се т я л о ги ч е с к и й м ас и то г о ж е р а з м е р а , ч т о и и сохнд ы е , со тящ и й и з н ле у й и е ид н и ц . Е ид н и ц ы с о вт е с ю у т е т м э л е м н ат м , дл я к о т р ы х с лу о в и е в ы п о л н я е ст , а н о л о з н ач е т н ев ы п о л н ен и е усло в и я , н а п р и м е р : >> >> >> с
А В С
=
[1
2
=
[3
2
3 3
4; 3;
5 5
б б
7
8;
9
10
11
12];
2
2;
4
10
11
11];
в ь
в
= А
= 0 1 0
>> D D=
= А
>
0 0 1
1 1 1
1 0 1
0
0 0 0
0 1 0
1
0 0
в
1 1
П р и с р а в н ен и и вд м у е р н ы х м ас и в о в бо ль ш и в ат ь к о м ан д у spy лд я в и з аул и з ац и и р е з л у ь ат н и ю гр а фи ч е с к о г о окн а с ш абло н о м м а тр и ц ы м а рт и ц ы о т б р а ж ю тс я то ч к а м и , чт о н а гл янд м ен от в в ы п о л н я е ст я п р о в ер я м о е с лу о в и "Визац уял к о м а н до й spy о п и с а н о в р.азд
Л о г и че с и к К о н с тр и у р о в а н и щ ь ю л о ги ч е с к и п о ль з о в ан и е ж ен и й , с о едр ж ащ и п о э л ем н т о м л я ес т я м ас и П and (&) да е равн ы н люу н оль ; • or (|) аде
е опе ра иц
х р аз м ер о , к о т р а . Э лем н т о п о к аз ы в ает е (п о срт ен и аитцр" м
и с числ а м
в од у б н о и сп оль з о я п р и в о ди т к п о яв ле ы р е з л уь и т р ю у щ е й , лд я к а и х э ле е ш аблон а м а рт и ц ы гавы л 2).zyxwvutsrqponmlkjihgfedc
и и м а с ива м
и
е с лу о в и х о п е р а то р о м л о ги ч е с к и
й о п е р а то р в if и while ощсу есвтля я с п ом в and, or и not и л и в э к в и в а л ен нт о м в и д е с и с х о п ер ац и й &, | и ~. В ы ч и слен и е л о ги ч е с к и х вы ра х and (&), or (|) и not (У) , с м ас и в ам и п р и в о ди т у и х в ы п о л н ен и ю н а д э л е м н ат м и м ас и в о , р ез луь ат о м яв в то г о ж е р а з м е р а , ч т о и и оснхд ы е , п р и ч ем : т ие д н и ц у , сле т еид н и ц у
, сле и о б а со втесюу щ и я б ы ои д н и з ни
и о тх , есл
и хот
я б ы оид
х н оль
х э л ем н т , т о р ез луь ато
н э лем н
т н е р а в е
а м ас и в о м едбу н н л ую
к
в н е
-
т ат к ж ;
е
л ав Г
7. У пр юавлщя и е
конс т рцкуи
яазкы
пр о г ам м и р о вани я
381 zyxwvutsrqp
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA not (~) п ри м ен ясет я к онд о м у м ас и в у , лсе и э лем н т м ас и в а н е н оль , т о с о вт ес ю у щ и й э л ем н т р е з л уь и т р ю у щ е г о м ас и в а рав е н н л юу , сел и э л ем н т и сохнд о г о м ас и в а н оль , т о — еид н и ц е .zyxwvutsrqponmlkjihgfedcbaZYXWV ^
Пр и м е ча ни
е
О п рн а е м д и и о гл к с ч е ат к и чи овлыс е чи л с о ил и лиогксче нме т о е вы п нол е и и чи алс . Вы пнло е и орм е в ни тсмоп дуе С ю л еу д щ и
е п р и м ер
ы дем о н срт и рюу
А = [ 1 3 ;
- 1 0 ] ;
В = [ 0 4 ;
8 8 ] ;
»
С = А& В
»
1
0
ь к а к и о л г кч с е е м са и в ы х в ы нж ар е и й м ж ое т бы т е п риод сх т п оэел м сча ул о кг ж а д о м нэ е л т а м ис а в и с м ав и р аз л и ч н ы х р аз
, ь а -
.
»
1
т бы т х в ы ж н ра е и й у м го м и з о п р е ан о д в и ог к л с ч е й н ол ь ил и еи дн и ц а . В эо т е лиогкчсе й о п цра е и и дл я е оп еорат в and и or н а д
. н дОи
»
0 '
^
т и сп о ль з о в ан и
е ло ги ч еск и
х о п е р а ц и й
:zyxwvutsrqp
D = А | В
D =
»
1
1
1
1
Е = ~А
Е = 0
.0 0
К ром н яю щ а м гу е н т м ас и в в сю е т у щ е н оль м ас и
е о п е р а то р о я о п ер ац и а — м ас и в а н е р ав е н е м ес т , н е н о л ь и н в и ч и сл о и
1
в and и or в MATLAB о п р едл н а н фу к ц и ю "и ск лю ч аю щ е е и ли " . Ф ну к ц и я хо г и м е ы о ди н а к о в г о р а з м е р а . Е сл и оид н и з э лем н от н люу , а в то р й р ав ен , т о о х г з ап и с ы в ае т о в ы о х дн о г о м ас и в а . В о все х о сатль н ы е н о ль ) хо г з а п и с ы в а е т н оль . Армгу ен атм , к о н е ч н о , дв а ч и сла .
оЛ г и ч е с к и е о п ер ац и и & и | чуи ыт в аю т о б а о п ер ан д з л у ь ат . В т о ж е в р ем я з н ач ен и е л о ги ч ес к о г о в ы р аж ен и р е лд я с т я з н а ч ен и е м то л ь к о п ер в о г о о п е р а н да . Е сл ч ес к о г о "и л и " яв л сет я "и с ти н о й " , т о р ез луь ат т в с е гд п ер в ы й о п ер ан д л о ги ч е с к о г о "и " — "л о ж ь " , т о р е з ул ь т а т ц и и &&- и | | о лти ч аю ст я о т & и | етм , ч т о в п ер ч и слен н ы
т дв иед н и ц х с ч л ау я и ох
я о хг а в о хн д ы
, в ы п о л
-
х ар в в о х дн о г о у н а со т х (н о л ь и г м о гу т бы т ь
а лд
я в ы ч и с л ен и я ре я в р яд е чс л ау е в оп и п ер в ы й о п ер ан д л о ги а едбу т "и с ти н а " . Е сл — "л о ж ь " . О п ера х в уд х с и ацу т и я
и х
382
аЧс т ь
II. Вчиы с лени я
zyxwvutsrq
и пр о г ам м и р о вани е
он и н е п р о в ер яю т з н ач ен и е в то р о г о о п ер ан д а (о п ер ац и я && б ы л а и сп о ль з о в ан а н ам и в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гаве л 6 п р и уп р ав лен и и п р о ц ес о м р еш ен и я ди ф ер н ц и а л ь н о г о р ау в н е н и я лд я п р о с т й р еал и з ац и и а л г о р и тм а фа й л - н фу к ц и и soiproc (см . ли ст н г 6.19)). П р о в ер к а н а н али ч и е й a i l , к о т р а я в о з в ращ ае л ей , и н о л ь в п р о ит в н о
е н левыу
х э л е м н от т ие д н и ц у м с чл у а е :
, сле
в в в е к от р и с р ед
е о щс у е с в т л я и э л е м н от
я н фу к ц и а н е т ну -
в в е к то р
» v = [ 12 0] ; » q = a ll (v) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA q = о р А гм у е н о т в ер я в в е к то р ри ц ы
м фн у к ц и й с то л б е
т к а ж ыд , к аж ыд
и a l l м о ж е ц м а тр и ц й э л ем н т кот рог
т бы т ь и м а тр и ц а ы н а н а л и ч и е н ле у о с о вт е с вт у
. В э от й и з а п и с ы в а е т с от л б ц
м с лч у а
е a l l п р о т р е з л у ь та й м ат
у и с о х дн о
т -
:
»
М = [9 3 - 1 ; 0 2 2] ;
»
р = all( M )
Р = 0
И с л е од в а н и котра н ен л в у о с то л б ц а м Н ек о т р ы ри ц К аж д м арт и ц
1
1
е н а н али ч и
е пр
е н ен лвыу
я воз вращ ае й э л ем н т .
т еи д н и ц у . Ф ну к ц и
е и н ед к с н ы и п ом щ я н фу к ц и у и з н ле у
е л о ги ч ес к и и с п ец и а л ь н ы я л д я в о хн д о й и еид н и ц
• isf i n i t e — еид н и ц
ы с о втес юу
х э л ем н от в п р о и з в о ди с т , сле и в о вонхд о м в е к от р я any, та к ж е к а к и a l l , р а б о та е е м а рт и ц х н фу к ц и й м а рт и ц
е ес т
я н фу к ц и е ь о хт т с м а рт и ц а м
й any, я б ы оид н и п о
ы в ы ч и с л я ю ст я п о и о с н хд о й MATLAB, п ер ч и слен н ы ы н ао х и д т и н е дк с н у ю л о ги ч е с к у ю п р о в ер я м о у сул о в и ю
, со втесюу щ у
т ч и слам
, нл у
ы со втес юу
т + inf, - inf, нл у
• isn an — еид н и ц
ы с о вт ес юу
т NaN, н л у
и — ч и с л а м
.
м ч и слам
, н л у
ы с о вт ес юу
т п р о с ыт
• i s r e a l — еид н и ц п л ек с н ы м .
ы с о вт ес ю у
т в е щ е св т н ы
. ю
.
и — inf, NaN.
• isin f — еид н и ц • isprim e — еид н и ц
й м ат х н и же
и — ч и с лам
м ч и слам
П р и о б р а б о тк е м а рт и ч н ы х ад н н ы х та к ж е о к а з ы в а ест я п о л ез н о ну и в ер с а л ь н а я н фу к ц и я fin d и л о ги ч ес к о е и н де к с и р о в а н и fin d и л о ги ч е с к о г о и н ед к с и р о в а н и я р а с м о тр е н о в р.азд "Лкегсоич в аоинерс " гавы л 2).
. и — о с та л ь н ы м , н у л и
. — к о м
й д о с та о ч н е (п р и м ен ен и
о е
к е - и дн
л ав Г
7. У пр юавлщя и е
конс т рцкуи
яазкы
пр о г ам м и р о вани я
383 zyxwvutsrqpo
В п р и в е дн н ы х вы ш е п р и м ер а х п ро г ам м с л уо в и я о п е р а то р в i f- e i se i fe ise и while соедрж ал и л о ги ч е с к и е в ы р аж ен и я с о с к а л яр н ы м и з н ач ен и я м и — л и б о "и с ти н а " , л и б о "л о ж ь " . О дн а к о в э т и к о н с р тк у ц и и яз ы к а п ро т в о хи д т ь в ы р аж ен и я с м ас и в ам и , п р и ч е м гр а м и р о в а н и я MATLAB м огу ка к с ч и с л о в ы м и , та к и л о ги ч ес к и м и . Ф о р м а л ь н о е п рав и л о та к о в о : суло в и е с ч и а т ес я в ы п о лн ен н ы м , есл и р ез луь ато м в ы р а ж ен и я яв л сет я м ас и в , со с от я щ и й то л ь к о и з л о ги ч е с к и х ие д н и ц и л и н е л в уы х э л е м н от в . П суот й м ас и в и "л о ж ь " э к в и в а л ен нт ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
р иП о т е и амри ф е т иеч сик П оск оль к в ы р аж ен и е в ы п о л н я ю ст я п о э л ем н т о з н а ч ен и
т л огиеч с к
х х опе ра иц
й
у л о ги ч е с к и е и а р и ф м еи т ч е с к и , т о в о з н и к а е т воп ро . Н а п р и м е р , в в ы р аж ен и е в о з в е дн и е в с е пт н ь я см у ы А + в . А 2 и с .
П р и о р и те
т о п ер ац и 1. Ло ги ч ес к и ц и ям и )
й ортаж е
е о п ер ац и и м о гу т в о х ид т ь в о нд , в к а о й п о с л е од в а е т л ь н о с т и он и А + в . А 2 > с с н ач л а в ы п о л н я е ст , з еат м с л о ж ен и е и , н а к о н ец , с р ав н ен и
с о то м
н в сю улдещ е
е о п е р а то р ы
м сп и ск
е (в п о р якд
: and, or, n ot, xor (п о ск ль к
е в ы п о л н ен и я) у он
и являю ст
о и я е .
я н уф к
-
.
2. О рт и ц а н и
е ~.
3. Т р а н с п о н и р о в а н и е з н а к п лю
с и л
4. мУн о ж ен и
, в о з в едн и с п ер
и м и н у
е и дел н и
5. С ло ж ен и
е и в ы ч и ат н и е
6. О п ер ац и
и о нт о ш ен и я
е (в то м чи сл
е п о э лем н т о е)
ь (в от м чи сл
е п о э л е м н нт о е )
8. Ло ги ч ес к о
е "и л и
9. Ло ги ч ес к о
е "и " &&.
10. Ло ги ч ес к о
е "и л и
.
" |. " | |.
е а в ы п о нл ю я с т
я о п рц а е и и н а д амнеураг т и н ц ку ф и , вд а вы ражне и я : and(A,B)+ c и А&В+ е ран и х висряе х MATLAB оп рцае и и & и | лиме т учиы т ва ь пр и пнер со е п ри ложне и й , чт о се у дел х и с р яев х MATLAB, в н уво ю висре ю п акте .
н а п р и м ре
,
: >, >=, > settlement = exchange*transaction.strike.price*transaction.volume
л ав Г
8. Об р аб о т ак
В ы р а ж ен и н ия
данхы
и пр и ем ы
я дл я з а д н и ь н а ч асит
) р а з б и т
я в л о ж ен н о , р ез луь ат
>> А = s t r u c t ( ' c u r r e n c y ' , ' a s k ' ,
пр о г ам м и р о вани я
й с ркт у т п о чл у и с т 1
405zyxwvutsrqpo
в MATLAB
ы м ож н о (и н ж ну я то т ж е сам ы й
' U S D , ' p r i c e ' , 0 . 2 3 ,
о лд
я пу р о щ е
1
' b i d , 0 . 2 1 ,
...
0.27); 1
>> t r a n s a c t i o n = s t r u c t ( ' t i m e ' , [ 10, 2 0 , 4 6 ] , ' s t o c k , ' v o l u m e ' , 10000,
'EESR',...
' s t r i k e ' , A) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
> transaction.strike = А ; >> transaction.strike.exchange ans = 28.5214
а дл е Ун и п р и м ер у
е п ол , п о л
я о щ с у е св т л я е time
я с п ом щ ь
ю н фу к ц и
и rm fieid. адУл и ет
, к
>> transaction = rmfieid(transaction,'time') Е сл с р кт у а дл еу н ы
и в к ач есвт
е в ы о х дн о г а о с ат н е ст м п о л ем
П р и о б р ащ ен и к о й в к грлыу
о а р мг у е н т я бе з и з м е н е н и й
а rm fieid куа з т ь др г у о т с о вт е с вт о а т , а н о в а я е д бу
е и мя
, т о сатр ь с ат р о
я й с
. и к п о л х ск обк а
ю р с к ут х п осл
е то ч к и
ы ег о и м :
я м ож н
о з адват
ь ет к с от в
й ср т о
-
>> transaction.('volume') ans = 10000 тЭ ицак
о дае т тсонж омзов ь использоват и поля : >> field ='volume'; >> transaction.(field) ans = 10000
В о з н и к ае рха н и т н фу к ц и
т воп рос , ка к п о и м ен ь и х в с рт о к в ы х п ер м ен н ы х я fieldnam es:
ь увок ортс
ю у н е мереп
и с ркт у . Д л
ы зу н ат я э от
ь н аз в ан и й ц е л и жс л у и
ю л д я и ф и т неди
-
я е е п о ле т в с рт о е н н а
й и со я
» names = fieldnames(transaction) names = 1 stock' 1 volume' 'strike' П о с м о тр и т м ац и
е в окн ю о п ер м ен н о
е Workspace zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE б р а зу е р а п ер м ен н ы х рабоч е й с р ед ы и н фо р й names. О н а п р есдатв ляе т соб й н е м ас и в с тр о к , а от -
л ав Г
8. Обр аб о т ак
данхы
и пр и ем ы
н о си т я к ти п у c e ll array (м ас и р а с м о тр и м ад л е е в э от й г л а в е жи м ог о яч ей к и и з м ас и в а е с ул д сл е и м ен и м ас и в а яч ек . Н а п р и м е р » f2 = names{2} f2 = volume
пр о г ам м и р о вани я
407zyxwvutsrqpo
в MATLAB
в яч ек )
. З ам еит
. Р а б о т у с та к и м ти п о м дан н ы х м ы м с ей ч а с , ч т о лд я в ы едл н и я с о ед р т ук а з а т ь е е н о м е р в фи рнгу ы х ск обк а х п о, о б р а щ ен и е zyxwvutsrqponmlkjihgfedcbaZYXWVUT
п р и в о ди т к з ап и с и с о ед р ж и м о г о в то р о г о э л ем н т с рт о к в у ю п ер м н у ю f2, к о т р у ю м ож н о етп р п а к н ж ун ом у п ол ю сркту ы t r a n sa c t io n >> v = transaction.(f2)
а м ас и в ь и сп о ль з о в ат
а яч е ь лд
к names в я о д су т -
10000 П росм от р и р е д а к ти р о в а н и е с о ед р ж и м о г о п о ле й с ркт у ы t r a n sa c t io n о д уб н о п р о и з в о ди т ь в р е д а к то р е м ас и в о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR (Array Editor), к о т р ы й о кт р ы в а ес т я дв о й н ы м щ ел ч к о м кн оп ко й мы ш и п о и м ен и с р кт у ы в окн е Workspace. П р и чент и и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гавы л 2 в ы ж у е п р и б егал и к р еда к от р у м ас и в о в лд я од с п у т а к э лем н ат м ч и сло в ы х м ас и в о . Р а с м о рт и м е тп р ь н ек о т р ы е ег о воз м ож н ост и дл я р а б о т ы с о с рт к у а м и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
1,1,121*1 | i| j Ariay Editor - transaction.strike zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH File Edit View Graphics Debug Desktop Window Help tg§ Stack: [~ •Q & ш ш в sfn" - Id L. Tvalue currency 'USD' price - JO.23 bid JO. 21 0.27
„'
_
i
j
transaction x [transaction .strike x .
Рис
. 8.2. П р о с м о т
f j '•
р в л о ж ен о
й ср к т у
ы с п о м щ ь
ю Array Editor
408
аЧс т ь
II. Вчиы с лени я
zyxwvuts
и пр о г ам м и р о вани е
Р е ад к о т р м ас и в о в п о з в о л яе т о б р а ит ь с я к з н а ч ен и я м п о ле й с р тк у ы , в от м ч и сл е и к п о л ю с о в л о ж ен н о й с ркт у о й st r i k e , п р и п о м о щ и дв о й н о г о ю п ол я в сот л б и к е zyxwvutsrqponmlkjihgfedcbaZYXWVUT Field. С о де р ж и м о е п ол я о кт р ы щ ел ч к а мы ш и п о н а з в а н и в ас е т я в н о в м окн е р е да к то р а м ас и в о , п ри ч е м окн о с н аб ж ен о в к л а кд о й с и м не м п ол я (р и с . 8.2). И та к , дво й н о й щ ел ч о к мы ш ь ю п р и в о ид т к оотбраж е н и ю с о е др ж и м о г о п о ля . О бы ч н ы й щ ел ч о к п о и мне и п ол я в сотлби к е Field де лае т э т о п о л е е тк щ у и м , а п о в т р н ы й щ ел ч о к п о з в о л яе т и з м ен и т ь н аз в ан и е п о ля . В во д н ов г о и м не и п ол я з а в е р ш а се т я н аж и т е м и л и щ елчко м мы ш и п о дгорум у п о лю . К н о п к а U p н а п ан ел и и н м ср т у е н о т в р е да к о т р а мса си в о в сжилу т лд я п оердх а в ер х п о уровн я м в л о ж е н н о си т , т . е . п р и акит в н о м окн е с соердж и м ы м н ек о т р о г о п ол я ср кут ы t r a n sa c t io n , н а п р и м ер , п ол я т к о от б р а ж ен и ю с рк т у ы t r a n sa c t io n .zyxwvutsrqpon st r ike , н аж ит е н а U p п р и в ед
М а с ив
ы ст рку
р и масви
ы яеч
к
О бы ч н ы е м ас и в ы о д б ун ы п р и р а б о т е с о дн о р дн ы м и да н н ы м и — ч и слам и и л и с тр о к а м и . И н ф о р м а ц и я м ож е т бы т ь п р е сд а т в л е н а в в и д е та б л и ц ы с по лям и , с о едр ж ащ и м и о д н о ит п н ы е э л ем н ыт , в эот м счлуа е н аи лчуш и м вы бо р о м яв л сет я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA маивс суткр. Э ф е к ит в н о е о п е р и р о в а н и е грпу о й ад н н ы х раз ли ч н ы х ти п о в п о з в о л яе т о щс у е с в т и ь ивсы ма яке,ч р а б о т у с к о т р ы м и м ы р а с м о рт и м тч у ь п о з ж е .
М а с ви
ы ст рку
П р о и л ю с рт и р е у П р е дп о л ж и м п р е сд а т в л е н
, ч т а в та б л
р
м и сп о ль з о в ан и е м ас и в о в с рк т у р н а п рост м п р и м ер . о с пу е в а м о с т ь грп у ы е нд су т о в п о ш ес т и п р емд а т м . 8.1.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG 8.1. Утьс о пвесма
а ц и а лб Т
№
иФ л ма
1
е ск л А
в
2
Ви с а ь л е
3
К аш и
4
С ер о в
5
о в Т ре х
Им я
И ва в
оГ и не д ж я
н
н
е С гр
й П ав е
а
Н а л ьт
л
а
О ль г
а
я
д ро -
свтнео уд к Ое н ц
гупры
и п о пает м д р
201
м
я I
II
III
IV
V
VI
1980
5
4
4
5
5
4
1981
3
4
4
3
5
4;
1979
4
3
4
4
5
4
1981
4
3
3
5
4
5
1980
5
5
5
5
4
5
л ав Г
8. Обр а о т ак
данхы
Д л я р ха н е н и жы д й э л ем н с о ед р ж а щ и з ак лю ч ен
я и н фо р м а ц и т котрог х с о в т ес ю у щ е а в сркту
• фа м и л и О им
пр ог ам и р овани я
и есевт н о я в л се т е с о сюлуед щ и м
я (Name), соедр ж и
т ср т о к т ср т о к т м ас и
а н а р и с
т
и работ
1. Д о сут и н ед к с а ц и 2. П о л
е с м ас и в ам
ю ад н н ы
в скурт
. 8.3. О р г а н и з а ц и
Р ис
и э лем н от
в с о ц ен к а м и х та б л
п к с рт к у а м
. 8.1 в в и д
е м ас и в
а
т П яыт й э лем ен т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG GR2 01 (5) м ас и в а скурт р р
ы в в и д
я т а б л и ц
и сркту
.
р GR2 01 й о снедаут х
F a m i l y вье Виалс Name гйре С Ye a r 1981 M a r ks 3 443 5 4
F a m i l y вкес лА Name в аИ н Ye a r 1980 M a r ks 5 445 5 4
Пр
в и з ш сет
В о тр й элмен GR2 0 K2 ) м ас и в а скурт р
;
;
я о р га н и з а ц и . 8.3.
М ас и с и н форм ац и е
П ер в ы й элмен G R201(1) м ас и в а скурт
409 zyxwvutsrqp
;
т ч и сло
и (Marks), соедр ж и , дем о н с рт и рюу щ а , п р и в едн
у с фам и л и ей
у с и м ен ем
я (Year), соедр ж и
• о ц ен к
в MATLAB
о з а ед й с в т о а т ь м ас и в с р тк у , ка я сzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF у тк йр о с о ди н а к о в ы м н абор м йе,лпо е з н ач ен и е . И н фо р м а ц и я о к а ж од м е нд с у т е и п о л ям и :
я (Family), соедр ж и
• го д р о ж едн и С е мх а с ртк у
и пр и ем ы
р н е о б х ид м
, вояхдщ и
F a m i l y Твхеаор Name ьга л О Ye a r 1980 M a r ks 555545 е м ас и в
а с т р ук т у
р
о п р и ед р ж и в а ь т с
я дву
х п р а в и л
м в м ас и в
, ощсу есвтля
я пр
и п ом щ
а м ас и в
а сркту
. и
. е оедлтяс
я о т и м ен
П оск оль к у к а ж ыд й э л ем н п с ку а ю с т я дв а с п о с б а с о з ад н и рам и п р и с в а и в а н и я дл я все st r u c t , п о з в о л яю щ е й з ан ест то р ы п ри сваи ван и я , п о с л едо в аетл ь н ным и и з та б л . 8.1, п р и в едн с не и я и н фо р м а ц и и в п ол я
и э лем н т т м ас и в х п о ле и з н а ч ен и
а с рк т у
ы в л и сит н г с рк т у
и п о м о щ
и то ч к и
.
я с рт к у о й , т о од а с рк т у р — о п ер а от й с ркт у ы м ас и в а и л и фн у к ц и е й я сраз у в о вс е п о л я с рт к у ы . О п ер а о з ап о л н яю щ и е м ас и в с рк т у р ад н е 8.8. лАь етр н аит в н ы й вари ан т з ан е р м ас и в а со ти т в п о с л е од в а е т л ь н о м
я и з а п о л н ен и й к аж од
р яв л сет я м ас и в
р пр
410
аЧс т ь
и фну к ц и
п р и м ен ен и м ас и в
, н а п р и м е р
и st r u c t лд я з а п о л н ен и , лд я п ер в о й сртку ы
II. Вчиы с ле ни я
zyxwvutsr
и пр о г ам м и р о вани е
я к аж од й с рт к у ы , воядхщ е й в :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
GR201(l) = struct('Family1, 'А' ве скел
, 'Name', 'И' нав
, ...
'Year , 1980, 'Marks', [ 5 4 4 5 5 4 ] ) ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO 1
-
ис т н э и с ва и н
г 8.8. З а пол не и
е масив
а с т рку
р пр
и пом ощ
•
zyxwvutsrqponmlkjihgfedcbaZYXWVUTS и опе р а т ор
в
я
% З а п о л н е н и
е п ерво
й с тр ук тур
ы масси в
G R 2 0 1 ( l ) . F a m i l y = ' А л е к с е е в ' G R 2 0 K 1 ) .N am e = ' И в а н '
а
; ;
G R 2 0 K 1 ) . Ye a r = 1 9 8 0 ; G R 2 0 K 1 ) . M a r k s
% Зи н е л о п а
= [ 5 4 4 5 5 4 ] ;
е во р т
й ср у т к у р т
ы мв и с а
GR201(2).Family = 'В' веьлиса
а
;
GR20K2) .Name = 'С' йегре
;
GR201(2).Year = 1981; G R 20K2) .M arks = [ 3 4 4 3 5 4 ] ; % Зи н е л о п а
е те ь т е р
й ср у т к у р т
ы мв и с а
GR20M3) .Family = 'К' ниша GR20K3) .Name = 'П' лева
а
; ;
GR201(3).Year = 1979; G R20K3) .M arks = [ 4 3 4 4 5 4 ] ; % Зи н е л о п а
е чо т р е в т е
й ср у т к у р т
ы мв и с а
а
1
GR201(4).Family = 'Саворе
;
GR20K4) .Name = 'Н' яьлата
;
GR201(4).Year = 1981; G R 20K4) .M arks = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [ 4 3 3 5 4 5 ] ; % Зи н е л о п а
е по т я
й ср у т к у р т
ы мв и с а
GR201(5).Family = 'Т' авохер GR20K5) .Name = 'О' агьл
а
; ;
G R 20K5) .Year = 1980; G R 20K5) .M arks = [ 5 5 5 5 4 5 ] ;
З ап олн и т о вт е с и м а н нд о
е м ас и в с рк т у и с л и с ит н го й с тр о к и :
» GR201 GR201 =
р GR201, со з ад м 8.8. П о с м о тр и т
в фа й л - п р о г а м е з н а ч ен и
е п ер м ен н о
у GR201FH1 В со й GR201 И З к о -
л ав Г
8. Об р аб о т ак
данхы
и пр и ем ы
пр о г ам м и р о вани я
в MATLAB
411 zyxwvuts
1x5 struct array with fields: ќ Family Name Year MarkszyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В о лт и ч и с рт к у ы к о м а н дн о с р кт у с р тк у
е о т п ер м ен н ы ,х , з адн и е и м ен м окн е з н ач ен и ы и н аз в ан и я ы м ас и в а тр еб у
соедр ж ащ и и м ас и в й п о л ей х п о л ей т з адн и
х ч и сла , м ас и в ы , срто к и и л и п р о с ыт а с к р ту р н е п р и в о ид т к о т б р аж ен и . В ы в оид ст я то л ь к о и н фо р м а ц и я о р а з м е р . П р о с м о т р с о ед р ж и м о г о п о ле й к а ой - ли б я е е и н едк са :
е ю в е о
» GR20K3) ans = F a m ily: 'К а ш и н
'
N ame: 'П а в е л
'
Yea r : 197 9 M a r ks:
[ 4 3 4 4 5 4 ]zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
File Edit View Graphics Debug Desktop Wn i dow Help
In..
\ Value с е е в
File Edit View Graphics Debug Desktop Window Help
1
Family
j'Аелк
Name Year
I'ИI'нав ' И9 8 0 [5 4 4 5 5 4]
I Value 1
Family Name
- 'Ввесаьил 'Сиерг
Year Marks
=1981 [ 3 4 4 3 5 4 ]
1
—I
File Edit View Debug Desktop Window Help SH
X Щ & "'• S
'
ш в >б [Е Г 8
Stack: p
stni...\ = 1 % Ел с
и чл с и
% се а в ы т и ч
о со т н е д у т
в бш ь л о
м и з пл о
% фи л м а
е ил
и рн в а
я Family те ь т е р
ю ст н е д у т
а и зи с о н а
о ее ц и н д
й як й е ч
м в ми с а
, т о
и пг о в р е в со р т
о сц б л о т
а
к strmas
strinas = CELLMAS{3, 1}.Family; end % Пе а ж л о д р
м си н а в ы т и ч
% на н и ч а
я с о вг о р т
е п о ве с
м ос м и ш в а т с
я см а ц б л о т
,
о
for k = 2:NStudents % Се а в ы т и ч
м фи л м а
ю и з пл о
я Family те ь т е р
й як й е ч
а zyxwvutsrqponmlkji
и k- г о сц б л о т
fam = CELLMAS{3, к}.Family ; % Де я л в а б о
м фи л м а
ю в мис а
в со р т
к
strmas = char(strmas, fam) ; endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Р е з л уь ат о л и ям
м работ и седнут о в
ы фа й л - н фу к ц и , учасвт о ав ш и
и st u d en t s яв л ест х в п р о в едн и и э к с п ер и м ен ат
я м ас и
в срт о :
к с фам и
-
» st = students(EXPER) st = онавИ
в
е греС
в
ишаП
н
Доп олн и т е фа й л - п р о г а м в ер к о й , яв ляест я л i sc e i i , к о т р а я в о з в р а щ а е а р мгу е н т — м ас и И ме т см ы с л ат к ж н ет . Д л я э то г о е су л д п ер д о б р ащ ен и е м ч е г о ж с л иу т н фу к ц и
у st u d en t s, п ри в едн н у ю в л и с ит н г е 8.18, п р о й а р мгу е н т м ас и в о м яч ек . П р и м ен и т е фну к ц и ю т "и сит н у " (логи ч еск у ю еид н и ц )у , есл и е е в ох дн о й в яч е к , и "л о ж ь " (ло ги ч еск и й н о ль ) в п р о ти в н о м с чл у а е . е п р о в е р я ть , соедр ж и т л и е тк щ у а я яч ей к а с р кт у у ил и т в о с п о л ь з о в а ьт с я н фу к ц и е й i sst r u c t . К р о м е то г о , к п о л ю с рк т у ы п о л ез н о убеид ьтс я в ег о н а л и ч и , дл я я isf ieid .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
и вохнд о
р П и л е о ж ни и з ком а ндо
я с инт е йрсфо й с т рок
Хо р о ш в о ди т О нд и о р га н и з а ц и
я п р о г р а м а п о з в о л яе , н о и пу р а в л ят ь п р о ц ес о в в з а и м о де й с в т и я п о л ь з о в а ет л а п р и п о м щ и к о м а н дн о
о н ап и сан н а ь в ы ч и с л ен и я м и з сп ос бо я и н етр ф й с
м и т п о л ь з о в а ет л
ю н е то л ь к о п рои з е работ ы п р о гр а м ы м в о дх я с п р и л о ж ен и е м я в л се т й с рт о к и . П ер д в ы п о л н ен и
. я -
428
аЧс т ь
е м н ек о т р ы х едй с в т и п ро с в к о м а н дн о в ы п о л н ен и я п р о гр а м ы с так и м д о с та о ч н л ю уп р ав л ят ь работ
е окн о
Хо р ш и м д е м о н с тр а ц и о н н ы м ан д о й с рт о к а р и ф м еит ч е с к и а р и ф м е ит ч е с к о н ап и сан и я та к о н а э кра н и п о лчу а т ет к с а в к о м а н дн о П р и м ен ен и п о л ь з о в а ет л м н фу к ц и п о л ь з о в а ет л со м являсет
, прога м м а - алуткяоь м п р и м ер о я п р о г р а м а - к а л ь к л у я от р . П о л ь з о в а те л , в о ид т в то р о ы р т е бс у ь о вт е т о т п о л ь з о в а ет л я е о к н о ощсу есвтля
n = input('Втидев
Н а з ап ро з а п и с ы в а е ст
с in put е сулд я в п ер м н у
Н ап и ш и т
е фай л- нфу к ц и ю
3. С ч и ыт в а н и
я с и н етр ф й со м и з к о , в ы ч и с л яю щ а я р е з л у ь ат т ь в о ид т ч и сло , з ает м вы би рае т . Д л я е ч и сл о и п о лч у а е т р е з л у ь ат я м уе н и е о р га н и з о в а т ь вы во д етк с а . К а к м ы ж у е пу о м и н а л и , в ы в о д я н фу к ц и е й disp.
о о дн о с т р о н н ю о в з а и м о ед й с в т и й а р мгу е н т in put явлсет ы в к о м а н нд у ю ср т о к я в к ач есвт е вохдн о г
ю с в яз
ь п р о гр а м т п р и в л еч
ы с
я е с лу д я з н ач ен и ем , в енд ы у в о вт е т н а з ап рос о а р г м у е н ат , н а п р и м е р
ь ще
е м
. З а п р о
:zyxwvutsr
е п = ' ) ;
и да н н о й к о м ан д ы в к о м а н дн о е окн о в ы в о ди ст я с о б щ ен и е е п = " и в ы п о л н ен и е п р о гр а м ы п р и о с ат н а в л и в а е ст я д о т ч и сл о с к л а в и а р ту ы и н е н аж м е т а п о л ь з о в а ет л ь н е в ед е в ы п о л н ен и я in put п ер м ен н о й п п р и с в о и ст я в едн н о е з н а й в в о д н е ч и сла , а , н а п р и м е р , с и м в о л а п р и в ед т к со бщ е е и п овтрн ом у п о яв л ен и ю з ап ро с а н а в од . Ф ну к ц и я in put д с рт о к в с рт о к в у ю п ер м ен н ю у , куа з а н н у ю в к а ч е с вт е вы , п ри ч е м в от р ы м до п о л н и е т л ь н ы м в о х нд ы м а р мг у е н о т м ь ' s' , н а п р и м е р :
n am e = i n p u t ( ' В в е д и т
2. П о лчуен и в с рт о к в у
м п р и л о ж ен и
т то л ь к
е инеча з
П р и в ы п о лн ен и "В в еид т е з н ач ен и ет х п о р , п о к < Enter> . П о с л ч ен и е . О ш и б о ч н ы н и ю о б ош и бк од п с у к а е т во о х нд о г о а р г м у е н ат е су л д т ук а з а т
1. С ч и ыт в а н и
р
и я в л се т х о п ер ац и й е ед й с в т и е й п р о гр а м
е d isp о бесп еч и в ае . Д л я и н те р а к ти в н о г ю in put. В ы охнд о м с к л а в и арут я с тр о к а , ук а з а н н а
zyxwvut
и пр о г ам м и р о вани е
а п р и о с та н а в л и в а е т работ у и в ы ад е т за т п о л ь з о в а ет л я о п р е дл я т ад л ь н е й ш и й ох д й р а з де л п о с в ящ е н н ап и сан и ю п р и л о ж ен и й м и н ет р ф й с о м , п о з в о л яю щ и м п о л ь з о в а ет .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
о п ри м и т вн ы й п р о гр а м ы
й прим е р
р со т П
й п р о гр а м . О вте . Д а н н ы
II. Вчиы с лени я
е им
я ' , ' s '
т в в ест
);
и срт о к у ю пша е , р еали з юу щ у
е п ер в о г
о ч и сл
е з н а к а ар и фм еит ч ес к о ю п ер м ен н у е в то р о г
а в ч и сло в у
я е е в а п о с тр о ф ы
ю сю л у е д щ и
й а л г о р и тм
ю п ер м н у й о п ер ац и
ю (п р и м ен и т о ч и сл
, н е з ак л ю ч а
, с рт о к
.
а в ч и сло в у
.
ю (п р и м ен и т
и (+ , - , * и л и /) и з ан ес н и е in put с о в то р ы м а р г м у е н от ю п ер м ен н юу
.
е in put). е ег о м ' s ')•
а
л ав Г
8. Об р аб о т ак
4. В ы п о лн ен и з н ак 5. В ы в о
. Т ек с
и пр и ем ы
пр о г ам м и р о вани я
е а р и ф м е ит ч е с к о г и (и сп о ль з йу т
а о п ер ац и д р ез луь ат
П р о гр а м м е н от в г
данхы
о е дй с в т и е о п е р а то
а в к о м а н дн о
у оф рм и т т треб му о
я в з ав и си м о ст р п ер к л ю ч ен и
е окн о
е в в и ед й фа й л - н фу к ц и
429 zyxwvutsrqpo
в MATLAB
и о т в едн н о г я switch).
о
.
фа й л - н фу к ц и
и б е з в о хн д ы н в л и сит н г
и п ри вед
- - - - - - - - - - - - - - - - - ...- ,. - - ...........,...,...................,,. .........
х и в ы охнд ы х а р гу е 8.19.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
.............................................., zyxwvutsrqp
,
Л ист ин г 8.19. Ф а йл - иц кн фу я c a l c I zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
| zyxwvutsrq
function calc % Ко т я л у к ь л а
р с ио с й е ф р е т н
% Си н а в ы т и ч
м ко н д а м о
е в чу в о л с и
а = input('Вт и д е в % Си н а в ы т и ч
ю пу н е м р е е по в р е
е чл с и
е в су в о к р т
ю пу н е м р е
oper = input('Вт и д е в % Си н а в ы т и ч % Ви н е л с и ч ы
и , вг о н е д в
ю пу н е м р е е чл с и а а оксечитемфир
о пе л т а в о з ь л о
м
о '); ю ои ц а р е п
, во н е д в
ю ои ц а р е п
е во р т е рт а ь л у з е
ю ча л с и
е ау к с е ч и т е м ф и р
е в чу в о л с и
b = input('Вт и д е в
й ск о р т
ю ча л с и
й пе л т а в о з ь л о
м
ю (+, - , *, /) ', 's'); , вг о н е д в
о пе л т а в о з ь л о
м
о '); й ои ц а р е п
и
switch oper case '+' а + b case a - b case '*' a * b case '/' a / b otherwise error('на н т с е в з и е
я аа к с е ч и т е м ф и р
я ояицареп
1
)
end
т н и ка и х до п о л н и ет л ь н ы х п о яс н е Р абот а с фа й л - н фу к ц и е й calc н е треб у н и й л д я п о л ь з о в а те л я , ме у до с та о ч н о с л е од в а т ь и н с рт к у ц и я м , в ы в о ид м ы м , и р ез луь ат т е д бу т п о лч у е н . Ф ай л- нфу к ц и я c alc од сат в к о м а н дн о е окн о от ч н о ох р ш о з ащ и щ ен а о т н еп р ав и ль н о г о и сп оль з ован и я . К о м а н д а in put а ' s 1 п р о в ер я т , ч т о в едн о ч и сло , и п о в т б е з д о п о л н и те л ь н о г о а р мг у е н т р яе т з а п р о с в сч л ау е н еп р ав и ль н о г о в о да . О ш и б к а пр и вы бор е а р и ф м е ит ю oth erwise о п е р а то р а switch, к о ч ес к о й о п ер ац и и о б р а б ты в а е тс я в еть то р а я в ы в о ди т с о б щ ен и е о н еп р ав и л ь н о в е дн н о й о п ер ац и . Р ез луь ат т
430
аЧс т ь
п о л ь з о в а ет л н фу к ц и
ь п о лч у а е и c aic п ри в ед
II. Вчиы с лени я
zyxwvu
и пр о г ам м и р о вани е
т в с ат н д а р нт о й п ер м ен н о й ans. Д и а л о г фа й л н н и ж е :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
» calc тидевВ
е по в р е
тидевВ
е ау к с е ч и т е м ф и р
тидевВ
е во р т
е чл с и
о 1.2
е чл с и
о 3.1
ю ои ц а р е п
ю (+, - , *, /) +
ans = 4.3000
П о п р о б йу т г л я нд ы но с рт о к з н ак с рт о к ес ни о б х ди м н фу к ц и но ю вс т у щ е
е и з м ен и т ь фа й л - н фу к ц и ю calc та к , ч от б ы о вт е т и ме л бо ле е на й в и д . Н а п р и м е р , есл и п р о и з в о ид ст я с л о ж ен и е 1.2 и 3.1, т о в к о м ан д е окн о в ы в о д и ст я 1.2 + 3.1 = 4.3. З а д ч а со ти т в фо р м и р о в а н и и с р ез луь ат о м (и з в в едн н ы х ч и с ел , з н а к а а р и фм еит ч ес к о й о п ер а ц и а "= ", о вт еа ) и в ы в о д е е е в к о м а н дн о е окн о . О б р а ти т е в н и м ан и е , ч т а р ез луь ат а ф о р м и р е с ту я к а к и з с рт о к , н а п р и м е р , '• +' и '= ', та к и и з чи л 1.2, 3.1, 4.3, к о т р ы е р ха н яст я в п ер м ен н ы х . О ч е в и дн о , ч т о лд я п очлеу я рт е б у м о й с рт о к и е с ул д т п р и м ен и т ь с ц еп л ен и е . П ер д с ц еп л н и е м не о п р ео бр аз о в ат ь з н ач ен и е п ер м ен о й в ср т о к у п р и п ом щ и num2str, вохнд о й а р мг у е н т котро й я в л ес т я ч и сло м и л и п ер м н й с ч и сло в ы м з н ач ен и ем , а в ы охнд о й — с тр о к в о й п ер м ен н о й , со вте й ад н н о м у ч и сло в м у з н ач ен и ю .
а Чс т о к ро м е к о н и в ре т о а н и я чи л с а в р аз о в ан и е р о к тс и в чи олс , корт е с теящлв тусое н од вх м м н е у р га т е с т зе а д я р о с тк а и и л и ' 1 . 9 8 е - 0 3 ' , а в н вы од х м м н е у ра г т ч и о лс . Вн доы х м м н е о у р га т м жм е о т бы т с т е з ра у я в чи олвс й м ис а в . Елс и п реобаз овн и а = str2num( '12A99'), т о о атльрзе у (п робнд о о фн цку и я х п реобаз вн и я
орк т с
е по в р е е ау к с е ч и т е м ф и р
е чл с и
о 1.2 ю и ц а р е п о
, о и -
я о б рнат о
я н у кц ф и е , н ап ри м ер
а рт е б у т н ек о т р ы х и з м ен м в л и с ит н г е 8.19. О п е р а то р ы з и з м ен ен и й . П о п ы та й те с ь ас е воз н и кн ове ю c alc , в счлуа м п р и в е дн ы о п е р а то р ы е р е з л у ь ат . Д и а л о г фа й л :
» calcl тидевВ тидевВ
и
е п об е р й str2num. В о з си м в о л : ' 1 2 3 . 7 7 ' , е в о з р а щ с а те я ю в у щ тс е о е ь и миса в р со т к , корты й п о б ре е н ев о з м ж н о , н ап ри м ер , м р або т ы е д уб т о тс п у й и с ма в сказ н о zyxwvutsrqponmlkjihgfedcbaZYXWVUTS в ине пжо илр У) .
В ы ш ео п и с а н н а я м о ид ф и к а ц и я в и д а р е з л у ь ат н и й в е тк с е фа й л - н фу к ц и и calc, п р и в едн н о р еа л и з юу щ и е в о д п о л ь з о в а те л я , о сатю ст я бе м о с т яе л ь н о м о де р н и з и р о в а т ь фа й л - н фу к ц и н и я в о п р о с в о б р а ти е с ь к ли ст н г у 8.20, в к о т р о о б р а б ты в а ю щ и е в о д п о л ь з о в а ет л я и в ы ад ю щ и н уф к ц и и calc етп р ь в ы гл яди т ю с лу е д щ и м образ ом
у с т е уб р т
-
ю (+, - , *, /) +
, , -
л ав Г
8. Об р аб о т ак
тидевВ
данхы
е во р т
е члси
и пр и ем ы
пр о г ам м и р о вани я
в MA TLAB
431 zyxwvutsrqp
о 3.1
1.2 + 3.1 - 4.3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA н е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA вид а ре злу ть а а ра бот ы фа йл - иц нк фу и c a l c i
function calcl % Ко т я л у к ь л а
р с ио с й е ф р е т н
% Си н а в ы т и ч
м ко н д а м о
е в чу в о л с и
ю пу н е м р е
а = input('Вт и д е в % Си н а в ы т и ч
е по в р е
е чл с и
е в су в о к р т
е во р т е рт а ь л у з е
е чл с и
о пе л т а в о з ь л о , во н е д в
ю ои ц а р е п ю пу н е м р е
b = input('Вт и д е в
, вг о н е д в
ю ои ц а р е п
е ау к с е ч и т е м ф и р
е в чу в о л с и
% Ви н е л с и ч ы
ю ча л с и
и м
о ');
ю пу н е м р е
oper = input('Вт и д е в % Си н а в ы т и ч
й ск о р т
й пе л т а в о з ь л о
м
ю ( + , - , *, /) ', 's');
ю ча л с и
, вг о н е д в
о пе л т а в о з ь л о
м
о ');
а а оксечитемфир
й ои ц а р е п
и
switch oper case '+ќ res = a + b; case '- ' res = a — b; case '*' res = a * b; case '/' res = a / b; otherwise error("на н т с е в з и е
я аа к с е ч и т е м ф и р
1
я ояицареп
)
end % Пи н а в о з а р б о е р
е че с и
л в ск о р т
и
stra = num2str(a); strb = num2str(b); strres = num2str(res); % Си н е л п е ц
е со р т
к
str = strcat(stra, oper, strb, ' = ', strres); % Во в ы
д ск о р т
и с ро т а ь л у з е
м в ко н д а м о
е он к
о
disp(str)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В ы ш ео п и с ан н ы р ы й п р о и з в о ди
е п р и м ер т в ы ч и с л ен и
ы с о де р ж а
т о п е р а то я в з ав и си м о ст
р п ер к л ю ч ен и и о т з н ак
а а р и ф м е ит ч е с к о
я switch, к о т й one-
432
рац и л а и ж ен и е в ы р аж ен и ем сам ы з о в ат г л ян д ы с те я коетрс в ы п о л н ен и
аЧс т ь
II. Вчиы с лени я
zyxwvuts
и пр о г ам м и р о вани е
, в ы б р а н н о г а р и ф м еит ч е с к у , п о н я тн о
о п о л ь з о в а ет л м . З а м еьт , ч т о п о л ь з о в а те л ь в о ид т чи с ю о п ер ац и ю , к о т р ы е в о х яд т в а р и ф м е ит ч е с к о е в ы р ае M ATLAB. Р а ц и о н а л ь н е е с о з адт ь срт о к у с ар и фм еит ч еск и м , в ы п о л н и т ь е , к а к к о м ан д у M ATLAB и в ы в ест и р е з л у ь ат , те м д п о з в о л яе т д о п о л н и те л ь н о и сп о ль м и з б еж а в п ер б о р а . Т а к о й п о дх ь в о з в едн и е в с е тп н ь , в в о д ч и сл а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK п и п р и да е т п р о гр а м е бо ле е на й в и д . Д ей с вт и етл ь н о н ез ам ен и м о й и оч ен ь п о лез н о й фну к ц и е й явля eval, к о т р а я ж с ли у т дл я и н е я л п в о ы кы адн мо MATLAB, зайпионс в и л кйвотрс пй.оне ме р Ф о р м и р о в а н и е с рт о к и с к о м а н до й и е е е фну к ц и е й eval о п и сан ы в сю уледщ е м р а з де л .zyxwvutsrqponmlkjihgfedcba
и м ар н Ф о в и
е и и иенлопс
и ц к н фу
е кмо дан
,
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA e val я нф у к ц и я eval п о з в о л яе у M ATLAB. С тр о к а с к о м а н до :
В с рт о е н н а к о м ан д н ап р и м ер
» st r = ' 1 + 2 ' ; » eval( st r) ans = 3 П ер д в ы п о л н ен и е м к о м ан д
у м ож н
т вы п олн и т й я в л се т
о с фо р м и р о в а т
ь с рт о к у я вохнд ы
, к о т р а м а р мг у е н о т
ь и з н ес к о л ь к и
я с о е др ж и
х с рт о к
т м eval,
:zyxwvutsrqp
= 'у = sin('; » strlzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » str2 = '3/2*pi'; » str3 = ') ' ; » str = strcat(strl, str2, str3); » eval(str) У = - 1
И с п о л ь з йу т ит н г в ы р аж ен и в ан р еш ае ! Л и с ти н
е н фу к ц и ю eval в фа й л - п р о гр а м е c a ic i, п р и в едн н о й в ли с е 8.20, лд я фо р м и р о в а н и я и в ы ч и с л ен и я р е з л у ь ат а а р и ф м е ит ч е с к о г о я бе з п е р б о р а а р и ф м еит ч е с к и х о п ер ац и й , к о т р о е бы л о р еал и з о о о п е р а от р м switch. Ф ай л- нфу кц и я caic2, п ри венд а я в ли ст н г е 8.21, .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF т п о с ат в л е н н у ю з адч у г 8.21. Фа й л - у нф к ц и
я c a l c 2 , д е м о н с тр и р у ю щ а
я и с п о л ьз о в а н и
function calc2 % Ко т я л у к ь л а
р с ио с й е ф р т н
м ко н д а м о
й ск о р т
и
е e v a l
j
л ав Г
8. Об р аб о т ак
данхы
и пр и ем ы
пр о г ам м и р о вани я
в MATLAB
433 zyxwvutsrq
%zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Си н а в ы т и ч е в су в о к р т ю пу н е м р е ю ои ц а р е п , во н е д в й пе л т а в о з ь л о а = input (ќ тидевВ % Си н а в ы т и ч еро
е по в р е
е в су в о к р т
% Си н а в ы т и ч
о ".) ;
ю пу н е м р е
г = input('Вт и д е в
ю ои ц а р е п
е а уксечитемфир
е в су в о к р т е во р т
% Пи н а в о з а р б о е р
е че с и
, во н е д в
м f
ю (+, - , *, / , ) , 's');
ю ои ц а р е п
е чл с и
й пе л т а в о з ь л о А
ю ои ц а р е п ю пу н е м р е
b = input{'Вт и д е в
м
f
е чл с и
, во н е д в
й пе л т а в о з ь л о
м
о ');
л в ск о р т
и
stra = num2str(a); strb = num2str(b); % Фи н а в о р и м р о
е ск о р т
% то к ч о
и с аи к с е ч и т е м ф и р
й с зо т я п а
% в ко н д а м о
й дл е он к
м ве и н е ж а р ы
я пи н е л в а д о
я вд о в ы
м (ск о р т
а пы н ч о т у ж е м о р
а зс т е а ш р е в а
я
х ро т а ь л у з е
в
о
str = streat('res = ', stra, oper, strb, ' ; ' ) ; % Ви н е л с и ч ы % ег
е а гоксечитемфир о ра т ь л у з е
о вя и н е ж а р ы т хс т и н а р
я в по н е м р е
, й res
eval(str); % Фи н а в о р и м р о
е ск о р т
и с ро т а ь л у з е
м в вд и
е '1.2 + 3.1 = 4.3'
strres = num2str(res); % Си н е л п е ц
е со р т
к
str = strcat(stra, oper, strb, ' = ', strres); % Во в ы
д ск о р т
и с ро т а ь л у з е
м в ко н д а м о
е он к
о
disp(str)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
И н ет р ф й с п о л ь з о в а ет л я , п р еод сатв л яем ы та к о й ж е , к а к в c a ic i, етк с т котро й п р и в ед н и е и в ы п о л н ен и е к о м ан д MATLAB п р а л го р и т м к а л ь к л у я от р а бо ле е к о м п а к нт ы В к а ч е с вт е з ав ер ш аю щ ег eval н а п и ш и т е п р о гр а м м ен о й с и н е тр ф й с о гр а м о й до л ж н а в ы гляедт 1. З а п р о з аде м ер
о пу р а ж н ен и у л д я п о с рт е н и м п о л ь з о в а ет л ь ю с ул е д щ и
й фа й л - н фу к ц и е й caic2, то ч н н в л и сит н г е 8.20. Ф о р м и р о в а и п ом щ и eval п о з в о л и л о с е дл а т м и ун и в ер с аль н ы м .
я н а и сп о ль з о в ан и я гр а фи к о я и з к о м а н дн о м образ ом
е с рт о в н фу к ц и й с рт о к и
с гр а н и
ц о рт ез к а
3. З а п р о ц в еа т ск о ль к и м
с ц в еат , ист л
, ист л я и м ар к ер и в о з м о ж н о с ятм
. П о л ь з о в а те л я ли н и
й и м ар к ер о в а и з п р е лд а г е м ы и дл я м уен ь ш ен и
ь в о ди
ь
к и фну к ц и и о нд о й п ер . Р а б о т а с п ро
и -
.
с нф у к ц и , гр а фи к котро й р т е бс у т фо р м л у у н фу к ц и и б е з ч е ут а п о э л ем н т ы , e xp ( x) *sin ( х ) , а н е ерх( х ) . *sin ( x) .
2. З а п р о
о
я п о с тр о и ть х о п ер ац и й т леву
. П о л ь з о в а те л х сп и ск о я о б ъ ем
. П о л ь з о в а те л , т . е . н а п р и
ю и п р а в у
ю гр а н и ц ы
.
ь вы би рае в (о гр а н и ч ь т а п р о гр а м ы )
ь
т н ом е е вы бо .
р р не -
434
4. В ы в о
аЧс т ь
д г р а ф и к
а н фу к ц и
и в гр а фи ч ес к о
5. З а п р о с н а п р о д л ж ен и и л и ' п ' .
II. Вчиы с лени я
е окн о
е работ
zyxwvu
и пр о г ам м и р о вани е
ы с п р о гр а м о й
. . П о л ь з о в а те л
ь в о ид
т 'у
1
З а п р о г р а м и р йу т е а л го р и т м в фа й л - н фу к ц и и б е з в о хн д ы х и в ы о нх д ы х ар мг у е н от в . О фо р м и т е в се ь д и а л о г в н рт у и ц и кл а while, к о т р ы й р а б о та е , п ок а н ек о т р а я с рт о к в а я п ер м ен н а я flag р а в н а 'у 1 . Д о ц и к л а п ри свой т е flag з н ач ен и е 'у 1 . В к о н ц е ц и кл а п о лч у и т е о вт е т о т п о л ь з о в а ет л я о п ро т в п ер м н у ю flag. од л ж е н и и работ ы п р и п ом щ и in put и з ан еси т е о вт е З ап и ш и т е фн у к ц и ю , ввенд у ю п о л ь з о в а ет л м , в с рт о к в у ю п ер м ен н ю у , а п р елд ы п о с рт о е н и я графи к а — в ч и сло в ы е п ер м ен н ы е . З ам ен у обы ч н ы х о п ер ац и й н а п о э л е м н нт ы е вы п олн и т е п р и п ом щ и st r r e p . В ы в о д сп и ск а воз м ож н ы х ц в е то в , ти п о в ли н и й и м ар к ер о в о щс у е с в т и е н фу к ц и е й disp. И с п о л ь з йу т е о п е р а то р ы п ер к л ю ч ен и я switch лд я фо р м и р о в а н и я ср т о к и с к о м а н до й p lo t в з ав и с и м о с т и о т н о м ер а ц в ет а и сит л я ли н и , и ти п а м ар к е р а , в ы б р а н н ы х п о л ь з о в а ет л м и з сп и ск а . В о з м о ж н ы й вари ан т ет к с а фа й л н фу к ц и и лд я в и з а у л и з а ц и и н фу к ц и й с и н етрфй со м к о м а н дн о й с рт о к и п ри ве д н в л и с ит н г е 8.22.
е фо р м л у ы лд я о т б р а ж е м о й н уф к З а м е ьт , ч т о п р и н ек о р ек нт о м в од ц и и п р о гр а м а myplot п р ек р а ит т р а б о ту . П р е дп о л ж и м , ч т о п о л ь з о в а етл ь в е л ln (x) в м ес т о в с рт о е н н о й lo g( x) . О ш и б к а воз н и кн е т п р и в ы п о л н ен и и и в е к от р а у з н ач ен и й нф у к ц и . с рт о к и с к о м а н до й eval п р и в ы ч и слен и ч л у шУ и т е с а м о с т яел ь н о фа й л - н фу к ц и ю myplot, з а к л ю ч и в блок и с воз м ож н ы м и и с от ч н и к а м и ош и бо к в к о н с рт к у ц и ю t r y . . .cat ch , к о т р а я п р ед н аз н ач ен а дл я о б р а б о тк и и с к л ю ч и е тл ь н ы х с и а у цт и й .zyxwvutsrqponmlkjihgfedcbaZYXW Л ис т ин г 8.22. Прим е р фа йл - иц кн фу и m y p l o t с инт е йрсфо м ком а нод ; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA function myplot( ) % Пи н е о р т с о е го к и ф а р % до л а и
в фй и ц к н у
г с пе л т а в о з ь л о
disp('ПМ А Р Г О Р disp('ФИ Ц К Н У
, м и з ко н д а м о
А ДЛ Й ОО Н Д
й ст рок
Я ПИ Н Е О Р Т С О Й П' ЙОН ЕМ РЕ
й ск о р т
и 1
Я ГВОКИФАР )
flag = 'у ' while flag == 'у ' % Зо р п а с фи ц к н у и strfun = input('Вт и д е в % Зо р п а с ло в е й гц и н а р left = input('Вт и д е в
е фю и ц к н у ы ок з е р т е лу в е
% Зо р п а с по в а р й гц и н а р right = input('Вт и д е в
ы ок з е р т е пу в а р
)
, нр е м и р п а
, exp(x)*sin(х ) ', 's');
а ю гц и н а р
у оа к з е р т
, нр е м и р п а
, - 1.2 ' ) ;
а ю гц и н а р
у оа к з е р т
, нр е м и р п а
, 1.3 ' ) ;
и I zyxwvu
Глав
8. Обраотк % Зо р п а
даных с тп и
а ли н
disp('Вт и р е б ы
и приемы
disp('
аншолпс
disp('
анриткнуп
disp('
авохиртш
п л: и ни '
) я я
е це в
т л: и ни '
)
2')
я
3')
linecolor = input('Вт и д е в % Зо р п а
с мр е к а е ти з мр е к р а
п м: арек а ' а
disp('зк ч о д з е в
а
disp('ко ж у р
2')
marker = input('Вт и д е в а вд о в
% с ко д н а м о
)
0') 1')
к
% Ок т о б а р б
и 2 ' ) ;
е 0, 1, ил а пя л е т а в о з ь л о
, фи н а в о р и м р о
й plot и е е ве и н е л о п ы
% Зн е м а
а а иксечитемфир
и 3 ' ) ;
е 1, 2, ил
а
disp('Вт и р е б ы disp('бе
3 ' ) ;
1')
я
disp('ча н р е
3')
и
я
disp('ся н и
2')
е 1, 2, или
а ли н
disp('Вт и р е б ы disp('ка н с а р
1')
я
linetype = input('Вт и д е в с цт е в
в MATLAB
и
е ти
% Зо р п а
прогамивня
х ои ц а р е п
е ск о р т
и
. й н а пы н т е м л э о
е
strfun = strrep(strfun, '*', ' . * ' ) ; strfun = strrep(strfun, '/', ' . / ' ) ; strfun = strrep(strfun, I A I # ' .A- ') ; % Ги ц а р е н я вр о т к е а зи н е ч а н й ат н е м у г р а х = left : (right - left)/30 : right; % Ги н а в о р и е н е ск о р т и дл я ви н е л с и ч ы я вр о т к е % ск о р т а зс т е а в и ч н а к я то к ч о й с зо т я п а й дл % пы н ч о т у ж е м о р х ро т а ь л у з е в н а эа р к н strhelp = strcat('у =', strfun, ' ; ' ) ; % Ви н е л с и ч ы е вр о т к е а зи н е ч а н й фи ц к н у и eval(strhelp); % зи н е ч а н я фи ц к н у % Фи н а в о р и м р о е ск о р т и с ко д н а м о strplot = 'plot(x, у,' ; % Ди н е л в а б о е ии ц а м р о ф н и о тп и switch linetype case 1
и тр е п ь хс т я н а р й plot е ли н
и
strplot = strcat(strplot, ќ ' ' - ' ) ; 15 Зак
. 130
а зи н е ч а н я пи н е л в а д о
й фи ц к н у я вд о в ы
я в вр о т к е
и а
е у
435
436
аЧс т ь
II. Вчиы с лени я
и пр о г ам м и р о вани е
case 2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
strplot = strcat(strplot, ' ' ' : ' ) ; case 3 strplot = strcat(strplot, ' ' ' - - ' ) ; otherwise error('ны н т с е в з и е
й ит
п л' и ни
)
end % Ди н е л в а б о
е ии ц а м р о ф н
и о цт е в
е ли н
и
switch linecolor case 1 strplot = strcat(strplot, 'r'); case 2 strplot = strcat(strplot, 'b'); case 3 strplot = strcat(strplot, 'k'); otherwise error('ны н т с е в з и е
й це в
т л' и ни
)
end % Ди н е л в а б о
е ии ц а м р о ф н
и о мр е к р а
е
switch marker case 0 strplot = strcat(strplot, ' ' ' ' ) ; case 1 strplot = strcat(strplot,
l
*111);
case 2 strplot = strcat(strplot, 'о ' '') ; otherwise error('ны н т с е в з и е
й ти
п м' арекра
)
end % Зи н е ш р е в а
е ги ц а р е н
и ск о р т
и с ко д н а м о
й plot
strplot = strcat(strplot, ')'); % Ви н е л о п ы
е кд н а м о
ы plot
eval(strplot) % Зо р п а
с н а пи н е ж л о д р
flag = input('Пт и ж л о д р end
е рт о б а ь ру т о б а
ы ? (у - да
, п - нет)'
, 's');
zyxwvu
л ав Г
8. Об р аб о т ак
О б р а б о тк з ад ид т
данхы
у в од в в к а ч е с вт ь О п е р оа т
О р га н и з ц В ы во д р е з л у ь ат о в и й ох р ш р е з л у ь ат о н фу к ц и ю вы во д з н а ч ен и св аи в ан и то ч н о лд к о м а н дн о
и пр и ем ы
прогам м и р о вани я
а п о л ь з о в а ет л я м ож н о п р о и з в о ди т ь в б ес к о н еч н о м ц и к ле , е с лу о в и я ц и кл а while иед н и ц у , а в ы ох д и з ц и кл а п рои з во м break.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
я вдо в ы
а т сетыкво
х ре лтзуьа о
в
в в уод б н о ч и ат е м о й фо р м е — о нд о и з н ео бхид м ы х с л уо о н ап и сан н о й п р о гр а м ы . Д л я о т б р а ж ен и я в к о м а н дн о м окн е в работ ы фа й л - п р о г а м ы и л и фа й л - н фу к ц и и м ы п р и м ен ял и d isp со в м еснт о с п р ео б р а з о в а н и е м ч и се л в с рт о к и и л и од п с у к а л и я в ы р аж ен и я в к о м а н дн о е окн о , н е з а в ер ш а я о п е р а то р п ри я то ч к о й с з а п я то й . Э ит х п р и ем о в з а ч с ут ю о к а з ы в а е ст я н ео д с а т я н ап и сан и я п р о гр а м ы , к о т р а я о б щ а ес т я с п о л ь з о в а ет л м ч ер з е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA оо нк .
Ои д со ти
н и з с п о с б о в о р га н и з а ц и и в ы в о д т в с п ец и ал ь н о м вы з ов е н фу к ц и лд я з а п и с и тек сот в ы х фа й л о в ) . Е сл з а т ь и ед н и ц у и л и в о б щ е п р о п с и ут в к о м а н дн о е окн о . С о з да й ет , н а п р и м е р г а 8.7, то л ь к о и ск лю ч и т е и ед н и т ф и к а о т м ен о т в н фу к ц и и fp rin t f. З ап сиут м а н нд о е о к н о и н фо р м а ц и я со втес у етк с о в ы й фа й л . В оз м ож н ост и о т б р аж ен и с я и х в ы в о д м в тек сотв ы з в о л яе т о тк р ы т ь окн о р е д а к то р слов г о м ас и в а , м ас и в рабо ч е й с р ед . С тр о к а ил в а ю ст я в о в о х нд о м а р м гу е н т т н ап и сат м ас и в MAS, т о е сулд openvar р а б о та е т то л ь к о да н н ы е в н рт у и фа й л - нфу к ц и с р ед , п о э тм у эт а воз м ож н ост (к лас и ф к ац и я п ер м н ы кн ци фу " гавы л 5).
Ф а й л - и ц н ук ф а р м у г е тн о Б о л ь ш и н с вт с р а з л и ч н ы
437zyxwvutsrqpo
в MATLAB
а е тк с о в ы х ад н н ы и fp r in t f (к о т р у и в к а ч е с вт е и д е н ит ф и к а от р ь его , т о в ы в о д п р о и с о х ид , фай л- п р о г ам р фа й л а F И З списк е е е и б еи у д ст ь , ч т т то й , к о т р а я р ан е
х в к о м а н дн о е о к н о ю в ы и сп о ль з о в ал и а фа й л а кау т н е в фа й л , а у с тек сот м ли ст н а в о нх д ы х а р гу о в ы в о ди м а я в ко е з а п и с ы в а л с ь в
я м ас и в о й фа й
в ад н н ы х в MATLAB н е о гр а н и ч и в а ю т л и л и к о м а н дн о е о к н о . Ф ну к ц и я openvar п о а м ас и в о в Array Editior с соедр ж и м ы м чи а с рт о к , сркту р и л и яч е к , о п р едл н н о г о в и с рт о к в а я п ер м н а я с и м не м м ас и в а к уа з ы е openvar. Н а п р и м е р , есл и в р а б о ч е й с р ед е се т ь ь openvar ( 'MAS ' ) . П р и м и т е в о в н и м а н и е , ч т о с п ер м ен н ы м и рабо ч е й с р еыд . П ер м ен н ы е , соз , яв ляю ст я ло к аль н ы м и и н е в и нд ы в рабоч е й ь о д сп у т н а то л ь к о в фа й л - п р о г а м а х х о п и сан а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK .аздр "Пукн ци "ф до и е ын ж о В л
и с пе р м е ны
м числ о
м
в о с а т н да р н т ы м ч и сло
х н фу к ц и м в о хн д ы
х и в ы охнд ы
й M ATLAB од п сук а ю х а р г м у е н от в
т о б р ащ ен и , н а п р и м е р
е к н и , фн у к ц и
м я
II. Вчиы с лени я и пр о г ам м и р о вани е zyxwvu аЧс т ь 438zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
лд
я н о а хж е д н и я ми н и му бо ле е в ы о х нд ы м и а р мг у е н ат м а л го р и т м fminbnd адп ит ресу ме у б ю п о с л е до в а е т л ь н о с т fminbnd п р и п о м о щ и воз м ож н ы х в а р и а н та в ен ы х ф а й л - нф у к ц и й то в . Ва м п о н а до б и ст котры х в ы п о лч у и л й а он д г)авы л .
а fminbnd, к о т р у и и с рт е м я к в ы б о р у ь ед й с в т и й . О б р аит ес help с и мне м н фу к ц и х вы з ова . В да н н о м , сп о с бн ы х р а б о та я и сп о ль з о в ат ь м ас и в и п р и чен т и и э от й
о в ы з в ат ь е в о х дн ы м и я и ощсу есвтля ь к в с рт о ен н о и дл я то г о , ч от б ы р а з ед л е о п и сан о с о з ад н и ь с п ер м ен н ы м ч и сло ы яч е к , о с н о в н ы "М ивсаы гл а в ы (с.м р.азд
я ил п о л ь з о в а ет л
ю м ож н и бо ле
с но д и . П р й сп р ав к зу н ат
м ил и э от т рт е е п ь о все е со б т
м а м р гу е н е с е нв д и
и м о -
я о яке"ч
Р а з б ер м сн ач л а п ри н ц и п о р га н и з а ц и и фа й л - н фу к ц и и с п ер м н ы м чи с л о м ов н дх ы х а р гм у е н о т в н а ю су л е д щ е м п р и м ер . Н а п ло с к о с т и з адн о - оп р еьон излв о к о л и ч е с вт о к р г оу в (к о р ди н а т м и ц е н рт о в и р а ид с у м и (xi, yi, R i), (x2, y2, R1) и т . д. ) и то ч к а с к о р ди н а т м и (рх , р у) . Т р е с ет б у я о п р е д л и ьт , леж и т л и то ч к а в н рт у и к а ог - ли б о к рг у а ил и н е т (р и с . 8.7).
U xi, Yll
V (x2
)
—-_—_ /
4У ) \ (x4> zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
/ (x3,y3)\
О .
(
Рис
. 8.7. Рн ежиоплса
Н ап и ш е м фа й л - н фу к ц и ю p o in t , вохнд ы м о р ди н а т ы то ч к и и н ес к о л ь к и х в е к от р - с рт о п о л ж ен и е к р гу о в , а в ы охнд ы м — ч и с л о о т п о п адн и я от ч к и в о ид н и з к р г уо в р и с . 8.7, в ы з о в н фу к ц и и po in t ед бу т в ы гляедт f = point(px, ру
П ер в ы р о в - с рт о п р е дл а г е п у а к о в ы в а ю ст мгу е н
в и кчо т
и
и а р мг у е н а т м и котро й удб т ко к и з р т е х э л е м н от в , з адю щ и х , еид н и ц а и л и н ол ь в з ав и си м о ст и . Д л я счлуая, и з о б р аж ен н о г о н а ь ю с лу е д щ и м образ ом :zyxwvutsrqpon
, [xl yl R1], [х 2 у 2 R2], [х З у З R3], [х 4 у 4 R4])
е рт и в о н х д ы к с о вт ес у т п рост т з ан и м ае
е ко г ур
х а р мг у е н т т ч и сл й сп ос я в с п ец и а л ь н ы т р о в н
о онд
а яв л ю с т я о б я з а те л ь н ы м и , н о ч и сл о в е к от у к рго у в и м ож е т бы т ь раз ли ч н ы м . M ATLAB б р еш ен и я п р о б лем ы . Вс е вохдн ы е а р мг у е н т ы й м ас и в (в екотр ) чяе к varargin , к аж ыд й ар у яч е й к у та к , к а к п о к а з а н о н а р и с . 8.8.
л ав Г
8. Об р аб о т ак
данхы
11 а ячейк
и пр и ем ы
ячейк
р х
а 2 Т
ячейк
в MATLAB
а 3 1 ячейк
а 4 I ячейк
439 zyxwvutsrqp
а 5 1 ячейк
а 6 1
[xl yl R1] [х 2 у 2 R2] [х З у З R3] [х 4 у4 R4]zyxwvutsrqponmlkjih
Р У
. 8.8. Хнареи
Рис М ас и нф у к ц и
прогам м и р о вани я
в varargin , е е з а го л в о
я в л се т
е аноме т у гр я и е д н св т е н ы т та к
к в ы г л я ди
в в varargin м в о хнд ы
м а р мг у е н от
м фа й л
-
:
function where = point(varargin) Д о с ут к л ю ч ен и жи мы с о ед р ж и ид у
п к вохнд ы я и н е дк с м в з ав и си м о ст т абсц и с с тр еьт г
о к ргу
Н ап и ш и т
ю po in t , п р и едр ж и в аяс е Н ДЛИ
а дл и н
3. И з в леч н и а п о яхд щ е
и з а и с с о е рд . Н а п р и м е р , va r a r gin fi} , varargin {5} (3) — р а -
ь сю л у е д щ е г
Ы м ас и в а varargin п р ы varargin , сле и о н а м ен ь ш в — в ы ох д п о о ш и б к е (и сп о ль з йу т
и ПОМОЩ е трех
е и з varargin к о р ди н а
т то ч к
и в п ер м ен н ы е
е и з varargin к о р ди н а й лд и н ы (п р и м ен и т
т ц е н рт о е ц и к
в к рг о у л for).
5. П е р б о р все х к ргуо в с р ав н ен и е ег о с р а ди суо м п ал а з адн н а я то ч к а н и е , р а в н о е е ид н и ц е break. Л и с ит н о и хд м ы м
я пр
и п ом щ
м о б р ащ ен и
а и т . д .
е фай л- нфу к ц и
1. Н аохж едн и 2. П р о в е р к н о а р мгу ен от 4. И з в леч н и то р
м а р г м у е н ат м , т . е . яч ей к а м , п р о и з в о ди ст а в ф и р гун ы е ск о б и и п о сю л уе д щ и и о т ти п а р ха н и м ы х ад н н ы х у И ТОЧК , varargin {2} — Оирд н уат
г 8.23 со едр ж и и к о м е н та р и я м и
, в ы ч и слен и
е р а с от ян и
. Е сл , т о в ы охнд о м , и п р ек р а ит т е тк с
и н ай ед
о а л г о р и тм а
.
И len gth . , т о з а д н о н е од с а т ч е er r o r ) . . в и р аид суо
в в тр и век
у а р м гу е н т ь п ер б о
т р т е б ум о й фа й л - нфу к ц и , сн абж ен н ы й н ео б .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
function where = point(varargin) % ф- л й а и ц к н у ф я ое я л е д р п т пи н а д п о
е тк ч о
% км а т н и д р о и (рх , ру ) в кг у р и с цм а р т н е % в (xl, yl), (х2 , у2 ) и т . д . и рм а с у и д а т 1 в са ч у л
е пи н а д п о
-
я о т ц ен рт а к рг у а д о то ч к и и я б ы о ид н к ргу , в к о т р ы й п о т п ри свои т ь з н ач е у е с ул д р в ы о хд м и з ц и кл а к о м а н до й
н хот
Л ист ин г 8.23. Ф а йл - иц нк фу я p o i n t с пе р м е ны м ичс л о м вынодх х а ргму е нт о ! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
% Ве а щ р в з о %
-
я
и с зм ы н а д
и
и и Rl, R2 и т . д .
в
440
Часть
%
0 в са ч у л
е ни н а д п о е
% Ии н а в о з ь л о п с а чл с и
и прогамивне
я
е where = point(рх
% Пк р е в о р
II. Вычисленя
а вы н д о х
, ру
х ао т н е м у г р
, [xl, yl, Rl], [x2, y2,.R2], ...)
в (чл с и
а яе ч
к varargin)
if length(varargin) = О
с У о в е р ш е н с тв й у т е ф а й л - нф у к ц и ю p o in t , до б а в и в о п е р а то р ы , в ы в о дя щ и е гр а фи ч е с к о е окн о з адн н у ю от ч к у и к рг у и л д я п о лч у е н и я н а г л я дн о г о ре з л у ь та . О ч е в и дн о , ч т о рт еб уст я п р и м ен и т ь к ом ан д ы p lo t дл я п о с рт о е н и я п а р м е тр и ч е с к и з адн н ы х нф у к ц и й (о к ржу н о сетй ) и з а д н н о й то ч к (в и з аул и з а ц и я п а р м е тр и ч е с к и з адн н ы х нф у к ц и й о дн о й п ер м ен н о й оп и с а н а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд "Грик аф пксеихтчр амр и - о н чк у с х а ы н з д укн ций"ф а- г л вы 3). Бл о к о п е р а то р о в н о , п ри вед ч ен и я п а р м ерт о
, ощсу есвтляю щ и н в ли ст н г
е 8.25. Д а н н ы в и з м ас и в а яч е
х о т б р аж ен и й бло к е ус л д к varargin .
е ад н н ы т р а з м е с ит
х в гр а фи ч е с к о
в и -
е ок ь п о сл
е и з в ле
-
II. Вчиы с лени я и пр о г ам м и р о вани е аЧс т ь 442zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
\ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 8.25. Ввоы д да нхы в гиечрасофк е он к о zyxwvutsrqponmlkjihgfedcbaZYXWVU :
% Ои н е ж а р б о т е ды н а х в го к с е ч и ф а р е он к о figure; % Си н а д з о е он к а % Пи н е о р т с о е ое т с о н ж у р к й t = 0:pi/20:2*pi; % зи н а д е вр о т к е а пр т е м а р а for i = lrNcircle % Ви н е л с и ч ы е вв о р т к е , с ищюувтс евто х пк с е ч и р т е м а р % зы н а д м фм я и ц к н у , кы р о т е ою я л е д р п т от с о н ж у р к х = Rcircle(i)*cos(t) + Xcircle(i); у = Rcircle(i)*sin(t) + Ycircle(i); plot(x, у ) % пи н е о р т с о е от с о н ж у р к и hold on end % Во в ы д тк ч о и кы н с а р м морек а м plot(Xpoint, Ypoint, 'or') hold off axis square % си н е а р х о е ог о в к а н и д о мб а т ш с а а ое с
и и i
й zyxwvutsrqponmlkjihgfedcbaZYXWVU
Р абот а фа й л - н фу к ц и и po in t со п р о в ж адест я е тп р ь п о яв л ен и е в и то ч к и , н а п р и м е р , в ы з о ск ог о окн а с р а с п о л ж ен и е м к р г оу f = p o i n t ( I , I , [0 3 3] , [2 - 1 3.3], [- 1 - 2 2 ] ) ; п р и в о ди
т к п о яв лен и
Рис
ю гр а фи к а
. 8.9. Г р афи ч еск о
, и з о б р а ж ен н о г
е о к н
о н а р и с
о с р асп о л ж ен и е
м к ргоу
м гр а фи ч е в
. 8.9.
в и точ к
и
-
л ав Г
8. Об р аб о т ак
данхы
С п и со к в о х нд ы к о м би н ац и в о к фа й л - н фу к ц и
и пр и ем ы
пр о г ам м и р о вани я
х п а р м е тр о ю о б я з а ет л ь н ы
в в з а го л в к х и п р о и з в о л ь н ы и poin t м ож е т и м ет
443 zyxwvutsrqpo
в MATLAB
е фа й л - н фу к ц и х а р г м у е н от в й в и д
ь та к о
и м ож е т с о ед р ж а т ь . Н а п р и м е р , з а го л :zyxwvutsrqponmlkjihgfedcbaZYXWV
function where = point (px, py, varargin) В да н н о м сч л ау е в м аси в яче к уп ак о в ы в аю ст я в е к от р ы и з тре х э л ем н от в с к о р ди н а т м и ц е н рт о в и р аид суам и к р г уо в , н ач и н а я с zyxwvutsrqponmlkjihgfedcbaZYXWVU пвйрое яйекчи м ас и в а , а п а р м е тр ы р х и р у п е р ад ю т к о р ди н а т ы з адн н о й то ч к и . М ас и в varargin в сегд а к у а з ы в а ес т я п о с л е нд и м ! О б р а ти м с я ет п р ь к н ап и сан и о н хд ы х а р гм у е н о т в . П р о д л ж и т ет п р ь со ти т в то м , ч от б н и я к н ей .
ю фа й л - н фу к ц и е работ ы po in t од п сук ал
1. f = p o i n t ( p x , p y,
н ол к гур
ь и л и е ид н и ц а .
й с п ер м ен ы
[ x i y i R I ] , [x2 y2 R2 ] ,
, в з ав и с и м о с т
м ч и сло м вы й po in t . З а д ч е вари ан т ы о бращ е
у с фа й л - п р о г а м о а ю с лу е д щ и
а -
. . . ) . В f з а п и с ы в а е т с
и о т п р и н а лд е ж н о с т
и от ч к
я
и к а о м -у л и б
о
2. [f, N c] = p o i n t ( p x , p y , [ x i y i R i ] , [x2 y2 R2 ] , . . . ) . В f з а п и с ы в а е т
с я н ол
ь и л
и еид н и ц а
, а в Nc — чи сл
3. [f, N c, Num] = p o i n t ( р х
с ы в а се т то ч к а П рои з воль н о с п ец и а л ь н о р а то р ы да н н о г в ы о хн д ы
я н ол , в м ас и е ч и сл м м ас и в , з а п и с ы в а ю щ и о м ас и в а х а р мг у е н о т
ь и л и е ид н и ц а в Num — н о м ер
о к ргоув
, p y,
, к о тр ы
м п р и н ал д е ж и
-
т то ч к а
.
[ xl y l R I ] , [x2 y2 R 2 ] , . . . ) . В f з а п и
, в Nc — ч и сл а эит х к ргоу
о в ы о нх д ы е чяе
х а р мг у е н от к varargout, лд е в ы о хнд ы е а р мгу е н т . З а го л в о к фа й л - н фу к ц и в в М - фай л е в ы гл яид
о к р г уо в в в сп и ск
, к о т р ы е вонхд ы
м п р и н а лд е ж и х а р г м у е н то в
в в о з в р а щ а е ст я фа й л - н фу к ц и е т п р с е у дм о р т е я ч е г о е ус л д ы в с о вт ес ю у щ и и с п ер м н ы м ч и сло т ю с ул е д щ и м образ ом
-
т . й в ь оп е е яч ей к
и
м в о хн д ы :
х и
function varargout = myfun(varargin) р мАг у е н ы т , куаз н и е котры х о б я з а те л ь н о , м огу в о нх д ы х и в ы о х нд ы х а р мг у е н от в д о varargin и Н ап р и м ер , п ер в ы й в ы о х нд о й а р мгу е н т н фу к ц и и ч ен и е н ол ь и л и е ид н и ц а в з ав и с и м о с т и о т п о п адн и в а се т я в с е агд , п о э тм у и ме т см ы с л в ы ед л и т ь ег м е н от в . Н и ж е п р и в ед н з а го л в о к фа й л - н фу к ц и рт и в а р и а н т а в ы з о в а , п ер ч и слен ы е в ы ш е .
т бы т ь п о м ещ ен ы в сп и ск varargout с о вт ес вт ен н о p o in t , п р и н и м а ю щ и й з н а я то ч к и в к р г иу , куаз ы о в сп и ск е в ы охнд ы х а р уг и p o in t , к о т р а я од п с у к а е
и . т
function [where, varargout] = point(varargin) В н ес и т е н е о б х ид м ы г и 8.23—8.25). 1. И з м ен и т м гу е н м ощ
е з а го л в о к т where и п р о и з в о л ь н о и varargout.
е до п о л н е н и
я в тек с
, п рсеудм орте е ч и сл
т фа й л - н фу к ц и в оид о до п о л н и етл ь н ы
и po in t (см
н фи к с и р о в а н н ы
. ли ст н
-
в пр
й ар и п о -
й в ы о х нд о х а р гм у е н от
444
аЧс т ь
2. П ер б и р а й т с о е др ж а щ и
е вс е кгру х з адн н у
ы в с о в т ес ю у щ и х а р г м у е н от в , с к о т р ы м е nargout дл я о п р едл н и я требму ы х яч е к ) .
О б р а ит е с с о ед р ж и и о нс д х ы н и й (см
zyxwvutsr
и пр о г ам м и р о вани е
и в ц и кл е for, з а п о м и н а я ч и сл о к р г оу ю от ч к у (о п е р а то р break ж у е н е н ж уен )
е р е з л у ь ат а в ы о х нд ы
3. З ап и ш и т о т ч и сл (и сп о ль з йу т з ап о л н ен и
II. Вчиы с лени я
е яч ей к и бы л я и х ч и сл
и м ас и в а вы з ван а и о п е р а то
в и и х н о м ер а .
,
а в з ав и си м о ст и а фа й л - н фу к ц и я р switch лд я
ь к ли ст н г у 8.26 в чслау е в о з н и к н о в ен и я воп росов . иЛ сит н г н е х п а р м е тр о в и о п е р а то р о в вы вод а т п р о в ер к и ч и сл а и ти п а в о нх д ы . Д а н н ы е бло к и о с ат ю ст я б е з и з м не х да н н ы х в гр а фи ч е с к о е окн о . л и с ит н г и 8.24 и 8.25).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
г 8.26. Ф а йл - иц кн фу я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA p o i n t s с пе р м е ны м числ о м в ох н ы д х в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Л ист ин а р м уг е н т о
function [where, varargout] = point(varargin) % ф- л й а и ц к н у ф
я ое я л е д р п
т пи н а д п о
% км а т н и д р о
и (рх , ру
) в кг у р
% в (xl, yl) , (х2 , у2 ) и- т % Ии н а в о з ь л о п с
е тк ч о
и zyxwvutsrqponmlkjihgfedcb
и с зм ы н а д
и с цм а р т н е
и
. д . и рм а с у и д а
и Rl, R2 и т . д .
е
%
where = point(px, ру
%
where рн в а
, [xl, yl, Rl], [x2, y2, R2],...)
о 1, ел с
%
и тк ч о
а пл а п о
0 — в по н в и т о р
%
[where, NC] = point(px, ру
%
NC рнва
%
о чл с и
у кв о г у р
а в к- й о к а б и л
м са ч у л
о кг у р
,
е
, [xl, yl, Rl], [x2, y2, R2],...) , си щ а ж р е д о
х тк ч о
у
[where, NC, Nums] =point(px, py, [xl, yl, Rl], [x2, y2, R2],...)
%
В во т к е
% Ви н е л д ы
р Nums зс т ю а в ы с и п а
е ка н и д р о
т тк ч о
я нр е м о и и з пы в р е
а кв о г у р
х ду в
х яе ч
, си щ а ж р е д о к
Xpoint == varargin{l}; Ypoint = varargin{2}; % Ни н е д ж о х а
е чл с и
% (чл с и
о яе ч
а зы н а д
х ко г у р
к varargin бе
з пы в р е
в х дх у в
)
Ncircle = length(varargin) — 2; % Ии н е ч л в з
е ка н и д р о
т цо р т н е
в и ро с у и д а
for i = 1:Ncircle Xcircle(i) = varargin{i + 2} (1); Ycircle(i) = varargin{i + 2} (2); Rcircle(i) = varargin{i + 2}(3); end
в ко г у р
в
х тк ч о
у
л ав Г
8. Об р аб о т ак
% Сл а ч н
данхы
и пр и ем ы
пр о г ам м и р о вани я
а where = 0, т . е . пк о
а не
в MATLAB
т н и ог о н д
о нг о н ж у
о кг у р
445zyxwvutsrq
а
where = 0; % Сл а ч н
а чл с и
о кв о г у р
, си щ а ж р е д о
х ту к ч о
, рн в а
о нл у
ю
NC = 0; % По б е р
р ко г у р
в в цл к и
е
for i = l:Ncircle % Ви н е л с и ч ы
е ри н я о т с а
я о т тк ч о
и д о цр т н е
а тг е щ у к е
о кг у р
а
dist = sqrt((Xpoint ~ Xcircle(i))^2 + (Ypoint - Ycircle(i))Л 2); % Си н е в а р
е ри н я о т с а
я с ро с у и д а
м кг у р
а
if dist epsilon
и н а га ц и н а р
х о' акзерт
]
448
аЧс т ь
center = (right + left)/2; % ви н е л с и ч ы % Пк р е в о р
а н а рв т с н е в а
II. Вчиы с лени я
е сн и д е р
о f(х ) нл у
и пр о г ам м и р о вани е
zyxwvu
ы
ю в center
if feval(fname, center) == 0 break
% не д й а
н ты н ч о
й кь н е р о
, дш ь л а
е дт и л е
ь не
т сл с ы м
а
end % Во б ы
р но н ж у
й пн и в о л
% f(x) пе а м и н р
ы оа к з е р т
т зи н е ч а н
, н а га ц и н а р
я ры н з а
х зо к а н
х ко р т о
й
в
if feval(fname, left)*feval(fname, center) J = c h e b 4 5 c ( f , 0, 1, l e - 5 , 0) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
^ Ел с в щ т с уе н бо д е у к л ад о т ит р о в ан ы л А г о р и мт си в н ы м с от я е л ь н о тк р ы ты н ог
Пр и м е ча ни и оц не к
е а к о ли в ч с т е
у а л ог р и м т а е п о л ь з в са т и глобаьн ы .
а вы з ов в р и с к в у ен о й н ц ку ф и и н е с те убр т , а нж у а о лт ь к о н а па э т е к л ад о т и п р о г ам ы я л о гб а ь н ы м и пнм е р ы м и , т . к . плсо е зршвеа н и е ч и т к ес и вы з ов в муог т бы т ь унела д ы и л и з аком не
ы с а т н да р н т ы х н фу к ц и и с а д п ит в н ы м вы боро о и з ч уи т ь и х , п о ск о ль к й код . Он и н аохядст о к а т л о г а M ATLAB.
я п о , т о я
й MATLAB quad, quadi яв л ю ст я р е к ум ш аг а и н те г р и р о в а н и я . В ы м о ж ет е сам о у с о в т ес ю у щ и е фа й л - н фу к ц и и и м ею я в п о дк а т л о г е \ toolbox\ matlab\ funfun\ о сн о в
Б о л ь ш и н с вт о в ы ч и с л и етл ь н ы х а л г о р и тм о в м ож н о р е а л и з о в а ть з у я м а не х и з м р е к ус и , о дн а к о в с рт е ч а ю ст я з адч и р е к ус и в н ы п р и р о де . Р а с м о рт и м з а дч у о вы вод е с о ед р ж и м о г о п о ле м ан д о е окн о , п о л я котро й м о гу т бы т ь ат к ж е с рт к у а м и в ен ь в л о ж ен н о с т и сркту р п рои з воль н ы й .
-
т -
, н е и сп о ль е п о св о е й й с рк т у ы в к о , п ри ч е м р оу -
.аздр "П-с о р е р с к ут у t r a n sa c t io n , п о д б н у ю р а с м о рт е н н о й в zyxwvutsrqponmlkjihgfedcb су"ткры йтоэ .авыг л zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA А = struct('currency', 'USD1, 'price1, 0.23, 'bid', 0.21, ... »
С о з да й т еты
'ask', 0.27); >> transaction = struct('time', [10,20,46], 'stock', 'EESR', ... 'volume', ... 10000, 'strike1, A, 'exchange', 28.5214 );
462
аЧс т ь
II. Вчиы с лени я
zyxwvutsr
и пр о г ам м и р о вани е
е с о ед р ж и м о г о с рк т у ы t r a n sa c t io n в к о м а н дн о м окн П р и п р о с м о тр и м ен а п о ле й в ло ж ен н о й ср к т у ы А и и х з н ач ен и я н е о т б р а ж а ю тс я . п р о г р а м и р йу т е р е к ус и в н у ю н фу к ц и ю st r u c t f ie ld , в ы в о дящ у ю з н а ч ен и я в се х п о л е й с рт к у ы , в к лю ч а я п ол я в л о ж ен н ы х с рт к у . В н ач л е а л го р и мт а з адй т е п ер м ан ен т у ю п ер м ен н ю у , к о т р а я и ме т см ы с л с ч ет и к в л о ж е н н о с ит . Д а л е е з ап и ш и т е в м ас и в яч е к и м ен а в се х п о л е й с р кт у ы восп оль з ова ш и с ь н фу к ц и е й fieldnames. О р га н и з йу т е цик л п о в се м п о л я с рк т уы . В ц и кл е п р о в ер яй т е с о ед р ж и м о е е тк щ у е г о п ол я п р и п ом щ н фу к ц и и i sst r u c t , к о т р а я воз вращ ае т л о ги ч е с к у ю еи д н и ц у , сел и п еранд н ы й е й п ар м ет р я в л се т я с рт к у о й , и л и л о ги ч ес к и й н ол ь в п р о ит в н о чс л а у е . Е сл и з н ач ен и е е тк щ у е г о п ол я — срткуа , т о в ы в о д н аз в ан и я п о ле й и и х с о де р ж и м о г о о щ с у е св т л я я р е к ус и в н ы м вы з ово м нф у к ц и В о с ат л ь н ы х с ч л уа я х р т е бс у я п рост о в ы в ес т и н аз в ан и е п ол я и ег о з н а ч е н и е . Д л я бо ле е н а г л я дн о г о о т б р аж ен и я в л о ж ен н ы х с р тк у р в к о м а н дн о окн е п р е с ду м о р т и т е о с ут п о т л ев о г о к рая , п р о п о р ц и о н а л ь н ы й р уо в н с рт к у ы , т . е . з н ач ен и ю сч ет и к а в л о ж ен н о с ит . Л и с ти н г 8.34 с о едр ж и structfield.
т о ид
н и з в а р и а н то
в р е к ус и в н о
й фа й л - н фу к ц и
х с т рку
function structfield(somestruct) ; я дл
% ви д о в
я вд о в ы
м пу н т е н а м р е
а сг о м и ж р е д о
о вы н е ж о л
ю пу н е м р е
ю - си ч т е ч
х су т к у р т
р
к вт с о н е ж о л
и
persistent level if isempty(level) % пы в р е
й во з ы
в фи ц к н у
, ии ц а з и л а и ц н
я ск и ч т е ч
а вт с о н е ж о л
и
level = 0; end % зс и п а
ь ие м
н пе л о
й в мис а
в яе ч
к
fnames = fieldnames (somestruct) ; % ои н е л д е р п
е кв т с е ч и л о
а пе л о
й
L = length(fnames); % по х р
д п о ве с
м пя л о
м ср у т к у р т
ы в цл к и
е
for k = 1:L % пи н е ч у л о
е ин е м
и тг е щ у к е
о пл о
я
field = fnames{k}; % се а д з о
м ск о р т
у и з по л е б о р
str = blanks(10*level);
в дл
я оп у т с
а о т лг о в е
о ка р
я
а , м и м е е . м ю
и zyxwvut
\ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г 8.34. Ре уркс и вна я фа йл - иц кн фу я дл я просм от р а вл еож ны ќ
% Ф- л й а и ц к н у ф
е За -
р ; :
л ав Г
8. Об р аб о т ак
данхы
% па к р е в о р
и пр и ем ы
, яс т е я л в
пр о г ам м и р о вани я
я л и те щ у к е
в MATLAB
е пл о
е со р у т к у р т
463 zyxwvutsr
й
if isstruct(somestruct.(field)) % те щ у к е
е пл о
е - ср у т к у р т
% уе а в и ч л е в
а
м си ч т е ч
к вт с о н е ж о л
и
level = level + 1 ; % ви д о в ы
м им
я пя л о
, яс о г е щ ю я л в
disp([str, 'зи н е ч а н % ры н в и с р у е
я со р у т к у р т
я пе л о
й во з ы
й во н е ж о л
в фи ц к н у
й й ср у т к у р т
ы ', field])
и
structfield(somestruct.(field)); % уе а ш ь н е м
м си ч т е ч
к вт с о н е ж о л
и
level = level - 1; else % те щ у к е
е пл о
% ви д о в ы
м им
е н е яс т е я л в я пл о
disp([str 'зи н е ч а н
я со р у т к у р т
я и ег е пл о
о зи н е ч а н
й е
я ', field])
disp(somestruct.(field)) end endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р о в ер ь т е работ у фа й л - н фу к ц и transaction: >> structfield(transaction) инеча з
е пло 10
инеча з
и st r u c t fieid н а п р и м ер
я time 20
46
е пло
я stock
е пло
я volume
EESR инеча з
10000 инеча з
я пело
й он еж лв
й рутк с
инеча з
е пло
я currency
инеча з
е лоп
я price
е пло
я bid
е пло
я ask
USD
0.2300 инеча з 0.2100 инеча з 0.2700
ы strike
е с р тк у
ы
464
аЧс т ь
инеча з
е пло
II. Вчиы с лени я
и пр о г ам м и р о вани е
zyxwvut
я exchange
28.5214zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Доп олн и т п а р м е рт а
е с а м о с т яел ь н , к о т р ы
о н фу к ц и н бы т
й долж е
Пр и м е ча ни
^ В н у кц ф и о б яз е л ь а т н ы м кра я пр
ю st r u c t fi e i d к о н рт о л е м в о ди м о г о .zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
ь с рт к у о й
е
и st r u c t fi e i d чи тес . О н сжи ул т о лть к и вы вод е вножле ы х р у кт р с
к ро в н у о дл я вы чниелс .
я о в ж л н е то с
и le ve l н е яс теялв ы оп уст а о т лвеог
я дил н
я о
В з а к л ю ч ен и е р а с м о тр и м п ри м е р о р га н и з а ц и и а л г о р и тм а п р и п ом щ и ре укн ци ,ф дпо ч т о о к а з ы в а ест я о д бу н ы м п р и н ак о п л ен и и к р ус и в н о г о вы з ов а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ад н н ы х в о дх е р ек ус и . З а д ч а со ти т в п о и ск е все х л о к а л ь н ы х ми н и му м о в н фу к ц и и f(x) в н рту и з адн н ог о о рт е з к а [a, b]. Д л я е е р еш ен и я п о хд и д т с ю л уе д щ а я п о с л е од в а е т л ь н о с т ь ед й с в т и й . 1. В ы б и р ае ми н и му
м с ер и д н а и в ы ч и с л яе
у о рт е з к я Сант рд у
и z л еж и я текщу ег
т а л го р и т
, т о в к ач есвт а з а в ер ш а ест я
м п р и м ен и
м лд
, елс
я м н о ги
я к то ч к е а / ( * ) н а
е н ов г
м [a, z] и [z, b] и в ы п о л н яе
о о рт е з к
х м и н и м уов
о п р и б л и ж ен и о ми н и му
ю fminsearch.
и п р о м е ж кт у а о в ы би рае
и с к дл Э от ло к аль н ы
ю н фу к ц и
т в н рт у
п о с л е од в а е т л ь н
е н ач ль н о г у z л о к а л ь н о г
м аб сц и с
[а, Ь] , И у З ЛЬ О П С 2. Е сл
а в к ач есвт
о о рт е з к м дл
и z = а , л и б
х нф у к ц и й
, и м ею щ и
а [a, b]
я ни
х п . 1. П о
-
о z - Ъ . х к о н еч н о
е ч и сл
о
.
П ер д ожбеснуд и е м п р о гр а м и р о в а н и я а л го р и тм а р аз б ер м п о др б н е е п . 2, в котро м п р о в е р я ст я с лу о в и е н о а ж х е нд и я от ч к и в н рт у и п р о м е ж кт уа . П с ту ь н фу к ц и я fminsearch в ы ч и с л и л а абсц и с у лок аль н ог о ми н и му а г , од у в л е т о р я ю щ у ю н е р а в е н свт у aК >
I
Command Htetory) Ec»or 1
Ф-
Start | Stopped in debugger
Рис
. 8.13. К нолр т
ь зн ечиа
й пн ем ыр е
х в пс цоер
е ок дал т
и
P X
476
аЧс т ь
II. Вчиы с лени я
zyxwvutsrq
и пр о г ам м и р о вани е
П о ш а го в о вы п олн я я фа й л - н фу к ц и ю stm um posi, беуид тс ь в то м , ч т о дл я з н а ч ен и й 1 и 2 с ч ет и к а ц и кл а к усло в и е о п е р а то р а if н е в ы п о л н яест , т . е . н е п р о и сохид т п е р о хд а к о п е р а то р а м , р а с п о л ж ен н ы м в н рт у и етл а if. Т а к и до л ж н о б ы ть , п о с к о ль к у п ер в ы й и в то р й си м вол ы с рт о к и s t r н е являю т с я ц и фр а м и . К о гд а з н ач ен и е к до с ит га е т 3, до л ж н о п о лч у и ь т с я в ер н о е сло у в и е в о п е р а то р е if, т . к . треит й си м в о л в с рт о к е я в л се т я ц и фр о й . О нд ак о у в н рт у и ет л а о п е р а то р а if н е п р о и сохид т . О ш и б к а л о к ал и п е р о дх а к б л о к з о в ан а и п р о ц ес с о лт а дк и м ож н о п о к а п р е в а ть , в ы б р а в в м ен ю zyxwvutsrqponmlkjihgf Debug п н у к т Exit Debug Mode и л и н аж в о нд о и м е н н у ю кн оп к у н а п ан ел и и н с р мт у е н о т в р е д а к то р а М - фа й л о в . И та к , н ео б хди м о в ы я с н и ьт , ч т о ж е н а сам о м е дл е п р о в ер я т о п е р а то р if. В н ес и т е н еб о ль ш и е и з м ен ен и я в фа й л - н фу к ц и ю stm um posi. П ер д с лоув н ы м о п е р а то р о м п ри свой т е в с п о м о г а ет л ь н о й п ер м ен н о й tempi з н ач ен и е , в о з в р а щ а е м ы й isn um eric (tem pi). H e зьдабу st r (k), a temp2 — р ез луь ат т е с ор ха н и т ь фа й л stmumposi.m. Т еп р ь м ы и з б ер м бо ле е б ы с рт ы й пт у ь о л т а кд и п р о гр а м ы , саутн о в и в то л ь к о но д у с луо в н у ю от ч к у о с ат н о в а в с рт о к е фа й л - н фу к ц и и с о п е р а то р м if п р и досит ж ен и и с ч ет и к о м з н ач е н и я 3. Д л я э то г о с уат н о в и т е к р ус о р в ср т о к у с о п е р а то р о м if, в ы б ер и т е в м ен ю Debug п ну к т Set/ Modify Conditional Breakpoints. В п о яв и в ш ем с я окн е в е ид т : =к = з . В фа й л - п р о гр а м е check то ч к а о с та н о в а уж е н е п о н а од б и ст я и е е м ож н о да у л и ь т . Н а ч н и т е о л т а кд у сн ова , з ап суит в фа й л - п р о гр а м у check п р и п о м о щ и < F 5> (Run). Т еп р ь п р и о с та н о в п р о и з о й де т то л ь к о в н фу к ц и и stm um posi п р и з н ач ен и и с ч ет и к а ц и кл а к , р а в н о м 3. П р о а н а л и в и х л д я п р о с м о тр а в з и рй у т е з н ач ен и я п ер м н ы х tempi и temp2, о кт р ы Array Editor. З н ач ен и е tempi п о к а з ы в а е т , ч т о тр еит й си м в о л с рт о к и s t r н а сам о м е лд е в о с п р и н и м а ест я н е к а к ч и сл о (double), а к а к си м в о л (char), вер н е е м ас и в с и м в о л в р а з м е р а 1 н а 1. П о э от м у н фу к ц и я isn um eric в о з в р а щ а е т л о ги ч е с к и й н оль , ч т о п овтдер ж адест я з н а ч ен и е м п ер м ен н о й temp2. Д о п щ у ен а ош и бк а в и с п о л ь з е му о м ит п е ад н н ы х . П р е в и т е о л т а кд у и п о м уд а й е т , к а к п р о в е р и ть , являсет я л и си м в о л ц и фр о й и л и н ет . П р ео бр аз о в ан и в э от образ ован и ч и сло с ч л уа я х в р ащ аем о г
е с рт о к и , п о з в о л яе т и етк щ у е г о , сле и еткщу и й си м в о . С л е до в а те л ь н о о str2num м ас и в
й гл а в е
в ч и сл к о р е к тн си м вол
о н фу к ц и е
й str2num, о к о т р о м бы л о ск аз ан о и нжу ю п р о в ер к у . П р и п ре а с рт о к и s t r в о з м о ж н ы в с ег о дв а в а р и а н т а : л — ц и фр а , и посту й м ас и в в о в се х о с ат л ь н ы х , до с та о ч н о п р о в ер и т ь р а в е н с вт о н л у ю дл и н ы в о з а (ли ст н г 8.38). о п р о и з в ес т
....„, zyxwvutsr
Г • • - • - "• "-"--• • - - - ""•- - - - •,- ......,......"• • - ".- ., - - - - - • - - ................... I zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 8.38. Нова я фицнку я st mumposi дл я ида л ог в й от л аикд
fu n c t i o n p o s = s t m u m p o s i ( s t r ) s l e n = l e n g t h ( s t r ) ; d i g i t s = 0; p o s = [ ] ;
/
|
л ав Г
8. Об р аб о т ак
данхы
и пр и ем ы
пр о г ам м и р о вани я
477zyxwvutsrqp
в MATLAB
fo r к = l : s l e n zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA а = str2num(str(к)) ; if length(a)~= О digits = digits + 1; pos(digits) = к ; end end
П о в то р и т е о лт а до ч н ы е едй с в т и я и б е у и д тс ь , ч т о п р о и сохид т п рави ль н о з ап о лн ен и е э л е м н от в в ы о х дн о г о м ас и в а . В н еси т е о к н ч а ет л ь н ы е и з м ен е н и я в фай л- нфу к ц и ю strnumposi, а и м ен о в ер н и т е к о м ен ат р и и и п р о в ер к ов н дх ы х а р мг у е н от в та к , ка к б ы л о с е дл а н о в н фу к ц и и strnumpos (см . ли с ит н г 8.1).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
^
П р и м е ча н и
а иво л с у я в и ст е о я ис м в о л а ц ир ф е и п с е оь л з у т о с н б е о ст е о р ал г и т м н а ст о в и т я н епр а MATLAB. нОд ак о в ак о т м ча у л с м в и г ру д е ы д рес . П омэт у ови л с у е п р о кв е и чш у л е з ап и с ат , пмиорел й л д я лю б о й д ерс ы п р о г ам и р о в ан и я . Н ап ри м ер s t r ( k ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >= ' О 1 & s t r ( k ) = > y = s i n ( x ) ; >> p l o t ( x ,
у )
п р и в о яд т к п о яв лен и бо т ы p lo t со з адли с ос и и л и н и я гр а фи к
ю гр а фи к ь рт и г р а ф и ч е с к и а с и н с ау
а нф у к ц и
. В да н н о х о б ъ е к ат
. М а н и п луи р о в а н и
м сч л ау : гр а фи ч ес к о е с в о й с вт а м
е в р е з л у ь ат е ра е окн о Figure 1, и о б ъ е к от в в
482
лд
аЧс т ь
я н фу к ц и я м и get MATLAB п р о и з в о ди тс я п о ч л уе н и я з н ач ен и й с в о й с вт , a set лд э о т м н фу к ц и я м get и set е услд т ук а з а ть от в с в е т д я р а б о та . И м ест я р т и с а т н ад р н т ы ч ен и я к о т р ы х м о гу т бы т ь и сп о ль з о в ан ы и set : • gcf — еткщу е
е гр а фи ч е с к о
• сд а — еткщу и
е о си
• сд о — еткщу и
й гр а фи ч е с к и
О б р а ти с в о й свт а о нд фи ч е с к о едл н и
е окн о
II. Вчиы с лени я
zyxwvutsrq
и пр о г ам м и р о вани е
и set . Ф ну к ц и я get п р едн а з н а ч ен я с аут н о в к и н овы х з н ач ен и й , с к ак и м и з сщ у еювсту щ и х нф у к ц и , в о з в р а щ а е м ы в к ач есвт е в ох дн о г о а р мг у е н т
а . П р
и
х о б ъ ек
е зн а а get
;
; й о б ъ ек т
.
е вн и м ан и е , ч т о и с п о л ь з о в а н и е gcf, сда , сд о о тк р ы в а е т о д ус т п к м zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA т к е г у що окн а , осе й и л и о б ъ ек ат . В да н н о м с чл у а е ес т ь т о л ь к о , о н о и явлсет я етк щ у и м . Е ид н свт ен н ы е о с и в гр а о гр а фи ч е с к о е окн о м окн е та к ж е яв л ю ст я текщу и м и . П р о и с п о л ь з о в а н и е дс о дл я о п р е я текщу ег о о б ъ ек т а ск аз ан о н и ж е .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
й о с в Ст
а ос е
В ы в еи д т котры
е в к о м а н дн о й бы л п о с рт о е
й е окн н в п рыедщ у е
о с в о й свт
а о с ей м р а з де л
, со едр ж ащ и , дл
я ч ег
х гр а фи о в ы п о л н и т
к фн у к ц и е к о м а н ду
, :
» get(gca) В к о м а н дн о м окн е о т б р а ж е ст я та б л и ц а св о й ст д о с та о ч н о мн ог , сред и н и х се т ь о ч е в и н д ы е п ер в ы й в з гл я д к а ж се т я н е п о н я нт ы м . С в о й с вт л и т ь н а дв е грпу ы — о б щ и е с в о й свт а и св о й свт
в и и х з н ач ен и й . С в о й с т , а н а з н а ч ен и е н ек о т р ы х н а о се й с ул о в н о м ожн о р а з ед а к а ж од й и з о се й х , у и л
z . Н а з в а н и е св о й ст в в то р й грп у Y и л и z. Т а б л и ц ы 9.1 и 9.2 со едр ж а м ен яю с т я п р и с о з адн и и п р и л о ж ен и й
ы н а ч и н а е ст т осн овн ы .
Ф ну к ц и я get до п сук а е в то р ы м а р мг у е н о т сет я п о лчу и ьт , н а п р и м е р
е к н е й с мв д у е с в о й с вт а
т о б р ащ ен и м я в л ес т
я н аз в ан и , к о м а н д
я с со втес юу щ е е с в о й свт а я в о х нд ы м , з н а ч ен и
, к о т р ы
в а и
й к б ву ы х , е ч аст о п ри и а р г м у е н ат м и е котрог
, о ртеб у -
а
>> fn = get(gca,'F ontN ame') з ап и сы в ае п ер м ен н у
fn = Helvetica
т н аз в ан и ю f n и в ы в о ди
е ш р и ф ат
, и с п о л ь з еум о г т е е з н а ч ен и
е н а э к р а н
о в ще к т у и х о с ях , в с рт о к в у ю :zyxwvutsrqponmlkjihgfedcbaZYXWVUT
л ав Г
9. Десрки пт о р ная
гиакр ф
483 zyxwvutsrqp
9.1. тйвсоаС, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED отиающевч за оищй б вид ойес zyxwvutsrqp
а ц и а лб Т Н иа з н в
е свсотй
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и с н аО п е и ен ч а Зн я
Box
З ак лю ч ен и м о гу л ь н у
C o lo r
Ц ве
е о се ю рам к т фо н
а осе
й в п р я у
-
' o n ' (п о ум о л ч а н и ю 1 • off
й
В е к то з ад ю щ и
) и л
р и з тр е й ц ве
х э л е м е н то в т в фо р м ат
R G B, н а п р и м е о ди то в ц ве F on tAn gle
Н акло м е кт
FontN ame
Н аз ван и
F o n t Size
Р аз м е ум о л ч а н и 1 п ну к
F on tWeight
н ш р и фт и о се й
а р а з
а
а (п о ю в п ну к т а х т = 1/72 дю й м а а ш р и фт
С ти л
Lin eWidth
Толш и н
Vi si b l e
О то б р а ж е н и
D a t a Asp e c t R a t io
М а с ш та
P lo t Bo xAsp ec t R a t io
Р аз м ер
ь ли н и
, )
й сект
б о се
ы о се
и
й осе е осе
й
й
ю )
Ц ело ни
е ч и сл ю 12)
о (п о ум о л ч а
-
-
' n o r m a l' (п о ум о л ч а н и ю ) а
а л и н и
-
И 'italic'
' b o l d ' , 'demi'
G r id L in e S t yle
х ц ве - о и пл р
С тр о к а с н а з в а н и е м ш р и ф та , н а п р и м е р 'C ourier'
р ш р и фт
Толщ и н
и
' n o r m a l 1 (п о ум о л ч а н и ю ИЛ
е ш р и фт
, е
р [ i l l ] , и л
н и з о п р е д л е н н ы : г , g и т . д , (с.м 1). П о ум о л ч а н и т б елы й
ине же
и
' l i g h t ' , И Л
И
' - ' , ' — ' , ' : ' (п о му о л ч ан и ю ) ' - . ' и л и ' п о п е й
й
,
З н ач ен и ум о л ч а н и
е в п ну к та ю 0.5)
' o n ' (п о ум о л ч а н и в и дн ы ) , ' o f f
'
х (п о ю ос и
В е к то з ад ю щ и м а с ш та
р и з тр е х э л е м е н то в й о тн о с и те л ь н ы б п о к аж од й и з осе
В е к то з ад ю щ и раз м ер
р и з тр е х э л е м е н то в й о тн о с и те л ь н ы ы к а ж до й и з о се
, й й , й
е
zyxwvut
аЧс т ь II. Вчиы с лени я и пр о г ам м и р о вани е 484zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
9,2. тйвсоаС
а ц и а лб Т
из ойес
(на
е р ипмр
X) zyxwvuts
оис
и с наО п е и ен ч а Зн я а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е ссвойт
Н и ан з в
кй о д аж
XColor
Ц ве
т ос и
В е к то з ад ю щ и
р и з тр е й ц ве
RG B, н ап ри ме о ди то в XD ir
Н ап рав лен и
н и з о п р е д л е н н ы х ц ве : ' г 1 , ' д 1 и т . д . (с.м ине ж о иплр 1)
(о б р а тн о е XG rid
С е тк а , п е р п е н ди к луя р н а я ос и
XAxisLo cat io n
Р асп о ло ж ен и (дл я о с и z о тс у в е т
' o n ' и л
)
( ' r i g h t 1 И Л
XLim
П р ед л п ер м ен н о
XScale
М а с ш та
XTick
К о р ди н а т ос и
XTickLabel
ы и з м ен ен и
Р а з м е тк
я й
б ос и ы р а з м е тк
и
а ос и
И 'reverse'
и 'o ff
' t o p ' И Л ЛД
-
)
е ос и
, е
р [ i l l ] , ил и
' n o r m a l 1 И Л
е о с и
х э л е м е н то в т в фо р м ат
Я СО
И 'bottom' И 'left'
И у )
В е к то р и з дв у равн ы х п р едла н и я п ер м ен н о й [ - 1.5 2.3]
х к о м п о н ен т м и з м ен е , н а п р и м е
' l i n e a r ' и л
и ' lo g'
В е к то р с к о р д и н а т м р а з м е тк и , н а п р и м е [ 0 1 3 5] В е к то р а з м е тк н о дл и н ди н а т м п ри м е
, р
и р
р яч е к с н а з в а н и я м и и (ч и с л о яч е к рав е в е к то р а с к о р и р а з м е тк и ) , н а р
{' z e r o ' ; ' o n e ' ; ' t h r e e ' ; 1 f i ve ' }
К оман д ти м ы п ара
)ле иаузщйдр
а se t п о з в о л я е т ус т а н о в и т х з н ач ен и й . П е р в ы м а р г ум е н т о 1 : ' с в о й с т в о , з н а ч е н и е . П р и в е д и т
к в и уд
, ука з а н н о м
ь к а ж до м у с в о й с тв м з а да е тс я дс а е ос и с гр а фи к о
у н а р и с
. 9.1.
у осе й л ю б о е и з д о п ус , а в т о р ы м и тр е ть и м — м с и н ус а (с.м - ы депр
л ав Г
9. ес рДки пт о р ная
гиакр ф
485zyxwvutsrqpon
Рис Дл
я э то г
э к ран е дн н ы ад ю ли н и фи ч е с к о г
. 9.1. Ин езми
е сйтосв
в ое с
й
о расп ол ж и т е к о м а н дн о е окн о M ATLAB и гр а фи ч ес к о е окн о н е та к , ч от б ы он и н е п ер к р ы в а л и др у г дргуа , и п р и в ы п о л н ен и и п ри ве х н иж е к ом ан д с л ие д т е з а с о тян и е м о с ей . С юлеуд щ и е к ом ан д ы за т от л щ и н у ли н и й о с ей , к о р ди н а т ы и о б з н ач ен и я р а з м е тк и , н а н о с я и к с ет и и с у ат н а в л и в а ю т ц ве т фо н а о с ей , с о в п а дю щ и й с ц в ео т м гр а о окн а :
а т -
>> set(gca, 'LineWidth', 2) » set(gca, 'YTick', [- 1 0 1]) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE » set(gca, 'YTickLabel', {'y=- l'; 'y=0'; 'y=l'}) » set(gca/ 'XGrid', 'on') >> set(gca, 'GridLines', '- ') » set(gca, 'Color', [0.8 0.8 0.8]) Част ь н аз ван и й свой ст в з а к а н ч и в а е тс я слово м Mode, н а п р и м е р , YTickMode. Таки е с в о й с тв а м о гу т и м ет ь то л ь к о дв а з н а ч е н и я — ' a u t o ' (ус та н авли ваем о е п о ум о л ч а н и ю ) и л и ' m a n u a l' , п р и ч е м ' a u t o ' с о т в е т с т в уе т ав то м а ти ч е с к о м у п о дб о р у з н ач ен и я с о т в е т с т в ую щ е г о с в о й с тв а , в д а н н о м с л уч а е YTick. З а д а н и е в е к то р а в YTick п р и в о д и т к см ен е з н ач ен и я YTickMode с ' a u t o ' н а ' m a n u a l' . В с е г д а можн о о тм е н и т ь п р о де л а н н ы е и з м ен ен и я свой в YTickMode в ' a u t o 1 . В ы ш е с к а з а н н о е с п р а в е дл и в о дл я с тв а YTick, у с т а н о в и в се х с в о й с тв , и м е ю щ и х с о п ут с т в ую щ е е с в о й с тв о , к о т о р о е з а к а н ч и в а е тс я н а Mode.
486
И та к фа й л - п р о гр а м с ум о рт е н и ю п р и в е дн н ы ав ыг л
аЧс т ь
, к о м а н д
а se t п о з в о л яе т п о лч у и т ь од с у т ы и л и фа й л - н фу к ц и и и и з м ен и т . Н а з в а н и я св о й ст в и и х в о з м о ж н ы х в и н с п е к от р е с в о й с вт , к о т р ы р.азд "Цвето ин,е л м р оо ф ртек а зм
4 (с.м
II. Вчиы с лени я
и пр ог ам и р овани е
zyxwvutsr
п к с в о й с вт а м и з с о б вт е н н о ь в и д гр а фи к а п о с в о ем е з н ач ен и я н е о лт и ч а ю ст й в ы и сп о ль з о в ал и п р и че н т и и стек а ").
й
у я о т и zyxwvutsrq
С р де и н аз в ан и й свой ст в о с ей , п чоелну ы х п р и п о м щ и get (gca), сте ь T it le , xiabel, Yiabel, ziabei. О б р а ти е в н и м ан и е , ч т о и х з н а ч ен и я ен юятс вл я е тк с о в ы м и с тр о к а м и . О н и со едр ж а т к у а з ет л и н а с о вт ес юу щ и е е тк с о в ы е о б ъ е к ыт , о б и с п о л ь з о в а н и и к у а з е тл й и тек сотв ы х о б ъ е к ат х п о др б н о н ап и сан о н иж е (с.м р.азд "Уик азтле ан к"етыъ б о и "Т еквтсыо к"етыъ б о й а он д г)авы л .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA й XLim, YLim, ZLim, D a t a A s p e c t R a t i o , P l o t B o x A s p e c t R a t i o , OT-
С во йс тв
а осе
в е а ищ ю ч з аы н тш а б
е з а е пр д л ы
. Н а пирме р , б о л е ZLim з наеч и
, амс тш
е О Г ТО е с во й с т в
, о тн с ите нлыь , пр
б и о т н с и т е нлы ь е а рз ем ы осей , вз аоимс вя е а рз е м ы о с е й з а ви с я т о т епр д л о в и ас м и з а дны х D at aAsp ec t R at io , XLim, YLim И О Н Ж О , ОЗМ В а P lo t Bo xAsp ec t R at io ниогуер тс я . Та б ли ц а с я вз е
, й
М еж д у ИМ Т Э И М а ЙВ ОТ С И И Ю Щ ИМУ В Т С Т ПУ О С И К И Н М XLimM ode, YLimMode, ZLimM ode, D a t a Asp e c t R a t i o M o d e И P l o t B o xAsp e c t R a t i o M o d e п р и в е д е н а В
ю О В Т С СВОЙ е D at aAspect R at io й ем с т и С е M ATLAB (СМ . аомцир нф о с ей , н а п р и м е р в р а з д . MATLAB: Functions - Alphabetical List (ги п ер с ы л к а Axes Properties)).
о н ч в а р пС
В э от м р а з де л е м ы р а с м о рт е л и то л ь к о н аи бо ле е ч аст с вт а о с е й , з а м е ти м , ч т о в сег о и х бо ле е 100. Р я д св о й ст л о ж ен и е осе й в п р едлах гр а фи ч е с к о г о окн а . Э от т воп ро "Уине апврл инме пж о л о ойе"с дйаон г)авы л (с.м р.азд
о и с п о л ь з е му ы в о тв е ч а ю с м ы ои дб с у .
е св о й т з а расп о м н иж
е
Г р а фи ч е с к и е о б ъ ек т ы MATLAB о б л а д ю т д о с та о ч н о боль ш и м н або р м с в о й с вт , о п и с а н и е котры х сли ш к о м о б ъ ем н о . Ц ел ь э от й г л а в ы — да т ь п р е сд а т в л е н и е о б о р га н и з а ц и и гр а фи ч е с к и х о б ъ е к то в , и х ти п а х и о сн о в н ы х п р и ем а х работ ы с н и м и . П о э т м у м ы и н о гд а е д уб м то л ь к о пу о м и н а т ь о ет х ил и ин ы х с в о й с вт а х , о дн о в р ем н н о да в я с ы лк и н а с о вт е с ю у щ и е раз е дл ы и н ет р а к ит в н о й сп рав о ч н о й с и с е тм ы . Онд и м и з осн овн ы х р а з де л о в вя л я ес т я M ATLAB: Graphics: Handle Graphics Objects. К р о м е то г о , б ы с рт ы й од с у т п к н аз н ач ен и ю в се х с в о й с т в гр а фи ч е с к и х о б ъ е к от в п р о и з в о д и тс я и з б р а зу е р а с в о й с вт , р а з м е щ е н н о г о в раз д . MATLAB: Handle Graphics Property Browser. И сп о ль з о в ан и ин е у ч л
е б р за у е р
а св о й ст
иаци м р о фн
о й в Сс т С та н д а р тн а з в о л яе
о стйвсоах
а л ин
й и пове рнхст е
я нфу к ц и т п о лч у и т
ь од с у т
я gca, з а д в а ем а п к с в о й свт а
в гр а ф и ч е с к и к с еи х ч га ф р
х о б ъ е к от окевт"оъ б
в о п и сан эйто
о в р.азд г.авы л
"П-о zyxwvutsrqponmlkj
й я в к а ч е с вт м е кщ т у и
х о с ей
е а р гм у е н т . О дн а к
а se t и get, п о о лд я о б р а щ е н и я
л ав Г
9. Десрки пт о р ная
к е щк т у е в с рт о е н н о щ ел ч к и х з н а ч ен и
487zyxwvutsrqpo
й ли н и и гр а фи к а ил й нф у к ц и . С едл а й т а мы ш и п о н е й в гр а фи ч ес к о й в к о м а н дн о е о к н о
ge t ( дс о
»
гиакр ф
М н оги Табли ц
)
и п о в е рн х о с т е ли н и , и с п о ль з у
и в M ATLAB н е т с п ец и а л ь н о й ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO т к е и у щм к е мт о ъ б п р и п ом ощ и м окн е , з ает м в ы в е ид т е ат б л и ц у свой ст в и я сд о :
• :
е и з э ти х свой ст а 9.3 с о д е р ж и
в в ы и з м ен ял т н аи боле е част
и в р е да к то р о уп о т р е б л я е м ы
е п р и п р о ч те н и е с в о й с тв
е в с от й
а
C o lo r
и с н аО п
е
Ц ве
и ен ч а Зн
т
В е к то да ю щ и
р и з тр е х э л е м е н то в й ц в е т в ф о р м а т
ь ли н и а
и
П о л о ж и те л ь н о
M arker
Ти
О дн ч ен и й (см
Ц ве к ер
M arkerF aceC o lo r
Ц ве
M arkerSize
Р аз м е п н у к та
П р и в е ди т и сп оль з у щ и е к о м а н ды » » » » »
set(до с set(до с set(до с set(до с set(до с
е графи я ф ун к ц и
а
т гр а н и ц
ы м а р
т м арк ер
а
-
н и з
: ' г ' , f g f 1)
х ц в е то в ине пж о илр
- ' (п о ум о л ч а н и ю ) ' - . ' и л и ' п о п е
Толщ и н а ли н и и в п н у к та х (1 п ну к т = = 1/72 дю й м а )
M arkerE dgeC olor
и о ди
1
Lin eWidth
п м арк ер
, з а е R G B,
р [111], и л
о п р едлен н ы и т . д . (с.м С ти л гр а фи к
zyxwvutsrq
линй
я
н ап ри м е
L i n e S t yle
4. .zyxwvutsrqponmlkj
9.3. Стйвсоа
а ц и а лб Т Н а из н в
и ав ыг л а ли н и и
, • — ' , ' : ' , ' е ч и сл
о и з с та н да р тн ы , н а п р и м е . та б л . 3.1)
о
р 'о
х обоз н а 1 , 's'
Т аки
е ж е
, к а
к у c o l o r
Т аки
е ж е
, к а
к у C o lo r
-
а
р м арк ер х
к с и н ус а (с м . р и с и s e t и д с о . О ч е в и д н о
а в
П о л о ж и те л ь н о
. 9.1) к в и д у , и з о б р а ж е н н о м , ч т о т р е б уе т с
е ч и сл
я вы п олн и т
о
у н а ри с ь с л е д ую
. 9.2, -
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA , 'Color1, 'k') , 'LineWidth1, 2) , 1Marker', 'о' ) , 1 MarkerFaceColor' , ќMarkerSize1, 8)
zyxwvu
аЧс т ь II. Вчиы с лени я и пр о г ам м и р о вани е 488zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
О
1
2
3
4
5
6
7 zyxwvutsrqponmlkjihgfedcbaZYXWVUT
. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC 9.2. Ин езми е сйтосв в лин и
с Ри
С в о й с вт а п о в е р н х о с ет й и з м ен яю ст я а н а л о ги ч н ы м образ ом . С о з да й т е гр а иф к п о в е р н х о с т и к а ой - ли б о н фу к ц и и в уд х п ер м ен н ы х , седл ай т е п о в ер х н о ст ь ещ к т у е й п р и п ом щ и щ ел ч к а мы ш и и в ы в еид т е ат б л и ц у с о с в о й св т а м и и и х з н а ч ен и ям и в к о м а н дн о е о к н о . И з чуи т е сам о ст яель н о воз м ожн ы е с в о й свт а (о б р а ит ес ь к р.азд "Стйвсоа линй и птйес"хвонр гавы л 4 и р а з д . MATLAB: Handle Graphics Property Browser с п р а в о ч н о й си есмт ы MATLAB). ^
Пр и м е ча ни
Ф н у кц и и в ы сро к в н у е о surf, surf 1 и др. ра я п оз влея т созатд Ф ну к ц и щ ел ч к о в е р н х о с ьт е к ат
е ) осн ва ь п н о р в х е тс
й ир а ф г к и л д я пн р о е т с и я н п е о р хв т с й (mesh, ы н а н и з р о в кн у е о й н у цк ф и и surface, ок т ь с лю ыб м и занд ы м и свой амсти .
я с д о ку а з ы в а е т н а е к тщ у и й о б ъ ек т , в ы б р а н н ы м мы ш и . Д а н н ы м о б ъ е к от м м ож е т бы т ь н е то л ь к . беУид тс ь в э то м , н о и о с и , и гр а фи ч ес к о е окн о м и в ы в о д я и х с в о й свт а п р и п о м щ и get и дсо .
П р о гр а м и р о в а н и е да н н ы х , к а к п р а в и л о сет я р я д о б ъ ек от в (гр афи ч ес к и с вт а к о т р ы х н е о б х ди м м ож е т бы т ь е кт щ у и м п о л ь з о в а те л ь вы бра л
с о б вт е н н ы , п р едп о л а г е о и з м ен ят в да н н ы ег о щ е л ч к о
х а л г о р и тм о в , т н али ч и е н еск о ль к и е о к н а , о с и , л и н и ь в о дх е в ы п о л н ен и й м о ен т , есл и о н м мы ш и . О дн а к
с в яз а н н ы , п о в ернх о с т то л ь к о ч аст
й п о л ь з о в а ет л о ли н и , щ елк а
м я ил и по я п о объ
-
х с в и з аул и з а ц и е й х г р а ф и к о в , т . е . и м е и и т . д. ) , свой я п р о г р а м ы . О б ъ ек т о ч т о б ы л с о з ад н ил и о в о дх е в ы п о л н ен и я
л ав Г
9. Десрки пт о р ная
п р о гр а м щ и мс
я текщу и м и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
и а к гр ф
ы н е о б х ди м
о с уат н о в и т . Э т
а к зУ т е л
а з а д ч
ь н ек о т р ы о р еш аест
а л е гк
и н а те к ъбо
я пр
е с в о й с вт и п о м щ
а о б ъ ек т и к у а з ет л й
а н е яв л яю .zyxwvutsrqponmlkji
ы
С о з да н и е лю бог о гр а фи ч ес к о г о о бъ ек т а в M ATLAB с о п р о в о ж да е тс я по яв л ен и е м ч и словог о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA яу к а з т л е н а н е го , та к и м образ ом , к а ж ыд й о бъ ек т ну и к а л ь н ы м образ о м и д е н ит ф и ц и р е у ст я в с р ед е M ATLAB. Ф ну к ц и и gcf, gca и gco к а к р а з в о з в р а щ а ю т к у а з а те л и н а текщу е е окн о , ос и и л ю б о й ет кщ у и й о бъ ек т с о тв е с тв е н н о . Ц е л с о б р а з н е е в с ег о п р и с о з да н и и гр а фи т ч ес к и х о б ъ е к то в з ап и сы ват ь и х к у а з а те л и в п ер м ен н ы е , к о т р ы е у дб и с п о л ь з о в а ть с я в п о с л е д с вт и и лд я о б р а щ е н и я к н ж ун ы м о б ъ е к та м . В ы з о в ф ун к ц и
й f i g u r e , a x e s , p l o t , m e sh , s u r f l И Т . Д . С ВН ДЫО Х
М а р г ум е н то
п р и в о ди т к п р и св о ен и ю м е у к у а з а те л я н а с о вт е с вт ю у щ е е гр а фи ч ес к о окн о , о с и , л и н и ю гр а фи к а и л и п о в е р н х о с ть . П р и ч е м , есл и p lo t о сщу есвт л я е т п о с тр о е н и е н ес к о ль к и х ли н и й (з а д н о н ес к о ль к о п а р в е к то р о в з н ач е н и й а р г му е н т а и фну к ц и ) , т о в ы ох дн о й а р гму е н т я в л е ст я в е к то р о м к ау з а ет л й н а ли н и и гр а фи к а . П е р в ы й ег о э л е м н т ес т ь к у а з а т е л ь н а ли н и ю о тв е ч а ю щ у ю п ер в о й п ар е в о х нд ы х а р г му е н т о в , в то р о й элем ен т — ку а з а етл ь н а в то р у ю ли н и ю и т . д .
Из м е н и О фо р м и т ций з в ан и I Л и с т и н
е сйсотв
в лин
й и ос е
е п о с л е од в а е т л ь н о с т , п р и в едн н у я п ер м ен н ы х г 9. 1 . Сорха не и
% Фи н а в о р и м р о
е уакз т е л е е о р т к е в
й н а гиечрасфк
е ое тбък
в с о зм я и н е ч а н
и т н е м у г р а
а и фи ц к н у
о нко
ь ул е т а з к
я н а нг е
ы й
у = cos(t) ; а и зс и п а
hFig = figure;
инадзоС
е е с о
и зс и п а
ь ул е т а з к
hAx = axes;
й в те щ у к е
м о к с е ч и ф а р г я н а ни
х в hAx
, -
в дву х фн у к ы в М - фа й л е . На я с с и м в о л а h.zyxwvutsrqponmlkjihg
х = sin(t);
е г о к с е ч и ф а р г
-
я гр а фи к о
t = 0:0.1:7;
% Си н а д з о
е
й
ь к ом ан д дл я п о срто ен и е 9.1, в ви д е фа й л - п р о г а м х к у а з а ет л и , н ач и н аест
ю в л и с ит н г , соедр ж ащ и
м
м нко
е
о в hFig
; zyxwvutsr
490zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA II. Вычисленя и прогамивне Часть
инеортсоП
е и н л
ел таз ку
й н а ли н
й о к и ф а р г
в н а ти щ у к е и в во т к е
х оя с
х и зс и п а
ь
р hLines
hLines(l) и ж р е д о с
т ул е т а з к
ь н а пу в р е
ю ли н
ю (sin(t))
hLines(2) и ж р е д о с
т ул е т а з к
ь н а ву р о т
ю ли н
ю (cos(t))
%} hLines = plot(t,x,t,y);zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
О п е р а от р н фу к ц и в з гл я д п р е д в а р и те л ь н о г
ы п р и в о дя й — си н су , то т ж е р ез луь ат
т к п о яв л ен и а и к о с и н с уа т п о ч л у а се т о с о з ад н и я о к н а
1
ю гр а фи ч е с к о г , и з о б р а ж е н н о г я и п р и и с п о л ь з о в а н и , осе й и п очлуен и
о окн а с гр а фи к а м и вуд х о н а р и с . 9.3. Н а п ервы й и p lo t ( t , x, t , у ) бе з я к у а з а ет л й .zyxwvutsrqponmlkjihgf
/ / 1 - /А \ \\х ( 0.4 - / V I / / \\ \\ 0.2 7 / / \ \\ 0 ^ / ' - 0.2 \ \ \ 1 1 - 0.4 \\ // / - 0.6 \ X - 0.8 3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 1 2 3 4 5 6 7 0 8- 0.6
/ f
V
ч
Ч
\
" С
Рис
. 9.3. Ин ыдо х с
й ви д гифокар
в
П р е дп о л ж и м , о дн а к о , ч т о п осл е к ом ан д , соедр ж ащ и сх я в л и с ит н г е 9.1, в п р о гр а м е расп ол ж е н бло к о п е р а то р о в , к о т р ы е п р о и з в о дя т вы во д н ек о х гр а фи ч е с к и х окон . М о ж е т в о з н и к н ту ь от р ы х гр а фи к о в н а н о в ы е ос и дргиу н е о б х ди м о с т ь в е р н ьт ус я к гр афи ч ес к о м у окн у с гр а ф и к а м и си н с у а и к о си н с у а и вн ест и н ек о т р ы е и з м ен ен и я в в и д г р а ф и к о в , н а п р и м е р , н ан ест и т ес к у в до л ь ос и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA у, и з м ен и т ь сит л ь л и н и й , т . е . усатн о в и т ь н овы е с в о й с вт а осе й и ли н и й . Ук а з а те л и , з а п и с а н н ы е в п ер м ен н ы е А П Х И h Lines, п о з в о л я ю т л е гк о д о б и ьт с я ж ел а м о г о р е з л у ь та , п р и в едн н о г о н а р и с . 9.4.
л ав Г
9. Десрки пт о р ная
491 zyxwvutsrqpon
иакгр ф
08 0.6 0.4 0.2 0
-Л / //
/
\
р О
\ о
6
\
Q q
(Л
1 zyxwvutsrqponmlkjihgfedcbaZYXWVUTS \
\
- 0.2
у 6 Г 1
\
- 0.4
у 9
\
- 0.6
\
%
?
(Л
/
- 0.8
у /
i
г •
-
J \ 1 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 'О
Рис Дл ро
я э то г й ' С в о й с тв
о с л е ду
1
2
. 9.4. И з м ен ен ы
3
ь ф ун к ц и е НИ (ЛИТ С
г
| Л и с т и н
5
и ( se t и указ етл
е гр а ф и к
т и сп ольз оват о ' , з н а ч е н и
4
и н а о б ъ екыт
е с войс т
в л ин
7 zyxwvutsrqponmlkjihgfedcbaZ
)
ю se t с ук а з а т е л е м н а объек т и па Г 9.2).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
'
г 9.2. Изм е н и
6
'
й и осе
й пр
и пом ощ
и уакз т е л е
й
% У с т а н о в к а с в о й с тв а XG rid о с е й с у к а з а т е л е м hAx в ' o n ' 1 se t ( h Ax, ' XG r i d , ' o n ' ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Зи н а д е цт е в а по в р е й ли н и (гк и ф а р а са с у н и ) с уе л т а з к м hLines(l)zyxwvutsrqponml , 'k') set(hLines(1), 'Color'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Зи н а д е тн и щ л о ы по в р е й ли н и (гк и ф а р а са с у н и ) с уе л т а з к м hLines(1) set(hLines(1), 'LineWidth', 3) % Зи н а д е цт е в а во р т й ли н и (гк и ф а р а ка с у н и с о ) с уе л т а з к м hLines(2) 1 set(hLines(2), 'Color , 'k') % Зи н а д е тп и а мрек а а во р т й ли н и (гк и ф а р а ка с у н и с о ) % с уе л т а з к м hLines(2) set(hLines(2), 'Marker1, 'о' ) % Зи н а д е цт е в а мо р е к а в во р т й ли н и (гк и ф а р а ка с у н и с о ) % с уе л т а з к м hLines(2) set(hLines(2), 'MarkerFaceColor', 'w') % Зи н а д е цт е в а ги н а р ц мо р е к а в во р т й ли н и (гк и ф а р а ка с у н и с о ) % с уе л т а з к м hLines(2) set(hLines(2),'MarkerEdgeColor','k')
492
аЧс т ь
II. Вчиы с лени я
zyxwvut
и пр о г ам м и р о вани е
П ер в ы м в о х нд ы м а р мг у е н от м н фу к ц и и set м ож е т бы т ь в е к то р к у а з е тл н а н ек о т р ы е о б ъ е к ты , в эот м чслау е и з м ен яю ст я с в о й с вт а в се х з а д н н ы о б ъ е к от в . П р и м е н е н н ы й п о хд д п о з в о л яе т п о члуи т ь в даль н ей ш е м с в о й свт лю бог о и з с о з ад н н ы х гр а ф и ч е с к и х о б ъ е к от в и делат ь нжу ы й о б ъ ек т к уе т щ и м дл я до п о лн и етль н ы х и з м ен ен и й , нап р и м ер , од бав лен и я гр а фи к о в н а оси В лю бо л ен ы г о а р мг у е н т
о б а Дв л е н и К ом ан д до б а в л е н и в о хнд ы з а ет н ен и Д о б а в ь ет и з образ и п ок аз ан
й м о ен м п о ум о л ч а н и ю а котро
т м ож н
о в е р н ь т ус . Д л я э то г
я к з н а ч ен и я о сжлиу т н фу к ц и я к у а з ет л ь н а о б ъ ек т
й з адест
е лин
й гоирка ф
й х а .
м св о й ст в о б ъ е к та , сатну о в я r e se t , в к а ч ес вт е вонхд о .zyxwvutsrqponmlkjihgfedcbaZYXWV
в
а p lo t о щсу есвтляе т вы во д гр а фи к а н а е тк щ у и е оси , п о э т м у лд я я ли н и й е су л д т сн ач л а с е дл а т ь р т е б му ы е о с и ет к щ у и м и , з а д в ь н а н и х , в ы п о л н и т ь hold on, a м а р мг у е н о т м н фу к ц и и axes куа з етл м и сп о ль з о в ат ь p lo t , ж ел ат ь н о с в ы о хн д ы м а р г м у е н то м , лд я сроах я к у а з а ет л я н а н о в у ю ли н и ю и усатн о в и т ь е е с в о й свт а п р и п о м щ и set . , н ап ри м ер , н а ос и о к н а , п ри евнд ог о н а р и с . 9.4, графи к log (I + t ) , в ег о ч е р н о й п н у к ит р н о й ли н и е й то л щ и н о й в рт и п ну к т а та к , к а к о н а р и с . 9.5.
-
2
1.5zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 1с
0.5 \
/
X
0
f
\ /
\
У
f
- 0.5 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA \
/
А
V
0
Рис О ч е в и дн о си н с у п олн и т
1
. 9.5. Днелваибо
, ч т о фа й л - п р о гр а м у а и к о си н су а и и з м ен ен и ь п о с л е до в а ет л ь н о с ьт
2
3
е лин , ощсу есвтляю щ у е и х св о й ст ю к ом ан д
4
5
и гифкар
а н а зна д ы
в (ли ст н г , ук а з а н н о
6
7
е ос и
ю п о с рт о е н и е гр а фи к о и 9.1 и 9.2), еслуд й в л и с ит н г е 9.3.
в т од
-
л ав Г
9. Десрки пт о р ная
гиакр ф
493
\ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 9.3. Доба вл е ни е лин и гикра ф а н а за д ны е ос и zyxwvutsrqponmlkjihgfedcbaZYXWVUT
е в е к то р а з н ачен и й ф ну к ц и и % З а п о л н е н и z = l o g ( t + 1 ) ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Ук в о н а т с
а ти щ у к е
х ое с
й (с гм а к и ф а р
и сс у н и
а и ка с у н и с о
)
axes (hAx) ; % Кд н а м о
а hold on нн ж у
% а н е вл е в ы
а ги ф а р
а дл
я то г
к в оо н ь л е д т
, чб о т
ы plot дл и в а б о
м го к с е ч и ф а р
м он к
а ли н
ю га к и ф а р
,
е
hold onzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 9
б и н е лвабоД
% н а не
е ли н
и гк и ф а р
е в по н е м р е
а log(t + 1) и си н е а р х о
е ул е т а з к
я
й hLog
hLog = plot(t, z) ; % Ук в о н а т с
а цт е в
а ли н
и гк и ф а р
а log(t + 1)
1
set(hLog, 'Color , 'k'); % Ук в о н а т с
а сл и т
я ли н
и гк и ф а р
а log(t + 1)
set(hLog, 'LineStyle', ' — ' ) ; % Ук в о н а т с
а тн и щ л о
ы ли н
и гк и ф а р
а log(t + 1)
set(hLog, 'LineWidth', 3) ;
З а м е ьт , ч т о м о ж н о бы л о н е с о з ад в т ь о е дл т ь н у ю н и я к у а з ет л я н а н ову ю ли н и ю , а до п о л н и т ь в е к от п ом щ и о п е р а то р а hLines (3) = p i o t ( t , z). Хр а н ен и ит п н ы е о б ъ ек т ы в м ас и в а х о к а з ы в а е ст я о д бу н ы м м ен и и И Х ТВ С СВОЙ . П р и та к о м ДХОД О П е к о м ан д ' г ' ) и з м ен яе т ц в е т в се х р т е х л и н и й . Е щ е оид н п ри м е к у а з е тл й п р и в ед н н и ж е .
а д л У е ни И ед н и т ф и к а ц и с в о й с вт а яв л с ет
е и оичс т к я о б ъ ек т , н о и уадлят я со втес юу щ и
а отеок ъб а к у а з е тл ь е г о к о м а н до й к у а з а ет л ь
п ер м н у р к у а з е тл
ю л д я р ах н е й hLines п р и е указ етл й н а о нд о п р и о нд о в р е м н н о м и з а set (hLines, 'C o lo r 1 , р работ ы с м ас и в о м
в м п о з в о л яе т н е то л ь к й d elet e, вонхд ы . Н а п р и м е р , кома н д
о с у ат н а в л и в а т м а р мг у е н от а
м котро
ь ег о й
delete(hLines(I)) б уи р а е т ли н и ю гр а фи к р и с . 9.5. С елуд т и м ет в се х г р а ф и ч е с к и х о б ъ е к от н ы м о с ям . Ан а л о ги ч н о п роп адю т в с е о б ъ е к ты а лд е н у и я ли н и й и п о в е рн х о с е т
а си н с у а с осе й гр а фи ч ес к о г о о к н а , и з о б р а ж е н н о г ь в в и уд , ч т о адлеун и е о се й п о в л е ч т и с ч ез н о в ен и в (ли н и й и п о в е р н х о с ет й ) , п р и н алдеж ащ и , адлуен и е гр а фи ч е с к о г о окн а п р и в о ди т к то м у , р а з м ещ ен н ы е в н ем . л Аь етр н аит в н ы м сп ос бо й я в л се т я о ч и с кт а о с ей . С н а ч а л а н ад
о н а е х ад н , ч т о м о ед -
494
аЧс т ь
л а т ь о с и т е к ущ и м и c l a , н а п р и м е р
, а з а т е
м и сп ольз оват е о п е р а то р
, с л е д ую щ и
II. Вчиы с лени я
ь ком ан д ы очи щ аю
zyxwvu
и пр о г ам м и р о вани е
т ос
у о ч и с тк и с ук а з а т е л е
и т е к ущ и х осе м hAx:
й
я к о м а н до
й elf.zyxwvutsrqponmlk
axes(hAx) c la О ч и с тк
а т е к ущ е г
о гр афи ч еск о г
и н л яВ е ком а н и reset н а сойвст
о окн
д hold, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB c la, elf а онк а и ос е й
О с та н о в и м с и графи ч еск о г о п р е де л я ю щ е ур о в н е в ы с л е д ую щ и
я боле
х ф ун к ц и х з н ачен и й
В з ави си м ост пр и н ово
м графи ч еск о
о окн а е сп осо
е п о др о б н о н а вли ян и и ком ан д ы h o ld н а с в о й с т в а осе й . Г р а ф и ч е с к о е окн о и ос и и м ею т с в о й с тв о N e xt P lo t , б вы вод а гр афи ч еск и х о б ъ е к то в пр и п омощ и вы соко й ( p lo t , su r f и т . д . ) , к о т о р о е може т п ри н и мат ь о дн о и з : ' a d d 1 , ' r e p l a c e 1 Л И И f r e p l a c e c h i l d r e n 1 .
и о т з н ач ен и
я с в о й с тв м вы вод
• ' a d d ' (п о у м о л ч а н и ю ) окн о ;
я вы вод
я в с е о б ъ е к ты а н е и з м е н я ю т с я
х о б ъ е к то а N e xt P lo t т е к ущ и
• • a d d ' — г р а ф и ч е с к и
й объек
• ' r e p l a c e ' (п о у м о л ч а н и ю ) ю тс я в с е с та р ы е , п р и н а д л е ж а щ и к о то р о е о тв е ч а е т з а п олож ен и н и маю т з н ачен и я , у с т а н о в л е н н ы •
' r e p l a c e c h i l d r e n ' — Т О ж е
осей
а и с п о л ь з уе т с
т до б а в л я е тс — п е р е
о окн
а
: е гр афи ч еск о
е
е гр афи ч еск о м е о тв е ч а е , у с т а н о в л е н н ы
у ок
-
т з а п олож ен и е п о ум о л
, п р и н а д л е ж а щ и
е -
е гр афи ч е
-
.
в в ы с о к о ур о в н е в ы х осей
е ф ун к ц и е о п р е де л я е
, к о т о р о я н а оси
д раз м ещ ен и е е осям , а с в о й с т в е о с е й в п р е де л а е п о ум о л ч а н и ю
, Т Ч
о графи ч еск о г х с и т уа ц и й я т е к ущ е
я вс е о б ъ е к ты , п р и н а д л е ж а щ и а (к р о м е P o si t i o n , к о т о р о ) п р и н и м а ю т з н ач ен и я
• ' r e p l a c e c h i l d r e n 1 — уд а л я ю т с ском у окн у , н о е г о с в о й с т в м гр афи ч еск и е с в о й с тв
а N e xt P lo t т е к ущ е г а о дн а и з т р е
е возможн — д л
• ' r e p l a c e ' — уд а л я ю т с н у , а в с е е г о с в о й с т в окн а н а экран е м о н и то р а чан и ю ;
П ере д в ы в о до ю т з н ач ен и в ы в о да :
а п р о и з в о ди тс
и п роверя т сп осо
б
;
м н овог а осе х графи ч еск о г ;
О И r e p l a c e , Н О б е
о объект й (к р о м
а уд а л я е P o si t i o n , о окн а ) п р и -
з и з мен ен и
я ТЙС О В С
В
.
О ч и с тк а осе й к о м а н до ' r e p l a c e c h i l d r e n ' с в о й с т в н и е c l a и r e s e t — з н а ч е н и м ен ен и и к гр афи ч еск о м
й c l a п р и в о ди т к ус т а н о в к у N e xt P lo t о с е й , а п о с л е д о в а т е л ь н о я ' r e p l a c e ' . Т о ж е с а м о е верн у окн у . К о м а н д а h o ld on у с т а н а в л и в а е
е о и дл
з н ач ен и е вы п олн е я e l f в п р и т з н ач ен и
я е
л ав Г
9. Десрки пт о р ная
св о й ст и з м ен яе
иакгр ф
в Next Plot- те к щу е г т то л ь к о з н а ч ен и
о сойвст а
о окн а и осе й в 'ad d 1 , a hold off х осе й н а • replace • .zyxwvutsrqponmlkjihgfed
о гр а фи ч е с к о г е N extP iot тещк у и
е иорм нф а иц х гиреча сф к
о П л е чу н и
495 zyxwvutsrqpon
и х отеок ъб
в
в гр а фи ч е с к и х о б ъ е к от в п р и в е дн о в н е е в се х с в о й с т х сп рав о ч н о й с и ем т ы MATLAB. В о- п ервы х , ксрут р а гр а фи ч е с к и х о б ъ е к от в и п р и ем ы работ ы с н им и раз обран ы в раз д .zyxwvutsrqp MATLAB: Graphics: Handle Graphics Objects. В о - вотр ы х , сп и со к н фу к ц и й де с к р и п то р н о й гр а фи к и с ги п ер с ы л к а м и н а со втесюу щ и е с рт а н и ц ы при ве д н в р а з д . MATLAB: Functions — Categorical List: Graphics: Handle Graphics. К р о м е то г о , в о з м о ж е н б ы с рт ы й од с у т п к и н фо р м а ц и и о с в о й с вт а х гр а фи ч е с к и х о б ъ е к от в и з б р азу ер а с в о й с вт , р а з м ещ ен н о г о в р а з д . M ATLAB: Handle Graphics Property Browser. О бисду м , к а к п о л ь з о в а ьт с я эит м р а з де л о м . П о др о б н о ск о ль к и
е о п и сан и х р а з де л а
П р и вы бор е раз д сп равоч н о й си есмт котры е яв ляю ст
. MATLAB: Handle Graphics Property Browser в п р а в о м окн ы M ATLAB п о яв л ю ст я в к л ад и с н а з в а н и ям и о б ъ е к то в я ги п е р с ы л к а м и .
В к лад и Figure и Axes н е тр ебюу т п о яс н ен и с в о й с вт а м гр а фи ч е с к о г о окн а и о сей к а м п р и в о ди т к п о яв лен и ю сп и ск а в се н и жн е й ч аст и окн а , п ри ч е м о н а р аз едляст би к е с п ол со й скрол и н г а н ао х я д с т о б ъ е к ат , п р и п еродх е п о ги п е р с ы л к о п и сан и е вы бран н ог о с в о й с вт а и ег о п о ум о л ч а н и ю з н ач ен и я з ак лю ч ен ы в окн а п о к а з ы в а е ст я м ес т о вы бран н ог о е к от в M ATLAB. В к лад п о л ь з о в а те л я В ы бо с р тк у ет к с от в ы о б ъ е к ат м ек от
а UI Objects п р енд а з н а ч ен , к о т р о м у п о с в ящ ен р в к л а кд ы о б ъ е к то в й о б ъ ек и р а с м о рт е н м — в р.азд
е ,
й — он и сжлуа т лд я до спут а к к мы ш ь ю п о эит м ги п ер с ы л в о б ъ ек т а и и х н а з н а ч ен и я в я н а дв а с от л б и к а . В лев о м со т л я ги п е р с ы л к и с н аз в ан и ям и св о й ст в е в п рав о м с от л б и к е о т б р а ж е тс я в о з м о ж н ы е з н ач ен и я . сУат н о в л ен н ы е фи ргну ы е скобки . К р о м е то г о , вверх у о б ъ ек т а в и ер а их и гр а фи ч е с к и х о б ъ -
. Щ ел ч о х св о й ст
а лд я э лем н от ы сю луед щ и
в гр а фи ч е с к о г е н ес к о л ь к
о гл а в
о и н етр ф й с .
а
т к п о яв л ен и ю ч аст и и е р а их ч е с к о й и Core Objects п р и в о ид , в к о т р у ю в к л ю ч ен ы баз о в ы е о б ъ е к ыт : л и н и я (Line), т (Text), п о л и го н а л ь н ы й (Patch) и т . д . (р а б о т а с б а з о в ы м и а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд "Грксеи ч аф к"е отыъ б , а с тек сот в ы м о бъ "Т еквтосы окетыъ б " дйаон г)авы л .
Б о л ь ш и н с тв о в ы с о к руо в н ев ы х гр а фи ч е с к и х н фу к ц и й с о з ад ю т ри сован н ы е о б ъ ек т ы (Plot Objects), и сп о ль з у я баз о в ы е о б ъ е к ыт . Щ ел ч о к мы ш ь ю п о од н о и м ен н о й в к лад е в о к н е б р азу ер а св о й ст в п о з в о л яе т от браз и т ь н аз в ан и я о в и е р а их . З а м еьт , ч т о ри со в ан н ы х о б ъ е к от в (ги п ер с ы лк и ) и и х м ест н ари со в ан н а я н фу к ц и е й p lo t ли н и я в дей свт и етл ь н о с т и я в л се т я о б ъ е к от м Lineseries с б о ле е ш и роки м н аборо м с в о й с вт , че м у б а з о в о г о о б ъ ек т а Line.
496
аЧс т ь
II. Вчиы с лени я
zyxwvu
и пр о г ам м и р о вани е
т К нА а л о ги ч н о , нфу к ц и и loglog, semilogx, semilogy И p lo t 3 та к ж е п р и в о яд с о з ад н и ю о б ъ ек т а Lineseries. Ф ну к ц и и л д я п о с рт о е н и я с от л б ч а ыт х ид а гр а м м bar и barh р и сюу т о б ъ ек т Barseries, а нфу к ц и я area — о бъ ек т Areaseries. К о н рту н ы е гр а фи к и , п о члуен н ы е п р и п ом ощ и con tour, э т о объ кет ы ContOUrgroup. Р ез луь ато м работ ы н фу к ц и й mesh, meshc, surf И surf с я в лс е т я о б ъ ек т Surfaceplot. Т абли ц а с о вт е с и й в ы с о к руо в н е в ы х гр а фи ч е с к и м ы х и м и о б ъ е к то в п р и в е дн а в р а з ед л е сп рав о ч н о Graphics: Handle Graphics Objects: Plot Objects.
х н фу к ц и й с и е мт
й и с о з а дв е MATLAB: ы zyxwvutsrqponmlkji
Д л я т о г о ч то б ы в ы я с н и ьт , к а о й и м ен н о о б ъ ек т с о з ад е т в ы с о к ру о в н е в а я гр а фи ч е с к а я фн у к ц и я , до с та о ч н о п ер й т и к е е о п и с ан и ю в с п р а в о ч н о й си с етм , н а п р и м е р , в р а з д . MATLAB: Functions — Categorical List: Graphics и л и в раз д . MATLAB: Functions — Alphabetical List. И та к , есл и ртебсу я п о чл у и т ь с в о й свт а о б ъ е к то в , п о р ж едн н ы х б о л ь ш и н с вт о м в ы с о к ру о в н е в ы х гр а фи т о б р а ит ь с я к соедр ж и м о у в к л а кд и Plot Objects. ч ес к и х нф у к ц и й , т о се улд
Г р а фи ч е с к и е о б ъ ек т ы MATLAB м огу т бы т ь с гр пу и р о в а н ы лд я в ы п о л н е н и я о дн о и т п н ы х о п ер ац и й и л и до спут а к н и м ка к к онд о м у о б ъ е к ут . В клад к а Group Objects п р енд а з н а ч ен а л д я п р о с м о тр а св о й ст в в ду х воз м ожн ы х ит п о в с гр пу и р о в а н н ы х о б ъ е к то в : hggroup и hgtransform (р а б о т а с о .аздр "Ок-етыъ б гупры hggroup u с г р пу и р о в а н н ы м и о б ъ е к ат м и о п и сан а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON hgtransform"дйаон )авыг л .. П о с л е нд я я в к л а дк а Annotation Objects жслиу т л д я п р о с м о тр н яю щ и х о б ъ е к то в : срт ел о к , л и н и й , н апд и се й и т . п . , к о т р ы п р и п ом щ и и н ет р а к ит в н о й с р ед ы л д я п о с рт е н и я гр а фи к о ав ыг л 4 (с о з адн и е п о ясн яю щ и х о б ъ ек от в о б ъ яс н ен о в р.азд тас, линй и ско летр в гкмсеоич афр к"оен йаон д )авыг л .
а св о й ст в п о яс е в ы с о з ад в л в п р и ч е нт и "Ринещ азм
и и тке-
Е щ е онд у воз м ож н ост ь л д я п о чл уе н и я и н фо р м а ц и и о св о й свта х и и х одпс у ит м ы х з н ач ен и я х п р е до с а т в л я ю т н фу к ц и и get и set . Ф ну к ц и я get, к а к б ы л о о п и сан о в ы ш е , п о з в о л яе т в ы в ес т и с ау т н о в л е н н ы е з н ач ен и я все х свой ст в и л и то л ь к о о дн о г о с в о й с вт а . С п и со к в се х в о з м о ж н ы х з н ач ен и й к о н к р е нт о г о с в о й с вт а м ож е т бы т ь п о чл уе н п р и п ом ощ и set , п ерв ы й а р мг у е н т котро й я в л се т я указ етл м н а гр афи ч ес к и й о б ъ ек т , а в то р й — н аз в ан и е м н ж ун о г о с в о й с вт а да н н о г о о б ъ е к ат . Н а п р и м е р , вс е о б з н а ч ен и я дл я м а р к е р о в , оп ре ед л н н ы е в M ATLAB, в ы в о ядст я в к о м а н дн о е окн о юс л у е д щ и м образ о м (hL — куа з аетл ь н а н ек о т р у ю л и н и ю ) :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO » set(hL, 'Marker1) [ + | о | * | . | x | square | diamond | v | Л | > |
i
o
n
m
a
x
f
% Ф- л й а и ц к н у ф
u
t
n
(
a
я дл
% Ие и н а в о з ь л о п с % Си н а д з о
>
,
b
)
я ии н а в о д е л с
я фи ц к н у
й н а ок з е р т
е [а , Ь ]
: maxfun(a, b) е гг о к с е ч и ф а р е ое с
о он к
а (он
о сс т и в о н а т
я тм и щ у к е
)
й в те щ у к е
м го к с е ч и ф а р
м он к
е
hAx = axes; % Ук в о н а т с
а NextPlot дл
я ди н е л в а б о
я го к и ф а р
в н а ос
и
1
set(hAx, 'NextPlot , 'add') % Зи н а д
е вр о т к е
х = а:( Ь - а)/30:Ь str = " ; % ии ц а з и л а и ц н
а зи н е ч а н
ќ
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
hF = figure; % Си н а д з о
ы zyxwvutsrqponml
й ат н е м у г р
а
; я ск о р т
и зс о р п а
а вд о в
а пл е т а в о з ь л о
я
498
аЧс т ь
funcount = 0 ; % ии ц а з и л а и ц н
я ск и ч т е ч
hFuns = []; % ии ц а з и л а и ц н % Ок т о б а р б
а вд о в
II. Вчиы с лени я
а вы н е д в
я мв и с а
а уе л т а з к
а пл е т а в о з ь л о
я в бо н ч е н о к с е
и пр о г ам м и р о вани е
х фи ц к н у
й
й н а ли н
и го к и ф а р
м цл к и
zyxwvu
в
е
while 1 str=input('Вт и д е в
е фю и ц к н у
, ил
и end: ','s');
и new, ил
switch str case 'new' % Пл е т а в о з ь л о
ь за д
axes(hAx); % ос cla % ок т с и ч
л ок т с и ч
и с уе л т а з к
у ое с
м hAx сл а т
а ти щ у к е
х ое с
case 'end' % Пл е т а в о з ь л о д и з цл к и
и
т рт о б а
у с по м а р г о р
й
а
otherwise % Пл е т а в о з ь л о
ь ве в
% Фи н а в о р и м р о
и тм и щ у к е
й
ь зе а ш р е в а
break %ќ охыв
й
е кд н а м о
л ну в о
ы дл
ю фи ц к н у
ю
я ви н е л с и ч ы
я мв и с а
а зи н е ч а н
й
eval(strcat('у =',zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF str, ';')); funcount = funcount + 1; % уи н е ч и л е в % Ос
и hAx дн ж л о
ы бт ы
е ск и ч т е ч
ь тм и щ у к е
и дл
а фи ц к н у
я вд о в ы
а гк и ф а р
й а
axes(hAx) % Пи н е о р т с о
е гк и ф а р
% и ди н е л в а б о
а фи ц к н у
, во н е д в
е ул е т а з к
й пм е л т а в о з ь л о
я н а нг е
о в ми с а
,
в уе л т а з к
й
hFuns(funcount) = plot(x, у) ; % Ук в о н а т с
а ты м е у б е р
х ст с й о в
в ли н
и гк и ф а р
а но в
й фи ц к н у
и
set(hFuns(funcount),'Marker', 'о' , 'MarkerEdgeColorќ, 'k', ... 1
MarkerFaceColorќ, 'w', 'Color', 'k')
if funcount == 1 % пл е т а в о з ь л о maxval = шах(у)
ь ве в
; % ни д о х а
Nmaxval - 1; % пк о % Ре у с и
у фи ц к н у
ю
м е е мо н ь л а м и с к а
а па в р е
м е е ги ф а р
л он д
е зи н е ч а н
я фи ц к н у
к жо н р и
я ие м
й ле и н
е
т мо н ь л а м и с к а
е зи н е ч а н
е
й
set(hFuns(funcount), 'LineWidth', 3) else % пл е т а в о з ь л о
ь ве в
% Уи н е л а д
е мо р е к р а
л дв в с гк и ф а р
е ил
и бе л о
е фи ц к н у
а пе щ у д ы е р
й й фи ц к н у
и
set(hFuns(funcount - 1), 'Markerќ, 'none') M = max(y); % ни д о х а
м мо н ь л а м и с к а
е зи н е ч а н
е но в
й фи ц к н у
и
if M > maxval % На в о % ве с
я фи ц к н у
я пе а м и н р
х фй и ц к н у
% е е ги ф а р
т со м а
, вы н е д в к де ж л о
е бо ш ь л о
е зи н е ч а н
х п мел тавозьло н рс ь т а в о с и
, пм о т э о
е сд е р
я жо н р и
й ле и н
у й
и
Глав
9. Дескриптоная
график
499zyx
set(hFuns(funcount), 'LineWidth', 3) % Ли н
я к и ф а р г
а и ц к н у ф
% зе и н е ч а н
, р е п е т
, а р о т к ь н е дн ж л о
я е н а р
е ил е м
ь жо н р и
а тыб
а оньламискам
е
й
set(hFuns(Nmaxval), 'LineWidthќ, 1) % Зе а н и м о п а
м но в
е мо н ь л а м и с к а
е инечанз
е и не м о
р фи ц к н у
и
maxval = М ; Nmaxval = funcount; else % зи н е ч а н
я о в н
й фи ц к н у
и н е пя д о х с о в е р
т и н е ч а н з
й и щ у д ы е р п
х
set(hFuns(funcount), 'LineWidthr, 1) end end
«
end end % Во х ы
д и з цл к и
а while я с т и д о в з и о р п
delete(hF) % уи н е л а д
С ед л а й т рк у ц и м ож е
вы п ар г а п о лч у а ад н н ы
е г о к с е ч и ф а р г
о он к
е работ у фа й л - н фу к ц и ю t r y. . . c a t c h лд я о б р а б о тк т в о з н и к н ту ь п р и н ев рн о
З а д ни в а рмгу е нт а П р и м ен ен и св о й ст ным
, д г о к
е сйосвт
х фицунк
е с войс т
в в а ргму е нт а
х = si n ( t ) ; у = c o s ( t ) ; fi gu r e
. 130
е н а ед ж н о й ы лд
, п р и м ен и й с и а у тц и
в к о н ст , к о т р а
я и семлуод
й фну к ц и
я .zyxwvutsrqpo
й
й н а гр а фи ч е с к и е о б ъ ек т ы п о л ез н о пр и е р а б о т ы п р о гр а м ы . С о з да н и е о б ъ ек т а с т бы т ь о щ с у е св т л н о и п р и п ом щ и в ы с о к ру о в н е е од п о л н и е т л ь н ы х во н хд ы х а р мг у е н от . Н а п р и м е р , п о с л еод в аетл ь н о с т ь к ом ан , и з о б р аж ен н о м у н а р и с . 9.4, к о т р ы й св о й ст в ли н и й и о с е й н фу к ц и е й set с ука з аетл ям е о бъ ек т ы (см . ли ст н г и 9.1 и 9.2).
t = 0 : 0 . 1 : 7 ;
17 З ак
а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
а в одх и м ож е . В к ач есвт , з н ач ен и е т к гр а фи к у
г 9.5. З а д ни
a x e s ( ' XG r i d ' ,
л end
в
е к у а з е тл
j Л ист н
ь ев
а с эн а р к
и maxfun бо ле и и с к л ю ч и етл ь н о м в в о д е фо р м л у
х гиреча фсик
в о б ъ ек т и с в о й с вт а м х нф у к ц и й ы 'с в о й с т в о ' 9.5 п р и в о ид и с у ат н о в к о е гр а фи ч ес к и
а л е т а в о з ь л о п
1
' o n , ' N e x t P l o t ' , ' a d d ' )
х гиерчасфк
х ицнук ф
й
и з м ен ен и о п р е дл н
и -
в з а д ю ст д л и сит н й ран е
я е м ы и н а
;
500
аЧс т ь
II. Вчиы с лени я
и прогам м и р о вани е
zyxwvut
1
plot(t, х , 'Color1, 'к 1, ' LineWidth , 3) 1
1
p^ot(t, у , 'Color , 'к','Marker' , 'о' , 'MarkerFaceColor', ,'w ,...
'MarkerFaceColor', 'w', 'MarkerEdgeColor', 'k');zyxwvutsrqponmlkjihgfedcbaZYXWVU
О б р а ти ч ен и ям св о й ст
е вн и м ан и е и а р гм у е н т в все х л и н и й
, ч т о в счлау а и н фу к ц и , н а п р и м е р
>> p l o t ( t , х , t , у ,
Е сл и ад л ь н е й ш е о б й ит с да в е м ы де й с в т о а т н ы м образ о а р мг у е н о т axes) и нф у к ц и й ) с з адн н ы м ет к с о в
е свой ст
, ос е
В ы во д р ез луь та о в работ ы тр еб у ок н и осе й с з а д н н ы м и р а з м е р а м п и сан н о е п р и л о ж ен и е н е до л ж н н ию , суатн о в л ен н о м у н а м о н и от р е н и ю те х св о й ст в гр а фи ч е с к и х ок п р и о р га н и з а ц и и в ы в о д а гр а фи к о
Р а с п о л е ж ни Р а с м о рт и и р аз м ер н е то л ь к с о гл а с о в а н н ы м
п р а У в л е ни
е гиреча сф к м с в о й с вт ы н а э к ран о расп ол ж и т
х п а р в е к от р т о нд о в р е м н н о
в с о з н а е и з м ен ен и
е
' r ' ,
' L i n e W i d t h ' , 3 ,
' M a r k e r ' ,
'о' )
в н е п р едп о л а г ест я , т о м о ж н о е з а н о с ят я к у а з а ет л и н а соз . Р аз муестя , сел ь к у а з а ет л и , т о и х м о ж н о за и лд я и з м е н е н и я св о й ст в э и т х о б ъ е к то в . нА а л о ги ч я с в о й свт а гр а фи ч е с к о г о окн а (в сп и ск е во н хд ы х и figure), осе й (в сп и ск е в о нх д ы х а р гм у е н от в н фу к ц и и й (в сп и ск е в о хн д ы х а р мг у е н о т в surf, mesh и ргдиу х й р а з де л п о с в ящ е н с о з ад н и ю гр а фи ч е с к и х ок н и осе й и и п о л ж ен и е м н а э к ран е , а атк ж е вы вод у н а ни х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA х а р г м у е н от в
е оокн
Р а з м е щ ни
я н ес к о л ь к и
:
' C o l o r ' ,
е и з м ен ен и ь б е з в ы о х нд ы е о б ъ е к ты ь в п о с л е д вт и м з а д ю ст в н фу к ц и п о в е рн х о с е т . С люеуд щ и и р аз м ер ам й и н фо р м а ц и
е куа з н и и п р о и с о х ид
в о б ъ е к от , в к о т р ы и с ор ха н и т
й и т е скт
а
т п р едв а р и етл ь н о г и и п о л ж ен и ем о бы т ь п р и в яз ан о . С юлеуд щ и е р а з ед л н и о сей , к о т р ы е в и тек ст а в р а з л и ч н ы
х оок
н и ос е
й
а гр а фи ч е с к о г о окн а , о п р едляю щ и е м о н и то р а , а атк ж е с в о й свт ь ос и в лю б о м м се т е гр а фи ч е с к о г и и з м ен ен и я р а з м е р о в осе й и гр а фи ч ес к о г
е п о л еж ни е
С в о й с вт о P o sit io n гр а фи ч ес к о г н е и ег о р а з м е р . З н ач ен и е и м ею щ и й сюлуед щ и й фо р м а т
м гиреча фсик о окн а о вт е ч а м P o sit io n яв л сет :
[left bottom width height],
о с о з ад н и я гр афи ч еск и х . К р о м е то г о , хо р о ш о на к к а о м -у л и б о р а з р еш е ы п о с в ящ ен ы оп и са о к а з ы в а ю ст я п о л ез н ы м и е о к н а и о с и .
х оок
а о с ей
е ег о в и д , п о л ж ен и , к о т р ы е п о з в о л яю о окн а , н о и седлат о о к н а .
е т ь
н
т з а п о л ж ен и я в е к от р и з ч ыет р е
е окн
а н а э к р а х э л е м н от в
,
л ав Г
9. Десрки пт о р ная
501 zyxwvutsrqpon
гиакр ф
т р а с от я н и е о т л ев о г о к р а я м о н и то р дг е le ft з а д е окн а б е з ч уе т а от л щ и н ы рам ки , bottom о з н а ч е к р а я м о н и то р а д о н и ж н ег о к ра я о бласт и окн а рам ки , a width и h eigh t о п р едляю т , с о вт ес н н о ласт и о к н а .
Рис Н а р и с . 9.6 п ри в едн м о н и то р а , р а б о ч а окн о б ел о г о ц в ет п р и с втю у т . Т о л щ и н
. 9.6. Пн ежиол
е ггоксиечфар
а ем с х я о бласт а п о з в о л яе
П р е сд а т в л е н и е гр а фи ч е с к и н е тр еб у т о т б р аж ен и MenuBar в 'п о п е ' п р и в о ид о бласт и окн а . С о з да й т
о онк
а р ас п о л ж ен и ь окн а и з о б р аж ен т б ие у д ь т с а лев о й и н и ж н е
х р е з л у ь ат о я в гр афи ч ес к о т к с к р ы ит е гр афи ч ес к о
а д о л ев о г о кра я о бласт т р а с от я н и е о т н и ж н ег , атк ж е бе з ч у е т а то л щ и н , ш и р н у и в ы со т
а н а энарк
и о ы у об
е
я гр а фи ч е с к о г о окн а н а э к ран а б ел ы м ц в е от м . Г р афи ч ес к о я в то м , ч т о р а м к и ед й с в т и е т л ь н й р а м о к с о атв л я е т ч еы т р е п и к села
в в с о б втен ы м окн е ег о м ен ю ю м не ю и , с л еод в аетл ь н о е о к н о бе з мне ю к о м а н до
-
х п р о гр а м а . Уста н о в к
е е о .
х ч аст
о
а с в о й с вт
а , вуели ч ен и ю й zyxwvutsrqponmlkjihgf
» hF = figure('Color', 'w', 'MenuBar1, 'none') и п о лч у и т
е ег о р а з м е р ы
те к ущ е
е НК О
, куаз
в в о хн д ы м
и а р мг у е н а т м
и get куаз етл
ь н а
О И P o s i t i o n :
» pi = get(hF, 'Position') pi = 232
Е ид н и ц а м
р г ди у
258
и и з м ер н и
560
420
я п о му о л ч а н и ц н ап и сан о н и же п р и п ом щ и кн оп ки , р а с п о л ж ен н о окн а п р и э о т м н е о т б р а ж ю тс P o sit io n ще е р а з (ч и сл а в да н н о х ие д н и
ю яв л ю ст
я п и к с ел ы е е тп р й в в не р х м п рав о я н а э к р ан е ) и в ы в еид т м п р и м ер е п о чл у е н ы н
. М а к с и м и з и рйу т
. П р ь гр а фи ч е с к о м лг у е з н ач ен и а м о н и от р
о с а т ун о в к е окн у окн а (р ам к е с в о й с вт е с р а з р е
у о и а -
502
ш не и е ат
ы м о гу »
аЧс т ь
м 1024x768, есл т о тл и ч а ть с я )
и в а ш м о н и от :
II. Вчиы с лени я
р н а с рт о е
zyxwvuts
и пр о г ам м и р о вани е
н н а дргуо
й р еж и м
, т о резльу
-
р 2 = g e t ( h F , ' P o s i t i o n ' )
р 2 = 1
1
1024
749
И та к , сей ч а с ш и р и н а р а б о ч е й о бласт - 7 4 9 = 19 п и к село в о в т ид с т я по п о м ещ ен ы й в ер х у окн а . Н есло ж н ы мы е ш и р н у и в ы со т у гр а фи ч е с к и ад н н ы м образ ом . О дн а к о лд я то г п р о гр а м ы в н е з ав и с и м о с т и о т с у ат н о в л е н н о г е уд т п р е д в а р и ет л ь н о п о чл у и т ь е го в е к от р а и з ч ые т р е х э л е м н от в в с в о й св т рав н ы м н л у ю (о б ъ ек т а Root) (п о л ж ен и MATLAB и ег о св о й свт а п ри в едн
и с о в п аде т с ш и р и н о й э к р а н а , а 768 Figure 1, д з а го л в о к гр а фи ч е с к о г о окн а zyxwvutsrqponml е п о с дч е т ы п о з в о л яю т н ай т и р е тб у х окон , р а с п о л а г ю щ и сх я н а э к р ан е за о ч от б ы о б ес п еч и т ь п рав и ль н у ю рабо т у о р аз р еш ен и я м о н и то р а , сел . Р аз р еш ен и е м о н и то р а р х а н и ст я в ви д е е Screen size о б ъ ек т а с к у а з ет л м , е о б ъ ек т а Root в и ер а их и о б ъ е к от в в.аздр "Окет ъ б Root"эйто )авыг л . zyxwvutsrqpo ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI
» s = get(0, 'ScreenSize') s = 1 1
1024
Е ид н и ц о б ъ ек т ск о
ы и з м ер н и я р аз м ер а Root, п о ум о л ч ан и е о к н о бе з м ен ю и р а м к и т е в ы п о л н ен и я к о м а н д , п ри в едн н ы
% Ни н е д ж о х а
е ро р е м з а
а э к ран ю с а ут н о в л е н , з ан и м аю щ е
в эн а р к
768
а з ав и ся
т о т з н а ч ен и ы п и к с ел ы . О ч ев и дн о е все ь э к р а н , п о яв л ест х в л и сит н г е 9.6.
я с в о й с вт , ч т о гр афи ч е я в р ез льу ат
а u n it s -
а
SCRsize = get(0, 'ScreenSize') % От с а л б
ь он к
% рк м а
а н е нн ж у
а нс т е а н и ч а
я о т лг о в е
о и нг е н ж и
о ка р
я эа н р к
,
а
left = SCRsize(1); bottom = SCRsize(2); % Шн и р
а от с а л б
и он к
а рн в а
а шн и р
е эн а р к
я с уо т е ч
м шн и р
а
width = SCRsize(3); % Вт о с ы
а он к
а вс т е я л с и ч ы
ы зк в о л г а
а он к
а
height = SCRsize(4) - 19; % Си н а д з о % н а вс е
е он к ь эн а р к
а бе , гц и н а р
з мю н е
, ра ч о б а ы н е ос т ю а ж р б о т
я от с а л б
ь и зо в л о г а
к рт у н я т с а
ы
я
hF = figure('Position',[left bottom width height],'MenuBar','none'zyxwvutsrqpon ]
л ав Г
9. Десрки пт о р ная
С о з да й т е дл я щ и фа й л - нфу к ц и в ы ч и с л ен и окн а
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED 503 zyxwvutsrqpo
гиакр ф
е и р а с п о л ж и т е н а э к ран е дв а гр афи ч еск и х э кра н н а равн ы е ч аст и п о в е р ти к а л и , в о з в р а щ а ю щ е й в е к от р к у а з е тл и р аз м ер о в и п о л ж ен и я ок н учит
х окн а бе з с рт о к и м ен ю . О фо р м и т е р е з л у ь ат т в ви д й н а гр афи ч ес к и е о к н а . П р е ш ир н у рам к и и з а го л о в к
, е и а
.
IzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 9.7. Ф а йл - иц кн фу я f i g 2 лд я с озадни я дву х и е ч гр а с ф к х оо к н
fu n c t i o n h F i gs = fi g2 % С о з д а н и
е дв у
% н а д в
х гр афи ч еск и
е част
х око
и п о в е р ти к а л и
н равн о
. В о з в р а щ а е
й в ы с о ты
, де л я щ и
т в е к то
р ук а з а те л е
х экра
н
й н а окн
а
е h F i gs = fi g2
% И с п о л ь з о в а н и % Н а ох ж де н и
е раз м еро
в экран
а
SC R size = g e t ( 0 , ' S c r e e n S i z e ' ) ; % В ы де л н и
е ш ирн
ы и в ы с о т
ы экран
а
SCRwidth = S C R si z e ( 3 ) ; SC R h eigh t = S C R si z e ( 4 ) ; % Ш и р н а
, в ы с о т
а и о тс ту
п слев
а о ди н а к о
в дл
я обои
х око
н
wi d t h = SCRwidth - 5 - 3 ; h e i g h t = (SC R h eigh t - 19 - 5 - 3 - 19 - 5 - 3 ) / 2 ; l e f t в 5; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Оу т с
п з и н с
у дл
я нг е н ж и
о г о к с е ч и ф а р г
о нко
а ре в а
о он к
а с уо т е ч
н 5 пя л е с к и
м
bottom2 = 5; % Ви н е л с и ч ы
е п у т с о
% ро м а % он к
а з и н с
к и зк в о л г а
у дл
а г е н ж и н
о н к о
я вг е н х р е а и тн и щ л о
ы ве н х р е
м н и щ л о т й рк м а
ы и г е н ж и н
о
а
bottomlzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA = 5 + height + 1 9 + 5 + 3 ; % Си н а д з о
е о к
н бе
з мю н е
, рк м а
и с т ю а ж р б о т
я
hFigs(1) = figure('Position', [left bottoml width height],... 'MenuBar', 'none', 'Color'( 'w'); hFigs(2) = figure('Position', [left bottom2 width height],... 'MenuBar1, 'none1, 'Color', 'w');
н А а л о ги ч н ы ок с о з ад н и
м образ о н с з адн н ы м е п ояхдщ и
м р а з м е щ а е ст и р аз м ер ам х о се
и и п о л ж ен и ем й в п редла
я н а э к ран х гр а фи ч е с к и
е лю бо . С юлуед щ и х о к о н
е ч и сл
о гр а фи ч е с к и м э ат п о
.
х м я в л се т
я
504
аЧс т ь
п р а вУ л е н и Ос
е п о л еж ни е
м ос е
и гр а фи к о в яв л ю ст п ри ч е м к а ж од е гр а фи ч е с к о ц и я subplot п р едл а г е м арт и ц ы (п р и м ен ен и
к м с ео и ч га ф р
zyxwvut
и пр о г ам м и р о вани е
й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
я о б ъ е к та м и
, п р и н алдеж ащ и м
е окн о м ож е т сам ы й п рост е subplot о п и с ан
к"оен ав ыг л
II. Вчиы с лени я
и гр а фи ч е с к и м о к н ам , т с о ед р ж а т ь н ес к о л ь к о о с ей . Ф н у к й сп о с б р ас п о л ж ен и я осе й — в ви д е о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON р.азд "Ньк о лсе гикв о афр в ом он д
3).
Бо л е ци ск о
е ну и в ер с ал ь н ы м п о хд м я в л се т я с о з ад н и е о се й п р и п о м щ и н уфк и axes с куаз н и е м и х р аз м ер о в и п о л ж ен и я . С о з да й т е н ов е гр а ф и ч е е окн о бе з м ен ю и оси , з ак лю ч ен н ы е в рам к у , с орха н и т е к у а з е тл и н а ад н н ы е о б ъ ек т ы и п очлуи т е з н ач ен и е св о й свт а P o sit io n о сей :zyxwvutsrqponmlkjihgf » hF = figure('MenuBar'/ 'none1, 'Color1, 'w'); >> hAx = axes('Box', 'on'); » a = get(hAx, 'Position') a = 0.1300 0.1100 0.7750 0.8150 И та к
, п о л ж ен и
е р а м к
и о се
й з адсет
я в е к от р
м и з ч ыет ре
х э л е м н от
в
[left bottom width height] дг е le ft р а в н о р а с от я н и ю о т л ев о й гр а н и ц ы рабоч е й г о окн а д о рам ки , bo t t o m — о т н и ж н е й гр а н и ц ы рабо ч е ск ог о окн а д о р а м к и , a width и h eigh t, с о вт ес н н о и в ы со т у рам к и осе й (р и с . 9.7 и 9.8 лд я чслау я в дм у е р н ы о с ей ) . П о му о л ч а н и ю и с п о л ь з ю у ст я н орм али з ован н ы е н и я р а с то я н и й , т . е . ш и р и н а и в ы с о т а рабо ч е й о бласт п р и н и м а ю ст я равн ы м и еид н и ц е , а н ач л о к о р ди н а т н и жн и й уго л о бласт и окн а . Е ид н и ц ы и з м ер н и я усатн а в л и в а ю ст u n it s о сей . Н о р м а л и з о в а н н ы е еи д н и ц ы 'n orm alized 1 пу р ав л ен и и р ас п о л ж ен и е м о с ей . ЕСЛ
И пр
з адн ви си м ы м и ) м огу л ь н о Пр та к о с ям Тр
и П О М О Щ
а п роп орц и
и и сп о ль з о в ан и , ч от б . Бо ле и савтсйов
И СТ С Й О В
я мжед , т о ос и у д б й О б л ас т и Н И Р И Ш ы в х а ит л е ги б к о
и с в о й свт о м ес т е пу р а в л ен и
о бласт
и гр а фи ч е с к о
й о бласт , о п р едл яю еи д н и ц и гр а фи ч е с к о г п о м е щ а ест
-
и гр а фи ч е т ш и ри н х и р т ме х р н ы ы лд я и з м е р
н аи бо ле
у х -
о окн а я в л ев ы й я с в о й св т о м е од бун ы пр и
В DataAspectRatioMode ИЛ И PlotBoxAspectRatioMode
у дл и н а м т з ан и м ат
а лд
и осе й (т . е . р а з м е р ы о се ь м ак си м аль н о воз м ожн у Ы width И ВЫСОТ Ы h eigh t. а P o sit io n н е в сегд а с а е дт у я к о р ди н а т р а з м е тк и , з а го л в к е п о л ж ен и е м о се й п о з в о л я ю
й н е яв ляю ст ю п ло щ ад
я н ез а ь п ря
я расп ол ж и т
-
ь ос и й к
а и п о д и се т о щ с у е св т и
ь
: ActivePositionProperty, OuterPosition И Tightlnset.
З н а ч ен и е м с в о й с вт а O uterP osition , ат к ж е ка к и P o sit io n , яв л ест и з ч еы т р е х э л е м н от в . В да н н о м чс л ау е о н з а де т л ев ы й н и жн и ри н у и в ы со т у в о бр аж аем о г о п р я м о гу л ь н и к а , к о т р ы й з ак лю ч ае ос и и п о л я в о к р у г н и х с з а го л в к о м и п опд и сям и к о с ям . Р а с п о л ж ен и
я в е к от й г оу л
, ш и т в с еб е о се
р й
я
л ав Г
и пщом
гиакр ф
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE 505zyxwvutsr
и OuterPosition гарантирует , чт о эт и т н эе м е л ы всегд а буду .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
т
wi d t h
1.0
h e i gh t
0.1 02 . 0.3 04 . 05> V0 6 07 0.8 09 vbot t om 1.0zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO Р си
. 9.7. Р асп о л ж ен и
е дмвуерн ы
1.0
х ео с
\ ^
'le ft
рп ындив
9. Десрки пт о р ная
й в графи ч еск о
м окн
е
wi d t h zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
02> Tz = makehgtform('translate', [0 0 2]) и ощсу веит м п р ео бр аз о в ан и е 1 >> set(hG T, 'M a t r ix , Tz) К а к и с л е од в а л да н н о е р а с то я н и е н и т п р еыд щу ег
о о ж и д а ьт
, п ло ск о ст о п о юс л у е д щ е
. О нд а к о п р ео бр аз о в ан и я
ь и п и рам и д е с м ещ ен и
а см еит л с е в од л
ь в ер х н а за ь о с и у н е р са о х -
.
» Т у = makehgtform( 'translate', [0 1 0 ] ) ; » set(hGT, 'Matrix', Ту )
О нд о в р е м н н о п р и п о м щ
е п р и м ен ен и
»
Т = T y*T z
»
s e t ( h G T ,
Н ап р и м ер п р о и з в ес т з ает
е в уд я с о в т ес ю у щ и
и п р о и з в едн и ' M a t r i x 1 ,
, лд я п о в о р о т и с м ещ ен и м о щс у е св т и
х и л и бо ле
е п р ео б р аз о в ан и х м а рт и ц
й в ы п о л н я е ст
я
:
T)
а н а 90° вн и з вокру г ли н и е н а дв е иед н и ц ы в п о л ж и етл ь н о ь п ов ро т вокру г ос и g и п р о и з в ест
и х = - 2 еслуд м н ап р ав лен и и о б р а тн о
т сн ач л а и ос и х, е с м ещ ен и е .
1
» Txl = makehgtform('translate , [2 0 0])zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR » Ry = makehgtform( 'yrotate', pi/2) » Tx2 = makehgtform('translate', [-2 0 0]) » T = Tx2*Ry*Txl » set(hGT, 'Matrix1, T) О б р а ти м а рт и ц п р и в ед
е вн и м ан и е , ч т о п р ы т — он и чуи ыт в аю ст т к дргиу м п р ео б р аз о в ан и ям
>> s e t ( h G T ,
' M a t r i x ' ,
Т З = T x l *T x 2 *R y
»
s e t ( h G T ,
' M a t r i x ' ,
я в о з в р ащ ен и м а тр и ц
к м н о ж и е тл е э то г
й о п о р я дк
а
T)
ТЗ
s e t ( h G T ,
)
я г рп у ы в и о с н хд о а 4 н а 4:
а р а з м е р
>> Т = e y e ( 4 ) »
, н ап р и м е
и в аж е н п о р я до . И з м ен ен и р
И
»
Дл
а н ал ев о
Т 2 = T xl *R y*T x2
»
ИЛ
и п р ео б р аз о в ан и я сп р ав
' M a t r i x 1 ,
T)
е с о т ян и
е и с п о л ь з се т у
я е ид н и ч н а
я
л ав Г
Я. Цес рки пт о р ная
гиакр ф
557zyxwvutsrqpo
В сп р ав о ч н о й с и ем т е M ATLAB вк лю ч е н п ри м е р п р ео бр аз о в ан и й лд я г пр у ы hgtransform с до с та о ч н о сло ж н о й и р аз в ет лен н о й с рт к у о й , в котро м м ы реком н е уд м р а з о б р а ть с я с а м о с т яе л ь н о (см . р а з д .zyxwvutsrqponmlkjihg M ATLAB: Graphics: Handle Graphics Objects: Group Objects: Example - - Transforming a Hierarchy of Objects).
В zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA м еу ющ д л с р а з ел д е м ы р а с м о рт и м работ у с ри сован н ы м и о б ъ е к та м и , б о л ь ш и н с вт о и з к о т р ы х яв л ю с т я с грпу и р о в а н н ы м и о б ъ ек атм и hggroup.zyxwvutsrqpon
иы Р а с н в о
е оте к ъб
ы ( Plot Objects)
В ы с о к р уо в н е в ы св о й ст баз о в ы м о ж н о ст
е гр а фи ч е с к и е н фу к ц и и с о з адю т ри сован н ы е о б ъ е к ты , р я д в котры х п о з в о л яе т п о лч у и т ь п рост й од су т п к с о ат в л я ю щ и м и х м о б ъ е к ат м . Ча с т ь св о й ст в ри сован н ы х о б ъ е к от в р асш и р яе т и х воз и п о ср ав н ен и ю с со втесюу щ и м и баз о в ы м и о б ъ е к та м и . П р и в е "Стйвсоа линй и тйсе"хвонпр ед м п ро ст й п р и м ер . П р и четн и и .аздр й т оэ гав ы л в ы п о з н а к о м и л и с ь с осн овн ы м и с в о й с вт а м и о б ъ ек т а Lineseries, п о лч у а е м о г о п р и п о м щ и фну к ц и и p lo t . С дргуо й с то р о н ы , б а з о в ы й о б ъ ек т Line о б л а д е т ет м и ж е сам ы м и с в о й с вт а м и : то л щ и н а и ц ве т л и н и , ти п , р а з ме р и ц ве т м ар к ер о в , XData, YData и ZData (дл я з а дн и я к о р ди н а т от ч е к в ер ш и н лом ан ой ) и т . д . С р а в н ен и е н аборо в св о й ст в о б ъ е к от в Lineseries и Line п о з в о л яе т в ы яв и т ь с в о й с вт а , сп ец и ф ч н ы е лд я р и с о в а н н о г о о б ъ ек т а Lineseries. С п ос б н аз н ач ен и к е вт о ъ б Р и со в ан н а ид ь т с ит ь с
ы п о чл у е н и и о п и с ан " дйаон я ли н и я в о бласт я к свой вст
я и н фо р м а ц и ы в р аз д
и о с в о й с вт а . "Пинеуч л о
х гр а фи ч е с к и аци м р ио фн
х о б ъ е к то о стйвсоах
г.авы л я до п сук ае т с в яз ы в а н и е с н е й с тр о к и , к о т р а и л ег н д ы р я до м с о б р а з ц о м ли н и . Д л я э то г у DispiayName о б ъ ек т а Lineseries, н а п р и м е р
я едбу т вы во о е с лу д т обра :zyxwvutsrqponmlkjihgfedcb
» х = 0:0.1:10; » f = sin(x);
» д = cos(x); » hF = figure » hA = axes » hL = plot(x, f, x, g) » set(hL(l), 'DispiayName1, 'sin {\itx}') » set(hL(2)/ 'DispiayName', 'cos {\itx}') З адн н ы
е срт о к
в и и х гксеихч афр
и п о яв ст
я п р
» hLG = legend(hA, 'show')
и о от б р а ж е н и
и легн д
ы н а о ся
х
558
аЧс т ь
^
й м о м ен
т с ли н и е
й м о ж е
т указлет и о б аъ м к е т и т б ы т
» set(hL(2), 'DisplayName', 'ги ф а р
Т еп р ю с луед щ и
ь дл
и
zyxwvutsrqponm
пр о г ^ш ш ^^^
е JjzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р и м е ча н и
Ф н у кц и я legend воз ращ ае ми : ли н и мя и и о в ы к е тс м ре мс о т в ти п объкет а с уелкзат В л ю б о
II. Вчиы с лени я
я о б н о в лен и м образ ом
я л ег н д
ы д о с та о ч н
ь н а лнег д у — п ар . В оэт м жнолсе м hLG и ти п ег о п омтк в ь с в яз а н
а дргуа
к к' асунисо
у оес й с п омтка о и б ь де с т я у .
я с рт о к а
, п о
-
:zyxwvutsrqponmlkjihgfedcbaZ
)
о о б р а ит ь с
я к н фу к ц и
и legend
:
» legend(hLG) К ром е тек сотв й и н фо р м а ц и и дл я легн ыд , с о бъ екот м Lineseries м о ж н о свя з а т ь и м ен а п ер м н ы х , п оледж ащ и х гр а ф и ч е с к о м у о т б р а ж ен и ю . И м ен а п е р ем н ы х указ ы в аю ст я В к ач есвт е з н ач ен и я СВОЙСТ В XDataSource, YDataSource и ZDataSource. П р и и з м ен и и з н ач ен и й эит х п ремн ы х и в ы з о в е фн у к ц и и ref reshdata п р о и з о й ед т о б н о в л ен и е гр а фи к а . Е сл и фн у кц и я ref resh data в ы з в ан а бе з о в н д х ы х а р мгу е н от в , т о и з м ен и я косн т у я от л ь к о п р ек д о в кеу т щ ег о гр а фи ч е с к о г о окн а . О бр ащ ен и е к ref reshdata с онд и м в о хн д ы м ару г м ен о т м — куаз елт м н а гр а ф и ч е с к о е окн о и л и ас м р и с о в а н н ы й о б ъ ек т — п о з в о л яе т боле е то ч н о и едн ит ф ц и ро в ат ь обн овляем ы е о б ъ ек ыт : » time = 0:0.05:8/ >> fun = sin(time).^2; » hF = figure; >> hA = axes; » hL = plot(time,fun); » set(hL, 'XDataSource', 'time ', 'YDataSource', 'fun'); » fun » sin (time) .Л 3; » refreshdata(hL) С о вт е с ю у щ и с вт о а т и д ф и ц и р е су т я з ован и к а ч е св т Вс да ю есв т у
ь в р а б о ч е е и лок аль н ы е в то р о г е р и с о в а н н ы т п ер ч и с л ен н ы м тТВ С СВОЙ
е п ер м ен н ы й с р ед . П р и В ВО З Ы о в ох дн о г
е (в н аш е м п р и м ер е time и fun) до л ж н ы щ ус е , и н а ч е в ы в о ид ст я п р еу д ж е дн и е и г р а ф и к н е м о е ref resh data И З ИЦ-К ЛЙ а фуН ф И ВОЗМОЖН О ЛЬ О П С И х п ер м ен н ы ,х дл я ч е г о е с у л д т ку а з а т ь ' c a l l e r ' в о а р мг у е н т а ref resh data.
е о б ъ е к ты
: Areaseries, Barseries, Contourgroup и т . д . — о бла и в ы ш е с в о й с вт а м и , то л ь к о у п ло ск и х о б ъ е к то в т со у О Z D ataSource, а у о б ъ ек т а Surfaceplot — DisplayName.
-
Бо л ь ш а я ч аст ь ри сован н ы х о б ъ е к от в я в л ес т я с г р пу и р о в а н н ы м и о б ъ е к ат м и hggroup. И с к л ю ч ен и е с о сатв л яю т то л ь к о Lineseries и Surfaceplot. Н а п р и м ер , к о н рут ы й гр а фи к фн у кц и и дву х п ерм н ы х — о бъ ек т Contourgroup — со ти т и з б а з о в ы х о б ъ е к от в Patch и Text. Ли н и и уро в н я о т б р а ж а ю тс я п * п ом ощ и п о л и го н а л ь н ы х о б ъ е к то в , а етк со в ы е с жл у а т дл я п о п д и с и з н 'zyxwvutsrqponmlkjihgf .н и й фну к ц и и н а л и н и я х уро в н я .
и ен ч а к
я
\
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA я ир
У В п
Р
^оу
т Го
'^фика
ф
и цк у н
"
ТС АЧ И Н Е Р П ЛИ О Ж с И КС ЕФЧИ АР Г Р Й С О Ф ТЕ И Н
Ь Я М
М
л авГ
а 1 0
пи ц нир П ы сиандзо я пеинлжро й с GUI zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П р и ло ж ен и я M ATLAB с гр а фи ч ес к и м и н ет р ф й с о м я в л ю ст я гр а фи ч е ск и м и окн ам и , с о дер ж а щ и м и э л ем н т ы пу р а в л е н и я (к н о п к и , с п и с к и , п ер к л ю ч а те л и , ф л а г и , п о л с ы с к р о л и н га , о б л а с т и в о да , м ен ю ) , а та к ж е ос и те к с то в ы е област и дл я в ы в о д а р е з лу ь та о в р а б о ты . С о з да н и е п ри лож е н и й в к лю ч ае т с л ю е уд щ и е осн овн ы е э та п ы — р а с п о л о ж е н и е н ж ун ы х э ле м е н от в и н ет р ф й с а в п р едл а х гр а фи ч ес к о г о окн а и п р о гр а м и р о в а н и к о т р ы е воз н и каю т п р и о бр ащ ен и и п о л ь з о в а те л я к да н н ы м объ тийы,бос е к та м , н а п р и м е р , п р и н а ж а ти и кн оп ки . П р о ц е с с р а б о т ы н а д п р и ло ж ен и е до п с у к а е т п о с ет п е н н о е до б а в л е н и е э л е м н от в в гр а фи ч ес к о е окн о , з а п су к те с и р о в а н и е п р и ло ж ен и я и в о з в р а т в р еж и м р е да к ти р о в а н и я . К о н е ч н ы р е з л у ь та о м я в л ест я п р о гр а м а с гр а фи ч ес к и м и н ет р ф й с о м п о л ь з о в а те л я (G U I), с о дер ж а щ а яс я в о дн о м и л и н ес к о ль к и х фа й л а х , з ап су к кот ро п р о и з в о д и тс я ку а з а н и е м е е и м ен и в к о м а н дн о й с тр о к е и л и в др г у о м п ри ло ж ен и и M ATLAB.
П р и м е ча н и и мт е О ялд Э л ем н т гр а фи ч е с к о г м ощ фе к и т в н е с о з ад т н ия
сназоди
, чт о в пкеа я п ир ожнле и й о окн
т MATLAB и од вх , сзпау к коры т
я я в л ю ст а в и ер а их х н фу к ц и
е в о с п о л ь з о в а ьт с ь з а го т в к , з а п р о г р а м и р о в а т 19 З ак
. 130
и -
е zyxwvutsrqpon м , м й -
е
ы пу р а в л ен и и с п ец и а л ь н ы
-
у окн
а п р и л о ж ен и я ь с о б ы ит
я гр а фи ч е с к и м и о б ъ е к то в й н и з к о ру в н е в о я в и з а ул ь н о
й с р ое д , р а з м ес ит я и и х в з а и м о с в яз ь
т Runtime Server, пн дзера нч ы т уна тсовк х н е те убр . О н
й и MATLAB.
и о б ъ е к ат м и — п о т м к а м и и м о гу т бы т ь с о з ад н ы п р и п о й гр а фи к и . О дн а к о го р а з д о эф й G U I D E, к о т р а я п о з в о л яе т ь н а н е й э л ем н т ы пу р ав ле .
zyxwvu
аЧс т ь III. Преин лояж с ги черсафикм и нтей рс фо м 564zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е др С
а GUIDEzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П е р й ид т н о й срт о к е котро н ж ун о г
е в в и з а ул ь н у ю с р де у G U ID E, в ы п о л н и в к о м ан д у guide в к о м ан д . П о яв л ест я окн о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE GUIDE Quick Start, и з о б р а ж ен н о е н а р и с . 10.1, е п о м о га е т н а с рт о и т ь в и з а лу ь н у ю с р де у н а с о з ад н и е п р и л о ж ен и я о ти п а и л и о кт р ы т ь щ с у ю ве т щ е е лд я п р о д л ж ен и я р а б о ты .
GUIDE Quick StallzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Create New GUI | Open Existing GUI j GUIDE templates
Preview
*Jk Blank GUI (Default) GUI with Uicontrols GUI with Axes and Menu > mygui
е М - фа й л о в й яв л сет
м я и ег о и анворти а к ерд
я о щ с у е св т л я , к а к р а б о та м и , в о з м о ж н о я д о с та о ч н
е
я н е то л ь к о и з р е д а к то р ь с уж е со з адн н ы м п р и л о ж ен и е , в н о с и т ь в н е г о р т е б му ы о в к а ч е с вт е к о м ан д ы з адт
а п р и ло ж ен и й . м с гр афи ч е е и з м ен ен и я . Д л я ь ег о и м я в к о -
е о п р и л о ж ен и я
, о б р а щ ен и м ед й с в т и я м
е к э л е м н ат .
м и н е тр ф й с а
окн
а
zyxwvuts
III. Преин лояж с ги черсафикм интей рс фо м аЧс т ь 578 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е ча н и К а л от ь с т я вл О ч ен ь ч аст ид м о е с у о в е р ш е н с вт о а н и ем . В л ю б о
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA г с пирнжоел я тщ куе и м
о ср аз
м джело . Уанст овк у н е усаетд
й м о ен
т м о ж н
н ьс жтрае одс а е т пу
я н ап и сат е п р о я в л ест о п р о д л ж и т
я в пя т у а оп и сна
й п ои кс ь з ак о н ч ен н о я то л ь к ь р е д а к ти р о в а н и
о в ход
х п о и кс а MATLAB ил и а в zyxwvutsrqponmlkjihgfedcbaZYXW гаве л 5. е п р и л о ж ен и е е р а б о т
, и н еобх е двму
ы с п р и ло ж ен и я сп о с бам и
:
й с рт о к е , ч т о п р и в о ди т к о т б р аж ен и ю 1. В ы п о лн и т ь guide в к о м а н дн о ди а л о г в о г о окн а б ы с рт о г о с ат р а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK GUIDE Quick Start, в к о т р о м е у с лд т п ер й т и к в к л а дк е Open Existing GUI и в о с п о л ь з о в аьт с я сп и ск о м Recently opened files и л и к н о п к о й Browse дл я п о и ск а н жун о г о фа й л а с р асш и р ен и е м fig. 2. кУ а з а т ь и м я п р и л о ж ен и guide mygui, п р mygui. В э от м счлуа
} и ца з ила у з и В
я ч ре з п робе и э о т м п о я в л ес т е к атло г с п р и ло ж ен и е
я и ц к фун
л п о сл я с р ед
е к о м ан д ы guide, н а п р и м е р а GUIDE, в к о т р о й о кт р ы т м долж е н бы т ь ет к щ у и м .
й
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
0
0.4
0.2 т и о рс П
0 . 6
тис ч О ь
с иР
0.!
. 11.1. Онк
о пн ежиорл
ь
я с зоквл га
м
, о
л ав Г
11. о нКс т р иу о вани е
и нт е й рс фа
579 zyxwvutsrqpon
П е р й ид т е в р еж и м р е д а к ти р о в а н и я п р и л о ж ен и я mygui лю б ы у на д н им . И з м ен и т е л ен н ы х сп ос бо в и п род лж и т е работ п р и л о ж ен и я н а "В и з аул и з ац и я нфу к ц и й " та к , ч отб ы р а б о та ю щ е н и е mygui и м ел о в и д , и з о б р а ж ен н ы й н а р и с . 11.1. З а го л в о к с в о й с вт о м Name гр а фи ч ес к о г о окн а . Усат н о в и т е в и н с п е к от р erty InspectorТВ С СВОЙ О Name ОКН а п р и ло ж ен и я В В и залиу з ац и п си ту е mygui и убеид тсь , ч т о п р и ло ж ен и е и м е т нжу ы й з а го л о в о к Ж е л а те л ь н о д б ун у ди т л ен ы л яе до б а в л я е м ы
Ра зм е р
м и з п ер ч и с н аз в ан и е окн а е п ри лож е окн а з а д е ст я е свой ст в zyxwvutsrqponmlk Propя н цк у иф й . З а .
о расп олаг т ь э л ем н т ы и н е рт ф й с а в п о р я дк е , о бесп еч и в аю щ е м ю работ у п о л ь з о в а ет л я с п р и л о ж ен и ем . П р и л о ж ен и е ох р ш о в ы гл я , флаг и и т . д. , о п р ед , сел и о дн о ит п н ы е э л е м н ыт , н а п р и м е р , к н о п к и м образ о м в ы р о в н ен ы в окн е п р и л о ж ен и я . С р ед а G U I D E п р еод сатв т р а з р а б о тч и к у п р и л о ж ен и й н ес к о л ь к о сп ос бо в вы равн и ван и я , ли н ей к у и сп ец и аль н ы е и н с р тм у е н ы т .zyxwvutsrqponmlkji х о б ъ е к от в — скету
ы оте окбъ
в и и х аирвны
е
Р е да к о т р п р и л о ж ен и й с о ед р ж и т з а го т в к у окн а п р и л о ж ен и я , р а з м е р кот р о г о и з м е н ся е т я п р и п ом щ и мы ш и , ерджу и ва я н а ж от й л ев у ю кн оп к у н а . Д л я з а д н и я от ч н ы х к в а д р ти к е , р а с п о л ж ен н ы й в п р а в о м н и жн е м ег о улгу р аз м ер о в и п о л ж ен и я окн а з а п щу ен н о г о п р и л о ж ен и я в ы б ер и т е в и н сп екот е еи д н и ц ы и з м ер н и я (п и к селы , сан р е св о й ст в Property Inspector п охядщ и ит м е рт ы и т . д. ) , о б р а ит в ш и с ь к с в о й вс т у u n it , и суатн о в и т е с в о й с вт о P o sit io n в н ж ун о е з н ач ен и е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "Уине апврл инме ж о лпо гксеихч афр кн о " гавы л 9). Н а окн о н а н ес н а с ке т а с до с та о ч н о к рп у н ы м ш а го м (п о му о л ч а н и ю ) к р у а нт о е р ас п о л ж ен и е боль ш ог о ч и сл а э л е м н от в пу р а в л ен и н ог о з адн и я и х п о л ж ен и я . П о с к о л ь к у э л ем н т ы пу р а в л ен и я л я ю ст я гр а фи ч е с к и м и о б ъ е к ат м и (п о т м к а м и гр а фи ч е с к и е с вт н о о ж и д а ть , ч т о сред и и х св о й ст в е с т ь п р е нд а з н а ч е н н ы н и я и х р а з м е р о в и п о л ж ен и я в гр афи ч ес к о м окн е . Э т и св о й свт P o sit io n и u n it , п ри ч е м з н а ч ен и е м P o sit io n одлж е н бы т ь в е к от р е х ч и се л (р ас от ян и е о т лев о г о и н и ж н ег о кра я о к н а , ш и р и н ие д н и ц а х и з м ер н и я , усатн о в лен н ы х в u n it .
. к А т от ч я рт е б у U icontrol яв х окон ) , т о е лд я з а д а н а з ы в а ю ст я р и з ы ч ет а и в ы с о та ) в
Э л ем н т ы пу р а в л е н и я и ос и м о гу т бы т ь с гр пу и р о в а н ы и р а з м ещ ен ы н а н е е он и яв л ю т котро й п а н ел и — гр а фи ч ес к о м о б ъ ек т е U ipanel. В э от м счлуа с я п о тм к ам и о б ъ ек т а U ipanel и и х п о л ж ен и е з а д ест я о нт о с и ет л ь н о э от п ан ел и . С а м а п ан ел ь се т ь п о т м о к гр а фи ч е с к о г о окн а , п о э т м у з н ач ен и с в о й с вт а P o sit io n о б ъ ек т а U ipanel о п р едля т е е п о л ж ен и е в п р е дл а х ок н а . П р екд о м л д я э л е м н от в пу р ав л ен и я м ож е т бы т ь щ е е о нд а п а н ел U ibuttongroup, к о т р а я п р е нд а з н а ч е н а лд я о б е с п е ч н и я с о гл а с о в а н н о г о по в ен д и я грпу ы п е р к л ю ч а е тл й и л и к н о п о к - п е р к л ю ч а е тл й — к о гд а мо же т бы т ь в к лю ч е н то л ь к о о ид н э л ем н т пу р ав л ен и я и з все й грпу ы . Д л я до
й е ь -
аЧс т ь
580
б а в л ен и в ест н н о п о ль зе у г о П ри ложне и
III. Преин лояж
с ги черсафикм
я п а н ел
й U ipanel и U ibuttongroup в о к н о п р и ло ж ен и я сжлуат , со т Panel и Button Group р е да к то р а с р ед ы G U I D E . М ы и с , к н о п к и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB м эт и п ан ел и дл я р аз м ещ ен и я п ер к лю ч аетл й и фл а го в в о к н е н аш е я mygui.
З н а ч ен и св о й ст
я свой ст в P o sit io n и U nits м о гу т бы т и э лем н от в Property Inspector п р и р аз м ещ ен и в окн е п р и л о ж ен и я и л и в п о н ф ду к ц и я х о б р а б о тк щ е е п р и л о ж ен и е до л ж н о и з м ен и т ь в и д о к н а . Дл п р о е к ти р о в а н и с у ат н о в к з о в ан и м ен от е с лу д окн
zyxwvut
и нтей рс фо м
ь с аут н о в л е н в пу р а в л ен и и с о б ы ти й
ы в и н с п е к от р я и п ан ел , сел и р а б о та ю
е й -
я а к р у а тн о г
о р ас п о л ж ен и я э л е м н от в пу р ав л ен и я и п а н ел й н а э атп е я и н е рт ф й с а м ож н о и з брат ь и бо ле е п рост й сп ос б , че м а с в о й свт у P o sit io n п о хдящ ег о з н ач ен и я . О н с о т и т в и сп о ль и в с п о м г а ет л ь н ы х с р ет д в с р ед ы G U I D E: секти , ли н е к и и н р с ут в в ы р а в н и в а н и я . Д л я о т б р аж ен и я ли н е к и до спут а к св о й свта м кс ет и т в м не ю Tools в ы б р а т ь пну к т Grid and Rules. П о яв л яест я ди а л о г в о е о Grid and Rulers, и з о б р аж ен н о е н а р и с . 11.2.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
*> Grid and Rulers Г " Show rulers
P Show guides P Show grid Grid Size (in Pixels): j50
j* j
P Snap to grid OK
Рис
. 11.2. Д и а л о г в о
Cancel
е о к н
о Grid and Rulers
с У та н о в к а фл а г а Show rules сн абид т окн о в и з аул ь н о з о н та л ь н о й и в е р ти к а л ь н о й ли н ей к ам и . Ли н ей к м ен т ы и н етр ф й с а в п о з и ц и и с л ю б ы м и к о р ди н а т м и в аем ы м и о т лев о г о н и ж н ег о гл у а з а г о т в к в ы ед л и т ь о б ъ ек т (н а п р и м е р , к н о п к у ) щ елч к о м с л ед я з а к у а з а ет л я м и ег о п о л ж е н и я н а л и н ей к е фл а г Snap to grid, т о н еп р е ы в н о г о дви ж ен и я о б ъ ек т и л и вд е е г о г р а н и ц ы с р т е м яс я со в п аст ь с ли н и ям п ер м ещ а ем ы х о б ъ е к от в н а з ы в а е ст я п р и в яз к о й то ч н о м ел к и м ш а го м с ек т и , к о т р ы й с уа т н а в л и в а е с т Pixels), п р и в я з к а п оз воли т в а м б ы с рт о о ф р м л ят
й с р ед
ы G U I D E го р и т р аз м ещ ат ь э ле и в п и к селах , остч и ыт окн а п р и ло ж ен и я . С елуд т мы ш и и дв и га т ь ег о в о к н е , . О дн а к о с ел и с а у т н о в л е н а н е п р о и сохди т — о нд а и с ек т и . Т а к о е п о в е дн и е к скет . В с о ч еатн и и с досат я в сп и ск е Grid Size (in ь п р и ло ж ен и е . П л а в н о и з и п о з в о л яю
л ав Г
11. о нКс т р иу о вани е
м ен ят с рт е л к а м и ч о еу т
ь п о л ж ен и м п р и в яз к
П ер ж ен и
д р а з м ещ ен и е я го р и з о н та л ь н ы м
г о н яе в ы ат щ и т н и в ан и н е а в от м а ит ч е с к о равн и ван и о б р а тн
и нт е й рс фа
е в ы ед л н н о г
о о б ъ ек т
. О нд о в р ем н н о
а м ож н о пр е п р и в о ди
е е д р уж а н и и к скет
581 zyxwvutsrqp
и п ом щ и к лав и т к п ер м щ ен и
ш с о ю с
.
о п ри ло . Д л я э от е с ул д т н а в ес т и к р ус о и н а с о в т ес ю у щ у у (крсуо р ме т фо р м у н а вд с у о т р н н ю ю р с те л к у ) и , ерджу и ва ю кн оп к у мы ш и , ь си н ю ю ли н и ю н а з а го т в к у лд я о к н а п р и л о ж ен и я . Ли н и и вы рав я о т б р а ж а ю тс я , лсе и саутн о в ле н фл а г zyxwvutsrqponmlkjihgfedcbaZYXWVUTS Show giudes в ди а л о г в о м ок Grid and Rules. П ер вди ж ен и е о б ъ е к от в к ли н и и в ы рав н и в ан и я в ы з ы в ае т е р ас п о л ж ен и е и х гр а н и ц н а да н н о й ли н и . С ам и ли н и и в ы я м ож н о б уи р а т ь с окн а п р и л о ж ен и я , п ер атск и в а я и х мы ш ь ю о н а ли н ей к у .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ^ П р и в яз к г ал ф
м э л е м н от
в пу р ав л ен и
я п о л ез н и л и н и ям
и и в ер ит к а л ь н ы м р мы ш
Пр и м е ча ни
е
а о б ъ ке т в к лин и я е Snap to grid.
о р а з м е ти и в ы р а в н и в а н и я ю л и н ей к я л ев у
ь окн
^| м вы равн и ван и
я де вйу тс
т и п р
и рб с о ш н е о
м
В ы рав н и в ан и с р е двт г о е с ул д м ен о т то л ь к о н и в а ем ы
ы о б ъ е к от в п р о и з в о ид с т я с п ри в леч н и е м с п ец и а л ь н ы х в ди а л о г в о м окн е Align Objects, дл я п о яв лен и я котро т в ы б р а т ь в м не ю Tools пн у к т Align Objects. П и к то гр а м ы и н р с ут т к о м е н ат р и е в . Омт еи в э от г о окн а и н ф о р м а ит в н ы и н е рт е б ю у , ч т о п ер д п р и м ен и е м к а о г - ли б о и з н и х е у дсл т вы елди т ь в ы р ав е объек т ы щ ел ч к о м мы ш и с онд оврем н ы м ре ж д а н у и е м .
О р т е ад к и т р й у т н о с ит
.
и щ с а В пл в ю ы
е г рп у
х
, одпсут н ы
е ви
д п р и л о ж ен и
я mygui, и сп оль з у
е п о дс ак з
и и птикорга м м
я в ы ш ео п и с ан н ы
м -
е воз м ож
-
ы
В сп лы в аю щ и
е п о сд к а з к и , к о т р ы е п о я в л ю ст я п р и н а в е дн и и к рус о р а мы ш и н а э лем н т ы пу р а в л е н и я , сщ у евстн о о б л е гч а ю т работ у с п р и л о ж ен и ем Д л я с н а б ж ен и я э л е м н от в пу р а в л ен и я в сп лы в аю щ и м и п о дс к а з к а м и е с ул д с уа т н о в и т ь и х с в о й св т у T o o it ip st r in g рт еб ум о е з н ач ен и е . И с п о л ь з йу т и н с п е к от р св о й ст в Property Inspector лд я од б а в л ен и я в сп лы в аю щ и х п о сд к а зо к к кн оп ка м т и о П р с то ь и ь т и с Оч , н ап р и м ер , "П о с тр о е н и е гр а фи к нфу к ц и " и "Уадлен и е гр а фи к а нф у к ц и " с о вт ес н н о (к ав ы ч к и н аби р а т ь н е )естлуд . Н а кн оп ка х и к н о п к -а х п е р к л ю ч а е т л я м ы , п о ясн яю щ и е и х н аз н ач ен и е . П р е дп о л ж и м р ха н и с т я в фа й л е pict.bmp с глбуи н о
х м о гу й ц в ет
т бы т
ь р аз м ещ ен , ч т о ц в ент а а 24 bit. С н а ч л
ы п и к от г р а м я п и к то г р а м а н е о б х ид м
. т е а о
а
582
аЧс т ь
с ч и ат с р ые д
ь р и сну о , к п р и м ер
к п р и п о м щ у Р :
III. Преин лояж
и н фу к ц и
с ги черсафикм
и imread в н ек о т р ы
zyxwvutsr
и нт е й рс фо м
й м ас и
в рабо ч е
й
>> Р = i m r e a d ( ' p i c t 2 0 . b m p ' , ' b m p ' ) ;
З еа т м в CData к н о п к э от г о м ож н с в о й св т р я од м с ро м и м св о й ст в ег о р а з м е р а о т б р а ж е ст С ю л уе д щ и ны
и н с п ек от р
е свой ст в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH Property Inspector се улд т о б р а ти ь с я к свой ст у и и л и к н о п к и - п ер к лю ч аетл я и усатн о в и т ь ег о в з н ач ен и е р . Д л я о ли б о н абрат ь и м я м ас и в а в срто к е в од а сп рав а о т н аз в ан и я а и н аж т ь < Enter> , л и б о в о с п о л ь з о в а ьт с я кн оп кой , р аз м ещ ен н о й н аз в ан и е м с в о й свт а лд я о кт р ы ит я ди а л о г в о г о окн а CData, в к о т я м ас и в а в в о ид ст я в срто к е Enter Expression. П р и это м в и н сп ек отр е Property Inspector в м ест о и м ен и м ас и в а о т б р а з и тс я и н фо р м а ц и я о х (трмех н ы й м ас и в ) и ит п е ад н н ы х (unit8). П и к то гр а м ы х п осл е з ап ску а п р и л о ж ен и я . я н а к н о п к а е р а з де л
х э лем н от
ю о сн о в ы р аз м ещ ен и ю и п р о гр а м и р о в а н и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
ы п о с в ящ ен в и н етр ф й са
рП о г а м м и р о в а н и и гал Ф
е э л е м е тн о , ма рк
в инт е рйфс
и
Ф лаг и п о з в о л яю т п р о и з в ес т и но д у и л и н еск о ль к у на ох д р аб о т ы п р и ло ж ен и я . П р о д л ж и т е р а б о т з о в а ет л ю воз м ож н ост ь н ан о си т ь ли н и и с ке т и н а с н аз в ан и ям и к ст е до л ж н о с о ед р ж а т ь дв а ф л а г п о л ь з о в а те л ь н аж и м ае т кн оп к у ь т ио П р со т , т о нф у к ц и , н о и н а ос и н ан о си т я скет а п о в ы б р а н н ы н а т и с Оч ь до л ж н о п р и в о ди т ь к и сч ез н о в ен и ит ю секти . О бы ч н рю у с т м ен яю с т до й де м о гу
о н ес к о л ь к я и п о м ещ аю ст я п а н ел т о б ы ч н а т б ы т ь в к л ю ч ен
и дву я п ан ел
в пу р ав л ен и я с о о жс х и м н а з н а ч ен и е я н а н ек о т р о й п ан ел и . М ы уж е уп о м и н а л и х ти п о в : U ipanel и U ibuttongroup. В да н н о ь U ipanel, п о ск ль к у фл а г и я в л ю ст я н ез ав и с и м ы м ы и л и сб р о ш ен ы п о о детл ь н о с ит .
е р аз м ер ы о с ей , о с в о б ди в сп рав а ь н а о к н о п р и ло ж ен и я п р и п о м щ и с о в т ес ю у щ е П о му о л ч а н и ю и м я п а н ел и uipanel 1, а е е , в о с п о л ь з о в а ш и с св о й ст в и з м ен и т е з а го л в о к н а С е кт а е и м ен о б ъ ек т а U ipanel. З а п о л ж ен и T it ie P o sit io n , к о т р о е п о ум о л ч а н и ю и ме в о м в ен р х е м лг у у п а н е л и . И з чуи т е о с ат л ь н ы с то я е л ь н о , о б р а ит в ш и с ь к и н сп екотр у св о й ст з ер у св о й ст в гр афи ч ес к и х о б ъ е к от в в с п р а в о ч н о ь до б а в ь т
о усат н о в к , о п р едляю щ и д mygui, п р едо с ат в ь т е п о ль а гр а ф и к . О к н о п р и л о ж ен и а п о х и ксет а п о у . Е сл н е то л ь к о с рт о и ст я гр а фи м к о р ди н а т м . Н а ж а ти ю гр а фи к а нфу к ц и и и ск ры
о э л е м н от
И з м ен и т н ел
Н а п ан ел
а
е дв
а фл а г
а та к
, ка к п о к а з а н
м ес т
о лд
х я и к е -
м г рп у и , ч т о при м с чл у а е п о
и и
я р а м к и . Н а н ес и т е п а й кн оп к и (р и с . 10.3). з а го л в о к Panel. В и н с п ек от р е ь с в о й с вт о м T it le и п а н ел и о вт е ч а е т с в о й с вт о 1 т з н ач ен и е ' l e ft t o p , т . е . в ле е воз м ожн ы е вари ан т ы сам о в Property Inspector и л и брау й си семт е M ATLAB. о н а р и с
. 11.3.
л ав Г
11. о нКс т р иу о вани е
т и о р тс о П
и нтей рс фа
ь j
т и тс и ч О
Рис
ь
583 zyxwvutsrqpo
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
. 11.3. Д о б а в л ен и
е п а н ел
и и фл аго
в
584
аЧс т ь
Р а з м е с ит е т е с в о й вс т у ч а ю щ ем у з о п р е дл и т е st r in g в с е тк ш ирн у о бласт
III. Преин лояж
с ги черсафикм
zyxwvuts
и нт е й рс фо м
и и да й т е и м и м ен а . З адй п о яс н яю щ и е п опд и с и р яод м с флаг м Tag в ернх ег о фл а г а з н ач ен и е chbxG ridx, а свой свт у st r in g, воет а п о пд и с ь фл а г , з н ач ен и е с е тк а п о х . нА а л о ги ч н ы м о браз о м с в о й с вт а н и ж н ег о фл а г , усатн о в и т е с в о й с вт о Tag в chbxGridY, и а п о у . Есл и е к тс т н е п ом ещ сает я р яо д м с фл аго м , велиу чь т е и фл а г а п р и п ом щ и м ы ш и , уержди ва я н а ж от й леву ю кн оп ку .
О с а тл о ь с ед л а т ь та к , ч от б ы п р и н аж ит и п о л ь з о в а ет л м кн оп к и zyxwvutsrqponmlkjih Пт ио р сто ь п р о и с о х ид л о о т б р аж ен и е ли н и й к с ет и в з ав и си м о ст и о т с ау т н о в л е н н ы х е н а От и с и ч ь п р и в о ди л о к ск р ы ит ю с ек т и . Бл о к обработ фл а го в , а н а ж ти к и с о б ы ит я c allbac k к н о п к и т и о П р с от ь е су л д т до п о л н и т ь п р о в ер к о й со со т я н и я фл а го в . С в о й с вт о фл а г а value п р и н и м а е т з н ач ен и е 1 п р и усатн о в к е фл а г а п о л ь з о в а етл м и , с о вт ес н н о , р а в н о н люу , есл и фл а г с б р о ш ен .zyxwvutsrqpon
Пр и м е ча н и
е
У флаогв , к а к и у больш и н в ст а мн э е л о т , п ри н и мюа щ и е п о умочлна и в а Min и Мх а лЕ с и ал ф г а н с т у о в лн е , т о совпаюд ш не , Т О Value И Min. З н а ч ен и п ер в ы в то р ы
е с в о й с вт м в о х нд ы м — н а з в а н и
а гр а фи ч е с к о г м а р мг у е н о т е св о й свт
в управнле и я ю з н ч ае и т з н ч ае и
, ис тем я дв а сйовтс я 0 и 1 свнесто о я value и Мх а , а лс е и робс
о о б ъ ек т
а п о з в о л яе
м котро а (п ри м ен ен и
й од л ж е
т п о лч у и т ь к у а з а ет л и get о п и с а н
н бы т е фн у кц и
К а к и в счлау е с о гл а с о в а н и я кн оп о к Пт ио р сот ь и Оь т и с ч о б р а б о тк и с о б ы ит я Callback о дн о г о о б ъ ек т а (к н о п к и к у а з е тл ь н а др гуо й о б ъ ек т (флаг) . Д л я э от г о е с лу д chbxGridX И chbxGridY р у кт рС ы handles И , В з ав и с и м о с т уС Т а Н О В И Т
Ь С ВОЙ С ТВ
а ОС е
Й X G r i d И YG r i d В ' о п
П р о и з в е ди т е н е о б х ид м ы callback к н о п к и Пт ио р сот Л ист ин с уеч т о
е и з м ен и ь (ли ст н
г 11.2. Обра от к м с ос т оняи
ь н фу к ц и я get, ь н а о б ъ ек т , а о в гzyxwvutsrqponmlkjihgfe ав е л 9). , в п онфду к ц и
) м ы до л ж н т о б р а ти ь с
и
ы п о чл у и т я к п оля и О Т И Х З н ач ен и й
е графи к
я в п о н ф ду к ц и г 11.2).
и о б р а б о тк
и с о б ы ит
в
а ф ун к ц и
и
х = - 2 : 0 . 2 : 2 ; А
у = е х р ( - х .
2);
p l o t ( x , у ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
% Пк р е в о р
а фг а л
а ск т е
а п о х
if get(handles.chbxGridX, 'Value') % Фа л
г вн е ч ю л к
, е у д е л с
ь м ,
И ' O ff1.
ИЛ
fu n c t i o n b t n P lo t _ _ C a llb a c k ( h O b je c t , e ve n t d a t a , h a n d l e s) % П о с т р о е н и
. -
я
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF C a l l b a c k о нп к и Пос т роит ь
а с обты и я фл а ог
!
-
т дт и в а б о
ь ли н
и к т е с
и
л ав Г
11. Конс т р иу о вани е
и нт е й рс фа
585 zyxwvutsrqp
s e t ( g c a , ' XG r i d ' , ' o n ' ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC e l s ezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
% Фа л
г вн е ч ю л к ы
, се у д е л
т ут а р б
ь ли н
и ск т е
и
1
set(gca, 'XGrid , 'off') end % Пк р е в о р
а фг а л
а ск т е
а п о х
if get(handles.chbxGridY, 'Value') % Фа л
г вн е ч ю л к
, се у д е л
т дт и в а б о
ь ли н
и ск т е
и
1
set(gca, 'YGrid , 'on') else % Фа л
г вн е ч ю л к ы
, се у д е л
т ут а р б
ь ли н
и ск т е
и
1
set(gca, 'YGrid , 'off') end % Кк п о н
а Пт и о р т с о
ь дн ж л о
а ст а т
ь но н п у т с о д е
й пл с о
е вд о в ы
а гк и ф а р
а
set(hObject, 'Enable', 'off') % Кк п о н
а От и с и ч
ь дн ж л о
а ст а т
ь до н п у т с о
й
set(handles.btnClear, 'Enable', 'on')
З а п с уи т о т б р аж ен и С м ен гр а фи к е ет л ь н п р и л о ж ен и П р о гр а м и р о в а н и фл а г
е п р и л о ж ен и е скет а с о т ян и
и п р
я фл аго . П о л ь з о в а те л и т и с Оч о кн оп к я н а со стян и
а и о от б р а ж ен и
е mygui и убеид тсь и н аж ит н а к н о п к
в к с те и н ь одл ж е н ь и ь т и о П р с от е флаго в е да н н ы х с о б ы ит и и л и ск р ы ит
е п р и в о ид п ер с то и т е ус л д
, ч т о суатн о в к а фл а го в в л и яе т н а у ПzyxwvutsrqponmlkjihgfedcbaZYXWVUTSR ь т и о р с от . т к н ем лдн ы ь гр а фи к . Д л я н е м лд е н н о г т о п р е дл и т й з а к л ю ч а е ст
и со втесюу щ и
м и з м ен ен и я
м н а я п о с л ед в а о р еа ги р о в а н и я ь и х со б ы ит я C allback. я в п р о в ер к е с о т ян и я х ли н и й секти . , н аж и м а
С ед л а й т е ещ к т у и м фл а г с е кт а п о х в р е да к то р е п р и л о ж ен и й и п ер й ид т е к п о н ф ду к ц и и chbxG ridx_caiiback п р и п о м щ и в с п л ы в аю щ ег о м не ю да н н о г о о б ъ е к ат . З а п р о гр а м и р йу т е с о б ы ит е C allback фл а г . И с п о л ь з йу т е а р мг у е н т , hObject со втесюу щ и х п о нф д у к ц и й , с о едр ж ащ и й к у а з ет л ь н а о б ъ ек т с о б ы ит е котрог о о б р а б ты в а е тс я в е кщ т у и й м о ен т в р ем н и . н А а л о ги ч н ы м образ о м о б р а б о та й т е с о б ы ит е C allback в то р о г о фл а г а к с ет а п о у (ли ст н г 11.3).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ^ лД
Пр и м е ча ни
е
^
я бы ростг о о д п х ер а к пн укцф идо я н еч а к н о п к а Show functions, н ижат пс и к а н пу ф к ц о д и й . Вы об р н у к ц ф п и до н е й в окн е раекдотр .
м в роакредт е н а корут и в о эт
е М - й а оф л ю п ри вод м п си к е вчел
в пн дре за н а т к пневлоя и т о п х ер
ю д к
586
аЧс т ь
III. Преин лояж
с ги черсафикм
и нтей рс фо м
\ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г 11.3. Обра от к а с обты и й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG C a l l b a c k фл а ог в с е т к и zyxwvutsrqponmlkjihgfedcba
function chbxGridX_Callback(hObject, eventdata, handles) if get(hObject, 'Value') % Фа л
г вн е ч ю л к
, се у д е л
т дт и в а б о
ь ли н
и ск т е
и
set(gca, 'XGrid', 'on') else % Фа л
г вн е ч ю л к ы
, се у д е л
т ут а р б
ь ли н
и ск т е
и
set(gca, 'XGrid1, 'off') end
function chbxGridY_Callback(hObject, eventdata, handles) if get(hObject, 'Value') % Фа л
г вн е ч ю л к
, се у д е л
т дт и в а б о
ь ли н
и ск т е
и
set(gca, 'YGrid', 'on') else % Фа л
г вн е ч ю л к ы
, се у д е л
т ут а р б
ь ли н
и ск т е
и
set(gca, 'YGrid', 'off) endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
М о ди ф и ц и р о в а н н ы е п о н ф уд к ц и р а т ь к с те у п о к а ж од й к о р ди н а т гр а фи к а фну к ц и .
и п о з в о л яю е пр
т п о л ь з о в а ет л и п ом щ
и фл а го
ю н ан о си т в бе з п ер с т о ен и
ь и би у
я
С ам о ст яель н о в н ес и т е од п о л н е н и я в п о н ф ду к ц и ю о б р а б о тк и с о б ы ит я C allback к н о п к и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC ь т и с и Оч , о б ес п еч и в а ю щ и е а д л е ун и е н е то л ь к о гр а фи к а нф у к ц и , н о и ли н и й скети . Ф лаг и п р е до с а т в л я ю н ес к о л ь к и х оп ц и й сет я п р и п о м о щ
т п о л ь з о в а ет л . О нд о в р ем н н ы и п е р к л ю ч а етл й
е П р л ак ч ю т е л М о де р н и з и р й у т е и н е тр ф й воз м ож н ост ь вы би рат к ер а ) п р и п о м щ и рте ю ст я п о и х п р е дн а з н а ч е н и ю оп ц и ю , т . е . в сегд а с аут н о в л е
ю воз м ож н ост й вы бо
ь вы бор а о нд о й и л и ср аз у р zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON ьк о л т ой он д о п ц и и о щ с у е св т л я -
.
и с п р и л о ж ен и я mygui, п р едо с ат в ь т ь ит п м а р к е р а (к ржуо к , к в а др х п е р к л ю ч а етл й . П ер к лю ч аетл , и п о л ь з о в аетл ь м ож е н еи д н с в т е н ы й п е р к л ю ч а е тл
е п о л ь з о в а те л ю е м ар т и л и о с тв у и и обы ч н о г рп у и р у т вы брат ь то л ь к о но д у ь и з грпу ы . К а к
л а Гв
11. Ксонт руиаоевн
м ы уж елт
итен йсраф
е о мт е ч а л и й ж с ли у
, дл т п а н ел
587 zyxwvutsrqpo
я о б ес п ч ен и я та к о ь U ibuttongroup.
й с о гл а с о в а н н о
й р а б о т
ы п ер к л ю ч а
-
Добавь т е в окн о п р и л о ж ен и я п а н ел ь U ibuttongroup, в о с п о л ь з о в а ш и с ь кн оп ко й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Button Group сред ы G U I D E. З а дй т е и м я Ти п ре к р а м а дл я э от й па н ле и а н а л о г и ч н о от м у , ка к в ы о п р едля и и м я обы ч н о й п а н ел и п р и раз м е щ ен и и фл а го в . Н ан ес и т е н а н е е тр и п ер к лю ч аетля . сУатн о в и т е и х св о й ст в а м Tag З н ачен и я rbMarkCirc, rbMarkSq, rbMarkNone, a S t r i n g— к ргиу , к в р а ды т , б е з м аркео в с о втес н н о (р и с . 11.4).zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
к те С
а Г " к сте
а п о х
Г " к сте
а п о у
\ vzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA axMain / Ти п р е к мр а а Ј•" г ур к
(' е б
и
з о р е кмр а
. ... L
в
.„-:. ш 11444н ; « ! :
ifcltj
.Л —
±
[- : f Г \ \ r- xA "i:.:.!:: W\ :\ k:y\ I I l. 'i- i • • PT- .I:: i .J • • ? ::; f I/ i\ h- zyxwvutsrqponmlkjihgfedcbaZY
*"*' т и о р т с По
ь 1 -
с иР
т и т с Очи
ь 1 ,
. 11.4. Днелваибо
е гп ур
ы ел ютлакч ерп
С о с т ян и е п ер к л ю ч аетл я , та к ж е к а к и фл а г , о п р едляст value, Max и Min, п ри ч е м п о му о л ч а н и ю а М х с уа т н о в л е н Д л я в к л ю ч ен н о г о п е р к л ю ч а е тл я со в п адю т з н ач ен и к л ю ч ен н о г о — Value И Min. З адй т п е р к л ю ч а е тл гр а м ы
е в и н с п е к от р
е св о й ст я с н апд и сь
. З н ач ен и
е с в о й с вт
ж
' ~
й я ег о с в о й с в т а м и о в 1, a M in — в 0. , а дл я вы я value и мха
в Property Inspector з н ач ен и ю бе з во мре к р а , о н бед у т в к лю ч е я ю с ул ед щ и а value суатн ав ли в аест
е 1 свой свт н п р и з ап сук
у value е п р о м образ ом .
zyxwvu
III. Преин лояж с ги черсафикм и нтей рс фо м аЧс т ь 588zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
В ы е лд и т жми т ри с
е п е р к л ю ч а етл е кн оп к у в с рт о к . 11.5.
ь и о то б р а з и т е с value. П о яв л ест
Рис
. 11.5. Онк
е ег о с в о й св т я окн
о Value дл я ункаво тс
В ы е дл и т е п р и п ом ощ и мы ш и ср т о к р е д а к ти р о в а н и я з н ач ен и я дв о й н ы м жми т е ОК . О б р а ти т е в н и м ан и е , ч т з н ач ен и е value и з м ен и ло с ь н а еи д н и ц у о ре к р а м в н а з а го т в к е окн а п р и л о ж ен и я и Т п ре к р а м а в ы к л ю ч ен ы . П р е дп о л ж и м и з п ер к л ю ч аетл й . П р о и сохди т о б р ащ ен и о б р а б о тк и с о б ы ит я C allback п ер к л ю ч аетл я м ар к ер о в л и н и . Оидбсу м п р о гр а м и р о в а н и с в яз а н о с р еш ен и е м о бщ е й п р о б л ем ц и ям и .
Property Inspector, н а а в zyxwvutsrqponmlkjihgfedcbaZY о Value, и з о б р а ж ен н о е н а
и зн ечиа
я
у с о з н а ч ен и е м 0.0 и п ер й ид т е в р еж и м щ ел ч к о м мы ш и . И з м ен и т е 0.0 н а 1 и н а о в и н с п е к от р е св о й ст в Property Inspector , и в к лю ч и лся п е р к л ю ч а ет л ь бе з . О сатл ь н ы е п е р к л ю ч а ет л и п а н ел и , ч т о п о л ь з о в а етл ь с у ат н о в и л оид н е к со втесюу щ е й п о нфд у к ц и и , к о т р а я до л ж н а и з м ен и т ь ти п е э от г о с о б ы ти я , п о с к о л ь к у он о ы — о бм ен о м да н н ы м и м ж ед у п но фуд к -
И з м ен ен и е ти п а м ар к ер о в ли н и и н е п р е сд а т в л я е т тр уд а — сел и и з вест к у а з ет л ь н а л и н и ю , т о до с та о ч н о о б р а ит ь с я к свой свт у ли н и и Marker п р п ом ощ и н фу к ц и и set и усатн о в и т ь ег о в н ж у о е з н ач ен и е . Ук а з а те л ь н а ли н и ю в о з в р а щ а е т н фу к ц и я p lo t в в ы охнд о м а р мг у е н ет , ег о еслуд т з а п и с а т ь н ек о т р у ю п ер м ен н юу , н а п р и м е р , Line. И с п о л ь з о в а т ь к у а з а ет л ь н а ли н и п р и е сд т я в р г ди у х п о нфд у к ц и я х , о б р а б ты в а ю щ и х с о б ы ит е C allback п ер
н и в ю -
л ав Г
11. Конс т р иу о вани е
к л ю ч а ет л й п р и вы з ов с я н е од сп у т н о й я в л ю ст
и нт е й рс фа
. О ч ен е п о н ф ду к ц и
ь в аж н , п о ск о ль к
я л о к а л ь н ы м
589 zyxwvutsrqpon
о п о н я ть , ч т о п ер м ен н а и btn P iot_ C aiiback и п осл у вс е п ер м ен н ы е , о п р едл н н ы и и п о о к о н ч а н и и р а б о т ы п о н ф ду к ц и
я Line и н и ц и ал и з и ресут я е е е з ав ер ш ен и я с ат н о в и т е в п о дф н у к ц и , и zyxwvutsrqponmlkjihgfedcbaZYXWV не .ыне ле дпро
О бм е н да н н ы х м же д у п о н фд у к ц и я м и п р о щ е в сег о о щ с у е св т и с рк т у ы h an dles. П о дфну к ц и я , п ер адю щ а я да н н ы е , до л ж н з ап и с ь да н н ы х в н о в е п о л е и сорхан ен и е ср к т у ы н фу к ц и е а han dles вес х п онфду к ц и г д а в о х нд о й а р г ум е н т — сркту ж ат ь до б а в л е н н о е п оле , в к о т р о е з а н ес н о с о в т ес ю у щ е п р и м ер , в н е к о т р о й п о н фду к ц и и м ож н о с ор ха н и т ь м ас и handles структур ы handles.datl = [1.2 3.2 0.1]; guidata(gcbo, handles) а з а те м , и с п о л ь з о в а т ь ег о в дргоу й п онфду к ц и и max(handles.datl) В н аш е м с ч л уа е да н н ы е , п о лдеж ащ и ли н и ю , со з адн н у ю в р ез луь ат с и т е н е о б х ид м ы е и з м ен ен и г р а м и р йу т е о б р а б о тк у с о б ы ит
ь п р и п о м о щ и а с о ед р ж а т ь й guidata. Т о й е д бу т с о е др е з н ач ен и е . Н а в в п ол е d a t lzyxwvutsrq
е с орха н е н и ю ы п о н ф ду к ц и
, яв л ю ст я к у а з етл м н а е р а б о т и bt n P io t _ caiiback. Вн е я в п о н фд у к ц и ю b t n P io t C a iib a c k и з а п р о й в п о н ф ду к ц и я х й callback п ер к лю ч аетл
rbMarkCirc_Callback? rbMarkSq_Callback, rbMarkNone__Callback (ЛН И Т С И
П с ор ха н и т с рт о е н и
е к у а з ет л и гр а фи к
Пр
и П ОМ ОЩ
ь н а ли н и а к о м а н до
И ф у Н К Ц И
ю в п ол е Line сркту й p lo t и сорхан и т е о б н о в л ен н у
Г 11.4):
ы han dles п р ю р с к ут
и п оу
И gu id at a;
• до б а в ь т е о п е р а то р ы о б р а б о тк и с о б ы ит й Callback п ер к лю ч аетл й , каж ыд й и з к о т р ы х н ан о си т н а ли н и ю со втес юу щ и е м арк е ы и л и б иу р а е т и х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г 11.4. Обра от к а сотбыи й пе р лакчют е л е й в myguiprog ; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA :
.
j
-
f
u
n
c
t
i
o
n
v
% Пи н е о р т с о
a
r
a
r
g
o
е гк и ф а р
u
t
=
b
t
n
P
l
o
а фи ц к н у
t
_
C
a
l
l
b
a
c
k
(
h
O
b
j
e
c
t
,
e
v
e
n
t
d
a
t
•"
a
,
h
a
n
d
l
e
s
)
и
х - - 2:0.2:2; у = ехр(- х. % Зс и п а
А
2);
ь ул е т а з к
я в пл о
е line ср у т к у р т
ы handles
handles.Line = plot(x, у) ; % Си н е а р х о
е ср у т к у р т
ы handles дл
guidata(gcbo, handles);
я ии н а в о з ь л о п с
я в ди г у р
-
х пя и ц к н у ф д о
х
zyxwvutsrq
590
аЧс т ь
III. Преин лояж
с ги черсафикм
и нтей рс фо м
zyxwvu
function varargout = rbMarkCirc_Callback(hObject, eventdata, handles) % Ва р б ы
н пл е т а ч ю л к е р
ь м- ы р е к р а г у р к
и
1 инещ мзар set(handles.Line, 'Marker , 'о' ) %
е м- в о р е к р а о г у р к
в н а и н л
и
function varargout = rbMarkSq_Callback(hObject, eventdata, handles) % Ва р б ы
н пл е т а ч ю л к е р
ь м- ы р е к р а т а р д а в к
ы
инещ мзар set(handles.Line, 'Marker', 's') %
е м- в о р е к р а о т а р д а в к
в н а и н л
и
function varargout = rbMarkNone_Callback(hObject, eventdata, handles) % Ва р б ы
ь бе
н пл е т а ч ю л к е р
з орекрам
в
set(handles.Line, 'Marker', 'none') % и н е л а д у
З а п с и ут
е п р и ло ж ен и , и убиед ст
ьти
ч а е лт к е н фу к ц и н е д о с та к о в • Е сл с у ат н а в л и в а е щ с у ю ве с ту щ е м м а н нд о • Н а ж ти з ав и си м о ст • П о в то р н ы н ию
ь в то м й и о н а п р и в о ди и и л и и х уадлен и ю . и п о л ь з о в а ет л
е о к н о )
т лю бо у о б ъ е к ут .
е н а Пт ио рсот и о т усатн о в л ен н о г , н о в сегд
й щ ел ч о а оид
е mygui, о т б р а з и т , ч т о в о з м о ж н т к п о яв лен и . О дн а к ь и сп о ль з еу й п е р к л ю ч а ет л ь
е гр а фи а с у ат н о в к ю с о в т ес ю у щ и о п ок т т и с и Оч
ли н и ь п р и в о ди
к п о о б л а с т н и з п ер к лю ч аетл
е мо р е к р а
и (со бщ ен и
а ещ
к нф у к ц и а то л ь к
, н аж
о о дн о г х м ар к ер о
е и н етр ф й
ь лд я уалден и , т о п р о и з в о ид ст е о б ош и бк
т к п очлуен и о п е р к л ю ч а ет л я
ю ли н и .
и п е р к л ю ч а е тл
я п р и в о ди н бы т
й од л ж е
и zyxwvutsrqponmlkjihgf
в с ли н
в zyxwvutsrqponmlk о П р с то о и з п ер к лю в н а гр а фи с mygui и м е т р я д я гр а фи к а я о б р ащ ен и е в ы в о ид с т
и бе
ь с у ат н о в л е н
, а з ает м е к н е я в к о з м ар к ер о
в в н
т к ег о в ы к лю ч е .
е -
К о н еч н о , п ер в ы й н еод с ат к я в л се т я сщ у евстн ы м — п р и л о ж ен и е до л ж н о р а б о та ь бе з о ш и б о к ! П р о щ е в сег о з а п р е ит ь од с у т п к п ер к л ю ч аетл ям , ес л и н е т л и н и и н а гр а фи к е , и р а з р е ш и т ь п о сл е е е п о яв л ен и я . О ч е в и дн о , ч т о е с лу д т в н ес т и и з м ен ен и я в со втесюу щ и е п о н фду к ц и и myguiprog, о б р а . Н а ж а ти е н а т ои П р с т ь до л ж н о б а ты в а ю щ и е с о б ы ит я callback к н о п о к е п е р к л ю ч а етл й , а о ч и с кт а о се й к н о п к о й Ои ч о тк р ы в а т ь од с у т п к грпу с ти ь — з а п р е щ а т ь д о с п ут . И та к , се улд т н ай т и к у а з а ет л и н а п е р к л ю ч ает л и и усатн о в и т ь и х с в о й свт о Enabled в н ж ун о е з н а ч ен и е ' on ' и л и ' off'. П р и з а п с ук е п р и л о ж ен и я в с е п е р к л ю ч а е тл и од л ж н ы бы т ь н е од с п у т н ы , т . к . п о л ь з о в а ет л ь ещ е н е п о с рт о и л гр а фи к фну к ц и . Р е д а к то с в о й с вт мы ш мы ш и тр
р свой ст в п о з в о л яе т о нд о в р е м н н о с у ат н о в и т , н а п р и м е р , Enable, ц ело й грп у ы о б ъ е к то в и о ид н и з п ер к л ю ч аетл й , а о сатл ь н ы е до б а в л я й т , уедрж и в а я н а ж от й < Ctrl> . В р ез луь ат е до л ж н и п е р к л ю ч а ет л я . Т еп р ь п е р й ид т е в р е д а к то
ь з н ач ен и е общ и х . В ы едли т е щ ел ч к о м е в грпу у щ ел ч к о м ы бы т ь в ы ед л н ы вс е р св о й ст в п р и п ом щ и
л ав Г
11. о нКс т р иу о вани е
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
и нт е й рс фа
а св о й ст в р аз м ещ ен а н а пд и с ь zyxwvutsrq , ч т о п р о едл ы в аем ы е с уа т н о в к и п ро и з о й уд т лд я с в о й с т в ср аз у в с е х в ы е дл н н ы х о б ъ е к то в . сУат н о в и т е Enable в 'o ff1 , п р и з ап ску е п р и л о ж ен и я mygui п ер к лю ч аетл и н е од пс у т н ы . О с ат л о с ь к т ои П р ос т ь и до п о л н и т ь п о н ф уд к ц и и о б р а б о тк и с о б ы ит я callback к н о п о т и с Оч ь дл я п р о г р а м н о г о пу р ав л ен и я с в о й свт о м Enable. О б р а ит ес ь к ли ст н г у 11.5, соедрж ащ ем у р т е б му ы е о п е р а то р ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUT в с п л ы в аю щ ег
. В врех
о м ен ю
у окн
а р е д а к то р
Multiply objects selected, о з н а ч ю щ а я
I zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 11.5. Ра зре ш ни е и за пре щни е дос т уп а к грпу е пе р лакчют е л е
й
fu n c t i o n b t n P l o t _ C a l l b a c k ( h O b je c t , e ve n t d a t a , h a n d l e s) zyxwvutsrqponmlkjihgfedcba % Вс
е пл е т а ч ю л к е р
и дн ж л о
ы ст а т
ь дм ы н п у т с о
и пл с о
е пи н е л в я о
я гк и ф а р
а
set(handles.rbMarkCirc, 'Enable', 'on') set(handles.rbMarkSq, 'Enable' , 'on') set(handles.rbMarkNone, 'Enable', 'on') function btnClear__Callback(hObject, eventdata, handles) % Вс
е пл е т а ч ю л к е р
и дн ж л о
ы ст а т
ь нм ы н п у т с о д е
и пл с о
е ок т с и ч
и ое с
й
set(handles.rbMarkCirc, 'Enable', 'off') set(handles.rbMarkSq, 'Enable', 'off') set(handles.rbMarkNone, 'Enable', 'off')
П ер в ы о хи д м с ау т н о в л е н н о м е уд ви т
й н е од с а т о с е дл а т т н ай т ь со втес юу щ и
к и н е тр ф й с ь та к , ч от б у п е р к л ю ч а ет л ю
а п р и л о ж ен и я mygui срутан ен . Т еп р ь н ео б ы п р и п о с рт о е н и и гр а фи к а ит п м а р к е р а о вт е ч а . О ч ев и нд о , ч т о п о сл е вы вод а гр а фи к а сле ь с о з н а ч ен и е м value, р а в н ы м е ид н и ц е , и саутн о й ит п м а р к ер а (ли ст н г 11.6).
и п е р к л ю ч а е тл
л -] :
function btnPlot_Callback(hObject, eventdata, handles) if get(handles.rbMarkCirc, 'Value') % Уе л в о н а т с
н пл е т а ч ю л к е р
ь м- ы р е к р а г у р к 1
set(handles.Line, 'Marker , 'o') end if get(handles.rbMarkSq, 'Value')
и
592
аЧс т ь
% Уе л в о н а т с
н пл е т а ч ю л к е р
III. Преин лояж
ь м- ы р е к р а г у р к
с ги черсафикм
и нтей рс фо м
zyxwvu
и
set(handles.Line, 'Marker', 's') endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Т еп р ср т о е н и
ь ит
О сатл п е р к л ю ч а е тл в ен ы о нд о г з н а ч ен и е л о ж ен и н ит вй у т
п м ар к ер о и г р а ф и к а
в о п р е дл я с т
я с а ут н о в л е н н ы
м п е р к л ю ч а е тл
м пр
и п о
-
.
ь н ер ш ен н о
й о нд
а п р о б л ем а
. П р и п о в т р н о м щ ел ч к е п о о бласт и , н о в сегд а од л ж е н бы т ь с уа т н о в л е н и де н с т . Д а н н ы й н еод сат к с р ут а н я е с т я с п ри в леч н и е м ещ е о з н ач ен и я in a c t ive с в о й свт а Enable. П ер к л ю ч аетл ь с о in a c t ive явлсет я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED ,акен тмивын о н в ы гляид т в р а б о та ю щ е м п ри к до спут н ы й п е р к л ю ч а е тл ь (с о з н ач ен и е м on), н о п о п ы тк а и з м е е да н н о г о п е р к л ю ч а е тл я н е п р и в о ид т к успу хе . соУв ерш ен ст у с о б ы ит й со гласн о ю су л е д щ е м у а л г о р и мт у . я о н в ы к л ю ч а е ст я
й п ер к л ю ч аетл ь о воз можн ог м и к а ь с о т ян и е о б р а б о тк
1. С в о й с вт в а е ст я н е з а д т 2. П р с в а и в а ес т р е к л ю ч а ет л
о Enabled п ер к л ю ч аетл я , до л ж н о и м ет ь з н ач ен и ь on дл я дргиу х п ер к лю ч аетл й
и н а ж ит
, с о б ы ит е C allback к о т р о г е in a c t ive, а лд я о сатль н ы , т о вс е он и сатн у
х в ду т н еа к ит в н ы м и
о о б р а б ты х on. Е сл
и .
и н а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED т и о П р с то ь с в о й вс т у Enable все х п ер к лю ч аетл й п ри я on, а з ает м о п р е дл я с т я с ау т н о в л е н н ы й в да н н ы й м о ен т п е я З н ач ен и е in a c t ive. ь И В Enable З ан оси т
Доп олн и т е п о нфд у к ц и и btn P lot_ C allback, rbM arkCirc_Callback, rbMarkSq__Callback И rbMarkN one_Callback н ео б хид м ы м и о п е р а то р а м и (ли ст н г 11.7).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA - ин
е щ ло к ч
! .П Г ! ц . е до вт р ащ е н и м м шы и
е вzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH ле ч к ю ы н и я пе р лачкют е л я п о в то р н ы м
function btnPlot_Callback(hObject/ eventdata, handles) % Пс и о к уг о н е л в о н а т с о пл е т а ч ю л к е р я и ои н е л д е р п е ео г if get(handles.rbMarkCirc, 'Value') set(handles.rbMarkCirc, 'Enable', 'inactive') end if get(handles.rbMarkSq, 'Value') set(handles.rbMarkSq, 'Enableќ, 'inactive') end if get(handles.rbMarkNone, 'Value') set(handles.rbMarkNone, 'Enable', 'inactive') end
, ка
к нг о н в и т к а е
о
Глав
11. Конструивае
интерфйса
593zy
function rbMarkCirc_Callback(hObject, eventdata, handles) % Пь л е т а ч ю л к е р
, си т ы б о
% нм ы н в и т к а е
е кг о р т о
, а оы н ь л а т с
о оя с т е а в ы т а б р б
е — ам ы н в и т к
, де ж л о
н ст а т
ь
и
set(hObject, 'Enable', 'inactive') set(handles.rbMarkSq, 'Enable', 'on') set(handles.rbMarkNone, 'Enable', 'on') function rbMarkSq_Callback(hObject, eventdata, handles) % Пь л е т а ч ю л к е р
, си т ы б о
% нм ы н в и т к а е
е кг о р т о
, а оы н ь л а т с
о о ястеавытаб рб
е — ам ы н в и т к
, де ж л о
н ст а т
ь
и
set(hObject, 'Enable', 'inactive') set(handles.rbMarkCirc, 'Enable', /on 1 ) set (handles . rbMarkNone,' ' Enable ' , ' on' ) function rbMarkNone_Callback(hObject/ eventdata, handles) % Пь л е т а ч ю л к е р
, си т ы б о
% нм ы н в и т к а е
е кг о р т о
, а оы н ь л а т с
о о ястеавытаб рб
е — ам ы н в и т к
, де ж л о
н ст а т
ь
и
set(hObject, 'Enable', 'inactive') set(handles.rbMarkSq, 'Enable', 'on')
set(handles.rbMarkCirc, 'Enable', 'on')zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
П рави ль н а ч еу т з о в а ет л
а в се
я о б р а б о тк х с и а у цт и й я с п р и л о ж ен и ем
И сп оль з ован и етл й п р е лд а г е м ы
. л Аь етр н аит в н ы
Сп и с к
и
а п е р к л ю ч а е тл , к о т р ы
й (см е м о гу
т в о з н и к н ту
. ли ст н г ь пр
и 11.4—11.7) ртеб у и в з а и м о ед й с в т и и п о ль
т -
. е к н о п о к - п е р к л ю ч а етл й сп ос
х оп ц и
б вы бор т р ас к р ы в аю щ и ес
й р еа л и з юу
М о де р н и з и р й у т е и н е тр ф й воз м ож н ост ь вы бор а ц в ет (си н и й , к р а с н ы й , з ел н ы й ) п р и п ом щ и п а н ел и пу р а в л ен и н ови т е в и н с п ек отр е свой ст
с п р и л о ж ен и а ли н и . П ер й ид т
й н и ч е м н е о лти ч аест а п о л ь з о в а ет л я сп и ск и
я mygui, п р еод сатв ь т и гр а фи к а и з р а с к р ы в а ю щ е го с е в реж и м р е д а к ти р о в а н и я раск ры в аю щ и й с я сп и со в Property Inspector Tag в з н ач ен и
я о т п ер к л ю ч а м то л ь к о о нд о й и з .zyxwvutsrqponmlkjihgfedcbaZYX
е п о л ь з о в а ет л я сп и ск я и до б а в ь т к (р и с . 11.6). астУ е pmcoior.
ю а е -
III. Преин лояж с ги черсафикм и нтей рс фо м аЧс т ь 594zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
С к ет
zyxwvu
а Г " с е тк
а п о у
и Т п м а р ек
*С кр у г
zyxwvutsrqponmlkjihgfedcbaZ
а и
С к в а др а т
ы
• '{* б е з м а р к ер о
в
zyxwvutsrqponmlkjih
_
\ Pop- up Menu
тио р ст П
ь
Рис
. 11.6. Днелваибо
е рыюркасвщо ге
я спкис
а
Э л е м н ат м и р а с к р ы в а ю щ е го с я сп и ск а яв ляю ст я с тр о к и , к о т р ы е в о яд с т я в и н с п е к от р е свой ст в Property Inspector. Н а ж м и т е кн оп к у в с рт о к е с о св о й ст в о м st r i n g р а с к р ы в а ю щ его с я сп и ск а , п о яв л сет я окн о String. В о б л а с т и в од а ет к с а з ам ен и т е етк с т "Pop- up M enu" н а срто к и "с и н и й " , "к р а с н ы й " , "з ел н ы й " (бе з к а в ы ч ек ) , р а з едл я я и х п р и п ом щ и < Enter> (р и с . 11.7) и н а жми т е О К . З а п с иу т ебм у ы
е mygui и буеид тсь е с рт о к и . В ы б о р раз ли ч н ы т а ли н и и — ртебсу я з а п р о гр а м и р о в а т го с я сп и ск а . О б р а б о тк н и и вы бор С в о й с вт о рю у с т я с г р а м и р йу т switch лд с рт о к и сп и ск
, ч т о р а с к р ы в а ю щ и й с х с рт о к п ок
я сп и со
а н е п р и в о ди ь с о б ы ит
а с о б ы ит я C allback р а с к р ы в а ю щ его с а п о л ь з о в а ет л я и с о в т ес ю у щ е сп и ск а value со едр ж и т н ом е р вы бран н о е ид н и ц ы . П ер й ид т е к п о н ф ду к ц и е о б р а б о тк у вы бор а п о л ь з о в а ет л я я с уат н о в к и ц в ет а ли н и и в з ав и си м о ст а (ли ст н г 11.8).
к с о ед р ж и т к и з м ен ен и е callback р а с к р ы в а ю щ е
т рте ю ц ве
я сп и ск а с о с т и т в о п р е дл м и з м ен ен и и ц в ет а ли н и й с тр о к и , к о т р ы е н м еу и pmCoior_caiiback и з а п р о . И с п о л ь з йу т е о п е р а то и о т н о м ер а вы бран н о
. й
р
л ав Г
11. о нКс т р иу о вани е
595zyxwvutsrqponmlkjihgfed
и нт е й рс фа
ш и ш щ яш
tin
с ин р с ак н ы зел ны
й
й й
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ок
CancelzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
11.7. нкО о StringzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Рис .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
.8. Обра от к
а вборы
а п о л з ь ва т е л
я и з ра сревыкщюгос
я спик
а zyxwvutsrqpon
function pmColor_Callback(hObject, eventdata, handles) % Ои н е л д е р п
е нр е м о
а во н а р б ы
й к о р т с
и
Num = get(hObject, 'Value'); switch Num case 1 % Вн а р б ы
а па в р е
я са к о р т
, се у д е л
т ст а л е д
ь ли н
ю се н и
ь ли н
ю ко н с а р
ь ли н
ю зо н е л
й
1
set(handles.Line, 'Color , 'b'); case 2 % Вн а р б ы
а ва р о т
я са к о р т
, се у д е л
т ст а л е д
й
1
set(handles.Line, 'Color , 'r'); case 3 % Вн а р б ы
а ть т е р
я са к о р т
, се у д е л
т ст а л е д
й
set(handles.Line, 'Color1, 'g'); end
З а п ис т у то м н уф к ц и
е п р и л о ж ен и е , ч т о р аск р ы в аю щ и й с . 20
Зка
. 130
, п о срт й т я сп и со
е гр афи к к п о з в о л яе
, н аж
в н а Пь т ио р тсо т и з м ен ят
, и уибедст
ь ц ве
т ли н и
ь в и гр а фи к
а
596
Н ес л о ж н
аЧс т ь
, ч т
о з а м еит ь
• п о в то р н о к р ы в аю щ ем с
III. Преин лояж
о и н ерфйт
е п о с рт о е н и
с mygui ещ е гр а фи к
я сп и ск е
• вы бо р ц в ет а пр (h an dles. Line куаз ы в ае
с ги черсафикм
е име
а н е учи ыт в ает
т р я е к тщ у и
zyxwvuts
и нтей рс фо м
д н еод сатк о в
: й вы бо
р ц в ет
а в рас
-
; и о с вт у и
и ли н и
и н а гр а фи к й о б ъ ек )т
т н а н щесу юевсту щ и м р т е бс у
я р а з м е с ит
ь е тк с
е п р и в о ди ; , п о яс н яю щ и
т к ош и бк
е
• р я од сп и ск а
м с о сп и ск о .
й н а з н а ч ен и
е
с У рт а н и т о б р а б о тк с рт о е н н о (ли ст н
е п ер в ы й н е до с а т о к , п о м есит е в п о н ф ду к ц и и bt n piot caiiback т и о П р сто ь бло к switch лд я з а д н и я ц в ет а п о и н а ж ит я кн оп к и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI й ли н и и в з ав и си м о ст и о т с о т ян и я р а с к р ы в а ю щ е го с я сп и ск а г 11.9). zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA т с ос т ония я ра есрвыщкгюо я списк а пр и построени и г 11.9. Уеч а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Л ист ин и гр к а ф
function varargout = btnPlot_Callback(hObject, eventdata, handles) % Ои н е л д е р п
е нр е м о
а во н а р б ы
й ск о р т
и
Num = get(handles.pmColor, 'Value'); % Ук в о н а т с
а тг о м е у б е р
о цт е в
а ли н
и
switch Num case 1 set(handles.Line, 'Color1, 'b'); case 2 set(handles.Line, 'Color1, 'r'); case 3 set(handles.Line, 'Color', 'g'); end
И з м ен ен и е ц в ет а ли н и и п р и освтуи и гр а фи к а л и ш ен о см ы сла , п о э т м е с ул д т з а п р е ти ь од су т п п о л ь з о в а ет л я к р ас к р ы в аю щ ем су я сп и ск у , и , н а п р о ти в , р а з р е ш и ть , п р и п о срт о ен и и гр а фи к а . В н ач л е работ ы п р и л о ж ен и сп и со к од л ж е н бы т ь н п о е д су т н лд я п о л ь з о в а етл я . сУта н о в и т е в и н с п ек от р я сп и ск а Enable в з н а ч ен и св о й ст в Property Inspector лд я р а с к р ы в а ю щ его с off. В н еси т е н е о б х ид м ы е до п о л н е н и я в п о н фду к ц и и b t n p i o t c a i i b a c k b t n c ie a r C a iib a c k, со втес юу щ и е н а ж ит ю н а кн оп ки , и с п о ль з йу т ВТСЙО
О СКСИП
а Enable (ЛНИТС
Г 11.10).
у я е е и е
л ав Г
11. о нКс т р иу о вани е
истин Л I
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM 597zyxwvutsrqp
и нт е й рс фа
г 11.10. Разрешени
е и запрещени
е доступ
а с у м е щ к ю а в ы р к с а р
я списк
у
function varargout = btnPlot_Callback(hObject, eventdata, handles) % и н е ш р з а Р
е дп у т с о
а к с р умещюавыркса
я ск с и п
у
set(handles.pmColor, 'Enable', 'on') function varargout = btnClear_Callback(hObject/ eventdata, handles) % Зи н е щ р п а
е дп у т с о
а к с ру м е щ ю а в ы р к с а
я к с и п с
у
set(handles.pmColor, 'Enable', 'off')
*} zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и а Вз у л ц я Фи ц кн у й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
. к т е С
а
а п о х zyxwvutsrqponmlkjihgfedcbaZYX
J P к тсе
| I r
p" ск т е а п о у • . .../........;.;.;.,:.L, ;. ..
и Т п р ме к р а
а
1 С Kpyrvt 1 (* т ар д в к ы
Г Г * бе з о мр е к р а
ти с ч О
е э лем н т
ы и н етр ф й с а ь п о ясн яю щ и
т ли н
I си н
й
и
ь
Рис М н о ги е т с о п р о в ж адт
ев Ц
в
. 11.8. Днелвиабо , в ч а с нт о с ит м етк с от м
е ттске
а
, р а с к р ы в а ю щ и ес . П ер й ид т
е в реж и
я сп и ск и м редакти р о в а н и
, у делс
я
598
аЧс т ь
и п р и п ом ощ Text) н а д с п и с к о м S t r i n g В Ц в е
ек ат ще
и п а н ел
и пу р ав л ен и
т ли н и и
е кн оп к е и ме
с ги черсафикм
я р а з м е с ит е в и н с п е к от р
. сУатн о в и т
, и сп о ль з йу т е п р и л о ж ен и
III. Преин лояж
е ет к с о в у е св о й ст
ю о бласт ь (Static в zyxwvutsrqponmlkjihgfedcbaZ Property Inspector
, a H o r i z o n t a l A l i g n m e n t В l e f t ДЛ
и в срто к а т бо ле е н а г л я нд ы
П р о гр а м и р о в а н и е с о б ы ит в о ид с т я п р а к ит ч е с к и а н а л о ги ч н о сп и ск а х м ож е т бы т ь в ы едл н р ы х е д бу т я в л ьт с я з н а ч ен и е к и х э л е м н от в о п р е дл я с т Max- Min б о л ь ш е е ид н и ц ы с рт о к .
х с н а з в а н и ям й и н е рт ф й
zyxwvutsrq
инте й рс фо м
и с в о й с вт с (р и с
Я д о б а в л е н н о г
о объ
. Т еп ер . 11.8).
-
ь р а б о та ю
-
я CaiiBack о б ы ч н ы х сп и ск о в ( L ist bo x) п р о и з , ч т о в о бы ч н ы . О лти ч и е со ти т в то м о н ес к о л ь к о э л е м н от в , м ас и в н о м ер о в кот м с в о й свт а value. Р аз р еш ен и е вы бор а н ес к о л ь и раз н о ст я з н а ч ен и ям и св о й ст в ам х и Min. Е сл , т о п о л ь з о в а етл ь м ож е т в ы ед л и т ь н ес к о л ь к
х ь о
С о ед р ж и м о е сп и ск о в м ож е т бы т ь с уа т н о в л е н о и л и и з м ен ен о и з п р о гр а м ы , я в к а ч е с вт е з н а ч ен и я л д я ч е г о ф о р м и р е с ту я м ас и в с рт о к и усатн ав ли в аест с в о й свт а st r in g. З н ач ен и е м с в о й с вт а st r i n g м ож е т ат к ж е бы т ь м ас и в яче ек , соедр ж ащ и х с тр о к и , и л и о нд а с тр о к а , в к о т р о й э л ем н т ы сп и ск а р а з ед лен ы си м в о л м в е р ит к а л ь н о й ч ер т ы |.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
лос П
ы срокл инг
а
с У о в е р ш е н с вт й у е и н е тр ф й с п р и ло ж ен и я mygui, п р едо с атв и воз м ож н ост ь с у ат н а в л и в а т ь ш ир н у ли н и и п р и п о м щ о п р и л о ж ен и га . Д о б а в ь т е п ол с у ск рол и н г а ( S li d e r ) в о к н и м я scrwidth в св о й свт е Tag. С н а б ди т е п ол с у скрол и н г н е ие м "Т о л щ и н а л и н и " та к ж е , ка к и р а с к р ы в а ю щ и й с
^ ^ Пр и м е ча н и П ро ст ск р о л и н г Ви р е т к ал ь н о ш ирн го р и з о н а л т ь н п о р г м ля ь н у и мы ш и Т еп р и ч и сло в ы 1. В ма скрол и н г п ер м щ ен и
ь е су л д
т о п р едл и т м з н ач ен и е е юс л у е д щ и х з ан ес и т
а ет к с от в ы я сп и со
к (р и с
ю е е й м п о яс . 11.9).
е ^[
й щ ч ол е к мы ш ь ю в ок н а п ри в о д т к н п е лв яо и е ил и гори з он альтн о ы и вы сот ы п со л ы ск р о л и н а г о р сап о л ж н е о й к п ос л ы ск р о л и н аг .
П р о де л а й т
в п о л ь з о в а ет л ы ск рол и н я и з а д й т
и п ол с
ь с о вт е с и м е е св о й свт е с ау т н о в к
е де с я ь т а о вт е ч а ю и б е нг у к а
е п и р н ож л е ю и в ре т к а л ь н е н п а р н в ел и
я п р и о б а вд л не и о р ас п о л ж не о е з ав и с т о т н ос т ш н е и е р аз м е р лд я е г ве с о з р ас у я н ао ж т й ву е л
. И з мне и т . П рощ
п о л сы , жриеавд у
е м ж ед а value.
у п о л ж ен и е
и и з р е да к то р
а с в о й с вт
.
. С в о й с вт , з ап и с ы в аем ы
а ам
, а в M in — еид н и ц у т з а гр а н и ц ы з н ач ен и й .
м б ен г у к
и п ос л й п о л сы
ы . я
н ч е п и у ло н ар и с о в ат ю к н оп к а п ол с
х и Min п о л с х в value, п р
я ь у ы
ы и
л ав Г
11. Конс т р иу о вани е
599 zyxwvutsrqpon
и нт е й рс фа
к те С
а
V к сте
а п о х
Г " к сте
а п о у
Ти п мр е к р а
а
С * г у р к
м
Г " т ард в к
Цве
ы
(* е б
з о р е к р а л г
т ин л
и
в
zyxwvutsrqponmlkjihgfe
zyxwvutsrqponmlkjihgfedcbaZY
Ц синй Толщин
т ио р ст П
ь
ти с ч О
с Ри
2. О п р едли т кн оп к ри с
а и н л
и
zyxwvutsrqponmlkjihgfedcbaZ
ь
. 11.9. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Днелваибо е псол ы силнорк г а
е н ач ль н о е п о л ж ен и е у в с рт о к е с н аз в ан и е м с в о й с вт а . 11.5) и з м ен и т е з н ач ен и е н а еид н и ц у
, з а п и с а
в в value еид н и ц у , и в п о яв и в ш ем с я окн .
. Н а ж м и т е е Value (см .
3. О б р аит ес ь к с в о й вс т у siid e r st e p . Е г о з н ач ен и е м я в л ес т я в е к от р и в уд х к о м п о н ен т , п ер в а я и з к о т р ы х о п р е дл я т о нт о с и ет л ь н о е и з м ен ен и value п р и н аж ит и н а кн оп к и с о с рт е л к а м и п ол с ы с к р о л и н га , а в от р а я — п р и п ер атс к и в ан и и б ен г у к а мы ш ью . Д л я то г о ч от б ы н а ж ит е н кн оп к и п ол с ы и з м ен ял о value н а едсят ь п р о ц е н то в , а щ елч о к мы ш сп рав а и л и с л ев а о т б ен г у к а н а д в а д ц а ть , е сулд т с у ат н о в и т ь з н ач ен и [0.10.2] св о й свт а siid e r st e p . Р а с к р о й т е ср т о к у si i d e r st e p щ елч к о мы ш и п о з н ак у п лю с с л ев а о т н аз в ан и я с в о й с вт а и в п о яв и в ш и сх я с рт о ка х х и у в в еид т е 0.1 и 0.2 (р и с . 11.10). О с а тл о ь з а п р о гр а м и р о в а т н е м scrwidth, к о т р о е со ти н ом у з н ач ен и ю value. П ер й ид т бав ь т е в н е й о п е р а то р с ау т н о в к
ь с о б ы ит е C allback п о л с ы скрол и н г а с и ме т в з адн и и ш и ри н ы л и н и , р а в н о й о к г р л еу н е к п о н ф ду к ц и и scrwidth _ caiiback и од и ш и ри н ы ли н и и (ли ст н г 11.11).
з е а и е м -
аЧс т ь
600
с ги черсафикм
zyxwvu
и нт е й рс фо м
. 11.10. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH Вов д зн ечиа й SliderStep zyxwvutsrqponmlkjihgfedcb
с иР
| нитсиЛ
III. Преин лояж
".'
г 11.11. О С
итыбос
я Callback сол п
ы г н и л о р к с
а zyxwvutsrqponmlkjih
function scrWidth_Callback(hObject, eventdata, handles)zyxwvutsrqponmlkjihgfe % Пи н е ч у л о
е шн и р
% н а пс о л
е сг н и л о р к
ы ли н
и в зт с о м и с в а
и о т пи н е ж о л
я бк н у г е
а
а
width = get(hObject, 'Value'); % Ук в о н а т с
а тн и щ л о
ы ли н
и
set(handles.Line, 'LineWidth1, round(width))
З а п с иу т е mygui и беуид тсь , ч т о п о л с а ск рол и н г а п о з в о л яе т л е гк о и з ме н я т ь от л щ и н у ли н и и п о с рт о е н н о г о гр а фи к а . сУрт а н и т е с а м о с т яел ь н о не котры е н еод ч т ы и н е тр ф й с а . П о л с а ск рол и н г а до л ж н а бы т ь н п о е ду с т н о й п о сл е о ч и с кт и о се й к н о п к о й ь т и с и Оч , п о с рт о е н и е гр а фи к а пр и м с уа т н о в л е н н о й ш и ри н ы ли н и . п ом ощ и П о с рт о и т ь п р о и з в е ид т е с ч о еу т Дан н ы е н е од с а т к и и с п р а в л я ю ст я в н ес н и е м с о вт ес ю у щ и х и з м ен ен и й в о б р а б о тк у с о б ы ит й C allback п ер ч и слен н ы х кн оп о к та к ж е , к а к и в п реыд щ уд и х р а з де л а х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ь вдов
б лО а с т О бы ч н ы п р еы д щ у и п р и ло ж ен и я л о ж ен и е п о л ь з о в а ет л рт е бс у
а т е скт
е ет к с о в ы
е о бласт
х р а з де л о в . О бм е м о щс у е с в т л я ю воз м ож н ост я п о с тр о и ть
а и (Static Text), и с п о л ь з о в а ш и ес т ли ш ь в ы в ес т и н ек о т р ы й и н фо р м а ц и е й м ж де у п о л ь з о в а ет л я п р и п ом щ и о б л а с ет й в од а ет к с ат ь в ес т и в ы р аж ен и е л д я нф у к ц и
я н а п р о ят ж е н и й ет к с т в окн м и п ри . П р е до с та в ь т , гр а фи к котро
, п о з в о л яю н ет к с от в
В тиладу
о е й
.
Добавь т е в окн о п р и ло ж ен и я о бласт ь в од а ет к с ат , суатн о в и т Tag в з н ач ен и е editF un и с н абид т е е е п о яс н ен и е м в ет к с о в п о л ж ен н о й вы ш е та к , к а к п о к а з а н о н а р и с . 11.11. П р и з ап ску mygui с рт о к а лд я в о д а н фу к ц и и до л ж н а бы т ь п с уо т й , п о э тм ТСЙОВ
и
е И З String КОрТС
е е е с в о й с вт й о б л а с ти е п р и л о ж ен и у в р е д а к то р
о , р а с
я е
у Edit Text.
Н абран н а я с рт о к а в о бласт и в од а до л ж н а с о ед р ж а т ц и и с ч о е ту м п рав и л з ап и с и п о э л ем н т ы х о п ер ац и й с рт о к и я в л се т я з н а ч ен и е м с в о й свт а st r i n g о б л а с т
ь в ы р аж ен и
е лд . С о едр ж и м о
и в о да
, ег о н ад
я н уф к е э от о е д бу
й т
л ав Г
11. Конс т р иу о вани е
и нтей рс фа
601 zyxwvutsrqpo
ь в inline- н фу к ц и ю п р и п р о гр а м и р о в а н и и с о б ы ит я кн оп к и zyxwvutsrq ь в е к от р з н а ч ен и й н фу к ц и и (с о з адн и е inline- нфу к ц и й о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд "Ве ы ативрс ме и ае ын имон укн ц и "ф гав ы л 6).
п р ео б р аз о в ат
ь и в ы ч и с л и т
т и о П р сто
о п и сан
Ц
,
' ,Й Г . Ч
-
".V**
г г zyxwvutsrqponmlkjihgfedcbaZYXWVUTS к те С
а
Ти
Г к с те
а п о х
Г к с те
а п о у
п р е кмр а
а
Г * гур к
и
. Н а п р и , 'mygui1, 'No');
е н аж ит
е э к в и в а л ен нт
о вы бо
-
л ав Г
12. Диалогевы
Чи с л п р и м ер
о кн оп о , сюлуед щ а
онак
и м еню
к и н пад и с
и н а ни а о б р а щ ен и
я фо р м
button = questdig('От и с и ч
п р и в о ди т к п о яв лен и к о м mygui и вмду вы бо р Н ет .
преин лояж
ь о? ис '
ю ди а л о г в о г я к н о п к ам
611 zyxwvutsrqpon
х о п р е дл я ю с т
я с о з а е д лт м п р и л о ж ен и я , н а и questdigzyxwvutsrqponmlkjihgfedcb
я к фн у к ц и 1
, 'mygui , 'Д' а
о окн и Д а и Н ет
а с тек сот , п ри ч е
, 'Н' те
, 'Н' те
)
м zyxwvutsrqponmlkjihgfedcbaZYXW т и тс и Оч ь о?ис , з а го л в м н а ж ит е з а м ен яе т
Ди алог во е окн о mygui явлсет я м о ад л ь н ы м — о н о н е п ер й т и к окн у п р и л о ж ен и я , дргиу м гр а фи ч е с к и м окн а окн о M ATLAB, п о к а о н о о тк р ы то , т . е . н е еслда н вы бо Cancel. Лю б о е гр а фи ч е с к о е о к н о м о ж н о селдат ь м о да л ь н ы м е т с уат н о в и т ь ег о с в о й с в т о windowstyle в з н ач ен и е 'n orm al' жслиу т лд я п еро дх а к о б ы ч н о м у п о в е дн и ю о к н а
а д е т п о л ь з о в а ет л ю м и л и в к о м а н дн о е р м ж ед у Yes, No и , дл я ч ег о услде 'm odal'. З н ач ен и е .
К ром е и с п о л ь з о в а н и я фн у к ц и и questdig, в о з м о ж е н в то р о й сп ос б с о з адн и я м о да л ь н о г о ди а л о г в о г о окн а и и сп о ль з о в ан и я ег о в п р и л о ж е н и . В о к н е GUIDE Quick Start (к о т р о е п о я в л ес т я п р и з а п с ук е с р ед ы G U I D E к о м а н од й guide и л и п р и п еро дх е в мне ю File сред ы G U I D E к пн у кт у New) се улд т в ы брат ь с о з ад н и е м о да л ь н о г о ди а л о г в о г о окн а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO (с.м .аздр а де р С GUIDE" ав ыг л 10). П осл е фо р м и р о в а н и я м о да л ь н о г о окн а в с р ед е G U I D E о н о сорхан яест я в фа й л е , к п р и м ер у , в modaldlg.fig. П р и э от м со втес юу щ а я м е у фа й л н фу к ц и я с п о н фду к ц и я м и з а п и ш ес т я в фа й л modaldlg.m. К о гд а р т е бс у я от браз и т ь н а э к р а н е м о да л ь н о е окн о , в о с н о в н о м п р и л о ж ен и и в ы з ы в а е ст я э т а фа й л - нфу к ц и я . Е е в ы охнд о й а р мгу е н т с о едр ж и т ср т о к у с н а пд и с ь ю н а н а ж от й кн оп ке , и э т о з н ач ен и е п р и м е н я се т я лд я в ы п о л н е н и я с о в т ес вю у щ е г о блок а о п е р а то р о в . З а м еьт , ч т о н апд и с и Yes и N o н а к н о п к а х м о да л ь н о г о окн а м ож н о и з м ен и т ь н а дргиу е (н а п р и м е р , Д а и Н )ет , о б р ащ аяс ь К И Х С В ОЙ С ТВ
У St rin g.
е Э то т сп о с б п о др о б н о оп и са н в сп рав о ч н о й с и ем т е MATLAB н а п р и м ер ди а л о г в о г о окн а с п овтдерж н и е м з а к р ы ти я п р и л о ж ен и я (см . р а з д . Creating Graphical User Interfaces: Programming GUIs: Example: Using the Modal Dialog to Confirm an Operation). Пр лд
и н ал и ч и я м о да л ь н о г
пу р а в л е н и я чи т
ь ег о с о т я н и
нО к
а отиыр к
и о п р едл н н о г
о оп ы т а п р о гр а м и р о в а н и а м ож н о расп ол ж и т , фл а г Н е та в ыза ко п е в в ы охнд ы х а р мг у е н ат
я с о б ы ит ь д о п о л н и ет л ь н ы ь эт о н ко о в ме дш йе н ь ла х фа й л - н фу к ц и и м о да л ь н о г
о окн , н а п р и м е р
П е р ад ч а ад н н ы л а и пт у и к н ем у го в о г о окн а о кт р ы ит
я и сорха не и х и з фа й л . Н а и б о л е я фа й л а
я файл а в п р и л о ж ен и е п р о с т , к о т р о
е с о з ад ес т
е ы , и п олу
о окн а
.zyxwvutsrqpo
а
е с о п р яж ен б со ти
й сп о с
й в з а го т в к е э л ем н т
а с з адн и е т в и с п о л ь з о в а н и я н фу к ц и е
м и м ен
и фай и ди а л о й u i ge t fi i e . Д а н
-
612
аЧс т ь
н а я н фу к ц и в о з в ращ ае в ы бран н о м з о в а ет л Доп олн и т з ы в ае ед р ж а щ и н фу к ц и ю в и з а ул и з и р ю у с т ср т о П олн о п р о и з в о ди к у а з ет л о б р а б о тк
я п р и в о ди т в п ер в о у п о л ь з о в а ет л м ь о мт е н и
т к п о яв л ен и м а р мгу е н т . В ы ондх ы , и л и п р
л о тк р ы ти е е п р и л о ж ен и
и о кт р ы ит
е mygui к н о п к о й о о кт р ы ит я фа й л а а ч и се л о ди н а к о в с ч и ыт в а ю ст я и з фа й л п р и п ом щ и p lo t . у и ег о и м ен м дл я я в к ач есвт е в о х дн о г е ад н н ы х и з фа й л ю в п о л е Line сркту я к н о п к и И з фай л а п ри в едн
;
•
и нт е й рс фо м
zyxwvu
о окн а о тк р ы ти я фа й л а и , а в о в то р о м — пт у ь к фай лу , ы рав н ы н л юу , лсе и п о ль и фай л а п р о и з о ш л а о ш и б к а .
е и мя е а р мгу е н т
е окн
й дв а с о т л б и к . Д а н н ы е я к с пет у м к фай л е и м я з адест т с ч и ыт в а н и ь н а л и н и и н а ж ит
с ги черсафикм
ю ди а л о г в о г
м в ы охнд о
т ди а л о г в о
III. Преин лояж
ИzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON з а л й фа , н а ж ит е н а котру ю вы . П о л ь з о в а те л ь вы би рае т фа й л , со й в ы со т ы — та б л и ч н о з а дн н у ю а в м арт и ц у с в мд у я с от л б ц а м и и И с п о л ь з йу т е st r c a t лд я сц еп лн и я образ ован и я п олн ог о и м ен и фай ла . о а р мг у е н т а н фу к ц и и load, к о т р а я а в м ас и в . Н е з а бьду т е с ор ха н и т ь ы han dles. О п е р а то р ы п р о с е тй ш е й ы в л и сит н г е 12.2.zyxwvutsrqponmlkjih
• zyxwvutsrqponmlkjihgfedcbaZYXWVUTS }
•
\ Л и с т и н г 12.2. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П р о г р а м м и р о в а н и е с ч и ты в а н и я а д ны х и з файл а i; :....;; .:i;.. .• *... .• ..."...:. .V.................... I..' V . • •. •.IV•. ....„• . . ; • . .. ;..: JU . i..... . -. :• :... V. Mlil ....I'. • . ...• .;' .....; .• .V.;...'..:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [fname, pname] = uigetfile; % пи н е ч у л о е н е м и и и пт у и к фл й а у
% Па к р е в о р
, ы б
л л и оы р к т
т фй а
л
if fname ~= 0 % Ои н а в о з а р б
е г о н л о п
о ин е м
и л й а ф
а
fullname = strcat(pname, fname); % Си н а в ы т и ч
е ы н а д
х и з фл й а
а в ми с а
в
Mas = load(fullname); % Го к с е ч и ф а р
е и н е ж а р б о т
е ы н а д
х
handles.Line = plot(Mas(:, 1), Mas(:, 2)); % Си н е а р х о
е о н е л в о н б о
й руткуртс
ы
guidata(gcbo, handles); end
С о з да й т е фа й л с да н н ы м и в нжу о м my.dat. З ап сиут е п р и л о ж ен и е mygui и ит е в н и м ан и е , ч т о в ди а л о г в о м окн сп и ск е Files of type саутн о в ле н фи л ь т р о тк р о й т е my.dat. Н а ося х срто и ст я кн оп к и И з л й фа а е ус л д т п р о и з в о ди т в з а и м о де й с в т и я с о с ат л ь н ы м и э л е м н атм гр а фи к а до л ж н ы бы т ь од пс у т н ы п е р к л ю ч а ет л и сп и со к и о бласт ь в од а ет к с а . П р о и з в еди т с от я е л ь н о .
ф о р м а те н аж м и т е о кт р ы ит -М Ш гр а фи ь ат к и
е к
, н а з о в и т е его , н а п р и м е р , е н а кн оп к у И з а л й фа . О бра я фа й л а в р ас к р ы в аю щ ем с я ;(*.m). В ы б ер и т е All files(*.*) и ад н н ы х . О б р а б о тк у н а ж ит я ж е , к а к и т иоП рсот ь с ч о еу т м и н е тр ф й с а . П о с л е п о яв л ен и я , фл а ги , р а с к р ы в а ю щ и й с я е р т е б му ю д о р а б о тк у сам о -
л ав Г
12. и алоДгевы
онак
и м еню
преин лояж
613 zyxwvutsrqpon
П р и ло ж ен и е , к о т р о е п р е нд а з н а ч е н о лд я р а б о т ы с фа й л а м и о п р едл н н о г о ти п а , н ап р и м е р с р асш и р ен и е м dat, п р о щ е в и с п о л ь з о в а н и , есл и в ди а л о г во м о к н е о кт р ы ит я фа й л а а в от м а ит ч е с к и с ау т н а в л и в а е с т я о п р е дл н н ы й ф и л ь рт . Ф ну к ц и я u iget f i l e п р есудм арт и в ае т з адн и е с та н д а р тн о г о расш и р ен и я в о вонхд о м а р мг у е н ет , н а п р и м е р , в ы з о в zyxwvutsrqponmlkjihgfedcbaZYXWVUT [fname, pname] = uigetfile('*.dat'); с о в т ес у кУ а з а н и окн
е е о кт р ы ит
г
т ди а л о г в о м *. * ' п р и в о ди я фа й л а
у окн т к о т б р аж ен и
у с фи ль рто
м дл ю фа й л о
я фа й л о в в се
в с р асш и р ен и е х ти п о в в ди а л о г в о
.
Ф ну кц и я u ip u t f i l e п р едн а з н а ч ен а дл я со з адн и я ди а л о г в о г н и я фа й л а . В охнд ы е и в ы охнд ы е а р мг у е н т ы u ip u t file и м ею ч ен и е , ч т о у нфу к ц и и u iget f i le . В к ач есвт е в о х дн о г о а р мг у е н т м ож н о ку а з а т ь н е то л ь к о ф и л ь тр , н о и п о л н о е и м я фа й л а лд я з а п и с и . К ом ан д в р.азд з ап и с Ф ну к ц и ок
Он к
ы save и load лд я р а б о т "Свитанчые и запьис ь тек с т а и чи се л р а з о б р а н
ы с фа й л а м и дх'аын '
о с с о бещ ни е
ы в р.азд
о б щ ен и в ан и ош и бк ; Л ис т ин
"Т еквтыос
а Mas П р
е в счлуа е и в и з аул и з а ц и и п р и о б р а щ ен и г 12.3. Обра от к
т з адт м а р мг у е н т
м о б о ш и б к я п о л ь з о в а ет л я е с и а цу т и я и с о п р о в ж да т м о к н е
и Щ ОМ П
е н е с о вт ес ю у щ е г
о окн а с о р ха н е т т о ж е н аз н а а u i p u t fi le , п р е дл а г е м о г о и ч и сла
е п о др о б н "ы файл ь з а го л в о е — с рт о к е
, о п и с ан
ы zyxwvutsrqpo е и
о с ч и ыт в а н и гавы л
8.
к ди а л о г в ы х .zyxwvutsrqponmlkjihgfedc
е
, в ч а с нт о с ит , м о гу
т п ри в ест и е су л д
и к о ш и бк т п р ес у д м а р т и в а т ь и х с о б щ ен и е
, о кт р ы ит е в р а б о т
е фа й л а с да н н ы м е п р и ло ж ен и я ь п р и н ап и сан и м о б ош и бке , к о т р о
и . Т а и ал е
.
Ф ну к ц и я er r o r d ig п р енд а з н а ч ен н и е м о б ош и бке . Вондх ы м и а р мг у е н ат м ост м и з а го л в к о м окн а . Д о п о л н и т и з фа й л а (см . ли сит н г 12.2), п р о в ер к о масси в
, со едр ж ащ и м 2. Бо ле
гавы л
и u ip u t file и u i ge t fi le п о з в о л яю н в о в то р о м до п о л н и етл ь н о м вохнд о
Н ек о т р ы е дей свти в н еи з в еснт о м ф о р м а те к и е и с к л ю ч и е тл ь н ы г о р и тм а п р и л о ж ен и в ы в о ид с т я в оедтль н о
м dat. м
И ф ун к ц и
а дл
я с о з ад н и
я ди а л о г в о г о окн а с со бщ е и er r o r d ig яв л ю ст я с рт о к и с тек е п о срт о ен и е гр а фи к а да н н ы х , сч и атн н ы й н а р аз м ер н о с т ь и ти п с о дер ж и м о г
й s i z e , n d im s И i s n u m e r i c , И в ы в е д и т
х о
е СО
-
о фо р м а т а да н н ы х . З ак л ю ч и т е с ч и ыт ю ад н н ы х в бло к t r y. . .cat ch лд я п р едо вт р а щ ен и я и к load (ли ст н г 12.3).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP а и сликчют е л ньы
х с ит ау иц
try
й с с оебщ ни
% Си н а в ы т и ч е ды н а х и з фл й а Mas = load(fullname);
а в ми с а
в
м о б ошибк
е ;
614
аЧс т ь
% Ои н е л д е р п
е ро р е м з а
в мв и с а
III. Преин лояж
с ги черсафикм
и нтей рс фо м
zyxwvut
а
SMas = size(Mas); % Пк р е в о р
а мв и с а
а ды н а
х
if (SMas(2) - = 2) | (ndims(Mas) ~= 2) | - isnumeric(Mas) errordlg('Ны н т с е в з и е
й фа м р о
т фл й а
а с димына
1
, 'О! акбиш '
)
else % Го к с е ч и ф а р
е ои н е ж а р б о т
е ды н а
х
handles.Line = plot(Mas(:,1), Mas(:,2)); % Си н е а р х о
е оо н е л в о н б
й ср у т к у р т
ы
guidata(gcbo, handles); end catch % Пл ш о з и о р
а пр
а ок б и ш
errordlg('Ны н т с е в з и е
и ви н е л о п ы й фа м р о
и load т фл й а
имын а а с д'
, 'О! акбиш '
)
endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Мен
ю гриаеч фсокг
о онк
а
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
т и сп о ль з о в ат ь с та н д а р тн о е м ен ю гр а фи ч ес к о П р и ло ж ен и е M ATLAB м о ж е г о окн а . С р ед а G U I D E п о з в о л яе т п р о гр а м и с т у до п о л н я т ь с та н д а р тн о е ме н ю и л и с о з ад т ь с о б вт е н н ы е м ен ю . С в о й с вт о MenuBar о к н а п р и л о ж ен и я (о б ъ ек т а figure) о вт еч а т з а н али ч и е с а т н да р н т ы х м не ю zyxwvutsrqponmlkjihgfedcba File, Edit, Tools, Window и Help в р а б о та ю щ е м п р и л о ж ен и . З н ач ен и е figu re да н н о г о св о й св т а с о в т е с у т о т б р аж ен и ю с а т н да р н т ы х м ен ю , а п о е п р и в о ди т к п р и л о ж ен и ю б е з с рт о к и с м ен ю . В н е з ав и си м о ст и о т з н ач ен и я с в о й с вт а MenuBar р а з р а б о тч и к п р и л о ж ен и я и ме т воз м ож н ост ь р аз м ещ ат ь с о б в те н н ы е м ен ю , н о в счлуа е з н ач ен и я figu re он и добавл яю ст я к с атн да р нт ы м ме н ю гр а фи ч е с к о г о окн а . Р аз м ещ ен и е и п р о гр а м и р о в а н и е м ен ю п р о и з в о ид т с я п р и п ом щ и р е д а к то р а м ен ю . М ен ю яв л сет я гр а фи ч е с к и м о б ъ е к от м U imenu — п о т м к о м гр а фи ч ес к о г о о к н а .
Р е ад т к о
р м е н
ю
П род лж и т е работ у на и 11. П ер й ид т е в р еж и П ри н ц и п к о н с тр и у р о в а н и н ю — буеид тсь , ч т о с в о й свт по е . З ап сиут е р е д а к то б р а в в м не ю Tools п ну к Editor, и з о б р а ж ен н о е н а
д п р и ло ж ен и е м р е д а к ти р о в а н и я м не
м mygui, н а ч ут я п р и л о ж ен и ю п рощ е в с ег о п о н я ть о MenuBar гр а фи ч ес к о г р м не ю и з п ан ел и уп р ав лен и т Menu Editor. П о яв л ест р и с . 12.2.
ю п р и чент и и zyxwvutsrqponmlkjih ав г л 10 я в с р ед е G U ID E. , с о з адв я н ов е ме о окн а с у ат н о в л е н о в я (см . р и с . 10.5) и л и вы я окн о р е д а к то р а Menu
л ав Г
12. Диалогевы
од б а в л ен и пну кт
а м ен
в к лад м ен
а дл ю окн
е ю
о н ак
и м еню
преин лояж
с о з а нд и к о н ек ст о г м ен ю
е
п у р а в л ен и о р о к у ст н ем
/
я ракиедт рован и а
я
Р ис
. 12.2. Р е д а к т о
615zyxwvutsrqponm
е
а л е дн у и э л ем н о т м ен
й н
в к л ад к о н е ст о г
а дл
р м ен
я раекдит рован и о м ен
в ю
я а zyxwvutsrqponmlkjihgfedcbaZYXWV
ю объект
ю M enu Editor
Окн лд
е
о р е д а к то р а м ен ю с о ед р ж и т в д е в к л а дк и : Menu Bar, п р енд аз н ач ен н у я с о з ад н и я с рт о к и м не ю п р и л о ж ен и я , и Context Menus лд я ь м ен ю . С ей ч а с н а м п о н а до б и ст я в к лад а Menu Bar, е е о б л а с т п а н ел ь Properties св о й ст в э л е м н от в м не ю (сп р ав а о т в к лад и П р и вы бран н о й в к лад е Menu Bar со з адй т е н ов е м ен ю , н аж Menu н а п ан ел и и н с р мт у е н о т в р е д а к то р а м ен ю , в н а в и га то р с рт о к а Untitled 1, седлай т е е е щек ту е й щ ел ч к о м мы ш и . О б р а ти (р и с . 12.3), ч т о в о б л ас т и св о й ст в п о яв и л и с ь э л ем н т ы пу р а в л ен и с рт о й к и м ен ю .
ю к о н ет к с нт о г о н а в и г а то р а и ) п о к а п сы т у е . в кн оп к у New е п о яв и л а с ь е в н и м ан и е я лд я н а -
С тр о к а Label сжлиу т лд я з а д н и я н ап д и с и м не ю и л и п ну к т а м ен ю , a Tag лд я о п р е дл н и я и м ен и (тэга ) с о з да н н о г о о б ъ ек т а U imenu, о б и с п о л ь з о в а н и и о с ат л ь н ы х э л е м н от в п а н ел и Properties с к аз н о н и же . В виед т е сло в о "Г р а фи к " в срто к у Label (бе з к ав ы ч ек ) и з адй т е и м я mnGraph в с рт о к е Tag. З а п с иу т е п р и л о ж ен и е mygui и биеду ст ь в н али ч и и м не ю Г р а фи к . В ы б о р м не ю Г р а фи к в р а б о та ю щ е м п р и л о ж ен и и н е п р и в о ид т к р а с к р ы ти ю м ен ю , п о ск ль к у н е о б х ид м о ще е с о з ад т ь пну кт ы м ен ю . З а к р о й т е р а б о та ю щ е е п р и л о ж ен и е . В р еж и м е р е д а к ти р о в а н и я с е дл а й т е ещ к т у е й с рт о к у Г р а фи к в н а в и г а от р е р е д а к то р а м не ю и до б а в ь т е п ну к т , н аж в кн оп к у New Menu Item (см . р и с . 12.2). с У ат н о в и т бав ь т е ще иф к в н а в и г а т о р е
е н ап д и с е о ид
ь п ну к т н пну к т м ен ю . нА а л о ги ч н ы
а П о с рт о и т ь и да й т , седла в п р е дв а р и е т л ь н м о браз о м з адй т
е ме
у и м я mnG raphPiot. Д о о ещ к т у е й ср т о к у Г ра е н апд и с ь т и с Оч ь и и м
я
616
аЧс т ь
III. Преин лояж
с ги черсафикм
zyxwvut
и нтей рс фо м
, и з о бр аж ен mnG raphciear. Н а в и г а то р м не ю од л ж е н с о ед р ж а т ь с ркт у н у ю н а р и с . 12.4. М ен ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF Ги ф а р к и ме т п ер в ы й руо в е н ь , а п ну к т ы Пь т ио р сто , .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA т и т с и Оч ь — в то р о й
J; Menu Editor zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
LJIMenu Properties Label: Untitled 1
": I
Tag: |iJntitled_1 . . . . . . . . . . . . . . . . i
Accelerator: Ctrl +; None Г " Separator above this Item Г " Check mark this item ;
f5* Enable this item Callback: %automatic
View
More options »
Menu Bar
Context Menus
Рис
. 12.3. З адн и
е св о й ст
| Ги фра
в мне
е
к И М о П с р ти
— Щ
Рис
ю в р е да к от р
Оитсч
. 12.4. И ераих
ь ь
я э л ем н от
в м не
ю
л ав Г
12. Диалогевы
онак
и м еню
преин лояж
617zyxwvutsrqponm
З а п с и ут е п р и л о ж ен и е mygui, в ы б о р м не ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ и ф а рГ к п р и в о ди т к р а с к р ы ти ю м ен ю . Р аз муестя , п р и о б р а щ ен и и к п ну кат м т ио П р со т ь и От и с ч ь н и ч ег о н е п р о и с о х ди т , е сулд т з а п р о гр а м и р о в а т ь с о б ы ит я callback п ну к от в ме н ю . С о б ы ит е Callback с ам о г о м не ю и ф а рГ к н е рт е б у т о б р а б о тк и , т . к . п р о и со х и д т а в от м а ит ч е с к о е р а с к р ы ти е м ен ю . Р аз муестя , сле и в ы б о р м ен ю о дл ж е н п о в л еч ь н ек о т р ы е дей свти я п р и л о ж ен и я , т о и х н ео б хид м о з ап ро гр а м и р о в а т ь в о б р а б о тк е с о б ы ит я Callback с а м о г о м ен ю .zyxwvutsrqponmlkjihgfedcbaZYX
р П о г а м м и р о в а ни
е пт окну
в м е н
ю
В ы бо р э л ем н т а м не ю в н а в и г а то р е р е д а к то р а м не ю п р и в о ди т к о тбраж е н и ю ег о с в о й с т в н а п а н ел и UIMenu Properties. С тр о к а в од а Callback п ред н аз н ач ен а лд я в ы з о в а п о н ф уд к ц и и М - фа й л а п р и л о ж ен и я , с о едр ж ащ ег о об р а б о тк у с о б ы ит й э л е м н от в и н е тр ф й с а . Д л я п ерохд а к с о в т ес ю у щ е й п о н ф уд к ц и и в р е д а к то р е М - фа й л о в е ус л д т н аж т ь кн оп к у View. С едл ай т е а к ит в н о й ср т о к у с п н у кот м т и о П р с от ь м не ю и ф а рГ к и о б р а ит е с ь к п од н фу к ц и и mnG raphPiot_Caiiback о б р а б о тк и ег о с о б ы ит я Callback. З а м еьт , чт о вы бо р п ну к т а т и о П р с то ь долж е н п р и в о ди т ь к то м у ж е сам о у р е з л уь а т . П о э т м у в п о нфд у к ц и и ут , ч т о и н аж ит е о нд о и м е н н о й кн оп ки mnG raphPlot_Callback до с та о ч н о в ы з в ат ь п о н фд у к ц и ю btnPlot__Callback о б р а б о тк и с о б ы ит я callback к н о п к и Пь т ио р сот . Ан а л о ги ч н ы м образ о м об . П р и в ы з о в е фну к ц и й с от и т дел о и п р и п р о гр а м и р о в а н и и п ну к т а ь т и с и Оч btn P iot_C aiiback и bt n ciear_ caiiback е сулд т учесьт , ч т о и х п ер в ы й во дх н о й а р мг у е н т я в л се т я к у а з е тл м н а то т о б ъ ек т , с о б ы ит е Callback к о т р о г о бед у т в ы п о л н яьт с я (ли ст н г 12.4).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI _,..,... ,................................v. ........,..................,...,,,,....,,,.,........,,............,...., ! истин Л г 12.4. Программировани е событи я Callback пункто
в н е м
,................. ^ ю zyxwvutsrqponmlkjih
function imGraphPlot_Callback(hObject, eventdata, handles) btnPlot_Callback(handles.btnPlot, eventdata, handles) function imGraphClear__Callback(hObject, eventdata, handles) btnClear_Callback(handles.btnClear, eventdata, handles) З а п с и ут
е п р и л о ж ен и е mygui, в ы б о н ю и ф а рГ к п р и в о ди т к о т б р аж ен и о ч и скт е о с ей . В н еси т е до п о л н е н и b t n c ie a r C a iib a c k лд я о бесп еч н и кн оп ок . И м ен н о п о сл е в ы б о р а п о л ь з о в а ет л сат ь н ео п д с у т н ы м в м ес т е с о нд о и м ен н о с ти ь — до с тпу н ы м и , и н а о б о р о т м ен ю , ку а з а те л и н а н и х с о д е р ж а ст
р п н у к от ю гр а фи к я в п о н ф ду к ц и я с о гл а с о в а н н о
в т ио П р со т а н фу к ц и
ь и т и с Оч ь ме и и , с о вт ес вт ен н о , и btn P iot_ C aiiback и й работ ы п н у к от в м ен ю и м п ну к т а т ио П р со т ь о н од л ж е н й кн оп кой , а п ну к т и кн оп к а и Оч . И с п о л ь з йу т е с в о й с тв о Enable п ну к то в я в с рт к у е h an dles (л и с ит н г 12.5).
618
К ром о д сп у т н ы м д а к то р з н а ч ен и
аЧс т ь
III. Преин лояж
с ги черсафикм
zyxwvu
и нт е й рс фо м
е то г о
, в н а ч л е работ ы п р и л о ж ен и я пн у к т zyxwvutsrqponmlkjihgfedcbaZYXW т и с и Оч ь од л ж е н бы т ь н е . Э то г о м ож н о до б и ьт с я сброс м фл а г а Enable this item в о к н е ре а м ен ю , ч т о э к в и в ал ен нт о с ау т н о в к е с в о й с вт а Enable п ну к т а м не ю в е off.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Пр и м е ча ни
^ ^
е
^
Тр
и лфа г а Separator above this item, Check mark this item и Enable this item п о з в л юя т ан с т у о в и т ь з н ч ае и я ю вущтс веиот м св о й а т м Separator, Checked и Enable нп укт а н ме ю , т . е . объкет а Uimenu (п р о нза н чае и е пр е ы в х ув д х свой тс в с к аз н о н и)же . Ольанст ы е св о й т а о б ъ ек т а Uimenu до п н у тс ы в и н орпскте е свой ст , дл я вы з ов а котр г о се у дел т восп ль з оват с я кн оп к й More Options.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG i Л и с ти н
е прога м м ирова ни
г 12.5. С о г л а с о в а н о
е т кнпоу
в м е н
ю и нопк
к
ю Гк и ф а р
ь и Ои ч .
fu n c t i o n b t n P l o t _ C a l l b a c k ( h O b je c t , e ve n t d a t a , h a n d l e s) se t ( h a n d l e s. m n G r a p h P l o t , ' E n a b l e ' ,
' o ff' )
se t ( h a n d l e s. m n G r a p h C l e a r , • E n a ble ,' ' o n ' ) fu n c t i o n b t n C l e a r _ C a l l b a c k ( h O b je c t , e ve n t d a t a , h a n d l e s) b u t t o n = q u e s t d l g ( ' О ч и с т и т i f s t r c m p ( b u t t o n ,
1
ь оси?
,
' m ygu i' ) ;
' Ye s ' )
s e t ( h a n d l e s . m n G r a p h P l o t , s e t ( h a n d l e s . m n G r a p h C l e a r ,
• E n a b l e ', ' o n ' ) • E n a b l e ',
'o ff')
end
З а п с и ут
е п р и л о ж ен и ь с о гл а с о в а н
тис
В к а ч е св т п р и л о ж ен и ли ц ы дан н ы х
о с п овенд и е
е пу р а ж н ен и я в ы м ож ет я mygui, п р енд аз н ач ен н ы , и св яз ат ь ег о с о нд о и м ен н о
о р мО ф л е н и Б ы с рт ы н ог ж ле а м о
е mygui. Т еп р м о нд о и м е н н ы
е м е н й од с у т о с о ч еа т н и е с о ча н е т и
п к мне я к лав и ш е осптлеярд
ь п о в е дн и
е кн оп о
к т ио П р со т
х п ну к от
е до б а в и т й лд
ь пну к я гр а фи ч е с к о г й к н о п к о й
в м не т И з фа й л
а в м ен о о т б р аж ен и
ю и ф а рГ
к
я ат б
-
.
ю ю и л и ег о п ну кат . Д л я мне ю ил я в раскры ваю щ ем с
м п р о и з в о ид с т и п ну к ат
я пр , в ы дел н н о г я пс и к
и п о м щ и з а дн о в р е д а к то р е , е Accelerator: Ctrl + .
л ав Г
12. Диалогевы
Ка лю бо
к е с лу д
е п ну кт ы и в ы к л ю ч ен о , п р и со з адн и , к аж ыд й , е сулд т и м ен ю м ож н я м не ю
ы м е н
т кн у П П р и п ом щ п р и л о ж ен и х и Ск те же н и м ет
и м еню
т и з н а з в а н и й к л а в и ш ей
й бк у в е н н о
Н ек о т р ы ч ен о ил Н ап р и м ер п н у к ат м и о р д и н а те п н у к атм п о ль з о в ан и
онак
619 zyxwvutsrqponm
преин лояж
я сп и ск а
, в ы м ож ет
м не
ю м о гу т н ао х и д ь т с , о че м св и елдть св у и м не ю лд я уп р ав лен и и з к о т р ы х н ан о си т и л с н а б ид т ь пну кт ы м не о п о м ещ ат ь р а з ед л и е т л ь н у с б о ль ш и м ч и сло м п н у к от в
ю с флаг м
и ссоитн я
ь к о м би н ац и
и с
я в онд о м и з п о л ж ен и й — в к лю т фл а г р я од м с н апд и сь ю п н у к ат . я ск ето й н а гр а фи к е с в мд у я и уби р а е т к сте у п о в ы б р а н н о й к о ю фл а г м и . К р о м е то г , мжед у ю ли н и ю лд я уод б свт а и с .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
я
и кн оп о к zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC New menu и New Menu Item р е да к то р а м не ю до б а в ь т е в е mygui мне ю к те С а с тэ го м mnGrid, соедрж ащ е е пну кт ы к те С а п о а п о у с тэ га м и mnGridx и mnGridY с о вт ес н н о . Н а в и г а то р до л ь в и д , пресдатв лен н ы й н а р и с . 12.5.
Ш -в
и ф ра Г
к
ь L"Ш оПсрит Ш О и т с ч ь izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA LzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA к етС
а
Ш к етС
с Ри
Т еп р ч от б ы ли с кс е т чи ни п р о в ер и т бо ил с о б ы ит ни
е н аз н ач т
.
. 12.5.и хИра е
я эон емт л
а п о х
в мн е
ю и Гаф р
к и к тСе
а
ь е су л д , н а п р и м е р ь ли н и а и е фл аг ю фл а г р п о л ь з о в а ет л я и ск ры т х н ео б хид м ы
т з а п р о гр а м и р о в а т ь с о б ы ит я callback п ну к от в м не ю та к , п р и в ы б о р е п ну к т а к те С а п о х в к лю ч алс я фл а г и н ан о си и секти , а п р и п о в то р н о м о б р ащ ен и и к дан н о м у пн у кт у буи р а л с в ы к лю ч алс я фл а г . С в о й с вт о п ну к т а м не ю checked о вт еч а е т з а н али а р я до м с н аз в ан и е м п ну к т а м ен ю , з н ач ен и е on п р и в о ди т к вклю ч е , a off — к в ы к л ю ч ен и ю . лАго р и т м д о с та о ч н о п ростй , се улд ь е кщ т у е е с о т ян и е фл а г , к о т р о е о п р е дл я т п р еы д щ у и й вы , п ер в ст и фл а г в п р о ти в о п о л ж н о е п о л ж ен и е и н ан ест ь к с еу т . П ер й ид т е к з а го т в к а м п о ф дн у к ц и й , о б р а б ты в а ю щ и в к те С а п о х и Ск те а п о у мне ю а к те С , и з ан еси т е я callback п ну кот е о п е р а то р ы (ли ст н г 12.6).
, ь т и х в
620
аЧс т ь
III. Преин лояж
с ги черсафикм
zyxwvu
и нтей рс фо м
) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 12.6. Прога м м ирова ни е птнкуо в м е н ю с флаг м и zyxwvutsrqponmlkjihgfedc ......J
function mnGridX_Callback(hObject/ eventdata, handles) if strcmp(get(hObject, 'Checked'), 'on') % Фа л % тр е п
г пт к н у
а Ск т е
а п о у бы
ь се у д е л
т вт и ч ю л к ы
л ун е л в о н а т с
ь ег
, о и ут а р б
ь ск т е
1
set(hObject, 'Checked , 'off') % ви н е ч ю л к ы
у е фг а л
set(handles.axMain, 'XGrid', 'off') % си т ы р к
а
е ск т е
и
.;- else % Фа л % тр е п
г пт к н у
а Ск т е
ь се у д е л
а п о у н е бы т вт и ч ю л к
ь ег
л ун е л в о н а т с
,
о и нт с е н а
и ск т е
set(hObject, 'Checked', 'on') % ви н е ч ю л к set(handles.axMain,'XGrid', 'on') % ни н е с н а
у е фг а л
а е ск т е
и endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
щ function mnGridY_Callback(hObject, eventdata, handles) if strcmp(get(hObject, 'Checked'), 'on') % Фа л % тр е п
г пт к н у
а Ск т е
ь се у д е л
а п о х бы т вт и ч ю л к ы
л ун е л в о н а т с
ь ег
, о и ут а р б
ь ск т е
set(hObject, 'Checked', 'off') % ви н е ч ю л к ы
у е фг а л
set(handles.axMain, 'YGrid', 'off') % си т ы р к
а
е ск т е
и
else % Фа л % тр е п
г пт к н у
а Ск т е
ь се у д е л
а п о х н е бы т вт и ч ю л к
ь ег
л ун е л в о н а т с
,
о и нт с е н а
и ск т е
set(hObject, 'Checked', 'on') % ви н е ч ю л к
у
е фг а л
set(handles.axMain, 'YGrid', 'on') % ни н е с н а
а е ск т е
и
endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Е сл п р и ло ж ен и я м не
и н ек о т р ы
е пну кт , т о е сулд ю M ATLAB.
Добавь т н у ю р а б о т
е с а м о с т яел ь н у п н у к от
Р а е з д л и т е ыл н ь Р а з ед л и е т л ь н ы е ли н и грп у п п н у к от в , о б ъ еид н ен н ы д ы M ATLAB). Р аз едли етль н у
ы м не т усатн о в и т
ю од л ж н ь лд
в м ен
о о п е р а то р ы ю Ск те
е лин
и и м ж ед
ы бы т я ни , к о т р ы
а и о нд о и м ен н ы
у п н у к атм х п о см ы сл ю п ол с
ь в к л ю ч ен ы ср аз у п о сл е з а п с ук а х фл а г Item is zyxwvutsrqponmlkjihgfedcbaZYXW checked в р е да к то р е е о б ес п еч и в аю х фл а го
и м не ю п р и м е н я ю ст у (н а п р и м ер у м ож н о до б а в и т
в окн
, м не
т с о гл а с о в а н а п р и л о ж ен и я
я лд я в ы ед л н и ю File р а б о ч е ь к а к п р и с о з ад н и
.
я й ср е
и
л ав Г
12. Диалогевы
онак
и м еню
преин лояж
621 zyxwvutsrqpon
п ну к т а м ен ю , та к и мжед у щ с у юе в с т у щ и м и п н у к а тм п о з в о л яе т о п р е дл и т ь п о л ж ен и е ли н и и п р и п о м щ this item. Ли н и я р а з м е щ а е ст я н а д тещку и м п н у кот ли н и я ат к ж е од б а в л я е с т я п р и усатн о в к е с в о й св т а U imenu) з н ач ен и я ' o n ' в р а б о ат ю щ е (т . е . о б ъ ек т
п о р ед чя У н и
е м е н ю
од У б н а я о р га н и з а ц и я м не ю о ч ен ь ч аст н а д п р и л о ж ен и ем . В о з н и к ае т н е о б х ид м о с т м не ю и и з м ен ен и и и х уро в н я . П р е дп о л ж и м н ю и Гф а р к п р и л о ж ен и я mygui п н у к т Ск те и к те С а п о у , а п н у к т т и с Оч ь в ы ед л и т р а б о тк и м не ю м о ж н о р а з б и т ь н а тр и э та п а е м не ю в ы ед л и т 1. В н а в и га то р Move Selected item Down свди н ь т 2. П р и в ы едл н н о м пну кт Backward, э т о п р и в оид и х и и п ну к т сатн о в и ст 3. П о с к о л ь к т о дл я то г в ес т и м ен м не ю Ск те В р ез луь ат
е м не е м не
ю и п н у к т ю (р и с
ь н аж м и т у пн у кт м м ен ю
| =н
и п ом ощ
и кн оп к
ы в х и
.
н а в и га то р е ср аз у з а м не ю Гк и ф а р м м не ю Гк и ф а р , до с та о ч н о п ер з в и ер а их . Д л я э то г о в ы ед л и т Move Selected item Forward. ы в н жну о
Поср ит
й и е р а их
, ч т
р- Й
а Н Ск ет
- * N к етС
~~8П Оитс ч
. 12.6. Ин езим
м п р и л о ж ен и
ь
Ск ет L
ю в р а б о та ю щ е
е работ е п н у к от я в к лю ч и т ь в ме и к те С а п о . П р о ц ес с п ер
о ортаж е
,
е -
и фрzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB а Г к
В ~ Ш
с Ри
ь и пр
й н и з
о в о дх
е кн оп к у Move Selected item а н а оид н уровен ь в ер х в и ер а .
ы р ас п о л ж ен . 12.6).
г
д м не
я то л ь к ь в п е р г пу и р о в к , ч т о требсту а в м ест е с п о пд ну к атм ь в о едтл ь н о е м ен ю .
е пну к т т и с и Оч е ег о в сам ы
е т и с и Оч т к п ервод я о е дл т ь н ы
т\ Щ \
Ви
о в ы я в л ес т
у м не ю Ск те а р а с п о л ж е н о в , ч от б ы к те С а сатл о п н у к от ю к те С а н а оид н р уо в е н ь вн и а и в о с п о ль з йу етс ь кн оп ко й
н о в н а в и га то р
и м ен ю . Р еда к от р м не ю и фл а г а zyxwvutsrqponmlkjihgfedcb Separator above м м ен ю . Р а з едл и етл ь н а я у sep arat o r п ну к т а м ен ю м п р и л о ж ен и .zyxwvutsrqponmlkjihgfed
а по х
а п о у
ь
е р у тк сур т и mygui п ри в ед
ы н е м
ю н н а р и с
. 12.7.
622
аЧс т ь
III. Пре ин лоя ж
с ги черсафикм
zyxwvu
и нт е й рс фо м
и з у а л и з а ци я Фицнук й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO , и л и п р и в о ди то л ь к о з н ак а р а в н о , а с о ч еатн и е к лав и ш и л и с с и м в о л ь н о р а б ыт в а е ст я н ев р н о . Э то т н е од с а т к п р и л о ж ен и я в ы см о ж ет п р и ч ент и и с ю л уе д щ е г о р а з де л а , в к о т р о м р а с м а тр и в а ю тс я з о в а п онфду к ц и й о б р а б о тк и с о б ы ти й .
е ег о — о си м вола . т к вы вод у й о б е с ур т а н и т ь сп ос б ы вы -
630
аЧс т ь
аК обр а бот к
к втсаюв ыз
Пр п ну к т з а го л в к р и тм
и работ а м не
В ер н и ес т
с ги черсафикм
я ицнук пофд и стиыбо
. Оибдсу
III. Преин лояж
е в с р ед ю с нжу ы а п о дф н у к ц и м ет п е р
zyxwvu
и нтей рс фо м
и й
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
е G U I D E у н а с н е в о з н и к а л о та к о г м с о б ы ит е м п р и в о ид л к а в от м а ит ч е с к о м , в к о т р о й тр е б о в а л о с ь р еали з о в ат ь сп ос б ы о б р а б о тк и с о б ы ит й бо ле
о воп роса
. В ы бо
р
у с о з ад н и ь ж ел а м ы е п о др о б н о
ю й а л го
-
.
ь к п р и л о ж ен и
Property Inspecю asciico d e и в и н сп ек отр е св о й ст в zyxwvutsrqponmlkjihgf е з н ач ен и е с в о й с вт а KeyPressFcn гр а фи ч е с к о г о окн а . О н о яв л ся е т я с тр о к о й :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA adciicode('figurel_KeyPressFcn', gcbf, [ ], guidata(gcbf)) tor п о с м о тр и т
о б ес п еч и в а ю щ е й вы з о в осн овн о й н фу к ц и и asciico d e п р и л о ж ен и ск о ль к и х а р гму е н то в . О с н о в н а я фн у к ц и я и м е т з а го л в о к function varargout = asciicode(varargin) и м ож е м ен от м ын
т бы т в (и н етр ф й чм о лис
ь вы з ван с так и
а с п рои з воль н ы х н фу к ц и
автне"о г рум ав ыг л
й оп и са
м ч и сло м в о хн д ы х и в ы о нх д ы х а р уг н в рzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ .азд "Ф- айл кн ци фу с п-не ме р
8).
Ф ну к ц и я asc iic o d e о п р едля т , ч т о о н а б ы л м е н а тм и и п р и п ом щ и str2fun фо р м и реу f igurei_KeyP ressF cn о т тре х вонхд ы х а р г м у е н от в • h object п р и н и м а е с о б ы ит е к о т р о г • even tdata сатн о в и ст
т з н ач ен и о в да н н ы я р а в н ы
• в han dles п ер адст я с р тк у е т фн у кц и я guidata.
й м о м ен
а вы з ван т о б р ащ ен и :
е gcbf, т . е . указ етл т в р ем н и в ы п о л н я е тс я м п со т м у а ад н н ы
й н а э к р а н
и а р уг
и
е окн о
,
; ;
х п р и ло ж ен и я
, к о т р у и о б р а б о тк а м ож е
окн му о л ч а н и вм д у
ю в о з в ращ а
-
и с о б ы ит я ь к у а з а ет л
т бы т ю п р е д п о л а г е тс я
я о б я з а те л ь н ы м ь н а о б ъ ек т т и н фо р м а ц и т я в л се т я с рт к у о Й слюеуд щ и й
е с и м в о л
• M odifier — м ас и в яч ек , к о т р ы й м ож е с рт о к ( ' c o n t r o l 1 , ' s h i f t ' и л и ' a l t ' ) сле о нд а и л и н ес к о л ь к о фну к ц и о н а л ь н ы х к л а в и ш
а с в о х нд ы м е к п о н фд у к ц и я н а гр а фи ч е с к о
у м ас и в у
Д о п с уи т м а л ь ет р н а ит в н ы й сп о с б вы з ов а п о н фду к ц и З н а ч ен и е м с в о й с вт а KeyPressFcn гр а фи ч е с к о г о н а р т е б му ю н фу к ц и ю и л и и м я М - фа й л а . П о ч т о н фу к ц и я о б р а б о тк и с о б ы ит я в ы з ы в а е ст я с ным и а р г м у е н ат м и : п ер в ы й а р мгу е н т ес т ь к у а з а е т л то р о г о в ы п о л н я е ст , а в то р о й а р мг у е н т с о ед р ж и В с ч л уа е с о б ы ит я KeyPressF cn в то р о й а р мгу е н л ям и C h aracter, M odifier И Key. СМС Ы Л ТИ Э Х Ле О П • C h aracter — о т б р а ж е м ы
я о т не -
. ь , и ов дх
, с о б ы ит ю о с о б ы ти
е к о
.
й с п о
-
:
; т с о ед р ж а т и д о п о л н и те л ь н ;
ь он д
у и л и н ес к о л ь к о бы л а н аж ат
о а
л ав Г
13. рП о г ам м и р о вани е
с о бты и й
631 zyxwvutsrqpon
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Key — с и м в о л , есл и б ы л а н аж т а си м воль н а я и л и ц и фр о в а я к л а в и ш а , и л и с тр о к а с н аз в ан и е м к лав и ш и , н а п р и м е р : ' su b t r a c t ' лд я , ' m u lt ip ly' лд я < *> . ч Уе
т с о ед р ж и м о г о э от й с рк т у ы п оз воли т расш и ри т ь воз м ож н ост и н аш е г о п р и л о ж ен и я asciico d e. О дн а к о в н е м л д я о б р а б о тк и с о б ы ит я KeyPressFcn П смруоетд н О З ВЫ В н фу к ц и и figurel_KeyP ressF cn С Тмре я в о х нд ы м и а р г м у е н ат м и , п ри че м рт е и й (сркту а handles) и сп о ль з есту я дл я п о ч л у е н и я к у а з ет л я н а тек сот в ы й о б ъ ек т . П о э т м у м ы н е бед у м и зме н ят ь е е и н етр ф й с , а п р и куаз н и и з н ач ен и я свой свт у KeyPressFcn гр а фи ч е ск ог о окн а п р и м ен и м ю с луед щ и й сп ос б вы з ов а п о с ы лк е — сфо р м и реу м м ас и в яче к zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA {@figurel_KeyPressFcn, handles}
Е г о п ер в а я яч ей к а со едр ж и т к у а з ет л ь н а п о н фд у к ц и ю о б р а б о тк и с о б ы ти я , а в то р а я — з н ач ен и е до п о л н и те л ь н о г о а р мг у е н а т . Э от т м ас и в яч е к м ы з а ад и м в к а ч е с вт е з н ач ен и я с в о й с вт а KeyPressFcn в п онфду к ц и и asciicode_openingF cn (ли ст н г 13.2), к о т р а я а в от м а ит ч е с к и в ы п о л н я е ст я п о сл е з ап сук а п р и л о ж ен и я и п ер д в ы в о д м ег о о к н а н а э к р а н . З а м еьт , ч т о в и н с п е к от р е св о й ст в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED Property Inspector з н а ч ен и е дл я KeyPressFcn ж у е н ейд с вт и ет л ь н о , т . к . о н о и з м ен и ст я п о сл е з ап сук а п р и л о ж ен и я .zyxwvutsrqponmlkjihgfedcbaZY ! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 13.2. Мицродвфа н я пицнук офд я a s c i i c o d e _Op e n i n g Fc n
function asciicode_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObj ect; % Су щ ю у д е л
ю ск о р т
% зи н е ч а н
у м ы дл и в а б о
е мв и с а
а у т к у р т с
и дл
я ук в о н а т с
р с уе л т а з к
% KeyPressFcn и ды н ь л е т и н л о п
м о т н е м у г р а
и св т с й о в м н а пи ц к н у ф д о
а KeyPressFcn в ю ок т о б а р б
м с о со р у т к у р т
й ды н а
и и т ы б о с
я
х инежолирп
я
set(handles.figurel, 'KeyPressFcn', {@figurel_KeyPressFcn, handles}) guidata(hObject, handles);
Те пе р С т е ЛЯ
ь О Н Д О Х В
Й а ргу м е н
Я С т ру к т у ро
то л ь к о чт о р аз о б р али лд я п р о в е р к и р а б о т к и н а ж ит я к лав и ш и
т e ve n t da t a п о д уф н к ц и
й С ПЛЯМ О
и fi g ure l _ Ke y P re s s F c n В Я
И C ha ra c t e r, M o di fi e r И Key, С Ы СМ
Л к о т о ры
. П о к а м ож н о в ы в ес т и и х з н ач ен и я в к о м а н дн о е о к н ы п р и ло ж ен и я , а п о т м ч ес т у ь и х в а л г о р и тм е обработ . Д л я э от г о п рост о до б а в ь т е в п о нфд у к ц и
е з н а че н и f i g u r e i K e y P r e s s F c n п ри с в а и в а н и н ым , н а п р и м е р , c h a r a c t e r , m o d i f i e r И key НИ (ЛИТ С
й по ле
й н е к о т о ры Г 13. 3).
м п е ре ме н
-
х М Ы
о ю -
632
аЧс т ь
III. Преин лояж
с ги черсафикм
zyxwvut
и нтей рс фо м
д да ны х с т рку ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML e ve n t d a t a в пицнук офд и zyxwvutsrqponmlkjih Л ист ин г 13.3. Ввоы figurel KeyPressFcnzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ch=eventdata.Character mdf=eventdata.Modifier key=eventdata.KeyzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П р и л о ж ен и е asciico d e р а б о та е т ат к ж е , к а к и с о с та н да р тн ы м сп о с бо м вы з ов а п о нфд у к ц и и о б р а б о тк и с о б ы ит я KeyPressFcn, о дн а к о ет п р ь о дв х н о й а р мгу е н т even tdata п онфду к ц и и figurel__KeyPressFcn со едр ж и т Д О П робн у ю и н фо р м а ц и ю о с о б ы ит . И с п о л ь з йу т е е е дл я суртан ен и я ю у с л де щ е г о н е до с а т к а п ри лож ен и я — п р и н аж ит и н а к лав и ш и < Ctrl> , и бе з с и м в о л ь н ы х к лав и ш в ы в о ид ь т с я н и ч ег о н е до л ж н о , а п р и сочает н и и о нд о й и л и н ес к о л ь к и х и з н и х с с и м в о л ь н о й к лав и ш е й о б э от м в ы ад ес т я с о б щ ен и е , н а п р и м е р : M sh ift + ct ri+ h = 8". О ч е в и дн о , ч т о есл и с и м в о ль н а я к лав и ш а н е б ы л а н а ж та , т о ртебсу я вы й т и и з п о дф н у к ц и . И н а ч е се улд т п р о в е р и ть , б ы л а л и н аж т а о дн а и л и н е ск оль к о фн у к ц и о н а л ь н ы х к лав и ш < Ctrl> , и , т . е . в ы яс н и т л ди н у м ас и в а яч е к mdf, и з в леч ь и з н ег о срто к и с н а з в а н и ям и н аж ыт х к ла ви ш и с фо р м и р о в а т ь ет к с о в ы й р е з л у ь ат . Оид н и з воз м ожн ы х в а р и а н то р еали з ац и и э то г о а л г о р и тм а п р и в ед н в л и сит н г е 13.4.
function figurel_KeyPressFcn(hObject, eventdata, handles) % Се а в ы т и ч
м оы м е а ж р б о т
й н а эн а р к
е со в м и
л
ch = eventdata.Character; % Се а в ы т и ч
м мис а
% фм ы н ь л а н о и ц к н у
в як е ч
, си щ а ж р е д о
и км а ш и в а л
й ск о р т
и с нм ы т а ж
и
и
mdf = eventdata.Modifier; % Се а в ы т и ч
м со в м и
л кш и в а л
и
key = eventdata.Key; % Па к р е в о р
, бл ы
а л и нт а ж
а са н ь л о в м и
я кш и в а л
а
if length(ch) == 0 % Са н ь л о в м и
я кш и в а л
а нт а ж
return
а н е ба л ы
end % Пи н е ч у л о
е ASCII- д о к
code = double(ch);
а сл о в м и
а
, ви д о х ы
м и з пи ц к н у ф д о
и
ь в
Глав
13. Прогамивне
событий
% Пи н а в о з а р б о е р
е чг о в л с и
о зи н е ч а н
я в ск о р т
633zyx
у
strcode = num2str(code); % Си н а в ы т и ч
е сг о м и ж р е д о
о тг о в т с к е
о от к е ъ б
а Static Text
str = get(handles.txtWin, 'String'); % Па к р е в о р
, бл ы
а л и нт а ж
а фа н ь л а н о и ц к н у
я кш и в а л
а
if isempty(mdf) % Бл ы
а нт а ж
% Фе у р и м р о
а тк ь л о
о са н ь л о в м и
м ск о р т
у дл
я кш и в а л
я вд о в ы
а
а
str = [str, ' ', ch, '=', strcode]; % Ви д о в ы
м ра т ь л у з е
т
set(handles.txtWin, 'String1, str); % Зе а ш р е в а
м рт о б а
у пи ц к н у ф д о
и
и нк ь л о к с е
о фы н ь л а н о и ц к н у
return end % Бл ы
а нт а ж
а он д
а ил
х ки в а л
ш
switch length(mdf) case 1 % Бл ы
а нт а ж
а он д
а фа н ь л а н о и ц к н у
я ка ш и в а л
, се а в ы т и ч
м е е ни н а в з а
е
fkey = mdf{l}; % Фе у р и м р о
м ск о р т
у дл
я вд о в ы
а
str = [str, ' ', fkey, '+', key, '=', strcode]; case 2 % Бл ы
и нт а ж
ы дв
е фы н ь л а н о и ц к н у
е ки ш в а л
, се а в ы т и ч
м и х ни н а в з
я
fkeyl = mdf{l}; fkey2 - i mdf{2}; % Фе у р и м р о
м ск о р т
у дл
я вд о в ы
а
str = [str, ' ', fkeyl, '+', fkey2, '+', key, '=', strcode]; case 3 % Бл ы
и нт а ж
ы тр
и фы н ь л а н о и ц к н у
е ки ш в а л
, се а в ы т и ч
м и х ни н а в з а
fkeyl = mdf{l}; fkey2 - mdf{2}; fkey3 - mdf{3}; % Фе у р и м р о
м ск о р т
у дл
я вд о в ы
а
str = [str, ' ', fkeyl, '+', fkey2, '+', fkey3, '+',...
я
634
аЧс т ь
III. Преин лояж
с ги черсафикм
zyxwvu
и нт е й рс фо м
ke y, ' = ' , s t r c o d e ] ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK end % Ви д о в ы
* . м а т ь л у з е р
т 1
set(handles.txtWin, 'String ,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI str);
С ю л уе д щ и ит
й р а з де л п о с в ящ е е ButtonDownFcn, к о т р о
н п р и м ер е п р о и сохид
у п р и л о ж ен и я т п р и щ елч к
, и сп о ль з юу щ ем е м ы ш ь
у со бы ю п о о б ъ е к ут
.zyxwvutsrqpo
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA е ButtonDownFcn
т и ыб о С Ос
и сжлуа т дл я в ы в о д а гр а фи ч е с к о й и н фо р м а ц и и н а э к р а н н о р еали з о в ат ь и о б р а нт у ю з а дч у — п о з в о л и т ь п о л ь з о в а те л ад н н ы е щ ел ч к о м мы ш и п о о бласт и о с ей , сраз у ж е от браж ат и з ан о си т ь в м ас и в ы . В к ач есвт е п р и м ер а н ап и ш е м п р и ло ж ен и в ан и я м н о г уо л ь н ы х о б л а с ет й п р и п ом щ и мы ш и , в к о т р о ш и п о ося м п р и в о ди т к п о яв лен и ю н ов й в ер ш и н ы (м а р к е р а е е с п реыд щу е й о тр е з к о м .
т и ыб о С
е ButtonDownFcn осе
Дл
я то г с о з ад н и п р и в о ид
о ч то б ы п о н ят я бо ле е п ростг т к п о яв л ен и
ь сп о с б о б р а б о тк о п р и ло ж ен и я ю м а р к е р а .
В с р ед е G U I D E н а з а г о т в к axes. З а д н н о е п о му о л ч а н и н аш е м п р и м ер е н е ж е л а те л ь н о л ы о с е й и з м е н я тс . С л е до в а те л ь н о XLimMode и YLimMode в з н а ч е н и до б а в л я т ь м арк е р н а оси , п о э т м з н ач ен и е 'a d d 1 . П р о де л а й т е Inspector. П е р й ди т е к п о дф н у к ц и ButtonDownFcn о сей то р о й бы л п р о и з в ед С в о й с вт фо р м а ц и е ди н а ни
, о дн а к
о воз м ож ю з адв ат ь ь и х н а э к р а н е е лд я р и с о м щ ел ч о к мы ) и со еид н ен и ю
й и с о б ы ит , в к о т р о
я ButtonDownFcn, н а ч н и т е с м щ ел ч о к мы ш ь ю п о о ся м
е окн а п р и ло ж ен и я р а з м е с ти т е о с и с и м ен е м ю а в то м а ти ч е с к о е м а с ш та б и р о в а н и е о се й в , т . к . п р и п о яв л ен и и п ер в о г о м ар к ер а п р ед , и м е т см ы с л су та н о в и т ь с в о й с вт а о се й е manual. К а ж ды й щ елч о к мы ш ь ю до л ж е н у с в о й с тв о осе й N extP iot до л ж н о и м ет ь э т и ед й с в т и я в и н с п е к то р е свой ст в zyxwvutsrqponml Property
и axes_ButtonD ownFcn о б р а б о тк . В н е й ртебсу я о п р едл и т ь к о р ди н а т н щ елч о к мы ш ью , и в ы в ест и в н е е м а р к е р
о осе й c u r r en t P o in t со едр ж и т м а рт и ц й о п о л ж ен и и к у а з ет л я мы ш и в м о ен т о с ей . П р е дп о л а г е тс я , ч т о ос и рт емх р н , п ер п ен ид клуяр н о й э к ран у . Ли н и я п р о х ди
у р аз м ер т щ ел ч к ы и то ч к т ч ер
и ы то ч к и .
с о б ы ти
я , в к о
-
а дв а н а рт и с и н а в с и е мт е к о р а н ао х ид с т я н а ли з оси , п ер с к а я
л ав Г
13. Пр о г ам м и р о вани е
с о бты и й
635zyxwvutsrqpo
х то ч к а х (ри с . 13.1), к о р ди н а т ы котры х р ха н я т д осе й в дву е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
п ар л е п и п е с я в м арт и ц
хЪ
уЪ
-
zbzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
*f /У zf П оск оль к у п р и л о ж ен и е п р е дн а з н а ч е н о лд я о п и с а н и фи ргу , т о ос и вдмуер н ы и , с л едо в а етл ь н о , то ч к (xb, yb, zb) и (х/ , yf, zf) с о в п а д ю т . Бо ле е то г , рт еь н а до б и ст я .
я г е о м е рт и и п лоск и х и с к о р ди н а т м и я к о р ди н а т а н е п о -
(xb, yb, zb) Axf,yf,zfy
Рис
И так
к о р ди н а т м арк е
. 13.1. К о о р д и н а т
, ГОЛрИа Т
М П Н Оуф д К Ц И
ы то ч к и
, хр а н я щ и е с
я в C u r r e n t P o in t
И a xe s_ B u t t o n D o wn F c n ОСТП р
Й — ЮИЫСаТВЧ
г 13.5. Обработк
а событи
я ButtonDownFcn осе
е мц и р т а
ы с км а т н и д р о
и тк ч о
Coord = get(hObject, 'CurrentPoint1) % Ои н е л д е р п
е ас и ц с б
х = Coord(2, 1); у = Coord(2, 2); % Во в ы
д мр е к р а
а
plot(x, у , 'о' )
ы и от а н и д р
ы
и
:
й zyxwvutsrqponmlkjihgfedcb
function axes_ButtonDownFcn(hObject/ eventdata, handles) % Пи н е ч у л о
Я
, н а п р и м е р , и з в то р й с рт о к и м а тр и ц ы , и в н е е в ы в о ид ст я г 13.5).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
р (ли ст н
I Листин
ы то ч е к
636
С орха н и т п о ося
аЧс т ь
е п р и л о ж ен и
е с и м ен
м п р и в о ди
III. Преин лояж
с ги черсафикм
м mypiot и з ап сиут ю м а р к ер а .
т к п о яв лен и
е ег о — щ елч о
к мы ш ь
В ер н ем с я теп ер ь к и оснхд о й з адч е ри со в ан и я м н о г уо л ь н о й о б л а с ит п ер в о м в о з н и к н о в ен и и с о б ы ит я ButtonDownFcn осе й м ы до л ж н ы м ар к ер , а п р и к аж од м п о ю с луед щ е м н е о б х ид м о с о е ид н я т ь е щк т у ш ин у с п р еы д щ у е й о тр е з к о м , о б р аз у я гр а н и ц у м н о г уо л ь н и к а в и д м о с ит , п р есдатв л ен и е в се й г р а н и ц ы о нд и м гр а фи ч е с к и м о б ъ е к от о п р е дл н н ы е п р е и м щ у е с вт а п о с р ав н ен и ю с н а б о р м о б ъ е к то в дл с от р н ы м н о г уо л ь н и к а (та к и о к аж сет я в п о с л е д вт и ) . П р и з ап сук л о ж ен и я м ы и н и ц и а л и з и реу м ли н и ю (о б ъ ек т Line) п р и п о м о щ и х lin e и суатн о в и м е е с в о й свт а XData и YData в з н ач ен и я п ыс т у "Окетыъ б Rectangle u Line, бк о- л ы хмсе и дмы иагмр " гавы л (с.м р.азд П р и в о з н и к н о в ен и к эит м м ас и в а к о в л о м а н о
и к аж од г
о с о б ы ит у и о р ид н а т
м абсц и с й л и н и
zyxwvut
и нтей рс фо м
я ButtonDownFcn осе у н ов й то ч к и , увели ч и в а
й е д бу
ю . П р
и
в ы в ес т ю в ер . П о все м ад с я к а ж од е п ри н фу к ц и м ас и в о 9).
м до б а в л я т я ч и сл о о рт е з
и й т й и
в zyxwvutsrq ь -
.
В п р еы д щ у е м р а з де л е м ы обжсаудл и сп ос б и н и ц и али з ац и и в п о нфду к ц и и о б р а б о тк и с о б ы ит я OpeningFcn, к о т р о е в о з н и к ае т п о сл е з а п с ук а п ри ло ж ен и я и п ер д п о яв л ен и е м ег о н а э к р а н е . С о з да й т е в п о н фд у к ц и и m ypiotopen in gF cn л и н и ю , сорхан и в к у а з ет л ь н а н е е в п о л е Line сркту ы han dles (н е з а бьду т е с орха н и т ь и з м ен ен у ю р с к ут у han dles) и и з м ен и т е о б р а б о тк у с о б ы ит я ButtonDownFcn осе й Н (ЛИТИ С Г 13.6).zyxwvutsrqponmlkjihgfedcbaZY •
*
Ш
Л ист ин г 13.6. Иница л иза ц Bu t t o n D o wn F c n О с е
я оетбък а Line и обра от к а с отбы и я й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• ,:..;;...:.:..;:,:2Ш ::Ш Ш zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Ш zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED :
function varargout = myplot_OpeningFcn(hObject, eventdata, handles) varargout{1} = handles.output;
% Си н а д з о % и км ы л г у р % ср у т к у р т
е ли н
и с пм ы т с у
и мм а р е к а
и мм а в и с а
и ды н а
и в вх а н и ш р е
х
, зс и п а
ь ул е т а з к
я н а не
е в пл о
ы handles
handles.Line = line('XData', [ ], 'YData1, [ ], 'Marker', *o'); % Си н е а р х о
е мо н а в о р и ц ф и д о
й ср у т к у р т
ы handles
guidata(hObject, handles); function axes_ButtonDownFcn(hObject, eventdata, handles) % Пи н е ч у л о
е мцирта
ы с км а т н и д р о
и тк ч о
Coord = get(hObject, 'CurrentPoint') % Ои н е л д е р п
е ас и ц с б
х = Coord(2, 1); y=Coord(2,2);
ы и от а н и д р
ы
и
е Line
л ав Г
13. рП о г ам м и р о вани е
% Си н а в ы т и ч
с о бты и й
е ас и ц с б
с пи щ у д ы е р
х те ч о
637zyxwvutsrq
к
X = get(handles.Line, 'XData'); % Си н а в ы т и ч е оа н и д р т пи щ у д ы е р х те ч о Y = get(handles.Line, 'YData'); инелвабоД е ка н и д р о т но в й тк ч о и X = [X х ] ; Y = [Y у ] ;
к
% Ми ц а к и ф д о я зи н е ч а н й ст с й о в в XData и YDatazyxwvutsrqponmlkjihgfedcbaZYXWVUTS лин 1 set (handles.Line, 'Xdata , X, 'Ydata\ Y)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
Т еп р ь п р и л о ж ен и е myedit п о з в о л яе т ри соват ь ло м ан у ю ли н и ю , н о и м е о ид н щ с у ев с т н ы й н е од с а т к — п р и п о п ы кт е з а м к н ту ь гр а н и ц у м н ог г уо л ь н и к а н и ч ег о н е п р о и сохид т . Т о ч н о та к ж е н е усаедт я р а з м е с ит ь н ову в ер ш и н у н а ж у е н ари сован н о й гр а н и ц е . О ч ев и дн о , ч т о п р и щ елч к е мы ш ь п о ли н и и в о з н и к а е т с о б ы ит е ButtonDownFcn, к о т р о е п ок а н е з а п р о гр а м и рован о .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
т об ы и С
т ю ю -
е ButtonDownFcn л zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ин и
Осн овн о
е И Ч ЛТО
е В п рограм м и рован и
п о с р а в н ен и ю с те м ж е со бы ит е м о с ей з а го т в к а п р и л о ж ен и я н е соедрж и т о б ъ ек сл е з а п с ук а п р и л о ж ен и я . П о э т м у н е о б х ди м о фа й л о в с а м о с т яел ь н о с о з ад т ь з а го л в о з а п р о гр а м и р о в а т ь е е и , в о - вотр ы х , св яз ат з ове м п о н фд у к ц и ю о б р а б о тк и с о б ы ит LineButtonD ownF cn и бе д у м с ч и ат ь , ч т (та к ж е к а к и с ат н да р нт ы е п о нфд у к ц и ) го р и т м н фу к ц и и Line_ButtonDownFcn н ButtonDownFcn осе й (ли ст н г 13.7).
и С о б ы ти
, с о т и
я ButtonD ownF cn ДЛ
т в то м , о н , в о - п ерв ы х
Я ЛИИ Н
И
, ч т о в сред е G U ID E т ли н и ю а с о з а д ес т я то л ь к о п о, в р е да к то р е М к с о в т ес ю у щ е й п о н фд у к ц и и и ь э т у п о н фд у к ц и ю с л и н и ей . Н а И я ButtonDownFcn ДЛ Я И Н ЛИ о он а и ме т тр и в о хн д ы х а р гм у е н т а : h object, even tdata и h an dles. л А е о лт и ч а е ст я о т о б р а б о тк и с о б ы ит я
function Line_ButtonDownFcn(hobject, eventdata, handles) Coord = get(handles.axes, 'CurrentPoint') x = Coord(2, 1); у = CoordCL, 2) ; X = get(handles.Line, 'XData1) Y = get(handles.Line, 'YData1) X = [X x] Y = [Y y] 1 1 set(handles.Line, 'Xdata , X, 'Ydata , Y)
638
аЧс т ь
Т еп р ь н ад о с в яз а т ButtonDownFcn л и н и ис ам а ячее инечанЗ е в е тл
III. Преин лояж
с ги черсафикм
zyxwvu
и нтей рс фо м
ь п о н фд у к ц и ю Line_ButtonDownFcn с , дл я ч ег о св о й свт о ли н и и ButtonDownFcn саутн о в и к { @Line_ButtonDownFcn, handles }.
со бы ит е
М ы о жб с а л у д и вы з о в п о н фд у к ц и и о б р а б о тк и с о б ы ит я п р и п ом ощ я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд "Как вв азюятыс укн ци ф дпо т окоаибр стийы"б о эйто О п ер ац и ю с в яз ы в а н и н и и в п онфду к ц и в с ети и с л и с ит н го 1ист ин
f
h
u
a
n
n
c
d
t
l
i
e
o
n
s
.
m
o
% Си н а д з о
y
u
t
p
•
o
u
t
t
- .
_
_
=
е ли н
% и км ы л г у р
•
O
.
p
e
h
-
n
O
-
i
b
,
•
n
j
.
g
e
и с пм ы т с у
и мм а р е к а
% ср у т к у р т
-
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG LineJ B utzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP t o nDo wnFc n с с обты ие м
ь ицнку пфод
-
l
p
и к ау з г.авы л
я е су л д т в ы п о л н и т ь ср аз у п о сл е с о з ад н и я о б ъ ек т а ли и mypiotOpeningF cn, к о т р а я м ож е т р е а л и з о в а ть с я в со т м 13.8.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
г 13.8. Сзвя У- "
м м в zyxwvuts
.
.
F
c
c
t
n
(
h
O
b
j
e
c
t
.
:
,
e
-
v
•
e
n
t
d
a
t
a
,
h
a
n
d
l
e
s
,
v
a
r
a
r
g
i
n
)
;
и мм а в и с а
и ды н а
и в вх а н и ш р е
, зс и п а
х ь ул е т а з к
я н а не
е в пл о
е Line
ы handles
handles.Line = line('XData', [ ], 'YData1, [ ], 'Marker1, 'o') % Сз я в
ь си т ы б о
я ButtonDownFcn ли н
и с пе и ц к н у ф д о
й Line_ButtonDownFcn
set(handles.Line, 'ButtonDownFcn1, {@Line_ButtonDownFcn, handles})zyxwvutsrqpon % Си н е а р х о
е о н ма в о р и ц ф и д о
й ср у т к у р т
ы handles
guidata(hObject, handles);
П осл и з воль н ы Р а с м о рт е н н ы м ы сль о б р ащ ен и
С о з да н и бе
е п р о де л а н н ы
х и з м ен ен и е м н о г уо л ь н ы
е з а м к н ыт у е вы ш , ч т о п р и л о ж ен и я к сред
е в и з ау л ь н о г
е прил еожни ы GUIDE
з сре д
В к а ч е с вт е п р и м ер п р и в о ди т к п о яв л ен и п аро й о се й р а с п о л ж е н ди а г р а м ы н ек о т р ы В осн овн о гр а фи ч е с к о свой ст р а б о тк
й н фу к ц и е окн о в е с ул д и с о б ы ти й
е сп ос б я с гр афи ч еск и
й п р и л о ж ен и е о б л а с ти
е mypiot п о з в о л яе .
ы п р о гр а м и р о в а н и
т ри соват
ь п ро
я с о б ы ит й н а в о дя м м о гу т б ы т ь с о з ад н я G U ID E.
м и н е рт ф й с о о п р о гр а м и р о в а н и
-
т н а ы бе з
й с GUI
а с о з а ди м фа й л - н фу к ц и ю sim piegui, в ы з о в котро ю окн а п р и л о ж ен и я с двму я п ар м и о с ей . П о д к аж од а кн оп к а П о с рт о и т ь лд я в ы в о д а н а н е е с от л б ц е в о х да н н ы х (р и с . 13.2). и sim piegui е сулд т р а з м е с ит , ос и и к н о п к и с з адн н ы м т з адт ь ет , к о т р ы е с о ед р ж а . С ам и п о нфд у к ц и и р а з м е щ а ю ст
ь о п е р а то р ы и с в о й с вт а м и т к у а з а ет л я в о нд о
, со з адю щ и . С р ед и н а п о нфд у к ц и м М - фа й л
й й й
е и э ит х и об е п осл е
л ав Г
13. рП о г ам м и р о вани е
НОВ С О
. М
Й Н фу К Ц И И
тсемв
639 zyxwvutsrqpon
с о бты и й
е с имяцкнуфдоп
ы П ИР Д ОВ
М И Т НС Л
, ынежбас
И s i m p l e g u izyxwvutsrqp
Г 13.9 фаЙ -Л Нфу К Ц И
й подрбным
и кимяратне о
.zyxwvutsrqponmlkjih
I ф simplegui
1г
ВЕ
•
• • '
З Ш
I
1
0.9
0 9
0.8
0.8
0.7
07
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0 1zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
0
п
0
0.2
0.4
По с р т о и
0.6
0.8
1
0
ь
0.2
0.4 По с р т о и т
сиР
. 13.2. н к О
о и н е ж о л ирп
0.6
0.8
1
ь
я simplegui
function simplegui % Оа н в о н с
я фя и ц к н у
% Ул е т а з к
, са щ ю а д з о
и н а вс
% Си н а д з о
е гг о к с е ч и ф а р
я он к
е ги к с е ч и ф а р
о пи н е ж о л и р
е от к е ъ б о он к
а бе
з мне
я и ег ы зс т я с о н а ю с зо к в о л г а
о кт н е о п м о
я в ср у т к у р т
ы у handles
м "simplegui"
handles.F = figure('MenuBar', 'none1, 'Name', 'simplegui', ... 'NumberTitle', 'off'); % Сз я в
ь си т ы б о
я CloseRequestFcn с пе и ц к н у ф д о
й Close
set(handles.F, 'CloseRequestFcn1, {@Close,handles})
640
аЧс т ь
III. Преин лояж
с ги черсафикм
и нт е й рс фо м
zyxwvut
%zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Си н а д з о е ло в е й пр а ы ое с й handles.Al = axes('Position', [0.05 0.2 0.4 0.7]); % Си н а д з о
е по в а р
й пр а
ы ое с
й 1
handles.A2 = axes('Position , [0.55 0.2 0.4 0.7]); % Си н а д з о
е ло в е
й кк п о н
% с пе и ц к н у ф д о
и "Пьтиортсо
" и сз я в
ь е е си т ы б о
я Callback
й PlotBtnl
handles.PlotBtnl = uicontrol('Style', 'pushbutton', 'Units', ... 'Normalized1, 'Position', [0.05 0.05 0.3 0.05], ... ^^^J^tring' , ' тиортсоП % Си н а д з о
е по в а р
ь ', ' Callback', {@PlotBtnl, handles}) ;
й кк п о н
% с пе и ц к н у ф д о
и "Пь т и о р т с о
" и сз я в
ь е е си т ы б о
я Callback
й PlotBtn2
handles.PlotBtn2 = uicontrol('Style', 'pushbutton1, 'Units', ... 'Normalized1, 'Position', [0.55 0.05 0.3 0.05], ... 1
, 'Callback1, {@PlotBtn2,handles});
'String', 'Пьтиортсо
function PlotBtnl(hObject, eventdata, handles) % Пи ц к н у ф д о % Деал
я ок т о б а р б
и си т ы б о
м тм и щ у к е
и лы в е
я Callback ло в е
е ос
й кк п о н
и
и
axes(handles.Al) % Вм и д о в ы
, н а ни
х ву н ь л а к и т р е
ю су в е ц б л о т
ю дм а р г а и
у вр о т к е
а
bar(rand(I, 4)) function PlotBtn2(hObject, eventdata, handles) % Пи ц к н у ф д о % Деал
я ок т о б а р б
и си т ы б о
м тм и щ у к е
и пы в а р
е ос
я Callback по в а р
й кк п о н
и
и
axes(handles.А2 ) % Ви д о в ы
м н а ни
х г уньлатнозиро
ю су в е ц б л о т
ю дм а р г а и
у вр о т к е
а
barn(rand(1, 4)) function Close(hObject, eventdata, handles) % Пи ц к н у ф д о % Во в ы
я ок т о б а р б д мг о н ь л а д о
и си т ы б о о дг о в г о л а и
q = questdlg('Зт ы р к а % Пк р е в о р
а вр о б ы
if strcmp(q, 'Д' а
я CloseRequestFcn он к о он к
ь п' еинежолир а пл е т а в о з ь л о )
а пи н е ж о л и р
а с пе и н е д ж р е в т д о , 'simplegui', 'Д' а
я
я
м зи т ы р к а , 'Н' те
я , 'Нет')
;
л ав Г
13. Пр о г ам м и р о вани е
с о бты и й
% Пл е т а в о з ь л о % уе я л а д
ь пи д р е в т д о
м он к
о пи н е ж о л и р
л зи т ы р к а
641 zyxwvutsrqp
е пя и н е ж о л и р
,
я
delete(handles.F) endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
втсйо С рп и прогамивн П р о гр а м и р о в а н и в л еч н и с в о й с вт ес л д а з воли л св о й ст гр а м и р о в а н и
р е а вП и н ы
а воткеъбо
, полезны
е и ситыбо
й
е с о б ы ит й раз ли ч н ы х о б ъ е к от в м ож е я р яд а и х с в о й с вт . Н а п р и м е р , в ы ш е м ы р а с м о рт ел а C urren tP oin t осе й дл я п очлуен и я к о р ди н а н щ ел ч о к мы ш и . С в о й с вт о C u rren t ch aract er о н а м о п р е дл и т ь си м во л н а ж от й к лав и ш и в гр а фи ч е с к и х о б ъ е к то в , к к о т р ы м п р и о хд ст и п р и ло ж ен и й с гр афи ч еск и м и н етр ф й с о м
е обра бот к
и стиыбо
zyxwvutsrqponmlkjihgfedcbaZYXWV
т п о тр е б о в а т ь п ри и и сп о ль з о в ан и е т то ч к и , в к о т р о й бы л гр а фи ч е с к о г о окн а по . П ер ч и сли м ще е р я д я п р и б е га т ь п р и п ро .zyxwvutsrqponmlkjihgfedcbaZ
й
Е сл и о б р а б о тк а н ек о т р о г о с о б ы ит я з ан и м ае т д о с та о ч н о м н ог о в р ем н и т о и ме т см ы с л п о з а б о ит ь с я о то м , к а к н а ег о в ы п о л н ен и е п о в л и яе т воз н и к н о в ен и е н ов г о с о б ы ит я . К аж ыд й гр а фи ч е с к и й о б ъ ек т и ме т дв а с в о й а з н а ч ен и й котры х п о з в о л яе вст а BusyAction и i n t e r r u p t i b i e , суатн о в к в ы брат ь раз ли ч н ы е сп о с б ы с о гл а с о в а н и я с о б ы ит й . Д л я з а п р е т а п ре ы ва н и я и с п о л н яем о г о с о б ы ит я о б ъ ек т а е с ул д т с у ат н о в и т ь ег о с в о й с в т i n t e r r u p t i b i e в з н ач ен и е 'o ff1 . Т о гд а в ы п о л н ен и е о б р а б о тк и с ю л уе д щ е г с о б ы ит я о п р е дл я с т я з н а ч ен и е м с в о й с вт а BusyAction. Е сл и о н о п ри н и м ае з н ач ен и е ' c a n c e l 1 , т о о б р а б о тк а сю л у е д щ е г о с о б ы ит я о мт е н я е ст , а сел 1 queue' (п о ум о л ч а н и ю ) , т о ю сулед щ е е с о б ы ит е сатв и ст я в о ч ер ьд .
, т о о т и
П о му о л ч а н и ю с в о й с вт о i n t e r r u p t i b i e п р и н и м а е т з н ач ен и е ' o n 1 , п р и э от м о б р а б о тк а с о б ы ит я м ож е т п р е ы в а ьт с я п р и н али ч и и в в ы п о л н яем о й н уф к ц и и ОДНО Й И З к о м а н д dr'awnow, figu re, getframe, Л И И pause. Д л я р а з л и ч н ы х о б ъ е к от в и м ею с т я св о и о с б е н н о с т и п р и и сп о ль з о в ан и и св о й ст в i n t e r r u p t i b i e и BusyAction, к о т р ы е п р и в е дн ы в сп рав о ч н о й с и ем т е (см . о п и сан и е св о й ст в гр а фи ч е с к и х о б ъ е к от в в раз д .zyxwvutsrqponmlkjihgfedcbaZYXW M ATLAB: Handle Graphics Property Browser и M ATLAB : Creating Graphical User Interface: Interrupting Executing Callbacks).
642
аЧс т ь
е форм
Из м е н и п к у а з е тл е м ож е
Ти ро
III. Преин лояж
ы крус о
я мы ш
и з а д ес т ь з н а ч ен и я
т п р и н и м а т
а я с в о й свт о :
О c r o ssh a ir — п ер к есит е
с ги черсафикм
zyxwvuts
и нтей рс фо м
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
м P oin t er гр а фи ч е с к о г
о окн а
, к о т
;
• arrow — о б ы ч н а
я сртелк
П watch — п ес о ч н ы
е ч ас ы
• ibeam — в ер ит к а л ь н ы
а (п о ум о л ч а н и ю )
;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
; й к ру с о р
.
П ер ч н ь в се х в о з м о ж н ы х з н ач ен и й п р и вед н в сп равоч н о й с и ем т MATLAB. З н а ч ен и е custom п о з в о л яе т о п р е дл и т ь с о б вт е н н у ю к в а рд н т у п и к от г р а м у р аз м ер о м 16 п и к село в лд я к р ус о р а мы ш и в м а тр и ц е и з адт е е в к ач есвт е з н ач ен и я с в о й с вт а PointerShapeCD ata. Е ди н и ц а о з н ач е т ч ре н ы й ц в ет , дв о й к а — б ел ы й , а п р о з р а ч н о с т ь п и к с ел а до с ит га ест я с у ат н о в к о NaN в с о вт ес юу щ и е э л е м н ыт м а тр и ц ы . П о с л е до в а те л ь н о с т ь к ом ан д п р и в едн н а я в л и с ит н г е 13.10, п р и в о ди т к крсуо у мы ш и в в и ед к в а д р тн о п роз рач н о й р а м к и .
• Л ист ин ра м к
-
•
г 13.10. Ген ра иц
• я уакз т е л
я м ш ы
е ю ь й , й
• и в вид
е квард т но
й проз а ноч
й
и
Р = o n e s( 1 6 ) ; М Р (2:15, 2:15
) = N aN ;
s e t ( g c f ,
' P o i n t e r ' ,
'c u st o m ')
s e t ( g c f ,
' P o i n t e r S h a p e C D a t a 1 , MP)
т д о с та о ч н о п рост о н ап и сат С р ед а G U I D E п о з в о л яе в е дн и я с о б вт е н н ы х и с л е од в а н и й . О с н о в н о е п р е и м щ у е с вт с р ед ы G U I D E п о с р ав н ен и ю с о м н о ги м и рд г и у м и п р о гр а м и р о в а н и я со ти т в то м , ч т о р а з р а б о тч и х н фу к ц и й M ATLAB, к о т р ы боль ш о й н або р го т в ы р еш ен и я ш и роког о с п е к рт а з адч . Ф ну к ц и , п р едн а з н а ч ен н ы ш и х в ы ч и слен и й и в и з аул и з а ц и и да н н ы х , бы л и о п и сан ги . К а к уж е пу о м и н а л о с ь , фну к ц и , н а п р а в л ен н ы е н з адч , с о б р а н ы в п а к е ыт , н а з ы в а ем ы е Toolbox. И с п о л ь з о в а н и Toolbox п о с в ящ ен а слюеуд щ а я ч аст ь к н и ги .
ь п р и ло ж ен и
е дл я п р о о в и з аул ь н о с о в р ем н н ы м и яз ы к ам к м ож е т и сп оль з оват е р еа л и з юу т а л г о р и тм е дл я п р о сетй ы в п ер в о й ч аст и к н и а р еш ен и е с п ец и а л ь н ы ю н ек о т р ы
й и ь ы х х
H
A
C
T
b
l
И С П О Л Ь З О В НА И TOOLBOX И Р ШЕНИ П Р Н Ы ЛИ К Д А Х АЗ ДА
V
Е Ч
Е
л Га в
а 1 4
Р е ш ни м а т е м а т и еч с о к
е з а д
ч й физ к
и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
Б о л ь ш и н с тв о з ад ч м а е нх и к и , те п л о п р о в о дн о с ти , ечт н и я ж и дк о с и т , э лек тр о с та и к и и э л ек рт о ди н а м и к и св осятд я к ди ф ер н ц и ал ь н ы м урав н ен и я м в ч а сн т ы х п р о и з в о дн ы х в о б л а с ят х сло ж н о й фо р м ы . Д а н н а я гл а в а п о с в ящ ен а о п и сан и ю в о з м о ж н о с ет й Partial Differential Equations Toolbox (PD E Toolbox), п р едн а з н а ч ен н о г о дл я реш ен и я гр а н и ч н ы х з ад ч лд я ди фер н ц и аль н ы х р уа в н е н и й в ч а сн т ы х п р о и з в о нд ы х в в дм у е р н ы х о б л а с ят х м ео т д м т п р и л о ж ен и е pdetooi к о н еч н ы х э л е м н от в . В со сат в да н н о г о Toolbox вохид с гр афи ч ес к и м и н е тр ф й с о м п о л ь з о в а те л я , и с п о л ь з о в а н и е кот рог о н е тре еб у т г л бу о к г о п о н и м ан и я м ео т д а к о н еч н ы х э л е м н от в . К р о м е то г о , zyxwvutsrqponmlkj PDE Toolbox о б л а д е т н абор м нфу к ц и й , п о лез н ы х п р и н ап и сан и и с о б вт е н н ы х п р и л о ж ен и й лд я р е ш е н и я гр а н и ч н ы х з ад ч м ео т д м к о н еч н ы х э л е м н от в . С ю л еу д щ и й р а з де л п о с в ящ е н о с н о в а м р а б о т ы с pdetooi.
р По с т
й прим е
С р ед а pdetooi п о з в о л яе ди ф е р н ц и а л ь н о г ст и р а з б и е н и е о бласт чл уа ю щ ю у с я с и ем т П о л ь з о в а те л ь од л ж е гр а н и ч н ы е с ул о в и я в и я . И з чуи т е о сн о в ст и в п р о с т й о б л а с ти
р т з адт
ь г е о м е рт и , гр а н и ч н ы
ю о б л а с ти , ит п и к о э ф и ц и ен т ы о руа в н е н и я е и н ач ль н ы е с ул о в и я , п р о и з в е и н а к о н еч н ы е э л е м н ыт (тр и а н глуяц и ю ) , р еш и т ь по . у л и н ей н ы х р уа в н е н и й и в и з ау л и з и р о в а т ь р е з л у ь ат н с ф о р м луи р о в а т ь з адч у , т . е . н а п и с а т ь руа в н е н и е и , и п о с л едо в аетл ь н о в ы п о л н ят ь в ы ш ео п и с ан н ы е ей д с т ы работ ы в pdetooi н а п р и м ер е з адч и те п л о п р о в о д н о .
аЧс т ь
646
а за д ч
о Пс т а но в к Т р е бс т у ри с
IV. Использвани е
я н ай т . 14.1.
и
и р ас п р едл н и
\ \ \ 4 \ \ / ^v \ / R=0 25Л 4 4 I 1 \ \ / 4 \ k 7ъ = 50 0 У \ \ \ \ 7 ^ 6 0 0zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ \ s L= 2 w,
а и к о э ф и ц и ен ы о п и с ы в а ест
н а в е нр х е ст и еид н и
й и н и ж н е ц н е ук а з ы в а ю ст я
Ср е д Н ачн и т окн
я н а п р а в о и к гр а н и ц е
я з адч е п о др б н о м
ь и гр ан и ч н ы о в ц ен рт и те п л о и з о л и р о в а н ы т те п л о п р о в дн о с т я ди ф ер н ц и ал ь н ы
й о бласт
е с ул о в и р н орм ал
П о с та в л е н н а р ку ц и , п р и в едн н ы pdetooi. Бо л е р а з де л .
. 14.1. О бласт
е р асп о л ж ен
гр а н и ч н ы (п — в ек от
zyxwvuts
Г - 60 0
Рис
е тем п ер а ут
зачд
Т в о б л а с ти , и з о б р а ж ен н о й н а ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
е тем п ер аут
Т N
е о вт е р с ит ы п р я м о гу л ь н о в те п л
пр инхлыакд
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
А N \ \ \ \ \ \ Я - 1 s N \ N \ N
К р г уо в гр а н и ц и с от ч н и к о л ен и
Toolbox и решени
й и лев о )
й гр а н и ц
е услови
я
е п р я м о гу л ь н и к а
й гр а н и ц
. В н рту и к рав е м урав н ен и е
е з а д ю
. П р а в я и лев а я и о бласт и не т н 200. Р асп ред м
т н л е ву о
е Т = 600 , а н а о к ржун о ст
й п от
к ет п л
а
и Т = 500 . Р а з м ер н о
-
. а п рост е в ю с лу е д щ и
о р е ш а е ст у о п и сан и
я п р и п ом щ х р а з де л а х , п о м о га ю ю в о з м о ж н о с ет
и с р ед
ы pdet ooi. И н ст т освои т ь работ у в й п о с в ящ е н о ед т л ь н ы й
а pdetooi, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA конст риу ова ни е обл а ст и е р а б о ту , в ы п о л н и о P D E T oolbox с р е д
в ком ан д у p d e t o o i в к о м а н д н о ы p d e t o o i , и з о б р а ж е н н о е н а р и с
м окн е . 14.2.
, п о я в л я е т с
я
л ав Г
14. Реш е ни
зачд
м ат е м ат и че с окй
647zyxwvutsrqpo
фи зи к
|#JPDE Toob l ox -[Untitled] Re Edti Opo tinsDraw Boundary PDE Mesh Solve Plot Wni dow Help •
•TTnTxl
С ЕЛ О CD > « dft PDE Z\ ЈL = H& "^.[l < i eric Scalar Set formula. I i I I i
\
Y: 0.85Б 8
»J| y. 145g
i
1
0.8 -
0.6 -
0.4 -
0.2 -
0-
- 0.2 -
- 0.4 -
- 0.6 -
- 0.8 -
i 1
- 15
i 0.5
Info: : Draw 2D geometry.
е о к н
о соедр ж и
• рс т о к з адч и
у м ен ю ;
• п а н ел л яю щ и
ь и н с р тм у е н о т х о б л а с ть
G п а н ел руа в н е н и я
ь и н с р тм у е н о т
• о бласт ск и К о н с тр и у р о в а н и н и е п р ям о гу л ь н и к м огу л ь н и к а н и к а со в п а
. 14.2. С р е д
т ю с лу е д щ и , к аж од
1.5
zyxwvutsrqponmlkjihgf
;
а pdetool
е осн овн ы
е м не
е э л ем н ыт
ю с о в т ес у
в ри со в ан и
:
т о п р е дл н н о м
у э атп
я ге о м ерт и ч е с к и
у р еш ен и
х п ри м и т вов
я
, о п ред
-
; в лд , тр и а н глуяц и
ь в од х п р и м и т в о
• ос и дл
i 05
Рис
Дан н о
i 0
1 1
а Set formula лд ;
я со з адн и
я о б л а с ти е о б л а с ти
. доУ б н л с н а ч л о
я з адн и , р еш ен и
а и к ргу о расп ол ж и т м к о р ди н а т
я гр а н и ч н ы я и в и з аул и з ац и я к о н с рт и у р о в а н и
х с ул о в и й
, к о э ф и ц и ен от и р е з л у ь ат
я о бласт
в ;
и и з г е о м е рт и ч е
-
. , п р и в едн н о а з адн н ы
й н а р и с . 14.1, в к л ю ч ае х р аз м ер о в и в ы ч и та н и ь о бласт ь та к , ч от б ы ц ен т , то гд а к о р ди н а т ы н и ж н ег
т в сбе я соз ад е к ргу а и з п ря р п р я м о гу л ь о лев о г о гл у
а
аЧс т ь
648
п р я м о гу л ь н и к н о . Ц ен т
р к ргу
а удб а ат к ж
IV. Ис по льз вани е
Toolbox и р еш ени
т (- 1, - 0.5), а ег о в ы с о т а и ш и р и н е со в п аде т с н ач л о м к о р ди н а т
принхлыакд
zyxwvu
зачд
а 1 и 2 со втес н
-
.
Н ач н и т е с с о з ад н и я п р я м о гу л ь н и к а . В ы бер и т е в м ен ю zyxwvutsrqponmlkjihg Draw п н у к т Rectangle/ square и л и в о сп о ль з йу етс ь с о в т ес ю у щ и м и н с р тм у е н о т м (ег о ю п и к от г р а м а с о едр ж и т п р я м о гу л ь н и к ) . Н а р и сйу т е мы ш ь ю р т е бм у п р ям огу л ь н у ю о бласт ь н а о с я х о т гл уа , уердж и ва я н а ж от й л ев у ю кн оп ку . С коре е в с его , то ч н о в ы ед р ж а т ь р аз м ер ы и п о л ж ен и е н е уадл о с ь . Д в о й н о й щ ел ч о к мы ш и п о п р ям огу л ь н и к у п р и в о ид т к п о яв лен и ю ди а л о г в о г о окн а Object Dialog (р и с . 14.3), п р едн а з н а ч ен н о г о л д я с уа т н о в к и з адн н ы х раз м е р о в и п о л ж ен и я о б ъ е к ат .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
IV Object Dialog zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ЙН 1
Rectange l
Object type: Left:
:- 1.083206106870223 - 0.4828375286041191 2.0564885496183214 0.99313501144164773 R1 OK j Cancel
Bottom: Width: Height. Name:
Рис
. 14.3. Д и а л о г в о
е о к н
! f f\ u - |
о Object D ialog
В в ие д т е в г уо л ь н и к а в е ст н н о да н н о м с ч л уа г уо л ь н и к о к о н с тр и у р о в а н и н ят ь и м ен п ри н я л н ж ун о
с рт о к а х Left и Bottom к о р ди н а т ы н и ж н ег о лев о г о гл у а : - 1 и - 0.5, в Width и Height з а д й т е ш и ри н у и в ы с о ут : 2 и . П о л е Name п р едн а з н а ч ен о дл я о п р едл н и я н аз в ан и я о б ъ е к та е п р я м о гу л ь н и к а . П о му о л ч ан и ю и м ен а с о з ад в е м ы х в со тя т и з кб у в ы R ( о т Rectangle) и п о р я дк о в о г о н о м ер а и о бласт и с п рост й г е о м е рт и е й н е т н е о б х ди м о с т а о б ъ е к то в . Н а ж м и т е кн оп к у О К и убеид тсь , ч т о п р ям о гу л ь н и е п о л ж ен и е и р а з м ер ы н а осях .
Н а р и с йу т Draw п н у к с рт м у е н от м
е к ру г с ц ен рто м в от ч к е (0, 0) и р аид суо т EUipse/ circle (centered) и л и в о с п о л ь з йу етс , ег о п и к то гр а м а — э л и п с с п ер к есит ем
м 0.25. В ы б ер и т ь с о вт е с ю у щ и .
п р ям о 1 со т
, в
п р ям о . П р и и зме
и к
е в м ен ю м ин -
л ав Г
14. еРш ени
К ^ П и т с к ре нп у к т я со
зачд
м ат е м ат и че с окй
Пр и м е ча н и а н ем х и з ц нер т
фи зи к
649 zyxwvutsrq
е ^Д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB е н а п и оркгамт ю Draw оз н ач ю т а п р и ноажт
е и мнеруаст
, ил
, чт о ю вущтс еои й лвое й кн оп к
е мы ш и
и олсв
о "centered" в н аз вн и й о бък е т с т е ир у с
и я н а
.
о к о р ди н а т осе й и н ар и сйу т е о к ржу н о с т ь П о м е с ит е к р ус о р мы ш и в н а ч л п р и п ом ощ и мы ш и с о нд о в р ем н н ы м е рд ж у а н и е м . К л а в и ш а , сле и а к ит в п о з в о л яе т ри соват ь г е о м е рт и ч е с к и е п ри м и т в ы к в а др т и к ргу н ы , с о вт ес н н о , и н срмтуен т ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML Rectangle/ square, Rectangle/ square (centered), Ellipse/ circle, Ellipse/ circle (centered). П ер й ид т е к св о й свта м к рг у а дв о й н ы м щ ел ч к о м мы ш и и уот ч н и т е в ди а л о г в о м окн е Object Dialog ег о п о л ж ен и е и р а ди с у . В срто к и X- center, Y- center е сулд т з а н ес т и н л иу , а в у р аид су а 0.25. К р у г и ме т н а з в а н и е c i (о т Circle). Radius — в ели ч и н Г е о м е рт и ч е с к и ле н р м у е н от о ся о п р е дл н и кру о п р е дл я с т ид н е н и ри с м ен ь ш и О б л а с ьт ван а
е п ри м и т в
ы лд я з а д н и я о бласт и с о з да н ы т пр я (п ерох д в н ег о п р о и сохид я и л и в ы б о р е п ну к т а Draw Mode м ен х п р и с тв ю у т вс е до б а в л ен н ы е о б ъ е к ыт . С юлеуд щ и и в з а и м о с в яз и м ж ед у п ри м и т вам и , о б р а з юу щ и м г од л ж е н бы т ь а л ед у н и з п р я м о гу л ь н и к а . С в яз е Set Formula сред ы pdetooi. З н а я в срто к е о б ъ е к то в , а м и н у с — в ы ч и ат н и е . О б л а с ти . 14.1, со втес у т фо р м л у а R I - c i, и з б о л ь ш ег й п о р а з м е р а м . р еж и
м ри сован и в ри со в ан и
, теп р
, в к о т р о ь з адй т
О п р е д л е ни
й р е ш а ес т е к о э ф и ц и ен т
е ураенв и
я ид ф е р н ц и а л ь н о ы урав н ен и
я и гынраич
. С ей ч а с с у ат н о в и и с п о л ь з о в а н и и и н ст ю Draw), п о э т м у н а й э ат п с о т и т в и о б л а с ть , — ь м ж де у п ри м и т в ам и к п лю с о з н ач е т объе , и з о б р а ж ен н о й н а о о б ъ ек т а в ы ч и ат е с я
е р уа в н е н и е я и гр а н и ч н ы
х усливо
, с к о н с ртиу р о е усло в и я
.
й
М ен ю Options соедр ж и т п о мд ен ю Application, к о т р о е п о з в о л яе т з адт ь ти р еш аем о й з адч и . П ну к т Heat Transfer со втес у т з адч е о р а с п р едл н и и теп л а . В ы б ер и т е ад н н ы й п ну к т , слев а о т н а з в а н и я п о яв и ст я фл а г — сре д а pdetooi етп р ь н а с рт о е н а н а р еш ен и е з адч и те п л о п р о в о д н о с ти . И с п о л ь з о в ан и е р а с к р ы в а ю щ е го с я сп и ск а , р а з м ещ ен н о г о н а п ан ел и и н с рт м у е н от в у р е з л у ь ат . сУат н о в и т е р еж и м ид ф е р н ц и а л ь п р и в о ид т к а н а л о ги ч н о м н о г о руа в н е н и я , в ы б р а в пну к т P D E Mode в мне ю P D E . Н а э к р а н е е тп р о т б р а з и ст я о бласт ь с овтерси ем . И м ен н о дл я эот й о бласт и и се у дл т оп ре е лд и т ь к о э ф и ц и ен т ы и п р ав у ю ч аст ь ди ф е р н ц и а л ь н о г о ура в н ен и я . П е р й ид т щ ел ч о ж ен о
е к п н у к т к п о о б л а с ти е н а ри с
у PD E Specification... м не ю PD E и л и п р и м ен и т е дв о й н о , п о яв л ест я ди а л о г в о е окн о PD E Specification, и з о б р а . 14.4. О б р а ти е вн и м ан и е , ч т о вверх у ди а л о г в о г о окн
п , ь й -
а н а
аЧс т ь IV. Ис по льз вани е Toolbox и р е ш е ни пр инхлыакд зачд zyxwvuts 650zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
п а н ел и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Equation соедр ж и стя общ и й в и д урав н ен и я те п л о п р о в о д н о с ти , к о т е pdetool: р о е м ож е т бы т ь р еш ен о в сред - div(k*grad(T)) = Q + h*(Text - T) З н а ч ен и н а п р ав о р уа в н е н и я р а с п р е дл н и р уа в н е н и е м , н ы х з ад с рт о к а х
я к о э ф и ц и е н от в усатн ав л и в аю ст я в срто к а х в о да , р а с п о л ж ен н ы х й п ан ел и ди а л о г в о г о окн а . Лев а я п а н ел ь ж с л иу т лд я в ы б о р а ит п а т з адч е о с ат ц и о н а р н о м , п ер к лю ч аетл ь Elliptic со втес у и те п л а , о п и сы в аем о й э л и п ит ч е с к и м ид ф е р н ц и а л ь н ы м a Parabolic — н ес атц и о н а р н о м у с чл у а ю . Р еш ен и е н е с ат ц и о н а р ч оп и сан о н и же . Убеид тс ь в то м , ч т о вк лю ч е н Elliptic, и з адй т е в в од а к о э ф и ц и ен т ы урав н ен и я р а с м а тр и в а е м о й з адч и .zyxwvutsrqponmlkji
j #PDE SpecificationzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA .
TypeofPDE:
Q
T №
,
.
T
,
e
W
a
1
U
,
e
v'alue
Description
к
- j Q
Coeff. of heat conduction
Q
10
Heat souice
] n
Convective heat tiarrler coeff.
и о
External temperature
C
o
e
f
f
i
c
i
e
n
t
(*" Eliptic С Parabolic
r
1 Text
•
• .
'
.
•
"
.
•
"
'
•
Рис В ы бо р п о хдя щ и руа в н е н и е , з а п и с а н н о чу , п о сатв лен н у л о п р о в о дн о с т и р ас п р едл н н ы в е к ти в н о г о те п л о б м е н ди ф е р н ц и а л ь н о г жми т е О К лд я П е р й ди т м не с ул о в и й н ие н ост
OK |
. 14.4. Довигла
Cancel |
е нк о
о PDE Specification
х к о э ф и ц и е н от в п о з в о л яе т св ет и ди ф е р н ц и а л ь н о м в и ед , к урав н ен и ю , к о т р о е о п и сы в ае е в общ е ю в н ач л е да н н о г о р а з де л а . сУат н о в и т е к о э ф и ц и ен т к з н ач ен и е 200. П о с к о л ь к у в р а с м а тр и в а е м о й з адч х и с от ч н и к о в ет п л а , т о Q равн яест я н л юу . К о э ф и ц и ен а h и вн еш н я я ет м п е р а ут , вохядщ и е в общ и о ру а в н е н и я , атк ж е од л ж н ы и м ет ь н л е ув о е з н ач ен и е сорхан ен и я п р о ед л а н н ы х и з м ен ен и й .
ю гр а н и ч н ы х с ул о в и й е к з а д н и ю Boundary, сред а pdetool н аохид ст , в о к н е о т б р а ж ю тс я то л ь к , ч т о п р ям о гу л ь н и к и ме т ч еы т р х г уд ь та к ж е с о ат в л е н а и з ч ыет ре
. В ы б ер и т я в р еж и м о гр а н и ц е гр а н и ц ы .
е пну к е с уа т н о в к ы о б л а с ти , п о чи сл
е т з ад у теп е не т кон й в и . Н а
т д -
т Boundary Mode и гр а н и ч н ы х . О б р а ти т е вн и м а у с то р о н , и окжру -
л ав Г
14. Реш ени
С де л а й т б ер и т лог во н ог
зачд
м ат е м ат и че с окй
фи зи к
651 zyxwvutsrqponm
е е щк т у е й в е рн х ю ю гр а н и ц у п р я м о гу л ь н и к а щ ел ч к о м мы ш и и в ы е в мне ю Boundary п ну к т Specify Boundary Conditions..., п о яв л ест я ди а е окн о Boundary Condition, п р енд а з н а ч ен н о е дл я в ы б о р а ти п а гр а н и ч о усло в и я (р и с . 14.5).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
[^Boundary Condition Boundary condito i n equato i n: Condtion type:
'.jD| x| h- T.
Coefficient
Value
Description
С Neumann .
. 14.16. Пьнло ги умояр
с Ри
й н а р и с е в срто к
к с мият осрев т
. 14.16, н а р и у zyxwvutsrqponmlkjihgfe Set formula
и
В р еж и м ад ж
е ри со в ан и я н а о бласт и п р и с тв ю у т в с е с о з ад н н ы е п ри м и т вы , е сел и он и в ы ч и атю ст я и з дргиу х п ри м и т вов . Д л я о т б р а ж ен и я р еал ь н о й г е о м е рт и и о бласт и п е р й ид т е в р еж и м ди ф е р н ц и а л ь н о г о р уа в н е н и я (п н у к т PDE Mode в м не ю PDE). zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
^
П р и м е ча н и
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED jj
Р и а к ед т р о в а н и ры
е л м ро у ф
й можн н о , и внтсе
о пйерт и и знме и
Н а р и с йу т е п р я м о гу л ь н и н а р и с 14.17. О ч ев и дн о боль ш и х к в а др а т ш ин ы к о т р ы х со в п адю
, ц ели к о
ы п ун о с т д и в лю об й м оне т я в гриомет к с о с к рг л у е н н ы м , ч т о е сулд м р ас п о л ж ен н ы т с в ер ш и н а м
о о тл ь к , джа ю о б лиа с т
о в ж и ер м е п лос е тог .
е р и со в ан и я , ка к рше н и
и г ул а м и , та к о ь и з п р я м о гу л ь н и к х в н рт у и п р я м о гу л ь н и к а
т в ы ч ес т и п р ям о гу л ь н и к а
й ка к и з о браж е а ч е ыт р .
Л
с Ри
. 14.17. Пьнло ги умояр
к с о н е слыгм урк
и умал г
и
, в кот е н йеа д
-
н е не , в ер -
668
аЧс т ь
Д л я п о чл уе н и ласт ь с ч е ыт р ь м ц ен р т у п р я м о гу л ь н и к с от р н е эит Н ач и н аю щ ем н и и г е о м е рт и .ы атримб оен н ари со в ан н у л ся е т я п е р и о ид ч е с к о и з м ен ен и й м ожн
IV. Ис по льз вани е
х гл о у , ц ен рт
я с к рг л у е н н ы я к р г уа м и а в ер ш и н а .
х к в а д р а то в у п о л ь з о в а те л и о бласт П ну к ю ли н и
Toolbox и р еш ени
в о с ат л о с ы котры х а дл е ун ы
ь о б ъ е ид н и т х р ас п о л ж ен х к в а д р а то в
пр инхлыакд
ь п о чл у е н н у ы в бли ж ай ш и , а р аид су
zyxwvutsr
зачд
ю об ы рав н
х к ы
ю е ус л д т и м ет ь в в и уд , ч т о п р и к о н с ртиу р о в а и м н о ги е дей свт и я , в ч а с нт о с ит , адлуен и е п ри м и т ва , zyxwvutsrq т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED Undo м ен ю Edit п о з в о л яе т то л ь к о о мт е н и т ь п о с л енд ю ю ю м н о г уо л ь н и к а . Хо р ш и м р еш ен и е м п р о б лем ы яв е с о р ха н е н и е г е о м е рт и и о б л а с ти , в счлуа е н а дч е у н ы х о в о с п о л ь з о в а ть с я р ез р в н о й к о п и ей .
О б ъ е ид н е н и е о б ъ е к то в п о з в о л яе т п рост о з адт ь г е о м е рт и ю о б л а с ти , о дн а к о е су л д т и м ет ь в в и уд , ч т о п р и о б ъ еид н ен и и с о р ха н я ю ст я в н рт у е н н и е гр а н и ц ы . Е сл и о бласт ь о дн о р о дн а , т о е сулд т а д л иу т ь н ен ж ун ы е гр а н и ц ы п р и п ом щ и п ну к т а Remove Subdomain Border м не ю Boundary, п р едв а р и етл ь н о в ы едл и в и х в р еж и м е гр а н и ц (п н у к т Boundary Mode м ен ю Boundary). В с е в н рт уе н н и е гр а н и ц ы а дл я ую с т я вы бор м п ну к т а Remove All Subdomain Borders. З адч и в о б л а с ят х , со атв лен н ы х и з м а етр и а л о в с р а з н ы м и св о й ст вам и , н е п р е дп о л а г ю т а д л е ну и я в н р т еу н н и х гр а н и ц .zyxwvutsrqponmlkjihgfedcbaZYXWV
о м К п о з и т ны
е м ат е риал
И с е луд об лоч к в о нд о с т об лоч к и с от ч н и к о 1000. С о с ат в ь т В ы б ер и т с лу о в и в н р т уе н н и лд и с от ч н и к о в о ди да н и М ожн в р ем н н ы п ы
м с та ц и о н а р н о и с вдм у и об лоч к и п о ед р ж и в а е с т в те п л а
е област е ти п реш а ем о й с у ат н о в и т е гр а н и ц ы я к а ж од й о бласт в те п л а т к п о яв л ен и я к о э ф и ц и е н от о о б ъ е ди н и т м е др уж а н и е п о д б л а с те й .
В ы б ер и т е п о хд я щ у pdetool о т б р а ж е тс с м а рт и в а е м о й к о н с рт к у ц и
ы
е р ас п р едл н и я н а гр е в а ю щ и м и с и и се р т ж н е я пр , а п л о нт о с т ь и з тре
е те п л я с ет р ж н я м и й раз ли ч н и тем п ер аут ь и с от ч н и к о
а в сеч н и и ет п л о и з о л и р ю у щ е й , к о э ф и ц и ен т ы те п л о п р о ы (р и с . 14.18). В н еш н я я гр а н и ц а е н ол ь г р а сду о в , в о б л о ч к е н е т в теп л а в сеч н и и с е рт ж н е й равн а
х к р гуо в й з а д ч
, фо р м лу а до л ж н а и м ет ь в и д и (H eat transfer). В р еж и м е з а д н и ю ет м п е р а ут у н а вн еш н е й г р а н и ц е е н л ев у ! П ер й ид т е в р еж и м ди ф е р н ц и а л ь н о г и з адй т е к о э ф и ц и ен т те п л о п р о в о дн о с т . Д в о й н о й щ ел ч о к мы ш и п о к аж одм у и з п р и м и т в о ю ди а л о г в о г о окн а PD E Specification, слжуащ ег в и п раво й ч аст и и м ен н о лд я д а н н о г ь н ес к о л ь к о п р и м и т в о в в гпру у щ ел ч к о м и с у ат н о в к м к лав и ш и и п р о и з в ес т ю рт и а н г л у я ц и ю и р еш и т е з адч у я и ск ом е р а с п р едл н и е ет м п е р а ут и (р и с . 14.19).
c i + С 2 + сз . я гр а н и ч н ы х , н е адлуяй т е о р уа в н е н и я и и и п л о нт о с т ь в при о лд я з а о п ри м и т ва . мы ш и с о нд о и лд я грпу -
. В о к н ы в с еч н и
е с р ед и р а с
ы -
л ав Г
14. еРш ени
зачд
Р си
м ат ем ат и чес окй
физк
. 14.18. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA З адч а о расп редл н и и тем п ераут ы
в теп ло и з о ли рюу щ е
Рси
. 14.19. Р асп релдн и
в теп ло и з о ли рюу щ е
с И п о л з ь в а ни С р ед о с ей п ер м щ ен и бор окн м не н аз н ач ен п р ав л ен и ям дв о е т ч и я ) м ож е с рт о к а
669zyxwvutsrqp
е с е т к
й о б о л ч к
е
е тем п ер аут й о б о л ч к
ы е zyxwvutsrqponmlkjihgfedcbaZYXWVU
и
а pdetooi п р еод сатв л яе т п о л ь з о в а ет л ю воз м ож н ост ь и з м ен ят ь п р е лд , н а н о с и т ь в с п о м о г а ет л ь н у ю к тс е у и и с п о л ь з о в а т ь е е п р и р и с о в а н и и и о б ъ е к то в . О от б р а ж ен и е к с ет и в о к н е сред ы п р о и з в о ди ст я в ы м п ну к т а Grid м не ю Draw. П а р м е тр ы к с ет и з а д ю ст я в ди а л о г в о е Grid Spacing, к о т р о е в ы в о ид с т я п р и в ы б о р е о дн о и м е н н о г о п ну к т а ю Options. С рт о к и в од а X- axis linear spacing и Y- axis linear spacing п ред ы лд я з а д н и я к о р ди н а т ли н и й кс ет и п о с о вт ес ю у щ и м на . И с п о л ь з есут я ли б о в е к от р с п о с т ян н ы м ш а го м (п р и п о м о щ , л и б о к о р д и н а ты , р а з едл н н ы е п р о б ело м . Р а в н о м ер н о й к с ет т бы т ь н е д о с та о ч н о , к о р ди н а т ы д о п о л н и ет л ь н ы х ли н и й в о яд с т я х X- axis extra ticks и Y- axis extra ticks.
ы и м в и и в
670
П р е дл яв л с ет
аЧс т ь
ы о се я пр
щ е к о н с тр иу р о в а ть н ап р и м ер в ы брат
IV. Ис по льз вани е
Toolbox и р еш ени
я в ди а л о г в о
й с у ат н а в л и в а ю ст и в ы б о р
е с о вт ес ю у щ е г , к о гд а ос , и ск аж ен и я к р г уо в ь пну к т Axes Equal.
о п ну к т и и м ею . Д л
т р а в н ы я о б ес п еч н и
пр инхлыакд
м окн е zyxwvutsrqponmlkjihgfedcbaZYXW Axes Limits, к о т р о е п о а м не ю Options. О б л ас т ь п р о й м а с ш ат б ; то гд а н е п р о и сохид т , я равн ог о м а с ш та б а е услд т
Р и со в ан и е сло ж н ы х о б л а с ет й п о з адн н о м у ч ерж т у о б л е г ч а е ст я , лсе в к лю ч и т ь п р и в яз к у к скет , дл я ч ег о еслуд т в ы б р а т ь в м ен ю Options пн у к Snap. Т еп р ь в ер ш и н ы п р я м о гу л ь н и к о в и к в а др а то в , ц ен рт ы о к рж у н о с е т и э л и п со в п р и п ер атс к и в ан и и и р и с о в а н и и м о гу т н а о х ид ь т с я то л ь к о н ли н и я х с ек т и . Р а м к и , о гр а н и ч и в а ю щ и е э л и п сы и о к ржу н о с ит , атк ж е р а з м ещ а ю с т я н а л и н и я х с ек т и . В ерш и н ы м н о г уо л ь н и к о в п р и и х р и с о в а н и од п с уи т м ы то л ь к о в узлах . В ы б о р ш аг а с ек т и , с о вт ес юу щ ег о р аз м ер а м ел к и х э л е м н от в ч е р тж а , п о з в о л яе т щ с у е вс т н о с ук о р и т ь с о з ад н и е об л а с ти .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
сИ п о л з ь в а н и
е фицунк
С р ед а pdetooi с гр афи ч ес к и ли ш ь лд я о б л егч н и я од с п у т п яи т е д с я т и фн у к ц и й , р еали з юу щ и да н и я о б л а с ти , руав н ен и та . М аенх и з м вы з ов а ад н н ы с р ед . М н о ги е н фу к ц и и т п о н и м ан и з о в ан и е тр еб у л ы п о с в ящ ен ы о п и сан и н и я гр а н и ч н ы х з ад ч лд
З а д ни И м е ю ст з адч а ласт со т п орт фо р м а т Н а р и с йу т ц ен т п ну к го в о
а сп ос б й з а к л ю ч а е ст , с о с т и
и т й а и м -
й PDE Toolbox м и н е тр ф й с о а к ярд
я и и м ею я ю нф у к ц и й я ди ф ер н ц и аль н ы
е ге ом е т ри я вд . П ер в ы и в фай л- нфу к ц и й сп ос б е и н фо р м а ц и , п о н янт ы
zyxwvuts
зачд
м п о л ь з о в а ет л я п р е дн а з н а ч е н а у P D E Toolbox — н а б о р у бо ле е че м и з х осн овн ы е э ат п ы р еш ен и я з адч и о т з а гр ан и ч н ы х с л уо в и й д о в и з аул и з а ц и и р е з л ьу а т х н фу к ц и й ск р ы т о т п о л ь з о в а етл я п р и р а б о т е в т д о с та о ч н о сло ж н ы й и н ет р ф й с , и х и сп о ль м еотд а к о н еч н ы х э л е м н от в . С люеуд щ и е р а з ед , св яз ан н ы х с о с н о в н ы м и э та п а м и р еш е х ура в н ен и й .
и обл а ст а о п р е дл н и , и м ею щ е т в з а д н и и в п ер м ен н ы й дгриу м
и
я г е о м е рт и и о б л а с ти , в к о т р о я в п а р м ерт и ч ес к о м з адн и и ч а се т й о п р е дл н н ы й фо р м а т . В то р о й и о бласт и в с р ед е pdetooi, п о сюлеуд щ е е рабоч е й с р ед ы и п р ео бр аз о в ан и н фу к ц и я м Toolbox.
й р е ш а ест й гр а н и , б о ле
е в с р ед е pdetooi п р ям огу л ь н и к ш и ри н о й вд а и в ы с о т е к о р ди н а т . В ы б ер и т е в м ен р котрог о расп ол ж е н в н ач л т Export Geometry Description, Set Formula, Labels..., п о яв л ест е окн о Export, и з о б р а ж ен н о е н а р и с . 14.20. Д а н н о е окн о п р е дл а г е
я ц о б е п р о м э кс и
в
й о ди н , ю Draw я ди а л о т со -
л ав Г
14. еРш ени
рха н и т п ер м ен ы
зачд
ь CSG - м оедл х р а б о ч е
• м а рт и ц
у г е о м е рт и
• фо р м л у
у с в яз
• с о вт е с и в е n s. Н аж м и т си во
м ат е м ат и че с окй
ь (к о н срткуи в н у й с р е ыд
ю бло ч н у :
, а и м ен н о
и о бласт
ю г е о м е рт и ю
) в гл о б а л ь н ы
и (G eometry description matrix) в м ас и в
и гео м ерт и ч ес к и е м же д
671 zyxwvutsrqpo
фи зи к
х п ри м и т во у с от л б ц а м
в в срт о к
и gd и н а з в а н и ям
х е gd;
е sf; и о б л а с ет
й в sf в м ас и
е О К и з ай м и етс ь и з ч е ун и е м с о ед р ж и м о г о э к с п о р ти р о в а н н ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA # Export
-
х м ас
-
г
Vara i be l names for geometry data, set formual , labesl : gd sf ns Cancel
OKzyxwvutsrqponmlkjihgfedcba с Ри
Чи с л р и ч ес к и м а рт и ц В ы в еи д т
о с от л б ц о х п ри м и т во а со ти е с о ед р ж и м о
. 14.20. Диовгла
в м а рт и ц
ы г е о м е рт и , со сатв ляю щ и т и з о дн о г о с от л б ц а о р а б о ч е е gd в о к н
е онк и о бласт х о б л а с ть , со втес юу щ ег й с р е ыд
о Export и gd с о в п аде . В р а с м а тр и в а е м о
т с ч и сло
м ге о м т м п р и м ер
е
о п р я м о гу л ь н и к у . :zyxwvutsrqponmlkjihgfedcbaZYXWVUT
» gd gd = 3.0000 4.0000 - 1.0000 1.0000 1.0000 - 1.0000 0.5000 0.5000 - 0.5000 - 0.5000 П ер в ы м ре т и ч е с к о м
й э л ем н
т с от л б ц у п ри м и т ву
а о п р едл я . В сег
т п р и н а лд е ж н о с т о од п с у и т м
ы ч е ыт р
ь о п р е дл н н о м е ти п а г е о м е рт и ч е с к и
у ге о
х
672
аЧс т ь
п ри м и т во м ен т , р а в н ы го у л ь н и к у п р я м о гу л ь н и к ч а е м м н о г уо л ь н и к а н ы е э лем н т
IV. Ис по льз вани е
Toolbox и р еш ени
: к ргу , м н о г уо л ь н и к , п р ям огу л ь н и й тр е м , о з н а ч е т , ч т о да н н ы й с от л б е , э лем н т в то р й с рт о к и рав е н ч и сл е ч еыт р е с то р н ы , н о п р ям огу л ь н и , фо р м а т р ха н е н и я котрог ы с то л б ц а з ап и сан ы к о р ди н а т ы в ер ш и
пр инхлыакд
zyxwvutsrq
зачд
к и эл и п с . П ер в ы й э ле ц с о вт е с у т п р ям о у с то р о н . О ч е в и дн о , ч т о в к я в л се т я ч а снт ы м улс о оп и са н н и же . В о сатль н п р я м о гу л ь н и к а .
П ер в ы к рг у ч е тв е р ты й
й э л ем н т с от л б ц а м а рт и ц ы г е о м е рт и и о б л а с ти , со втесюу щ е й , р а в е н е ди н и ц е , в то р о й и тр е и й я в л я ю ст я к о р ди н а т м и ц е н тр а , а — р а ди су о м . В счлуа е эл и п с а п ер в ы й э л ем н т р а в е н ч е ыт р е м , ад л е р х а н я ст я к о р ди н а т ы ц е н рт а и в ели ч и н ы п о л ус ей , а п о сленд и й ш се . М н о г уо л ь н и к и е д н и т ф ц и р е с ту я от й э л е м н т с о ед р ж и т го у л п о в о р о т а дв о й к о й в п ер в о м э л ем н т е в е к то р а , ч и сл о с от р н з ап и сан о в о в то р о й э ле м ен т , а дале е с ю л уе д т к о р ди н а т ы в ер ш и н в п о р якд е и х с о з да н и я . Ф ну к ц и , с в яз а н н ы й п о ль з юу т др г у о йзионц ит гер мое н и ст я и н фо р м а ц и о тр е з о к , ч аст ь г уд блоч н о й г е о м е рт и ц и и decsg, в о вохнд ы м ац и е й о к о н с рт к у и в н о gd, sf и ns. В ы охнд ы н о й г е о м е рт и . о вт е ч а т э л ем н т вы з ва в decsg, н а п р и м е р
е с р т и а н лг у я ц и е й и з а дн и е м гр а н и ч н ы х с ул о в и й , и с т о п и сан и я гео м ерт и и о бласт и —zyxwvutsrqponmlkjihgfedcbaZYX а и т ц ру м д-по кмео (D ecomposed G eometry matrix). В да н н о м фо р м а т е ра х я о ч а ся т х гр а н и ц ы о б л а с ти , к о т р ы м и м о гу т б ы ть : и о к рж у н о с т и и л и э л и п са . П ер ох д о т к о н с рт к у и в н о й и к де к о м п о з и ц и о н н о й п р о и з в о ди с т я п р и п ом ощ и н уф к х а р мг у е н ат х котро й з а д ю ст я п ер м ен н ы е с и н фо р й блоч н о й г е о м е рт и , в р а с м а тр и в а е м о м с ч л уа е м а р мг у е н от м decsg явлсет я м а тр и ц а де к о м п о з и ц и о н К а ж ыд й с от л б е ц м а рт и ц ы де к о м п о з и ц и о н н о й г е о м е рт и и у гр а н и ц ы . П р е о б р а з йу т е э к с п о р ти р о в а н н ы е в ели ч и н ы , , и з к о м а н дн о й с рт о к и :
фо р м а
dl = decsg(gd, sf, ns) dl = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 2.0000 - 1.0000 1.0000 0.5000 0.5000 0 1.0000 О ч е в и дн о в п ер в о в то р о ч евт р ы г е о м е рт и с ек а ю щ и ес п о л ж ен н ы
2.0000 1.0000 1.0000 0.5000 - 0.5000 0 1.0000
2.0000 1.0000 - 1.0000 - 0.5000 - 0.5000 0 1.0000
2.0000 - 1.0000 - 1.0000 - 0.5000 0.5000 0 1.0000
, ч т о п р ям о гу л ь н и к п р е сд а т в л я е с т я ч е ыт р ь м я о тр е з к а м и м э л ем н т е с от л б ц а о з н ач ет , ч т о сот л б е ц с о вт е с у й и рт е и й э л ем н т ы с о ед р ж а т абсц и с ы н ач ал а и кон ц й и п яыт й — о р ди н а ты . П р е о б р а з о в а н и е в де к о м п о з и ц и о н н у ю п р е дп о л а г е т , ч т о вс я о б л а с т ь р а з б и в а е тс я н а н е к о т р ы я е ьын ал инм ми птаис.л бо до И д е н ти ф и к а то р ы п о д б л а с те й х с л ев а и сп рав а о т ч аст и гр а н и ц ы (в да н н о м с лчу а
. Д в о й к т о рт е з к у а о тр е з к а
а , , а ю
е н еп р
, р а с
е о тр е з к а )
,
л ав Г
14. еРш ени
зачд
м ат е м ат и че с окй
фи зи к
673 zyxwvutsrqp
з ап и сан ы в ш е ос т м и сьедм о м э л е м н ет . П о л ж ен и е о п р е дл я с т я вд и ж е н и е м о т н ач л а ч аст и гр а н и ц ы д о е е к о н ц а , в счлуа е о б л а с т и и з о дн о г о п р ям о г уо л ь н и к а о н ж е и я в л се т я м и н и м аль н о й п о д б л а с ть ю , п о э тм у с л ев а о т ч а сет й гр а н и ц (о рт ез к о в ) н е т п о д б л а с те й . С от л б ц ы м а рт и ц ы де к о м п о з и ц и он н о й г е о м е рт и , со втесюу щ и е га уд м эли п с а и л и о к р ж у н о с ит , соедр ж а т в о с ат л ь н ы х э л е м н ат х и н фо р м а ц и ю о ц ен рт е и р а ид с у е о к рж у н о с т и и л и в ели ч и н е п о лусе й эли п с а и улг е п о в о р о та . Ф ну к ц и я pdegpiot п р енд аз н ач ен а лд я в ы в о д а о бласт ск о е о к н о , вонхд ы м а р мг у е н от м pdegpiot яв л сет н фу к ц и я де к о м п о з и ц и о н н о й г е о м е тр и . В р а с м а рт и в а ем о pdegpiot (di) о т б р а ж а е т оси , с о едр ж ащ и е п р я м о гу л ь н и к С р кт у в с ег ным им м ен фа й л
у фа й л - н фу к ц и о п о н я ть и ар мгу ен атм я М - фа й л а т п ри н и м ае .
и с о п и сан и е м де к о м п о з и ц и о н н о и с о з ад в е е п р и п ом щ и wgeom яв ляю ст я м а рт и ц а де к о м п о з и ц и о н н о , в к о т р ы й е ус л д т з ап и сат ь фа й л - нфу к ц и ю т з н ач ен и е ми н у с е ид н и ц а п р и н а д че у н о
, а в от м аит ч ес к
С ге н е р и й у т е афй л - н уф к ц и о б л а с ьт , з адв ем у di соердж и ст я м ар т и ц от р й н а С И ОП О ВШеЫ В тщкеу м к атл о г п р и в енд а в ли ст н г
и в о ед т л ь н о я м а рт и ц
е гр а фи ч е а и л и фа й л м п р и м ер
е
. й гео м ерти
и н фу к ц и
и п рощ е и wgeom. Водх й гео м ерт и и и . В ы охнд о й а р гу й п о п ы кт е з ап и с и в
я о п и сы в ае т п р я м ог у л ь н у ю , чт о в гло баль н о й п ер м н о й а ед к о м п о з и ц и о н н о й ге о м р т и и о б л а с ит , со з адн и е ко . В к о м ан д о м Н ОК Т еИ ЛН О ВЫП е wgeom (dl, 'recgeom 1 ). я фа й л recgeom.m, рксут а котрог о е MATLAB п ояви лс е 14.1.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ю м ра т и ц е
ю recgeom, к о т р а й di. биеУд сть
IzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 14.1. Ф а йл - иц кн фу я rec geom ге ом е т ри и обл а с т и
fu n c t i o n [х , у ] = r e c ge o m ( b s, s) %RECGEOM
G ives ge o m e t r y d a t a fo r t h e recgeo m PDE m o d e l.
%
NE = RECGEOM gi ve s t h e n um ber of b o u n d a r y segm en t s
%
D = RECGEOM(BS) gi ve s a m a t r i x wi t h on e colum n fo r e a c h b o u n d a r y
%
segm en t s p e c i f i e d i n BS.
%
Row 1 c o n t a i n s t h e s t a r t p a r a m e t e r v a l u e .
%
Row 2 c o n t a i n s t h e en d p a r a m e t e r v a l u e .
%
Row 3 c o n t a i n s t h e n um ber of t h e l e f t - h a n d r e g i o n s .
%
Row 4 c o n t a i n s t h e n um ber of t h e r i g h t - h a n d r e g i o n s .
%
[X, Y] = RECGEOM(BS, S) gi ve s c o o r d i n a t e s of b o u n d a r y p o i n t s .
%
BS s p e c i f i e s t h e b o u n d a r y se gm e n t s a n d S t h e c o r r e sp o n d i n g p a r a m e t e r
%
v a l u e s . BS may b e a s c a l a r .
n bs = 4; i f n a r gi n == 0,
I
674
Часть
IV. Использвание
Toolbox и решни
прикладных
х zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA - nbs; % number of boundary segments return end d = [ 0 0 0 0 % start parameter value 1 1 1 1 % end parameter value 0 0 0 0 % left hand region 1 1 1 1 % right hand region ]; bsl = bs(:)'; if find (bsl nbs)*, error('Non- existent boundary segment number') end if nargin == 1, x = d(:, b sl); return end x = zeros(size(s)); у = zeros(size(s)); [m, n] = size(bs); if m == 1 & n == 1, bs = bs*ones(size(s)); % expand bs ;
elseif m - = size(s, 1) | П ~= size(s, 2), error('bs must be scalar or of same size as s'); end if - isempty(s), % boundary segment 1 ii = find(bs == 1); if length(ii)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA x(ii) = (1 - (- l))*(s(ii) - d(l, 1)) / (d(2, 1) - d(l, 1)) + (- 1); y(ii) = (0.5 - (0.5))*(s(ii) - d(l, D ) / (d(2, 1) - d(l, 1)) + (0.5); end % boundary segment 2 ii = find(bs == 2 ) ;
,
if length(ii) x(ii) = (1 - (l))*(s(ii) - d(l, 2)) / (d(2, 2) - d(l, 2)) + (1); y(ii) = (- 0.5 - (0.5))*(s(ii) - d(l, 2)) / "(d(2, 2) - d(l, 2)) + (0.5); end
л ав Г
14. еРш ени
зачд
м ат е м ат и че с окй
фи зи к
675zyxwvutsrqpo
% b o u n d a r y segm en t 3 i i = f i n d ( b s == 3) ; i f l e n g t h ( i i ) x ( i i ) = (- 1 - ( l ) ) * ( s ( i i ) - d ( l , 3) ) / ( d ( 2 , 3) - d ( l , 3) ) + ( 1 ) ; y ( i i ) = ( - 0. 5 - ( - 0 . 5 ) ) * ( s ( i i ) - d ( l , 3) ) / ( d ( 2 , 3) - d ( l , 3) ) + ( - 0 . 5 ) ; en d % b o u n d a r y segm en t 4 i i = f i n d ( b s == 4 ) ; i f l e n g t h ( i i ) x ( i i ) = (- 1 - ( - l ) ) * ( s ( i i ) - d ( l , 4) ) / ( d ( 2 , 4) - d ( l , 4) ) + ( - 1 ) ; y ( i i ) = ( 0 . 5 - ( - 0 . 5 ) ) * ( s ( i i ) - d ( l , 4) ) / ( d ( 2 , 4) - d ( l , 4) ) + ( - 0 . 5 ) ; en d en d
Ф а й л - нфу к ц и я recgeom п р едн а з н а ч ен а дл я п о члуен и я к о р ди н а т х и у то ч е к ч аст и гр а н и ц ы с н о м ер о м bs, со втесюу щ и х з н ач ен и ю п а р м е тр а s. Ло к аль н а я п ер м ен н а я nbs соедр ж и т ч и сл о ч а се т й гр а н и ц ы , а м а тр и ц а d — и н фо р м а ц и ю о п а р м е тр и з а ц и . Чи с л о с от л б ц о в d р а в н о ч и сл у ч у а с кт о в гр а н ицы , в п ер в ы й и в то р й э л е м н ыт к а ж од г о с от л б ц а з а н ес н ы н ач ль н о е и к о н еч н о е з н ач ен и я п а р м е тр а н ол ь и е ид н и ц а , в ртеь м и ч евт р о м э ле м ен т е з ап и сан ы н о м ер а п ри м и т вов , р а с п о л ж ен н ы х п о л ев у ю и п рав у ю с от р н у о т ч у а с кт а гр а н и ц ы (п о н а п р а в л ен и ю в о з растн и я п а р м е тр о в ) . е и мсет я оид н п р и м и т в — са м п р ям огу л ь н и к — В р а с м а тр и в а е м о м ч с ла у с н о м ер о м о ди н . В б л о к а х , к о т р ы м п решд есвюту т к о м е н ат р и и % boundary segment l - % boundary segment 4, п р о и сохид т п ои с к н жу о й ч аст и гр а н ицы , в ы ч и слен и е з н а ч ен и й п а р м ерт и ч ес к и з адн н ы х н фу к ц и й и з ап и с ь и х в м ас и в ы х и у . Д л и н ы м ас и в о в х , у с о в п адю т с дл и н о й вохдн о г о м ас и в а s, с о едр ж ащ ег о з н ач ен и я п а р м е тр а . мУ ен и е с о з да в т ь фа й л - н фу к ц и н е о б х ди м о в то м с ч л у а е то л ь к о с и сп о ль з о в ан и е к а к к ргу , э л и п с , к в а др т м ож н ы х п о дх в , одбун ы В к а ч е с вт п р и в едн н о гу о л ь н и к о глу ы п р я м ы е
, к о гд м с ат н д а р нт ы , п р ям огу л ь н и й лд
и с де к о м п о з и ц и о н н о а о бласт
я н ач и н аю щ и
й гео м ерт и е ь н е м ож е х г е о м ерт и ч е с к и к и л и м н о г уо л ь н и к х п о л ь з о в а те л й
е п р и м ер а р а с м о тр и м н ап и сан и й н а ри с . 14.21. О б л а с т ь я в л я е ст м с в ернх е й гр а н и ц ей , з а д в а е м о .
т бы т
е ф а й л - фн у к ц и я к р и в о ли н ей н ы й п араболо
й о бласт
ь с к о н с тр и у р о в а н х п р и м и ти в о в . О ид , о п и с а и дл
и
а , атк и х н и з в о з н н и ж е .
я о б л а с ти , м ч еыт р е х й zyxwvutsrqponmlkjihgfedcbaZYXWVU у = 0.5х . Н и ж н и е
IV. Ис по льз вани е Toolbox и р еш ени пр инхлыакд зачд zyxwvut аЧс т ь 676zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
. 14.21. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П ирме р ои тсалб , н е щ сяое т со й и з пирмовт в
с Ри
П о с л е д о в а ет л ь н о с т де к о м п о з и ц и о н н о
ь ед й с в т и й й гео м ерт и ей
1. Н а р и сйу т вы сот
е п р ям о гу л ь н и й о ид
, н а п р а в л ен н ы , п р и в едн к с ц ен рто е pdetooi.
н в сред
2. Э к с п о р ит рйу т е г е о м е рт и си в ы gd, sf И n s.
ю о бласт
3. П ер й ид т е к м а рт и ц е де к о м п о з и ц и о н н о dl - decsg(gd, sf, n s) . 4. С ген ер и рйу т
е фа й л - н фу к ц и
о б л а с ти
, И С П ЬОЛЗу
5. О кт р о й т е фа й с лу о в н ы й о п е р а то в нер х й с то р н н а те , к о т р ы
а н и ж е
х н а п о лчуен и .
м в н ач л и и з с р ед
е фа й л - н фу к ц и
е к о р ди н а т
, ш и р и н о
й дв
ы pdetooi в гл о б а л ь н ы й г е о м е рт и
а и
е м ас
и пр
ю mydomain с де к о м п о з и ц и о н н о я ВЫОЗ
и с
и п ом щ й ге о м ерт и е
и й
В wge o m ( d l, ' m yd o m a in 1 ) .
л mydomain.m в р е да к то р е М - фа й л о в р if, в к о т р о м о п р е дл я с т я п а р м е тр и ч е с к о ы п р я м о гу л ь н и к а , и з ам ен и т е о п е р а то р е о б ес п еч и в аю т р т е б му ы й в и д ч аст и г р а н и ц ы
. Н а й ди т
е нжу ы е з адн и ы п ри св аи в ан и .
й е я
Вы зо в н фу к ц и и mydomain и з к о м а н дн о й с рт о к и с п ер в ы м а рм г у е н то м , р а в н ы м н о м ер у ч аст и гр а н и ц ы , и с о в от р ы м — з н ач ен и е м п а р м е тр а и з и н ет р в а л а о т н л у я д о еи д н и ц ы (н а п р и м ер , 0.5)— п о з в о л яе т с у ат н о в и т ь но м е р н ж ун о й ч аст и гр а н и ц ы . П о с л едо в а етл ь н о з адвай т е н о м ер а гр а н и ц и с л ие д т е з а з н а ч ен и ям и х и у . П о лчуен и е к о р ди н а т х и у то ч к и , п р и н алде ж ащ е й и ск о м у ч у а ск т , о з н а ч ет , ч т о н ай ед н н ом е р ч аст и гр а н и ц ы , п од л еж а щ е й и з м ен ен и ю . В р а с м а тр и в а е м о м ер м и р п е в е рн х я с то р о н а п р ям о г уо л ь н и к а и ме т н о м е р , р а в н ы й еид н и ц е :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR >> [х , у ] = mydomain(1, 0.5) х = 0 У = 0.5000
л ав Г
14. еРш ени
зачд
м ат е м ат и че с окй
677zyxwvutsrqponm
фи зи к
, о п и с ы в аю щ и х в е рн х ю ю с от р н у п р я м о гу л ь н и к а , сн аб Бл о к о п е р а то р о в ж е н в а в от м а ит ч е с к и с ге н е р и р о в а н н о й фа й л - н фу к ц и и mydomain к о м ен ат р и ям и % boundary segment l. В да н н о м блок е с о ед р ж и с т я ли н ей н а я з ав и си м о ст ь абсц и с с и о р ди н а т от ч е к о т п а р м е тр а s. П ер в ы й с от л б е ц м а тр и ц d, и н и ц и а л и з и реум о й в н ач л е фа й л - нфу к ц и , св и едлть св у т о то м , ч т н ач ль н о е з н ач ен и е п а р м е тр а равн о н л юу , а к о н еч н о е — еид н и ц е . Н а п р а в л ен и е гр а н и ц ы , со втесюу щ е е в уе л и ч е н и ю п а р м е тр а , л егк о с уат н а в л и е слев а н ап раво) . И з м е в а ест я и з п а р м е тр и ч е с к о г о з адн и я (в да н н о м с ч л уа н и т е о п е р а то р ы п ри св аи в ан и я в блок е % boundary segment l, о бесп еч и рт е б у м ю к р и в о ли н ей н у ю гр а н и ц у в ви д е п ар аб о л ы . О ч е в и дн о , ч т о п а р або ли ч еск и й ч у а с от к гр а н и ц ы з а д е тс я п а р м е тр и ч е с к и м и з а в и с и м о с тя м и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA x = 2s- l, у = 0.5 (2s - l ) . О п е р а то р ы п ри св аи в ан и я п р и в е дн ы в ли с ит н г е 14.2.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 14.2. Па р м е т риеч сок е за дни е па р бол иеч согк о ачу с т к а гра ниц | zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ы о в -
ы
= 2*s( ii) - 1; = 0.5*(2*s(ii) С о рх а н и т б р аж ен н о
е фа й л - н фу к ц и й н а ри с
p d e g p l o t . В Ы З О
г о окн
ю и убеид тсь . 14.21. П о с тр о й т
, ч т о о н е г е о м е рт и
В p d e g p l o t ( ' m y d o m a i n ' ) П Р И В О Д И
а с гр а н и ц е
й (ри с
Рис
а с о вт ес у ю о бласт Т К П О Я В Ле н И
т о б л а с ти , и з о и п р и п ом ощ Ю
Графи чеС К О
. 14.22).
- 1 - 0.8 - 0.6 - 0.4 - 0.2
0
. 14.22. Г е о м е т р и
и ( p d e g p l o t ( 'm yd o m ain ' ) )
я област
0.2 0.4 0.6 0.8 1
и -
678
аЧс т ь
В ы ш ео п и с ан н ы п оз и ц и он н о фа й л - н фу к ц и Н али ч и в ае ит ч е с к о й
й п о хд й гео м ерти е ю дл
д п о з в о л яе й о б л а с ти
Toolbox и р еш ени
т п рост , и з м ен я й з а го т в к
я н а р и с о в а н н о
е м а рт и ц т од с у т
IV. Ис по льз вани е
ы де к о м п о з и ц и о н н о
п к о м н о ги тр и а н глуяц и
zyxwvu
зачд
ь фа й л - н фу к ц и
ю с дек о м
и с ге н е р и р о в а н н у е pdetooi.
ю
й гео м ерт и и и л и фа й л - н фу к ц и и окт р ы м P D E Toolbox, в ч а с тн о с ти , к ав от м а ю ш аг а секти .zyxwvutsrqponmlkjihgfedcbaZYXWV
м в о з м о ж н о с ят и и умен ь ш ен и
р и Т л а ц у г ня
о с о з ад т я а в от м аит ч ес к и в сред
пр инхлыакд
я
Ф ну к ц и я в л се т (м ас и в а
я in itm esh рт и а н лгуи реу я м а тр и ц а де к о м п о з и ц и о н н о ) с о дер ж а т и н фо р м а ц и
т п ло ск у
ю о б л а с ть й гео м ерт и
. Т р . В ы з о
ю о тр и а н глуяц и
, е е вохнд ы и в ы о х нд ы в
м а р мг у е н о т х а р мг у е н т
м а
[ р , е , t ] = i n i t m e s h ( d l ) ;
п р и в о ди в уд м ац и м а рт и ц ц и ям
т к з ап о лн ен и х с рт о к , з а н о с ят ю о б зу л ах е t рха н и ст и зу л о в . ^
ю рт е я к о р ди н а т
х м а рт и
, р а с п о л ж ен н ы я с о вт е с и
Пр и м е ча ни
ц р , е и t . В м арт и ц у р , со тящ юу ы зу ло в с ек т и . М а тр и ц а е с о ед р ж и х н а гр а н и ц а х м и н и м аль н ы х п о д б л а с те й у лок аль н о й и гл о б а л ь н о е м ж ед
и з т и н фо р
, в
й н м уер а
-
е
П о н тя ь р у кт р с у им с а в о в р , е и t п орщ е г в ес о ю щ у д ие л с м о бр аз о м . В д ер с е pdetooi е у делс т и н и ц и ал з и р о в ат ь ку т е с , н ап ри м ер , дл я п мряо ог л ь у н и к а , пиреч м лчш у е уанст ови т ь доачтсн о п к нру ы й раз м е р сорнт ы э м не л т а в ди алогв м ок н е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML Mesh Parameters. П рон м уероват ь зл у ы и эел нме т ы п о з в л ея т в ы бо р н п оу к т в Show Node Labels и Show Triangle Labels н ем ю Mesh. Дела е и н о д м бех о э к с п о ир т в а т ь к т е с у в глобаь н ы е и с ма в ы пр и п омщ и пн укт а Export Mesh..., и х сржеи одм е м ож н о п осмрте ь в р аб о ч е й се др . Ф ну к ц и мы ч а ет м е н ат
е п ар м и м ак си м аль н .
я in itm esh м ож е т с о ед р ж а т ь д о п о л н и те л ь н ы : н а з в а н и е с в о й с тв а , з н а ч ен и е . Н а п р и м е р о до п с у и т м о е з н ач ен и е лд и н ы с то р н
П о лч у е н н у ю к с те pdemesh, вохнд ы м м ас и в ы . П о с л е до в а те л ь н о с т
у м ож н и а р мг у е н а т м
о от браз и т и котро ь к ом ан д
ь в о ед т л ь н о й я в л ю ст , п р и в едн н а
е а р г м у е н ты ТВ С, СВОЙ ы тр е г у о л ь н о г
pdemesh(p, e, t)
т и в ы в о ди
т ск е т у
, п р и в едн н у
х ОНа З о э ле
-
м окн е п р и п ом ощ и я в ы ш еп ер ч и с л ен н ы е я н и ж е zyxwvutsrqponmlkjihgfe
[р , е , t] = initmesh(dl, 'Hmax1, 1.0);
и н и ц и а л и з и р еу
, з а д в а е О На т
ю н а р и с
. 14.23.
л ав Г
14. Реш ени
зачд
м ат е м ат и че с окй
- 0.8 - 0.6 - 0.4 - 0.2
Рис
. 14.23. С ект
679 zyxwvutsrqpon
фи зи к
а с м ак си м аль н
0.2 0.4 0.6 zyxwvutsrqponmlkjihgfedcbaZYXWVUT
0
о о д п с и ут м о рав н о
й дли н о й ие д н и ц
й с от р н
ы э л ем н ат
,
е
Ф ну к ц и я ref inemesh жслиу т лд я м у е н ь ш е н и я ш аг а с ек т и . П ер в ы м в о х нд ы м а р мг у е н от м я в л се т я м а рт и ц а де к о м п о з и ц и о н н о й гео м ерт и , адле е з адю т с я м ас и в ы с и н фо р м а ц и е й о тр и а н г л у я ц и , в в ы охнд ы х а р мг у е н а т х воз в р а щ а ю ст я м ас и в ы , со втес юу щ и е и з м ел ь ч ен н о й с ке т . П о му о л ч а н и ю с то р н а к а ж од г о э л ем н т а ед л и с т я п оп олам , к ажыд й р т е г оу л ь н ы й э л ем н т и ос н х д о й к с ет и р а з б и в а е тс я н а ч еыт р е ч а с ит . К о м а н ды , п р и в едн н ы е н и ж е , п р о и з в о дя т в ы ш ео п и с ан н о е м уен ь ш ен и е ш аг а ск е т и (с р ав н и т е р и с . 14.23 и р и с . 14.24).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [pi, el, tl] = refinemesh(dl, p, е , t); pdemesh(pl, el, tl)
Ф ну к ц и я refinemesh п о з в о л яе т з адт ь ря пу р а в л яю щ и х п р о ц ре уд о й др о б л е н и я с ек т и котры е тр егуо л ь н ы е э л ем н т ы и л и м и н и м аль н ы м ож н о в ы б р а т ь рд г о у й а л го р и т м м уен ь ш ен и вд е р а в н ы е ч аст и н а и б о л ь ш у ю с от р н у к о н еч н о г П ер в ы м в о хнд ы он н о й г е о м е тр и н у ю гео м ерт и
м а р мг у е н о т , н о и и м ю о б л а с ит .
м м ож е я ф а й л - нф у к ц и
т бы т
д до п о л н и ет л ь н ы , в ч а с нт о с ит я ш а г
ь н е то л ь к , о п и с ы в аю щ е
х п а р м е тр о в ь то л ь к о не . К р о м е то г о й дел и т н
, едли т е п о д б л а с ти а с е кт и о э л ем н ат о м а тр и ц
, к о т р ы
, , а
. а дек о м п о з и ц и й де к о м п о з и ц и о н
-
аЧс т ь IV. Ис по льз вани е Toolbox и р еш ени пр инхлыакд зачд 680zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
zyxwvut
0.5 г
- 1
. 14.24. С ект
Рис
р аы н и ч Г и кице фнотэ
- 0.8 - 0.6 - 0.4 - 0.2
е усливо
а с умен ь ш ен ы
0
0.2
м ш а го
0.4
0.6
0.8
1 zyxwvutsrqponmlkjihgfe
м ( r e f in em esh)
я ы ура вен и
я
Г ран и ч н ы е с ул о в и я в P D E Toolbox з адю ст я в мд у я сп ос бам и , л и б о п р и п ом щ и м а тр и ц ы гр а н и ч н ы х с лу о в и й (Boundary Condition matrix), л и б о в ф а й л - нф у к ц и . Чи с л о с от л б ц о в м а рт и ц ы гр а н и ч н ы х с лу о в и й со в п аде т с ч и сло м с от л б ц о в в м а рт и ц е де к о м п о з и ц и о н н о й г е о м е тр и , т . е . к ажыд й с от л б е ц о вт е ч а е т ч аст и гр а н и ц ы о б л а с ти . Н а к аж од й ч аст и гр а н и ц ы м ож е т е с лу о в и е бы т ь з адн о с ул о в и е о дн о г о ти п а : Д и р и лх е hu = r , и л и о б о щ е н н о Н ей м ан
а n- (cVu} + qu = g.
Р а з б ер м р с к ут у м а рт и ц ы гр а н и ч н ы х с ул о в и й . бУеид етс ь , ч т о ср ед а pdetooi н а с тр о е н а н а р еш ен и е э л и п ит ч ес к о г о р уа в н е н и я о б щ ег о в и да . П о с ат в ь т е н а все х гр а н и ц а х п р я м о гу л ь н и к а гр а н и ч н о е с ул о в и е Д и р и лх е , п р а в а я ч аст ь котрог о з ав и си т о т к о р ди н а т , н а п р и м е р , х +у . Н е з абьдут е и сп о ль з о в ат ь п о э л е м н нт ы е о п ер ац и , т . е . в ди а л о г в о м окн е zyxwvutsrqponml Boundary А л Condition еслуд т в е сит ие д н и ц у в срт о к у h и х . 2 + у . 2 в срто к у г . Э к с п о р ит р й у т е в рабоч у ю с р де у м арт и ц у гр а н и ч н ы х с ул о в и й , в ы б р а в в м ен ю f Boundary п н у к т Export Decomposed Geometry, Boundary Cond s. П о яв л яест я м п о ум о л ч а н и ю с от и т м ас и в ь дл я хра ди а л о г в о е окн о Export, в к о т р о
л ав Г
14. Реш ени
неи н ит г е о м е рт и о п и сан жми т
зачд
я м а рт и ц ь де к о м п о з и ц и о н н у
м ат е м ат и че с окй
ы гр а н и ч н ы
фи зи к
х с лу о в и ю г е о м е рт и
и и з м арт и ц о вы ш е . С ей ч а е О К , в р а б о ч е
ы гео м ерт и с н а м п о н а до б и с т й с р ед е п о яв и л с
681 zyxwvutsrqpon
й и , о дн о в р е м н н о ю в д . П о лчуен и и о бласт и п р и п о м о щ я м а рт и ц а ь гр а н и ч н ы я двму ер н ы й м ас и
, п р елд а г ест е де к о м п о з и ц и о н н о и фну к ц и
я с ро а х
-
й о и decsg б ы л х с ул о в и й . Н а в ь zyxwvutsrqponmlkjihgfedcbaZY
b = 1 1 1 1 1 9 48 48 49 120 46 94 5.0 43 121 46 94 50
1 1 1 1 1 9 48 48 49 120 46 94 50 43 121 46 94 50
1 1 1 1 1 9 48 48 49 120 46 94 50 43 121 46 94 50
С рт к у а м а рт и ц с о б л ен а дл я рхан ен и ид ф е р н ц и а л ь н ы ц ы . В р а с м а тр и в а е м о гр а н и ч н ы м м а рт и ц с я н ны х р х а н и ст ри ц и лд и н а ж ас т к о м а н дн о р уа в н е н и
1 1 1 1 1 9 48 48 49 120 46 94 50 43 121 46 94 50
ы гр а н и ч н ы я гр а н и ч н ы х руа в н е н и й м с чл у а е
и с ул о в и я м а дв с ул о в и й
а со ти е ч а с ит
и Д и р и лх
т и з ч ые т р е , в н и ж н е , п ри ч е м к а ж ыд
х й ч аст
я в п о с л е до в а ет л ь н ы гр а н и ч н ы х фо р м лу я кы д о
х с лу о в и х с лу о в и . К аж ыд , к о гд
о х с лу о в и . О б р а ти т
в с,о лво им е окн о сам я (а н е си есмт ы
й с о ед р ж и е с о сатв ляю щ и и си м волы ) фо р млу
й д о с та о ч н о сло ж н ая , о п и сы в аем ы й в з а д ч а х й с от л б е ц с о вт ес у а о бласт ь я в л ес т я п р я м о гу л ь н и к о
, о н
а п ри сп о х с и с е тм о т ч аст и гр а н и
й м с
е с zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED г = х + у и h = l ан к аж од й с то р о н е , о ди н а к о в ы х с то л б ц о в . С то л б е ц с ул о в н о е дл и т и з ап и сан ы фо р м л у ы к о э ф и ц и е н от в гр а н и ч й си м в о л с рт о к и с фо р м луо й лд я к о э ф и ц и ен т а ищ уд и х э л е м н ат х . В нерх я я ч аст ь с от л б ц а м ат т и н фо р м а ц и ю о ти п е гр а н и ч н ы х с лу о в и й вн и м ан и е , ч т о в н и ж н е й ч аст и с от л б ц а с о е рд х ф о р м л уы . Д л я то г о ч от б ы от браз и т ь в , се луд т п р и м ен и т ь н фу к ц и ю char. В счлуа е ы р ха н яст я в э лем н ат х с то л б ц а , н а ч и н а я с
682
аЧс т ь
с е ьд м о г м а рт и ц
, в че м н есло ж н ы и з к о д в в с и м в о л ы
IV. Ис по льз вани е
о б уе и д ь т с я
Toolbox и р еш ени
пр инхлыакд
zyxwvu
зачд
, п р е о б р а з о в а в э л ем н т ы н и жн е й ч аст и :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI
» char(b(7:end,:)) ans = 0000 0000 1111 xxxx
2222 У
У
2222
П ер в ы е дв а э л ем н т а з а р е з е р в и р о в а н ы п о д к о э ф и ц и ен т ы усло в и я Н е й м а н а (р ав н ы н л юу , п о ск о ль к у п о с ат в л е н о с лу о в и е Д и р и лхе ) . Т р е ти й э л ем н т со ед р ж и т з н ач ен и е /г , а о сатл ь н ы е (см . сврех у в н и з ) — с и м в о л ы в ы р аж ен и я А А х . 2 + у . 2. Ф о р м а т м а рт и ц ы гр а н и ч н ы х с ул о в и й оп и са н в до к м у е н а т ц и и к PD E Toolbox, соедрж ащ ей с я в фа й л е pde.pdf. В п р о ч ем , до с та о ч н о л е гк о р а з о б р а ть с я в да н н о м ф о р м а те , з а д в а я гр а н и ч н ы е с лу о в и я Д и р и лх е и Н ей м ан а и о то б р а ж а я си м вол ы м а рт и ц ы гр а н и ч н ы х с лу о в и й в к о м а н дн о м о к н е . К о э ф и ц и ен т в ч а с нт о с ит б ы ть
, дл
ы р уа в н е н и я э л и п ит ч е с к о г
я и п р ав
ь з а д ю ст
я н ес к о л ь к и м
и с п о с б а м и , ы zyxwvutsrqponmlkjihgfedcba a , b и с м о гу т
я к о э ф и ц и ен т
:
• к о н с та н та м и
;
• с рт о к а м о п ер ац и р ем н н а
и ф о р м лу , с о едр ж ащ и м й (дл я к о э ф и ц и ен от я и ) ;
• м ас и в ам
и с о з н ач ен и ям
П р и р еш ен и в и й яв ляю ст
и си е т я м а тр и ц а м и
ло еС в р П р и б ли ж ен н ы зу ла
я ч аст о р уа в н е н и
и п ер м ен ы в н ел и н ей н ы и дл
м р уа в н е н и
я к а ж до г
е х и у и з н а к и п о э лем н т ы х руа в н е н и й и с п о л ь з ес т у о к о н еч н о г
о э л ем н ат
х я пе -
.
й к о э ф и ц и ен т ы си есмт ы и гр а н и ч н ы х с л уо .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
ы м р еш ен и е х с ке т и
. С елуд
т и м ет
м гр а н и ч н о ь в в и уд
й з адч , ч т о п р е дв а р и те л ь н
и я в л ес т
я в е к то о до л ж н
р з н ач ен и а бы т ь з адн
й в а
л ав Г
14. еРш ени
зачд
м ат е м ат и че с окй
фи зи к
683 zyxwvutsrqponm
м а рт и ц а и л и фа й л - н фу к ц и я гр а н и ч н ы х с ул о в и й ь , тр и а н глуяц и р , е , t и к о э ф и ц и ен т ы урав н ен и я (р аз муестя , п ер м ен н ы е м о гу с я п о - рдг о у м ) . Е сл и р еш аест я н е с ат ц и о н а р н а я з а д ч а , т о н ео б хид м з а т ь р еш ен и е в н а ч л ь н ы й м о м ен т в р ем н и и в е к то р с о з н а ч ен и ям в котры е е с лу д т н а й т и р еш ен и е . Н е к о т р ы е со лв ер ы рт е б ю у комп оз и ц и он н о й ге о м е тр и .
я в м ас и в а т н а з ы в а ьт
х о к ау
-
и в р е м н и т з адн и
, я ед -
С о лв ер ы р еали з о в ан ы в фа й л - н фу к ц и я х с д о с та о ч н о сло ж н ы м и н етр ф й со м . P D E Toolbox о б л а д е т н ес к о л ь к и м и с о л в ер ам и лд я н оа х ж е д н и я р еш е н и я р а з л и ч н ы х ти п о в з адч :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П assempde — дл
я э л и п ит ч еск и
• p a r a bo lic —д л • h ip e r bo lic — лд
х урав н ен и
я п ар б о ли ч ес к и
х р уа в н е н и
я ги п ер б о л и ч ес к и
• pden on lin — лд
я н ел и н ей н ы
• adaptmesh — дл л и п ит ч е с к и х урав н ен и
я а д п ит в н о
• pdeeig — лд
й и си сетм
я р еш ен и
й и си сетм
х руа в н е н и
;
х ура в н ен и й
й ге н е р а ц и м с з а д н н о
я э л и п ит ч еск и
;
й и си сетм
х с ат ц и о н а р н ы й и си ест
;
и ск е т
;
и и н оахж едн и
я р еш ен и
й то ч н о с ть ю х з а д
я э л -
;
ч н а со б свтен н ы
е з н а ч е н и я
.
И н ет р ф й с с о л в ер а assempde яв л ест я н аи бо ле е ну и в е р с а л ь н ы м , о н п о з в о л яе т н е то л ь к о р еш и т ь с и ем т у л и н ей н ы х р уа в н е н и й м еот д а к о н еч н ы х э ле м е н от в , и ск лю ч а я гр а н и ч н ы е с ул о в и я Д и р и лх е , н о и п о лчуи т ь м а рт и ц у же с кт о с ит , м арт и ц у м ас с и в е к то р н а г р зу к и , и л и вс е с о сатв н ы е ч аст и м а тр и ц ы и в е к то р а с и е мт ы м еот д а к о н еч н ы х э л е м н от в . П ер в ы м в о х нд ы м а р мгу е н от м assempde з адест я м а тр и ц а гр а н и ч н ы х с ул о в и й , н а п р и м е р ь , и л и и м я фа й л - н фу к ц и и с гр а н и ч н ы м и сул о в и я м и , н а п р и м е р boundcond, дал е е куа з ы в а ю ст я м а рт и ц ы с и н фо р м а ц и е й о р т и а н гл у я ц и и и к о э ф и ц и ен т ы р уа в н е н и я . В ы з о в ы фа й л - н фу к ц и и с онд и м в ы охнд ы м а р мг у е н о т м zyxwvutsrqponmlkjihgfedcbaZY u = assempde(b, p, е , t, с , a, f); и = assempde('bouncond', р , е , t, с , a, f) ;
п р и в о дя котры п р о и с о х ди
т к з ап и с х р х а н я ст т пр
и в в ек от я в р . С б о р к и о б р а щ ен и
р и з н ач ен и й р еш ен и я в зу ла а м а рт и ц ы и в е к то р а с и е мт и к assempde с двму я в ы о х нд ы м
х с ект и ы зе б и а р г м у е н та м и
, к о р ди н а т е ринеяш
ы :
[К , F] = assempde(b, р , e, t, с , a, f); [К , F] = assempde('bouncond1, р , е , t, с , a, f) ;
О с ат л ь н ы е сп ос б ы в ы з о в а assempde п о др о б н о о п и сан ы в до к му ен ат ц и PD E Toolbox. И с п о л ь з о в а н и е все х в о з м о ж н о с ет й assempde рт еб у н и я то г , к а к чуи ыт в а ю ст я гр а н и ч н ы е с ул о в и я п р и в ы ч и с л ен и в е к то р в п рав ы х ч а се т й э л е м н от в . Ф а й л pde.pdf с о едр ж и т раз д Element M ethod" с н ео б хид м о й и н фо р м а ц и е й .
и п о т п о н и м а и м а рт и ц и . "The F inite
684
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvut
зачд
С о л в ер ы p a r a bo lic и h yperbolic сраз у в ы да ю т м а рт и ц у с р еш ен и ем . Водх н ы е а р мг у е н т ы ад н н ы х с о л в ер о в та к и е ж е , к а к у assempde; к р о м е то г , з а е ад ю с т я в е к то р з н ач ен и й р еш ен и я и о в н а ч л ь н ы й м о ен т в р ем н и (в счлуа ги п е р б о л и ч е с к о г о р уа в н е н и я щ е е и в е к от р uto с о з н ач ен и е м п р о и з в о дн о й р еш ен и я) , в е к то р zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB t l i s t м о е н от в в р ем н и , в к о т р ы е р т е б ус я н ай т и ре ш ен и е , и к о э ф и ц и ен т d руав н ен и я п р и п р о и з в о дн о й п о в р ем н и . К аж ыд й с от л б е ц м а тр и ц ы и ес т ь в е к о т р с о з н а ч ен и ям и п р и б ли ж ен н о г о р еш ен и я в з ула х скет и в с о вт ес юу щ и й м о ен т в р ем н и , ук а з а н н ы й в t l i s t :zyxwvutsrqpon u = parabolic(uO, tlist, b, p, e, t, c, a, f, d) u = hiperbolic(uO, utO, tlist, b, p, e, t, c, a, f, d) П р и р еш ен и ку а з т ь в е к то ю ст я с о б вт е н н ы б е с к о н е ч н о с ьт
и з ад ч н а с о б вт е н н ы р г дли н ы дв а с гр а н и ц а м е з н ач ен и я . еЛв а ю (- in f)
[ v,
1] = p d e e i g ( b ,
В ы о н дх ы с о ед р ж и си в о
м а р гм у е н о т т з н ач ен и м р , и 1 — в ек от
С олве ны
х з а д ч
е з н а ч ен и
я с о л в ер о и и н ет р в а л
я гр а н и ц
а и н ет р в а л
p , e , t , с , a , d ,
м pdeeig яв л ю ст я с о б вт е н н о й н фу к ц и р с о б вт е н н ы х з н а ч ен и й
р pden on lin , п р енд аз н ач ен н ы , и м е т т е ж е вохнд ы
Э ф е к ит в н о а д п ти в н о г го р и т з ан и е э ф и ц и е н от
ь ид ало г в
й с от л б е , о п р едля м ы
ц котро
й х м ас
-
.
й лд
я р еш ен и я н ел и н ей н ы , ч т о и assempde
е п а р м е тр ы
о окн у ос р в л у е х оп ц и я
е н ао х ж е д н и о и з м ен ен и
х с ат ц и о н а р
-
f)
а Solve Parameters сдер ы pdetool, ю вуст ео , п оз веля т п ч и о лу т ь ва н л е п с т р д и е о воз м ж х солвре а pdenonlin.
е р еш ен и я
, и м ею щ ег о боль ш и е г р а д и е н ты р adaptmesh р еал и з еу т а д п ти в н ы о ру а в н е н и я . П р о с то й вы з о в с о лв ер й гео м ерт и и д , м арт и ц ы гр а н и ч н ы х с ул о в и я с , а и п р а в о й ч аст и f
я секти я э л и п ит ч е с к о г
в урав н ен и
, к аж ыд х с ект и
е ^Д
я н и л е й н мо х доп лн илеьтн ы
м р еш ен и м де к о м п о з и ц и о н н о
с
и яв л ю ст я в е к то р р еш ен и я и н о р м а в е к то р а н ев яз и н ел и н ей н о й з адч и м ео т д м Н ь ю то н а . Д о п о л н и те л ь н ы е а pden on lin , пу р а в л яю щ и е в ы ч и с л и ет л ь н ы м п р о ц ес о м , : н а з в а н и е , з н а ч ен и е . Т а б л и ц а воз м ожн ы х з н ач ен и й п ри и к PD E Toolbox.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
К^ Г Пр и м е ча н и П а н ел ща ны
я
r)
я м а рт и ц а и в з ула
[ u , r e s ] = p d e n o n l i n ( b , p , e , t , с , a ,
В Ы ОН Д Х М И а р г м у е н ат м к и п р и р еш ен и а р мг у е н т ы со лв ер з а д ю ст я п арам и в е дн а в до кму ен атц и
м pdeeig ртесбу , н а к о т р о м раз ы ск и в а а м ож е т бы т ь ми н у
. С о л в е
[ и , р , е , t ] = a d a p t n \ e s h ( g , b , с , a ,
f)
, рт еб у
-
т й ал а с кау й ь , к о -
л ав Г
14. еРш ени
п р и в о ди н ию п о з в о ляю н ач ль н у н ел и н ей н о г в е к от с ке т
зачд
т к п о и ск
м ат ем ат и чес окй
у р еш ен и
физк
685zyxwvutsrqponm
и с о л в ер а , п р и н яыт м и п о му о лч а , з а д в а ем ы е п ар м и с в о й с тв о , з н а ч е н и е т о п р едл и т о до п суит м о е ч и сл о к о н еч н ы х э л е м н то в ю рт и а н г л у я ц и ю , сп о с б др о б л е н и я э л е м н от в и и сп о ль з о в ан и о с о л в ер а . С о л в е р adaptmesh в о з в р а щ а е т в в ы охнд ы х а р мгу ен ат р р еш ен и я и и м ас и в ы р , е и t , с о едр ж ащ и е и н фо р м а ц и ю о р а с ч е тн о .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
. Д о п о л н и те л ь н ы
я с усат н о в к а м
-
е а р гм у е н ы т ь м ак си м аль н
Ви з а у л и з а ц
я ре лзутьа
, , е х й
а
Ф ну к ц и и pdegpiot и pdemesh п р енд а з н а ч ен ы лд я г р а ф и ч е с к о г о о т браж е н и я г е о м е рт и и о бласт и и с ек т и , и х и с п о л ь з о в а н и е о п и сан о в п р еы д щ у и х р а з де л а х . О с н о в н о й н фу к ц и е й дл я в и з аул и з а ц и и р еш ен и я я в л се т я pdepiot, котра я п о з в о л яе т пу р а в л я т ь в и од м п о чл у а е м ы х гр а фи к о в п р и п ом ощ и р я д а д о п о л н и ет л ь н ы х п а р м е тр о в . Ф ну к ц и и pdecont и pdesurf, с рт о ящ и е ли н и и руо в н я р еш ен и я и л и р т ем х р н ы й гр а фи к , р еа л и з юу т ч а с нт ы е с ч л уа и о б р ащ ен и я к pdepiot. Вондх ы м и а р мг у е н а т м и pdecont и pdesurf яв л ю ст я м а рт и ц а р с к о р ди н а т м и зу л о в , м а рт и ц а t с о вт ес и я гл о б а л ь н о й и л о к аль н о й н му ер а ц и й и в ек от р и с о з н ач ен и ям и р еш ен и я в з у лах . Чевт р ыт м д о п о л н и ет л ь н ы м а р мг у е н о т м pdecont м ож е т я в л ьт с я в е к то р з н ач ен и й , к о то р ы е требсту я от браз и т ь л и н и ям и уро в н я , и л и и х ч и с л о . И н ет р ф й а р мг у е н т
с н фу к ц и а яв л ю ст я п ары
ле е з а дю ст
и pdepiot до с та о ч н о ну и в ер с а л ен я м ас и в ам и р , е и t с и н фо р м а ц и е : с в о й с тв о , з н ач ен и е (та б л
14.1.е ьын итле zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML Дпо пытер амр pdepiotzyxwvutsrqpo
а ц и а лб Т св о й т С
о
и е н ча З
. П ер в ы е тр и вохнд ы х й о тр и а н глуяц и . Д а . 14.1).zyxwvutsrqponmlkjihgfedcbaZYXWVU
е
xydata
В е к то г о г р а ф и к
xyst yle
off, fl a t , i n t e r p (п о ум о л ч а н и ю
contour
on, off (п о ум о л ч а н и ю ли н и й
zdata
В е к то н ог
colormap
c o o l, h o t , gray, bon e, ... — ц в е то в ы
mesh
on, off (no ум о л ч а н и ю
) — о т б р а ж е н и
colorbar
off, on (п о ум о л ч а н и ю з н ач ен и я
) — в ы в о
р с о з н а ч е н и я м а
р с о з н а ч е н и я м о г р а ф и к а
и р еш ен и
я в уз л а
х дл
) — с п о с б
) — о т б р а ж е н и и р е ш е н и
я п о с тр о е н и ы з а л и в к
е ил я в уз л а
я дв му е р н о
х дл
и с к р ы ти я п о с тр о е н и
е п а л и тр
и к о н т ур о
в
е к о н т ур н ы
х
я тр е м х р
-
ы е к о н е ч н о э л е м е н тн о
д ш кал
-
ы с о тв е с тв и
й с ект я ц в ет
а и
и
686zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA таьс Ч IV. вьзаоине лпос И Toolbox и ринеш х ын а дипкрл зач д и ц Та л б
14.1 (оаин)екч о zyxwvutsrqponmlkjihgfedcba
и е н ча З е о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
в с от й С
title
С рт о к
le ve ls
иЧ с л ж а ем о г
а с з аоглвк
м
о ли н и
й уорвн о ли н и мя
и уорвн
я и л и воект я
р с о з н чае и мя
и рше не и я
, ообрта
-
П ри м е р и сп о ль з о в ан и я pdepiot п ри в ед н в ю су л е д щ е м р а з де л , п о св ящ ен н о м р еш ен и ю н ек о т р о й м о ед л ь н о й з адч и с и сп о ль з о в ан и е м н фу к ц и й PD E Toolbox.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Р е ш ни
е м еод лнь
Р а с м о рт и
й задч
м р еш ен и
е м о едль н о
и
й з а д ч
и дл
2
хд
г +
2
уд
д и
я эли п ит ч ес к о г
.
2
г 2 = - 5n sin их
о урав н ен и
я
• sin 2ny
в п р я м о гу л ь н и к е с ц ен рто м в н а ч л е к о р ди н а т , в ы с о т й е ид н и ц а и ш и р и н ой , р а в н о й вд м у . Н а с от р н а х п р я м о гу л ь н и к а п о с ат в л е н ы о дн о р дн ы с лу о в и я Д и р и лх е . И з в ес нт о то ч н о е р еш ен и е M(JC, y)=simix- sm2ny . Т р ебу с е т я п о с л е до в а ет л ь н о му ен ь ш ат ь ш а г скет и и р е ш а т ь з адч у , п о к а п ри бли т о лти ч аьт с я о т то ч н о г о м ен е че м н а 0.01. ж ен н о е р еш ен и е н е едбу е с лу о в и я в сред е pdetooi и э к с п о р З адй т е г е о м е рт и ю о бласт и и гр а н и ч н ы ит р й у т е и х в гл о б а л ь н ы е м ас и в ы g и ь и з м не ю Boundary. С ген ер и рйу т е дв М - фа й л а с де к о м п о з и ц и о н н о й гео м ерти е й myg.m и гр а н и ч н ы м и с ул о в и я м myb.m п р и п о м о щ и н фу к ц и й wbound и wgeom. Алго р и т м оф рм и т е в в и ед фа й л - н фу к ц и и modeiexam, вохнд ы м и а р мг у е н а т м и котро й я в л я ю ст я : и м ен фа й л о в с гео м ерт и е й о бласт и и гр а н и ч н ы м и усло в и ям и и то ч н о с т ь р еш ен и я В М - фа й л в к л ю ч и т е п о нфд у к ц и ю дл я вычи слен и я то ч н о г о р еш ен и я . чУ ит е я р еш ен и я в зу ла ч т о да н н а я п о нфд у к ц и я п р е дн а з н а ч е н а л д я н о а хж е д н и скет и и в ы з ы в а ест я о т м ас и в о в с к о р ди н а т м и зу л о в , п о э т м у е с лу д т ис п оль з оват ь п о э л е м н нт о е му н о ж ен и е . Ли с ит н г 14.3 соедр ж и т етк с т осн ов н о й фа й л - н фу к ц и и modeiexam и п онфду к ц и и exsol, сн аб ж ен н ы й п о др о б н ы м и к о м е н та р и я м и . иэ н
е м оед л ноь
й за д ч
% зч а д
я ни д о х а и Длхир
е дл
т ри н е ш я г о к с е ч итпил э
а и а . , х -
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
function modeiexam(gfile, bfile, err) % Ф- л й а и ц к н у ф
е
е мо н ь л е д о
й го н ч и н а р о д гоньлаицнер ф и
й о
л ав Г
14. еРш ени
% уи н е в а р % Ие и н а в о з ь л о п с %
зачд
м ат е м ат и че с окй
я в по н ь л о г у о м я р : modelexam('фй а
фи зи к
й ои т с а л б л с дп м о к е
687zyxwvutsrqp
. . гм о е
. ', 'фй а
л с гн а р
% Ии ц а з и л а и ц н я ск т е и с мо н ь л а м и с к а й со н р о т [р , е , t] = initmesh(gfile, 'Hmax', 0.2); % Зи н а д е ко т н е и ц ф э о в уи н е в а р я а = 0; с = 1; % Ои н е л д е р п е ск о р т и с фо л у м р о й по в а р й чт с а f = '5*pi^2*sin(pi*x) .*sin(2*pi*y) ' ;
, у. волс '
й эт н е м л
а 0.2
и уи н е в а р
% Ои ц а з и н а г р я цг о к с е ч и л к и о ии н е ч ь л е м з я си к т е % н е дт у н г и т с о а та м е у б е р я тт с о н ч о ь erhelp = 1; while erhelp > err % Ии н е ч ь л е м з е ск т е и [р , е , t] = refinemesh(gfile, p, e, t ) ; % Ри н е ш е уи н е в а р я u = assempdeCbfile, p, e, t, c, a, f); % Ви н е л с и ч ы е тг о н ч о о ри н е ш я в уа л з х си к т е % ас и ц с б ы и от а н и д р ы уо л з в хс т я н а р я в са к о р т р 2 , :)); uex = exsoKpd, : ) , ( % Ви н е л с и ч ы е нм р о ы пт с о н ш е р г о и пг о н е ж и л б и р % в- р о т к е м о ц б л о т с , а пи ц к н у ф д о я exsol вс т е а в ы з % во т к е р с ты н ч о м ре и н е ш м нм и д о х б о е о т ьтаворинопснар erhelp = norm(u - uex', Inf); end
, err)
я
, пк о
а
, х мцирта о ри н е ш
ы р я (и яс т е я л в я о т ск о р т , пм о т э о )
я у
% Ри н е ш е нн е д й а о с то м е у б е р й ть т с о н ч о ю % Ви ц а з и л а у з и я ро н т е ч с а й ти ц я л у г н а и р и и во в ы д кг о н р у т н о о гк и ф а р а % ряинеш , зг о т и л а о цо т е в м figure subplotzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (2, 1, 1) pdemesh(p, e, t) subplot(2, \, 2) pdeplot(p, e, t, 'xydata1, u, 'colormap', 'gray1, 'colorbar1, 'off') function z = exsol(x, y) % Пи ц к н у ф д о я дл я ви н е л с и ч ы я тг о н ч о z = sin(pi*x).*sin(2*pi*y);
о ри н е ш
я
аЧс т ь
688
О ЗЫ В л ен и ц в оет ь ст
IV. Ис польз вани е
Toolbox и р еш ени
пр инхлыакд
за ч д
zyxwvuts
В ф а й л - ф ун к ц и и modelexam( 'myg' , 'm yb', 1.0е - 02 ) П р и в о д и т К В Я ОП ю гр а фи ч е с к о г о окн а , в к о т р о е в ы в о яд с т я р а с ч е нт а я с ект а и з а л и ыт й м к о н р ту н ы й гр а фи к р еш ен и я м о ед л ь н о й з адч и с рт е б у м о й то ч н о ю (р и с . 14.25).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
- 0.5
- 1 - 0.8 - 0.6 - 0.4 - 0.2
0
0.2 0.4
0.6
0.8
1zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
zyxwvutsrqponmlkjihgfed
ш
8 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA - 0.5 - 1 - 0.8 - 0.6 - 0.4 - 0.2 0 0.2 0.4 0.6 0.8 1
Р си
. 14.25. Р асчнет а
я скет
PD E Toolbox соердж и т н ес к о л ь к о дем о н сртац и о н н ы pdedemo8.m с реш ен и е м р аз ли ч н ы х з адч о с е т ля ь н о р а з о б р а ть с я в в о з м о ж н о сят я в л се т я фа й л - п р о гр а м о й с и н етр фй со од с у т п к к аж од м у и з п р и м е р о в .
Ф уци н к
а и реш ен и
е м оедль н о
й з адч
и
х фа й л о в
: pdedem ol.m — . Д ан н ы е п р и м ер ы п о з в о л яю т сам о х PD E Toolbox. М - афй л pdedemos.m м к о м а н дн о й с тр о к и , о б л егч а ю щ е й
и PDE Toolbox
PD E Toolbox п р едо с ат в л яе фн у к ц и й , п р едн а з н а ч ен н ы н и я г е о м е рт и и о бласт щ е н о п и сан и ю нф у к ц и й н и я е е н а к о н еч н ы п о лч у и т ь п р и п ом ощ р еали з о в ан н ы х в ни п о P D E Toolbox.
т в р а с п о р яж ен и е п о л ь з о в а етл я окол о х лд я р е а л и з а ц и и э та п о в р еш ен и я з адч и д о в и з аул и з а ц и и р е з л у ь та . Д а н н ы й р а з де , сжлуащ и х л д я к о н с тр и у р о в а н и я о бласт е э л е м н ыт . И н ф о р м а ц и ю о н фу к ц и и в с е гд и к о м ан д ы h elp. Д е та л ь н о е о п и сан и е все х х а л г о р и тм о в и м ес т я в сп рав о ч н о й с и е мт
п яи т ед с я т
и и о т з ад л п о св я и и р а з б и е а м ож н о н фу к ц и й и е M ATLAB
л ав Г
14. еРш ени
Создани Г е о м ерт и ч е с к и ли б до б а в л е н и з а п щу ен а с лнед и з в ан и и с п о л ь з ю у ст
зачд
м ат е м ат и че с окй
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON 689 zyxwvutsrqponm
фи зи к
е иксечртмоег
х примтво
й п ри м и т и п ом щ и с о в т ес ю у щ е ю с о вт ес ю у щ е г , т о п о яв л ест м до п о л н и етл ь н ы е п ри м и т ва , з а к л ю ч ен н о я с ат н да р нт ы
в м ож е
в
н ли б о и з м ен ю сред ы pdet o o i, . В ы з о в н фу к ц и и п р и в о ди т к о п ри м и т в а в окн о с р ед ы (есл и pdetooi н е я о к н о pdetooi и п р и м и т в о то б р а ж е тс я в н ем ) . П о м а р мг у е н о т м к а ж од й нфу к ц и и м ож е т я в л ьт с я н а е в а п о с тр о ф ы . Е сл и н аз в ан и е н е з адн о , т о е и м ен а : c i, E I , R I , ...
о пр
т бы т
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
ь с о з ад й нф у к ц и
• p d e c i r c ( x c, у с , г ) , p d e c i r c ( х с , у с , г , l a b e l ) —к р у г С ц е н т р о м В хс , у с и р а д и у с о м г .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA О pdeellip(xc, су
эли п н а г оу
с с ц ен рто л phi (з адв ем ы
, а , b, phi) , pdeellip (хс
м в сх , у с и п о лусям й в р а ди а н а)х
, су
, a, b, phi, label) —
и а и ь , п о в ер н ыту
й вокру
ы и о р ди н а т
ы к о т р ы
х к у а з ы в а ю ст
П p d e r e c t ( [ x m i n xmax ym in у г л а х ] )
label) — п р ям о гу л ь н и к
е о Гм е т р и Н ек о т р ы т и н а к о н еч н ы и м ею щ и с х
е фну к ц и
й к о р ди н а т м
я гео м ерт и бы л
, р еали з юу щ и
ym a x] ,
.zyxwvutsrqponmlkjihgfed
и в ер ш и н
я
и п р е о б р а з о в а н и е э лем н ыт
я фну к ц и й
, p d e r e c t ( [ x m i n xmax ym in
и и тирлцауягн
-
я в vx и vy
, о п р едля м ы
я обл а ст
а
К С в е р Ш И Н а
• p d e p o l y ( v x , vy) , p d e p o l y ( vx, vy, l a b e l ) —М Н ОГ УОЬЛ Н И
м и , абсц и с
г ц е н рт
.
и о п и сан
ы р а н е
и о бласт . Н и ж
х г е о м е рт и ч е с к и
и и р а з б и е н и е п р и в ед е а л г о р и тм ы
я о б л ас н сп и со .
к все х
• gst a t = csgchk(gd) — п р о в ер к а п рав и ль н о ст и з адн и я м а рт и ц ы gd гео м ре т и и о б л а с ти . В ы охнд о й а р мг у е н т я в л ес т я в е к от р - с рт о к й , к аж ыд й э л ем н т котро й с о ед р ж и т и н фо р м а ц и ю о с о в т ес ю у щ е м п ри м и т в е р.азд "Заине д гте- мое (сркту а м а рт и ц ы гео м ерт и и о бласт и о п и сан а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR ир таис"л б о йаон д )авыг л . П di = descsg(gd, sf, ns) —г е н е р а ц и я м а рт и ц ы di де к о м п о з и ц и о н н о й г е о м е рт и и о бласт и и з м а рт и ц ы г е о м е рт и и gd, срто к и с ф о р м л уо й с в яз и г е о м е рт и ч е с к и х п ри м и т во в sf и м арт и ц ы с о вт е с и я с от л б ц о в gd с и м ен а м и п ри м и т во в в фо р млуе . В ы з о в desceg с дмву я в ы о х нд ы м и а р уг м е н а тм и [di, bt ] = descsg(gd, sf, ns) п р и в о ди т к з ап и с и в bt и н фо р м ац и и о с о вт е с и и м и н и м аль н ы х п о д б л а с ет й г е о м е рт и ч е с к и м п ри м и т в ам . • [newdi, newbti] - csgdei (di, з и ц и он н о й г е о м е рт и и о бласт и в се л а с тя м и . В ы онхд ы е а р мг у е н т ы де к о м п о з и ц и о н н о й г е о м е рт и и и м аль н ы х п о д б л а с ет й .
bt) — адлеун и х гр а н и ц м же д с о ед р ж а т о б н о в л ен н у ат б л и ц у с в яз е
е и з м арт и ц у м и н и м аль н ы м й п ри м и т во
ы di дек о м п о и п о д б ю м а рт и ц у newdi в и ми н и -
аЧс т ь
690 •
[ р , е ,
t ]
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvuts
зачд
= i n i t m e s h ( g l ) , [ р , е , t ] * i n i t m e s h ( ' n i yge o m 1 ) —И Н И Ц И а -
ли з ац и я с ке т и о б л а с ти , дек о м п о з и ц и о н н а я г е о м е рт и я котро й з а д ес т я м арт и ц е й и л и М - фа й л о м . В о з м о ж н о пу р ав л ен и е п р о ц ес о м и н и ц и али з а ц и и кс ет и п р и п ом ощ и п а р до п о л н и ет л ь н ы х п а р а м е тр о в : с в о й с т в о , з н а ч ен и е . П а р а м е т р нш а х с у ат н а в л и в а е т м ак си м аль н у ю л ид н у со т рон ы рт е г у о л ь н ы х э л е м н от в . Н а ч а л ь н а я рт и а н г л у я ц и я о бласт и со з ад м г е о м е рт и и о б л а с ти , в б л и з и бо ле е м ел к и х о б ъ е к то в ск е т с те я с ч у е о т щ гу е , че м в к рпу н ы х . З н ач ен и е п а р м е тр а Hgrad о п р едля т ск ор ст рост а р аз м ер о в э л е м н от в п р и о ад т л е н и и о т м ел к и х о б ъ е к то в . З н ач ен и Hgrad, б л и з к и е к еид н и ц е (100%), п р и в о дя т к м елдн о м у рост у р аз м ер о в н а п р о ти в , з н ач ен и я бли з к и е к в ду м (200%), с о вт ес юу т д о с та о ч н б ы срт о м у в уе л и ч е н и ю р аз м ер о в (р и с . 14.26).
а ь я , о
Р я д п а р м е тр о в in itm esh п р енд аз н ач е н лд я в и з а у л и з а ц и и э ат п о в а л го р и тм а п о с тр о е н и я тр и а н г л у я ц и и и чл у ш е н и я е е к а ч е с тв а , п о др о б н а я и н фо р м ац и я о б и х и сп оль з ован и и п р и в едн а в д о к му е н та ц и и к PD E Toolbox. К р о м е то г , нфу к ц и я jiggiem esh р еа л и з еу т а л го р и т м ч л шу е н и я тр и а н г л у я ц и .
Hgrad - I.I
Рис • Ф ун к ц и
и н и ц и али з ац и ц и он н а зу ло к ом ан о п и сан
. 14.26. В ли ян и
Hgrad =1.9
е п а р м е тр
а H grad н а р а з м ер
ы э л е м н от
в
и poim esh ( gl, n x, ny) , poim esh ( 'mygeom' , n x, ny) с л уж а
т ДЛ
Я
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA й он р я г е у р л т ек с и н а йьон угло м япр о б л а с ти , дек о м п о з и я г е о м е рт и я котро й з а д ес т я м а рт и ц е й и л и М - фа й л о м . Чи с л о в п о к а ж од й и з к о р ди н а т з а д е ст я впх и п у . П о с л е до в а те л ь н о с т ь д дл я п р я м о г у л ь н и к а , де к о м п о з и ц и о н н а я г е о м е рт и я котрог о а фай л- нфу к ц и е й mygzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
[р , е , t] = poimesh('myg', 15, 10); pdemesh(p,e,t)
п р и в о ди т к р е гл у я р н о poimesh п р е дн а з н а ч е н
й с ке т а то л ь к
о дл
, и з о б р а ж ен н о я п р я м о гу л ь н ы
й н а ри с х о б л а с те й
. 14.27. Ф ну к ц и .
я
л ав Г
14. Реш ени
зачд
м ат е м ат и че с окй
691 zyxwvutsrqpon
фи зи к
// / / / / '/ / / / / / / / // / / / / // / // / / / / / / / / / / / / // / / / / / / У У / / / / / / / // У / у / /
У / Ј У У // 0.4 7 // / / / 0.3 / / X / у // 0.2 Z / // // / / / / / 0.1 /"/ ./ / / /у / У 0 0 / ///// / / / / / / / / 0.1 / / / / / / /J 0.2 / / / / / /'/ /// // // 0.3 у / zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA / X / / I / / / 0.4 / / / / / / zyxwvutsrqponmlkjihgfedcbaZ / 0 5 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 /0 .8 , П Ј
/
/ У /
7
^
•
/
/
/
/
/
/
/
/
/
у
/
/
/
/
/
/
feval (Builtinfunction)
I 60
\ 0.063 s
0.000 s
uito ols\private\prefutils
! 60
0.063 s
0.000 s
proЈview>makefflef> age
2
• uito ols\private\pretotils >lo adPrefs
timefun\private\forrnatclate
2
| 0.063 s
0.047 s
spdm.gs
1
0.063 s
0.063 s
: 1
1 0.047 s
0.000 s
0.047 s
0.047 s
mkdir
36
isfield
i
Ђ1
с Ри
. 15.7. Снрмаы у
й еч то
т о н вем ыр
i
х а ртз
I S t Мо
H
» Ш 1ш ш &:::
I
H
-
•
i
H
•
:
I
: 1ж
й ке юпьмто
х
р
а
716
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvuts
зачд
О чт е т м ож н о п о лч у и т ь в в и д е с о в кпу н о с т и фа й л о в фо р м а т а H TM L в з а да н н о м п о дк а т л о г е (н а п р и м е р , ' h t m i r e p o r t ' ) еткщу ег о р або ч ег о к атло г а MATLAB, с о з да в ем о м к о м а н до й prof save ( st a t _ d a t a , f h t m l_ r ep o r t ' ) . а с и м ен м st a t _ d a t a до л ж н а бы т ь с о з ад н а пр и П р е д в а р и те л ь н о с р кт у П ОМ ОЩ И s t a t d a t a = p r o f i l e ( i n f o ' ) • zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML !
Р е ш ни
е с и с т е
м ура вне и е с пе тк р
и ис л е овда ни
й а
М еот д ы р еш ен и я си ест м ли н ей н ы х урав н ен и й деляст и и ет р а ц и о н н ы е . П р я м ы е м еотд ы о сн о в ан ы н а п р едв а р и етл ь н о ц и и м а рт и ц ы с и е мт ы и п осюлуед щ е м р еш ен и и дву м а тр и ц а м и . Д а н н ы й п о хд д п о з в о л яет , в ч а снт о сит ск оль к о си ест м с о нд о й м арт и ц е й и р а з л и ч н ы м и в ек от р а м В M ATLAB о п ер а ц и р уа в н е н и
О п ер ац и ри ц е р ут щ ег
т п р ям о
й м оет
х си е т , э ф ек ит в н
д р еш ен и
а к лас
: п р ям ы й ф а к от р и з а м с рт е г у о л ь н ы м о р еш и т и п рав ы х ч а с етй
я си семт
е и ь н е .
ы ли н ей н ы
х
й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA хА- b , п ри ч е м в с ч л уа е н ес к о л ь к и х си е т м хА = ^Ь ,
(к) хА = Ь у ' в е к то р м о г а ет л ь н о й м а тр и ц
К а ж ыд л и н ей н ы
я \ р еали з еу
я н а дв
й с от л б е х ал геб р аи ч ес к и
ы п рав ы
ц м а рт и ц
я А \ В р еал и з еу й А с и с п о л ь з о в а н и е у м а рт и ц ы (п р и м ен ен и о в и д а б ы л о о п и сан
х ч а се т ы В . В общ е
й з а п и с ы в а ю ст м сч л ау = ХА В ,
ы X соедр ж и х руа в н е н и й т р еш ен и м с п ец и а л ь н ы е о б р а тн о о в гаве л
я в с от л б ц е н оаихд ст
т р еш ен и
я р еш ен и
ы н ек о т р о е си есмт
й в сп о
я с и е мт , р еш ен и й р а з н о с тн о
-
ы
е с о вт е с ю у щ е
й с и ем т
ы
. е с и ем т
ы р уа в н е н и х а л г о р и тм о в й кос й ч ер т
й с р а з р еж н н о , чуи ыт в аю щ и ы лд я р е ш е н и
й м ат х к р с ут я си е т м об
-
6).
В п р и л о ж ен и я х ч аст о в с рт е ч а ю ст я с и ем т ы л и н ей н ы х ру а в н е н и й , дл я реш е н и я котры х и те р а ц и о н н ы е м ое т д ы о к а з ы в а ю ст я н аи бо ле е э ф ек ит в н ы м и M ATLAB о б л а д е т д о с та о ч н о боль ш и м н абор м нф у к ц и й , к о т р ы е р еал и зюу т осн овн ы е и ет р а ц и о н н ы е а л г о р и тм ы : п р еод бсул о в л ен н ы й м е от д со п р яж ен н ы х г р а д и е н то в (peg), м еот д б и с о п р яж ен н ы х г р а д и е н то в (bicg), ме е м е о т ыд . Ожбсу то д о б щ е н н ы х м и н и м аль н ы х н ев яз о к (gmres) и рдгиу ед н и е а л г о р и тм о в п ер ч и с л ен н ы х и ет р а ц и о н н ы х м ео т д в в ы о х ди т з а рам к да н н о й к н и ги . С п равоч н а в ч а с тн о с ти то ч е н о
..., zyxwvutsrq
а M ATLAB соедр ж и е си емст ы л и н ей н ы й ап рок си м ац и
т н ек о т р ы х ру а в н е н и й и о п е р а то р
е к л а с и ч ес к и , с о втес юу щ е а Ла п л а с
. и
е п р и м ер ы а пр
и п ом ощ
, й п ия т и ме -
-
л ав Г
15. еазРнры ж
то д с рт о и ст (см
а п р е од б с у л о в л е н н ы . р а з д
П о л ь з о в а те л д о б с у л о в л и в а ет л я р уа в н е н и в с о в т ес ю у щ е и н етр ф й с п р о в едн и о п р е дл н н ы Ч а с ти ч н а хА = хХ котра я ч и сл е и св т е н ы и л и в б л и з
м ат р и ц ы
717zyxwvutsrqpon
х с о п р яж ен н ы х г р а д и е н то в . П р е до бсул о в л и в а те л ь я н а осн ов е н еп о л н о г о р аз ло ж ен и я Хо л е ц к о г о и ос н х д о й м а тр и ц ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Mathematics: Sparse Matrices: Simultaneous Linear Equations). ь м ож е
т вы брат ь лю бу ю п о ях д щ у ю м а рт и ц , з а п р о г р а м и р о в а т ь б ы с рт о е р еш ен и й с дан н о й м а рт и ц е й в фай л- нфу к ц и и и ука з а т м а р мгу е н т е peg в м ест о п р е до б с у л о в л и в а е т л я а peg п р еод сатв л яе т в ы ч и с л и е тл ю ш и роки я и с л еод в а н и й с ц ел ь ю н ап и сан и я э фекит в н ы х к лас о в з адч . я а л ге б р а и ч е с к а и л и о б щ ен н а п о з в о л яе к о м п л ек с н ы )х х з н ач ен и й и н е к о т р о г
у в к а ч е с вт е си емст ь им
. И н етр ф й о ч и сла
я фай л- нфу к ц и
и ь
е воз м ож н ост
и лд в лд
х с о л в ер о
а с о б втен н ы х з н ач ен и —р е ш а е т с я п р и п ом ощ е ч и сл о с о б вт ен н ы с фн у к ц и и eigs од п сук ае я с н аи б о ль ш ег о и л и н аи м ен ь ш ег . Н а п р и м е р , в ы з о в
, н а ч и н а
х
. Г и б к о с т
я п р о б л ем я хА = ВХх ь з адн н о
т раз ы ск ат
е п ре ы л и н ей н ы
я я
й — п р о с та и н фу к ц и х з н ач ен и т н оа х ж е д н и
я zyxwvutsrqpon и eigs, й (в от м е со б о п о м л оу д ю
Lambda = eigs(A, k) п р и в о ди с о б втен н ы с о б втен н ы
т к з а н ес н и х з н ач ен и й х з н ач ен и
ю в в е к то р lambda п ервы . Д л я н оажх едн и я п ер в ы й п р и м ен яест я о б р а щ ен и е
х к н аи бо ль ш и х к н а и м ен ь ш и :
х п о м л оу д х п о м л оу д ю
ю
la m bd a = e i g s ( А , к , 0)
В о бщ е м с чл у а е , к о гд а р т е бс у н и й в бли з и з адн н ог о ч и сл eigs." lambda = eigs(A, k, s) О дн о в р е м н н о е н оа хж е д н и eigs с вмду я в ы о х нд ы м н фу к ц и и eig, к о т р а п р о б лем ы с о б вт е н н ы ,итцры ма фукн ци маитцр П р и р еш ен и н о й п о л ж и те л ь н р ы м в о х дн ы да н и е р яд п р о ц ес о м
е с о б вт ен н ы и а р г м у е н ат м и я п р е дн а з н а ч е н х з н ач ен и
и о бо бщ ен н о
" гавы л
ь н ес к о л ь к т куа з т
о с о б вт е н н ы ь ег о рт е ь и
х в е к то р в п р о и с о х ид , ч т о а н а л о ги ч н а лд я р е ш е н и я п олн о й (с.м р.азд "Сетвсынб о 6).
х з н ач е м а р мг у е н о т
т пр о и сп оль з ован и й а л ге б р а и ч е с к о ча лис
м в
и вы з ов
е ю й
и в ык е р т о
й з адч
о о п р едлен н о м а р г м у е н то а д о п о л н и те л ь н ы .
я о п р е дл и т а s, е сулд
и н а с о б с вт е н н ы е з н ач ен и я с с и м е рт и ч й м а тр и ц е й В се л у д т ку а з ы в а т ь е е в то м п осл е м а тр и ц ы .А Ф ну к ц и я eigs до п су к а е т за х п а р а м е тр о в , пу р а в л я ю щ и х в ы ч и с л и те л ь н ы
м
лав Г
а 1 6
Оп т и м и з а ц
я
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
В с о ат в M ATLAB вохид т Optimization Toolbox, п р едн а з н а ч ен н ы й лд я р е ш ен и я л и н ей н ы х и н ел и н ей н ы х о п ит м и з а ц и о н н ы х з адч . Ф ну к ц и и э от г о Toolbox р еа л и з юу т осн овн ы е а л г о р и мт ы о п ти м и з а ц и , п р и ч е м п о н и м ан и е а л г о р и тм а п о з в о л яе т н а с тр о и т ь в ы бран н у ю н фу к ц и ю н а э ф е к ит в н о е ре ш ен и е п о с ат в л е н н о й з адч и , ч т о п р о де м о н с тр и р о в а н о н а п р и м ер е с и ем т ы н ел и н ей н ы х ру а в н е н и й . Optimization Toolbox н е и м е т п р и л о ж ен и й с гр афи ч ес к и м и н ет р ф й с о м . П о с ленд и й р а з де л да н н о й гл а в ы с о ед р ж и т п ри м е р п р и ло ж ен и я , о б л егч а ю щ ег о о д су т п к н жу о й н фу к ц и и Toolbox и пу р ав ле н и е в ы ч и с л и етл ь н ы м п р о ц ес о м .
O p t i m i z a t i o n T o o l b o x Пр и р еш ен и р ез к ч не и бо ле п о ль з о в ан и е иэ т х ны м и и ск о м ы и с лоедв а н и
чен т и
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ав ыг л 6 в ы и сп о ль з о в ал и р я д н уф к ц и й Optimization Toolbox лд я р ау в н е н и й (fzero), м и н и м и з ац и и фн у кц и и онд о й п ер м н о й н а от е (fminbnd) и м и н и м и з ац и и фн у кц и й н есколь и х п ер м н ы х бе з о г р а н и й н а н ез а в и с м ы е п ер м н ы е (fminsearch). Д а н н ы й р а з ед л п о с в ящ е т бы т ь р еш ен ы с и с е сло ж н ы м з а дч м с о гр ан и ч ен и ям и , к о т р ы е м о уг м в ы ч и с ли еть н ы х н уф к ц и й Optimization Toolbox. И н ертфй н уф к ц и й до с ато ч н о ги б к и й , вс е он и одп ску аю т о б р ащ ен и е с п ремн чи сло м вондх ы х и вы ондх ы х а рм г у е н о т в в з ав и с м о ст и о т дан ы х з а дч х в ел и ч и н . К ро м е то г , бо ль ш и н свт о н уф к ц и й Toolbox п о з в о ляю е з а д ч , з ави сящ и х о т о нд о г о и л и н есколь ки х п а р м етр о в .
Л и не й но
е и не л ине йо
Л и не й но З адч то р ы
е прога м м ирова ни
е прог а м м ирова ни а ли н ей н о г й м и н и м и з и реу
я н с и т
е
е о п р о гр а м и р о в а н и т ц елву
ю л и н ей н у
я со ти ю фну к ц и / Т х ,
т в н оа хж е д н и ю
и в е к то р
а х, к о
-
(16.1)
л ав Г
16. пОт и м и зац и я
719 zyxwvutsrqpo
гд е / — в ек от р к о э ф и ц и е н то в р ан и ч ен и ям : н ер ав ен свт а
, и одув л ет о р яе т з адн н ы м л и н ей н ы м ог м zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA А х
и р а в ен с вт а
* ь
м A
eqX
К ром н и ч ен и
(16.2)
е то г о , м огу я в в е к то р н о
т бы т й фо р м
ь п о с ат в л е н
= b
eq'
(16.3)
ы дв с у о т р н н и
е п о к о м п о н е н тн ы
е о гр а
lbУз>4У )
и
х (>0
(/ = 1, 2, 3, 4).
о о кт л о н е н и р к а и м - ли б й ц ен о в ы ч и сли
о сп о с бо й бмуаги л м ра т и ц
я о ж и аде м п рои з , т . е . п о срт и
у к овари ац и
л и V.
IV. Ис по льз вани е Toolbox и р еш ени пр инхлыакд за ч д zyxwvuts аЧс т ь 722zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Е сл п ер с и
и в е к от я в ы ч и с л я ю ст
р у и м а рт и ц
а V и з в еснт ы
, т о до хн о с т
я п о ф о р м л уа
ь п о р фт е л
я и ег о и д с
-
: 2
T
a p = x Vx. Ф орм аль н а н о г о п р о г р а м и р о в а н и я
я п о с та н о в к
а з адч : н а й т
и М аркови ц и м и н и м у
а п р и в о ди
т к з адч
м фн у к ц и
е к в а рд и т ч
-
и
J(X) = XT VX
пр
и о гр а н и ч е н и я х
(16.6)
: у т х = a, T e
jc = l,
(16.7)
e T = ( l , l , 1,1)
(16.8)
J C > 0 .
(16.9)
В ел и ч и н а ж ел а м о й од х н о с т и п о р ф те л я а до л ж н а бы т м аль н о й и н е б о л ь ш е м ак си м аль н о й од х н о с т и вы бран н ы в ан и я ц ен ы х б му а г . Н ер а в ен с вт о (16.9)— о дн о с т р о н н е о гр а н и ч е н и е ти п а (16.4). О гр а н и ч ен и я (16.7) и (16.8) — э т т о б ъ еид н и т ь в о дн о , п о с рт о и д а (16.3), п о э т м у и х се луд
и в ек от
П с ту од х н о с т
е м и н и
е я ви
-
р
ь з адн
ы сю л у е д щ и и п о р фт е л
V =
Т о гд м а рт и ц
ь н е м ен ь ш х лд я и н в е с ит р о е п о к м п о н е н тн о о о гр а н и ч е н и в м а рт и ц у
а в о б о з н а ч е н и я х ы и в е к то р а
е з н ач ен и я дл я м арт и ц ы F , в е к то р а у и ж ел а м о й я a:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED 102.0 27.1
27.1 148.8
- 52.3 42.1
66.5 - 66.4
11.3 13.2
- 52.3
42.1
246.5
56.9
; у = 16.1
66.5
- 66.4
56.9
272.3
, п р и н яыт , с в яз ан н ы
х дл я о п и с ан и е с о гр а н и ч е н и я м и
"11.3 13.2 16.1 17.4 1 1 1 1
17.4 я фну к ц и
и quadprog, п о с рт о и
м
: 15
1Ь = [ 0zyxwvutsrqponmlkjihgfedcb 0 0 0] . I zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
л ав Г
16. пОт и м и зац и я
Дл
я р еш ен и ю с о ат в ь т а фа й л - п р о гр а м
сь т ет к с
723 zyxwvutsrqponm
я з адч
и о фо р м и р о в а н и
и п о р фт е л я с фи к с и р о в а н н о й до х дн о у risk_asset. В о з м о ж н ы й в а р и а н т и сох дн о г о ы risk_asset п р и в ед н в л и с ит н г е 16.2.zyxwvutsrqponmlkjihgfedcbaZYX
е фа й л - п р о г а м
:
:
! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ист ин г 16.2. Ф а йл - прога м м а risk_asset
% Зи н а д
е мц и р т а
ы ко т н е и ц ф э о
V = [ 102.0
- 52.3 6 6 . 5
- 6 6 . 4
5 6 . 9 й ти п
Aeq = [ 11. 3
13. 2
1
1
:;
и
66.5;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ )ќ'.;. ^:Щ х. : \/\у zyxwvut :h 56.9;
ќ .
2 7 2 . 3 ] ;
. ^
а равен ст
1 6 . 1
1 7 . 4 ;
1
]
1
ќ '
"
в
•• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR • • ''.}• •;.• '} ;'• ][
;
beg = [15; 1]; % Зи н а д
. . "
42.1 - 66.4;
42.1 246.5
е о гр ан и ч ен и
й фи ц к н у
:
27.1 - 52.3
27.1 148.8
% З а д а н и
в цо в е л
I zyxwvutsrq
. :
е ои н е ч и н а р г
й сз и н
у н а пы н е м р е
е
. . . . . ќ ќ .
..
1Ь - [0; 0; 0; 0] ; % Ри н е ш
е и во в ы
д рт а ь л у з е
а в ко н д а м о
х = quadprog( V, [],[],
В ы п о л н ен и н ы х срседт
е фа й л - п р о гр а м в в в ы б р а н н ы
е дл
е он к
о
:
ќ ќ ќ ќ ; ќ. .
[ ], Aeq, beq, lb)
ы risk_asset да с я в ло ж ен и й а к ти в ы
т о вт е
т о р ас п р едл н и
и енд еж
-
:
>> risk_asset Warning: Large- scale method does not currently solve this problem formulation, switching to medium- scale method. > In C:\MATLAB65\toolbox\optim\quadprog.m at line 213 .'.'ќ'. Optimization terminated successfully. 0.0626 0.4359 0.1439 . 0.3575 П р и э от scale а л го р и тм ыт ер а м р
м в к о м а н дн о а в м ест изацпто"м
24 З ак
.
. 130
е о к н о в ы в ел о с ь с о б щ ен и о Large- scale, п р и н я то г дйаон г)авы л .
• • • ,
• •" ••' •, •. • • • - / • . • • : . ; : :v ; ".""'• • • .. • ;. - . • • • • •K- .•: • ' • • •'• • ; е о п р и м ен ен и
о п о ум о л ч а н и
ю (с.м
и Medium р.азд ''Па\
724
аЧс т ь
^
Пр и м е ча ни
О бо щ н е и ьл а н ы
IV. Ис по льз вани е
е
Toolbox и р еш ени
пр инхлыакд
^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
е п р и н е вд о г о п р и м еа , и н рпеца т и я р е з л оь а ту в и сцпеи е св ст дре а п а к ет а MATLAB дл я рше н и я з ад ч ат к о г о кс а л а пирев гаве л 18. ы в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
не д
е Н л и не й о
е прога м м ирова ни
е
Optimization Toolbox п о з в о л яе т р еш ат от р ы х м и н и м и з и р е ум а я н фу к ц и я н ел и н ей н а д о б а в л я ю ст я н ел и н ей н ы е . О б щ а я п о с та н о в к м и ро в ан и я та к о в а : требсту я раз ы ск ат
ь ря
д о п ти м и з а ц и о н н ы , и к л и н ей н ы а з адч и н ели н ей н о г
х з адч м о гр а н и ч е н и я
, в к о
с р ед и в с е х в е к то р о (16.2—16.4) и до п о л н и етл ь н ы
о п р о гр а м
(16.10)
й з адч
е И ОТЛ Ч
е и н т е р ф е й с
ч т о н ел и н ей н ы нф у к ц и . О б р а щ е н и ю уд щ и м образ ом
В о н дх ы рог з ем у ы
м а р мг у е н о т о со в п аде е в е к от р
х о гр а н и ч е н и
й
; ceq(x) = 0.
и п р о и з в о ди с т
я пр
и п ом ощ
(16.11) и н фу к ц и
и fmincon.
а fm in c o n О Т l i n p r o g И q u a d p r o g И О ТС О
Т В ТОМ
,
я с ( х ) < 0 и cQq{x)- 0 з а д ю ст я в фа й л е к fmincon в до с та о ч н о общ е м с ч л уа е в ы г л я ди т с ле :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
кУ а з а н и е в то р о г ч и т ь з н ач ен и е з л у ь ат е . Е с л и м о й то ч н о с ть ю к о л и ч е с вт о вы з ово л я — р еш ен и е л е м н а фа й л - н фу к ц и н фу к ц и ю / (• н и я п а р а м е тр о в P I , P2,... н а ч и н а , о п и с а н 6.
е л и н ей н ы в
е о гр а н и ч е н и
х = fmincon (fun, хО
И с л е до в а н и ров ав ыг л
х с и емт в и р а в ен с т
х н ер а в ен с т
е п о с ат в л ен н о
Осн овн о
-
ь
в х , од у в л е т о р я ю щ и ф) - .р а в е н с т
в я в л я е тс
% п о с к о л ь к у . .д а н н ы х . о г р а н и ч е н и e
]
;
и е н ол п В ы
•
•
я п ус т ы
" .
м мас и вом
,
'..- . ".. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
.
, и з к о м а н дн о
е fmincony нер м и р па
а
т zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI
й не
c eq [
е н е р а в е н с тв
й срт о к
и
х » fmincon (@myfun, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [Q.I 0 . 7 ] , [ ], [ Ь С Ь t Ь [ Ь [ 3, @mycon)
»
п р и в о ид
т к в ы в о д
у н ек о т р о
и о ход
й и н фо р м а ц и
е в ы ч и с лен и
й и р ез луь ат
а
1.0е - 00 4 * 0.18:95
О б р ащ ен и з н ач ен и
- 0.0235
е к fmincon с тр ем я в ы о х нд ы м е фну к ц и и в то ч к е м и н и м у а
и а р мг у е н а т м
и п о з в о л яе
т п о лч у и т
ь
:
» [х , Јt flag] = fmincon(©myfun, [0.7 0.7], [ ], [ ], [ ] , . . . [ ] > [••:•], [ ], Qmycon) x = .'•'. .':•;; ••. '.•["'''• .: ..••.'•'••.;•••' 1.0e004 * ;:: 0.1895 :\ 0.0235 ; f
.
f
З н ач ен и н а й де н о
=
l
. .
1
.
a
g
0
8
=
8
:
•
2
V
;
e
'
0
'
•
•
:
0
•
:
•
•
;
•
•
•
•
'
•
•
•
•
,
.
^
:
:
:
/
'
.
.
.
9
. .
•
"
.
•
•
•
е flag б о л ь ш е .
.
/
:
.
\
.
•
/
:
'
•
е нлу
:
:
•
"
•
;
'
;
я с в и е дл т ь с в у
•
"
;
:
o
.
•
•
.
•
; .
•
т о то м
, ч т о р еш ен и
е с пу е ш н
о
л ав Г
16. Опт и м и зац и я
727zyxwvutsrqpo
е Н л и н йы
е за д ч
Н ели н ей н о котры
е м о гу
и
е п р о гр а м и р о в а н и т бы т
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е н е и с ч ер п ы в ае т к лас с н ел и н ей н ы ы в Optimization Toolbox. Ф ну к ц и
ь р еш ен
f g o a l a t t a i n , fm in m ax, f se m i n f Ю Я Л ОВПЗ
гр а н и ц ы ли ровк ласт ли н ей н ы м и да ю вы ш е
, н аохид т и з ад ь од п с у и т м ы
ь р еш ен и ч и и н етрфй х з н ач ен и , та к и н ели н ей н ы м
т с о гр а н и ч ен и ям .
Задч
а о дос т иеж н
В з адч
е о до сит ж ен и
лд
и гиацрн я н ай т
П о с та в л е н н а н и е к к о т р о
х к о м п о н ен
Ь З а д а ч
и О д о с т и ж е н и
и
. Н и ж
е п р и в е дн ы фо р м у х лд я и х р еш ен и я . О б п ер м ен ы х м ож е т з а д в а ть с я ка к , в о бщ е м сч л ау е он и совп а о п р о гр а м и р о в а н и я , о п и с а н н о й
ы
и гр а н и ц
а у едбу я все
е о м и н и м ак се , п р енд аз н ач ен н ы
и о гр а н и ч е н и ям и е н ел и н ей н о г
и в з адч
w и g. Т р ебсту в ел и ч и н
Т ИТВОаД еС Л
е в з а д ч с нф у к ц и й й н ез а в и с и м ы х
х з адч , и Toolbox
ы з адн
и х и з о бласт
т м и н и м аль н о
й пр
а в е к от р - нф у к ц и
я zyxwvutsrqponmlkjihgfedcbaZYXWVUT F(x) и дв а в е к то р а
и о д п с иу т м ы
х з н ач ен и й
и в ы п о л н ен и
и с лу о в и
, дл
я котрог
й Fi(x)- wiy w\ )- Ц ел в а п рост о (ли ст н г 16.6). П р и со з адн и и фа й л - н фу к ц и о гр а н и ч е н и я с лй е у д т е п р и в е дн н ы м вы ш и н е тр ф й с а и а л го р и тм а . В н аш е м п р и м ер р ан и ч ен и е , п р и ч е м д о п о л н и те л ь н а я н ез а в и с и м а с к ал яр о м . В счлуа е в о з н и к н о в ен и я з артнду ен и
я н ап и сат я н фу к ц и
ь фа й л - н фу к ц и и лд я я п р о г р а м и р е у ст я и лд я п о лбу е с к о н е ч н о г о е с о гл а ш е н и я м о тн о с и те л ь н о е е е в сег о о дн о п о лбуе с к о н е ч н о е ог я п ер м ен н а я wx яв л сет я й о б р а ит е с ь к ли сит н г у 16.7.zyxwvutsrq
: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 16.6. М ин м из реу м а я фицнку я ре ш ни я за д ч и с пол убе сокне мчы i ограниеч мя и
и
fu n c t i o n f = m yfu n s( x) % ц е л е в а
я ф ун к ц и
f = х ( 1 )
л
я
2 + 2 *х ( 2 )
/ч
2 ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
function [с , ceq, Kl, S] = sem_con(X, S) ifzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA isnan(S(l, 1)) % Ии ц а з и л а ц и н % (ва р о т
я шг а я кт н е о п м о
S = [0.2 0]; end
а ск т е а н е бе д у
и 0.2 дл т ия с ь т а в о з ь л о п с
я со н р я л а к
й по н е м р е )
й wl
Глав
16. Оптимзаця
731zyxwvu
%zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Ги ц а р е н я сетки н а ок з е р т е [0, 100] дл я пы н ч е н о к с е б у л о х и н е ч и н а р г о й
wl = 1:S(1, 1):100; % Ви н е л с и ч ы
е г о н ч е н о к с е б у л о п
о ои н е ч и н а р г
я в уа л з
х ск т е
и
Kl = cos(wl*X(l))./(wl*X(2)) - 0.1; % Ны н й е н и л е
е и н ч и н а р г о
я т ю у в т с у с т о
, е а д з
м по т с у
й ми с а
в
с = [ ] ; ceq = [ ];zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Дл
я р еш ен и »
и о с ат л о с
ь з а д т
ь н ач ль н о
е zyxwvutsrqponmlkjihgfedcba
е п р и б л и ж ен и
х О = [ 0 . 5 ; 0 . 2 ] ;
и в ы з в а т в 1: »
я з а д ч ь н фу к ц и
ю f seminf, усатн о в и
[х , fva l ] = fsem in f(@m yfun s,
в ч и сл
о п о лбуеск о н еч н ы
х о гр а н и ч е н и
й
x0, 1, @sem_con)
х = 1. 3512 2.1785 f va l = 1 1 . 3 1 7 5zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
М и н м а скн
я з а д ч
П о с та н о в к
а м и н и м ак сн о
а й з а д ч min x
лд
и з а к л ю ч а е ст
я в н оахж едн и
и
maxzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH {ft (JC)} i' — 1, 2,..., n
я н ел и н ей н о й в е к от р - нфу к ц и и / ( * ) = (/ i (*), / 2 (- *), .• • ,/„(• ) *)п р н и ч ен и я х (16.2—16.4) и (16.11) ет х ж е сам ы х , ч т о и в р а с м о тр е н н о з адч е н ел и н ей н о г о п р о г р а м и р о в а н и я . Д л я р еш ен и я да н н о й з адч н аз н ач ен а фну к ц и я fminimax, п р и м ен ен и е к о т р о й в до с та о ч н о общ е ч а е в ы гл яид т ю с лу е д щ и м образ ом :
и о гр а й вы ш и п р ед м улс
е -
х = fminimax (fun, х0 , А , b, Aeq, beq, lb, ub, nonlcon, options, PI, P2, ...)
П ер в ы й щ е й в ек от ж е , к а к н фу к ц и п с ку а е т вс т е н е и с п о л ь з е м у ы
в о х нд о
й а р мг у е н
т fminimax яв л ест я ф а й л - нф у к ц и е й , в о з в р а щ а ю р з н ач ен и й {f] ( x) |. С м ы с л о с ат л ь н ы х в о х нд ы х а р мг у е н о т в та к о и дл я fmincon, п р и м ен ен и е к о т р о й о б жс у а д л о с ь вы ш е . И н етр ф й и fminimax, к а к и б о л ь ш и н с вт а н фу к ц и й Optimization Toolbox, од п ер м ен н о е ч и сл о вохнд ы х и в ы охнд ы х а р г м у е н то в , п р и ч е м в к ач е х в о нх д ы х а р мг у е н о т в к у а з ы в а е ст я п со т у й м ас и в . В
й с о
732
аЧс т ь
в то р м д о п о л н и те л ь н о ч ен и я в е к от р - нф у к ц и ы т й в ы о х нд о л ен и й . С м ы с
й н ад
ю з а дч о н ай т
у л д я де м о н с рт а ц и и н ез а в и с м ы
min тах{/ Ь >
Toolbox и р еш ени
пр инхлыакд
/ 2 ( * Р * 2 ) h( xv
(х {,х 2)
{
4){fi}
и о б р ащ ен и е п ерм н ы
zyxwvutsrq
за ч д
м в ы о х нд о м а р мг у е н т е fminimax в о з в р а щ а ю тс и / ( х ) , в т р е т ь е м — м а к с и м а л ь н о е и з н их т с о ед р ж и т и н фо р м а ц и ю о п ри чи н е о с та н о в й то т ж е , ч т о и дл я нфу к ц и и fmincon.
й а р гм у е н л ег о з н а ч ен и
Р а с м о рт и м м о е дл ь н у fminimax, в к о т р о
IV. Ис по льз вани е
я зн а , а чветр а вы чи с
-
я к н фу к ц и и е zyxwvutsrqponmlkjihgfedcbaZYXWV х х и х 2 и з услови я : х
г ) },
дг е
п р и л и н ей н ы
х о гр а н и ч е н и я
х х х > О , х 2> О , 3*! + 2х 2 1 % Мц и р т а
а Яб о к
и с т е я л в я
% Фи н а в о р и м р о
я о м у с
е л а н о г а и д
й те р
и мц и р т а
х ми р т а
ц J = D + Dl + D1'
ы D
d = 4*х ; % Ии ц а з и л а ц и н
я г о н е ж р з а р
о и н е л в а т с д е р п
я лд
я мц и р т а
ы D
я лд
я мцирта
ы D1
Diag = sparse(l:n, l:n, d, n, n ) ; % Фи н а в о р и м р о
е р о т к е в
а по н ч о б
й л а н о г а и д
и
d2 = - ones(l, n - 1); % Ии ц а з и л а и ц н
я г о н е ж р з а р
о и н е л в а т с д е р п
Dl = sparse(2:п , 1:п - 1,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG 62, п , п) ; % Ви н е л с и ч ы
е о н е ж р з а р
й ц и р т а м
ы б о к Я
и
J = Diag + Dl + Dl'; end
Р еш ен и е си семт ы н ел и н ей н ы х р уа в н е н и й оф рм и т е в фа й л - п р о гр а м е (ли с ит н г 16.16), в к о т р о й з а д ю ст я ч и сл о п ер м н ы х и в е к от р н ач ль н ог о п р и б л и ж ен и я и и сп о ль з есту я f solve дл я п о и с к а к о р н е й . Н а ш а ц ел ь с о т и т в и с л е од в а н и и э ф е к ит в н о с т и п р и м ен ен и я яв н ы х фо р м у л лд я э л е м н от в м а рт и ц ы Якоби , п о э тм у сн ач л а о б р а ит е с ь к fsolve с о з н ач ен и е м .'off ' п а р м е тр а Jacobian (о н о усатн о в л ен о п о му о л ч а н и ю ) . З а м еьт , ч т о в э от м С л уч а
т В Ы З В Та
е f s o l v e б у д е
а р мг у е н от пу р а в л яю щ у сн ов а п р и м ен и т в а т ь в с рт о е н н ы Л ист ин ур а в н е и
м и м а тр и ц ю с р кт у
Ь фа Й -Л Н фу К Ц И
а Як о б
а дл
о ы н е м р е п
% Ри н е ш
е м е т с и я эо т н е м л
ы бе в мцирта
я р е ш ни
я бол шь
й си т е м
х
х О = ones(l, n ) ; % но н ь л а ч
% дл
l a r g e s y s j С ОНИ Д
М НЫ Д ВО ЫХ
М
я н е ет д б у . З ает м м о ид ф и ц и р й у т е , суатн о в и в п ар м ет р Jacobian в з н а ч ен и е в ' o n 1 , и е f solve. Д л я к о н тр о л я з а врем н е м с ч ет а од у б н о з а ед й с в т о е фн у кц и и t i c и toe.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
г 16.16. Ф а йл - прога м м й
п = 1000; % члси
Ю
и в ы ч и с л яь т с
е и н е ж и л б и р п з ии н а в о з ь л о п с ы б о к Я
е я ынвя
и
х у м р о ф
л
ы не л и не й ны
х
Глав
16. Оптимзаця
745zyxwvutsrq
options = optimset('Display', 'iter', 'Diagnostics', 'on'); tic x = fsolve(@largesysj, xO, options); toe % Ри н е ш % дл
е м е т с и
ы с ие и н а в о з ь л о п с
я эо т н е м л
в мц и р т а
м ынвя ы б о к Я
х у м р о ф
л
и
options = optimset(options, 'Jacobian1, 'on'); tic x = fsolve(@largesysj, xO, options); toezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
в л и с ит н г а 16.16 св и елдть св у т о б э ф ек ит в н о с т и В ы п о л н ен и е о п е р а то р о и сп о ль з о в ан и я яв н ы х форм у л дл я в ы ч и слен и я э лем н от в м а рт и ц ы Я к о б и п о с р а в н ен и ю с а п р о к с и м а ц и е й и х к о н еч н ы м и р а з н о с тя м и — в р ем я с ч ет а от л и ч а е ст я п р и м ер н о в 50 р а з . П о с к о л ь к у п ар м ет р D iagn ostics и м е т з н ач е н и е ' o n 1 , т о в к о м а н дн о е о к н о с н а ч л а в ы в о ид ст я и н фо р м а ц и я о к о л и ч есвт е н е и з в е сн т ы х , сп о с б е в ы ч и слен и я ч аснт ы х п р о и з в о дн ы х и п р и м ен яем о м ал г о р и тм е (в да н н о м с л уч а е — м еот д до в е р и ет л ь н о й о б л а с ти ) . Р а б о т а f solve с о п р о в ж ад е с т я о т б р аж ен и е м с в енд и й о к а ж од м ш аг е в ы ч и с л и те л ь н о г о п р о ц ес а (о п ц и я D isplay суатн о в л ен а в ' i t e r ' ) . С в едн и я п р е сд а т в л е н ы в в и ед та б л и ц ы : Iteration 1 2 3 4 5 6 7 С то лб и
Func- count f(x) 1 998 871.767 2 3 567.03 4 36.9426 0.0498932 5
Norm of step
First- order optimality 1
2.13
2.5
0.932
6.25
0.0273
15.6
- е З 00
5
15.6
4e- 011
15.6
1.87805 0.0643166
7
1.31898е- 01 9
7.56621е- 00 5 р И т е р а ц и и
1 1
2.5
6.87172е- 00 8
т Н ОМ е
3 2.38
6.25
б
к I t e r a t i o n с о д е р ж и
Trust- region radius
; F u n c - c o u n t — ИЛС Ч
О ЫВО З
нф у к ц и м ы лд и ет р а ц и лен н о г р и ет л ь н о
; f (x) — мсу а к в а д р то в з н ач ен и й лев ы х ч а с ет й р уа в н е н и й си ест я е тк щ у е г о п р и б ли ж ен и я ; Norm of s t e p — н о р м а ш аг а н а е кщ т у е ; F ir st - o r d e r o p t i m a l i t y— б еск о н еч н а я н о р м а гр а ди е н та , в ы ч и с о лд я е тк щ у е г о п р и б ли ж ен и я ; T ru st - regio n rad iu s — р аид у с од в е й о б л а с ти .
Дан н ы м ео т д р еали з о в ан
й р а з де м до в е р и е т л ь н ы
л о п и сы в ае ы и др г у и
т то л ь к х о б л а с ет е а л г о р и тм
о р еш ен и е с и ем т ы н ел и н ей н ы й п р и п ом ощ и fsoive. В нфу к ц и ы р еш ен и я , к о т р ы е в ы б и р а ю тс
х урав н ен и
В
й -
й и fsoive я пр и по -
746
Щ ОМ
аЧс т ь
И П ЦИО
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvuts
зачд
Й N o n l E q n Al go r i t h m , L a r g e S c a l e , L i n e S e a r c h T y p e у п р а в л я ю щ е
й
с р тк у ы . П е р д р еш ен и е м з ад ч в Optimization Toolbox п о л ез н о обра и о н а с рт о й к а х а л г о р и тм о в вы бран н о й нф у к ц и . Э т и ит ь с я к и н фо р м а ц и с е нв д и я м о гу т бы т ь п о ч ер п н ту ы и з с п р а в о ч н о й с и емт ы Toolbox. Ф ну к ц и и и о д п с уи т м ы е п а р м е рт ы лд я н и х о п и с а н ы в р а з де л е zyxwvutsrqponmlkjihgfedcbaZ Optimization Toolbox: Function Reference, з а д н и е п а р м е тр о в — в Optimization Toolbox: Function Reference: Optimization Parameters, а сам и а л г о р и тм ы — в Optimization Toolbox: Standard Algorithms и Optimization Toolbox: Large- Scale Algorithms. М ы р ек о м ен уд п р и в е дн н ы
м ат к ж е в с п р а в о ч н о
е и з ч уи т
ь п р и м ер й си есмт
р прил еожни
рП и м е
ы реш ен и я о п ти м и з а ц и о н н ы х з адч , е п о Optimization Toolbox.zyxwvutsrqponmlkjihgfedc
я с GUI
Optimization Toolbox н е и м е т п р и л о ж ен и п о л ь з о в а ет л я лд я до спут а к фн у к ц и я он н ы х з ад ч з н а ч и те л ь н о п у р о с ит л о с п р и л о ж ен и я . Т екщу и й р а з ед л п о с в ящ е ск и м и н е тр ф й с о м дл я р еш ен и я з адч З адч н а и чл у ш и бор н фу к ц и
т в та к о
а со ти м образ о е п а р м е тр о
м п о дб р м од у в л е т о р я л в с и с п о л ь з о в ан и е
е и сп о ль з о в ан и я раз ли ч н ы х да н н ы и м я фа й л а и фай л- нфу к ц и н и и до п суит м ы х и н ет р в а л о м ен и я в фа й л - п р о гр а м у со м п о з в о л и т щ с у е св т н о б р а б о тк е н абор а ад н н ы х л ю к о н тр о л ь н а д н а ч л ь н ы м р а п а р м е тр о в и от браж ат л о ж ен и е П бо д р в о р те м а р а п о бладе т в ы ш ео п и с ан н ы м К н оп к фа й л а фа й л ю ст л яю щ е
я и ц к н фу
ж ен и е
м и н етр ф й с о е о п ит м и з а ц и
. Р еш ен и и н а л и ч и ю п р и л о ж ен и е п а р а м е тр о в
м -
и с о вт е с ю у щ е г
о я с гр а фи ч е
-
.
в н ек о т р о й фну к ц и , ч от б ы о н а н або р у да н н ы х . Р еш ен и е з адч и о п од м lsq c u r ve fit о п и с а н о вы ш е н а п р и м ер
а е
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA F = а х ъ агХ + а ъ sin a 4 x (с.м р.азд "Пр о б д о пв "отер амр йаон д )авыг л .
Р ле г я у р н о
лд
е п а р м е тр о
й с гр а фи ч е с к и м о п ти м и з а ц и ь б ы п р н н ап и сан и и о п о дб р
а та и чС , в к о т р о а з а н о с и ст я м ар к ер ам й н фу к ц и . С о вт е с вт ю у щ и , в ернх ю
ь ы н а д
м п о л ь з о в а ет л я в област и н а о ся ю с п а р м е тр а м и ю и н и ж н ю
е фа й л - п р о гр а м ы , п р и в едн н о й в л и с ит н г х и н фу к ц и й н е о ч ен ь од у б н о — ртебсу я . П р и в ы б о р е н ач ль н ог о п р и б л и ж ен и в лд я п а р м е тр о в ат к ж е н е о б х ди м о вн оси т . С о з да н и е п р и ло ж ен и я с гр а фи ч ес к и м и н ертфй о экон ом и т ь в р ем я п р и п о д б н о й м н о г к р а тн о . П р и л о ж ен и е до л ж н о п р е д о с ат в л я т ь п о л ь з о в а ет и с у та н о в к а м и , п р о и з в о ди т ь п р о ц р еуд ь гр а фи ч е с к о е п р е сд а т в л е н и е р е з л у ь та , окн о котрог о и з о б р аж ен о н а и в о з м о ж н о с тя м и . е п р и в о ди
т к п о яв л ен и ь вы би рае ь Ф йа л с и м ды н а х в окн е п р и ло ж ен и я , п о л ь з о в а етл е с рт о к и п о з в о л яю ю гр а н и ц ы п а р м е тр о в
е 16.13, ь я и з ад ь и з й у п о бд . П р и ри с . 16.3, и з м ен ят
ю ди а л о г в о г о окн а о тк р ы ти т н жу ы й фа й л с да н н ы м и , и м . С ч и та н н ы е да н н ы е от браж а . И м я фай л- нфу к ц и , в ы ч и с ь з аде т в срто к е в в о д а Ф л йа т вы брат ь н ач ль н о е п ри бли . Г р а фи к н ач аль н ог о п р и
я я -
-
л ав Г
16. пОт и м и зац и я
б л и ж ен и
я с рт о и ст
П ОБД
Р ж с л иу
з н ач ен и п р о и з в о д и ст
747zyxwvutsrqponm
я п р и н аж ит и н а к н о п к т лд я з а п сук а п р о ц р е уд я в о б л а с т ь ы н ь л а м и т Оп и помо щ и к н о п к и От и с и ч
я в ы в о ядст я п р
у zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ и ф а рГ к дл я ч а н . плб и р . К н о п к а ы п о дб о р а п а р м е тр о в . Н а й де н н ы е е ы р те м а р а п . Уадлен и е гр а фи к о в ь оис . zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в
р п а р а м е т р о
# По дб о
I
I
1
1
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Фб й л с д а н ы м и Nt.dat
а Фй л - у Фн кц и [
г" - —
jg
4
н о льа ч Н
е п р иебн ли ж
е
[0.0 0.0 4 0 1.0]
|
к .
я fitfun
i
н Няи ж
У
3
/
В е р н хя
^
а
> q = subs(f, 'x', '1.1')
м п р е с да т в л е н и е ю пр
м и з ает м н ай т и з н а и vpa:zyxwvutsrqponmlkjihgfe
и п о м щ
q = ехр(1.1
Л
Л
3 + 2*1.1 2 + 1.1 + 5)
>> vpa(q, 50) ans =
18 97 7.322 63918380228 95228 4 4 47 213 957 854 88 63 9310417 4 0zyxwvutsrqponmlkjihgfedcbaZY
Р е ш ни
е за д
ч
Р еш ен и е си ест м л и н ей н ы х и н ели н ей н ы п р о и з в о дн ы х , н оахж едн и е о п р е дл н н ы и с к ан ал и т ч ес к и х р еш ен и й ид ф е р н ц и а л ь н ы вом , вс е о с н о в н ы е м а ет и ч е с к и е з адч м ощ и Symbolic M ath Toolbox. Р аз муестя вс е з адч и и м ею т ан ал и т ч ес к о е р еш ен и е
З адч
и л иен йо
й алег бр
х урав н ен и й х и н ео п р едл н н ы
, р а з ы с к а н и х р уа в н е н и т бы т ь и с л е од в а н т уч и ыт в а ьт
и м о гу , се луд .
е п р едло х и н те г р а л о в й и с и е тм
в и , п о , сло ы п р и п о , ч т о да л ек о н е
ы
Ф ну к ц и и Symbolic M ath Toolbox в ы п о л н яю м а рт и ц а м и и в е к то р а м и . Вс е з а д ч и , о п и с ан н ы н ы в си м воль н о й фо р м е , п ри ч е м с о вт ес ю у щ и н аз ван и я , ч т о и нфу к ц и и лд я ч и с л е н н о г юв у щ и е м ое т д ы п е р о п р е дл н ы дл я к лас В ы ч и с л ен и н ие
е о п р е д л и етл м det, н а п р и м е р
я в си м воль н о
»
А = sym ( • [ a b с ; d e f;
»
D = d e t (A)
т в с и м в о л ь н о м в и д е о п ер а ц и и с ав е л б , м о гу т бы т ь р еш е е в гzyxwvutsrqponmlkjihgfedcbaZYXWVUTSR е н фу к ц и и и м ею т т е ж е о р еш ен и я , п о с к о л ь к у с о в т ес а sym. й фо р м
е п р о и з в о ди ст
я с и сп оль з ова
-
: g h j ] ' ) ;
D = j * a * e - a * f * h - j * d * b + d * c * h + g *b *f - g * c * e
Ф ну к ц и о б р а нт у
я inv п р енд а з н а ч ен ю к м а рт и ц
»
AI = i n v (А ) ;
»
а лд е А , о п р едл н н о
я си м воль н ог
о о б р ащ ен и й в ы ш е
я м а тр и ц
. Н а й ди т
.
p r e t t y( AI ) [ -
i e + f h
i b — с h
b f -
c e ]
е
764
аЧс т ь
IV. Ис по льз вани е
[
-
Toolbox и р еш ени
i d + f g
пр инхлыакд
i а — e g
[ - d h + e g
a f — с d ]
a e — b d]zyxwvutsrqponmlkjih
a h — b g
Г
1
[
% 1
О б р а ит З н а м е н а ет л э л е м н от в ж ен и
е вн и м ан и
е дл
ь к а ж до г , п о э т м я %i п р и в едн
=
-
i
% 1
a
e
+
a
f
е н а фо р м о э л ем н т у и с п о л ь з се т у о н и ж
у о т б р аж ен и а о б р а тн о я п о д с ат н о в к е м а рт и ц ы
й п оли н о
м м а тр и ц ы
Х а р к ет р и с ит ч е с к и ди
% 1
:
h
+
i
d
% 1
b
я р е з л у ь ат й м а рт и ц
—
zyxwvutsrq
зачд
d
c
h
—
g
zyxwvutsrqponmlkjihgfed
]
b
а в к о м а н дн о ы AI о ди н а к о а %1, с о втес юу щ е
f
+
в лд
g
м окн е я в се е вы ра
c
e
. х -
. , з ав и сящ и
й о т п ер м ен н о
й х , н оах-
я poly:
т н фу к ц и »
р А = p o l y (А ) ;
»
p r e t t y (р А 3
) ;
2
2zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
2
х — i х — e x + i x e — x f h — a x + i a x + a e x — i a e + a f h - d b x + i d b — d c h — g - b f - g c x + g c e
В от р м ен о
й д о п о л н и те л ь н ы й до л ж е
н з ав и с ет
й а р мгу е н ь а х р к ет р и с ит ч е с к и
т poly п о з в о л яе
т к у а з а ть й п оли н о
м м а тр и ц ы
, о т к а о .
й п ер
-
т бы т ь н е то л ь к о си м воль н ы м и п ер Э л ем н т ы си м воль н ы х м а тр и ц м о гу м ен н ы м и , н о и в ы р а ж е н и я м и , и р а ц и о н а л ь н ы м и ч и слам и . В к ач есвт е п ри м ер а н а й ид т е с о б с вт е н н ы е ч и сл а м а рт и ц ы Г и ль б ер т а п я тн а д ц а то г о п о р яд к а , и сп о ль з у я сн ач л а си м воль н о е п р е сд а т в л е н и е э л е м н от в м а тр ^ ды , а з а ет м срав н и т е и х с р е з л у ь ат о м ч и с л ен н о г о а л г о р и тм а . О п р едл и т е вре м ен ы е з а тр а т ы э ит х с п о с б о в , с ген ер и р о в а в о чт е т п р и п ом ощ и п р о фа й л е р а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "П"ре айл фор авыг л 15). Ф а й л - п р о гр а м вдм у
а л д я н о а хж е д н и и и з а м ер а в р ем н
я сп о с бам
| Л и с т и н
г 17.1. Наедохжни
е с обс т ве ны
p r o f i l e on - d e t a i l b u i l t i n AS = s y m ( h i l b ( 1 5 ) ) / vs = eig( AS) A = h i l b( 1 5 ) ; v = e ig( A) profile report
я с о б втен н ы и п р и в едн
х ч и се а в л и сит н г х чис е
л м а т риц
л м а тр и ц ы Г и ль б ер т а е 17.1.zyxwvutsrqponmlkjihgfedcb ы Гилбье рт
а
I
л ав Г
17. Си м во льнеы
765zyxwvutsrqpo zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
вчиы с ле ни я
м л и н ей н ы х а л ге б р а и ч е с к и х р уа в н е н и й в си м воль н о м ви д е Р еш ен и е си е т п р о и з в о ди с т я п р и п ом щ и з н ак а о б р а тн о й кос й ч е р ыт . С юлуед щ и й п ри м е р ед м о н с р т и р е у т н о а хж е д н и е л и н ей н ы х баз и сн ы х н фу к ц и й тр е г у о л ь н о г о к о н еч н о г о э л ем н т а в в и ед , п р и го дн о м лд я п о м ещ ен и я в с о б вт ен н у ю п ро гр а м у . З а д ч а со ти т в п очлуен и и фо р м у л лд я в ы ч и слен и я тре х л и н ей н ы х н фу к ц и й N1 (х , у) , N2 (х , у) , N3 ( х , у) , к аж д я и з к о т р ы х равн а еид н и ц е в о нд о й и з в ер ш и н тр е г у о л ь н и к а , а в вуд х о с ат л ь н ы х о б р а щ а е ст я в н ол ь (р и с . 17.3). В ерш и н ы рт е г у о л ь н и к а и м ею т к о р ди н а т ы (xi, yi) , (х2 , у2 ) , (хЗ , уЗ ) . Д о с та о ч н о з ап и сат ь общ е е в ы р аж ен и е лд я л и н е й н о й н фу к ц и и в ду х п ер м ен н ы х с к о э ф и ц и ен атм и а , ь и с , а з ает м раз ы ск ат ь и х лд я к а ж од й н ф у к ц и , р еш а я с о в т ес ю у щ у ю с и ем т у л и н ей н ы х руа в н е н и й . Ли с ти н г 17.2 соедр ж и т фа й л - п р о г а м у basis лд я н оахж едн и я фо р м лу , п о к о т р ы м в ы ч и с л яю стя р т е б му ы е нф у к ц и . О б р а ти е вн и м ан и е , ч т о Symbolic M ath Toolbox п о з в о л яе т с ге н е р и р о в а т ь в ы р аж ен и я в в и ед , п р и го дн о м лд я з а н ес н и я в с о б втен н у ю п р о гр а м у н а F ortran и л и С . В фа й л - п р о гр а м е basis и с п о л ь з о в а н а н фу к ц и я ccode, р а з р а б о тч и к а м п р о гр а м м н а F ortran сле е уд т а В О З Ь ИЛ ОП С ь f o r t r a n ВМСТ е О ccode.
N 2(x,y) zyxwvutsrqponmlkjihgfedcbaZ
(х 19 уд zyxwvutsrqponmlkjih
с иР
цинк фу
. 17.3. Линй е ы
е бзинас ы
и zyxwvutsrqponmlkjihgfedcbaZYXW
е нцик у ф
й
syms a b с х у % З а д а н и
е о бщ ег
о ви д
N = а + Ь * х + с *у % Ои н е л д е р п
е со н ь л о в м и
а ли н ей н о
й ф ну к ц и
и
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA й мцирта
ы см е т с и
М = sym('[1 xl yl; 1 х 2 у 2 ; 1 х З у З ] ')
ы уи н е в а р ;
й
766
Часть
IV. Использвание
% Ни н е д ж о х а е N1 г = sym( '[1; 0; 0] ' ) ; % па в р v = М\г ; % ри н е ш % Пк в о н а т с д о а ви н е ж а р ы й дл N1 = subs(N, a, v(l)); N1 = subs(Nl, b, v(2)); N1 = subs(Nl, с , v(3)); N1 = simplify(Nl); % уи н е щ о р п pretty(N1) % во в ы ccode(Nl) % ги ц а р е н % Ни н е д ж о х а е N2 г = sym( '[0/ 1; 0] ' ) ; % па в р v = М\г ; % ри н е ш % Пк в о н а т с д о а ви н е ж а р ы й дл N2 = subs(N, a, v(l)); N2 = subs(N2, b, v(2)); N2 = subs(N2, с , v(3)); N2 = simplify(N2); % уи н е щ о р п pretty(N2) % во в ы ccode(N2) % ги ц а р е н % Ни н е д ж о х а е N3 г = sym( '[0; 0; 1] ' ) ; % па в р v = М\г ; % Пк в о н а т с д о а ви н е ж а р ы й дл N3 = subs(N, a, v(l)); N3 = subs(N3, b, v(2)); N3 = subs(N3, с , v(3)); N3 = simplify(N3); % уи н е щ о р п pretty(N3) % во в ы ccode(N3) % ги ц а р е н
В р е з л у ь ат в ы р аж ен и фо р м а т
я чт с а е см е т с и
Toolbox и решни
ь см е т с и
ы уи н е в а р
й дл
прикладных
я N1
ы
в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR а, Ъ, с
я ко т н е и ц ф э о
е N1 д N1 в ко н д а м о я С- д о к я чт с а е см е т с и
а дл
ь см е т с и
е он к о я N1 ы уи н е в а р
й дл
я N2
й дл
я N3
ы
я ко т н е и ц ф э о
в а , Ь , с
е N2 д N2 в ко н д а м о я С- д о к я чт с а
а дл
ь см е т с и
я ко т н е и ц ф э о
е он к о я N2 ы уи н е в а р
в а , Ь , с
е N3 д N3 в ко н д а м о я С- д о к
е работ ы фа й л - п р о г а м я лд я р т е х б а з и с н ы х н фу к ц и е С . Н и ж е п ри в ед н р ез луь ат
а дл
е он к о я N3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
е окн ы basis в к о м а н дн о й N I , N2 И N3 И И Х п р есдатв л ен и т то л ь к о дл я п ер в о й б а з и с н о
о в ы в о яд с т й фну к ц и
я е в :zyxwvutsrqp
- х З у 2 + х 2 у З - х у З + х у 2 + у х З - у х 2
х З y l + х 2 у З - х 2 y l — х З у 2 - x l у З + x l у 2 2 + х2 *у t 0 = (- Зх *у xl*y3 + xl *y2 ) ;
З - х*у
З + х*у
2 + у*х
З - y*x2) / ( x3*yl + х2 *у
З - x2 *yl - хЗ *у
2 -
л ав Г
17. Си м во льнеы
вчиы с лени я
С о вт е с ю у щ и с о б вт е н н у
е с рт о к
и м ож н у п р и п о м щ
ю п р о гр а м
мС у м и р о в а н и
767zyxwvutsrqp
о л е гк
о п о м е сит и бферу
е и р а зл оеж ни
Р аз л о ж ен и н фу к ц и
ь и з к о м а н дн о г о окн а в а Windows.zyxwvutsrqponmlkjihgfed
а о б м ен
е в яр д
е м ает и ч е с к и я t a yio r , н а п р и м е р
х н фу к ц и й в р я д Т ей ло р а п о з в о л яе т п р о де л а т ь :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB
» f = sym( '1/(1 + х ) ќ ) ; » tf = tayior(f); » pretty(tf) 2
3
4
5
1 — x + x — x + x — x
П о му о л ч а н и ю в ы в о ид с т я ш ес т ь ч л ен о в р яд а р аз ло ж ен и от ч к и н оль . Чи с л о ч л ен о в р аз ло ж ен и я м ож н о з адт ет л ь н о м п а р м е рт е t a yio r . Т р еит й п ар м ет р ку а з ы в а е т м ен ы х е су л д т п р о и з в о ди т ь р аз ло ж ен и е в от м с ч л у а е н фу к ц и я о п р едл н а о т н еск о ль к и х п ер м ен н ы х :
я в о к р е с нт о с т ь в о в то р м до п о л н и , п о к а о й и з п ер , к о гд а си м воль н а
и я
syms у g = sym( '1/ (x + У ) ');zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC tg := tayior(g, 7, У ) pretty(tg) 2 У У
1/x 2
и котро м а р мгу е н т , м огу т в ы б и р а ьт с :
» pretty(tayior('е( рх ) х '
У
5
б
У
У
ќ
X
Точка , в о к р еснт о с т в е р от м в о хн д о ж ен и ю в р яд ф ну к ц и , н а п р и м е р
4
3
У 4
3
5 X
X
X
й п р о в ид с т е t a yio r . В к ач есвт я в от м ч и с л
я р аз ло ж ен и е е нф у к ц и й е и в срт о ен н ы
7 б X
X
, куаз ы в аест , п о лдеж ащ и
я в ч те х раз ло е м а ет и ч е с к и
е
, 4, х , 1/2)) 2
( р х е 1/2
) + е( р х 1/2
) (х - 1/2) + 1/2 е( р х 1/2
) (х - 1/2)
3 + 1/6 е( р х 1/2
) (х - 1/2)
т п р и л о ж ен и В с о ат в Symbolic M ath Toolbox вохид ск и м и н е т р ф й с о м , п р едн а з н а ч ен н о е дл я н агл янд о н и я в р я д р а з л и ч н ы х фн у к ц и й , в от м ч и сл е и о п р едл н н ы
е t a yio r t o o i с гр афи ч е й д е м о н с рт а ц и и раз ло ж е х п о л ь з о в а ет л м
.
аЧс т ь
768
К ом ан д н ог
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvutsrq
за ч д
а t a yio r t o o l п р и в о ди т к п о яв л ен и ю окн а п р и ло ж ен и я , и з о б р аж ен о н а р и с . 17.4.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Feli EdTtiools Wni dow Help
- г
• • |
Taylor Series Approximation
! 1- 0 5-
\ -
zyxwvutsrqponmlkjih
***** \ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA о -
У -
| -5
t 1 s 6 | 4
- 10 - 4
-6
- 2
3
0
5
2
7
= x- 1/2 x+1/24 x - 1/720x f(x) -
x*cos(x) a- JO - ^l
Рис
П о л ь з о в а те л с о вт е с и н а п р о и з в о л ь н о ч и сл о ч л ен о п рост й и н Н а о х ж де н и п о з в о л яе п р е дп о л а г е з ав и с ящ ег м ы . С му
ь м ож е т в о ди т и с п рави лам м и н ет р в а л в р аз ло ж ен и я е тр еб у т до п о л н и етл ь н ы
е си м в о ль н ы т о щс у е с в т и т з адн и о о т и н ед к с а а
Reset
Help |
. 17.4. П р и л о ж е н и
Colse
е t a yio r t o o l
ь фо р м л у ы раз ли ч н ы и MATLAB и и с леодв ат е о рт е з к о м р я д а Т е й л о р а . И н етр ф й с п р и л о ж ен и х п о яс н ен и й
х в ы р аж ен и ь нфу к ц и е ч еыт ре , с а м о г
|
й лд я м с у я symsum. О б р а щ ен и х а р г м у е н от в : с л а г ем о г о и н е кд с а и в ернх ег
1
а , *
х нфу к ц и й в с рт о к е f(x)= в ь п р и б ли ж ен и е н фу к ц и и , с о едр ж ащ и м раз ли ч н о е я t a yio r t o o l до с та о ч н о . , в то м ч и сл е и б ес к о н еч н ы х е к symsum в о бщ е о в с и м в о л ь н о о и н и ж н ег о п р едл
, м ви д й фо р м е а м ус
е , -
л ав Г
17. Си м во льнеы
в ы ч и с л яет
вчиы с лени я
я пр
769 zyxwvutsrqp
и п о м щ
и сю луед щ и
х к ом ан д
:
» syms k »
Л
s = symsuin( ' (- 1) к / к ^
2 ' , к , 1, I n f)
s = A
- l / 1 2 *p i 2
В оз м ожн о сму и р о в а н и е с л аг ем ы х , з ав и сящ и х н е то л ь к о о т и н ед к с а , н о и т ф а к то р и а л , о т н ек о т р о й си м воль н о й п ер м ен н о й . Е сл и в с л аг ем ы е в о х ид т о е с ул д т п р и м ен и т ь к в ы р аж ен и ю л д я ф а к то р и а л а н фу к ц и ю sym. Н а й ди т е з н ач ен и е б ес к о н еч н о й мс у ы , яв л ю щ ей с я р аз л о ж ен и е м н фу к ц и и sinx в р я д zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
к=о И с п о л ь з йу т
е к о м а н ды
(
)
:
»
syms k х
»
s = sym su m ( ( - 1 ) Л ( к ) *x
/s
( 2 *к + l) / sym ( ' ( 2*к + 1) ! ' ) , к , 0, I n f)
s = si n ( x) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ре П д л ы
, zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
диф ер нцировани
е иинавори г етни е
Р я д н фу к ц и й Symbolic M ath Toolbox п р енд аз н ач е н лд я р е ш е н и я з ад ч ид ф фер н ц и а л ь н о г о и и н те г р а л ь н о г о и с ч и с л ен и я . Ф ну к ц и я lim it н аохди т п ре е д л н фу к ц и и в н ек о т р о й то ч к е , в к лю ч а я и п лю с и л и ми н у с б е с к о н е ч н о с ьт П ер в ы м в о хн д ы м а р мг у е н от м lim it явлсет я си м воль н о е в ы р аж ен и е , в от р ы м — п ер м ен н ая , а рт еь и м — то ч к а , в к о т р о й р а з ы с к и в а е ст я п р е дл П с уьт , н а п р и м е р , требсту я вы ч и сли т ь
. .
( \ ton 1 + Д л я п о чл уе н и п о ль з йу т
я о тв е е in f в к ач есвт
а о п р едл и т е от ч к
и п р е дл а
е а и х , к а к с и м в о ль н ы е п ер м ен н ы е , и и с :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
» syms а х » limit((1 + 1/х) А (х*а) ans = ( рхе а
)
, х , Inf)
770
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
т н а о х ид т Ф ну к ц и я lim it п о з в о л яе н и я п р е дл а сп рав а е с ул д т ку а з т 1 r i gh t ' , а слев а — • lef t ' . Н а й ди т
ь о дн о с т р о н н и ь ч ев т р ы е р еш ен и
е п р едл ы
, ч т о еслуд
т в ы п о л н и т
zyxwvutsrqp
зачд
, дл
й д о п о л н и те л ь н ы е сю луед щ и
lA lim (lO + ; t ) ;
О ч е в и нд о
пр инхлыакд
я н о жа х е д й а р мгу е н х з ад ч
х в ду
т
lim flO + jt) 17 *.
ь ю с луед щ и
е к о м а н ды
:zyxwvutsrqponmlkjihgfedcbaZY
» syms b х »zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA limit((10 + х ) Л (1/х ) , х , 0, 'left') ans = 0 » limit((10 + х ) Л (1/х ) , x, 0, 'right1) ans = inf
О б р а ти т м ер
е вн и м ан и е е н е сщ у есвту
»
l i m i t ( ( 10 + х )
, ч т о о б ы ч н ы
й п р ед
л в от ч к
е н ол
ь в п р еы д щ у е
м п ри
-
: / ч
( 1 / х ) / х , 0)
a n s = NaN
О п р е дл н и е п р о и з в о дн о й ч ер з п р ед л п о з в о л яе т п р и м ен ят ь lim it лд я ди ф е р н ц и р о в а н и я нф у к ц и й . Н а й ди т е п ер в у ю п р о и з в о дн у ю н фу к ц и и arctgzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA х , и сп о ль з у я р а в е н с вт о d arctg ( х + h) - arctg x —arctg x= lim * f ; dx -л » о п syms h x L = lim it ( ( at an ( x + h) - atan (x))/ h , h, 0); pretty(L) 1 2 1 + x В ы ч и с л ен и нфу к ц и а р гм у е н ет в то р о м
е п р о и з в о дн ы х лю бог и diff. С и м в о л ь н а я з ап и с , п ер м ен н а я , п о к о т р о , а п о р я до к п р о и з в о дн о
о п о р я дк ь н фу к ц и й п р о и з в о ди ст й — в рт еь м
а п рощ и к у а з ы в а ест
е п р о и з в о ди т
ь пр я в п ер в о
и п ом ощ м в о х нд о
я ди ф е р н ц и р о в а н и . П р и м ен ен и
е d iff дл
и м
е — в о я вы чи с -
л ав Г
17. иС м во льнеы
л ен и л ен т о м
вчиы с лени я
я п р о и з в о дн о
771 zyxwvutsrqpon
й в п р ые д щ у е :
у р е з л у ь ат
м п р и м ер
»
Р = d i f f ( ' a t a n ( x ) ' , х ,
»
pret t y( P )
, р аз му е стя
, п р и в о ди
т к э к в и в а
-
1);
1
1 + х
Н ап и ш и т ций с а тв л е н и е то ч к и в о ид да н н о
е фа й л - н фу к ц и
ю tan gen t лд я . Вондх ы м и а р мг у е н ат м и tan gen t м н фу к ц и и о нд о й п ер м ен н о , в к о т р о й е с ул д т п р о в ест и к а с ет л ь н ю у т в о нд о гр а фи ч е с к о е окн о гр а фи к й то ч к е . К п р и м ер у , в ы з о в
и с л е од в а н и я ск ор ст я в л ю ст я с рт о к а с си м в о ль н ы й х и ч и сло в е з н ач ен и . Ф ай л- нфу к ц и и нфу к ц и и и к а с етл ь н о
и рост
а н фу к м п р ед
-
е абсц и с ы я tan gen t в ы й к н е й в з а -
» tangent ('sin (x) *x""2 ', 2) од л ж е
н п р и в о ди т
ь к гр а ф и к а м
, и з о б р аж ен н ы
м н а р и с
. 17.5.zyxwvutsrqponmlkjihgfedcbaZYX
8883811258463879/4503599627370496 - х 693588153221697/225179981368524 8
5.5 5 45 4
у
3.5
>^ \
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
3
\
VzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
2.5
'
/
\
1.5 1
1.2
Рис
1.4
1.6
. 17.5. Г рафи к
1.8
и н фу к ц и
2 X
2.2
и и к а с ет л ь н о
2.4
2.6
й
2.8
\ 3
772
аЧс т ь
м фа й л - нфу к ц и
л Аг о р и т
IV. Ис по льз вани е
и в к л ю ч ает е си м воль н о
й н фу к ц и
2. Н аохж едн и
е п р о и з в о дн о й
.
е си м воль н ог я п р о и з в о дн о й
о з н ач ен и
и п о срт о к
е п р
о в ы р аж ен и
и п о м щ
я л д я к а с те л ь н о ы и о р ди н а т
, абсц и с
я к а с те л ь н а я
пр инхлыакд
zyxwvuts
зачд
:
1. О п р едл н и 3. Ф о р м и р о в а н и в н ег п р о в ид с т
Toolbox и р еш ени
и sym.
ы то ч к и
й и п о сд а т н о в к , в к о т р о
и й
.
Дл
я п о с рт о е н и я к а с ет л ь н о й ли н и и и с п о л ь з йу т е ezp io t . О то б р а ж е н и е гр а а и с ел м у д о й н фу к ц и и ж и рн о й ли н и е й вы п олн и т е п р и п ом ощ и p lo t , о с г е н е р и рй у т е в е к от р с о з н ач ен и ям и а р мг у е н т а и л д я ч е г о п р е д в а р и те л ь н п о чл у и т е в е к то р с о в т ес ю у щ и х ч и с л ен ы х з н ач ен и й си м воль н о й н уф к ци . В к ач есвт е гр а н и ц о тр е з к а , н а к о т р о м в ы в о яд с т я гр а фи к и н фу к ц и и и к а с ет л ь н о й к н ей , в ы б ер и т е то ч к и , о сто ящ и е н а еид н и ц у вп рав о и в лев о о т з адн н ой . Ф ай л- нфу к ц и я tan gen t н е ртеб у т в ы о х нд ы х а р г м у е н то в . О б р а е в о з н и к н о ит е с ь к ли сит н г у 17.3 з а до п о л н и тел ь н о й и н фо р м а ц и е й в с чл у а в ен и я з артнду ен и й п р и п р о гр а м и р о в а н и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP фи к
; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г 17.3. Ф а йл - иц нку ф я t a n g e n t
Izyxwvut
function tangent(funstr, XO) % Ф- л й а и ц к н у ф я дл я пи н е о р т с о я ко н ь л е т а с % к гк и ф а р у фи ц к н у и funstг в тк ч о % funstr — ск о р т а с сы н ь л о в м и м ве и н е ж а р ы % Ие и н а в о з ь л о п с % % Зи н а д
: tangent('е( рх х е со н ь л о в м и
й е Х О м фи ц к н у
и
) ќzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC , 0) й фи ц к н у
и
syms х f = sym(funstr); % Ви н е л с и ч ы е фи ц к н у и в тк ч о Y0 = subs(f, 'х 1, ХО ) % Ои н е л д е р п е ил а в р е т н а дл % фи ц к н у и и ко н ь л е т а с й А = Х О - 1; В = Х О + 1; % Во в ы
д гк и ф а р
а фи ц к н у
и жо н р и
% Ги ц а р е н я вр о т к е а зи н е ч а н X = [А:( В - А)/100:В] ; % Пк в о н а т с д о а вр о т к е а в со н ь л о в м и % и ои н а в о з а р б е вр о т к е а зи н е ч а н
е Х О я пи н е о р т с о
я го к и ф а р
й ле и н
в
й
й ат н е м у г р
а е пи н е л в а т с д е р й фи ц к н у и
е фи ц к н у
и
л ав Г
17. иС м во льнеы
чвиы с лени я
773 zyxwvutsrq
F = subs(f, 'х 1, X ) ; % Вовы
д гк и ф а р
а и ук в о н а т с
а тн и щ л о
ы ли н
и
Hline = plot(X, F ) ; 1
set(Hline, 'LineWidth , 2) % Ни н е д ж о х а
е сг о н ь л о в м и
о ви н е ж а р ы
я дл
я по в р е
й по н д о в з и о р
й
k = diff(f, x, 1); % Ви н е л с и ч ы
е кт н е и ц ф э о
а ко н ь л е т а с 1
К = subs(к , 'х , ХО
)
% Со н ь л о в м и
е уи н е в а р
е зи н а д
yt = sym( 'yO + к*( х - хО % Пк в о н а т с д о
а ка т н е и ц ф э о
% в уи н е в а р
е ко н ь л е т а с
й я ко н ь л е т а с
й
) ' ) ; , ас и ц с б
ы и от а н и д р
ы
й
yt = subs(yt, 'к' , К) ; yt = subs(yt, 'xO\ ХО)
;
1
yt = subs(yt, 'yO , YO); % Во в ы
д гк и ф а р
% ги ф а р
а ко н ь л е т а с
к фи ц к н у
й н а т е ж е ои с
, гд
е нс т и д о х а
я
и
hold on ezplot(yt, [А В] ) % Тк ч о
а ки н а с
я ос т е а ч е м т
я м- м о р е к р а о к ж у р к
м
plotfXO, YO, 'о' ) grid on hold offzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
С и м воль н о е и н ет г р и р о в а н и е я в л ес т я з н а ч и ет л ь н о бо ле е слож н о й з ад ч ей , ч е м ди ф е р н ц и р о в а н и е . Symbolic M ath Toolbox п о з в о л яе т р а б о та ь ка к с н е о п р е дл н н ы м и и н те г р а л м и , ат к и с о п р едл н н ы м и . Н ео п р едл н н ы е и н ет г р а л ы о т си м в о ль н ы х н фу к ц и й в ы ч и сляю ст я п р и п о м щ и in t , в к ач ест в е вонхд ы х а р мг у е н о т в к у а з ы в а ю ст я си м воль н а я н фу к ц и я и п ер м ен н ая , п о котро й п р о и сохид т и н те г р и р о в а н и е , н а п р и м е р : >> sym s х »
f = sym ( ' x ^ 3 * e x p ( x ) ' ) ;
»
I = i n t ( f ,
x)
I = х
Л
»
3 *е хр ( х
) - 3 *x ^ 2 *e x p ( x ) + 6 *x *e x p ( x ) - 6 *e x p ( x )
pretty(I ) 3 x
2 e x p ( x ) — 3 x
e x p ( x ) + б x e x p ( x ) — 6 e x p ( x )
774
аЧс т ь
П р о и з в е ди т »
е п р о в ер к у
IV. Ис по льз вани е
Toolbox и р еш ени
, п р о ди ф ер н ц и р о в а
в п очлуен у
пр инхлыакд
zyxwvut
за ч д
ю п е р в о б р а з н юу
:
d i f f ( I , х , 1)
a n s = А
х 3*е х р ( х
Р а з м у е с тя котры ц и аль н ы
)
, нфу к ц и х с ч л уа я е фну к ц и
я in t н е всегд а м ож е х in t в о з в р а щ а е т в ы р аж ен и , н а п р и м е р , п о лчуи т
О п р е дл и т
е п о ды н ет г р а л ь н у
т вы п олн и т
ь и н те г р и р о в а н и е е лд
я п ер в о бр аз н о е и н те гр а л
е з н ач ен и
ю н фу к ц и
ю и в ы з о в и т
й ч ер
. В н е з сп е -
а
е in t :zyxwvutsrqponmlkjihgfedc
» syms x » f = sym('exp(sin(x)A2)*cos(x)'); » I = int(f, x); » pretty(I)
1/2 — 1/2 i pi erf(i sin(x)), О вт е и н ет г р а л о
т с о ед р ж и
т ат к н а з ы в а е м у м с п ер м ен ы
К ром е то г о , в п о лчуен н о п о д ы н те г р а л ь н а я н фу к ц и раз ован и я лд я о д с и т ж е н и sim plify н е см о гу т п у р о с ит Д л я н оа х ж е д н и да т ь н и ж н и и ч евт ро
ю н фу к ц и м п р едл о м
м в енрх и
я о п р едл н н о г й и венрх и м а р мг у е н а т
е в ы р аж ен и я в ещ есвт н н а я о к о н ч а те л ь н о г ь да н н о й п р е дл х in t :
ю ош и бки :
е в о х ид . Т р ебюу ст
, к о т р а
т к о м п л ек с н а
я е ди н и ц а , нфу к ц и
е в ы р а ж ен и е
. а в си м воль н о
м ви д
е е с лу д
, с о вт ес вт ен н о
» syms x a b Л
»
f = sym ( ' ( х
»
I = i n t ( f , x , a ,
»
pretty(I ) 3
3 + 1 ) / ( x - 1) ' ) ;
2
b);
3
я
, о хт я е п р ео б и simple и
я д о п о л н и те л ь н ы о р е з л у ь ат
о и н ет г р а л ы и н те г р и р о в а н и я
я о п р е дл я ст
2
1/ 3 b + 1/ 2 b + b + 2 l o g( b - 1) - 1/ 3 a - 1/ 2 a - a - 2 lo g (a - 1)
, в ртеь
т за м
л ав Г
17. Си м во льнеы
Двой н ы Н а й д и те
чвиы с лени я
е и н ет г р а л , н а п р и м е р
775zyxwvutsrqpon
ы в ы ч и с л я ю ст , и н етгр а
я п овтрн ы м п р и м ен ен и е м нфу к ц и и in t . л zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
db [jysinx dxdy.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON с a
О п р едл и т е си м воль н ы ц и ю f о т х и у и п р о и н етгр и рйу т
е п ер м ен н ы е сн ач л
е а , ь , с , d, x, у , п о ды н етгр а л ь н у ю н уф к а п о х , а з ает м п о у :zyxwvutsrqponmlkjihgfedcb
» syms a b с d х у >> f = sym( 'y*sin(x) ' ) ; » Ix = int(f, x, a, b) Ix = - y*cos(b) + y*cos(a) » Iy = int(Ix, у , c, d) Iy = 1/2*(- cos(b) + cos(a))*(dA2 - c A 2) » pretty(Iy) 2
2
1/2 (- cos(b) + cos(a)) (d - с )
н А а л о ги ч н ы те г р а л ы
м образ о м в с и м в о л ь н о м в и д е в ы ч и сляю ст я л ю б ы е к р а тн ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Р е ш ни л гА е б р а и ч е с к и то ч н о з л у ь ат к о м а н дн о
е ура вне и , нфу к ц и т р еш ен и м о к н
й и с ис т е
е и н
м
е р уа в н е н и я д о ч е вт р от г о п о р я дк я solve в ы в о ди т о вт е т в епс т н я я р уа в н е н и я рт е ь г о п о р я дк а е с и с п о л ь з о в а н и е м п о дс та н о в к
а в к л ю ч и ет л ь н х рац и он аль н ы , к п р и м ер у :
о р е ш а ю ст х ч и с ел
я . Р е я в
, о т б р а ж е тс
» syms х » f = sym('x^3 - х
Л
2 - 5*х + 1');
» г = solve(f, x ) ; » pretty(r) [
-
1/3 %2 + 16/3 %1 +1/3
] .
[ ] [ 1/2 ] [- 1/6 %2 - 8/3 %1 + 1/3 + 1/2 i 3 (1/3 %2 - 16/3 %1)]
776
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
зачд
zyxwvut
[zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 1/2 ] [- 1/6 %2 - 8/3 %1 + 1/3 - 1/2 i 3
(1/3 %2 - 16/3 %1)]
1/2 1/3 (10 н н б
i 111
)
1/2 1/3zyxwvutsrqponmlkjihgfedcbaZYXW (10 - н б
К орн корн н фу к ц и
я з а п и с ы в а ю ст и руа в н е н и и н а й ед н ы в е р н о , в ы ч и с л и т ю si p l i f у дл я п р е о б р а з о в а н и
я в си м в о ль н ы е з н ач ен и я р е з л у ь ат
i 111
)
й м ас и е f о т п ер в о г :
в г . П р о в е р ь те о корн я . И с п о л ь з йу т
, ч т о е
» simplify (subs (f, 'х 1, r(l))) ans = 0
Д о п с у ит м ч аст боч е ч е вт р о
о и сп о ль з о в ан и и ру а в н е н и я й с р ед
е си м в о ль н ы я solve п о з в о л яет ы л д я н о а жх е д н и и о б щ ег о в и да .
х п ер м н ы
. Ф ну к ц и ы фо р м л у й с е пт н
я корн е
х в в ы р аж ен и , н а п р и м е р й а л ге б р а и ч е с к о г
, в ы в ест
и лд я л е в о й и в окн о ра о р уа в н е н и я
» syms х Л
» f = sym('a*x^4 + Ь*х
Л
3 + с*х
2 + d*x + с 1 ) ;
» pretty(solve(f, x))
Р е з л уь а т п о д с та н о в к л Аг е б р а и ч е с к и ка к п рави ло п р и б л и ж ен н ы
т з ан и м ае
т д о с та о ч н
о м н ог
, и в к н и г
е н е п р и в о ди ст я
е р уа в н е н и , н е м о гу е з н а ч ен и
т бы т я к о р н е й
о м е са т
, н ес м о рт
я н а и сп о ль з о в ан и
е
.
я вы сш и
х п о р я дк о ь р аз р еш ен
ы то ч н о
в и тр а н с ц ен ден нт ы . В э от
м с чл у а
е ура в н ен и я е в ы в о яд с т
, я
.
Р еш ен и е с и е мт ы н ел и н ей н ы х р уа в н е н и й ат к ж е solve. В охнд ы м и а р мг у е н а т м и solve яв л ю ст я в да н н о р уа в н е н и й и п ер м ен н ы е , п о к о т р ы м р т е бс у я п р и м ер , дл я си емт ы и з дву х р уа в н е н и й с п р а в ы м и И ЯЩ С ЗаВИ Х ед л н ы Ы ЬН В ВОЛ М СИ Х Я И Ц К фуН Х f 1 И f2, в ы г л я ди т та к : s = solve ( fl, f2, xl, x2). Р ез луь ато s с п о л ям и xl и х2 , к аж од е и з к о т р ы х с о ед р ж и т си м воль н о р еш ен и я (р а б о т е с о сртку а м и да н н ы х п освящ ен / >> syms xl x2 » fl = sym('xl*(2 - х2 ) - cos(xl)*exp(x2)'); » f2 = sym( '2 + xl - x2 - cos(xl) - exp(x2) ќ ) ; » s = solve (fl, f2, xl, x2) ;
В ы в иед т м ан и е
е в о к н , ч т о п о л
о р а б о ч е я сркту
й с р ед ы с о ед р ж а
ы з н а ч ен и
я п о ле т си м воль н ы
й с рк т у е в е к то р ы
ы s, о б р а ти т :
е в н и
-
» s.xl ans = [ .73908513321516064165531208767387] [ .67179203946718009639325125311984 - 1.3390702694949181314704735832283*i]
778
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvuts
зачд
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA s. x2 a n s =
- lam bertw(exp(2) )+ 2]zyxwvutsr
[
[ log(.67179203946718009639325125311984 - 1.3390702694949181314704735832283*i)]
Ф ну кц и к о м п л ек с н ы ч ре
я solve н а ш л а вд е п а р ы р е ш е н и й : в ещ есвт н н ы е s. xl (.2), s.x2 (2). П ер в а я к о м п о н ен т з н фу к ц и ю Ла м б е р т а w = L(x), к о т р а я о п р едл н w
р еш ен и я х тр а н с ц е н д е н тн о г о р уа в н е н и г о в урав н ен и е . В ещ есвтн о е р еш ен и ав ег л 16 п р и п о м о щ и f solve. К р о м н ы е к о р н и , р е ш а я с и ме т у н ел и н ей н ы И н ет р ф й н ы х в к а ч е с вт о б р ащ ен и »
с нфу к ц и
и solve од п сук ае е в ы о нх д ы х а р г м у е н от в е к solve в п рыед щ у е
[ x l , х 2 ] = s o l v e ( f l ,
я we = x о е с о в п аде т с е то г о , нфу к ц и х урав н ен и й в т и сп о ль з о в ан и , в м ест м п р и м ер е и м е
f 2 , x l ,
» [ x l , х 2 ] = s o l v e ( ' x l * ( 2 c o s ( x l ) + е х р ( х 2 ) ' )
- х 2 )
Р е ш ни
е дрефе ицна лфыь
и с ис т е
у вы ш е
т п а р м е тр а w, оявщдх е р еш ен и ем , п очлуен ы я solve н а ш л а к о м п л ек с с и м в о л ь н о м в и ед .
м в -
х п ер м н
-
. Э к в и в а л ен нт о
е
:
x2) ;
й си м в о ль н ы м и нфу к ц и я м и solve м о гу т бы т , п ри ч е м н е о б я з а ет л ь н е п ер м ен н ы е м ожн
о п р и в е дн н о м
е s. xi ( l) , s.x2 (1) и а s.x2 в ы р аж ен а а к а к з ав и си м о ст ь
е си м воль н ы о с рт к у ы т ви д
З адн и е л ев ы х ч а се т й р уа в н е н и з а те л ь н ы м . Вонхд ы м и а р мг у е н а т м м и , з а к л ю ч ен н ы е в а п о с тр о ф ы ю ч а сьт . Н ез а в и с и м ы га е м ы е в лев у н ап р и м ер , о б р а щ е н и е
а н а л о ги ч н
а в е к то р
= c o s ( x l ) *е х
и н е я в л ес т я обя ь с рт о к и с р уа в н е н и я о п ер н о с и т ь в с е сла о та к ж е н е ку а з ы в а ть р ( х 2 ) ' ,
' 2 + x l
,
- х 2 =
.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
х руа вне и
й
м
Symbolic M ath Toolbox п о з в о л яе т раз ы ск ат ь р еш ен и е ид ф е р н ц и а л ь н ы р уа в н е н и й и си ест м в а н а л и т ч ес к о м в и ед . В о з м о ж н о н ао х ж е д н и е к а к общ е г о р еш ен и я , з ав и с ящ ег о о т к о н с та н т , та к и р еш ен и я , удов л евт о р яю щ ег о по с ат в л е н н ы м гр а н и ч н ы м с ул о в и я м . Р еш ен и е ди ф ер н ц и а л ь н ы х руа в н е н и й си е т м п р о и з в о ди с т я п р и п ом ощ и н фу к ц и и dsoive, вохнд ы м и а р г м у е н ат м котро й я в л ю ст я с рт о к и с урав н ен и ем , гр а н и ч н ы м и сул о в и я м и , п р и и х н а ли ч и , и н ез ав и с и м о й п ер м ен н о й . Е сл и н ез ав и с и м а я п ер м ен н а я н е к уа з н а , т о п о му о л ч а н и ю и с п о л ь з ес т у я t . П р о и з в о дн ы е в с рт о к а х з а д ю ст я та к Dy, D2y,... Г р а н и ч н ы е с лу о в и я м о гу т с о едр ж ат ь п р о и з в о дн ы е о т н е и з в е с нт о фн у к ц и . В к а ч есвт е п р и м ер а н а й ид т е ан али т ч ес к о е р еш ен и е р уа в н е н и
х и и : й я
л ав Г
17. иС м во льнеы
Р и к ат л е вт о р я ю щ е
и (дл
О то б р а з и т б л и ж ен н ы (и с п о л ь з о в а н и и н ей "
гавы л
Вы зо образ ом »
вчиы с лени я
779 zyxwvutsrqpon
я н ек о т р о г е гр а н и ч н о м
о ч а с тн о г у с лу о в и
о чс л ау
е п о лч у е н н о м р еш ен и ем е с о л в ер о 6).
е р еш ен и , п очлуен н ы в о п и сан
я з н ач ен и
, уодв
-
е н а о рт е з к
е [0.5, 7] и с р ав н и т е ег о с п р и м п р и п ом ощ и с о л в ер а ode4 5 о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH р.азд "Ринеш х ьын цеиалр дфе иф а ву р -
и dsoive в р а с м а рт и в а ем о
в н фу к ц и
й к о э ф и ц и е н от в )
ю
м п р и м ер
е в ы г л я ид
т ю с луед щ и
м
: л
у = d s o i v e ( ' D y + у
В ы в ие д т
е в к о м а н дн о
2 = х
е о к н
А
( - 2 ) ' ,
о п о лчуен н о
' у ( 0 . 5 ) = - 1 ' ,
е р еш ен и е
'х') ;
, и сп о ль з у
я p r e t t y:zyxwvutsrqponmlkji
» pretty(у ) 1/2 1/2 1 - 5
1/2 tanh(- 1/2 5
5 -
1
log(x) + 1/2 log(
))
1/2 5
+1
1/2 .
Т еп р ци
ь р еш и т
е р уа в н е н и
е Р и к ат
ю rikkat y (ли ст н 2
x
и ч и с л ен н о
г 17.4), в ы ч и сляю щ у
, с о з адй т
ю п р ав у
ю ч аст
е фа й л - н фу к ь р уа в н е н и
я у'=
2
= - у + х~ , и з а д й т е е е и м я в к а ч е с вт е в о х дн о г о а р мг у е н т а с о л в ер а ode45 в м ес т е с о рт ез к о м и гр а н и ч н ы м с ул о в и е м : 1 » [X, Y] = ode45('rikkaty , [0.5 7], - 1) ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO , вичсыалщюя
йл - ияц кн фу
я пра ву
ю час т
ь рауенв и
я
f u n c t i o n F = r i k k a t y ( x, у ) F = [ 1 / х
л
2 -
О то б р а з и т
у(1Г 2]
е п о лч у е н н ы
е п р и б л и ж ен н о
» ezplot(y) » hold on »
p l o t ( X , Y,
»
g r i d o n
;
'о
1
)
е и то ч н о
е р еш ен и
я н а онд и
х о с ях
:
аЧс т ь
780
П р о в ер к р еш ен и й
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
а (р и с . 17.6) п о к а з ы в а е т с о в п а едн и е ан али т ч ес к о г о и ч и с л ен н о г .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
1/ 2
1/2 (1- 5 tanh(- 1/2 5
1/ 2
1/ 2
о
1/ 2
log(x)+1/2 log(9+4 5 )- 1/ 2 log(2) 5 ))/ х
Г "
0.4
zyxwvut
зачд
I _ ^~ 1 _г > Л Л
I
zyxwvutsrqponmlkjihgf
I
.
У / 1 А
0 - 0 2
1
- 0.4
- 0.8
г
г ' 5 1 1 2
- 1 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA С
. 17.6. Тчно
с Ри
ш не р и П ои с к ан али т ч еск о г рт е б у т ку а з а н и р ен ц и аль н ы с гр а н и ч н ы м и з дву х ди ф ер н ц и а л ь н ы
В да н н о му о л ч а н и руа в н е н и н ы х а р гм у е н а т
3 4 5 6 е и пниелжрб о е унваери
е я Ртаик
и
о р еш ен и я в о в о хн д ы е руа в н е н и и с ул о в и я м
я с и емт ы ид ф е р н ц и а л ь н ы х а р мг у е н ат х dsoive с тр о к , с о едр ж ащ и я с те м ж е о б з н а ч ен и е м D ДЛ Я п р о и з в о дн ы х и п р и и х н али ч и . Н а й ди т е общ е е р еш ен и х р уа в н е н и й п ер в о г о п о р я дк а
е dsoive м о ж н о в ы з в ат м с ч л уа ю с ч и ат е с я , ч т о н ез ав и с и м о я яв н о в о х ди л а п ер м ен н а х ат к ж е , к а к и в п рыед щ у е
zyxwvutsrqponmlkjihgfe
ь с дмву я в о х нд ы м й п ер м ен н о я х , т о е е с леод в ал м п р и м ер )
х р уа в н е н и х ид фе , и срто е с и ем т
й к ы
и а р г м у е н та м и , п о й я в л ес т я t (есл и б ы в о б ы ку а з а т ь в о ов дх . И с п о л ь з йу т е в к ач е -
л ав Г
17. Си м во льнеы
чвиы с лени я
в с т е в ы о х дн о г н е т с и м в о л ь н о
781 zyxwvutsrqpon
о а р гм у е н т й п ер м ен н о й
а в е к от
р з н ач ен и й
, к аж ыд
й э л ем н
т котрог
о а ст
-
:
» [f* g] = dsoive('D f = exp(- g)', 'Dg = exp ( - f) ') ; В ы в еи д т е п о лч у е н н о е р еш ен и е в к о м а н дн о е о к н о :zyxwvutsrqponmlkjihgfedcbaZYXWVU » pretty(f) exp(t Cl + C2 Cl) - 1 log( ) Cl » pretty(g) exp(t Cl + C2 Cl) Cl - log( ) exp(t Cl + C2 Cl) - 1 П р о и з в е ди т фер н ц и а л ь н ы
е п р о в ер к у
, п о сдатв и е урав н ен и
я си сетм ы
в н а й ед н н ы :
е си м воль н ы
е н фу к ц и
и в ид ф
-
» syms t » ul = diff(f, t) - exp(- g) ul = 0 » u2 = diff(g, t) - exp(- f) u2 = - (С1 Л 2*ехри*С
1 + C2*Cl)/(exp(t*Cl + C2*C1) - 1) -
exp(t*Cl + C2*CiP2/(exp(t*Cl + C2*C1) x
l) 2*Cl"2)/exp(t*Cl + C2*Cl)*(exp(t*Cl + C2*C1) - 1)/C1 - l/(exp(t*Cl + C2*C1) - 1)*C1 » simplify(u2) ans = 0
н А ал и т ч ес к о
е р еш ен и
е н ай едн
вт о р я ю щ е
е гр а н и ч н ы
о б р а ит ь с
я к dsoive с о сюлуед щ и м
м усло в и я
о в е р н о
. Н а й ди т
е р еш ен и
/
м / ( 5 ) = 1, # '(5) = 3. О ч е в и дн о и а р г м у е н ат м и
е си сетм ы
, овдлеу , ч т о есулд
:
» [f, g] = dsolve('D f = exp(- g)• , 'Dg = exp ( - f) ', 'Df(5) = I 1 , • Dg(5) = 3' ) ;
т
-
782
аЧс т ь
а з ап и с е в онд
ь урав н ен и у с рт о к у
IV. Ис по льз вани е
й в нод
Toolbox и р еш ени
у р с от к
у ч ре
з з а п яу т
пр инхлыакд
ю и гр а н и ч н ы
zyxwvu
зачд
Д о п с и ту м ви й
, атк ж
х сло у
-
»
[f, g] = dsolveCD f = exp(- g), Dg = exp ( - f) 1 , 'D f(5) = 1, Dg(5) = 3 1 ) ;
:
Д и ф ер н ц и аль н ы е р уа в н е н и я в ы сш и х п о р я дк о в р е ш а ю ст я а н а л о ги ч н о Р а с м о рт и м о ди н п р и м ер , едм о н с рт и рюу щ и й и сп оль з ован и е н фу к ц и M aple. Т р еб уст я н ай т и ан ал и т ч ес к о е р еш ен и е ди ф е р н ц и а л ь н о г о р аув н ен и я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
. й -
l Н 2 )'dx zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE dx О б р ащ ен и ви си м о Ле ж а н др
е к d so ive с двму й п ерем ен н ой — п р и в о ди а и фну к ц и ю Ле ж а н др
я в о х нд ы м
и а р мг у е н а т м т к р е ш е н и ю а в то р о г о р о да
и — руа в н ен и е м и н ез а , в ы р а ж ен н о м у ч ер з п о ли н о м :zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
A = 0', 'x') » у = dsolve('(l - x 2)*D2y - 2*x*Dy + n*(n - 1)*y
У = Cl*LegendreP(n - 1, x) + C2*LegendreQ(n - 1, x) П о п ы тк а Т УЧИ Л ОП Ь свед н и я M AT L AB О ф ун к ц и я х Legen dreP И LegandreQ пр и п омощ и в с тр о е н н о й сп равк и п р и в о ди т к сообщ ен и ю о б о т с ут с т в и и од н ои м ен н ы х М - фай лов . Ф у н к ц и и Sym bolic M a t h T o o lbo x н а с а м о м де л е р е а л и з ую т и н те р ф е й с м еж д у с р е до й M AT L AB и б и б л и о т е к о й осн овн ы х ф ун к ц и й M aple. Ф у н к ц и и Legen dreP И LegandreQ He оп р е д е л е н ы В M AT L AB. Д л я д о с т уп а к и н форм ац и и о ф ун к ц и я х M ap le п р е д н а з н а ч е н а коман д а m h elp, и сп ольз ован и е к о то р о й с хо ж е с к о м а н д о й h e lp , н а п р и м е р , у к а з а н и е в каче с тв е п а р а м е т р а и м ен и ф ун к ц и и » mhelp LegendreP И Д О ВЫ В тнаир
Т О п р е д л е н и ы в о зыв
е ф ун к ц и а ио н б о рдоп
и Legen dreP (и С в я з а н н о е описани е см а р е м и рп
й С не и использования
й Legen dreQ), Ba:
LegendreP, LegendreQ — The Legendre functions and associated Legendre functions of the first and second kinds Calling Sequence: LegendreP(v, x) LegendreQ(v, x) LegendreP(v, u, x) LegendreQ(v, u, x)
л а Гв
17. им еоылвьнС
вис члые иян
Д л я п о ч л уе н и я сп и ск а с п ец и а л ь н ы п су т н ы х и з M ATLAB, жслиу п о з в о л яе т в ы ч и сли т ь з н ач ен и
т к ом ан д е фн у кц и
783 zyxwvutsrqpo
х м ает и ч е с к и х н фу к ц и й Maple од а m fun list. Ф ну к ц и я M ATLAB mfun й Maple, к п р и м ер у zyxwvutsrqponmlkjihgfedcba
f
» mfun('LegendreP , 5, 0.7) ans = - 0.3652 В ы ш ео п и с ан н о е о б р ащ ен и е я в л се т я о нд о й и з в о з м о ж н о с ет й , п р еод сатв л яем ы х Symbolic M ath Toolbox п о л ь з о в а те л ю , к о т р ы й ж ел а т и сп оль з о в а т ь р ес у ы в ы ч и с л и ет л ь н о г о я др а Maple п р и р а б о т е в M ATLAB с си м воль н ы м и в ы р аж ен и ям и . Е сл и в ы и м ет е оп ы т работ ы в M aple, т о щ с у ве с т н у ю п о ль з у п р и н ес т Extended Symbolic M ath Toolbox. Д а н н о е р ас ш и р ен и е осн овн ог о Symbolic M ath Toolbox п о з в о л яе т о п ер и р о в ат ь ка к с о в с ем и нфу к ц и я м и Maple (и ск лю ч а я гр а фи ч е с к и е ) , ат к и с о з да в т ь и вы п о л н ят ь п р и ло ж ен и я , н а п и с а н н ы е н а яз ы к е п р о гр а м и р о в а н и я , в с рт о ен н о м в Maple.
лав Г
а 1 8
т ао б Р
а с о слапмнй и в Spline ToolboxzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
О бласт ь п р и м ен ен и я сп лай н о в в ес ь м а ш и рока : о н и и сп о ль з юу ст я п р и ап п ро к си м ац и и о дн о м е р н ы х и м н о г м ер н ы х ад н н ы х и фн у к ц и й , в о м н о ги х рд г и у х в ы ч и с л и ет л ь н ы х з адч ах , а так ж е в двму ер н о й и тр емх р н о й гр а фи к е . С р есдвт а Spline Toolbox п о з в о л яю т к о н с тр и у р о в а т ь о дн о м е р н ы е и м н о го м е р н ы е сп лай н ы (к а к и н те р п о л яц и о н н ы е , та к и с гл а ж и в а ю щ и е) , одвлуе тв о р я ю щ и е раз ли ч н ы м с лу о в и я м г л а д к о с ти , и п р и м ен ят ь и х лд я р е ш е н и я раз н о браз н ы х з адч . Вояхдщ и е в с о ат в Toolbox п р и л о ж ен и я с гр а фи ч е с к и м и н е тр ф й с о м ж с л ау т дл я п очлуен и я н а г л я дн о г о п р е сд а т в л е н и я о п ове е дн и и с п л а й н о в и э к с п ер и м ен от в с н и м и .
л п а С йн
ы и форм
ы и х престд алв е ин
я
Р а с м о рт и м сн ач л а з а дч у п р и б л и ж ен и я та б л и ч н о й н фу к ц и и о дн о й п ер м ен о й с п о м о щ ь ю сп лай н о в . Н а п о м н и м о с н о в н ы е о п р едл н и я и те р м и н ы . Д л я р еш ен и я з адч и од л ж н ы бы т ь з адн ы в д е п о с л е д о в а ет л ь н о с ит : от ч к и zyxwvutsrq ) и з н ач ен и я а п р о к с и м и реум о й н фу к ц и и в эит х то ч к а х х х , х 2, ..., xN (скета я нф у к ц и я ) . С ект а с ч и а т ес я п у о р я до ч е н н о й , т . е . \У , г > У • •> У • и (сеотч н а x > s = csapi(х , у ) s = form: 'pp' breaks: [lxll double] coefs: [10x4 double] pieces: 10 order: 4 dim: 1
Ф ну к ц и я сп лай н треьт "оствуи н ер аз р ы в н о с т в ан и е н еп р е ы в н о с т ет , ч т о н а п оли н о м нА а л о ги ч н а з ом , в м ест н фу к ц и и р е му о й нф у к ц и ж ащ а я о п и сан и р у та м и о п и сан П р и работ о б я з а ет л ь н ы м в о х нд о г сп лай н а р яд а дгриу 26 З ак
csapi к о н сртиу е й еп с т н я зу ла " и л и рт е ь
т кб и у ч е с к и
и (ч евт ро г и "з а п р ет а с ыт к а й п р о и з в о дн о и рт е ь й п р о и з в о дн о и Х ч у а скт х [^, ^ 2 ] [ Р\ (х) и п р и эот м в ы п о л н яю ст я с и а цу т и я н а ч у а скт о N- 1 п о л и н о м а м ы бе д у csapi яв л ю ст я м ас и в . В в ы охнд о м а р мг у е н т е ксоуч н о- п оли н ом и аль н о а в р.азд "Петыс о р
е в Spline Toolbox м уен и . П о лчуен н у ю р кс у т о а р гм у е н т а р дг и у х н фу к ц и , в ы ч и слен и я ег о з н а ч е н и й х ед й с в т и й . . 130
й и н ет р п о л я ц и о н н ы й сп лай н , т . е . о п о р я дк а ) , с та к н аз ы в аем ы м и с ул о в и я м и " (not- a knot condition), т . е . суло в и ям и й сп лай н а в то ч к а х х 2 и xN ^ . Т р е б о й в то ч к е х 2 факит ч еск и о з н ач 2 ' х з ] и м сет я ие д н ы й и н ет р п о л я ц и о н н ы й я с лу о в и я P\ (xi) = yi п р и / = 1, 2, 3. X х [XN - 2>- N- \ ] и [ *д м , *# ] . Т а к и м обра м и м ет ь N- 3. Вондх ы м и а р г м у е н ат м и ы от ч е к раз ры в а и з н ач ен и й ап ро к си м и а s, соедр е в о з в р а щ а е ст я с р тк у й фо р м ы сп лай н а (р аб о т а с о к р с ут у"ткрсы гавы л 8). е о п ер и р о в ат ь с р тк у а м у s м о ж н о и сп о ль з о в ат й Toolbox лд я п о с рт о ен и , и н те гр и р о в а н и я , ди ф ер н ц и р о в а н и
и н е я в л се т ь в к а ч е свт я гр а фи к
я е а я и
788
Оп е р а и ц
аЧс т ь
и на
С к о н с тр и у р о в а ж те е и с п о л ь з о в а т ли ч н ы х а х р к ет р и с ит в ас е т я о т сртку >> fn p lt ( s)
IV. Ис по льз вани е
д спл а йн м
Toolbox и р еш ени
в сп лай ь ц ел ы
н и з ап и са й н або к сп лай н о ы с о п и сан и е
в и н фо р м а ц и ю о н е м в с р тк у р н фу к ц и й Spline Toolbox лд я п о лчуен и в и и х в и з аул и з а ц и . К аж д я нфу к ц и м с п л а й н а , н а п р и м е р ,
т к в ы в о д у гр а фи к а сп лай н а . О то б р а з и т е и со х нд ы ж е о ся х л д я п р о в е р к и п рав и ль н о ст и р е з л у ь ат . Д л я в ы ч и с лен и н ек о т р о м н абор е то ч е к ж с л иу т н фу к ц и я fnval: » Y = fn va l( s, [0.1 0.2]) Y = 0.9900 0.9608 е и ди ф е р н ц и р о в а н и и fn in t и fnder, к о т р ы й и л и п р о и з в о дн о й рт е б у м о г , = fnder (s, 2) ;
н а о х ид т в от р у ю п р о и з в о дн ю у (срктуо й с о п и сан и е в о дн о й . Н а л и ч и е п ер в о бр аз н о н фу к ц и и fn in t , п о з в о л яе н ай т и раз н ост ь з н ач ен и рй у т е сп лай н s лд я н аш ег с и н етгр а л о м о т н фу к ц и
zyxwvut
зачд
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
п р и в о ид
И н те г р и р о в а н и н фу к ц и образ н о п р и м ер » s2
пр инхлыакд
е воз вращ аю
, в ы м о я раз я вы з ы
е да н н ы
-
е н а э ит я сп лай н
е о сщ у е с в т л я ю т , с о вт ес вт ен н о т ср к т у у с о п и с ан и е о п о р я дк а о т з адн н ог о сп лай н а
х а в
, м п ер в о
, н а -
. В ы з о
в fnder с о нд и м в о х нд ы м а р мг у е н от м т к в ы ч и с л ен и ю п ер в о й п рои з , к о т р а я п о лч у а е с т я с п ом щ ь ю т и н те г р и р о в а т ь та б л и ч н ы е н фу к ц и и — до с та о ч н о й нфу к ц и и fn in t в гр а н и ч н ы х то ч к а х . П р о и н те гр и о п р и м ер а п о ег о о б л а с т и о п р едл н и я и срав н и т е и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA у( х) : zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI м сп лай н а
) п р и в о ди й сп лай н а
>>zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA S = fnint(s); » I = fnval(S, x(end)) - fnval(S, x(l)) I = 1.4936 >> quadl(fun, x(l), x(end)) ans = 1.4936 Д л я п ои ск а м и н и м аль н о г о з н а ч ен и я сп лай н с о вт е с вт е н н о , нфу к ц и и fnmin и fn zeros. в о хнд ы м а р мг у е н о т м (срткуо й с о п и сан и е ид с т я н а в се й о б л а с т и о п р е дл н и я сп лай н а м и н и м аль н ог о з н ач ен и я н а о п р едл н н о м гр а н и ц ы в о в то р о м д о п о л н и те л ь н о м в о х нд о
а и ег о к о р н е й п р е дн а з н а ч е н ы Е сл и о н и в ы з ы в а ю ст я с о нд и м сп лай н а) , т о п о и с к п рои з во . Д л я в ы ч и слен и я корн е й ил п р о м е ж кт у е се л у д т з адт ь ег м а р мг у е н т е — в е к то р е . Ф ну к
, м и о -
л ав Г
18. абРо т а
со
с плай нм и
789 zyxwvutsrqpo
в Spline Toolbox
и ц я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA fnmin в о з в р а щ а е т м и н и м аль н о е з н а ч ен и е , а п р и о б р а щ ен и и к н е й с вуд м я в ы охнд ы м и а р мг у е н а т м и ещ е и абсц и с у м и н и м уа :zyxwvutsrqponmlkjihgfedcbaZY
>> [mval , mx] = fnmin(s, [- 1 0.5]) mval =zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA / ќ
0
m
x
3
6
7
ќ
ќ » ќ
.
9
=
-
В ы о н хд ы ч и сл с от л б ц рю у с т п ри н и м ае сп лай сп лай
.
1
м а р мг у е н от о с от л б ц о а с о ед р ж и я ка к т в н м ен я н р а в е н
в котро
м н фу к ц и й со в п аде
т гр а н и ц э от т зн а н л у ю
и fnzeros яв л ест т с ч и сло м корн е и н фо р м а ц и ю о корн е — э лем н т ы и н ет р в а л , к о т р ы е м о т гу й то ч к е м ало е з н ач ен и е) , бы т к н а э о т м и н етр в а л е ) и о лти ч аьт с н а все м и н етр в ал е) .
я м а тр и ц й сп лай н а ы с от л б ц : с о в п а д т ь п р и м ер н я рд у
а и з в ду х с тр о к . С о де р ж и м о а и н ет р п р е ит ь (есл и сп лай о равн ы (есл г о т др г у а (есл
, е н и и
В с е од с п у т н ы е о п ер ац и и н а д сп лай н ам и о п и сан ы в сп рав о ч н о й с и емт е MATLAB п о Toolbox (см . р а з д . Spline Toolbox: Functions — Categorical List: Operators). В о с п о л ь з ему с Дл
я им
и дл
я в ы ч и слен и
я п о гр еш н о с ит
я п о чл уе н и я н а г л я нд о й и н фо р м а ц и ап ро к си м ац и и н фу к ц и и п о срт и он д и х о с ях , а н а дргиу х — гр а фи >> subplot(2, 1, 1)
м гр а фи к п о гр еш н о с ит
. и о п овенд и к сп лай н
и сп лай н а и и оснхд о
а и п о гр еш н о с т й н фу к ц и
и и н а
:
>> х = - 1:0.05:1; >> у = fun(x); >> plot( х , у , 'г' р
)
>> hold on >> fnplt(s) >> title('Гкифар
и ицкнуф
>> legend('ф' яицкну
и и ' анй лпс 1
, 'сплайн
)
,0)
>> х е = - 1:0.01:1; >> ye = abs(fnval(s, хе
) - fun(xe));
» subplot(2, 1,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 2) » plot (хе
, ye)
>> title('Гифар
П о лч у а ю щ и й с
1
к ошибк
я р ез луь ат
т п ри вед
)
н н а р и с
. 18.1.
аЧс т ь
790
IV. Ис по льз вани е
Toolbox и р еш ени
ки ф а Гр
0.2 • -1
- 0.8
- 0.6
и и фуц к н
- 0.4
- 0.2
4
х
1Q"
- 1
и ф а Гр
- 0.8
Рис
- 0.6
- 0.4
- 0.2
. 18.1. Пнелива тс дер
и пшер гнотс
м ег о п р
0
и
0
и иц яиплро ен т
и о бр ащ ен и
0.2
к ош бик
0.4
0.6
0.8
1
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
0.2
0.4
0.6
0.8
о сйпанл
1 zyxwvutsrqponmlkjihgfedc
а
и уzyxwvutsrqponmlkjihgfedcbaZYXWVU = е х
и дл я фнцки у т в м ес т о к о н с тр и у р о в а н и я в з адн н ы
и к csapi в кач евст
zyxwvut
зачд
а
е кгоксибеч у
И н ет р ф й с н фу к ц и и csapi п о з в о л яе в и ед с р тк у ы вы ч и сли т ь ег о з н а ч е н и то р с аб с ц и с ам и точ е к » xl = - 0 . 9 :0 . 2 :0 . 9 ; и укаже
и и нй а лсп
пр инхлыакд
я сп лай н
е треьт г
х то ч к а х
. С о з да и
о в о х нд о г
а в м в ек
-
о а р м гу е н а т
:zyxwvut
>> value = csapi(x, у , x l ) ;
ы з н ач ен и я к б уи ч е с к о г о сп лай н а в з адн н ы х от ч В в е к от р value з ан ес н к а х . О б р а щ е н и е csapi (x, у , xl) аде т то т ж е р ез луь ат , ч т о и f n v a l ( c s a p i ( x , у ) , x l ) .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
оП с т р о е ни
е спл а йн
а дл
Spline Toolbox п о з в о л яе т к о н с тр иу р о в а т п о с тр о е н и я , н а п р и м е р , кбуи ч ес к о г вы ш е н фу к ц и я csapi. В счлуа в о х дн о г о а р г ум е н т а — м а тр и ц ы ц и и в уз лах . П р о д е м о н с рт и р е у з н ач ен и
ю а р гму ен т
м п р и б л и ж ен и а котры
я веткор- ицнук ф
и ь сп лай н о сп лай н
е в е к от р - нфу к ц и , срто к е та б л и ч н ы х с о в т ес у
и котро
ы дл я в ек от р - нфу к ц и й . Д л а и с п о л ь з ес ту я р а с м о тр е н н а й о н а в ы з ы в а е ст я о т в то р о г й с о ед р ж а т з н ач ен и я н уф к
х о нд о м е р н ы т дв а з н а ч е н и
х да н н ы х я фну к ц и
, к аж одм . Э т
я я о у
и з н а
-
л ав Г
18. абРо т а
ч ен и с те
с о
я я в л ю ст я "ули кто
с плай нм и
791 zyxwvutsrqpon
в Spline Toolbox
я к о р ди н а т м й П аск аля
и от ч е к " и з адест
, леж ащ и
х н а кри вой
я п а р м е рт и ч е с к и м
, к о т р а и з а в и с и м о с ятм и
я н аз ы в а :zyxwvutsrqponmlkjihgfe
х = a • cos t + b - cos /, у - a • cos t • sin t + b • sin /, дг е 0 0. Л и с ти н П аск ал
г 18.1 соедр ж и я п р и п о м щ
т е тк с и кбиу ч еск и йл - иц кн фу
т фа й л - н фу к ц и
и u iit ka 2, к о т р а я с тр о и т л иу к т у .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
х сп лай н о в я дл
я пос т рое ни
я ул и т к
и Па с кл
я
I
fu n c t i o n u l i t k a 2 ( a , b) % П о с т р о е н и
и П аскал
е ул и т к
% З а д а н и
е ш аг
я к уб и ч е с к и м
а и з м ен ен и
я п а р а м е тр
и с п л а й н а м
и
а
".
h = p i / 2 0 ; zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Зи н а д
е зи н е ч а н
й р т е м а р п
а
t = 0:h:2*pi; % Ви н е л с и ч ы
е ц и л б а т
ы и н е ч а н з
й
х = a*cos(t).*cos(t) + b*cos(t); у = a*cos(t).*sin(t) + b*sin(t) % Фи н а в о р и м р о
е ц и р т а м
ы с о зм я и н е ч а н
и о н ч и л б а т
й и ц к н у ф
и
R - [х ; у ] ; % Си н а д з о
е н й а л п с
а
р р = csapi(t ,R); . % Во в ы
д гк и ф а р
а н й а л п с
а н а ос
и с оы в о к а н и д
м обатшсам
м
figure fnplt(pp) axis equal
Вы зо
в фай л- нфу к ц и
и
» ulitka2(2, 1) п р и в о ди
т к п о яв л ен и
ю ули кт
и П аск ал
я (р и с
В он дх ы м и а р г м у е н ат м и фа й л - н фу к ц и и п а р м е рт ы л иу к т и П аск ал я а и .Ь М ен я раз ли ч н ы е фо р м ы л уи кт и . И сохнд ы м и яв л ю ст я р а в н о тс о я щ и е от ч к и с ш аго юв у щ и е и м к о р ди н а т ы х , у от ч е к в е к от р а л иу к т и г . Ф ну к ц и я csapi с рт о и к б уи ч е с к о г о сп лай н а , к о т р ы й з ает м о т б р а ж е ст fn plt .
. 18.2).
u iit ka 2 яв л ю ст я г е о м е рт и ч е с к и я э т и в ели ч и н ы , м о ж н да н н ы м и лд я п о с рт о е н и м /г , п о м ещ ен н ы е в t, и н а кри во й — к о р ди н а т т к с уо ч н о - п о л и н о м и а л ь н у я гр а фи ч е с к и пр
е о п о лч у и т я сп лай н с о в т ес ы р а ид с у ю фо р м и п о м щ
ь а у и
аЧс т ь
792
. 18.2. Укилт
Рис
а я П л ак с й п а снл
^ Дл и од х
Пр и м е ча ни я н ке о р ы т т н дерс иу
з н ач н а
IV. Ис по льз вани е
, пнеор атсо , пр и зн ечиая
я с пщом ь х пор тмае
е
^
а сржеи од
, в то м ичлс я н у фк ц и т н кс ое ь л
х н у фк ц и й е з н ча е и , т . е . табли ц
Toolbox и р еш ени
е слиуво
пр инхлыакд
zyxwvuts
зачд
ю пниемр я кгоксибеч у о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ a = 2, Ъ - 1zyxwvutsrqponmlkjihgfed
е и дл я расмнеот о , елс и п ри бл жмеа о оидн аковы
ы р л ио н з в П ь
е крае ыв
К а к ж у е о мт е ч а л о с "оствуи я зу л а " п о л и р е ум о й фн у к ц и р а с м а тр и в а е м о г н ы х о п р и б ли ж аем о к р аев ы е с ул о в и я раз ли ч н ы е в а р и а н т
ь вы ш е , нфу к ц и я csapi с рт о и и с лу о в и я да ю т н аи бо ле е то ч н о , елс и н е т и н фо р м а ц и и о б е е п р о и з в о дн ы о о тр е з к а . П р и н али ч и и к а и -х ли б й нф у к ц и , з а ч сюут , ц ел с о б р а з н . Д л я э то г о п р и м е н я ес т я нфу к ц и я ы о б р а щ е н и я . П ер в ы й сп о с б
й csapi, п оир с я н у кц ф и я мн ог х з н чае и й амнеруга т
.
я
. Э т
т сп лай е п р е сд а т в л е н и
н с с лу о в и я м
и
е и н е тр х н а гр а н и ц а о д о п о л н и ет л ь н ы х ад н о п о с ат в и т ь рд г и у csape. О н а од п сук а е
х е т
s = c s a p e ( x , у )
п р и в о ди н ог (н и ж мг у е н от
т к п о с рт о е н и о кбуи ч ес к о г е м ы с к аж ем м
ю к суо ч н о - п о л и н о м и а л ь н о о сп лай н а с к р аев ы м , ч т о э т о з а суло в и я)
s = c s a p e ( х , у , c o n d s)
и усл о в и ям и . В ы з о
й фо р м , з а д н н ы м в csape с тр еьт и
ы и н те р п о л я ц и о н и п о му о л ч а н и м в о х нд ы
ю м ар -
л ав Г
18. Рабо т а
с о
сплайнм и
в Spline Toolbox
793 zyxwvutsrqpon
п оз воляе т вы брат ь краевы е ус л о в и я и з до в о л ь н о обш и рн ог о сп и ска , п р е д . 18.1. П р и э т о м може т п о тр е б о в а ть с я расш и рен и е м ас и с та в л е н н о г о в т а б л в а у д л я у к а з а н и я з н ач ен и й п р о и з в о дн о й сп лай н а н а г р а н и ц а х о тр е з к а . В о з можн о та к ж е з а да н и е с о б с тв е н н ы х гран и ч н ы х ус л о в и й , н о т о г д а п арам ет р con ds д о л ж е н бы т ь н е т е к с т о в о й с тр о к о й , а в е к т о р - с т р о к о й и з дв у х э лем ен то в . П р и так о м сп особ е можн о о п р е де л и т ь раз ли чн ы е краевы е ус л о в и я . П р и э то м з н а ч е н и е п ервог о э лем ен т а с о т в е т с т в уе т лево й гран и ц е о тр е з к а , а в то р о г о — п р а в о й . В м а с и в у п р и э т о м до б а в л я ю тс я до п о л н и те л ь н ы е з н а ч ен и я в н ачал о и к о н е ц м ас и ва . П р и н я т ы с л е д ую щ и е п рави ла : е с л и з н а ч е н и е э лем ен т а в е к то р а с тр о к и con ds р а в н о 1, т о д о п о л н и т е л ь н ы й э лем ен т в у з а да е т з н ач ен и е п ерво й п р о и з в о дн о й , е с л и в con ds э л е м е н т раве н 2, т о до п о л н и те л ь н ы й э лем ен т в у з а да е т з н ач ен и е в то р о й п р о и з в о дн о й . В с л у ч а е п е р и о ди ч е с к и х ус л о в и й con ds з а д а е т с я м ас и во м [0 0] и о б р а щ е н и я s i = c s a p e ( x , у , ' p e r i o d i c ' ) И s i = c s a p e ( х , у , [0 0 ] ) п р и в о д я
т К И ДО
-
н аковом у р е з ул ь т а т у . С т р о к о в о е з н ач ен и е ' v a r i a t i o n a i ' п а р а м е тр а con ds э к в и в а л е н т н о з а да н и ю в е к то р а [2 2] о д н о в р е м е н н о с з ап и сь ю до п о л н и те л ь н ы х н ул е в ы х э л е м е н то в в м ас и в у . Е с л и con ds ( j) (дл я j = 1 и/ ил и j = 2) н е з а д а е т с я и л и п р и н и м а е т з н ач ен и я , о т л и ч н ы е о т 0, 1, 2, т о con ds ( j) п р и н и м а е т с я равн ы м 1, а с о т в е т с т в ую щ е е з н ач ен и е в м ас и в е у п р и н и м а е тс я п о у м о л ч а н и ю с л е д ую щ и м образ ом . З н а ч е н и е м п о ум о л ч а н и ю дл я д о п о л н и те л ь н ы х э л е м е н то в у я в л я е тс я п р о и з в о дн а я к уб и ч е с к о г о и н те р п о л я н та , п о с т р о е н н о г о п о б л и ж а й ш и м ч е ты р е м то ч к а м .zyxwvutsrqponmlkjihgfedcbaZYX
18.1. zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR ыт ер а м р П кн ци фу csapezyxwvutsrq
а ц и а лб Т и ен ч а З н я ет ма р п р а conds
'c o m p let e' ИЛ
И
'clamped'
-
П и е н соя
я
n ot- a- kn ot'
'p erio d ic '
е зиен ча н в мвсаи
сУ л о в и п а де н и н аклон
е з ак р еп лен и я е та н г е н с о а (п р о и з в о дн ы х
гр а н и ц а
х о тр е з к
с о з н а ч е н и я м и в р а с ш и р е н н о 1
ы н о б чав Д
сУ л о в и оп и сан н о
. С о в в гу л о
-
З н ач ен и я п р о и з в о дн ы х и н т е р п о л и р еу м о й нф у к ц и и в \Х и xN п о ум о л ч ан и ю п р и н и м а ю тс я та ки ми , к а к в "default"
,
Н е тр е б ут с я / и г н о р и р е уст
в ) н а
а [х }, xN ] , з а д н н ы м м м ас и в
е "о тс у в и е вы ш
сУ л о в и е п е р и о д и ч н о с ти С о в п а де н и е з н ач ен и в о й и в то р о й п р о и з в о дн ы н а г р а н и ц а х п р о м е ж ту к
я
е у
и е у я зу л а "
е . й пер
Н е тр е б утс х
а
я
я
аЧс т ь
794
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
18.1zyxwvutsrqponmlkjihgf (оаин)екч о zyxwvuts
а ц и а лб Т и ен ч а З н
я пет ма р П и е о сня я ы он б а в Д ч е зи ен ча н в мсави е у р а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA con ds
' sec o n d 1
С о в п а де н и р ы х п р о и з в о дн ы ница х о тр е з к з н ач ен и ям и м ас и в
1
va r i a t i o n a l'
Р а с м о тр и ф ун к ц и
м п ри ме
е з н ач ен и
й в то х н а гр а а \ х х , xN ] с о
, з а д н н ы м
Ус т а н а в л и в а е и з в о дн ы равн ы м
т в то р ы е в то ч к а и 0
р п ри бли ж ен и
х н а кон ц а
я в то ч к а
xN в то р ы
я
х х х и
х п р о и з в о дн ы
х
п о ум о л ч а н и г а ю тс я равн ы м
ю п р е дп о л а и 0
И г н о р и р уе т с
я
-
е у е п ро х х х и xN
я с п омощ ь
и ^ = COS(2TU :) с п о с л е д ую щ и
п р о и з в о дн ы
З н ач ен и
и в
zyxwvut
зачд
ю сп лай н о
м вы ч и слен и е
в п е р и о ди ч е с к о м раз н ост
й
и е е п ервы
х
х *j = 0 , xN = 1zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
» х = 0:0.05:1; у = cos(2*pi*x); » s = csapi(x, у) ; » si = csape(x, у , 'periodic'); » diff (fnval(fnder(s), [0 1])) ans = - 0.0665 » diff(fnval(fnder(sl), [0 1])) ans = - 3.7007e- 016 В п р и в е де н н о м п ри м ер е з а да ю тс я и с хо д н ы е да н н ы е и с тр о я тс од - ф о р м е : s с у с л о в и я м и "о т с ут с т в и я уз л а " , и s i — с п е р и о д и ч е с к и м ви ям и . З а т е м в ы ч и с л я е тс я раз н ост ь з н ач ен и й п р о и з в о дн ы х м е ж ут к а , т . е . ч е р е з п ери од , р а в н ы й 1. З де с ь и с п о л ь з ую т с я с л е д ую щ и ц и и Spline T oolbox, fn d er п о з в о л я е т вы чи сли т ь п ерву ю сп лай н а . Р е з у л ь т а т о м fn d er (s) я в л я е т с я с т р ук т ур а с п олям и м и s. Ф у н к ц и я fn va l в ы ч и с л я е т з н ач ен и я п ерво й п р о и з в о дн о то ч к а х , у к а з а н н ы х в о в то р о м е е в хо д н о м а р г ум е н т е . В д а н н о я в л я е тс я м ас и во м и з дв у х э л е м е н то в [0 1] , т . е . в ы ч и с л е н и то ч к а х х х = 0 , xN = 1. В з а в е р ш е н и е с п омощ ь ю ф ун к ц и и в ы ч и с л я е тс ж е де й с тв и чал е и кон ц
я раз н ост я п о вы ч и слен и е п ери од
ь п о л уч е н н ы
х з н ач ен и ю раз н ост
а п р о в о дя тс
я дл
и з н ач ен и я с т р ук т ур
й п ерво
й п р о и з в о дн о й й п ервы х п р о и з в о дн ы ы s i . И з п о л у ч е н н ы
я сп лай н
ы в и ус л о х п ро е ф ун к
н а кон ц а
-
п р о и з в о дн у ю , а н а л о г и ч н ы й сп лай н а в м с л уч а е о н я п р о в о дя тс я в M AT L AB d i ff . З а т е
м т е х в на х р е з ул ь -
л ав Г
18. абРо т а
с о
та о в в и дн о зу л а " , р а з н о с т д а до в о л ь н ск и х гр а н и ч н ы Ч то б с ул о в и й сп лай н а н оль
с плай нм и
, ч т о в п ерв о м с чл у а е ь п о чл уе н ы х з н а ч ен и о в ел и к а п о с р а в н ен и х с лу о в и й п р и п о срт о ен и
ы ще е р а з п о чд е р к н т у , в ы ч и сли м пу о м и н ав ш юу с , в от р ы е п р о и з в о дн ы , т . е . "есетв н н о г
»
795zyxwvutsrqp
в Spline Toolbox
, т . е . п р и н ало ж ен и и с лу о в и й п р о и з в о дн о й в н ач л ю с о в от р ы м ч с л а уе м з адн и и с п л а й н а .
ь в аж н о ст
й "оствуи е и к о н ц е п ер и о я п е р и о ид ч е
я -
ь к о р е к тн о г
о з адн и я гр а н и ч н ы х ь з н а ч ен и й п ер в о й п р о и з в о дн о й о н а гр а н и ц а х о рт е з к а о б р а щ а ю тс я в :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC я раз н ост
е котрог о сп лай н а"
s2 - csape(x, [0 у 0] , [2 2]);
» diff(fnval(fnder(s2) , [0 1])) ans = 1.1490
К а к в и дн о и с к ус тв е н н о
, з д е с
ь р е з ул ь та е н аложен и
т п о л уч и л с е ус л о в и
я с ущ е с тв е н н о хуж е . Т а к и м образом , y"(xN ) = 0 п р и п о с т р о е н и и й y ( * i ) = 0 , zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
сп лай н а може т п ри вест и к о щ ути м о й п о гр е ш н о с ти . Н е т р у д н о та к ж е п рове р и ть , ТЧ О В ОЫ З Ы s2 = c sa p e ( x, у , ' v a r i a t i o n a l ' ) s2 = c sa p e ( x, [0 у 0 ] , [2 2 ] ) э к в и в а л е н т н ы .
И
й с и с те м е M AT L AB n o T o o lb o x Д р уг и е п ри мер ы с о де р ж а тс я в сп равочн о (с м . р а з д .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA S pline Toolbox: Functions - Categorical List: Construction of S plines). zyxwvutsrqpo
е спл а йон
с И п о л з ь в а ин О б р а ит м с лен )авыг л .
я е тп р е (с.м
а вы ш
Н ап ом н и м л я се т ет р в а л
р.азд
ь к р а б о т "В- а м р фо
, ч т о сп лай я мс у о
й В - сп лай н о
е [tt, ti+fc]. зУл
п о в т р ен и й п оли н ом ов до л ж н о в ы п о л н я ьт с тисьон в атле д лс мво виой лус х ы вмае в й а он д с о в т ес у п р е пд о л а г е в к л ю ч и ет л ь н о
з у л а о п р е дл я , со атв ляю щ и
в в -В рм фо е с о сп лай н ам (рине ж о азл
н п о р я дк
а к с уз лам в Bt k , к аж ыд
ы в п о с л еод в аетл ь н о с т
е и в В - форм е п о м а ы нз и с б
, к о т р а
я бы л
и ,Ц ..., tn+k в 5- фо р м й и з к о т р ы и м о гу
а о п р ед
)айнм плс "
х о л ти ч е т со в п адт
й т оэ
е п р е сд а т в
н о т нлу
я н а и н
ь и к о л и ч е с вт
т г л а кд о с т ь с о ие д н е н и я м ж ед у соб й к с уо ч н ы х 2?- псйалн . П р и фо р м и р о в а н и и м ас и в а зу ло я ю с лу е д щ е е п рави ло : твсеоич кло пинейврто уа зл в п-о уво зл равон ртисазон у д меж км о д я рпо сайн пл и ктс-еич ло гткисоад л (нтисвоны реп фукн ци и ее х)ын издвопр , - ы ад нк л тк.чео С л е д о в а те л ь н о , / -с н ткары й з еу л в н е к о т р о й то ч к т о с тв у и ю с лу о в и й н еп р е ы в н о с т и во бщ е , а п р о с т й з уе т н еп р е ы в н о с т ь н фу к ц и и и е е п р о и з в о дн ы х д о п о р я дк а к .
о х в
е л 2
796
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvuts
зачд
В р е з л уь ат е м ож е т бы т ь р еали з о в ан о п р и б л и ж ен и е н фу к ц и й с раз ли ч н о й епс т н ь ю г л а д к о с ти . S- фо р м а м ож е т и м ет ь р а з р ы в ы в п р о и з в о дн ы х н е то л ь к о в о в н рт у е н н и х , н о и в гр а н и ч н ы х зу лах . П р и н я т о в ы б и р а т ь н ач ль н ы е и к о н еч н ы е з ул ы та к : ^ = ... = ^ = j c l 5zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ tn+l = ... =tn+k =xN . П о с л едо в а етл ь н о ст ь зу ло в м ож е т бы т ь п о с рт о е н а в чр у н у ю и л и с п ом ощ ь ю н фу к ц и и augknt. П р и о б р а щ ен и и augknt (x, к ) ген ери ресту я п о с л е д о в а те л ь н о с ть , у котро й п ерв ы й и п о сленд и й узл ы и м ею т к р а нт о с т ь к :zyxwvutsrqponmlkjihgfedcb » knots = augknt([1 2 3 4 5],4) knots = Columns 1 through 7 1 1 1 1 Columns 8 through 11 5 ќ 5 . 5 В от р м е рт э от кову
2
3
4
5
й сп о с б вы з ов а augknt (x, k, muits) п о з в о л яе а muits ку а з а т ь ж ел а м у ю к р а нт о с т ь к а ж од г м лсе и m uits явлсет я п о с т ян н о й , т о вс е в н ртуен н и ю к р а тн о с ть .
т с п ом ощ ь о в н рт у е н н е г
о з ула е з ул
ы и м ею
ю п ар . П р т о ид н а
и -
»kn o t s = augkn t([l 2 3 4], 3, 2) knots = Columns 1 through 7 1 1 1 Columns 8 through 10 4 4 Дл
я з адн и
я ж ел а м о
м и ро в ат
й к р а нт о с т й м ас и
ь п о хд я щ и
2
2
3
3
4 и в к а ж од в muits с о з н ач ен и ям
м зул
м в н р т е ун е и к р а тн о с ти
е е с лу д :
т с фо р
-
»kn o t s = augknt ([1 2 3 4], 3, [12]) knots = Columns 1 through 7 1 1 1 2 3 3 4 Columns 8 through 9 4 4zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
^ е у Сд е л о в е лн у ас д с п р ав
Пр и м е ча н и
е
т мои т е ь е з н а ч не и е т з н ачне и е
, чт о нв , в т о мерв , омеоялпдр
а о т баз ов г
о укчаст
^j е баз о в г о к п т ро м ж е у я ка к р- р а м р фо в елс е кчонс уы м п оил н ом а — п оил н ом м н а пн делсо
а ае д т а [tx, tn+k ] 5- офрм а о т баз о в г о к п т ро м ж е у а м н а повре м укчтса е Р ] , а м укчсат е PN _^.
л ав Г
18. абРо т а
с о
Д л я и з ч еу н и я в л и ян и в к л ю ч ен о п р и л о ж ен и П осл е в ы з о в а
сплайнм и
797zyxwvutsrqpo
в Spline Toolbox
я з уло е с гр афи ч ес к и
в н а в и
д и п о р яд м и н е тр ф й с о
к 5- с п л а й н м п о л ь з о в а ет л
а в Spline Toolbox я b sp i i gu i .
» bspiigui
о кт р о е ст я окн о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Experiment with a B- spline as a function of its knots (р и с . 18.3), в котро м и з о браж е н 5- сп лай н и ег о п ерв ы е рт и п р о и з в о дн ы е . С п о м о щ ь ю кн оп о к Add a knot (Д о б а в и т ь з у ел ) , Mark a knot by (left) clicking near it (О мт еи т ь з уе л щ е л ч к о м мы ш и ) , Delete the marked knot (Уадли т ь п о м еч н н ы й уз ел) , Move the marked knot with the slider (П ер вди н ту ь п о м еч н н ы й узе л с п ом щ ь ю н б е гу к а ) м ож н о э к сп ери м ен ит ро в ат ь с коли ч евсто м зу ло в , и х п о л о ж ен и е м и к р ант о сьт ю . В внерх й ч аст и окн а п оявлсет я и н фо р м а ц и я о по р я кд е 5- сп лай н а и к оли ч есвт е п о ли н о м и аль н ы х кскуов , соасвтляю щ и х его .zyxwvutsrqponmlk
Ф zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Experiment with a B- spline as a function of its knotszyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP Help
The B- spline is of ORDER 4 since it is specified by 5 knots. It consists of 4 polynomial pieces, each of DEGREE 3.
Also shown are the 1 st, 2nd, and 3rd derivative of the B- spline.
-°
5
2 r
0
Mark a knot by (left)clicking near it
Delete the marked knot
Move the marked KNOT with the slider
Close
Рис
. 18.3. Экспери м ен т
ы с ^- с п л а й н а м
и с п о м щ ь
ю н фу к ц и
и b s p i i g u i
798
Р а с м о рт и п ер в о образ ом
аЧс т ь
м п ри м е й п р о и з в о дн о :
IV. Ис по льз вани е
р и н ет р п о л я ц и й в н ек о т р о
Toolbox и р еш ени
и сп лай н ам й то ч к е
. П сту
и нф у к ц и ь н фу к ц и
пр инхлыакд
, и м ею щ е я з а д н
zyxwvuts
зачд
й раз ры
в
а ю с у л ед щ и
м
—I) |x> 0.
П о с рт о и м сп лай н рт е ь г о п о р я дк а (к в а др ит ч н ы й ) . В к ач есвт е з н ач ен и й а р мг у е н т а в ы б ер м с ю л уе д щ и е : х = [- 1 - 0.25 о 0.25 l]. Р а с м а рт и в а ем а я н фу к ц и я и ме т раз ры в п ер в о й п р о и з в о дн о й в от ч к е zyxwvutsrqponmlkjihgfedcbaZYXWVUT х = 0. Д л я п о с рт о ен и я с п л а й н - н фу к ц и и м ож е т бы т ь и сп о ль з о в ан а н фу к ц и я spapi в юсулед щ е й фо р м е : spapi (kn ots, х , у) . Зсед ь м ас и в knots с о едр ж и т зу л ы , н ео бх ид м ы е дл я п о с рт о ен и я сп лай н а , к о л и ч есвт о и х равн о n + k , гд е к — п о р я од к с п л а й н а ; п — к о л и ч есвт о з н ач ен и й в м ас и в е хх . В м ас и в е у у з а п и с а н ы з н а ч ен и я н фу к ц и и о т со втесюу щ и х э л е м н от в м ас и в а х .zyxwvutsrqponmlkjihgfed
р е Пп у д и н ж лЕс
и пр с п о т ер я в бы т
В н аш е с я до п о л н и те л ь н к и - х ли б д о в а ет л ь н о с т
е
ь з н чае и м п р и м ер о то ч к а
и и сп ольз ван и я г раз я фн цку и
и фн цкуи , т о ю вущтс еио м и и е е пывре
е дл я о п р едл н и о к з н ач ен и я х с л ев а и с п р а в ь к ом ан д р еали з еу
я сп лай н м н фу к ц и а о т от ч к т п о с ат в л е н н у
и spapi н коерт и н м е эа л т х (г - 1) п рои з внод ы х
х х = [- 1 - 0 . 5 - 0 . 5 0 0 . 5 0 . 5 1] ;
»
у у = [0 0 . 2 5 1 1 0 . 2 5 - 1 0 ] ;
»
k n o t s = [ - 1 - 1 - 1 - 0 . 5 0 0 0 . 5 1 1 1 ] ;
»
s = s p a p i ( k n o t s , х
»
у
е в исмав а у у жол н д
и и см а в
е х х ы
.
а еи д н с в т е н н ы м образ о и з адт ь з н ач ен и я п р о и з в о дн ы и раз ры в а х = 0. С люеуд щ а ю з а дч у
»
,
е з н чае и
м ртеб у -
х в к а я п о сле -
)
fn p lt ( s)
С о гл а с н о лов , в м ас и в з у л е н а р ш у а е ст в е н тр е м В м ас и в з н ач ен и й и е е п ер в о в о нд ы х до л ж н
п р и в е дн н о м
, в е х н фу к ц и й
у вы ш е knots з н ач ен и я н еп р е ы в н о с т зу л е t = 0 то л ь к х з н ач ен и я - 0.5 и у у и м од л ж н п р о и з в о дн о й . О мт еи м ы бы т ь в з ят ы с
е п р ав и л у п о с рт о е н и я п о с л е д о в а ет л ь н о с т и зу е з ул а t = 0 п о в т р яест я дв а ж ды , т . к . в эот ь п ер в о й п р о и з в о дн о й (п о р ядо к сп лай н а ра о о нд о ус л о в и е — н еп р е ы в н о с т ь нф у к ц и ) и 0.5 п о в т р яю ст я дв а ж ды , з н а ч и т , в м ас и в ы с о вт е с вт о а т ь з н ач ен и я сам о й н фу к ц и , ч т о до п о л н и те л ь н ы е з н ач ен и я п рои з р а з н ы х с от р н о т то ч к и раз ры в а фну к ц и .
м . е и -
л ав Г
18. абРо т а
В к о м а н дн о с рт о е н н о э ф и ц и е н от в
с о
е о к н м сп лай н е , р а в н ы
с плай нм и
в Spline Toolbox
о в ы в о ид ст : п очлуен м с ем и
799 zyxwvutsrqpo
я с о ед р ж и м о е с рк т у а 5- фо р м а с десяьт , сп лай н тр еьт г о п о р я дк
ы s с и н фо р м а ц и е ю зу л а м и , к о ли ч есвто а р а з м ер н о с т
и о ди н
й о п о м ко .zyxwvutsrqpon
S = form: 'B- ' knots: [1x10 double] coefs: [1x7 double] number: 7 order: 3 dim: 1 Р е з л уь ат
т работ
ы н фу к ц и
и fn pit п р есдатв ле
с иР
с рзаыр ов О б р ащ ен и н ы р а з л и ч н ы и н те р п о л я ц и о н н о г х и у м ас и о н дх о ат к о м с етр у
. 18.4. Пн еори тсо м пниордзв
н н а р и с
е сйна-пл нцки у ф й с пщом ь
. 18.4.zyxwvutsrqponmlkjihgfedcbaZYX
и ю фнцки у
и spapi
е к spapi в фо р м е sp = spapi (k, x, у ) п о з в о л яе т с рт о и т ь сп лай х п о р я дк о в . В к ач есвт е п ер в о г о а р мг у е н т а к у а з ы в а ест я п о р я до к о сп лай н а . С юлеуд щ и м и а р мг у е н а т м и я в л ю ст я м ас и в ы , п р есдатв л яю щ и е соб й в о х нд ы е да н н ы е л д я п о с рт о е н и я сп лай н а — в к о р ди н а т то ч е к раз ры в а и з н ач ен и й фн у к ц и и с о вт ес н н о . В в ы м а р мгу е н т е (сркеут ) в о з в р а щ а ест я и н фо р м а ц и я о сп лай н е . П р и вы з ов е н фу к ц и и spapi п о хдящ а я п о с л е од в а е т л ь н о с т ь зу ло в фо р м и я а в от м а ит ч е с к и с п о м о щ ь ю фн у к ц и и aptkn t (х , к ) .
800
Р а с м о рт и ным
аЧс т ь
. В п ер в о
в о в от р з л у ь ат о в
м п о с рт о е н и м с ч л уа м — в то р о г , фо р м и рюу ст
» х = 0:4; » у = х.*е( рх -
IV. Ис по льз вани е
е сп лай н о е с рт о и ст о п о р я дк а я раз н ы
Toolbox и р еш ени
пр инхлыакд
zyxwvuts
зачд
в раз н ы х п о р я дк о в п о о нд и м и те м ж е дан я сп лай н рт е ь г о п о р я дк а (к в а др ти ч н ы й ) , а . П р и э то м , ка к е сулд т и з п р и в е дн н ы х ре е м ас и в ы зу л о в :zyxwvutsrqponmlkjihgfedcbaZYXWVU
х . *x) ;
» s2 = spapi(3, x, y) » fnplt(s2, '- ' , 1) » hold on » si = spapi(2, x, y) » fnplt(sl# '+' , 2) s2 = form : ' B- ' knots: [0 0 0 1.5000 2.5000 4 4 4] coefs: [1x5 double] number: 5 order: 3 dim: 1 si = form : ' B- ' knots: [0 0 1 2 3 4 4] coefs: [0 0. 3679 0.0366 3.7023e- 004 4.5014e- 007] number: 5 order: 2 dim: 1
Г р а фи к ли н и е
и п ер в о г й п о к а з а
о и в то р о г н сп лай н тр еьт г
о сп лай н о о п о р я дк а
в п р и в е нд , а к р есит к ам
ы н а р и с . 18.5. С п л о ш н о и — в то р о г о .
й
П оск оль к у в с ге н е р и р о в а н н ы х м ас и в а х зу ло в kn ots к аж ыд й в н рт уе н н и з еу л в сртеч а ст я ли ш ь ои д н р а з , т о э т о о з н а ч ет , ч т о н а л о ж ен о м ак си м аль н воз можн о е лд я д а н н о г о сп лай н а к о л и ч е с вт о с лу о в и й г л а дк о с т и в к а ж од зу ле . В э от м м о ж н о б уе ид ь т с я , о т б р а з и в гр а фи к п ер в о й и в то р о й п рои з в о нд ы х сп лай н а : » fnplt(fnder(s2), '- ') >> hold on >> fnplt(fnder(s2, 2), '- - ') Дл я сп лай н а тр еьт г в уз л е — н еп р е ы в н о с т
о п о р я дк ь сам о
а м ак си м аль н й н фу к ц и
о воз м ожн о и и е е п ер в о
е к о л и ч е с вт й п р о и з в о дн о й
й о м
о с лу о в и
й
-
, о че м
л ав Г
18. Рабо т а
с в и е д лт ь с в е т у ш рт и о х в а
с о
т р и с я — в то р о й )
сплайнм и
в Spline Toolbox
. 18.6 (сп ло ш н а .
Рис п о с рт е н н ы
Рис
. 18.6. Г р афи к
и п ер в о й
я л и н и
801 zyxwvutsrqp
я — гр а фи
к п ер в о
. 18.5. С п лай н ы р аз н ы х п о р я кд о в м и те м ж е дан н ы е п о онд и
и в от р
й п р о и з в о нд ы
х лд
я с п л а й н
й п р о и з в о дн о й
, а
, м
а тр еьт г
о п о р ядк
а
802
аЧс т ь
С г л а и вж щ ю
IV. Ис по льз вани е
Toolbox и р еш ени
е слпанй ы
4
то р ы нф у к ц и я ч ес к о г
; wt — н ео рт и ц аетл ь н ы
е н е р кд
о в ы б и р а ю ст , ка к п р а в и л о , п о л аг ест о сп лай н а m = 2.
я рав н ы м
С г е н е р и ре у м да н н ы е с о с чл уа й н ы н и м — кбиу ч еск и й с гл а ж и в а ю щ и (х , n o isy) , п ер в ы м п а р м е тр о р ы м — з н ач ен и й в о з м щу ен н о
^
Пр и м е ча н и
Дан н ы ыд щ у е г
е с "ш му о м о п р и м ер
я п о мр е яв т с
и zyxwvutsrqponmlkjihgfedcbaZYXW yi и з в еснт ы с н е , яв ляю ст я дан о с п л а й н а , т . е . , о со бен н о ь в ели к а . В эот м улс й сп лай н со бщ ае т
V
'
е в ес о в ы
и 1; X(t) — н ео тр и ц а тел ь н а я п о с т ян н о й и р а в н о м в о з мщ у ен и е й сп лай
м котро й фну к ц и
е м н о ж и ет л и
, к о я в ес о в а . Д л я бкиу
й е ид н и ц е
я -
м ("ш му о ") , а з ает м п о н с п ом щ ь ю н фу к ц и и csaps й яв л с ет я м ас и в к о р ди н а т , а в от .
е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED jj " п очлеун а с ч л уа й н о
ы е тп у й с о а тв л я ю щ е
х = 0 : 0 . 1 : 3 ; у = 2*х . *е х р ( - х
лД
zyxwvuts
зачд
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
е ч а с т о з н ач ен и я а п р о к с и м и р е ум о й н фу к ц и Н а п р а к ит к котро й п о г р е ш н о с ьт ю yt = yi + S t, дг е i = 1,..., N , н а п р и м е р ным и э к с п е р и м е н ат . П о э т м у п о с рт о е н и е и н те р п о л я ц и о н н о г от ч н о е од у в л е т о р е н и е э и т м ад н н ы м с ат н о в и ст я н е э ф е к ит в н ы м в те х счлуаях , к о гд а п о гр е ш н о с т ь в дан н ы х м ож е т бы т ч а е п р и м е н я ю ст я сглаж и в аю щ и е сп лай н ы . С гл аж и в аю щ и ми н и му м фн у к ц и о н а л у :
дг е ер [0,1] — п а р м е тр
пр инхлыакд
я к з н ач ен и я й с п ом щ ь
м н фу к ц и
ю ю с ул ед щ и
и и з п ре х к ом ан
-
д
. *х ) ; n o i s y = у + . 2 * ( r a n d ( s i z e (x) ) - . 5 ) .
и о р лз е а ь т у
с р ж те а о д я н а п ри маелго к аз у н ы й йа ф л се у дел в на и я и з па и с и двоичн ы г о к атло г а в р.азд "Утвсакон
м од б а в л е н и
в н м еп р ы м к кн и г т скоп и роват х дна ы
С л ю е уд щ а я п о с л е до в а е т л ь н о с т ь к ом ан в аю щ ег о сп лай н а и ег о гр афи ч ес к о м ли н и е й п о к аз а н с гл аж и в аю щ и й сп лай н >> load setl8.mat >> scs = csaps(x, noisy); >> fnplt(scs) >> hold on
е з па и сна е комп-кат и дске ь в тщ укеи
х раз обран путйе" д п р и в о ди у о т б р аж ен и ю , а к ржук ам
гавы л
ы в йа ф л set 18.mat и я и х и сп ольз ван и я г (сп осб ы ычис т 1, а уанст овк а щ уке т -
. Дл й к а лт о ы в гаве л 5).
т к п о с рт о е н и . Н а р и с и — и оснхд ы
ю с гл а ж и . 18.7 с п л о ш н о е да н н ы
й е zyxwvutsrqp
л ав Г
18. абРо т а
с о
в Spline ToolboxzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO 803
с плай нм и
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA plot(x, noisy, 'ro') >> legend('с' нйалп ,'д' еын а
)
>> hold offzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
1.2 О
.1 -
0.5
.с иР 18.
1.5
» scsl = csaps(x, noisy, 1) » scsO = csaps(x, noisy, 0) » plot(x, noisy, 'ro1) » hold on » fnplt(scsl) » fnplt(scsO, 'b*- 1) h o l d o ff
, ' я'и ицялопретн
е
Кк с еичб у й сюиажвщ л г й сй апл н 7 иzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
» load setl8.mat
» legend('д' еын а
н
2.5zyxwvutsrqponmlkjihgfedcbaZYXW
Ч то б ы "р е глуи р о в а ть " , н а с к о л ь к о бли з к о с гл а ж и в а ю щ и п о хд и т ь к и оснхд ы м да н н ы м , м о ж н о и с п о л ь з о в а т ь нфу к ц и го й ф о р м е csaps (х , у , р ) , гд е р — п а р м ет р с гл а ж и в а н и я ч ен и я р = 1 и р = о п р и в о дят , с о вт ес н н о , к и н етр п о л яц и о н н о м ч ес к о м у сп лай н у и п оли н ом у п ер в о й епс т н и (п р ям о й ) м о е тд у н а и м ен ь ш и х к в а д р а то в .
»
с п лай дан ы
, 'MHK')
й сп лай
н од л ж е н ю csaps в руд . К р а й н и е з н а у кб и у , п о с рт о ен н о м у п о
zyxwvuts
аЧс т ь IV. Ис по льз вани е Toolbox и р еш ени пр инхлыакд зачд 804zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
т од - ф о р м у и н те р п о л я ц и о н н о г о к буи ч е с к о г о сп лай С рт к у а sc si соедр ж и н а , a scsO — да н н ы е дл я п о срт ен и я п р ям о й п о м о е тд у н аи м ен ь ш и х к в а рд . Г р а фи к и п о чл уе н ы х с гл а ж и в а ю щ и х сп лай н о в п р и в е дн ы н а от в (М Н К ) р и с . 18.8.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
О
ын а д и ц я о л п р е т ни
е я
- • —м н к zyxwvutsrqponmlkjihgfedcbaZYX
Рс и
С щ у е с вю т у ч ан и
и п р е л дь н ы
т н ек о т р ы ю п р и н и м а е ст
х з н а ч ен и
е р ек о м ен муд ы я з н ач ен и
гд е h — сур енд ен н о ид т ь э к с п е р и м е н ыт обращ ен и
. 18.8. С члуа
е р а с то я н и , м ен я я з н ач ен и
й п а р м е рт
е з н а ч ен и
а с гл а ж и в а н и
я п а р м е тр
я
а р , та к
, п о м уол
-
е
е м ж ед
у абсц и с ам е р . Уз н а т
ь ще к т у е
и да н н ы х е з н а ч ен и е/
. М о ж н
о п ров ? п о з в о л яе
т
е [sp , p] = c sa p s( x, у ) .
К ром е то г о , с гл аж и в аю щ и й сп лай н м ож н spaps, к о т р а я воз вращ ае т сп лай н в S- фо р м е п ер в ы х в о х нд ы х а р гм у е н т а з адю т и о с н хд ы едл я т о д п с и ут м о е октл н ен и е п о срт ен н о г >> load setl8.mat >> scspl = spaps(x, noisy, 0.05);
о с рт о и т ь с п ом щ ь ю н фу к ц и и : sp = spaps(x, у , t o i ) . Д в а е да н н ы е , а п а р м е т р t o i о п ре о сп лай н а о т и онсдх ы х ад н н ы х :zyxwvutsrq
л ав Г
18. абРо т а
со
в Spline ToolboxzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP 805
с плай нм и
» zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA scsp2 = spaps(x, noisy/ 0.01); >> hold on >> plot(x, noisy, 'ro') >> fnplt(scspl/ 'b+- ') >> fnplt(scsp2)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> l e g e n d ( ' д а н н ы е '
П р и в едн н а в ду
я п о с л е од в а е т л ь н о с т х с гл а ж и в а ю щ и
и ос н х д ы
х ад н н ы
1
, С п л а й н - г р у б е е
, ' с п л а й н - т о ч н е е '
)
ь к ом ан д п р и в о ди т к к о н с тр и у р о в а н и ю х сп лай н о в с раз н ы м и од п с уи т м ы м и о кт л о н е н и я м и о т х (р и с . 18.9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
О н ад ы — сй-напл бруег Н
е е
• - й н ас л п е н о ч т
0.5
с иР
. 18.9. Сюижавщл ги
я э то г
1.5
о т ин ыдо х с
ы пр и ризлнач ы х дна ы
е й на п л с
В Spline Toolbox и мсет ли ч н ы х п о р я дк о в , м и н и м и з и рюу щ и
т . е . п ри м ен яест фо р м е . Д л
1
я в з еш ен н ы о и с п о л ь з ес т у
я воз м ож н ост
ь п о с рт е н и х фн у к ц и о н а л
й м ео т
д н а и м ен ь ш и я н фу к ц и
2
е
3 zyxwvutsrqponmlkjihgfedc
2.5
х диым тс поу
х н о л ек и я т о
х
х я 5- фо р м
ы сп лай н о
в раз
:
х к в а д р то я spap2. П р
в в с та н д а р тн о и о б р ащ ен и
й и к не й
-
806
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
sp = spap2 (kn ots, к , х , у ) в есо в ы ие д н и ц е . Зесд ь k n o t s— м ас и в зу л о в к — п о р яод к сп лай н а . М ас и в у м ож е и л и м а рт и ч н ы е да н н ы е . Д л я куаз н и е у слд т з ап и сат ь и х в в е к от р w, дл и н адт ь в п оят м вохдн о м а р мг у е н ет : sp
К ^ Пр и м е ча н и Д ан ы к о ри д н е а т В оз м ож н о б р ащ ен и срт о и ст я бы т ь ц ел ы срт о е н и я н ы й сп лай н н еп р е ы в н ы
е м н о ж и е тл и , х , у — м ас и в т с о ед р ж а т ь я в есо в ы х м н о ж и ет л й а котрог о со в п аде = spap2 (kn ots,
пр инхлыакд
п о л а г ю ст
я рав н ы м х ад н н ы х , в ек от р н ы
ы и ос н х д ы
zyxwvuts
зачд
и
, е , о лти ч н ы х о т 1, т с дл и н о й х , и з а к , zyxwvutsrqponmlkjihgfedcbaZYXWV к , у , w) .zyxwvutsrqponmlkj с к ал яр н ы е
е ^Д
е в мисав
е у дл я н цкуфи , ун дреюся т
и spap2, ю вущтс еои
е юоярп втщ йес
я
.
о и з б еж ат ь с о ат в л е н и я п о с л е од в а е т л ь н о с т и зу л о в , п р и бегн у в к ю s = spap2(L, k, x, у ) . П р и э от м п о с л еод в аетл ь н о с т ь з уло в а в от м а ит ч е с к и с п ом щ ь ю н фу к ц и и aptkn t. П а р а м е т р L долж е н м и п о л ж и те л ь н ы м , о н о п р едля т к о л и ч е с вт о ч у а с кт о в лд я п о сп лай н а . Е сл и L > (len gth(х ) - к ) , т о н аохид ст я и н ет р п о л я ц и о н , и н а ч е — с гл аж и в аю щ и й . В лю б о м с чл у а е сп лай н и ме т к - 2 х п р о и з в о дн ы х .
П р и п о с рт о е н и и с гл а ж и в а ю щ е г о сп лай н а от ч к и раз ры в а о п р е д л я ю ст то м а ти ч е с к и . С п о м щ ь ю н фу к ц и и n ewkn t(s), дг е s — сртку м ац и е й о с к о н с рт и у р о в а н н о м сп лай н е , м о ж н о п о п ы ат ь с я ч л уш и т л о ж ен н у ю п о с л е до в а е т л ь н о с т ь зу ло в и п ер с то и т ь сп лай н , с н о в ш ис ь к фн у к ц и и spap2: si = spap2 (newknt ( s) , k, x, у) . П р и м ен ен и в о з м о ж н о с ет й и л ю с р т и р е с ут я юс л уе д щ и м и к о м а н да м и , в ы п о л н ен и р ы х п р и в о ди т к с п л а й н а м , п р есдатв лен н ы м н а р и с . 18.10.
я ав а с и н фо р ь п р ед а о б р а ти в е эит е кот
х -
>> load set l8.in at zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> s = spap2(3, 3, x, noisy); >> hold on >> plot(x, noisy, 'ro') >> fnplt(s, 'b+- ') >> si = spap2(newknt(s) , 3, x, noisy); » fnplt(si, '- ', 2) ; >> legend('иындохс
е дан ые'
, 'ныньлач
й ' нйалпс
, 'п' йын еортс
)
>> hold off
Бо л е е п о др о б н о о в о з м о ж н о с ят х н фу к ц и н о й с и ем т е MATLAB п о Toolbox (см gorical List: Construction of Splines).
. р а з д
и spap2 м о ж н о зу н ат ь в сп рав о ч .zyxwvutsrqponmlkjihgfedcbaZYXWVUTS Spline Toolbox: Functions - Cate-
л ав Г
18. абРо т а
с о
сплайнм и
в Spline Toolbox
807zyxwvutsrqpo
0.9 О 1
0.8 0.7
и с о х дн ы н ы ьл а ч
е дан ы й с пйал
е н (L=3)
11 е у ь ь : i p и у н н ы й (L- 3)
0.6
I \
05
I
0.4
X
0.3 0.2
\
0.1 f n.1
о i - 0.1tzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 1 ! 1.5 2 2.5 31zyxwvutsrqponmlkjihgfedcbaZY ) 0.5 1 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
Рис
. 18.10. П о срт ен и
нт И е р а т к и в но
е сп лай н и ег о к о р ек ц и
а с п о м щ ь
е пост ре ин
В Spline Toolbox в о з м о ж н Д л я э то г о и с п о л ь з ес ту П р и е г о з а п с ку е
ю н уф к ц и
е кывир о п о с рт о е н и
я п р и л о ж ен и
е кри вы е с гр афи ч еск и
и spap2
я
х х в и н ет р а к ит в н о м и н е тр ф й с о
м р еж и м е . м getcurve.
» getcurve о кт р ы в а е ст н а о ся п р и в о ди сы в аю с т
я окн о , в к о т р о м с п ом щ ь ю мы ш и р т е бс у я о мт е и т ь то ч к и х (р и с . 18.11). Щ ел ч о к мы ш ь ю в н е о се й о з н а ч е т з ав ер ш ен и е в од а и т к с о з да н и ю кри во й (р и с . 18.12). П р и эот м к о р ди н а т ы то ч е к з ап и я в с атн да р нт у ю п ер м н у ю ans и в ы в о ядст я в к о м а н дн о е о к н о :
- 0. 7903 - 0. 2193
- 0. 4032 0. 2076
- 0 .0115 - 0 .0029
0 .3848 0 .2076
0. 5922 0. 0088
аЧс т ь
808
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
зачд
zyxwvut
Use mouse clicks to pick points INSIDE me gridds" aies 0.8 0.8
. :
• • .
' . •
0.4 0.2
1
Q
*
•
>
- 0.2 - 0.4 - 0.6 - 0.8 i
«0Я .Q 6 >0,4 - 0.?
0
0.2
0 4
CJ8
0 8
|
zyxwvutsrqponmlkjihgfedc
4Vhr!n у л и are done, dick OUTSIDE the gnddad ^гл а
. 18.11. Р а б о т
Рис
а в о к н
е фн у кц и
и ge t c u r ve
О Б D4 1^.
0.2
_^i
/
0
-
\
^
/ 4(*
*С\ 2 - 0,4
. , ..
«0.6 - 0.8
Рис
i
1
- 0.8
- 0.6
. 18.12. Р ез льуат
1 - 0.4
- С. 2
т р а б о т
1
0 done
13,2
ы н фу к ц и
0.4
0.6
0.8
и ge t c u r ve
\
л ав Г
18. абРо т а
со
с плай нм и
809 zyxwvutsrqp
в Spline Toolbox
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG е splinetool
рП и л е о ж н и
т п р и л о ж ен и В с о ат в Spline Toolbox вохид п о л ь з о в а ет л я sp lin e t o o l, к о т р о е п о з в о л яе м ен т ы п о ап ро к си м ац и и сп лай н ам и . П о л ь з о в а те л и м е ю щ е го с я н абор а и л и з а д т ь с о б вт е н н ы е • сп ос б ап ро к си м ац и щ и е с п л а й н ы П раз ли ч н ы
ы гр а н и ч н ы
х с ул о в и й
к игомеузьлопс
Р а с м о рт и о б р ащ ен и
, а так ж
м и н ет р ф й с о и н а г л я нд ы ь м ож е е в ы б р а ть
м
е э к с п ер и ь да н н ы
т в з ят
е и з
:
и — и н етр п о л яц и о н н ы е сп лай н ы и л и с гл а ж и в а ю ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е ти п
ќ поряд
е с гр а фи ч е с к и т п р о в ес т
;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
о анй лпс
м работ
-
.
у с и н ет р п о л я ц и о н н ы м
и кб и у ч е с к и м
и сп лай н ам и
. П р
и
и
» splinetool о кт р ы в а е ст к н оп к ам
и дл
о п р и л о ж ен и а да н н ы х
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ Spline Tool, п р и в едн н о е н а р и с . 18.13, с .
ю кн оп к у Provide your own data or an m- flle that does, п ренд а е п ер в у ю лд я в о д а с о б вт ен ы х ад н н ы х и л и и м ен и М - фа й л а , в к о т р о м . О кт р о ест я окн о Please provide data, п о к а з а н н о е н а р и с . 18.14, м в е дн ы да н н ы е л д я д е м о н с тр а ц и о н н о г о п р и м ер а п р и б л и ж ен и я и co sx
Н аж м и т з н а ч ен н у о н и с о з ад ю с т я в котро н фу к ц и О з н а к о м ь ет с жми т
я окн я в ы б о р
ь сн ач л у О К
е кн оп к
а с п р е лд а г е м ы . О кт р о ест
я окн
м в а р и а н то м о Spline Tool (ри с
. Н и ч ег о н е и з м ен я . 18.15).
, н а -
В окн е Spline Tool, п о к а з а н н о м н а р и с . 18.15, дем о н срти ресту я п р и б л и ж ен и е н уф к ц и и cos л ; и н етр п о л яц и о н н ы м кбиу чески м сп лай н о м с услови ям и "отсу св т и я зу л а " . В п р а в о й ч аст и окн а в ы в о ид с т я гр а фи ч е с к а я и н фо р м а ц и я . Н а в не р х м гр а фи к е сп рав а сп лош н о й ли н и е й п о к аз а н к б иу ч е с к и й сп лай н , а к рж у а м и — и осндх ы е да н н ы е . Н а н и ж н е м (в с п о м гаетл ь н о м ) гр а фи к е п ри в е нд а ош и бка , в о з н и к а ю щ а я п р и з ам ен е и оснхд о й н фу к ц и и с п л а й н о м .
^ Г и рфа н же и и с м о ва иь с д т н ь о тс
П р и м е ча н и к о ш и кб е ап рокси м еору м иов с я а т м же ю д о п шреог н ост
е ^5 и м ж ое
т бы т
ь вы н е д й н у кф ц и х з н ча е и й в о ч тк а , т . е . п р и и н рептоли рван и и нле г о к р у и я
, л с е и инзтсве о на л и т ч с к е о . Елс и ж е фн цку и я табли чн а х р аз ы в о , т о и ош и бк и о н а ч с и п т у ло .
е в ы ра я и зс теа д а е д уб я н в о ей л у
я
т вы о , с точ
-
810
Ча с т ь
IV. И сопльзаиевн
Toolbox и ре шин
пхынрикла д
за ч д ЁШ е З [
I- J Spline Tool
zyx
| zyxwvutsrq
Choose some data to work on with the SPLINE TOOL: Provide your own data or an m- file that does The following data sets illustrate various aspects of spline fitting. Titanium heat ciata Noisy values of a smooth function The function sin(x) on [0 .. pi/2] Census data Richard T
Improve shape, of interpoiant by moving knotszyxwvutsrqponmlkjihgfedcbaZYXWVUT
Рис
. 18.13. О к н
о Spline Tool
• }. Please provide data Give a value or an expression for the data sites (or the name like titanium, whose output, [x,y], provides both data sites an p.which case you can ignorethe request for data values be ]linspace(0,2*pi,31) Gv ie* a correspond Give a value or an expression for the corresponding data va a function whose values at the data sites are to be used as Give a corresponding label for the y- axis (default is data vak
OK Рис
. 18.14. О к н
Cancel
о Please provide data
л ав Г
18. абРо т а
со
с плай нм и
в Spline Toolbox
811
Л zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Spline ToolzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA File Edit View Help - List of approximations New ReplicatezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
D elete
J shown in graph
Rename...
- г Approximatio n method I Cubic S pline I nterpolation
jy
End conditions: | not- a- knot J * j left end 1st deriv.
right end I
1st denv.
-г Data , breaks/ knots, weights....
sites and values 0.20944 —1 0.978148 0.418879 0.913545 0.628319 —*0.803017 0.837758 0.669131 1.0472 0.5 1.25664 0.309017 1.46608 0.104528 1.67552 i - 0.104528 3 4 linspace(0,2*pi,31)
Bottomline: splinei = csapi(x,y); % same as csape(x,y,'not- a- knot') or spline(x,y) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
с Ри
. 18.15. Онк
о Spline Tool,ю щи дур неомтс
Н а в с п о м о г а ет л ь н о м гр а фи к е п р о и з в о дн ы е сп лай н а . В ы б о р п р о и з в о ид с т я в м не ю View. П ош и бк и (п ну к т Show Error). Д л п р о и з в о дн о й е с лу д т в ы б р а ть и л и Show 2nd Derivative. В р ас п о л ж ен н ы
м о ж н о ст н ог
о сп лай н
х с л ев и дл я п р о в едн и а э т о э к с п ер и м ен т
е пниежлрб так ж е м о гу о т б р аж ем о о му о л ч а н и я о т б р аж ен и , с о вт ес н н о
а о т гр а фи к о я э к с п е р и м е н от в
т бы т
ь п о с рт о е н й и н фо р м а ц и ю о щс у е св т л я я гр а фи к о , п ну к т
в п о ля . Д л ы с и з м ен ен и е
х п р е дл а г ю с т я к б уи ч е с к о г м гр а н и ч н ы
е фнцкиу
и cos*
ы п ер в а я и в то р а я и н а э от м гр а фи к е я вы во д гр а фи к а в п ер в о й и л и в то р й ы Show 1st Derivative я раз ли ч н ы о и н ет р п о л я ц и о н х с ул о в и й
е воз
-
. В п о л
е
812
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvu
зачд
н оахядст я вд а сп и ск а : п ервы й п р е дл а г е т вы брат ь сп о Approximation methodzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
со б а п р о к с и м а ц и , а в то р о й — з а д т ь гр а н и ч н ы е усл о в и я . В п ер в о м сп и ск е к у а з ы в а ес т я ит п с п л а й н а , п о му о л ч ан и ю Cubic Spline Interpolation (И н етр п о л яц и я к б уи ч е с к и м сп лай н о м ) . В от р й сп и со к End conditions жслиу т лд я п о с ат н о в к и гр а н и ч н ы х с ул о в и й , п о ум о л ч ан и ю э т о усло в и я "оствуи я зу л а " (not- a- knot). Г р афи к л д я э от г о с ч л ау я ж у е в ы в едн . П о л е Data, breaks/ knots, weights соедр ж и т ад н н ы е и п а р м ерт ы п р и б ли ж ен и я , к о т р ы е м о гу т бы т ь и з м ен ен ы . В сам о й н и жн е й ч аст и окн а Spline Tool в срт о к е Bottomline п р и в едн а з ап и с ь н фу к ц и й Spline Toolbox, и с п о л ь з о в а ш и сх я лд я п о с рт о е н и я сп лай н а . М о ж н о в ы в ес т и о нд о в р е м н н о гр а фи к и сп лай н о в с раз ли ч н ы м и гр а н и ч н ы м и с ул о в и я м и . Д л я со з адн и я н овог о сп лай н а и в ы в о д а ег о гр а фи к а щ ел к н и т е п о к н о п к е New в п о л е List of approximations. З еат м в п ол е Approximation method в ы бери т е и з сп и ск а дргоу й в и д гр ан и ч н ы х сло у в и й End conditions, н а п р и м е р , second (т . е . услови я н а в то р ы е п р о и з в о дн ы е н а к о н ц а)х . В о б л а с ят х в о да , р а с п о л ж ен н ы х п о д сп и ск о м End conditions, з а д ю ст я з н ач ен и я в от р ы х п р о и з в о дн ы х н а к о н ц а х п р о м е ж кт у а . В да н н о м с чл у а е , п о с к о л ь к у н фу к ц и я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF cosx з а д н а ан ал и т ч ес к и , т о в ы ч и с лен и е в от р ы х п р о и з в о дн ы х е д бу т в ы п о л н ен о а в от м а ит ч е с к и .zyxwvutsrqponmlkjihgfedcbaZYXW ^ Дл жа у л с л Ес
Пр и м е ча ни я в ы бо р
а п к о р дя т кн оп ки , рсап олжне ы е н ап и сан и н а кн оп к 1st deriv. и в чювае от щ у п р о и з в он д й .
е а п р о и з в но д й
^ , з н чае и е н а д сю вущтс еои м о 2nd deriv., т о н ижат ю е й о б л ас т ь в од
е к о тр
й н и о д м ебх и м яо б л а с т е н а н е е и змне и а з на о с и т я з н ча е и
о з аь д т и в ао д т нп диа с е п в ор е
, . ь н а й
Н овы й гр а фи к ср аз у ж е в ы в о ид ст я н а э к р а н . Т екщу и й гр а фи к о б з н а ч е ст я и ит п а м и ж и рн о й ли н и ей . П о э к с п ер и м ен ит рйу т е с а м о с т яел ь н о с др г у и м гр а н и ч н ы х с ул о в и й , п ер ч и слен ы х в сп и ск е End conditions. Р ез луь ат ы ра бот ы м ож н о в ы в ес т и в о ед т л ь н о е гр а фи ч е с к о е окн о , в ы б р а в в м не ю File п ну к т Print to Figure. Д л я э к с п о р т а и о сн дх ы х ад н н ы х и р е з луь та а ап ро к си м ац и и в р а б о ч у ю с р де у се улд т в ы б р а т ь в мне ю File п ну к т ы Export Data и е п ер в о г о вари ан т а о кт р ы в а е ст я окн о Copy data to Export Spline. П р и в ы б о р workspace, а в то р о г о — Copy spline to workspace, в к о тр ы х п р ел д а г с т я в ес т и и м ен а лд я э к с п о р ит реум ы х ад н н ы х и л и со гласи ьт с я с н а з н а ч ем ы м и п о му о л ч а н и ю . П ну к т Save M- file м не ю File п р енд а з н а ч е н лд я г е н е р а ц и и М фа й л а с к о м а н да м и , к о т р ы е р еал и з юу т с о з ад н и е п р и с вт ю у щ и х в да н н ы й е гр а фи к о в , в к лю ч а я н фу к ц и и л д я п о с рт о е н и я с о в т се м о ен т н а э к ран вю у щ и х сп лай н о в . Оп и ш е в п р и л о ж ен и лд я в ы ч и слен и
м п р и б л и ж ен и
е сп лай н ам и sp iin e t o o i. П р е дв а р и те л ь н я и с е лм у д о й (ли ст н
и п рои з воль н о
й фн у к ц и о е с лу д г 18.2).
т с о з ад т
, н а п р и м е р ь фа й л - н фу к ц и
, XQ~ X , ю
л ав Г )
18. абРо т а . . . . . . . М . . . . .
с о
. . . . « >
. >
. » . .
«
сплайнм и . . «. . . •
в Spline Toolbox •
•
•
•
•
' •
. . . . . . . . •
. •
. . . •
•
. . . М . . . . М > < « М . « . > '. .> .
Wx ]» Т 0 уд б з н ач ен и й . Е сл и о п щ у ен н и я , т о п о ум о л ч ан и
т р а с ч и ат н ы о б а п а р м е тр ю расч е т п р о в ид с т
ы от ч к
и э ф е к ит в н о й гр а н и ц ы лд я э и т а и л и лд я н и х з а д н ы п сы т у е з н ач е я л д я е сд я т и р а в н о тс о я щ и х от ч е
х к
886
аЧс т ь
IV. Ис по льз вани е
Toolbox и р еш ени
пр инхлыакд
zyxwvu
зачд
и н ет р в а л а [)Vv, y m a x ] • П о с к о ль к у п ер в о н ач ль н о н е и з в е с нт о з н а ч ен и е j l o w , т о ег о м о ж н о р а с ч и та ь , о б р а ит в ш и с ь к н фу к ц и и с о з н а ч ен и е м н в п ри во п чи сл о = 2. Д р гуо й сп ос б п о ч л уе н и я j / l o w п р о де м о н с тр и р о в а ид м о м н иж е п р и м ер . П о с ленд и й п ар м ет р м н о ж в с е т_ о р г а н и ч н е и й лд я portopt п р есдатв л яе т м а рт и ч н у ю фо р м у до п о л н и ет л ь н ы х о гр а н и ч е н и й н а в ес о в ы е к о э ф и ц и ен т ы а к ит в о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE xt в п о р фтел . Д о л ев ы е о гр а н и ч е н и я н а со ас т в п о р ф т е л я в frontcon р а з б и т ы н а дв а в и а д : дв су то р н н и е н а к аж ы д й о а к ит в а в оедтль н о сит ) и н а с гр пу и р о в а н н ы е а к ит в ы п о ве с xt (ДЛ Я к а ж до г р аз н ы м п ри з н ак ам . П а р м е т р Г а к ти в о в о п р е дл я т с о ат в г р пу ы , а п ар м ет р г _ о г р а н и ч е н и я — з а д е т о гр а н и ч е н и я лд я грп у ы (з адн и е од п о л н и е тл ь н ы х о гр а н и ч е н и й р а с м о рт е н о ад л е в р.азд "Де ьын итле по - е г а и н чо р иня пир аизе анл йе пле тфро " эйто г)авы л . В ы о н хд ы п о р ф ет л • приск о кт л о н е н и
е п а р м е тр й н а э ф ек ит в н о — в е к то я до хнд о с т
• п до х дн о с т • п до ли п о р фт е л
ы у н фу к ц и й гр а н и ц е р ри ск о
и — в ек от — м ас и в .
ы и с о ед р ж а
в л д я к а ж од г и о т о ж и да ем о й ) р о ж и ад е м ы
, к аж д
й о ди н а к о в :
я с рт о к
о п о р ф те л ;
и
я (с р енд ек в ард ит ч ес к и
х од х н о с е т а котрог
т а х р к ет р и с ит к
й лд о п р е сд а т в л я е
е
я к а ж до г
о п о р фт е л я т до л
и а к ит в о
; в в
Е сл о ди н а к о в фе к ит в н о
и н е и с п о л ь з о в а т ь до п о л н и е т л ь н ы х о гр а н и ч е н и й , в ы з о в лю бо й н фу к ц и и , п о э т м у р а с м о рт и м н фу к ц и ю po rt o pt лд я н оахж едн и я от ч е к э ф й гр а н и ц ы л д я м о ед л ь н о й з адч и . В н аш е м с ч л уа е у т[п = 10.8% и Ута х = 19.1%. П о п ы атем с я р а с ч и ат ь ч еы т р е п о р ф те л я с до хдн о с ятм и о т 12% с ш аго м в 2%: » P_Ret = [0.12 0.14 0.16 0.18];zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO >> [P_Risk, P_Ret, P_Ass] = portopt(A_yld, A_cov, [ ], P_Ret) ??? Error using ==> portopt One or more requested returns are less than the return 0.131667 of the least risky portfolio П о лчу е н н о е с о б щ ен и е о б ош и бк е и н ф о р м и р е ут , ч т о э ф ек ит в н о г о п орт фе л я с до х дн о с ть ю , м ен ь ш е й о . 131667, н ет . Ук а з а н н о е з н ач ен и е ест ь y l o w в н аш и х о б з н ач ен и ях . Н а д о ли б о и з м ен и т ь в е к от р з адн н ы х од х н о с е т й п о р фт е л й , л и б о и сп о ль з о в ат ь р г ду ю фо р м у вы з ов а фн у к ц и . В о сп о ль з у ем с я дргиу м сп ос бо м р а с ч е т а ч ые т р е х п о р ф те л й н а э ф ек ит в н о й гр а н и ц е : >> [P_Risk, P_Ret, P_Ass] = portopt(A _yld, A _cov, 4) P_Risk = 0.0805
л ав Г
20. Реш ени
эокн м и чес икх
зачд
887zyxwvutsrq
0.0884 0.1126 0.2050 P_Ret = 0.1317 0.1514 0.1712 0.1910 P_Ass = 0.57 47
- 0.0000
0.0487
0.2592
- 0.0000
0.3822
0.0000
- 0.0000
0.4088
- 0.0000
0
0
0
0
О б р а ти в о ид н аи бо ль ш е
е в н и м ан и е н п о р фт е л ь й до х дн о с ть ю
т п О им ы а н л ь П о с тр о е н и п о р фт е л й н о ш ен и М о де л и р о в а н и л ясе т
, ч т о дл . П о сленд и
я н аш ег й п о р фте л , ч т о в п о л н
й воб ы е э ф ек ит в н о . И н в ес от ю к ри ск у я с п о м щ ь
р пе орлт ф
0.2336
0.0000
0 .1430
0.0020
0
0 .3566
- 0.0000
0.1411
0 .4501
о п р и м ер
а в то р
ь со ти е п р е с д к а з е му о
1 .0000zyxwvutsrqponmlkjihgfed
й а к ит т то л ь к
в (Е 1 ) н е в о ш е л н и о и з о дн о г о а к ит в а с .zyxwvutsrqponmlkjihgfedcbaZYXWV
я
й гр а н и ц р в ы би рае : п о рфтел е о нт о ш е н и ю н фу к ц и
ы дае т и н в есотр у м н о ж е св т о э ф е к ит в н ы х т то т и з н и х , к о т р ы й с о вт ес у т ег о о т ь с бо ль ш е й од х н о с ь т ю и ме т боль ш и й ри ск . я и н в есот р а к ри ск у в п ак ет е MATLAB ощсу есвт и п о лез н о ст и Н е й м а н а —М о н г е р ш те р н а :zyxwvutsrqponmlkjihgfe (20.14)
П о с т ян н а о п и сы в ае в с е х то ч к а се я сем й свто од х н о с т гр а фи к е м н о ж е св т я в л се т в котро о б з н ач ен н аль н ой в еу л и ч е н и
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA а н а з ы в а ест я м к е о с и дн нтия пер ркиса. рУа в н е н и е U = const т л и н и ю б ез р а з л и ч и я , т . е . п о лез н о ст ь л д я и н в е с от р а о ди н а к о в а н а х э от й к р и в о й . М н о ж есвт о иэ т х л и н и й о б р а з юу т н еп р ес к а ю щ е , п р и э то м , че м б о л ь ш е п о л е з н о с ьт , те м в ы ш е (п о о нт о ш ен и ю к и у р ) и лев е (п о о нт о ш ен и ю к ри ск у а р ) к р и в а я р а с п о л ж е н а н а . И н в е с то р сртем и ст я м ак си м и з и ро в ат ь з н ач ен и е о д п с иу т м ы х п о р фт е л й . П о э т м у о п ит м а л ь н ы я п о р тфе л ь , о вт еч а ю щ и й еи д н с в т е н о й то ч к й о н а к а с ет я о нд о й и з ли н и й б ез р аз л и ч и а Т ). Э т а ли н и я б ез р аз ли ч и я , к о т р у ю , овтеч а т н аи бо ль ш е й од с и т ж и м о й п о л е з н о с ит е п р и в ед т к о с вт у и ю общ и х от ч е к н
е фн у кц и
и (20.14) н я и н в е с от р е э ф ек ит в н о й г р а н и ц ы я (н а р и с . 20.1 э т а то ч к е д бу м н аз ы в ат ь рац и о , и б о м алей ш е е е а од п с уи т м о м м н о ж е св т м лд
а а , а е
е
zyxwvuts
IV. Ис по льз вани е Toolbox и р еш ени пр инхлыакд зачд аЧс т ь 888zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
п о р фетл яв л с ет гл о у гр а н и ц е
й и в ы б р а н н о я гул о в й , п о э тм в н ак лон а к а с ет л ь н ы ) м о ж е т н е в ы п о л н яьт с я
м р уо в н
е п о л е з н о с ит
. Т о ч к а 3 э ф ек ит в н о й гр а н и ц ы е к ас н и я ли н и й (со в п аедн и е ат н г е н с о в х к кри во й б ез р аз л и ч и я и э ф ек ит в н о й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
у с лу о в и х п р ям ы
бо ы В
р иорсевнт
м пл е ф тро
я дл
я м леод
и Мовицрка
а
0.4
0.35 & 3
0.3
" Угла
х
0.25 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA и^- Т оп т (Шын ь л а ь ро с те в н и а и л е ф т ро п k •
I 0.2
•
•
• ""
т
"у^ / zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
0.15
i"V i
0.1
0.0Е
).О 5
0.1
с Ри
О дн а к о в п ак ет к о гд а и н в е с от и в б ез р и с к о в ы срок а (го р и з о н та Г у . Д о п о л н и те л ь н
. 20.2, с п л о ш н а
я ж и р н а
к п р ям о
й 1- 2, н а ч и н а ю щ и й с
то ч к 2. уЛ н иц 3. Ча с т
е 2 гр а н и ц
я л и н и я)
ы М аркови ц
я 0.35
о пл е ф тро
0.4 zyxwvutsrqponmlkjihg
я
е Мивокрца
а
а н е то л ь к я еи д н с в т е н ы
я гр а н и ц
я м о е дл ь и н в е с ит р о в а н и я о в р и с к о в ы е а к ти в ы м лд я в ы б р а н н о г м п р о ц е н нт о й с ат в к о ь з аем н ы е с р е дв т а п о с ат в к
а м ож е
т со тя
ь и з рт е
, , н о о й е
х ч а се т
й
: я в от ч к
ы М арк ови ц а
ч 3 - 4 (4 — н е к о н еч н а е М а р к о в и ц а , и осядщх е ь гр а н и ц
р оиьпнлматго й гнар и ц
а
0.3
0.25 к (а )
е и с п о л ь з ес т у я м о ди ф и ц и р о в а н н а р м ож е т в к л а ды в а т ь с р е дв т й а к ти в , к о т р ы й я в л се т ) и н в ес ит р о в а н и я , ахр к етр и з еум ы о и н в е с от р м ож е т п р и в л ек ат
(см
1. О рт ез о
0.2 и Рс
. 20.1. Выоб н а ин эв отк е ф
у э ф е к ит в н а
" Мовирцка я бичлзреа
р и ва к
.0.15
т ь (г ь >Г/ . • ), п о э тм . р и с
"пялу
i
е (о , ту ) и к а с ю щ и й с
я в
. я то ч к а ) ест ь ч аст ь к а с ет л ь н о й и з то ч к и (0, г ь ) . а м ж де
у то ч к а м
и 2 и 3.
й п р ям о
й к гр а
-
л ав Г
20. Реш ени
эокн м и чес икх
889 zyxwvutsrqpon
зачд й а ч су л
бщ О и П А
й р н ви т к эфе ф
й ци н а р г ы
1
у 4 *:.• '
0.35
/
ах _
0.3
й л е ф тро п
ы н ь л е т са к
S
ь -2
л 0.25 о о
X
г
1
°-
2 - ын кь ле тса
й л е пф т р о
ь - 1 -
2
0.15
-
Ч V
W -
0.1
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 0.25 0.35zyxwvutsrqponmlkjihgfedc 0.15 0.2 03 0.1
Г ) П ^
0.05
0
ис Р
. 20.2. Э фекит вн а
Рис б ез р и с к о в ы
х в л о ж ен и
В з ав и си м о ст и о т то г , к а к о г кри ва я б ез р аз ли ч и я , и н в есот Точк а к ас н и я е д бу т е ид н с в т е н н о й в ы п к ул о й нфу к ц и е й . Е сл и н в е со т р с о вт ес ю у щ и
и рац и он аль н а
Е сл од п с у и т м о ц и ен к ас н и
и рац и он аль н а
я гр а н и ц а пр й и з а и м с вт о а н и
а э фекит в н о т св о , п о ск о ль к
я кри ва я б ез р аз л и ч и т влож и т ь в с е с о б вт е н н ы й от ч к е с о п р и к о с н о в ен и я
у е су л д
й п р ям о т Ј в ло ж ен и я п р ям о
о учаскт р с ф о р м и ре у
к (а )
я кри ва й (о рт ез к о я с р е тд й с гр а н и ц е
и н али ч и
й гр а н и ц й п о р фт е л у ли н и я б ез р аз л и ч и
я с о п р и к ас ет е с р е вд т , к а к в м оелд
я б ез р аз л и ч и
я с о п р и к ас ет м 1 - 2 и л и лчуо в в к ас етл ь н ы й п о р фт е л ь й М арк ови ц а :
и й
ы бед у ь ц ен ы
т к а с ьт с х бм у а г я я в л се т
я с гр а н и ц е а в ри ск овы и М арк ови ц а
я с к ак о й - л и б м 3 - 4), т о п о лчуаест , со втесюу щ и
о ч а с ьт я к о э фи й от ч к
о п о р фт е л
я ли б
ю е
(20- 15)
гд е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA at — р и с к , овтеч аю щ и й н а й ед н н о й то ч к е н а э ф е к ит в н о к к а с те л ь н о г
. я
й 2 - 3 , т о й п о р фт е л ь , .
Ј = 4 т ,
. Т ек с т фа й л - н фу к ц и и mypiotprog со едр ж и ст я в ли сит н г е 22.1. И м ен а о б ъ ек от в окн а п р и л о ж ен и я и вы з ов ы mypiotprog п р и в о з н и к н о в ен и и с о б ы ит й callback да н н ы х о б ъ е к от в п р и в е нд ы в та б л . 22.1.
IzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA fMniyplot
0.8
1
1
1
1
1
1
1
0.6 0.4 0.2
:
0 \
/
\
- 0,2 - 0.4 -
i i 0.1 0.2
0
1
1
1
1
1
1
0 . 3
0 . 4
0 . 5
0 . 6
0 . 7
0 . 8
л
$!п(10*х. П о с тр о и т
ь г ри а ф
к
Оч и с и т
ь о с
т
22.1. анеzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP Им кевтоъ б инея пж о илр myplot Им
а в од
К н оп к
а П отиср
ь и гфа р
К н оп к
а т ис О ч
ь ос и
)
и
а ц и а лб Т
С р то к
1
.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE 22.1. О к н о п ри лож ен и я m yp l o t zyxwvutsrqponmlkjihgfedcbaZ
Рис
О б ъ ек
х
2). рех(- х
1 0 . 9
а к
я
С о б ыт и
е C a l l ba c k
FunEdt
m yp io t p r o g( ' S e t F u n ' )
P lotBtn
m yp io t p r o g( ' P r e ssP lo t ' )
C learBtn
m yp io t p r o g( ' P r e ssC le a r ' )
л ав Г
22. М еорд ни зац и я
преин лойж
с GUI вер с и
5.3
931 zyxwvutsrq
function myplotprog(event) global FunStr switch event case 'SetFun' % Пс и о
к ул е т а з к
я н а ск о р т
у вд о в
а и зи н е с н а
е ег
о в HFunEdt
HFunEdt = findobj('Tag', 'FunEdt'); % зи н е с н а
е в гу н ь л а б о л
ю пу н е м р е
ю FunStr сг о м и ж р е д о
о ск о р т
и вд о в
а
FunStr = get(HFunEdt, 'String'); case 'PressPlot' % Зи н а д
е вр о т к е
а ао т н е м у г р
в дл
я пи н е о р т с о
я гк и ф а р
а
х = 0:0.01:1; % К инавориуртсно
е и ви н е л о п ы
% ат н е м у г р
е ск о р т
и дл
я ви н е л с и ч ы
я вр о т к е
а зи н е ч а н
й
а
eval(['у =' FunStr ';']) plot(x, у , 'LineWidth', 3, 'Color1, 'k') % Пи н е о р т с о
е гк и ф а р
а
case 'PressClear' cla % ок т с и ч
а ое с
й
endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
С в едн и я п ри н ц и п о п о л ь з о в а те л ид м о с т гр а фи к н о й гр а фи к п р и л о ж ен и
М ое д р н и з а ц П р и л о ж ен и ви ло ж ен и осн овн ы в ен н ы н ие в и уд бо ле
е в ю с у л ед щ е м р а з ед л , п р едп о л а г ю т п он и м ан и е , и з ло ж ен н ы в к о н с рт и у р о в а н и я п р и л о ж ен и й с гр а фи ч е с к и м и н етр ф й с о м я к а к в в ер с и и 5.3, ат к и в сюлуед щ и х . О б р аит ес ь п р и н ео б х и к со втесюу щ и м р а з де л а м к н и ги , п о св ящ ен н ы м де с к р и п то р н о й е и с о з ад н и ю п р и л о ж ен и й в MATLAB (и с п о л ь з о в а н и е д е с к р и п то р и о п и с а н о в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гаве л 9, чтась III к н и г и о св ещ ает воп рос ы н а п и с а н и я й с G U I ).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
я приле ожн я
е в ерси и 5.3 с гр афи ч еск и м и н е тр ф й с о м п о л ь з о в а те л я , к а к п р а , соедрж и ст я в фа й л а х с р ас ш и р ен и е м mat и т . П р и м е р та к о г о п ри ло я mypiot п ри вед н в п р ые д щ у е м р а з ед л . Д а н н ы й р а з де л о п и сы в ае т е э ат п ы п ер в о д а фа й л о в п р и л о ж ен и я в фо р м а т ы F I G и М , свой ст е бо ле е н овы м в ер с и я м M ATLAB, и и з м ен ен и я с в яз ан н о й с п р и ло ж е м фа й л - н фу к ц и и о б р а б о тк и с о б ы ти й . П р и л о ж ен и е п р и в о ди ст я к ат к о м у , к о т р ы й о б ес п еч и в а е т ад л ь н е й ш у ю работ у н а д н и м в с р ед е G U ID E е н овы х в ер с и й M ATLAB бе з к а и -х ли б о о с б е н н о с ет й . П р о ц ес с мо -
932
аЧс т ь
V. о п Длни т ельны
MATLABzyxwvuts
во зм но с тж и
ед р н и з а ц и и н е треб у т с ау т н о в л е н н о й в ер с и и 5.3, н ео б хид м о и м ет ь то л ь к о фа й л ы п р и ло ж ен и я . В сю д у ад л ь ш е п о д MATLAB м ы ед бу м п о н и м ат ь в ер си ю сатрш е 5.3.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Со рх а не и
е приел ожн
я в форм а т
е FIG
С орха н и т е фа й л ы myplot.m, myplot.mat и myplotprog.m в екщту е м к атло г е MATLAB и з а п суит е п р и л о ж ен и е , н а б р а в myplot в к о м а н дн о й с рт о к е MATLAB. П о яв л яест я окн о п р и л о ж ен и я , п ри ч е м о н о нф у к ц и о н и р е у т ат к ж е , ка к и в в ер си и 5.3. П о л ь з о в а те л ь м ож е т з адв ат ь фо р м л у ы в с рт о к е в в о д а и о то б р а ж а т ь гр а фи к и фну к ц и й .
С ю л уе д щ и й э ат п с о т и т в п о ч л уе н и и к у а з етл я н а окн о п р и л о ж ен и я myplot. бУеид тс ь , ч т о к р о м е окн а п р и л о ж ен и я боль ш е н е т о кт р ы ыт х гр а фи ч е с к и х окон . С в о й с вт о H a n d ie visibiiit y о к н а myplot м о ж е т бы т ь а ст у н о в л ен о в off, ч т о в о сп р еп яствеу т н о а хж е д н и ю рт е б у м о г о к у а з а ет л я . П о т ку а з т ь MATLAB, ч т о вс е куаз етл и н а о б ъ ек т ы э отм у сн ач л а е с ул д до л ж н ы бы т ь до с п ут н ы . Д а н н а я усатн о в к а п р о и з в о ди с т я в ы б о р о м з н ач ен и я on с в о й свт а showHiddenHandies о б ъ ек т а Root. Ука з аетл ь н а о б ъ ек т Root р а ве н н люу . И с п о л ь з йу т е фн у к ц и ю set лд я треб ум о г о и з м ен ен и я з н а ч ен и я :zyxwvutsrq >> set(0, 'ShowHiddenHandies', 'on') Т еп р гр а фи ч е с к о о б ъ е к от С в о й с вт ск и е к ат
ь в с е к у а з а ет л и од с п у т н ы е окн о п р и л о ж ен и я в и и х с в о й свт а о п и сан
. В адн н ы й м о ен т о тк р ы т о то л ь к о о нд о , к о т р о е яв л с ет я п отм ко м Root (и ераи х я гаве л 9). ы в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
о c h ild r en о б ъ ек т . П р и м е н и т е фн у к ц и
е о к н а :
а Root соедр ж и ю get, в о з в р а щ а ю щ у
т к у а з ет л
и н а о тк р ы ты ю з н ач ен и
е гр а фи ч е е с в о й свт
а объ
-
» h = get(0, 'C hildren ') П ер м ен н а в о в о хн д о К ом ан д
я h с о едр ж и м а р мг у е н т
т з н ач ен и е указ етл е guide лд я п ерохд
я н а о к н о п р и л о ж ен и я а к в и з аул ь н о
й с р ед
. Ука ж и т е h е G U I D E.
а
» guide(h) п р и в о ди ит о тк р ы т работ В ы б ер и т окн с орха н и т с е тд
т к п о яв л ен и е вн и м ан и е
ю сред , ч т о п р и л о ж ен и
о ег о г р а ф и ч е с к о у в сред е G U ID E.
ы G U I D E, в к о т р о й ж у е о тк р ы т е myplot о сатло с ь з а п щу е н н ы м . Д а н н о е о к н о се улд т з а к р ы т е окн о
о myplot. О б р а , п о ск о ль к ь и п род лж и т
у ь
е в м не ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC File сред ы G U I D E п ну к т Save as, п о яв л ест я ди а л о г в о е о Save Figure As, в к о т р о м е су л д т указ т ь и м я фа й л а myplot.fig. М о ж н о ь п р и л о ж ен и е и п о д ргдиу м и м ен ем , н о то гд а лд я ег о з а п с у к а п ри я н аби рат ь в к о м а н дн о й с рт о к е ж у е н е myplot, а н о в е и мя . П р еж н и е
л ав Г
22. М еорд ни зац и я
преин лойж
и м ен а п р и л о ж ен и ж и т н ес к о л ь к G U I D E и п ер й ид т
с GUI вер с и
й о б л е гч а о ч аст
т р а б о ту
о и с п о л ь з ему ы е к и зч уен и
933 zyxwvutsrqpo
5.3
, о с б ен н о х ран е
, сел е п р и ло ж ен и й о е тк щ у е г
ю с о ед р ж и м о г
и м о де р н и з а ц и
и п о лде е с р ед
. З а к р о й т о к а т л о га
у
.
е в ко В щек ту е м к атлог е MATLAB п о яв и лс я фа й л myplot.fig. Н а б е р и т м а н нд о й с рт о к е mypiot и убеид тсь , ч т о п р и ло ж ен и е р а б о та е т ат к ж е , к а к и в с ат р о й в ер с и . З апс у к п р и л о ж ен и я о б е с п е ч и в а ес т я н али ч и е м фа й л а mypiot.m, в к о т р о м з ап и сан а фа й л - н фу к ц и я mypiot, о б ес п еч и в аю щ а я ин и ц и али з ац и ю п р и л о ж ен и я п р и з а п с ук е . Час т ь ет к с а фа й л - н фу к ц и и mypiot п р и в едн а в л и с ит н г е 22.2. О б р а ти е в н и м ан и е , ч т о п ерв ы м о п е р а то р о м яв л я ест я з а гр зу к а фа й л а myplot.mat п р и п о м щ и load. Освтуи е р ас ш и р ен и я фа й л а в load п р и в о ди т к з а г р зу к е и м ен н о дв о и ч н о г о mat- ф а й л а . П о с л е т вы з ов ы нф у к ц и й , со з адю щ и х о б ъ ек т ы с з адн н ы м и к ом ан д ы load юслуед с в о й с вт а м и : гр а фи ч ес к о е окн о (фн у кц и я figure), ос и (фну к ц и я axes) и т . д .zyxwvutsrqpon г 22.2. Соед ирмж о
е фа йл
я zyxwvutsrqponmlkjihgfedcbaZYXW m yp i o t ) Izyxwvutsr
а myplotm (фа йл - иц кн фу
function fig = mypiot() load mypiot % зк з у р г а % Си н а д з о
е оо т к е ъ б
а фл й а
а myplot.mat
в
hO = figure('Color', [0.8 0.8 0.8], ... 'Colormap', matO, ... 'FileName', 'C:\MATLABRll\work\GUI53to60\myplot.m1, ... 1
MenuBar', 'none', ...
'Name', 'mypiot', ... 'NumberTitle' , 'off, ... 'PaperPosition', [18 180 576 432], ... 1
PaperUnits', 'points' , ...
ќPosition', [446 284 560 420], ... 'Tag', 'Figl'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA , ... 'ToolBar', 'none');
В аж н о п о н и м а ть , ч т о з ап су к п р и л о ж ен и я к о м а н до й mypiot н е треб у ч и я фа й л а myplot.fig. Н а сам о м е лд е р а б о т а е т с ат р я к о м би н ац и р ас ш и р ен и ям и mat и т . З ап суит ь фа й л myplot.fig м о ж н о с и сп о ль з о в ан и е open: »
т н ал и я фа й л о
в с м
open ('m ypiot.fig')
О б р а б о тк а с о б ы ит й п р о и с о х ди myplotprog.m, т . к . myplot.fig со едр ж и н фу к ц и и mypiotprog. Т а к о й сп ос
т б работ
в т с о вт е с ю у щ и
ф а й л - нф у к ц и ы с п р и л о ж ен и ям
, рхан ящ ей с я е о б р ащ ен и я к фай л и н е о ч ен ь од у
в -
934
б ен . С юлуед щ и ис и 5.3, к о т р а р ое х д к фо р м а т
е П р ох
аЧс т ь
V. Доплни т ельны
M ATLABzyxwvuts
во зм но с тж и
й р а з де л о п и сы в ае т м о ед р н и з а ц и ю п р и ло ж ен и я лд я в ер я н ап р ав лен а н а п о лн ы й о кт а з о т фа й л о в с та р о й в ер с и и и п е м F I G и М .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
д к форм а т а
П р и л о ж ен и е с гр а фи ч е с к и MATLAB л и б о к о м би н ац и е fig. М - афй л с о ед р ж и п о н фду к ц и и о б р а б о тк с о б ы ит й од бун е е п р о и з в о д и ть
м FIG и М м и н е рт ф й с о й фа й л о т фа й л - нфу к ц и ю и с о б ы ит
м п о л ь з о в а ет л в с р а с ш и р ен и ям , и н и ц и ал и з и рюу щ у й э л е м н от в и н е тр ф й с а , лсе и с п р и ло ж ен и е
я п р е сд а т в л я ес т и fig и ш , л и б ю п р и ло ж ен и . П р о г р а м и р о в а н и м ас оц и рова
я в о то л ь к
о е и е
н М - фа й л
.
С ед л а й т е од с п у т н ы м и к у а з ет л и н а о б ъ ек т ы та к , ка к о п и с а н о в п реыд щу е м р а з де л , а В О З ЛЬ О П СИ в se t ( 0, 'ShowH iddenH andles' , ' o n ' ) . З ап суит е п ри л о ж ен и е mypiot и з к о м а н дн о й с рт о к и (з ап скуает я фа й л myplot.m) и п олу ч и т е к у а з ет л ь н а гр а фи ч ес к о е ОКН О П ри лож ен и я h = get ( 0, ' C h ild r e n ' ) , е окн а . О тк р о й т е в с р ед е G U ID E п р е дв а р и е т л ь н о з ак ры в вс е л и ш н и MATLAB П ри лож ен и е П р и ПОМОЩ И guide (h) .
В ы б ер и т е в м не ю zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB Tools сред ы G U I D E п ну к т GUI Options, п о яв л ест я ди а л о е н а с рт о и т ь п р и ло ж ен и е . П о с та в ь т е го в е окн о GUI Options, п о з в о ляю щ е п е р к л ю ч а е тл ь в п о л ж ен и е Generate .fig and .m file, сатн о в яст я о д сп у т н ы м и фл а г и в н и ж н е й ч аст и окн а . Ф л а г Generate callback function prototypes одлж е н бы т ь в к лю ч е н дл я а в от м аит ч ес к о й ге н е р а ц и и п о н фду к ц и й о б р а б о тк и со бы ти й . В р а с к р ы в а ю щ ем с я сп и ск е Command- line accessibility се луд т с у ат н о в и т ь Callback (GUI becomes Current Figure within Callbacks). С о рха н и т е п р и л о ж ен и е с и м ен м mypiot.fig в сред е G U I D E , в ы б р а в в м не ю File пн у к т Save as. Е сл и в ы р а н е е о щ с у е св т и л и ед й с в т и я , о п и с а н н ы е в п ре ыдщ у е м р а з де л , т о п о яв и ст я окн о с п р еу д ж е дн и е м о то м , ч т о фай л mypiot.fig ж у е с ущ е с тв уе т — п ер п и ш и т е е го , н аж в Yes. Д а л е е сн ов а п оя в и ст я окн о с с о б щ ен и е м о сщ у е с в т о а н и и фа й л а myplot.m. П р едл а г ест я й (к н о п к а Replace), л и б о до б а в и т ь к не ли б о з ам ен и т ь с ат р ы й фа й л н а н о в ы м у н овы й фа й л myplot.m (к н о п к а Append). П р еж н и й фа й л с о ед р ж и т фа й л г 22.2), и н и ц и али з и рюу щ у ю п р и л о ж ен и е в сит л е н фу к ц и ю mypiot (см . лисит н в ер с и и 5.3. П о с к о л ь к у р т е бс у я п о л н о с ьт ю о кт а з а ьт с я о т фо р м а т а в ер си и 5.3, т о селуд т в ы б р а т ь Replace. Н а ж а ти е н а Replace п р и в о ди т к з апску у р е д а к то р а М - фа й л о в , в к о т р о м от кры т н овы й фа й л myplot.m, соедр ж ащ и й а в от м а ит ч е с к и с ге н е р и р о в а н н у ю фа й л - н фу к ц и ю mypiot. В сред е G U I D E в ы едли т е щ ел ч к о м мы ш и срт о к у м м ен ю , ак ит в и з и реум о м п рав о й кн оп ко й мы ш и , в в од а и в к о н ет к с н о п ну к т е View Callbacks в ы б ер и т е п о пд н у к т Callback. О б р а ти т е вн и м ан и е , ч т о в фа й л е myplot.m п о яв и л а с ь п о н ф ду к ц и я F un E dtC aiiback о б р а б о тк и со бы ит я callback с рт о к и в о да . нА а л о ги ч н ы м образ о м п о с л е д о в а ет л ь н о с о з ад й -
л ав Г
22. М еорд ни зац и я
т е п о д ф ун к ц и
преин лойж
с GUI вер с и
5.3
и P lo t Bt n _ C a llb a c k И C le a r Bt n _ C a llba c k, с о т в е т с т в у ю щ и
935zyxwvutsrqpon
е
кн оп ка м zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA т и о П р ст о ь и ф гра к и т и с и Оч ь ис о . Р а з м е с и т е в елт е к а ж од й и з э и т х п о н фду к ц и й о б р ащ ен и е к myplotprog с со втесюу щ и м вохнд ы м а р мг у е н о т м . В р ез луь ат е фа й л myplot.m долж е н и м ет ь сркту , п р и в едн н у ю в л и сит н г е 22.3 (ав от м аит ч ес к и созадн н ы е к о м ен та р и и н е п р и в о яд с т я лд я э к о н о м и и м е с а т) . З ап сиут е и з сред ы G U ID E п р и ло ж ен и е и убеид тсь , ч т о о н о р а б о та е т п р а в и л ь н о .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
function varargout = myplot(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 1 gui_OpeningFcn', @myplot_OpeningFcn/ ... 1 gui_OutputFcn', @myplot_OutputFcn, ... 1 gui_LayoutFcn', [ ] , ... ќgui.Callback1 , [ ]); if nargin && ischar(varargin(l)) gui_State.gui_Callback = str2func(varargin{l}); end if nargout [varargout{1:nargout}] = gui_mainfen(gui_State, varargin{:}); else gui_mainf en (gui_State, varargin{ :}) ; end function myplot_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObj ect; guidata(hObj ect, handles); , function varargout = myplot_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function FunEdt_Callback(hObject, eventdata, handles) myplotprog('SetFun')
936
аЧс т ь
V. о п Длни т ельны
возмно с тж и
MATLAB zyxwvu
function PlotBtn_Callback(hObject, eventdata, handles) myplotprog(ќPressPlotќ)
function ClearBtn_Callback(hObject, eventdata, handles)
myplotprog('PressClear')zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
И з ч уи т е тр и п о л ч у е н н ы е п о н фду к ц и и о б р а б о тк и с о б ы ти й . К аж д я п од н фу к ц и я с о ед р ж и т еи д н с в т е н ы й о п е р а то р вы з ов а фа й л - н фу к ц и myplotprog с со втес юу щ и м во нхд ы м а р гм у е н о т м . П р и в о з н и к н о в ен и с о б ы ит я C allback о т л ю б о г о и з э лем н от в пу р ав л ен и я п р о и с о х ди т о бращ е н и е к п о нфд у к ц и и myplotprog, в к о т р о й в ы п о л н я ю ст я к ом ан д ы о дн о г о и блок в case о п е р а то р а switch., П о сленд и й э а т п м о ед р н и з а ц и и п р и л о ж ен и з а к л ю ч а е ст я в п р о гр а м и р о в а н и и п онфду к ц и й о б р а б о тк и с о б ы ти й . Д а н н ы п о н ф ду к ц и и до л ж н ы в ы п о л н ят ь т е ж е ед й с в т и я , ч т о и б л о к и case myplotprog, р а з му е стя , с учоет м п ри н ц и п о в н ап и с ан и я п р и л о ж ен и й в сред G U I D E M ATLAB.
и и з я е в е
к У а з а ет л и н а гр а фи ч ес к и е о б ъ ек т ы с о едр ж ас т я в п о ля х с р тк у ы h an dles, и м ен а котры х со в п адю т с о з н а ч ен и ям и с в о й с вт а Tag да н н ы х о б ъ е к то в . у п о н ф ду к ц и я м и п р о и з в о ди с т я п р и п ом ощ и с о з ад н и я О бм е н да н н ы м и м ж де д о п о л н и ет л ь н ы х п о ле й в сркту е h an dles. П о сл е з ан ес н и я в п о л е han dles т с ор ха н и т ь срк т у , и сп о ль з у я н фу к ц и ю н ж ун о г о з н ач ен и я е с ул д guidata (п р и м е р и сп о ль з о в ан и я с ркт у ы han dles п ри в ед н в zyxwvutsrqponmlkjihg .аздр "П-е и а т л ею ч к л р " гавы л 11). П о нфд у к ц и л о ж ен и
и о б р а б о тк я mypiot п ри в едн
и с о б ы ит ы в ли сит н г
Л ист ин г 22.4. Пицнук офд m yp i o t
и обра от к
й э л е м н от
в и н е тр ф й с а о б н о в лен н о г о п ри е 22.4.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
и с отбы и
й обновл е ног
о п р и л е о ж ни
я
function FunEdt_Callback(hObject, eventdata, handles) % Ои н а в о з а р б
е нг о в
о пл о
% сг о м и ж р е д о
о ск о р т
и вд о в
я FunStr ср у т к у р т
ы handles и зи н е с н а
а
handles.FunStr = get(hObject, 'String'); % Си н е а р х о
е оо н е л в о н б
й ср у т к у р т
ы handles
guidata(gcbo, handles) function PlotBtn_Callback(hObject, eventdata, handles) % Зи н а д
е вр о т к е
х = 0:0.01:1;
а ао т н е м у г р
в дл
я пи н е о р т с о
я гк и ф а р
а
е в нг е
о
л ав Г
22. М еорд ни зац и я
преин лойж
% К инавориуртсно % ат н е м у г р
е и ви н е л о п ы
с GUI вер с и
е ск о р т
и дл
5.3
я ви н е л с и ч ы
937zyxwvutsr
я вр о т к е
а зи н е ч а н
й
а
eval(['у =' handles.FunStr ';']) % Пи н е о р т с о
е гк и ф а р
а
plot(x, у , 'LineWidth1, 3, 'Color1, 'k')
function ClearBtn_Callback(hObject, eventdata, handles) % ок т с и ч
а ое с
й
clazyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
З а п с и ут е п р и л о ж ен и myplotprog.m, а с о ц и р о в а н н ы н ж ун ы , и х м о ж н о а д лу и ь т и н е тр ф й с о м п о л ь з о в а етл
е mypiot и п р о в ер ь т е с о с ат р о . М о де р н и з и р о в а н н о я с о едр ж и с т я
е е г о р а б о ту . Ф а й л ы myplot.mat и й в ер с и е й п р и л о ж ен и я , б о л ь ш е н е е п р и л о ж ен и е с гр а фи ч ес к и м в дву х фай л а х myplot.fig и myplot.m.
л Га в
а 2 3
и е нш ы в о П е и н л рж по
е тсо н пиельдовзи р и й MATLABzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
Дан н а л о ж ен и п а м я ть гр а м н о г сан ы
с о кУ р е н и э о нк м и
я гл а в а о п и сы в ае т осн овн ы е п р и н ц и п ы э фекит в н о й р а з р а б о тк й в M ATLAB, к о т р ы е п о з в о л яю т сн и ж ат ь в р ем я с ч ет а и э к о н о м и т . Н а до с та о ч н о п рост м р уо в н е о б ъ яс н ен о и сп о ль з о в ан и а в н еш н и х п р о ц е р ду о и н етр ф й с а MATLAB API лд я в ы з о в х н а дргиу х яз ы к а х п р о гр а м и р о в а н и я .
е ратоб я пам тя
ы М - йлво фа
Д о с та о ч н к п р и м ер у э л ем н т п ер б р ат с о вт е с ю у щ и ед л н и я
ь
е п ро , н ап и
-
,
и
MATLAB и н етр п р еит реу т к о м а н ды , з а п и с а н н ы к о д и п о с л е до в а е т л ь н о в ы п о л н яе т и х . м н ог о в р ем н и в от м с ч л у а е , к о гд а а л го р и т ад н н ы х с о ед р ж и т ц и к лы , п о ск о ль к у к аж д с от л ь к о р а з , с к о л ь к о в ы п о л н я е ст я ц и кл п р и л о ж ен и й M ATLAB н ео б хид м о св ет му . Э ф ек ит в н о с т ь п р и л о ж ен и й ат к ж е м ят и п о д с о з ад в ем ы е боль ш и е м ас и в ы .
о э П л е м е тн ы
и п ри
е опе ра иц
П р о ц ес м о б р а б о тк я с рт о к . С л е до в а те л ь н о и и сп о ль з о в ан и о п р е дл я с т
е в М - фай лах с и н ет р п р е ат ц и
, в м аш и н н ы и з ан и м ае о о б ъ ем
и боль ш ог а ц и кл а и н е т р п р е и т р е с ут , п р и р а з р а б о тк е ц и к ло в к ми н и я р а с п р едл н и е м па
й т а я е -
и
о ч аст о рт е б с у я п р о и з в ес т и п р ео бр аз о в ан и е э лем н от в м ас и в а , р а з де л и т ь в с е э л ем н т ы о нд о й м а рт и ц ы н а с о вт е с ю у щ и ы др гу о й . Д ан н у ю о п ер ац и ю м ож н о о щс у е с в т и ь вм д у я сп ос бам и ь в с е э л е м н ыт м а рт и ц ы в о в л о ж ен н ы х ц и к ла х for и п о едл и т ь н е з н ач ен и я , л и б о и сп о ль з о в ат ь о п ер ац и ю п о э л е м н нт о г . П ер в ы й вари ан т р еали з о в а н в фа й л - п р о гр а м е t e s t i (ли с
, е : а о -
л ав Г
23. Пошвы ени
производт е льно с т и
ит н г 23.1), а в то р о вы бран ы к в а д р тн ы п р и п ом ощ и н фу к ц и
преин лойж
939 zyxwvutsrqp
M ATLAB
й — в фа й л - п р о г а м е t e st 2 (ли ст н г 23.2). Д л я п р и м е р а е м а рт и ц ы АЙ В о ид н а к о в ы х р аз м ер о в , з а п о л н яе м ы е и ones, ртебсу я з ап и сат ь р е з л у ь ат т в м а рт и ц у А , Т . е . j) / B ( i, j) .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
Л ист ин г 23 . 1 . Ф а йл - прога м м а t e s t l (п е р е б о р в ц и кл е ) izyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Izyxwvutsr
А = ones(400); В = 5*ones(400); for i = 1:400 for j = 1:400 A(i, j) = A(i, j)/B(i, j ) ; end end Г
" — '
" ќ
: Л и с т и н
ќ
г 23.2. Ф а йл - прога м м
у
а t e s t 2 (и с п о л ьз о в а н и
е поэ л е м е нт ы
х операицй
) !
А = o n e s( 4 00) ; В = 5 *o n e s( 4 0 0 ) ; А = А. / В
С рав н и т в а ть с я работ В р а с м а рт и в а е м ы к а ж до г в а ет л ь н о с т в р ем н ы О п р едл и т
;
е в р ем я , н а п р и м е р е фа й л - п р о г а м о и з М - фай ло ь к ом ан х з а тр е в р ем
, з а тр ч и в а е м о , п р о фа й л ер о
е н а р а б о т у t e s t l и t e st 2. М о ж н о в о с п о л ь з о м д л я п о чл у е н и я д е ат л ь н о й и н фо р м а ц и и о м zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "П"ре айл фор авыг л 16).
х п р и м ер а х р т е бс у я о п р е дл и т ь то л ь к о в р ем я работ в testl.m и test2.m, п о э тм у п рощ е п р и м ен и т ь п о с л е од д t i c и t o e, к о т р а я п р е нд а з н а ч е н а л д я с у ат н о в л е н и т н а вы п олн ен и е М - афй л а и л и н есколь ки х к о р кт и х к ом ан д я в ы ч и слен и я п о п ерв о м у и в от р м у сп о с бам :
ы я
» tic, testl, toe elapsed_time = 3.2500 » tic, test2, toe elapsed_time = 0.0940
.
О б р а ти з а тр а т
е вн и м ан и е ы в десякт
и и сонт
, ч т о п о э лем н т ы и р а з !
е о п ер ац и
и му ен ь ш а ю
т в р ем н н ы
е
940
аЧс т ь
Пр и м е ча ни
^ 1. З н чае и с о в п ат д ле ь нт
е
я в мр е н и ь с пнеирдв ы м о те м же .
2. Ф н укц и н еи
я к о м ан д
н ап ри мер
V. о п Длни т ельны
^zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
, нчепуол ы и в кн и ег
и t i c и t oe жа улс . П роц серн о
е н а р аз л и ч н ы , н о сн от ш не и
т дл я нел иподр е м е рв
т мне
е очеви нд о
ы м р а ит ц в м а рт и ц
х к о м п ь ю ер ат х
, муог я п ри бл з и
е ос теа я реаль н ог
я в о з р ащ с т ае
: T l = c p u t i i n e ; t e s t l ;
ю у С щ д ле а я з адч а и ме с я п р ео б а з о в а т ь э м ле н т Д ел н и е в се х э л е м н от рт д у а (ли ст н г 23.3).
MATLAB zyxwvut
возмно с тж и
о мн ев р я н у кц ф и е
т н е -
и вы п ол й cputime,
T2 = c p u t i m e - • T l .
е реш ен и е ы п о фо р мл а у ы А В О в ло ж ен н ы
. П репд о л ж и м , ч т о тте рбу : A(i, j) = A(i, j) / ( i *j) . х ц и к ла х н е п р е сд а т в л я е т
г 23.3. Ф а йл - прога м м а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC t e s t 3 (де л е ни е э л е м е нт о в в о вл еож ны х ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Л ист ин ли ц к а х
А = ones (400) ; for i = 1:400 for j = 1 :400 end end
Д л я п р и м ен ен и я п о э л е м н нт ы х о п ер ац и й рт е б у ст я с фо р м и р о в ат р а тн у ю м а тр и ц у то г о ж е р а з м е р а , ч т о и А , э л ем н т ы кот ро п р о и з в едн и е м н о м ер а с тр о к и н а н ом е р с то л б ц а . В с п о м о г а те л ь н а ц а м я в л е ст я в н еш н и м п р о и з в едн и е м п о дх я щ е г о с то л б ц (л и сит н г 23.4).
ь к в ад й я в л ю ст я м а рт и а и с тр о к
я и
А = o n e s( 4 0 0 ) ; r o w = 1 : 4 0 0 ; М = r o w ' * r o w; А = А. / М
С р ав н ен и ван н ог
;
е в р ем н н ы о в фа й л - п р о гр а м
» tic, test3, toe elapsed_time = 3.1410
х з а тр а
т б е уж а д е t e st 4:
т в э ф е к ит в н о с т
и сп ос ба
, р еа л и з о
-
л ав Г
23. Пошвы ени
пр о и зво дт е льно с т и
преин лойж
M ATLAB
941 zyxwvutsrq
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA tic, test4, toe elapsed_time = 0.0780zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
З а м е ьт а д лу и т ю уд щ е
т , ч т о п о сл е п о э л ем н нт о г о дел н и я м ас и в м н е нже у н — ег о се луд ь и з п а м я ит . О с н о в н ы е п р и ем ы работ ы с п а м я ьт ю о п и сан ы в сле м р а з де л .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Э о нкм и
я пам тя
и
О ид н и з сам ы х о ч е в и нд ы х сп ос бо в экон ом и и п ам ят и з а к л ю ч а е ст я в а л ед у н и и ет х п ер м ен н ы ,х котры е боль ш е н е п о н а до б ятс . Д л я э то г о щ су в ет ю т дв а с п о с б а . В о- п ервы х , о нд а и л и н ес к о л ь к о п ер м н ы х в ы ед л я ю с т я в окн е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Workspace и уадляю ст я п р и п о м щ и и л и о дн о и м ен н о г о пн у к т а к о н те к с тн о г о м ен ю . В от р й сп ос б , п р и го нд ы й в п р и л о ж ен и ях , с о с т и т в и сп о ль з о в ан и и к о м ан д ы c lear. адлУяем ы е п ер м ен н ы е з а н о с ят я в сп и со к е е п а р м е тр о в , н а п р и м е р : c lea r h ip i tmp3. Е сл и э т и п ер м ен н ы е бы л и соз да н ы в фа й л - п р о гр а м е и л и и з к о м а н дн о й с рт о к и , т о о н и уадляю ст я и з ос н овн о й с р ед ы M ATLAB. П ер м ен н ы е фа й л - н фу к ц и и а д л уя ю с т я и з с р ед ы фа й л - нфу к ц и . О дн а к о с ел и о н и б ы л и о б ъ яв л ен ы к а к гл о б а л ь н ы е , т о он и т допсут н ы л д я о с ат л ь н ы х н фу к ц и й (р а б о т а с гло о сатн с у я в п а м ят и и буд баль н ы м и п ер м ен н ы м и о п и с а н а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF р.азд "Пукн ци "ф до гавы л 5). Д л я а д л е ну и р а c le a r куа з а т
я гл о б а л ь н ы х п ер м н ы ь global, н а п р и м е р
х е су л д т в к а ч е свт е п ер в о г : c lea r global alpha beta.
К ом ан д а c le a r м о ж е т бы т ь вы з ван f c le a r ( h i p l , ' tm p3'), ч т о доу б н о , есл н с ят я в н ек о т р ы х с рт о к в ы х п ер м ен н ы х ад л Уе н и п р о гр а м с я в см ы с и з а гржу а т Пр и п ер м н ы вы х к ом ан
а и в фн у к ц и о н а л ь н о и и м ен а уадляем ы .
о п ар м ет
-
й фо р м е х п ер м ен н ы
: х ра х
-
е п ер м н ы х н е в сегд а ж ел ат ь н о . В о з м о ж н о , ч т о в о нд о м блок е ы м ас и в с в ы ч и слен н ы м и з н ач ен и ям и н е н ж уен , н о о н п о н а до б и т рд г оу м е е блок е . Е сл и э от т м а с и в з ан и м ае т м н ог о п а м я ит , т о и м е т л з ап и сат ь с о е др ж а щ и е с я в н е м да н н ы е н а ди с к , уадли т ь ег о и з п а м ят и ь п о м ер е н а д о б н о с ит . Д л я э от г о сж л у а т к о м ан д ы save и load. ч е тн и и ав ыг л 1 в ы п р и м ен ял и и х л д я с о р ха н е н и я з н ач ен и й ср аз у в се х х рабоч е й с р е ыд , а п р и чент и и ав ыг л 2— лд я с орхан ен и я ч и сло ад н н ы х в ет к с от в м фа й л е и с ч и ыт в а н и я . Оидбсу м воз м ож н ост и эи т х д бо ле е п о др о б н о .
К а к save, ат к и load м о гу т бы т ь в ы з в ан ы в к о м а н дн о й и фну к ц и о н а л ь н о фо р м а х . Н а п р и м е р : save filename А В И save (filenam e, 'А filename — и м я фа й л а , п р и в о дя т к о ди н а к о в м у р е з л у ь ат . П р н аль н о м сп ос б е в м ес т о и м ен и п ер м ен н о й в а п о с рт о фа х м ож н с рт о к в у ю п ер м ен н юу , ч т о и н о гд а о к а з ы в а е ст я од у б н ы м . П о
й , ' В ' ) , д г е и фну к ц и о о ку а з ы в а т ь му о л ч а н и ю
1
942
аЧс т ь
п ер м ен н ы з ан и м аю
е с о р х а н я ю ст т м ен ь ш ^ Дл
е м есат
Пр и м е ча ни
я в дв о и ч н ы , че м тек с от в ы е
V. Доплни т е льны
х фа й л а х с р а с ш и р ен и е , и з ап и с ы в аю ст
я б ы с рт е
м mat, к о т р ы е .zyxwvutsrqponmlkji
е
я о т г о о чб т ы mat- айф л ы ч и ал т с н п д ео л с г о п а р м ет а save анст уови т f f ! 1 sa ve ( ' D a t a F ile , A , - v6 ' ) .
Д л я з ап и с оид н фа й л б а в л яю ст
zyxwvu
во зм но с тж и MATLAB
и з н ач ен и й п ер м ен н ы . Е сл и з ап и с ь п р о и с о х ид я в ф а й л , т о указ ы в аест
ь в ир с в е я ь
х п р и л о ж ен и я м ож н т в н еск о ль к и х м е с а тх я оп ц и я - append, н а п р и м е р
оп ц и
х 6.x, е у делс т в к в а ч с те ю - v6, н ап ри ме
е :
о и сп о ль з о в ат ь в с ег о , т . е . з н ач ен и я до:zyxwvutsrqponmlkjihgf
А = rand(100); save('DataFile', 'А' ) В = А .
Л
2;
save('DataFile' , 'В' , '- append'); clear('А 1, 'В
Дл
1
)
я п о с лю е у д щ е й з а грзу к ioad( ' D a t a F ile 1 , 'A1) п р и в о ди
и п ер м н н ы т к п о яв л ен и
х п р и м е н я ес т ю м ас и в
я load, н а п р и м е р а А в р а б о ч е й с р ед
, .
и р а с ш и р ен и е фай л а дан н ы х — о н о В п р и в ен д ы х п р и м ер а х м ы н е указ ы в ал з а дв л о с ь mat п о умо лч ан и ю . П р епд о л ж и м , ч т о п ер м н ы е бы л и з ап и сан ы в фа й л е с рг и д у м р а с ш и р ен и ем , н ап р и м ер , myvars.dat п р и п ом щ и save ( 'm yvars.dat ', 'А 1 , ' В ' ) . Т о гд а п р и сч и ыт ван и и и х з н ач ен и й н ео б х ид м о п р и н ят ь в о в н и м ан и е сю у длещ е е о б с т яе л ь с в т о . Ф а й л myvars.dat явля с т е я вд о и ч н ы м , п оск ль к у п р и сроахн ен и и н е бы л а з адн а оп ц и я - a sc ii. С дргоу й с от р н ы , load и н ертп иет ру т вс е фай л ы с р асш и р ен и ем , олти ч н ы м о т mat, к а к тек сотв ы е . П о э тм у о б р а щ ен и е lo ad ( 'm yvars.d at 1 , 'А' , 'В ' ) п р и в ед т к ош и бке — в м ест о э от г о е с ул д т з адт ь д о п о л н и те л ь н ы й п ар м ет р - mat: load ( 'm yva r s. d a t ', 'А' , ' В ' , ' - m a t ' ) .
в Уе л и ч е н и я до с п у т н о й п а м ят и м ож н о до б и ьт с я з а сче т п р о ц ерду ы , к о т р у ю п р и н ят о н аз ы ват ь "с б о р к о й м с уо р а " . Д л я э то г о е с ул д т в о с п о л ь з о в а ть с я к о м а н до й pack, к о т р а я р аз м ещ ае т п ер м ен н ы е M ATLAB в п ам ят и о п ит , ч т о в о в р ем я с еа н с а работ ы да н н ы е н е пуо м аль н ы м образ ом . Д е л о в то м р я д о ч и в а ю тс я в п а м ят и и э т о ч аст о п р и в о ди т к н али ч и ю с в о б нд ы х не с м еж н ы х ф р а г м е н то в , к а ж до г о и з котры х н е до с ат о ч н о лд я р а з м ещ ен и я й боль ш ог о м ас и в а . К о м а н д а pack з а п и с ы в а е т п ер м ен н ы е в о в р ем н н ы фа й л в текщу е м к атлог е (п о ум о л ч а н и ю в pack.tmp), п о л н о с ьт ю освоб ж да е т п ам ят ь рабоч е й с р ед ы и з ает м сн ов а з а гржу а е т п ер м ен н ы е , та к ч т о с ат н о в и ст я од с п у т н о й н еп р е ы в н а я о бласт ь п а м я ти . П р и та к о й о р га н и з а ц и и п ам ят и в M ATLAB п р епд о ч ит ел ь н е е в о ди т ь п ер в ы м и сам ы е боль ш и е м ас и в ы (см . п р и м е р в р а з де л е сп рав о ч н о й с и ем т ы zyxwvutsrqponmlkjihgfedcbaZY M ATLAB: Programming:
л ав Г
23. Пошвы ени
пр о и зво дт е льно с т и
преин лойж
943 zyxwvutsr
MATLAB
Improving P e rformanc e and M e mo ry U s a ge : M a king Efficient U s e of M e mo ry: Working with Variables). zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
С щ у е с вт н н о с ркт у э л е м н от м а тр и ц а м
й э к о н о м и ы ад н н ы х в е су л д и о п и с а н
и п а м ят и и в рем н и сч ет а м ожн о до б и ьт с я п р и ч уе т е . Н а п р и м е р , м арт и ц ы с боль ш и м к о л и ч е с вт о м н л еву ы х т р ха н и т ь в р аз р еж н н о м в и ед (р а б о т а с р аз р еж н н ы м и а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA гаве л 15).
Н е м ен е в а ж н о п ри н и м ат де р ж а т то л ь к о ц ел ы е з н ач ен и я н и я ц ел о ч и с л ен н ы е м ас и в in t 32, uin t32) в з а в и с и м о с т ад н н ы х .
ь в о в н и м а н и , т о и м е ы п о хдя щ е г и о т м ак си м аль н о г
е и ти п да н н ы х . Т а к , есл и да н н ы е со т см ы с л и сп о ль з о в ат ь л д я и х р ах н е о ти п а ( in t 8, u in t s, i n t i 6 , u i n t i 6 , о и м и н и м аль н о г о з н ач ен и й
Чи с л а 8, 16 и л и 32 в н а з в а н и и ти п а го в о р я т о то м , с к о л ь к о би т з а н и м а е т од н а п ер м ен н а я да н н о г о ти п а . Д о п суит м ы е з н ач ен и я п ер м ен н ы х лд я к а ж о д г о и з ти п о в п р и в е дн ы в сп рав о ч н о й с и ем т е MATLAB (см . , н а п р и м е р , раз д . MATLAB: Programming: Data Types: Numeric Types). Д л я и н и ц и али з ац и и п о хд я щ е г о м ас и в а ад н н ы х м ож н о п р и м ен и т ь сле Й И З нфу к ц и й ones, eye Л И И zeros: ю уд щ е е о б р ащ ен и е К ДНО О >> i8A = ones(1000, ' i n t 8 ' ) ; >> whos i8AzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Bytes Class Name Size i8A 1000x1000 1000000 int8 array Grand total is 1000000 elements using 1000000 bytes Д аль н ей ш и е о п ер ац и и с м ас и в о м ч и се л ит п а in t 8 с орхан яю ч т о н ео б хди м о ч у и ыт в а т ь лд я и з беж ан и я о ш и б о к : » i8A(:, :) = 200; >> whos i8A Name Size Bytes Class i8A 1000x1000 1000000 int8 array Grand total is 1000000 elements using 1000000 bytes
т ит
п да н н ы х
127 П р и работ е с в е щ е св т н ы м и да н н ы м и н е в с е гд а оп равдн н о п р и м ен ен и е дв о й н о й то ч н о с ти , т . е . м ас и в о в ит п а double, к о т р ы е и с п о л ь з ю у ст я п о му о л ч а н и ю . В р яд е с ч л уа е в лд я э к о н о м и и п ам ят и в дв а р а з а ц е л с о б р а з н о о г р а н и ч и ьт с я обы ч н о й то ч н о с ть ю и п р ео бр аз о в ат ь м ас и в да н н ы х к ит п у sin gle п р и п о м о щ и о дн о и м ен н о й фну к ц и : >> dA = ones(1000); >> sA = single(dA);
,
944
аЧс т ь
V. о п Длни т е льны
MATLAB zyxwvut
во зм но с тж и
» whos dA sAzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Name
Size
Bytes Class
dA
1000x1000
8000000 double array
sA
1000x1000
4000000 single array
Grand total is 2000000 elements using 12000000 bytes
о бы л о ср аз у В м ес т о п р ео бр аз о в ан и я м ас и в а ад н н ы х к ит п у sin gle м о ж н н ач т ь работ у с эит м ти п о м , и н и ц и а л и з и р о в а в н л е ву о й м ас и в : » sA = zeros(1000, 'single'); » sA(:, :) = 0.33; >> sA = SA/2; /4 >> sA = sA. 2;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » sA = sin(sA); >> whos sA Name Size Bytes Class sA 1000x1000 4000000 single array Grand total is 1000000 elements using 4000000 bytes П р е д в а р и те л ь н а с м о рт е л и п а м ят м ас и в
я и н и ц и али з ац и я м ас и в о , к о т р у ю м ы то л ь к о ч т о рас , п о з в о л яе т с о к р а ит ь в р ем я р а с ч е от в и умен ь ш ае т ф р а г м е н ат ц и ю и п о с р а в н ен и ю с ди н ам и ч еск и м в ы е лд н и е м п ам ят и п о д с о з ад в е м ы й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е дл ы В ин
е пам т я
и по
д масив
ы с р ед ы MATLAB н е рт ебюу е о т м н о ги х р дг и у х яз ы к о в п р о гр а м и р о в а н и я и и з м ен яю ст я п о м ер е п р и с в о ен и . К п р и м ер у , о п е р а то р п ри св аи в ан и я
М ас и в ли ч и н а м и ч ес к з н ач ен и й » А
=
и п о с л е до в а е т л ь н о с т м а тр и ц а и н и ц и али з и рован
ы т п р е д в а р и те л ь н о г
о о б ъ яв л ен и , а р а з м е р м ег о э л е м н ат
я н овы , з а п о л н яю щ и
ы м ас и в м н ек о т р ы й м а рт и ц
я в от а ид х у А zyxwvutsrqponm
[ - 3 4 ; 9 7 ] ;
м А Й
ь к ом ан д В (п р едп о л а г ест я ы в р а б о ч е
»
В ( 1 , 1) = - 3 ;
»
В ( 1 , 2 ) = 4 ;
»
В ( 2 , 1) = 9 ;
»
В ( 2 , 2) = 7 ;
, п р и в едн н а , ч т о п ер м ен н ы й сре)д .
я н и же
, п р и в о дя т к о ди н а к о в ы е А и в д о э то г о н е бы л
м и
л ав Г
23. Пошвы ени
производт е льно с т и
преин лойж
945zyxwvutsrqpo
M ATLAB
Р абот а с н еб о ль ш и м и м ас и в ам и н е п р и в о ди т к з ам ент о м у в уе л и ч е н и ю вре м ен ы х з а тр а т , о дн а к о о п ер и р о в ан и е боль ш и м и о б ъ ем а и да н н ы х де л а т щс у е с в т н о й р а з н и ц у м же д у мв д у я п ер ч и с л ен н ы м и с п о с б ам и з а п о л н е н и я м ас и в о . С о с та в ь т е в д е ф а й л - п р о ц р еу д ы лд я з а п о л н е н и я к в а д р тн о й м ат ри ц ы р аз м ер о м 400. Э лем н т ы м а рт и ц ы в ы ч и с л я ю ст я в о в л о ж ен н ы х ц и к ла х A A п о i и j п о фо рмлу е l/ (i 2 + j 2) , п ри ч е м в н ач л е о нд о й ф а й л - п р о ц р е уд ы с о з ад й т е н л ев у ю к в а др н т у ю м а рт и ц у п р и п ом щ и н фу к ц и и zeros (ли ст н г и 23.5 и 23.6).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л и с т и н г 23.5. Ф а йл - прога м м а t e s t s бе з пре вад рит е л ноьг о едвыл е ни ! zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
я па м тя
и ! zyxwvutsr
:
for i = 1:400 for j = 1:400 jA 2) ; end end
A = zeros(400); for i = 1:400 for j = 1:400 end end
Т еп р ь н а й ид т е з а тр а т ы м аш и н н о г о в рем н и н а в ы п о л н ен и е к аж од г о и з М фа й л о в : test5.m и test6.m. Учит е , ч т о п ер д и с п о л ь з о в ан и е м t i c и toe у дсле е т о ч и с ит ь рабоч у ю с р ед у MATLAB к о м а н до й c le a r a l l , п о с к о л ь к у м ас си в в м о г б ы т ь с о з ад н ран е , а в э от м счлуа е п о д н ег о ж у е б ы л а в ы ед л н п а м я ть .
а
» clear all » tic, test5, toe elapsed_time = 7.8900 » tic, test6, toe elapsed_time = 3.4060 З а сч е с ит гн т у
т п р е д в а р и те л ь н о г а щ с у е св т н а
о в ы ед л н и я экон ом и
я п ам ят я в р ем н
и по и бо ле
д з ап о л н яем ы е ч е м в дв
а раз а
й м ас и . В аж н
в од о по -
946
н и м а ть м ес т м ас и о ч и ск т
аЧс т ь
, ч т о п ер в ы й з ап с у к t e st s п р и в о ди а в п ам ят и п о д м ас и в , а п о з ав ер ш ен и в н а о х ид с т я в п а м я ти . С л едо в а тел ь н о и р а б о ч е й с р ыед ) з ай м е т с от л ь к
V. о п Длни т ельны
т к п о с л еод в аетл ь н о м и работ , п о в т р н а о ж е в р ем н и
во зм но с тж и
MATLABzyxwvuts
у о в т е дн и ю ы фа й л - п р о гр а м ы в ес ь я работ а t e st s (бе з , с к о л ь к о и t e st б :zyxwvutsrqponm
» tic, test5, toe elapsed_time = 3.4060 нА али п о яв л ен и е си в
з код а (з апс у
П ри н ц и п и аль н з а сче т в ы з о в са н в сю луед щ е
з явС
а фа й л - п р о гр а м м то г о ж е с а м о г к M- Lint о п и са о ин о а в н еш н и м р а з де л
й сп о с х п р о ц е уд
ы t e st s п р и п о м щ и M- Lint с о п р о в ж адест я о с о в ет а п о п р едв а р и етл ь н о й и н и ц и али з ац и и м ас "Дитагскон М- во"айл ф гавы л 5). н zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд б с ку о р ен и
я в ы п о л н ен и я п р и л о ж ен и й MATLAB р н а дргиу х яз ы к а х п р о гр а м и р о в а н и я оп и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED
ь MATLAB с диргму п р о г а м м и р о ва н
и яа мкзы
и
я
Доволь н о ч аст о в с рт е ч а ст я с и а у цт и я , к о гд а и м ею с т я м о л у ид , н а п и с а н н ы е н а С и л и F ortran, и требсту я и сп о ль з о в ат ь и х в п р и л о ж ен и и MATLAB. П а к е т MATLAB п р еод с атв л яе т воз м ож н ост ь вы з ов а в н еш н и х п р о гр а м м бла г о да р я Application Program Interface (API), т . е , п р о гр а м н о м у и н ертф й с у п р и л о ж ен и я . Ф ну к ц и и MATLAB API едляст я н а вд е к а т е г о р и : нфу к ц и , о б ес п еч и в аю щ и е с о з ад н и е и од с у т п к м ас и в а м M ATLAB, и нфу к ц и , п о з в о л яю щ и е о п ер и р о в ат ь в р а б о ч е й с р ед е MATLAB. С о з да н и е М Е -Х ф а й л о в и з п р о ц е уд р F ortran з ак лю ч аест я в н ап и сан и и и н етр ф й с н о й п р о ц р еуд ы с и сп о ль з о в ан и е м н фу к ц и й MATLAB API и п осюлуед щ е й ге н е р а ц и и М ЕХ л яв л сет я ид фа й л а п р и п омощ и к о м ан д ы те х . В сред е Windows М Е -Х фа й н а м и ч ес к и п о дк л ю ч а е м о й б и б л и о ет к о й и и ме т р асш и р ен и е dll. Г ен ерац и я М Е -Х ф а й л о в и з п р о ц е уд р F ortran ртеб у т с ау т н о в к и п о хд я щ е г о ком п и л я то р а , н а п р и м е р , о дн о г о и з : D igital Visual F ortran и л и Compaq Visual F ortran. В срто ен н ы й к о м п и л я то р F ortran н е вохид т в п ак е т MATLAB в от ли ч и е о т к о м п и л я то р а Lcc дл я п р и л о ж ен и й н а С . П о с р ав н ен и ю с M ATLAB, к о т р ы п ри н ц и п и аль н о др г у о со ти т в н ап и сан и фа й л а и о б р ащ ен и п ри м е р та к о й в н еш н е гл а в ы .
п о хд а м
и п о п о в ы ш ен и ю э ф е к ит в н о с т и п р и л о ж ен и й е м ы р а с м о рт е л и вы ш е , М Е -Х фай л ы п р е до с ат в л я ю т й сп ос б п о в ы ш ен и я б ы с р т о ед й с в т и я п р о гр а м . О н и в н еш н е й п р о ц р е уд ы н а F ortran и л и С , с о з адн и и М ЕХ и к н ем у и з с р ед ы и п р и л о ж ен и й M ATLAB. П р о с т й й п р о ц р е уд ы р а с м о рт е н в п о с л не д м р а з де л е э от й
л ав Г
23. Пошвы ени
пр о и зво дт е льно с т и
преин лойж
и рг у о н ф в а К и
947zyxwvutsrqp
MATLAB
е MATLAB Compiler zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
П ер д к о м п и л яц и е й п р о гр а м м н е о б х ид м о п р о и з в ес т к и , с в яз ан н ы е с в ы б о р м к о м п и л я то р а . Е сл и к о м п и л я то му о л ч а н и ю и с п о л ь з ес т у я в с рт о е н н ы й Lcc дл я п р и ло ж ен и к к о н фи гру и р о в а н и ю MATLAB Compiler. Н а б е р и т » т е
и н ек о т р ы е с уа т н о в р н е в ы б р а н , т о п о й н а С . П р и спут и м е в к о м а н дн о й с рт о к е
х - se t u p
е р п дП у и н ж
е
Н ек о р т ы к о н р и ф у г о в ан и ос л ве ь щ бо с н е и н у ю п р о га м у З а п с ку а е т а в от м а ит ч е с к и
е н а и т в сн р у ы
е п р о а гм я и л и комп и цля и йе е о б о ш и бк е
ы у м ог . Елс , т о е у делс
т кон лфи оквта и п лос т вмнер
ь с п ро ц у д е е н абор о к лю о т ч и т
а к о м ан д
й ы те х вы
ь на и т в с р у
-
.
я п р о гр а м
а с и н етр ф й со к все х к о м п и л я то р о в
й п ои с
м и з к о м а н дн о , и м ею щ ис х
й с рт о к и и п р е лд а г е с т я н а к о м п ь ю ет р
Please choose your compiler for building external interface (МХ Е Would you like те
я .zyxwvutsrqponml ) files:
х to locate installed compilers [y]/n?
В в еи д т е у (п овтдерж н и е ) н а з а п р о с о б а в от м а ит ч е с к о м п ои ск е . П о яв л ет с я сп и со к допсут н ы х к о м п и л я то р в С и F ortran (к о т р ы й м ож е т о лт и ч а ьт с я о т п р и в едн н о г о н и ж е) : Select a compiler: [1] Compaq Visual Fortran version 6.1 in C:\Program Files\Microsoft Visual Studio [2] Lcc С version 2.4 in C:\MATLAB7\sys\lcc
[3] Microsoft VisualzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC C/C++ version 6.0 in C:\Program Files\Microsoft Visual Studio [0] None Compiler:
П о ск ль у алед е м ы раз бер м и сп о ль з о в ан и е вн ше н и х п р о ц у ед е у д елс т ввсет и н ом е р сювустоещ ге о к о м п и л оя т р а (в дан о и н аж т ь . Дале е п лсраегдт я п в е и т ор д ь ле а н с д ы Please verify your choices: Compiler: Compaq Visual Fortran 6.1 Location: C:\Program Files\Microsoft Visual Studio Are these correct?([y]/n): В в и ед т в ер ш ен о ю уд щ и
е у и н аж м и т . П ер й ид т х р а з де л а х 31 З ак
. 130
е < Enter> . К о н фи гру и р о в а н и е к и з ч уе н и ю н ек о т р ы .
х п р и м ер о в
р н а F ortran, т о м сча лу е п ер в ы й ) й в ы б о р :
е MATLAB Compiler з а , р а з о б р а н н ы х в с ле -
948
аЧс т ь
р о Пс т
й прим е р
Н ачн и т П р е дп о л о ж и м н ап и сан н у чи сл п р о ц е д ур
, с л оеж ни
V. Доплни т ельны
е дув
во зм но с тж и
х чисе
л
MATLAB zyxwv
zyxwvutsrqponmlkjihgfedcbaZYX
е и з уч е н и
е с о з да н и я М Е Х- ф а й л о в с сам ог о п р о с то г о п ри м ера . , ч т о и з с р е д ы M AT L AB т р е б уе т с я вы з ват ь п р о ц е д ур у sum, ю н а F o r t r a n 90. П р о ц е д у р а sum с к л а д ы в а е т д в а в е щ е с тв е н н ы х а а и ь и з ап и сы вае т р е з ул ь т а т в с (л и с т и н г 23.7). Б уд е м с ч и та ть , ч т о а sum с о д е р ж и т с я в фай л е mysum.f90.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
| Л ис т ин
г 23.7. Ис охнад
я проец уд
а sum н а Fortran 90 (фай
л mysum.f90) zyxwvutsrqponm
subroutine sum(a, b, с ) ! р у д е ц о р П !
а sum се а в ы д а л к
и ве а щ р в з о
т ра т ь л у з е
т дв
а вы н е в т с е щ
х лсич
а а и b
т в с
real*8 a, b, с с = а + b end
Н е п о с р е дс тв е н н о вы з ват ь п р о ц е д ур у sum и з с р е д ы M AT L AB, р а з ум е т с я , н е уд а с т я . Н е о б х о д и м о н ап и сат ь и н те р ф е й с н у ю п р о ц е д ур у н а F o r t r a n с и с п ольз ован и е м ф ун к ц и й M AT L AB AP I , к о т о р а я б уд е т то ч к о й в хо д а МЕХ фай л а m ysum .dll п р и в ы з о в е ф ун к ц и и mysum и з с р е д ы M AT L AB. И н т е р ф е й с н а я п р о ц е д ур а до л ж н а н а з ы в а ть с я m exF u n ct ion и и м е т ь ч е ты р е а р г ум е н т а ТИ П
а in t e ge r M :
х ын в д х о а р г ум е н т о в , с к о т о р ы м и б уд е т п р о и с хо д и т ь обра 1. n r h s — ч и с л о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA щ ен и е к М Е Х - ф у н к ц и и mysum и з с р е д ы M AT L AB. 2. p r h s — м а с и
в ук а з а т е л е
3. n i h s — ч и с л о х ын д х в о ы ращ ен и е к М Е Х - ф ун к ц и 4. p i n s — м а с и Обме н да н н ы м те р ф е й с н о вы ш еп ереч и слен н ы р е з ул ь т а т те р ф е й с н а ви т е фай п а р а м е тр
в ук а з а т е л е
й н а ве ын дхо
а р г ум е н т
ы mysum.
а р г ум е н т о в , с к о т о р ы м и б уд е и mysum и з с р е д ы M AT L AB. й н а ве ын дхоы
а р г ум е н т
т п р о и с хо д и т
ь об
-
ы mysum.
и м еж д
у п р о ц е д ур о й sum и с р е д о й M AT L AB п о с р е д с т в о м ин ы m exF u n ct io n о с ущ е с т в л я е т с я то л ь к о пр и п омощ и х а р г ум е н т о в . Д л я в ы д е л е н и я да н н ы х и з p r h s и з а н е с е н и я а в p i n s п р е д н а з н а ч е н ы сп ец и аль н ы е ф ун к ц и и M AT L AB AP I . И н я д л я sum п р о ц е д у р а m exF u n ct ion п р и в е д е н а в л и с ти н г е 23.8, н а з о , и н т е р ф е й с н а я п р о ц е д ур а име т ч е ты р е л с н е й m ysum g.f90. И т а к а ти п а i n t e g e r M , д в а м а с и в а p i n s, p r i s и д в а с к а л я р а n i h s, n r h s. й п р о ц е д ур
В m exF u n ct io n и сп ольз ован ы m xC reat eD o u bleM at rix И mxG etP r, в о з в р а щ а ю щ и Ф ун к ц и я m xC reat eD o u bleM at rix в ы д е л я е
дв
е т п ам ят
ф ун к ц и
и е З н ач ен и ь п о д м ас и
M AT L AB AP I : я И ТП а i n t e ge r *4 . в и воз вращ ае т
л ав Г
23. Пошвы ени
к у а з а ет л воз врат и м ет з а ет л м ен ы с о ед р ж а щ и а р мг у е н о т
пр о и зво дт е льно с т и
ь н а м ас и в . В а р е з л у ь ат а (см у ь р аз м ер ы о ид н н а я н а п ер в ы й в е щ е свт н н ы е а р г , ь _ р г и с р е вохнд ы е а р мг у е н т в о п р е дл н ы
преин лойж
р а с м а тр и в а е м о ы в ду о ди н г п о н а д о б я ст в ещ есвтн ы
949 zyxwvutsrqpo
MATLAB
м п р и м ер е э то т м а с и в ж с л иу ) в р а б о ч у ю с р де у MATLAB и . Ф ну к ц и я mxGetPr жслиу т дл я п о ч л у е н и й э л ем н т в м ас и в е . Ц ел о ч и с л ен н ы е я дл я рхан ен и я указ етл й н а м а с и в ы ы и в ы охдн о й а р мг у е н т . Д л я з ап и с и з н а ч ен и е п ер м ен н ы е а , ь и с . х ч и с ел
т дл бед у я к ау п ер
я т , й
П р о ц е рд у а mexFunction н ач и н аест я с п о чл у е н и я к у а з ет л й н а п ер в ы е (а в да н н о м с чл у а е и еид н свтен ы е ) в ещ есвт н н ы е э л е м н ыт м ас и в о , н а к о т р ы е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA уквазюты п ер в ы й и в то р о й э л е м н ыт prh s. В аж н о п о н и м а ть , ч т о м ас си в prh s со едр ж и т к у а з ет л и н а м ас и в ы с п ец и ал ь н о г о ти п а mxArray. Д а н н ы й ит п о п р е д л н в M ATLAB API и яв л сет я еид н с в т е н н о воз м ожн ы м у с р ео д й M ATLAB и п р о ц ерудо й н а сп ос бо м о б м ен а да н н ы м и м ж ед F ortran. Вс е да н н ы е MATLAB п ер адю стя п р и п ом щ и mxArray, в з ав и си м о ст и о т ти п а п е р ад в е м ы х ад н н ы х е су л д т п р и м ен ят ь с о вт е с ю у щ и е н фу к ц и и лд я и з в л е ч н и я к у а з ет л й . Д л я и з в леч н и я к у а з е тл й н а вт-сещ е в ын м ас и в ы , соедр ж ащ и е з н ач ен и я вонхд ы х а р мг у е н от в М Е - Х фн у к ц и , н ап р и м ер , а_ р г И b_pr, И етС у З ЛЬ О П С Я фн у к ц и я mxGetPr M ATLAB API. С ю л еу д щ и й ш а г со ти т в з ап и с в ен ы е п ер м ен н ы е а и ь . П р о ц ерду mxCopyPtrToReal8, з а н о с и т в е щ е св т н н ы п р о ц р еуд е F ortran. П ер в ы м вохнд ы с я к у а з а ет л ь , в от р ы м — и м я м ас и в а м ы х э л е м н от в (в р а с м а рт и в а ем о оид н э лем н )т . П р о ц ерду а в ы з ы в а е ст в о нх д ы х а р мг у е н от в М Е -Х нфу к ц и ц р у ед ы mexF unction. Н а да н н ы й м о ен т в и н е тр ф й с н о то в , о т к о т р ы х бы л а вы з ван с от яе л ь с вт о п о з в о л яе т о б р а ит ь с л о о с н о в н о й з а д ч ей . Р ез луь ат п ер м н у ю с . О са лт о з н а ч ен и ОДИ
П ервы м
ь о б ес п ч и т я п ер м н о Н н а ОДИ Н п р и Щ О М О П и д в ум я в хо д н ы м
и з н ач ен и
й в о нх д ы х а р мг у е н о т в в в ещ ес т а M ATLAB API, к о т р а я н а з ы в а е ст я е да н н ы е в м ас и в , о б ъ яв лен н ы й в м а р мг у е н о т м mxCopyPtrToReais явлет , а ртеь и м — к о л и ч есвт о з ап и сы в ае м п р и м ер е р т е бс у я з ап и сат ь то л ь к о я дв а р а з а л д я з а н е с н и я з н ач ен и й и в п ер м ен н ы е а и ь и н етр ф й сн о й п р о й п р о ц реуд
е и з в е сн т ы з н ач ен и я а р м гу е н я в сред е MATLAB. Д а н н о е о б е sum, е е и с п о л ь з о в а н и е и бы а а и ь (см . л и сит н г 23.7), з ан ес н
а М Е -Х н фу к ц и я к п р о ц реуд , т . е . см у
ь в о з в р а щ ен и й с . П р евд ар и етль н
е М Е - Х н уф к ц и е о н е о б и хд м И ф ун к ц и и а р г ум е н т а м
й в в ы о н дх о о с о з а дт
ь м ас и
м а м р гу е н т в р аз м ер
в е а
и m xC reateD oubleM atrixl M AT L AB AP I . и m xC reateD oubieM atrix я в л я е т с я
ч и сл о с рт о к и с от л б ц о в с о з да в е м о г н ица . Н о л ь , ук а з а н н ы й в рт е ь м а р мг у е н е т м ас и в у , а е д и н и ц а — к о м п л ек с н о м у в ращ ае т к у а з а ет л ь н а с о з ад н н ы й pih s (1). В ы ш е бы л о ск аз ан о , ч т о м ас и н а м ас и в ы с р е з луь та о м , п о ск о ль к у
о м ас и в а
, а рт еь и м — н о л ь и л и и де , со втес у т в е щ е св т н н о м у . Ф ну к ц и я mxCreateD oubieMatrix в о з т з ап и сат ь в м ас и в , к о т р ы й е су л д в pin s од лж е н с о ед р ж а т ь к у а з ет л и и м ен н о pin s и сп о ль з есту я лд я п ер а д -
950
аЧс т ь
V. о п Длни т ельны
MATLAB zyxwv
возмно с тж и
ч и з н ач ен и й в рабоч у ю с р ед у M ATLAB. П о сленд и м е дй с в т и е м я в л се т н ес н и е в м ас и в з н ач ен и я в ещ есвт н н о й п ер м ен н о й с , дл я ч ег о п ри м ен яет с я п р о ц е р ду а mxCopyReaiSToPtr MATLAB API. П ер в ы й в о х дн о й а р мгу е н mxCopyReaiSToPtr яв л ест я п ер м ен н о й , в т о р о й — куаз етл м н а м ас и в п о лд е ж а щ и й з ап о лн ен и ю , а рт еи й — к о л и ч есвт о м з ап и с ы в аем ы х э л ем н от в м а с и в а .
я за т , -
Л ис т ин г 23.8. Инт е рйфс на я проец уд а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM m e xFu n c t io n (фай л mysumg.f90) I zyxwvu \ zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA subroutine mexFunction(nlhs, pins, nrhs, prhs) ! а н с й е ф р т н И
я пр у д е ц о р
! и н а с и п О
е то п и
а дл в ао т н е м у г р
я sum в
integer nlhs, nrhs, pins(*) , prhs(*) ! и н а с и п О
е то п и
в иы м е у з ь л о п с
х фи ц к н у
й и з MATLAB API
integer mxCreateDoubleMatrix, mxGetPr ! и н а с и п О
е то п и
в уе л т а з к
й н а иы м е у з ь л о п с
е пы н е м р е
е
integer a_j?r, b_j?r, c_pr ! и н а с и п О
е то п и
в иы м е у з ь л о п с
х пы н е м р е
х
real*8 a, b, с
! и н е ч у л о П
е уе л т а з к
! с т е а в ы з в
й н а пы в р е
я М- Х Е я и ц к н у ф
! с т е у з ь л о п с и
й и во р т
, ул е т а з к
я фи ц к н у
й вы н д о х
и хс т я н а р
е аы т н е м у г р я в мвис а
, с км ы р о т
и
е prhs,
я MATLAB API
a_pr = mxGetPr(prhs(1)) b_pr = mxGetPr(prhs(2)) ! с и п а З !
ь зи н е ч а н
_ а р
й пг о в р е
о и вг о р т
г и b__pr в пы н е м р е
о вы н д о х
е а и b пр
х ао т н е м у г р
и пщ о м
в с ум я л е т а з к
и пр у д е ц о р
и
ы MATLAB API
call mxCopyPtrToReal8(a_pr, a, 1) call mxCopyPtrToReal8 (b__pr, b, 1) ! о з ы В
в пр у д е ц о р
ы sum, ка р о т
я зи с о н а
т в пу н е м р е
ю с см у
у а и b
call sum(a, b, с ) ! и н а д з о С
е вг о н д о х ы
!
идо
!
н а мис а
н пр
и пщ о м
о ат н е м у г р и фи ц к н у
а — вг о н е в т с е щ
о мв и с а
и MATLAB API, во н д о х ы
й ан е м у г р
в
plhs(l) = mxCreateDoubleMatrix(l, I, 0) c_pr = mxGetPr(plhs(1))
а рр е м з а т ет с
а ои д ь ул е т а з к
н н а ь
л ав Г
23. Пошвы ени
! и н а в о р и п о К
пр о и зво дт е льно с т и
е и н е ч а н з
преин лойж
я с в мис а
call mxCopyReal8ToPtr(с , с__рг
MATLAB
в с уе л т а з к
951 zyxwvutsrq
м с р г
, 1)
endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
И сп оль з ован и е п р о ц р е уд ы sum в MATLAB сатн е т воз м ожн ы м то л ь к о п о сл е с о з ад н и я М Е -Х нфу к ц и и и з sum, рахн ящ ей с я в фа й л е mysum.f90, и и н етр фе й с н о й п р о ц реуд ы mexFunction, к о т р а я з ап и сан а в фай л е mysumg.f90. Д л я с о з ад н и я М Е -Х нфу к ц и и ж с л иу т к ом ан д а те х . Н а п о м н и м , ч т о п ер д п ри м е н е ие м те х е сулд т о п р едл и ьт , к а и м к о м п и л я то р м F ortran едбу т п оль з о в а ьт с я MATLAB лд я ген ер ац и и М Е -Х н фу к ц и и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM (с.м р.азд "Квигоанеру ф о MA TLAB Compiler" дйаон г)авы л . П осл е н а с рт о й к и MATLAB н а и с п о л ь з о в а н и п р и сп ут а ь к о к о н ч аетл ь н о м у э ат п у — с о з адн и ч т о фа й л ы mysum.f90 и mysumg.f90 н соятадх и в ы п о л н и т е к о м ан д у те х , куаз в в к ач есвт » ет
х mysum.f90 mysumg.f90
О б р а ти в от р ы то р ы ит в ш и с
е в н и м ан и е , ч т о и м я фай л а с и н е тр ф й с н о м п а р м е тр о м те х . В тщеку е м к атлог й и с о ед р ж и т р т е б му ю М Е -Х нф у к ц и ю ь к н е й и з к о м а н дн о й с тр о к и :
е к о м п и л я то р ю М Е -Х нф у к ц и я в тщ кеу е е е п а р м е тр о
е п о яв и л с . П р о в е р ь т
а F ortran м о ж н о . бУеид тс ь , м к а тл о г е M ATLAB, в и м ен а фа й л о в :
й п р о ц ер у д о я фа й
й я в л се т я л mysum.dll, к о е е е р а б о ту , о б р а -
» s = mysum(l, 2)
П осл е в ы з о в а М Е -Х н фу к ц и см ы с л в ы грзу и т ь е е п р >> clear mysum П ри м е ед н н ы фе й с д о с та о ч н о г л а ю щ ем з н ат ци еф й с н ы ли ч н ы
я о сате и п о м щ
и к о м а н д
я в п а м яит . Е сл ы clear:
р с о з ад н и й вы ш е а п р и л о ж ен и
и о н
а н е н жун а
, т о и м е
т
я М Е -Х н фу к ц и и и з п р о с е тй ш е й п р о ц р е уд ы F ortran, п ри в е , едм о н срт и реу т осн овн ы е п ри н ц и п ы и сп о ль з о в ан и я и н етр й MATLAB API. П о л ь з о в а те л ю M ATLAB, н е и м ею щ ем у о оп ы т а в о бласт и р а з р а б о тк и и н е тр ф й с а п р и ло ж ен и й , н о же у вы з ы ват ь п р о ц р е уд ы F ortran и з сред ы M ATLAB, до с та о ч н о ь н еб о ль ш о й н або р н фу к ц и й MATLAB API. Т р ебюу ст я то л ь к о н уф к , к о т р ы е п о з в о ляю т о б м е н и в а ьт с я осн овн ы м и ит п а м и да н н ы х . И н те р е п р о ц е р ду ы , к а к п р а в и л о , п р и н ц и п и а л ь н о н е о лт и ч а ю ст я лд я р а з х п р о ц е уд р н а F ortran и с о с т я т и з тре х ч асетй :
1. П о лчуен и 2. В ы з о 3. В о з в р ащ ен и
е з н ач ен и в п р о ц р е уд
й вонхд ы
х а р г м у е н от в
.
ы н а F ortran. е з н ач ен и
й в срде
у MATLAB.
952
аЧс т ь
V. о п Длни т е льны
M ATLAB zyxwvut
во зм но с тж и
В ю с лу е д щ и п р о ц еуд раз ли ч н ы
х р а з де л а х п ок аз ан ы о с б ен н о с т и р еали з ац и и и н е рт ф й с н ы х р и с о вт е с ю у щ и е н фу к ц и и MATLAB API лд я о б м е н а ад н н ы х х ти п о в .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Ра б от
а с ком пл е скмны
И сп о ль з о в ан и м ен ы м и е йф с н о котра си в а пр
и пе р м е мны
е п р о ц р уе д , ртебу й п ро ц реуд я в о з в ращ ае
ы н а F ortran, оп ери ю у щ е й с к о м п л ек с н ы м и п ре й о р га н и з а ц и и о б м ен а ад н н ы х в и н ер т е фн у кц и и mxGetPr, п рисетд я и сп о ль з о в ат ь mxGetPi, ь н а к о м п л ек с н у ю ч аст ь п ер в о г о э л ем н т а м са ь з н а ч ен и я п ер м н о й п о к у а з е лт ю п р о и з в о яс д т я zyxwvutsr
т с о ю в ут е щ е . К р о м т к уа з е л т е и з ап и с
. П очлуен и
р m xC o p yP t r T o C o m p lexl6 И m xC o p yC o m p le xl6T o P t r , И П р
И п ро ц е ду
и Щ ОМ ОП
и
че м вохнд ы м а р г м у е н от м , к р о м е указ етл я н а в ещ есвт н н юу к у а з ет л ь н а к о м п лек сн у ю ч а с ьт . П р и с о з адн и и м ас и в DoubieMatrix еслуд т з адт ь и ед н и ц у в к а ч е свт е тр е ь г ск о ль к у п р е дп о л а г е с т я р ха н е н и е к о м п л ек с н ы х ч и с ел ц р уед ы н а F ortran п ри вед н в ли ст н г е 23.9, а о вт еч а ю щ а п р о ц е р ду а в л и с ит н г е 23.10. j Л и с т и н
г 23.9. Проец уд
а с л еож ни
, яв лясет а н фу к ц и е . Т ек с
о а р мг у е н а т т и со х н д о я е й и н етр фй сн ая
я ком пл е с кны
х чис е
л (фа й
а к о м п лек сн ы
х чи сл
а а и b
-
я ещ е и й mxcreate, п о й п ро -
л mycsum.f90)
I
s u b r o u t i n e su m ( a, b , с ) !
П р о ц е д ур
!
и воз вращ ае
а sum с к л а д ы в а е т р е з ул ь та
т дв т в с
com plex*16 а , Ь , с с = а + b en d zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
j Л и с т и н г 23.10. Инт е рйфс на X ,,........„„ .
я проец уд
а m e xFu n c t io n (фа й
л mycsumg.f90) „,...-
subroutine mexFunction(nlhs, plhs, nrhs, prhs) ! а н с й е ф р е т н И ! и н а с и п О
я р у д е ц о р п е о п и т
а лд
в о т н е м у г р а
я sum в
integer nlhs, nrhs, plhs(*), prhs(*) ! и н а с и п О
е о п и т
в иы м е у з ь л о п с
х и ц к н у ф
й и з MATLAB API
integer mxCreateFull, mxGetPr, mxGetPi ! и н а с и п О
е о п и т
в уе л т а з к
й н а иы м е у з ь л о п с
е ы н е м р е п
integer a_pr, b_pr, c__pr, a_pi, b_pi, c_pi ! и н а с и п О
е о п и т
в иы м е у з ь л о п с
complex*16 a, b, с
х ы н е м р е п
х
е
; zyxwvutsr
.....J zyxwvut
л ав Г
23. Пошвы ени
пр о и зво дт е льно с т и
! и н е ч у л о П
е уе л т а з к
! ы н д о х в
MATLAB
й н а вы н е в т с е щ
х ав о т н е м у г р
! с т я н а р х _ а р
преин лойж
е и мы м и н
, с км ы р о т
я в мв и с а
и вс т е а в ы з
е чт с а
953 zyxwvutsrq
и пг о в р е
я М- Х Е я и ц к н у ф
е prhs, ис т е у з ь л о п с
о и вг о р т , ул е т а з к
я фи ц к н у
о и
и MATLAB API
г я mxGetPr(prhs(1))
a_pi = mxGetPi (prhs (1) ) b_pr = mxGetPr(prhs(2)) b_pi = mxGetPi(prhs(2)) ! с и п а З !
ь зи н е ч а н
й пг о в р е
о и вг о р т
о вы н д о х
х ао т н е м у г р
a_pr, a_pi и b_pr, b_pi в пы н е м р е
! р у д е ц о р п
в с ум я л е т а з к
е а и b пр
и пщ о м
и
и
ы MATLAB API
call mxCopyPtrToComplexl6(a_pr, a__pi, a, 1) call mxCopyPtrToComplexl6(b_pr, b_pi, b, 1) ! о з ы В
в пр у д е ц о р
ы sum, ка р о т
я зи с о н а
т в пу н е м р е
ю с см у
у а и b
call sum(a, b, с ) ! и н а д з о С
е вг о н д о х ы
!
идо
!
н а мис а
н пр
о ат н е м у г р
и пщ о м
и фи ц к н у
а — кг о н с к е л п м о
о мв и с а
и MATLAB API, во н д о х ы
а рр е м з а
й ан е м у г р
а ои д
т ет с
н н а
ь ул е т а з к
ь
в
plhs(l) = mxCreateDoubleMatrix(l, 1, 1) c_pr = mxGetPr(plhs(1)) c_pi = mxGetPi{plhs(l)) ! и н а в о р и п о К !
е зи н е ч а н
_ с р
я с в ми с а
г (н а ву н е в т с е щ
в с ум я л е т а з к
ю чь т с а
и
) и c_pi (н а му м и н
ю чь т с а
)
call mxCopyComplexl6ToPtr(с , c_pr, c_pi, 1) endzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
С о з да й т с к о м п и л и рйу т п р ые д щ у е » ет
б ие У д с т
е в тщеку е
м к атлог е М Е -Х нфу к ц и ю
м р а з де л
е MATLAB фай л ы mycsum.f90 и mycsumg.f90 и п р и п о м щ и к о м а н д ы те х , р а с м о тр е н н о й в
:
х mycsum. f 90 mycsumg.f90
ь в то м
, ч т о п о лчуен н а
я М Е -Х нфу к ц и
я mycsum р а б о та е
т в е р н о
.
» s = mycsum(1 + 2i, 3 - 5i) s = 4.0000 - 3.0000i Р а з м у е стя и вещ есвтн ы
, mycsum п р а в и л ь н х а р г м у е н то в
» s = mycsum(1, 3) s = 4
о в ы ч и сляе :
т м су
у н е то л ь к
о к о м п л ек с н ы х
, н о
954
аЧс т ь
Об м е
н м а с ива м
и дыан
V. Доплни т ельны
х
П е р адч у м ас и в о в ад н н ы х в п р о ц р еу д бо ч у ю с р де у M ATLAB п р о и л ю срт и реу м а рт и ц . С о з да н и е п р о ц реуд ы л д я н о а хж е д н и F ortran н е п р есдатв л яе т р т да у , е е тек с
MATLAB zyxwv
во зм но с тж и
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
у н а F ortran и в о з в р а щ е н и е и х в ра м н а п р и м ер е п ер м н о ж ен и я в уд х я п р о и з в е дн и я дву х м а рт и ц н а т п р и в ед н в л и сит н г е 23.11.zyxwvutsrqponmlkjih
г 23. 1 1 . рПоец уд а пе р м еножи я м а т ри ц (фай л mymult.f90) ! Л ис т ин : . zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA subroutine multmtr(nl/ п2 , пЗ ! Ви н е л с и ч ы
е Z = X*Y, гд
integer nl, n2, пЗ
, X, Y, Z)
е X - nlxn2, Y - n2xn3, Z - п1п Х
З
, i, j, k
real*8 X(nl, n2) , Y(n2, п З ) do i = 1, nl
, Z(nl, пЗ
)
.
do j = 1, n3 Z(i, j) = O.OdO do k = 1, n2 Z(i, j) = Z(i, j) + X(i, k)*Y(k, j) enddo enddo enddo end
Т р е бс ту я с ге н е р и р о в а т ь М Е -Х нфу к ц и ю mymult лд я в ы ч и с лен и я п р о и з в ед н и я дву х м а тр и ц , п ри ч е м ч л уш и м в а р и а н то м о б р ащ ен и я к mymult и з сред ы M ATLAB б ы л о б ы ку а з а н и е в о в о хн д ы х а р мг у е н ат х то л ь к о и ос н х д ы х м ат р и ц (бе з и х р а з м е р о в ) и п очлуен и е в в ы о х нд о м а р мг у е н т е р е з л у ь та . С ле д о в а те л ь н о , р а б о т у п о о п р е дл н и ю р аз м ер о в п ер м н о ж аем ы х м а тр и ц до л ж н а в з ят ь н а себ я и н етр фй сн ая п р о ц еруд а mexF unction (ли сит н г 23.12). В и н етр ф й с н о й п р о ц еруд е н е о б х ид м о о б ъ яв и т ь к у а з ет л и н а м ас и в ы о вт е с ю у щ и е и о с н дх ы м м а рт и ц а м и и х п р о и з в едн и ю , и сам и м ас и в ы П оск оль к у р аз м ер ы м ас и в о в з ар н е е н еи з в еснт ы , т о м о ж н о о гр а н и ч и т к п р и м ер у , п яьт ю едс яьт ю (в сю улед щ е м р а з ед л е п р и в ед н п ри м е р и с п о л ь з о в ан и я ид н а м и ч е с к и х м ас и в о ) . П о лчуен и е к о л и ч е с вт а с рт о к и с от л б ц о в о хнд ы х а р мг у е н а т х М Е -Х нф у к ц и и п р о и з в о ди с т я п р и п ом ощ и н фу к ц и mxGetM и mxGetN MATLAB API. Д а н н ы е н фу к ц и и в ы з ы в а ю ст я о т к у а з а ет л н а в о х дн о й а р мг у е н т М Е - Х нф у к ц и , т . е . о т э лем н т а м ас и в а prh s, и вращ аю т к о л и ч е с вт о с рт о к и л и с то л б ц о в . П ер д н о а хж е д н и е н о п р о в ер и т
м п р о и з в е дн и ь с о вт е с и
е р аз м ер о
я м а рт и в п ер м н о ж аем ы
ц п р о ц е р ду о
й mymult ц ел с о б р а з х м а тр и ц , а и м ен н
, со . ь их , в в о й я в о з о сов
-
л ав Г
23. Пошвы ени
п а де н и е п и п рограм м ы M AT L AB. ош и бке . С т р о к а р г ум е н т а
К Г Вс е т х дл я ц е др у ы ком ан д в з а и м о де й с тв о в а т п р о ц е ду те м
пр о и зво дт ельно с т и
преин лойж
MATLAB
955 zyxwvutsrqp
q. В с л уч а е , к о г д а п н е р а в н о q, н е о б х о д и м о п р е к р а ти т ь работ у и вы вест и с о т в е т с т в ую щ е е со бщ ен и е в к о м а н дн о е окн о П р о ц е д ур а mexErrM sgTxt M AT L AB AP I с л уж и т д л я о с т а н о в а п о а с со бщ ен и е м о б ош и бк е ук а з ы в а е т с я в к а ч е с тв е в хо д н о г о mexErrM sgTxt.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Пр и м е ча н и
ф ну к ц и в и м ен о п ери ро в ан и
е ^Д и и п р о ц е дру и о з н ач ает
ы M ATLAB AP I де л я тс я н а дв е г р уп п ы . П р е ф и к с , ч т о да н н а я фну к ц и я и л и п р о ц е дру а п р е дн а з н а ч е н а я с да н н ы м и рабоч е й с р ед ы M ATLAB. Ф ун к ц и и и п р о , и м я к о т р ы х н а ч и н а е тс я с п р ефи к с а zyxwvutsrqponmlkjihgfedcbaZYXWV те х , п о з в о ляю т в ы п о лн ят ь ы M ATLAB, в ы в о ди т ь со бщ ен и я в к о м а н дн о е окн о , с л о в о м , й с р е од й M ATLAB. О п и с а н и е в с е х ф ну к ц и й и ь с сам о р с о д е р ж и ст я в р а з д . Application Program Interface с п р а в о ч н о й си с ы M ATLAB.
П осл е п роверк и в хо д н ы х а р г ум е н т о в н е о б хо д и м о и з влеч ь ук а з а т е л и н а с о о т в е т с т в ую щ и е м ас и в ы и вы з ват ь п р о ц е д ур у m xC opyP trToR eais д л я з а п о л н ен и я м ас и во в АЙ В , о п р е д е л е н н ы х в и н те р ф е й с н о й п р о ц е д ур е . Т р е т ь и м а р г ум е н т о м mxC opyP trToReai8 я в л я е т с я к о л и ч е с тв о з ап и сы ваем ы х да н н ы х в к а ж ды й м ас и в , т . е. п р о и з в е д е н и е чи сл а с тр о к н а чи сл о с то л б ц о в . В ы з о в ю р е з ул ь т а т а в м ас и в с . Д л я в о з п р о ц е д ур ы mymuit п р и в о д и т к з ан есен и вращ ен и я р е з ул ь т а т а в рабочу ю ср ед у M AT L AB о с т а л о с ь сформ и роват ь и ф ун к ц и и в е щ е с тв е н н ы й м ас и в раз м ер а m н а q п р и п о м о щ m xC reat eD o u bieM at rix, з а п и с а т ь ук а з а т е л ь н а н е г о в п е р в ы й э лем ен т м ас и в а p l h s И вос п о л ь з о в а т ь с я mxG etPr И m xC opyReal8ToP tr.zyxwvutsrqponmlkjihgfedcbaZYXWV : Л и с т и н
г 23.12. Инт е йрсфна
я проец уд
а (фа й
л mymultg.f90)
subroutine mexFunction(nlhs, plhs, nrhs, prhs) ! а н с й е ф р е т н И я р у децорп а л д я mymuit ! и н а с и п О е о п и т в о т н е м у гра в integer nlhs, nrhs integer plhs(*), prhs(*) ! и н а с и п О е о п и т в ы м еузьлопси х ицкнуф й и з MATLAB API integer mxGetM, mxGetN, mxGetPr, mxCreateDoubieMatrix ! и н а с и п О е о п и т в ел таз ку й н а ы м еузьлопси е пы н е м р е е integer A_pr, B_pr, C_pr ! ы н е м р е П е m, n, p, q стюузьлопси я ялд . сипаз и о р е м з а р в и р там ц integer m, n, p, q ! я с т е а г л о п д е р П , тч о циртам ы н е угом т т е м и ь рр е м з а , би ш ь л о й 50 real*8 ( А 50 , 50), ( В 50 , 50), ( С 50 , 50)
! zyxwvutsr
956
аЧс т ь
! и н е ч у л о П
е ро р е м з а
в ми р т а
V. о п Длни т е льны
ц — вы н д о х
во зм но с тж и
х ао т н е м у г р
в М- Х Е и ц к н у ф
MATLAB zyxw
и
m = mxGetM(prhs (1) ) n = mxGetN(prhs(l) ) p = mxGetM(prhs(2) ) q = mxGetN(prhs(2)) ! к р е в о р П
а с ищюувтс евто
х ро р е м з а
в ми р т а
ц
if (n.ne.p) then 1
call mexErrMsgTxt('Matrix dimensions must argee! ) endif ! к р е в о р П
а ро р е м з а
в ми р т а
ц н а во х ы
д з а ды м и т с у п о
е пл е д р
ы ( > А = r a n d ( 4 0 0 ) ; > > В = r a n d ( 4 0 0 ) ;
>> tic, С = mymultfun(A, В ) ; toe Elapsed time is 8.500000 seconds. >> tic, С = mymult(A, B ) ; toe Elapsed time is 1.594000 seconds.
Дл
я раз н ы н о ш ен и н ом и
х к о м п ь ю ет р о е о сате
т в рем
я с ч еа т
я п р и м ер н .
в в р ем н н ы е з а тр о ет м ж е — М Е -Х нфу к ц и
ы м о гу
т р а з л и ч а ть с я я в н ес к о л ь к
, н о со т о ра з эко
-
В з а к л ю ч ен и е э от й г л а в ы о мт е и м , ч т о в ы и м ет е воз м ож н ост ь в ы з ы в ат ь н фу к ц и и M ATLAB и з со б втен н ы х п р о гр а м м н а F ortran и л и С (см . р а з д .zyxwvutsrqp MATLAB: External Interfaces: Calling MATLAB from С and Fortran Programs сп рав о ч н о й си есмт ы MATLAB).
И Н Е Р П ИЛ О Ж
Я
е и н рл ж о П
е 1
ы н в о нс О
е кмо дан ы и M ATLAB и ToolboxzyxwvutsrqponmlkjihgfedcbaZY
и фуиц кн П р и ло ж ен и в ан н ы нф у к ц и й Дан робн
е соедр ж и т осн овн ы е п о р а з де л а м . П р и в едн , и м ею ст я п р и м ер ы с ы лк и н а с о вт ес ю у щ и о р а з о б р а н о п р и м ен ен и
п Ур а в л е н и
е фн у к ц и о о п и сан и
и и к о м ан д ы M ATLAB, с грпу и р о е раз ли ч н ы х в а р и а н то в вы з ов я н ек о т р ы х н фу к ц и й и к ом ан д е гл а в ы и р а з де л ы к н и ги , в к о т р ы х п од й и к о м а н д MATLAB и Toolbox.
ы и сп о ль з о в ан и е фн у к ц и
е с р е до й
и е н ч лу о П
е о сн чо аврп
• demo — п очлуен и • doc — з ап с у
в е п а р м е тр р о й требсту doc p lo t
е до спут к сп рав о ч н о а м ож е я п о лч у и т
, фа й л а м
и и п е р е м е н ым
й мрио иац ф н
и
а к дем о н с рт а ц и о н н ы
т бы т
й си емст ь ку а з а н ь сп рав о ч н у
м фай ла ы п о все м р а з дел а о и м я н фу к ц и ю и н фо р м а ц и ю
а . -
и м в о к н
е zyxwvutsrqponmlkjihgf Help.
м M ATLAB. В к ач ест и к о м а н ды , дл я к о т
и ил
-
:
и л и и м я Toolbox: doc toolbox\ pde • h elp — в ы в о
д р а з де л о
в в с рт о е н н о
• h elp e l fun — с о едр ж и м о э л е м н ат р н ы х м а ет и ч е с к и В ет к с т е н аз ван и м и , н о п р и р а б о т б ку в а м и . • h elp floor —о п и с а н и
й с п р ав к е р а з дел х нфу к ц и я х
я фн у к ц и е н ад
й и ком ан о н аби рат е фн у к ц и
и в к о м а н дн о
а eifun с и н фо р м а ц и е . д п р и в едн ь к ом ан д и floor.
о з а гл а в н ы м ы и нф у к ц и
е о к н
о й о в срт о ен н ы
х и бк у в а
и с тр о ч н ы м
и
964
zyxwvutsrq
р П е ин л о я ж
• h elp / — и н фо р м а ц и
и о б о п е р а то р а
• h elp syn tax — с п р а в к • heipwin — з ап су окн е Help.
а о си н атк си
к к р а тк о
к М - фа й л о в о ед р ж и т з адн н ы й тек с т lookfor integral е п р
• ve r — в ы в о етл ь н ы х п а к е то в • version — в ы в о
ю в ер с и
е о к н
е с ре од
п р а У в л е ни и п ои ск
ы п о р а з де л а
м MATLAB в
й MATLAB, Toolbox и до п о л н и ю в ер с и ю . о в ерси
-
и M ATLAB.
о Help и н фо р м а ц и и о н о в ш есвт ах , о лти ч аю щ и х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
й MATLAB
• addpath — до б а в л е н и
пт у
й zyxwvutsrqponmlkjihg M ATLAB.
я в пя т у х п ои ск а MATLAB о вzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO р.азд "Утваскон путйе" ав ыг л 5).
е окн о в ер с и в усатн о в лен н у
д в окн ю о т п р еыд щу ей
.
х п ер в а я с тр о к а к о м е н ат р и е в :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
, н оаяхдщ и ес а н а п и с а н
д в к о м а н дн о
• whatsnew — в ы в о
ад н н у
, в к о т р ы
д в к о м а н дн о , вояхдщ и х
д и фну к ц и
й с и ем т
, н а п р и м ер
я фа й л ы и п ои ск
о пт у
х си м в о лах
е к о м а н
й сп рав о ч н о
• lo o kfo r— п о и с
П р о с м а тр и в а ю тс (п о рд б н е
х и сп ец и аль н ы
е к атлог о в р.азд
а н а п и с а н
а в пт у
и п ои ск
"Утваскон
а MATLAB (п о рд б н е ав ыг л 5). При м е р ы
путйе"
е п р
о
:
ќ addpath c:\user\igor\mywork ќ addpath c:\user\igor\myworkl c:\user\igor\mywork2 ќ addpath('с:\user\igor\myworkl' , 'c:\user\igor\mywork21) ќ addpath c:\user\igor\myworkl c:\user\igor\mywork2 - end — ОД
инелваб
е в коне
ц аксип
-
;
ќ addpath c:\user\igor\myworkl c:\user\igor\mywork2 - begin - — ОД -
б ав л ен и • c ic — о ч и с кт
е в н а ч л а с о едр ж и м о г
о сп и ск а
О echo — пу р а в л ен и
м а н дн о
е о т б р аж ен и е
м о к н е
о о к н а м с рт о
.
к в ы п о лн яем о г
о М - фа й л
а в к о
-
.
• echo on — в ы в о
д с тр о к
.
• echo off — п о адв л ен и
е в ы в о д
• format — о п р едл н и
"Фаты м р о
. о к о м а н дн о г
а дв оы
е фо р м а т рьта зуел
• format sh o rt — фо р м а ед с я и т ч н о й то ч к и .
а с рт о к а в ы в о д виней"лисч ы
т с п л а в ю щ е
. а ч и се авыг л й то ч к о
л в к о м а н дн о е о к н о (с.м р.азд 1). zyxwvutsrqponmlkjihgfedcbaZYXW й с 4- м я ц и фр а м
и п о сл
е
р П е ин л о ж
1. сО но веы
ком ыанд
• form at lo n g — ф о р м а с я ти ч н о й то ч к и (дл
и фуцнки
965zyxwvutsrqpo
MATLAB и Toolbox
т с п л а в а ю щ е
й то ч к о
я о ди н а р н о
й т о ч н о с т
й с 14- ю ц и ф р а м и — с 7- ю ) .
и п осл
е де
• form at sh o r t e — э к с п о н е н ц и а л ь н ы рами .
й форм а
т с 5- ю з н а ч а щ и м
и циф
• form at lo n g e — э к с п о н е н ц и а л ь н ы рам и (дл я о д и н а р н о й т о ч н о с т
й форм а и — с 8- ю ) .
т с 15- ю з н а ч а щ и м
и циф
• form at sh o r t g — н а и б о л е мат а и ф о р м а т а с п л а в а ю щ е
е п о д хо д я щ и й то ч к о
й и з эксп он ен ц и аль н ог й с 4- м я ц и ф р а м и
• form at lo n g g — н а и б о л е мат а и форм ат а с п лаваю щ е то ч н о с т и — с 7- ю ) .
е п о д хо д я щ и й то ч к о
й и з эксп он ен ц и аль н ог й с 15- ю ц и ф р а м
• form at hex — ш е с т н а д ц а т е р и ч н ы • form at + — п о л о ж и т е л ь н ы е б р а ж а ю тс я з н акам е тс я .
й форм ат и п лю с
, м и н у
• form at ban k — ф о р м а • form at r a t — ч и с л ц елы х ч и сел .
, о т р и ц а т е л ь н ы с ил
т с д в ум
• form at lo o se — в ы в о • path — у п р а в л е н и
к вы вод
у все
е п ут я м й в к о м а н дн о
х п ут е
• р = p a t h — з а н е с е н и
д п ус т ы и п ои ска е в с т р о к о в у
, т а к ж е
а п ут е й
, д о б а в л е н и
е п ут е
и (дл
я о ди н а р н о
я част
е чи сл ь и гн о р и р у
к м еж д
х с тр о
к м еж д
у с тр о к а м в p a t h б е
х и
.zyxwvutsrqponmlk
и р е з ул ь т а т а з а р г ум е н т о
в п р и в о ди
т
. ю п ерем ен н у
ю р п ут е
, п р и н я т ы
х п о ум о л ч а н и ю
й в н ачал
о и к о н е
й п ои ска
. .
ц с п и с к
а п уте
й п ои ска
е В КНОе
ц а КПИС
в и з п ут е
й п ои ска
и н есколь ки
-
у с тр о к а м
• p a t h ( p a t h , ' c :\ u se r \ i go r \ m ywo r k ' ) —д о б а в л е н и о ил
а о то
м дв у
е в н ачал
е о дн о г
-
.
• p a t h ( ' с : \ u se r \ igo r \ m ywo r k' , p a t h ) — д о б а в л е н и
• rmpath — уд а л е н и
-
й
я о тн о ш е н и е
а п ус т ы
. В ы з о е окн о
о фор .
и н ул е в ы
и з н аками
х с тр о
• p a t h ( p a t h d ef) — у с т а н о в к Возможн о
е ил , м н и м а
и п робел
е вы вод
-
о фор
о п р е дс та в л я ю тс
• form at com pact — п о д а в л е н и р е з ул ь т а т а .
-
.
я де с я ти ч н ы м
а п ри бли ж ен н
-
х к а та л о г о
:
о сп и ска
; .
:zyxwvutsrqpo
ќ rmpath c:\user\igor\mywork ќ rmpath c:\user\igor\myworkl c:\user\igor\mywork2 ќ rmpath(с:\user\igor\myworkl , c:\user\igor\mywork2) • pa t ht o o l — з а п ус то р о м п ут е й оп и сан
к ди а л о го в о г о окн а н а в и г а то р а п ут е й (работ а с н ав и га а в рzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB .азд "Утваскон путйе"ав ыг л 5).
966
zyxwvutsrq
р П е ин л о я ж
• l a s t e rr, l a s t wa rn zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED — в о з в р а щ а ю т с тр о к у с п о с л е дн и м со бщ ен и е м о б
ош и бк в о дя
е и л и п р е д уп р е ж д е н и е м т к о ч и с тк е п о с л е дн е г
П miint — а н а л и з а т о
Lin t о п и с а н
. В ы з о в
р код а М - фай л а (работ а с г р а ф и ч е с к о й оболочко й М а в рzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA .азд "Дитагскон М - во"йл фа ав ыг л 5).
• m iin t ('m yprog.m ') — в ы в о д и н е то ч н о с тя х в М - фай л е и с п о с о б а •
й ан али а с м ас и вам
з н есколь ки
т и н фо рм ац и х п овы ш ен и
х фай ло к оп и сан
и яч е
ю о з ам еч ен н ы я е г о п р о и з в о д и т е л ь н о с т и
' m y p r o g 2 . n i 1 ;
m i i n t ({ ' m y p r o g l . m ' ;
ны бот ке"ч я авыг л
ы l a s t e r r ( ' ' ) и l a st wa r n ( ' ' ) п р и я о б ош и бк е и л и п р е д уп р е ж д е н и я .
о со бщ ен и
а з а да ю тс "М ивсаы
х и .
З . m 1 }) —
'тур го д
в (и м е н а в р.азд
х ош и бка
я в м ас и в уткрс
ОДН ОВ ремен
-
е яч е к и ивсы ма
, р а
-
8).
• in fo = m i i n t ( ' m yp r o g. m 1 ) — з а п и с ь и н форм ац и и о к а ж до м обн ару ж ен н о м з ам ечан и и в м ас и в с т р ук т у р с п олям и : l i n e , column (дл я ук а з ан и я с тр о к и с з ам еч ан и е м и п ози ц и и в с тр о к е ) и m essage — т е к с т за "М ивсаы м еч ан и я (работ а с м ас и вам и с р ук т у р оп и сан а в .аздр уткрс и маивсы ке ч я " гавы л 8).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML П pro f i l e — у п р а в л е н и оп и сан ы в р.азд "П"ре айл фор
К оман д д ы дл
е п рофай леро
м (о с н о в 15).
ав ыг л
а p r o f i l e on п р и в о д и я с та р т а п рофай лера
ы работ
ы с п рофай леро
м
т к з а п ус к у п рофай лера . О б щ и й ви д ком ан :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
profile on - detail level - history З н ач ен и я l e ve l : mmex (с б о р с та ти с ти к и врем ен н ы х з а тр а т н а вы п олн ен и е М - и М Е Х- ф а й л о в ) , b u i i t i n (т о ж е , ч т о mmex, д о п о л н и т е л ь н о н а хо д я т с я врем ен н ы е з а тр а т ы н а вы п олн ен и е в с тр о е н н ы х ф ун к ц и й ) , o p e r a t o r (а н а л о г и ч н о b u i i t i n , н о с уч е то м врем ен и н а а р и ф м е ти ч е с к и е и д р уг и е в с тр о е н н ы е оп ерац и и ) . Опц и ф ун к ц и й
я - h i s t o r y с л уж и .
т дл
я з ап оми н ан и
я п о с л е до в а те л ь н о с т
• p r o f i l e r e p o r t — о с т а н о в к а п рофай лера H T M L и о т о б р а ж е н и е е г о в б р а уз е р е
, г е н е р а ц и а п рофай лера х с ни
• p r o f i l e p l o t — о с т а н о в к грам м ы врем ен н ы х з а тр а т
а и п о с тр о е н и
• p r o f i l e resum e — в о з о б н о в л е н и
а п рофай лер . е сбор
я о тч е т
а
а в форм ат
е
.
• p r o f i l e r e p o r t m yr ep o r t — о с т а н о в к в m yreport.h tm l и н е с к о л ь к и х связ ан н ы о тч е т а в б р а уз е р е .
• p r o f i l e off — п р е к р а щ е н и
и вы зов
а и н форм ац и и е п роц ес
, г е н е р а ц и х и о то б р а ж е н и
м фай ла
я о тч е т
е с то л б ц е в о
й ди а
. а сбор
а и н форм ац и и
а е
.
-
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
967zyxwvutsrqpon
MATLAB и Toolbox
• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA p r o fi le c l e a r — ну и ч от ж ен и е н ак о п лен н о й п р о фа й л ер о м и н фо р м ац и . • p r o file st a t u s — о тбр аж ен и • prof report — о с ат н о в к
и о от б р а ж ен и
е ср кут а п р о фа й л ер а
, ген ер ац и
е ег о в б р азу ер
• type — в ы в о
д с о едр ж и м о г type filename
• what — в ы в о
m, mat, т е х
д с о ед р ж и м о г ) в к о м а н дн о
я о чт е
а п р о фа й л ер а х с н и
о тек с от в г е сеан с
и п р о фа й л ер а
.zyxwvutsrqpon
а в фо р м а т
е HTM L
.
prof repo rt ( m yrep o rt ) — о с ат н о в к myreport.html и н еск о ль к и х св яз ан н ы т а в б р азу ер .
• quit — о к н ч а н и
ы с усатн о в к ам
-
, ген ер ац и х и о от б р а ж ен и
м фай ла
о фа й л
я о чт е
а в е оч т е
а в к о м а н дн о
е о к н
а (фай ло
в с р а с ш и р ен и ям
-
о
а M ATLAB. о е тк щ у е г е о к н о
• what dirname —в ы в о ш и р ен и ям и m, mat, т е х
о к атлог
и
.
д с о ед р ж и м о г ) в к о м а н дн о
о к атлог е о к н о
а dirname (фай л о
в с р а с
-
.
• w = what ('dirn am e 1 ) — з ап и с ь и н фо р м а ц и и о к а т л о г е dirname и ег о с о ед р ж и м о м в р кс у т у w (р а б о т а с о с ртк у а м и о п и сан а в .аздр "Петысор су"ткры авыг л 8).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML д пт у О which — в ы в о >> which fzero
и к фну к ц и
, нап р и м е
р
С :\ M AT L AB 7\ t o o lb o x\ m a t la b \ fu n fu n \ fz e r o . m
• which funname - a l l — о т б р а ж ен и е пет у й к о все м фн у к ц и я м с и м ен м funname.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ќ w = which (f funname ќ) — занесени ЦИ К Н У Ф И С и м ен м funname.
е ву в о к о ртс
ю у н е м ереп
ю w пут
f
и к
• w = which (' funname , ' - a l l ' ) — з ан ес н и е в м ас и в яч е к w пет у й к н фу к ц и я м с и м ен м funname (с.м р.азд "М ивсаы уткрс и маивсы ке"ч я авыг л 8).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е пе р м е мны
п р а Ув л е н и • c lear — алдену и
ин е л
пх,ыне мер
и е п ер м ен н ы вр о б ы
• c lea r A m R — адлуен и • c lea r global — адлеун и
ине м
х р а б о ч е пх"ыне мер авыг л
й с р ед
е п ер м ен н ы е все
ы (с.м р.азд 1).
х A, m и R И З р а б о ч е х гл о б а л ь н ы
х п ер м ен н ы х
"Птро мсор
и уа- д й с р еыд .
.
968
zyxwvutsr
р П е ин л о я ж
• c lea r fun ction s — адлеун и • c lea r те х — адлеун и
е в се е с ы ло
х о тк о м п и л и р о в а н н ы
х М - н фу к ц и й
к н а М Е -Х фай л
.
ы и М - нфу к ц и
.
• c lea r a l l — адлеун и е п ер м н ы х и с ы ло к н а М Е -Х ф а й л ы и М нф у к ц и .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA П d i s p — в ы в о (с.м р.азд "Пквраео
д ет к с
а ил
и з н а ч ен и автне"о грум авыг л
вх ын дхо
• l e n gt h — н оахж едн и (с.м р.азд "В,дво
е
лд и н и витчанеы
ине сж о л
• load — с ч и ыт в а н и ине тваслон ав ыг л 2).
е з н а ч ен и
ы в е к от р - с рт о к
и в"окерт авыг л
"ы де рс
х с ди с к 1 и "Свитанчые
ав ыг л
• muniock — р а з р еш ен и м ен т М - фай л а к о м а н до к р е д а к то р
а М - фа й л о е п ер м ен н о ав ыг л
П saveas — сорхан ен и лен н о г о фо р м а т
й п ер м н ы с"ы де р
о
гавы л
е гр а фи ч е с к о г
и в е к от р - с от л б ц 2). р.азд
а
"Синахеро
и
и запьис
в с о с п ец и а л ь н ы е з н ач ен и й А (с.м
дх"аын о в ад н н ы
й
о в да н н ы м окн ом
-
, п о з в о
й п ер м ен н ы х р.азд
й мо
-
. "Ограинзц я
в- о ы
2).
D pack — с о з да н и е в и р а ут л ь н о й п а м ят и н а ди ск ру ю з а н о с ят я з н ач ен и я все х и м ею щ ис х я п ер м ен н ы ,х с р еы д . З н ач ен и я и с п о л ь з е му ы х п ер м ен ы pack.tmp. И сп оль зсету я п р и о б р а б о кт е бо ль ш о г "Эия мкон ти" я пам авыг л 23). ь з н а ч ен и
ил
х р а б о та ю щ е г
е р е да к ти р о в а н и
й ре ч оаб
е окн
х р а б о та ю щ е г
е а д л е ну и я п ер м н ы й c lear.
openvar А — р е да к ти р о в а н и а д тхкветыос рьтав"озуел
П save — з а п и с ине тваслон вы 2).
а (с.м
е а лд е н у и я п ер м н ы й clear.
а к о м а н до
• o p en var— з ап су л яю щ и м и н те р а к ти в н о
й в к о м а н дн о 7).
й п ер м н ы
рйе ч оаб
• miock — п р едо вт р а щ ен и м о ен т М - фа й л
я п ер м ен н о
х н а ди с 1 и "Свитанчые о окн
е в фа й л х с ч и ыт в а ю ст о о б ъ ем к (с.м
е pack.tmp, в к о т и о ч и с тк а рабоч е я и з фа й л а ад н н ы х (с.м р.азд
р.азд
"Синахеро и запьис
а с указ етл
а
и в-со га- л
дх"аын
м h в фай л
й
е о п р ед
-
.
• saveas (h, ' filenam e. a i ') — фо р м а
т Adobe Illustrator.zyxwvutsrqponmlkjihg
ќ saveas(h,'filename.bmp') ќ saveas(h,'filename.emf') ќ saveas(h,'filename.eps') ќ saveas (h, ' filename, fig ' ) —го к с е ч и ф а р ќ saveas(h,'filename.jpg')
е НКО
О MATLAB.
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
969 zyxwvutsrqpon
MATLAB и Toolbox
1
• s a ve a s ( h , ' f i l e n a m e . m ) — М - ф а Й
Л M AT L AB .
1
•
sa ve a s( h , ' file n a m e . p c x )
•
sa ve a s( h , ' file n a m e . t if' )
• s i z e — о п р едл н и ине же и витчанеы П who — в ы в о
е р аз м ер о в"окерт авыг л д и м е
н все
• whos — п о члуен и "Птро мс о р и уине ал д
в м ас и в
а (см .
х о п р е дл н н ы
х в р а б о ч е
е и н фо р м а ц и
и о п ер м ен н ы вр о б ы
х п,ыне ме р
й с р ед
е файла м
• cd — суатн о в к
а е тк щ у е г
е п ер м ен н ы х
х рабоч е ине м
• workspace — в ы з о в б р азу е р а рабоч е й с р ед с р ед ы я в л се т я п р и л о ж ен и е м с гр а фи ч е с к и з в о л яе т п р о с м а тр и в а т ь и и з м ен ят ь з н ач ен и
М а и н пл у р о в а и н
р.азд "В,дво - о лс , zyxwvutsrqponmlkjihgfedcbaZY
, н а п р и м е р
2). й с р ед
ы (с.м р.азд 7).
х п"ыне ме р ав ыг л ы MATLAB. Бр азу е м и н ет р ф й с о м я п ер м ен н ы х р а б о ч е
и и кат л ога м
о к а т л о га
.
р рабоч е , к о т р о
е по й с р е ыд
й .zyxwvutsrqpo
и
, н а п р и м е р
:
• cd c:\ user\ igor\ myworkl • cd — в ы в о
д текщу ег
• cd . . — п еро х
о к атлог д н а оид
• copyf i i e — к о п и р о в а н и
а в к о м а н дн о н уро в ен
ь в ер х
е фа й л а
е фа й л
.
.
.
• co pyfile( 'с:\ m ywo rkl\ t est .m
п и рован и
е о к н о
1
,
' c : \ m a t l a b \ w o r k \ m y p l o t . m ' ) — К О
-
а c:\ myworkl\ test.m в c:\ matlab\ work\ myplot.m.zyxwvutsrqponmlkj
ќ copyfile('с:\myworkl\test.m f, 'с:\matlab\work\myplot.m' , 'writable')
з ап и с воз м ож н ост
ь фа й л
а c:\ myworkl\ test.m в c:\ matlab\ work\ myplot.m с п р о в е р к о и к о п и р о в а н и я .
—
й
ќ s = copyfile('с:\myworkl\test.m 1, 'c:\matlab\work\myplot.m') —
воз вращ ае п р о ит в н о •
т еи д н и ц у м с чл уа е
, сел
и к оп и рован и
е п рош л
[ s , m e s ] = c o p y f i l e ( ' с : \ m y w o r k l \ t e s t . m ' , ' c : \ m a t l a b \ w o r k \ m y p l o t . m ' ) —д о п о л н и т е л ь н
с о б щ ен и е н ия
о с уп е ш н о
, и н о л
ь в
.
м о б ош и бке
, есл
и та к о в а
я воз н и кл
о з а н о с и
т В m es С ТОрК
а в п р о ц ес
е коп и рова
у С
-
.
• d e le t e — адлуен и тиксчао ке овт"оъ б ав ыг л
е фа й л о
в и гр афи ч ес к и 9).
• d e le t e c:\ m yworkl\ test.m — адлеун и
х о б ъ е к то е фа й л
в (с.м
р.азд
"Уине ал д
а c:\ myworkl\ test.m.
и
970
zyxwvutsrqpo
р П е ин л о я ж
• d e i e t e ( ' с : \ m y wo r k i \ t e s t . m ' ) — уд а л е н и та к у ю форм у вы зов а d e l e t e у д о б н о и с п о л ь з о в а ть хр а н и т с я в с тр о к о в о й п е р е м е н н о й . • d e l e t e (h) — уд а л е н и • d i a r y — в е д е н и ин е и вине тваслон • d i r — в ы в о
е гр афи ч еск о г
е дн е в н и к
о объект
а сеан с "ы де рс
ав ыг л
о т е к ущ е г
• d i r d irn am e — в ы в о
а с у к а з а т е л е
о к а та л о г а
д с о де р ж и м о г
а c:\ m yworkl\ test.m , , к о г д а и м я фай л а
.
о к а та л о г
а dirn am e.
1
• DIRMAS = d i r ( 'd irm am e ) — з а п и с ь с о де р ж и м о г м ас и в с т р ук т у р D IRM AS. К а ж д а я с т р ук т ур а име им я фай л а и л и п о дк а та л о г а , d a t e — д а т а и з м ен ен и я фла г i s d i r — п р и н и м а е т з н ач ен и е е ди н и ц а дл дл я ф а й л а (работ а с м ас и вам и с т р ук т у р оп и сан уткрс и маивсы ке"ч я ав ыг л 8). • e d i t — з а п ус
к р е да к то р
а М - фай ло в
, в к о т о р о
• e d i t file n a m e — о т к р ы т и т п ут
, и м
[ p a t h , n am e, e x t ] = f i i e p a r t s ( ' и м
я фай ла'
е п олн ог , р ез луь ат
fn = f u l l f i l e ( ' с : ' , • inmem — о т о б р а ж а е •
MMAS = i n m e m — з а н е с е н и
ф ун к ц и й • име
я н овы в ф а й л
о и м ен
и фа й л я в с рт о к о в у
а filenam e.m . , и с п о л ь з о
а и з и е р а их
-
и п о кд а
,
ю п ер м ен н ю у ' m yfu n . m ' )
и M AT L AB, з а г р у ж е н н ы в ячее
.
)
т з а н о с и ст
е в масси
й ф а й л
я и расш и рен и е
' u s e r 1 , ' i g o r ' , ' w o r k 1 ,
т ф ун к ц и
а d irn am e в е п оля : name — , b yt e s — р а з м е р , я п о дк а та л о г а и н ол ь "М ивсаы а в .аздр
е М - фай ло
ь к фай лу
• f u l i f i i e — к о н с тр иу р о в а н и та л о г в и и м ен и фа й л а и сп о ль з о в ан и е :
о к а та л о г т ч е ты р
м с о з да е тс
е в р е д а к т о р
• f i i e p a r t s — в о з в р а щ а е ван и е :
м h.
ы в M AT L ABzyxwvutsrqponmlkjihgfedcbaZYX (с.м р.азд "Сах-ро 1).
а работ
йе ч о аб р д с о де р ж и м о г
е фай л
е в п а м я ть к MMAS и м е
.
н з а г р уж е н н ы
х М
-
.
[MMAS, MXMAS] = in m em — з а н е с е н и н з а г р уж е н н ы х М - и М Е Х - ф у н к ц и й
• m a t i a b r o o t — и м
я к а т а л о г а
• m kdir — с о з д а н и
е п о дк а та л о г а
• m kdir (' work2 ') — с о з д а н и
, в к о т о р ы , п р и м е р ы е п о дк а та л о г
• m kdir ( ' wo r k 1 , ! w o r k 2 ' ) — с о з д а н и в ую щ е м н а д и с к е к а т а л о г е wo rk;
е в м ас и в . й у с т а н о в л е н
ы яч е
к MMAS И MXMAS
а M AT L AB.
: а wo rk2 в т е к ущ е е п о дк а та л о г
м к а та л о г е а wo rk2 в с ущ е с т
; -
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
f • [ st a t , msg] = mkdir ( work2') — с о з адн и ие д н и ц е в с ч л уа е с уп е ш н о г о в ы п о л н ен и к атло г щ с т уе в , и нл у ю п р и н евоз м ож н ост 1
•
е о б о ш и б к
е в счлуа
О open — о кт р ы ит з ав и си т о т р а с ш и р ен и я
е фа й л
а ил .
• о р еп ( 'А 1) — з ап су н и й м ас и в а А . ВОЗМ НЖ
к р е д а к то р
а М - фа й л о О р е да к ти р о в а н и
т воз м ож н ост
и р ас ш и р ен и ям и ы с р а с ш и р ен и ям е и м ен
s = pwd — з а п и с
ь в срт о к в у
• tempdir — о т б р а ж ен и в р ем н н ы х фа й л о в
И сп о ль з о в ан и п р и м ен ен и (с.м р иА ф м е и т ч е с к и
а my.fig.
е в н е м з н а ч е .
в и о кт р ы ит
-
е в не м е Simulink.
б о тк р ы ти
я фа й л о . Н а п р и м е р и openmyi.
в с ,
. ю s и м ен
и к а т л о га
и текщу ег
о к а т л о га
, п р едн а з н а ч ен н о г
ь в срт о к в у я в р ем н н ы
ю п ер м н у х фа й л о в
о дл
. я р ха н е н и
я
е к о м а н д д р а з де л о
ь в с рт о к в у
ю и м ен й си семт ы
и етк щ у е г
о вре
-
:
ы
х о п ер ац и й ы о ед тл ь н ы и п ри в едн
.
, н а п р и м е р
е сим лов
е о п ер а ц и
-
ы Windows.zyxwvutsrqponmlkjihgfedcbaZ
й си емст
х и л о ги ч е с к и , п о св ящ ен
, п р енд а
о фа й л а
ю п ер м н у
в сп рав о ч н о
и к а т л о га
о в р ем н н о г
ы о п ер а ц и о н н о
ю а р и ф м е ит ч е с к и ю и х к м ас и в ам 7, 2 и 7). е и м арт и ч н ы
ю и м ен .
и текщу ег
ы и спеиацылнь гавы л
о о к н
ь сп ос ю фа й л - нфу к ц и ю я фн у к ц и
ю п ер м н у
е и м ен
s = tempname — з ап и с м ен н о г о фа й л а .
Оп е р а т о
й э л ем н от в
о к а т л о га
е и м ен
• tempname — о т б р а ж ен и
! h elp — в ы в о
в и о от б р а ж ен и е з н ач ен и
я
.
s = tempdir — з ап и с з н ач ен н о г о дл я хран ен и
• ! — в ы п о л н ен и
и текщу ег
.zyxwvutsrqponm
б о тк р ы ти
и mymod.mdl в сред
ь о п р е дл и т , с о з ад в п о яхдщ у и т у 1 требюу т н али ч и
т CO-
я к а т л о га , сп о с
а М - фа й л о е м о елд
;
а m sg с о д е р ж и
и со з адн и
е гр а фи ч ес к о г
н -
я п о дк а т л о г а
о п ер м ен н о й
• open ('mymod.mdi') — о кт р ы ит
П pwd — о т б р а ж ен и
и соз адн и й п о п ы кт
к р е д а к то р
, st a t р а в е , сле и п од
, дв о й к е
f
и с о ед р ж и м о г
• open('myfun.m f) — з ап с у myfun.m.
ь и ме
е п о дк а т л о г а я нф у к ц и
w o r k 2 ) — с т р о к
е н адчеун о
• open ('my. fig' ) — о тк р ы ти
П о л ь з о в а те л рд г и у м фа й л
!
[ s t a t , m sg] = m k d i r ( ' w o r k ,
о б щ ен и
971 zyxwvutsrqpo
MATLAB и Toolbox
ы в та б л
, в от м ч и сл е и е р а з де л ы кн и г и . Ш
.
972
1П . кстеи ч ме ифрА zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG и мае ынитчр а ц п ир е о zyxwvuts
а ц и а лб Т
Н е и н а чз е я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
и ц а ер О п
Ун а р н ы м ас и вов и з о п е р а н до
+ ,-
•
П ер м н о ж ен и О ди
*•
к го
п
е п лю . М а с и в
с и м и н су ы до л ж н в м оже т бы т
е
Д ел н и Е сл
Л.
ь ск аляр о
и об
В о з в едн и м а тр и ц
в ил т бы т
ил
е и в ы ч и та н и ь о ди н а к о в ы м
ы бы т
в м оже
К ро н ек еро в ск о
/
, с л о ж ен и
е ск аляр о н и з о п е р а н до
С = k r o n ( A ,
и
и м а тр и ь ск аляр о
е дл я с к а л я р о х раз м еров
ц п о дх я щ и м
те н з о р н о
е
п р о и з в ед н и
е
Л
е ск аляр о в а о п ер ан д
. П о э л е м е н тн о а — м а тр и ц ы
. В ы ч и с л ен и
е с ет п е н
и к в а др а тн о
е со п р яж ен н о
е о п ер ац и у и с к ал яр у .аздр
е м а тр и ц ы
м счлау и н ея а ж р в ы
й м а тр и а раз м ер
а
т ре я п ер "Зиач д
-
я э ле , с = А .
, Л
В
ы . Д л
м р е з ул ь т а
и и опе ра т о
и п р и м ен и м , в п о сленд е "Лкгсеиоч
й м а тр и ц
т к о ди н а к о в ы
е опе ра иц а (с.м
й
е м ас и во в о ди н а к о в ы х раз м еро в т к с ( i , j) = B ( i , j ) / A( i , j)
е в о з в едн и е м а тр и ц ы в с те п е н и , я в л я ю щ и е с й м а тр и ц ы е тх ж е р а з м е р о в , н а п р и м е р и д р уг о A т к С ( i , j) - A( i , j ) B ( i , j)
Тран сп он и рован и п р и в о дя
Ло г и ч е с к и м ас и в
.
е м ас и во в о ди н а к о в ы х раз м еров , н а п р и Т К С ( i , j) = A( i, j ) / B ( i , j)
е лев о е де л н и , с = А . \ В п р и в о ди
Н а ох ж д е н и
Л о г и че с и к
ц
е м ас и во в о ди н а к о в ы х раз м еров , н а т к С ( i , j) = A ( i , j ) *B ( i , j)
е де л н и , с = А . /В ПОДИ В И Р
П о э л е м е н тн о м е н та м п р и в о ди
i
м а тр и
е де л н и е м а тр и ц ы н а ск аляр , т о А/ В = A*in v(B)
а в с те п е н ь
е му н о ж е н и , с = А . *В п р и в о ди
П о э л е м е н тн о н ап ри м ер
i
.
В )
е ск аляр
П о э л е м е н тн о м ер
/
в и н
ы
П о э л е м е н тн о п ри м ер .
. О ид
х раз м еро в
Ле в о е м а тр и ч н о е де л н и е . Е с л и А яв л яест я к в а др а тн о ц ей , т о А\ В = in v (А ) *в . Е с л и А — к в а др а тн а я м а тр и ц п , в — в е к то р - с то л б е ц и з п э л е м е н то в , т о х = А\ В с о де р ж и ш ен и е с и с ет м ы ли н ей н ы х ру а в н е н и й А Х = в . Д о п ус к а ю тс о п р едлен н ы е и н е до п р е д л е н н ы е с и с ет м ы (с.м р.азд й и еон л ы р г б е а л " гав ы л 6)
\
си в
zyxwvutsr
р П е ин л о я ж
я в е щ е с тв е н н ы х м а тр и ц ' и . ' м zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
ы
ы к м ас и в а е ск аля с маи всам
м о ди н а к о в ы р р а с ш и р яест
х р аз м ер о я д о р а з м е р о и чи"ам лис
ав ыг л
в и л и к в м ас 7).
р П е ин л о ж
1. сО но веы
О п е р а то р
ком ыанд
ы о нт о ш е н и
и ц функи
я п р есдатв лен
. П 2 .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
ы в та б л
П2. Оыартпое
и ц Та л б о а т О е пр
р
Н еи н а ч з
Бо л ь ш е
>=
Бо л ь ш
= b
: а > [names, age, dat, code] = textread %s' ) names = ќSam1 'Nike1 age = 23 24 . dat = 83.2780 102.2200 code = 'p231' 1 kl8N' С п е ц и ф и к а то фа й л а з ан ес н и м ас и в а
р фо р м ат . В э то м с лчуа е с лю е у д щ и .
а м ож е т п р е д в а р я ть с я с тр о к о й е ку а з а н н а я с тр о к а н е с ч и ты в а е тс я х з а н е й да н н ы х в э л ем н т ы п о дх я щ е г
, о б щ е
й лд я п о л е , а п р о и с ох ди о п о ит п
й т у
994
zyxwvutsrq
р П е ин л о я ж
Н ап р и м ер , п сту ь в фай л е table.dat рхан и ст book part4 pages400 article part2 pages20
я и н фо р м а ц и я
:zyxwvutsrqponmlkjihg
О бщ и е ч аст и п о ле й p a r t и pages, н е п о лдеж ащ и е с ч и ты в а н и ю , куаз ы ва ю ст я п ер д с о вт ес юу щ и м и с п е ц и ф и к а от р а м и : >> [kind, s, p] = textread('printed.dat', '%s part%d pages%d') kind = 'book1 'article' s = 4 2
-
P = 400 20 Ф ну к ц и я t e xt r e a d п о з в о л яе т ку а з ы в а т ь п а р м е тр ы , уп р а в л яю щ и е ч ент и е м и з фа й л а . Н а з в а н и я п а р м е тр о в и и х з н ач ен и я з а д ю ст я п ар м и в к о н ц е сп и ск а вохнд ы х а р г м у е н от в : [...] = t e x t r e a d ( . . . , paraml, va lu e l, param2, value2, . . . ) В оз м ожн
о ку а з а н и
е сю луед щ и
х п а р м е тр о в
-
:
1
• 'wh it espace — в е к то р и з си м вол в , к о т р ы е с ч и ат ю ст я р аз м еч аю щ и ми . Д о п суит м ы з н ач ен и я \ ь (backspace), \ f (form feed), \ n (н о в а с тр о к а ) , \ г (си м в о л воз врат а к а р е тк и ) , \ t (таблуяц и я) , \ \ (о б р а тн а 1 к оса я ч е р та ) , W ' и л и V ' (а п о с рт о ф) , %% (з н а к п р о ц е н та ) . П о муо лч а н и ю усатн о в л е н в е к то р ' [\ ь \ r \ n \ t ] ' ; • ' d e li m i t e r ' — с и м в о л ы му о л ч а н и ю н е усатн о в л ен ы )
, и сп о ль зюу щ и ес
я в к а ч е с вт
я -
е р а з де л и е т л
я (п о
;
• 'exp ch ars' — с и м в о л ы ч и с ел . П о ум о л ч а н и
, п р и м ен яем ы 1 ю 'eEdD ;
• ' b u fsize ' — м ак с и м ал ь н а 4095);
я дл и н
• ' h e a d e r i i n e s ' — ч и сл ч ет н и ;
я
о п р о п с ук а е м ы
е лд а с рт о к
я э к с п о н ен ц и аль н о и в б а й ат
х с рт о
к о т н ач л
й з ап и с
и
х (п о му о л ч а н и а фа й л
• 'com m en tstyie' — з а д н и е си м вол в , о п р едляю щ и х п р о п с ук ч ет н и . В о з м о ж н ы з н ач ен и я : 'm at lab' (и гн о р и рюу ст я си м вол я си м вол ы п о сл е # ), ' с ' (и гн о р и рюу ст сл е %), ' s h e l l ' (и гн о р и рюу ст си м вол ы м же д у / * и */ ) , 'с + + ' (и гн о р и рюу ст я си м вол ы п осл
ю а пр и пр ы п о-
и
я
и
е / / ) .
р П е ин л о ж
1. Ос но веы
Ф иц у н к
и дл
Р абот
ком ыанд
и фуцнки
я ратоб
а с м ас и в ам
ы с м а с ива м
и яч е
П c e i l — со з адн и
и яеч
к
zyxwvutsrqponmlkjihgfedcbaZYXW
р.азд "М ивсаы ке"ч я гавы л 8. а вzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
к о п и с ан
е п соутг
995zyxwvutsrqpo
MATLAB и Toolbox
о м ас и в
а чя е
с = c e ll (п ) — яч ей к и м ас и в си в ам и . В о з м о ж н о ат к ж е с о з ад н и си во в п рои з воль н о й р а з м е р н о с ти п р и м ер : >> A = on es(2, 6) ;
к з а д н н о г
о р аз м ер а
.
а с р аз м ер а п н а п яв ляю ст я п с ы ту м и м ас е п р ям огу л ь н ы х м ас и в о в яч е к и м ас : c e ll (m, n ) , c e ll (m, n, p, . . . ) , н а -
>> С = c e l l ( s i z e ( A ) ) С = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [ ]
[ ]
[ 3
[ ]
[ ]
[ I
[ ]
• [ ]
[ ]
[ ]
[ ]
[ ]
• c eiifu n — п р и м ен ен и
е фн у к ц и
и к соедр ж и м о
у м ас и в
• а = ceiifu n ( fu n , с ) —в ы з о в о нд о о т к а ж од й яч ей к и м ас и в а с и з ап и с п ри ч е м size (A) = size (С ) . Вонхд о О ' i s r e a l ' — сел и с о едр ж и м о сел , т о в со втес юу щ и в п р о ит в н о м с чл уа е ; О
юв у щ и
й и з н и ж еп р еч и с л ен ы ь р е з л у ь ат а в ч и слов й а р мг у е н т fun м о ж е
е яч ей к
и со ти т А з ан о с и ст
й э л ем н
!
isempty' — лсе и яч ей к й э лем н т А з ан оси т
а яв с л е т
я ы пс т у , и н о л
1
О ' ndims • — ч и сл вю у щ и е э л ем н т
м ас и в т з н ач ен и о р а з м е р н о с ет ы А ;
я дли
ь — в п р оит в н о
я л о ги ч ес к и я е ид н и ц а
м м ас и в о м , и н о л
а А , со втес юу щ и н яч е к ; й яч е к
. х н фу к ц и й м ас и т б ы ть :
т и з в е щ е св т н н ы я е ид н и ц а м м ас и в о м
я еид н и ц а
О ' i si o gi c a l ' — сле и яч ей к а яв ляест о вт е с ю у щ и й э л ем н т А з ан о с и ст н о м с лч у а е ; О ' le n gt h — э лем н ыт и з с , п р и н и м а ю
а яч е к
, и н о л , т о в со вте м чс л а у е
1
х чи ь — ;
, т о в со ь — в п р о ит в е к а ж од
, в с п о м ещ аю ст
й в А ,
й яч ей к я в с о в т ес
е -
О 'p ro d o fsize — з н ач ен и я э л е м н от в м ас и в а А р а в н ы к о л и ч е с вт у э л е м н от в в яч ей к а х м ас и в а с . П ри м е р и с п о л ь з о в а н и я ceiifu n :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO >> С = {ones(3, 5, 2) 'fsfhsfhќ;... 1 rand (10) strvcatCalsd , 'hhh')>
С = 1
[ 3x5x2 double]
'fsfhsfh
[10x10 double]
[2x4 char]
996
zyxwvutsrq
р П е ин л о я ж »zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA А = c e l l f u n ( ' p r o d o f s i z e ' , С ) А = 3 0
7
1 0 0
8
1 е А в о з в р а щ а ю тс я р аз м ер ы со • А = cellfu n с si z e , с , к ) — в м ас и в де р ж и м о г о яч е к в од л ь k- о й р а з м е р н о с ти , н а п р и м е р , дл я оп релдн н о г о в ы ш е м ас и в а яче к с :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
>> А = cellfun('size1, С , 2) А = 5
7
10
4
• А = c e l l f u n ( ' i s c l a s s ' ,
м ас и в о б ъ е к от рован н ог л ясе т
е А с о втес юу м к лас о вы ш я та к :
С ,
c l a s s n a m e ) — л о г и ч е с к и
т ет м яч ей к ам а classname, Н а п р и м е р е м ас и в а с н а п р и н а лд е ж н о с т
, с о едр ж и м о , п р о в е р к
е еди н и ц
е котры а яч е ь к лас
ы В
х я в л се т
я
к и н и ц и али з и у char щосу вет
-
>> А = cellfun('isclass', С , 'char') А = 0
1
0
1
н о дВ х
й м а р е у гн т classname може т такж 1 ' sp a r se , ' s t r u c t ' , ' c e l l ' и л и яв льт с г о п о л ь з о в а те л м .
е п ри н и м ат я и м ен
ь з н ачен и м к лас
я 'double', , о п р едл н н о -
c e i i s t r — п р е о б р а з о в а н и е м ас и в а си м вол в в м ас и в яч е к (р а б о т а с • zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA м ас и в ам и с и м в о л в о п и сан а в р.азд "М ивсаы ско"тр гавы л 8).
с = c e i i s t r (strmas) — яч ей к си м вол в strm as, п р и м ер : ааа >> strmas = ['а'
и м ас и в
а с о б р а з ю у ст
я и з с рт о
к м ас и в
а
; 'bbbbbb'; 'cccccc'];
>> С = ceiistr(strmas) 'аа
'
'bbbbbb' 'cccccc'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
П c e i i 2 s t ruc t — п р е о б р а з о в а н и с м ас и в ам и с рк т у ке" гавы л 8).
р о п и сан
е м ас и в а в р.азд
а яч е "М ивсаы
к в м ас и суткр
в с р кт у
р (р а б о т и маивсы
а я-е ч
р П е ин л о ж
1. сО но веы
s t r u c t (в д о л ь Н аз ван и же т бы т П ри ме » С
ком ыанд
и фуцнки
997zyxwvutsrqpon
M ATLAB и Toolbox
= c e i i 2 s t r u c t ( с , f i e l d s , dim) — с о д е р ж и м о е яч е к м ас и в а с раз м ерн ост и dim) з а п и с ы в а е т с я в п ол я с т р ук т у р м ас и в а st r u c t . я п оле й о п р е де л я ю тс я э л е м е н та м и м ас и в а f i e l d s , к о т о р ы й мо ь ли б о м ас и во м си мволов , л и б о м ас и во м яч е к и з с т р о к .
я c e i l 2 s t r u c t :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
р и сп ольз ован и 1
= {'March 12 '10- 30'; 'April' 26 '17- 45'; 'May' 10 42- 00'};
» fields = {'Month' 'Day' 'Time'}; >> struct = cell2struct(C, fields, 2) struct = 3x1 struct array with fields: Month Day Time >> struct(l) ans = Month: 'March' Day: 12 Time: '10- 30' Н еп р ав и ль н о раз ован и е яч е дл и н о
е ку а з а н и , п р и в о ди к в м ас и й с в од л
в с рк т у ь да н н о
е р а з м е р н о с ти т к н е с о в т ес ю у щ е м р (в счлау й р а з м е р н о с ти )
, в од л е со в п аедн и
ь котро й п р о и с о х ди у п р ео бр аз о в ан и я ч и сл а э л е м н от
т п р ео б ю м ас и в а в в fi e ld s с
:
>> struct = cell2struct(С , fields, 1); >> struct(1) ans = Month: 'March' Day: 'April' Time: 'May' В с ч л уа ид с т
е н ес о в п аедн и я с о б щ ен и
я ч и сл е о б ош и бке
а п о ле :
й в fi e ld s и р а з м е р
а с в до л
ь dim в ы в о
>> fields = {'Month' 'Day'}; » struct = cell2struct(С , fields, 2); ??? Error using ==> cell2struct Number of field names must match number of fields in new structure.
-
998
zyxwvutsr
р П е ин л о я ж
• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA c e iidis p — в ы в о д с о ед р ж и м о г о м ас и в а чяе к в к о м а н дн о е о к н о . • c e i i d i sp (С ) — п о с л еод в аетл ь н ы й вы во д с о де р ж и м о г о к а ж од й яч ей к и м ас и в а с :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> С = {'May1 10 ones(2)}; >> celldisp(C)
May C{2] 10 C {3] 1
1
1
1
• c e i i d i sp (С , name) — п р и в ы в о д е и м я м ас и в а з а м е н я е ст я н а ср т о к у name. • c e i i pi o t — о т б р а ж е н и е с о ед р ж и м о г о м ас и в а яч е к в гр а фи ч е с к о м ок н е zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "Мке"ч яивсаы авыг л 8). И н фо р м а ц и я о с о вт е с и и ц в ет п р и ку а з а н и и в то р о г о д о п о л н и те л ь н о г 1 c e llp lo t ( С , • legend) . • num2ceii — п р е о б р а з о в а н и
а ит п
у с о ед р ж и м о г
о яч ей к о
е ч и с л о в г
о м ас и в
• с = num2ceii(A) — э лем н ыт ед л ь н ы е яч ей к и м ас и в а с , н а п р и м е р
ч и слов г
в о х дн о г
о
а в м ас и о м ас и в
в яч е к а А п о м ещ аю ст
и в ы в о ид с т а р мг у е н а т
я :
. я в от -
:
» А = [1 2 3 4; 5 б 7 8] ; >> С = num2cell(А ) С = [1]
[2]
[3]
[4]
[5]
[б ]
[7]
[8]
Р аз м ер
ы о б р а з юу щ его с
я м ас и в
а яче
• с = num2ceii (A, dim) — ч и сл м ещ а ю ст я в о едтл ь н ы е яч ей к и » С = num2cell(A/ 2 ) ; >> ceiidisp(С ) С {1 }
-
С {2 }
=
1
5
2
6
3
4
7
8
а м ас и в :
к с с о в п а д ю а А в до л
т с р а з м е р а м ь р аз м ер н о ст
и А . и dim п о
-
р П е ин л о ж
1. сО но веы
Ф иц у н к
и дл
Р абот у"ткрсы
ком ыанд
и фуцнки
я ратоб
а с о с р тк у а м и "М ивсаы
ы с о с т рку а м и и м ас и в ам суткр
999 zyxwvutsrqpon
MATLAB и Toolbox
и и с р кт у
и маивсы
zyxwvutsrqponmlkjihgfedcbaZYXWVUTS
.аздр "Петыс о р а в zyxwvutsrqponmlkjihgfedcbaZYX 8.zyxwvutsrqponmlkjihgfedcbaZYXW
р о п и сан ке я"ч ав ыг л
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA deal — к о п и р о в а н и е онд и х п ер м ен н ы х в дргуи е , и л и з ап и с ь с о ед р ж и м о г о о дн о й п ер м ен н о й в н ес к о ль к о . Д а н н а я н фу к ц и я о к а з ы в а е ст я п о л ез н о й дл я о р га н и з а ц и и од сп у т а к п о ля м м ас и в о в с ртк у . Н и ж е п р и в ед н ы в а р и а н т ы вы з ов а deal с п р и м ер а м и .
• [s. fie ld ] = d eai( x) — п р и с в о е н и е з н ач ен и я х п оля м 1 ут р м а с и в а s, н а п р и м е р : [s.name] = deal ( ' B i l l ) . с рт к у р s н е щсу есвту , т о селуд т и сп оль з оват ь .name] = deal('Bill'), д г е n — Л С И Ч О уткуртс [S(I:n) м о м м ас и в е s.
fi e ld сркту Е сл и м ас и о бр ащ ен и е р Ве а в а ДЗОС
в
:zyxwvutsrqp -
• [С {:} ] = deal (s. field ) — к о п и р о в а н и е з н ач ен и й п о ле й fie ld крсут ут р м а с и в а s в м ас и в яч е к с . Е сл и м ас и в яч е к с н е сщ у есвту , т о е с лу д т и сп о ль з о в ат ь о б р ащ ен и е : [ C( l:n) .name] = deal ( s. fie ld ) , дг е n — ч и сл о яче к в с о з адв ем о м м ас и в е с . • [а , ь , с , . . . ] = deal ( s. f i e l d ) — к о п и р о в а н и fie ld сркту р м ас и в а s в оедтль н ы е п ер м ен н ы • fieldnames — п о члуен и
е н аз в ан и
с = fieldnames (S) — м ас и с рк т у р м ас и в а s (р а б о т ке"ч я ав ыг л 8).
в яч е а с м ас и в ам
й п о ле
е з н ач ен и е а , ь , с , ...
й с рт к у ы
к и з с рт о и яч е
й п о ле
й
. к с с о ед р ж и к о п и сан
т и м ен а в р.азд
а п о ле
й
"М ивсаы
Н ап р и м ер : >> S(l).n am e = ' B i l l ' ; >> S ( l) . a ge = 30; >> S(2).name = 'Sm it h '; » S(2).age = 32; > > С = f i e l d n a m e s ( S ) С = 1
n a m e '
1
a ge'
• g e t fie id — п о члуен и
е с о де р ж и м о г
о о п р е дл н н ы
х п о ле
f = ge t fi e i d ( s, ' f i e l d ' ) — в о з в р а щ а е т с о ед р ж и м о fie ld сртку ы s. Вонхд о й а р мг у е н т s одлж е н бы т , дл я сртку м ас и в о м , т . е . size (S) = [l l ] . Н а п р и м е р н о й в ы ш е , се улд т в ы з ы в а т ь ge t fie id в ц и к л е for: S(1).name = ' B i l l ' ; S(1).age = 3 0 ;
й с рт к у ы е п о ле ь с рт к у о й
. й с и м ен е
ы s, о п редл н
м , а н е -
1000
zyxwvuts
р П е ин л о я ж
S ( 2) .n am e = 'Sm i t h • ; S ( 2 ) . a g e = 3 2 ; fo r i = l : 2 fa ge( i) = get field ( S( i) , 'a ge') ; en d fa ge
В к о м а н дн о fage = 30
е о к н
о в ы в о ид с т
я
32
З ап и с ь з н ач ен и й о нд о и м е н н ы х п о ле й е су л д т с о гл а с о в ы в а т ь с ит п о м м ас и в а , в к о т р ы й з а н о с и ст я р е з л у ь ат . Н а п р и м е р , п о п ы тк а в ы п о лн е н и я ц и к л а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA for i = 1:2 f(i) = getfield(S(i), 'name'); end п р и в ед
т к о ш и б к е , п о ск ль к и образ оват ь и з н и х си м в о ль н ы н ес н и и з н а ч ен и й п оле й в м ас и for i = 1:2
у с рт о к й м ас и в яче
и в п о ля х name и м ею в н е а сд е т я у . В ы ох к
т раз н у д со ти
ю лд и н у , т в за -
fname{i} = ge t fi e l d ( S ( i ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED , 'n am e') ; end П rmf i e ld — адлуен и
е п о ле
й с р тк у ы
.
е п ол я с и м ен м fie ld и з сркту р s = rm fieid ( s, ' fi e l d ' ) — адлеун и м ас и в а s, н а п р и м е р , дл я з а п о л н е н н о г о вы ш е м ас и в а s, п о л е name аляд у сет я п р и п о м о щ и о б р а щ е н и я : >> S = rmfield(S, 'name')zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI ь — 1x2 struct array with fields: age structure array S. В оз м ожн о а д л уе н и е ср аз у н ес к о л ь к и х п о л ей од л ж е н бы т ь м ас и в о м си м вол в и л и чя е а д л уя е м ы х п о ле й (р а б о т а с м ас и в ам .аздр "М ивсаы ско"тр гавы л 8, а с м ас и в ам ке" гавы л 8).
: s = rmf ie ld (s, F ), зесд ь F к и з с рт о к и с о ед р ж а т ь и м ен а и си м вол в о п и сан а в и яч е к в р.азд "М ивсаы я-е ч
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1001 zyxwvutsrqpon
MATLAB и Toolbox
s e tf i e i dzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — п р и св о ен и е з н ач ен и я п о л ю срткуы . П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
s = se t fi e i d ( s, ' fi e i d ' , v) — в п о л е с и м ен м fie ld сркту си т я з н ач ен и е п ер м ен н о й v. Вондх ы м а р мг у е н о т м s до л ж н н о с рт к у а , а н е м ас и в , т . е . size(S) - [ 1 1 ] * З а п о л н ен и С тр ук ту
р П И С ДР О Т В З
Я П р
• s truc t — с о з адн и
О бщ и
й в и
д о б р а щ ен и
е сркту
и ПЩ МО
р и м ас и в я к st r u c t в ы гл яид
И Ц И К Л
а (СМ
а сртку
а б ы т
а
. g e t f i e l d ) .
. т сюлуед щ и
м о б р а з о м
S = struct('fieldl', vail, 'field2', val2,...). ы г о вн д о х ы о аргумент а s стюяледерпо я о сб о с о п м указани ... еЛОП Й fieldl, field2, ... й vail, val2, >> myS = struct('month1,'May','dat1,10,'time','12- 00') myS = month: 'May' dat: 10 time: '12- 00'
ремзаР ин
ы s з а н о ь и м ен е м а с и в
:zyxwvutsrqponmlkjih я значе
-
Е сл и va il, vai2, ... яв ляю ст я м ас и в ам и яче к о ди н а к о в й дл и н ы , т о в р е з л уь а т е s едбу т м ас и в о м сртку : >> myS = struct('month', {'May' 'June'}, 'dat', {10 12},... ќtime', {'12- 00' '23- 30'}); >> myS(l) ans = month: 'May' dat: 10 time: '12- 00' >> myS(2) ans = month: 'June' dat: 12 time: '23- 30' кУ а з а н и е в к ач есвт е з н а ч ен и я va il, vai2 и т . д . о нд о й яч ей к и п р и в о ди з ап о лн ен и ю да н н ы м з н ач ен и е м п о ле й все х сркту р в ы о х дн о г о м ас и в а н ап р и м ер : » mySl = struct('month', {'May'}, 'dat', {10 12}, 'time',... { '12- 00' '23- 30'});
т к ,
1002
Приложеня
mySl (1) .month »zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
ans = May (2) .month >> mySl ans = MayzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA • st r u c t 2 c e i i — п р е о б р а з о в а н и т а с м ас и в ам и яче к о п и с а н
е м ас и в а с рк т у р к м ас и в у яч е к (р аб о а в рzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH .азд "М ивсаы ке" ч я гавы л 8).
с = st r u c t 2 c e i i (S)—с о д е р ж и м о яч ей к и м ас и в а с . Е сл и size'( S ) = [m n] и к аж д я с р тк у
е п о ле
й сркту й а р мгу е н
в о х нд о а м ас и в
р м ас и в т а s с о т и
size (S) = [р m n]. >> 3(1,1) = struct('name', 'Sam1, 'age', 16); >> S(l,2) = struct('name', 'Nik1, 'age1, 18); >> S(l,3) = struct('name', 'Dan1, 'age', 17); >> S s = 1x3 struct array with fields: name age >> C=struct2cell(S) C(:,:,1) = 1
Sam1
[ 16]
Nik 1 [ 18]
Dan' [ 17] >> size(С ) ans = 2
1
а s з ан о си т и ме т р аз м ер т и з р п о л ей
я в ы zyxwvuts , т о
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
е и гриаеч фсик
о ыв З к у тЧ е ин и пре обра зов ни
, за пис
1003 zyxwvutsrqp
MATLAB и Toolbox
е файл
ы
ь е зыво ку
х ыанд
х
zyxwvutsrqponmlkjihgfedcbaZYXWVUT
• iin2muzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — м ю - к о ид р о в ан и е .
м и = iin2mu(y) — л о га р и фм и ч ес к о е к о ди р о в а н и о т - 1 д о 1, з а п и с а н н о г о в в ек от р у . Э лем н атм лы е ч и сл а и з ди а п а з о н а [0, 255] . • mu2iin — о б р а тн о
е п о о нт о ш ен и
е з вкуа
т (в екот ы котрог
и ч и слам
-
и о т 0 д о т и н етр в а -
о п р и н а дл е ж а
о з в ку о в г а у до л ж н у з кв у
а с ч а с от
о си г
и 1.
, рав
-
а п р и н а лд е я д о - 1 и л
й с е ук а ю с т
т с е тр о ф н и ч е с к о м е с и гн а л
ю 8192 Г ц
.
й д и с к р е ит з а ц и
.
• sound (у , fs, b i t s) — в о с п р о и з в едн и ц и и f s и р а з р я дн о с ть ю b i t s. • soundsc — в о сп ро и з в енд и
я ц е
.
р с ц елы м
е д и с к р е ти з о в а н н о г и fs. м Ап л и дут й а м п л и од у т
р size (у ) = [п 2] овтеч а
• sound (у ) — в о с п р о и з в едн и н о й п о ум о л ч а н и
й
.
• sound (у , fs) — в о с п р о и з в едн и н а л а у с ч а с от й ид с к р е и т з а ц и ж ат ь [- 1,1]. З н ач ен и я с бо ль ш е Р аз м е
а с а м п л и од у т а mu яв ляю ст
ю к iin2mu п р е о б р а з о в а н и е
й а р мгу е н у = mu2iin(mu) — вохнд о 255) п р ео б р аз есут я в в ек от р у , э лем н т л у [- 32124/ 32768, 32124/ 32768]. • sound — в о с п р о и з в едн и
е с и гн а л и в е к то р
е з кву
е с и гн а л
а с ч а с то
а с п ревда и елть н ы
й ид с к р е и т з а
-
м м а с ш ат б и р о в а н и е м
• sound(y, fs) , sound(y), sound(y, b i t s ) —р а б о т а ю а с и гн а л а п р е дв а р и е т л ь н о м а с ш а т б и р е с ту sound, н о ам п ли дут в о ид с т я к ортез к у [- 1,1] та к , ч от б ы з ву к б ы л м а к с и м а л ь н о я ам п ли дут ы (т . е . бе з п о етр и к а ч есвт а ) ст и бе з усечн и
. т а н а л о ги ч н
о я и п ри й гр о м к о
-
.
• soundsc (у , . . . , slim) — п р о и гр ы в а н и е з в ку о в г о с и гн а л а с п ревда р и ет л ь н ы м м а с ш ат б и р о в а н и е м к [- 1,1] ет х з н ач ен и й у , к о т р ы е п р и н а лд е ж а т о рт е з к у , з а д н н о м у в е к от р м slim = [slow sh igh ]. • wavread — с ч и ыт в а н и
е з вку
а и з WAV- афй л
• у = wavread (filename) — в м ас и (м асш атби р о в ан н ы е к [- 1,1]) ди ск р еит з о в ан н о г с и м ен м filename. В екот р у с о в т ес у
-
.
в у з а н о с ят
я а м п л и д ут о з кв у т м о н о ф н и ч ес к о м
ы о ст ч ео а и з WAV- йаф л у з вк у
в а , а
1004
м а тр и ц о вт е ч а е •
а с мв д у я с то л б ц а м и т у (:, 1), в от р м
— сетр о ф н и ч ес к о м у у — у (:, 2).
, п ер в о м у
х с о едр ж и с т я
Н ЦК Ф И У
Ю
и н фо р м а ц и
[ . . . ]
п 2 к а ж д о г
у
х ВНЫД О ЫХ
я о ди с к р еит з о в а н н о
м з вку
Х
е (см
.
в каж
-
so u n d ) .
• [ . . . ] = wa vr e a d ( file n a m e , n) — с ч и т ы в а н и а filen a m e. до г о кан ал а и з WAV- ф а й л
е п ервы
= wa vr e a d ( f i l e n a m e ,
[ n l n 2 ] ) —с ч и т ы в а н и
а и з WAV- ф а й л
а filen a m e.
о кан ал
х п сэмп ло е О ПЛМ Э С
В О Т n l Д О
1
• si z = wa vr e a d ( file n a m e , ' s i z e ) — в о з в р а щ а е т раз ме ван н ог о з в ук а , з а п и с а н н о г о в фай л е file n a m e . В ы х о д н о л я е тс я в е к то р о м , п е р в ы й э лем ен т к о то р о г о раве н чи сл в то р о й — ч и с л у кан алов . •
к ан ал
[у , f s , n b i t s ] = w a v r e a d ( f i l e n a m e ) — В д о п о л н и т е л ь н ы
п а р м е тр а
•
zyxwvuts
р П е ин л о я ж
[у , fs, n b i t s , o p t s] = wa vr e a d ( . . . ) — в о з в р а щ а е си в е у , ч а с т о т у ди с к р е ти з а ц и и в fs, р а з р я д н о с т o p t s, п о л я к о то р о й с о де р ж а т и н форм ац и ю о ф о р м а т
• wavwrite — з а п и с
ь з в ук о в ы
х да н н ы
х в форм ат
р Д И С К и р те з о й а р г ум е н у сэмп лов
т яв
, а
т сэмп л ы в м ас ь в b i t s и с т р ук т ур у е фай ла .zyxwvutsrqponmlkj
е WAV.
• wavwrite (у , fs, n b i t s , wa vefile) —В WAV- аЙф Л С и м е н е м filen a m e з а п и с ы в а ю тс я з в ук о в ы е да н н ы е и з м ас и в а у . Ч а с т о т а ди с к р е ти з а ц и и ук а з ы в а е т с я в f s (в Г ц ) , а р а з р я д н о с т ь в b i t s (д о п у с т и м ы то л ь к о зн а ч ен и я 8 и 16). С т е р е о ф о н и ч е с к и й з в у к п р е дс та в л я е тс я м ас и во м раз я а м п л и т уд ы до л ж н ы п р и н а дл е ж а т ь от м ер а si z e ( y) = [n 2 ] . З н а ч е н и рез к у [—1,1], о с т а л ь н ы е з н ач ен и я ус е к а ю т с я д о - 1 и л и 1. • wavwrit e (у , fs, wa ve file ) — з а п и с р а з р я дн о с ть ю 16 б и т о в . • wavwrit e (у , wa ve file ) — з а п и с н о с ть ю 16 б и т о в и ч а с т о т о й ди с к р е ти з а ц и
е файл
р и а Г еч ф с и к • imf inf о — п о л у ч е н и
ь П О ум о л ч а н и
ь П О у м о л ч а н и
ю И Д О Х СИ О РП
Т С
ю И Д О Х СИ О РП Т С р а з р я д и 8192 Г ц .zyxwvutsrqponmlkjihgfedcb
ы е и н форм ац и
i n fo = imf i n f о ( file n a m e , и н форм ац и ю о графи ч еск о (работ а с о с т р ук т ур а м и оп и сан
и о г р а ф и ч е с к о
м фай ле
.
fmt) — в о з в р а щ а е т с т р ук т ур у , с о д е р ж а щ у ю м фай л е с и м ен е м filen a m e и т и п о м fmt а в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML р.азд "Петыс о р у"ткрсы ав ыг л 8).
П о д е р ж и в а ю тс я ш и рок о и с п о л ь з уе м ы е форм ат ы фай лов , к о т о р ы м со о т в е т с т в ую т с л е д ую щ и е з н ач ен и я в хо д н о г о а р г ум е н т а fmt: 'bm p 1 , ' jp g 1 (и л и ' jp e g' ) , ! p c x f , ' p n g 1 , ' t i f (и л и ' t i f f ')• С л е д уе т и м ет ь в в и ду , ч т о
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
есл и ф а й л в форм ат е T I F F с о д е р ж и т н есколь к м ац и я в о з в р а щ а е тс я в м ас и в е с т р ук т ур . Д о с т у п в то р о г о и з ображ ен и я п р о и з в о ди тс я пр и п омощ т ур ы м ас и ва : in fo (2) ( р а б о т а с м ас и вам "М ивсаы уткср"авыг л 8). П ервы фай л
е де в я т а и с о д е р ж а
ь п оле й с т р ук т ур т с л е д ую щ у
• F ilen am e — с т р о к к а та л о г е , т о в с т р о к
ы н е з ави ся ю и н форм ац и ю
а с и м е н е у з а н о с и тс
• F ileM odD ate — с т р о к • F i i e s i z e — р а з м е
а с о в р е м е н е
а и з т р е
• F ormat — с т р о к
м фай ла я п олн о
р фай л
• F o r m a t ve r sio n — с т р о к
о и з ображ ен и й , т о и н ф о р , к с в о й с т в а м , н а п р и м е р , и ук а з а н и я н ом ер а с т р ук и с т р ук т у р оп и сан а в zyxwvutsrqponmlkjih .аздр т о т форм ат
и фай л н а хо д и т с е имя ;
м п о с л е дн е г
, с о д е р ж а щ а и чи слова
я форм а я п ерем ен н а
я в п и кселах
;
• H eigh t — в ы с о т
а и з ображ ен и
я в п и кселах
;
О с та л ь н ы браж ен и я Ф орма с л уч а ски
е п ол . т фай л е ф ун к ц и х да н н ы х
я с т р ук т ур
а (б и т/ п и к с е л )
е гр афи ч еск о
;
; й ф о р м а та
;
;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR : 'truecolor1, 'grayscale' Л И
П яинежарбози ы in fo з а в и с я
а можн о н е ук а з ы в а т ь я imf in fo п ы т а е т с , и с хо д я и з с т р ук т ур
• imread — ч т е н и
т фай ла я с в е р с и е
а и з о б р а ж е н и
ќ ColorType— И Т 'indexed'.
я фай ла
м
;
х си мволов
а ц вет
о
я н е в т е к ущ е
о и з м ен ен и
• wid t h — ш и р и н
• Bit D ep t h — г л у б и н
а графи ч еск о г
:
, е с л
а в б а й та х
а ил
1005zyxwvutsrqponm
MATLAB и Toolbox
я о п р е де л и т ы фай ла й и н форм ац и
т о т форм ат
а п р е дс та в л е н и
я изо
И -
: in fo = im fin fo ( file n a m e ) . В э т о м ь форм а т хр а н е н и я гр афи ч е .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON и и з фай л
а в м ас и
в ил
и м ас и
-
в ы M AT L AB. • А = im read ( file n a m e , fmt) — З а п и с ь В м а с и в А г р а ф и ч е с к о й и н фор м ац и и и з фай л а с и м ен е м filen a m e ф о р м а т а fmt (с м . ф у н к ц и ю imf in fo ) . Р а з м е р н о с т ь м ас и в а А з а в и с и т о т ти п а и з ображ ен и я . Е с л и фай л с о де р ж и т и з ображ ен и е в отен ка х серог о (ф ун к ц и я in f in f о в о з е C olorType), TO А я в л я е т с я НрЫем уВД М м ас вращ ае т ' g r a y s c a l e ' В ПЛ О си вом . Р а з м е р ы м ас и в а о п р е д л я ю тс я ш и ри н о й и в ы с о то й и з ображ е н и я . Л С Е И in fo = im fin fo ( file n a m e , fm t), TO size( A) = [ in fo . H e igh t i n fo , wi d t h ] . Ц в е т н о е и з ображ ен и е (ф ун к ц и я in f in fo в о з в р а щ а е т ' t r u e c o l o r 1 В Л ПО е C olorType) з а н о с и т с я В т р е хм е р н ы й ИС а м В А , size ( A) = [ i n fo . H e i gh t i n fo . wi d t h 3 ] . Т р е т ь е и з м ерен и е п р е дс та в ляе т и н фо р м а ц и ю о ц вет : A ( i , j , :) = [R G в ] .
1006
р П е ин л о я ж
zyxwvuts
• [A, MAP] = im r e a d ( file n a m e , f m t ) —з а п и с ь в м ас и в А г р а ф и ч е с к о й и н форм ац и и и з фай л а с и н де к с и р о в а н н ы м ц в е то м . М а с и в ы А И MAP я в л я ю тс я д в ум е р н ы м и , п р и ч е м з н ач ен и я MAP м а с ш т а б и р о в а н ы о т н ул я д о е ди н и ц ы . Ф орма та е тс и с хо д
т гр афи ч еск и я о п р е де л и т я и з с т р ук т ур
х да н н ы ь форм а ы фай ла
• im wr it e — з а п и с
х можн т хр а н е н и .
ь гр афи ч еск и
о н е ук а з ы в а т ь я гр афи ч еск и
х да н н ы
. Ф у н к ц и х да н н ы
х и з м а тр и ц
ы в фай л
• im writ e (A, file n a m e , fmt) — З а п и с ь гр афи ч еск и щ и хс я в м а тр и ц е А , В ф а й л с и м ен е м (с м . ф у н к ц и ю imf in fо ) . Е с л и ти п м а с и в а А ест э лем ен т ы и м ею т з н ач ен и я о т н ул я д о е д и н и ц ы р и те л ь н о е п реобраз ован и е к 8- б и то в ы м ц елы м с и в а А к л а с а u n i t s п р и в о д и т к п о л уч е н и ю и з ображ ен и ка х серо го , л и б о ц в е тн о г о , в з а в и с и м о с т и о (СМ . ф у н к ц и ю im read). • im wr it e (A, MAP, file n a m e , fmt) — з а п и с ч еск и х да н н ы х , с о д е р ж а щ и хс я в м а тр и ц а f i l e n a m e Т И П
а fm t (СМ
т о о н п р е дв а р и те л ь н клас а u n i t s и л MAP д о л ж е н я в л я ть с Ф орма би рае З ап и с боват з уе т с
т гр афи ч еск и т форм ат
. фН уК Ц И
Ю
, и с хо д
х да н н ы х можн я и з р а с ш и р е н и
ь в гр афи ч еск и е фай л ь ус т а н о в к и до п о л н и те л ь н ы я О ЗЫ В В im writ e в и д
.
х да н н ы х , жСраеОД filen a m e т и п а fmt ь d o u ble a r r a y, а е г о , т о п р о и с х о д и т п р е дв а чи слам . У к а з а н и е м ас я ли б о в отен т раз м ерн ост и м ас и в а
ь и н де к с и р о в а н н ы х А И MAP В ф а й
im f i n f o ) . ЕСЛ
о п р е о б р а з о в ы в а е тс я и u n i t i 6 , т о п р е о б р а з о в а н и я ц в е то в о й п а л и тр о й
я im read п ы х и с ч и та т ь их ,
И А СТе
х гр афи л с и м ен е
м
Ь d o u b l e a r r a y ,
: А - u n i t s (А - 1) . Е с л и А я н е п р о и с хо д и т . М а с и в , п о д е р ж и в а е м о й M AT L AB. о н е ук а з ы в а т ь я фай ла
. Ф у н к ц и , у к а з а н н о г
я im wr it e в ы о в filen a m e.
-
ы ф о р м а то
в T I F F , J P E G и P N G м о ж е т п о тр е х п а р а м е тр о в . В д а н н о м с л уч а е и сп оль а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
imwrite(..., paraml, vail, param2, val2, . . . ) . 1
Ф орма т J P E G п оз воляе т ук а з а т ь о ди н п арам ет р ' Q u a l i t y , о п р е д е л я ю щ и й к а ч е с тв о и з ображ ен и я . З н а ч е н и е м ' Q u a l i t y' м о ж е т бы т ь чи сл о о т е ди н и ц ы д о с та , п р и ч е м больш и е з н ач ен и я с о т в е т с т в ую т л уч ш е м у каче с тв у п р и с ж а т и и и з ображ ен и я (с о т в е т с т в е н н о ув е л и ч и в а е т с я раз ме р фай ла) . З а п и с ь в форм ат е T I F F уп р а в л я е т с я тр е м я п а р а м е тр а м и : ќ 'Compression' —значе ия
1
ќ ' Description' — к о р т с а С е и н а сипо гонд хыв о т н емугра а imf info); ќ 'Resolution' —в е к т о
1
: 'none', 'packbits , 'ccitt ; м лйаф
а (СМ
. ЛОП
е ImageDescription
р [XResolution YResolution] .
р П е ин л о ж
1. Ос но веы
и е а п цр О
ком ыанд
и фуцнки
и с о самткор р.азд
.м С
"Ртао б
Об р а б от к
и
со си коатмр
• debiank — алдену и ав ыг л 8).
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
" гавы л
а с т ро
к
8.
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
е п р о б ело
в в кон ц
• snew =. debian k(s) — адлеун и в о й п ер м ен о й s.
е срто к
к п о дс р т о к
k = f in d st r ( si, s2) —в ы хо д н о с котры х п о д с тр о к а н а ч и н а е ст s2 яв л ю ст я с рт о к и и л и с рт о к в ы в о х нд о й а р мг у е н т м ен ь ш е й дл и н ы • lower — п р е о б р а з о в а н и я л д ртыоаб со си"коатмр вы
е в с рт о ч н ы гавы л
е срто
к (с.м
е (с.м
р.азд
й а р мг у е н я в с рт о к е е п ер м ен н ы е .
т в е к от . Вондх ы м
е к б ув
ы (с.м
"М ивсаы е с рт о к
в в кон ц
ско"тр и ил
е к а ж од и яч е
-
й с рт о к к о п и сан
"Севынирс
и а в
фукн ци
р к с о едр ж и и а р мг у е н а т м . П о дс тр о к о р.азд
и с тр о к
я лд т п оз и ц и
, и sin я
й с ч и а т ес
"Севынирс
фукн ци
8).
snew = lower (s) — п р е о б р а з о в а н и . Д о п сук аест я п р и м ен ен и е н фу к ц и И З Сор т к (СМ . фн у к ц и ю debiank).
П st r e a t — сц еп л н и
в в кон ц е п р о б ело а с м ас и в ам
и в с рт о к 8).
р.азд
и (с.м
е п р о б ело
• masnew = debiank (mas) — адлеун и м ас и в а чя е к и з с рт о к mas (р а б о т .аздр "М ивсаы ке яч " гавы л 8). • f i n d st r — п ои с т ыо а б р со си"коатмр авыг л
1007zyxwvutsrqpo
MATLAB и Toolbox
р.азд
е си м вол в с рт о к и lower к м аси в "Вдво
s = s t r c a t ( s i , s2, s3, . . . ) —г о р и з о н т а л ь н о s3, ... и з ап и с ь р е з л у ь ат а в ср т о к у s. с ц еп л яем о й с рт о к е и г н о р и р ю у ст я . Е сл м ас и в ам и си м вол в , т о в ы охнд о й а р мг у е н кУ а з а н и е в к а ч е свт е в о нх д ы х а р мг у е н о т ид т к о б р а з о в а н и ю н ов г о м ас и в а яч е яч е к о п и с а н а в р.азд "М ивсаы ке ч я " гавы л
и s в срт о ч н ы у яч е к , со тящ и
и сине цпл
ко"трс авыг л е с ц еп л н и
З ав ер ш аю щ и и в о х нд ы
е п р о б ел е а р мг у е н т т ат к ж е м ас и в м ас и в о в яч е к и з к и з с рт о к (р а б о т а 8).
е к бу
х
8). е срто
к si, ы в к а ж од ы я в л ю ст в си м вол в с рт о к п ри во с м ас и в ам
s2, й я . и
К аж д я яч ей к а н ов г о м ас и в а с о ед р ж и т р е з л у ь ат т с ц еп л ен и я с рт о к , о в я щд х и х в с о вт е с ю у щ и е яч ей к и к а ж до г о и з м ас и в о . М ас и в ы од л ж н ы бы т ь о ди н а к о в ы х р аз м ер о в , н а п р и м е р :zyxwvutsrqponmlkjihgfedcbaZYXWVU 1 >> S = streat({'May , 'June'}/ {'12', '23'}) S = f f Mayl2' June23f
1008
zyxwvuts
р П е ин л о я ж
Д о п с у ит м о ку а з а н и е м ас и в а , с о с т ящ ег о и з о нд о 1 >> S = st r c a t ( {' M a y , ' J u n e ' }, {'12'}) S = 'M ayl2' ' J u n e l2'
й яч ей к и
:
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA strcmp — с р а в н ен и е с рт о к zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC (с.м р.азд "Севынирс фукн ци я л д т ыо а б р ос и'коатмрс 'гавы л 8). flag = strcmp ( si, s2) — в о з в р а щ а е срт о к si и s2, и н о л ь — в п р о ит в н о В о н дх ы м и а р мг у е н а т м е к и з с рт о к (р а б о т ав ыг л 8). В да н н о м слчуа ч т о и и сохдн ы е
и м о гу а с м ас и в ам е в ы о х нд о , с о с т ящ и
т иед н и ц
т бы т
ь м ас и в
й а р мг у е н й и з еид н и
{' M a y l l \
|
ы (о ди н а к о в ы
'M a yl4\
к о п и сан
я
/
х р аз м ер о в "М ивсаы
а в р.азд
т я в л ес т ц и н леуй
М а у 1 4'
е с о в п а е дн и
.
и яч е
>> flag = strcmp({'MaylO',
у в с чл у а
м с чл уа е
я м ас и в о , н а п р и м е р
) яче ке"ч я
-
м то г о ж е р а з м е р а , :zyxwvutsrqponmlkjihg
'JuneO2'},...
' J u n e O 2 ' })
fla g. = O
Е сл л ясе т с р ав н ен и е
i
l
и о ид н и з вохнд ы я с тр о к о й и л :
х м ас и в о
в и ме й п ер м ен н о й )
и с тр о к в о
>> flag = strcmp({'MaylO',
|
т р аз м ер
l
М а у 1 4'
/
, р а в н ы , т о п р о и сохди
й еид н и ц
е (и л т п о э л е м н нт о
и яв е
June02 1 }, {'Mayl4'})
flag = 0
• strcmpi — с р ав н ен и
1
0
е с тр о к
, п р о п и с н ы
е и с рт о ч н ы
е кб у в
ы н е раз ли ч аю т
-
ся . И сп оль з ован и
е strcm pi а н а л о ги ч н
О s tr ju st — в ы р а в н и в а н и • n ews = s t r j u s t ( s ) И Л
о strcmp.
е э лем н от
в в срт о к е
.
И n ews = s t r j u s t ( s ,
п о п р а в о м у к раю : >> news = s t r j u s t ( ' news =
' r i g h t ' ) —в ы р а в н и в а н и
t e xt
е
')
t e xt • news = st r ju st ( s, ' l e f t ' ) —в ы р а в н и в а н и >> news = s t r ju s t ( ' news = t e xt
е п о лев о м t e xt ' ,
у краю ' le ft ' )
:
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
• news = s t r j u s t ( s ,
1009 zyxwvutsrqpon
MATLAB и Toolbox
' c e n t e r ' ) —в ы р а в н и в а н и
>> news = strjust('
е п о ц е н тр у text
:zyxwvutsrqponmlkjih
', 'center')
news = text • I s t r m a t c h — п о и с з а да н н о й с тр о к о
к в м ас и в е си мволо в и л и яч е к и з с тр о к с о в п а де н и й с "М ивсаы ко"трс авыг л 8). й zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд
• k = s t r m a t c h ( s t r , MAS) — п о и с яч е к и з с тр о к MAS с т р о к и , н а ч и н а ю щ е й с я в л я е тс я м ас и во м с н о м е р а м и п о д хо д я щ и
к в м ас и в е си мволо в и л и м ас и в я с s t r . В ы хо д н о й а р г ум е н х с тр о к в MAS.
• k = s t r m a t c h ( s t r , MAS, ' e x a c t 1 ) — в о з в р а щ а е MAS, в к о т о р ы е s t r в х о д и т к а к ц ела я с тр о к а :
т н ом ер
а с тр о
е т к к и з
>> к = strmatch('Ma', {'March', 'April', 'May'})zyxwvutsrqponmlkjihgfedc
к = 1 3 >> к = strmatch('Ma', {'March', 'April', 'May'}, 'exact')
к = [ ] 3 st m c m p — с р а в н е н и у кн ц и ф я л д ртыоаб . fla g воло в ным и с тр о к с о т в е т с т в ую м ер :
е п ервы ос и"коатмрс
х п с и м в о л о ав ыг л
в дв у 8).
х с тр о
к (с.м
= st r n c m p ( si , s2, n) — в о з в р а щ а е т е ди н и ц у в с тр о к а х s i и s2 с о в п а д а ю т , и н о л ь — в п р о т и в н о а р г ум е н т а м и м о гу т бы т ь м ас и в ы (о д и н а к о в ы . В д а н н о м с л уч а е в о з в р а щ а е тс я м ас и в и з н ул е т с тр о к а м , п е р в ы е п си мволо в к о то р ы
р.азд
"Севынирс
, е с л
и п ервы м с л уч а е х раз м еров й и е ди н и ц х с о в п а да ю т
е п си м . В хо д ) я ч е , е д и н и ц , н а п р и
к ы -
>> flag = strncmp({'March', 'April', 'May'},... {'May', 'May', 'May'}, 2) flag = 1
0
• s t rre p — з а м е н
е ын
у кн ц и ф
ялд
1zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA а в с тр о к ртыоаб
е о дн о ос и"коатмрс
й п о дс тр о к ав ыг л
new = s t r r e p ( s t r , su bo id , su b n e w) — з а м е н su bo id н а п о д с т р о к и subnew. В хо д н ы е а р г ум е н т ( о ди н а к о в о г о раз м ера ) я ч е к и з с тр о к , н а п р и м е р
и н а д р уг у 8).
ю (с.м
а в с тр о к ы м о гу :
>> new = strrep({'March', 'April', 'May'},... {'ar', 'pr1, 'ay'}, {'AR', 'PR', 'AY'})
р.азд
"Св-риес
е s t r п о д с т р о т бы т ь м ас и вам
к и
1010
Приложеня
strnew = 1 'MARch В оз м ож н м ен а т
1
'MAY'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLK
'APRil
о ку а з а н и
е м ас и в
zyxwvu
а и з о нд о
й яч ей к
и в к а ч е с вт
е в о х дн о г
о ар уг
-
:
>> strnew = strrе( р {'March'
, 'April', 'May'},... 1
{'ar\ 'pr\ 'ay }, {'###'}.) strnew = 'M###ch' ИЛ
'A###il'
'M###'
И » strnew = strrep({'March', 'April', 'May'}, {'Ma'}, {'##'}) strnew = '##rch'
ИЛ
'April'
'##y'
И >> strnew = strrep({'March', 'April', 'May'},... {'Ma'}, {'##', '**', '&&'}) strnew = '##rch'
• st r t o k — п о и с
'April'
к п ер в о
й п о дс тр о к и
'&&y'
, оедтл н н о
• tok - st r t o k ( st r ) —в о з в р а щ а е т е с рт о к в о п о сд р т о к у и з с тр о к о в й п ер м ен н о й и л б ел ам и и л и таблуяц и ей . П р о б е л ы (таблуяц и я р ю у ст я , н а п р и м е р : >> tok = strtok(' ABC DEFG H') tok = ABC
й п р о б елам и срт о к
и в с рт о к е
.
й п ер м ен н о й tok п ерву и st r , оедлт н н у ю п ро ) с п р а в а и слев а и гн о р и
т в строково ќ tok = strtok(str, delim)—ве а щ р в з о увреп ю подстрок у и з строково й он ем ереп й л и и строк ун ю И Н Д О М И З В О Л О В МИС , ИЩЯДОХВ М В delim: » tok = strtok('ABC- DEFG H', '- ') tok = ABC • [tok, rem] = st r t o k ( . . . ) — в то р о й д о п о л н и те л ь н ы ед р ж и т о с та о к с рт о к и п о сл е tok: 1 >> [tok, rem] = strtok('ABC- DEFG H , '- ') tok = ABC
й о н е м е реп и str, отделен
й а р мг у е н
ю -
й tok -
т со -
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1011 zyxwvutsrqponm
MATLAB и Toolbox
rem = - DEFG H zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• strvc at — в е р ит к а л ь н о
е сц еп л н и
е с рт о к
.
mas = st r vc a t ( st r i , st r 2 , st r 3 , . . . ) — фо р м и р о в а н и е дв м у е р н о г о м ас и в а си м вол в , к аж д я с тр о к а котрог о с о ед р ж и т s t r l ; st r 2, st r 3 , ... С тр о к и mas а в от м аит ч ес к и до п о л н яю ст я п р о б ел а м и д о н ж у о й дл и н ы . 1 >> mas = st r vc a t ( ' M a r c h ' , ' Ap r il , 'May') mas = March April May >> whos sprin g Name Size Bytes C lass sp rin g 3x5 3 0 char array • upper — п р е о б р а з о в а н и
вы
е в п р о п и с н ы
snew = upper (s) — п р е о б р а з о в а н и . Д о п сук а ест я п р и м ен ен и
И З С ТрО
К (С М
. ф у Н К Ц И
рП е о б р а з о в ни
Ю
е бкув ы
е с и м в о л в с рт о к и s в п р о п и с н ы е бк у и upper к м аси в у яч е к , со тящ и х d e b l a n k ) .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF е фну к ц и
я "сат-рко ислчо
• char — п о лчуен и
и л и с тр о к и
е си м вол
.
" а п о ASCII- к о д
у и с о з ад н и
е м ас и в
а си м вол
в
.
• ch = char (code) — п р е о б р а з о в а н и е м ас и в а code, с о едр ж ащ ег о ц ел ы е ч и сла , в м ас и в с и м в о л в . Ц елы е ч и сл а о т 32 д о 127 с о вт ес юу т пе ч атем ы м си м в о лам :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB » ch = char(32:127); » ch(l:70) ans = !"#$%&'()*+,А ч ./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] _ abcde » ch(71:end) ans = fghijklmnopqrstuvwxyz { | }~ С и м волы , с о вт ес юу щ и ш р и ф та , суат н о в л ен н о г Courier 33 З ак
. 130
е ц ел ы о в к о м а н дн о
м ч и слам м окн е
, бо ль ш и . Н а п р и м е р
м 127, з а в и с я , дл я ш р и фт
т о т а
1012
zyxwvutsrq
р П е ин л о я ж
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ch = c h a r ( 2 2 4 :2 5 6 ) ch = а б в г е д ж з и й к л м н о п р с ц ф ху т ч ш щ ъ ы ь э ю
В о н хд ы чс л ау си м воль н ог .аздр
я
м а р мг у е н о т е нфу к ц и "М ивсаы
м м ож е т бы т ь м ас и в яч е я char о б р а з еу т и з к а ж од й с рт о к о м ас и в а chmas (р а б о т а с м ас и в ам ке яч " гаве л 8).
к и з с рт о и яч ей к и яч е
к mas, в эот м и mas рсотк у к о п и сан а в
• chinas = char ( si, s2, s3, . .) — фо р м и р о в а н и е м ас и в а си м вол chinas и з срто к и л и с рт о к в ы х п ер м н ы х si, s2, s3, ... К аж д я ср т о к а до п о л н я е с т я п р о б елам и сп рав а лд я п р и в е дн и я к о ди н а к о в ы м раз м ер ам . П суыт е с тр о к и , куаз н н ы е в о в о хн д ы х а р г м у е н ат х , ч уи ыт ва ю ст я п р и к о н с тр и у р о в а н и и м ас и в а си м вол в (с.м р.азд "М ивсаы ко"трс авыг л 8). П р и м ер
в -
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA ,
>> chmas = char('А' А
|!
, 'В' ВВ
)
chmas = А
А
В
В
В о хн д ы е а р мг у е н т ы м о гу т б ы т ь м ас и в ам >> chmas1 = char('AAAA', 'BB'); >> c h m as2 = c h a r ( ' С С С '
,
и с и м в о л в
:
'D D D D D D ');
>> ch m as = c h a r ( c h m a s 1 , c h m a s2) ch m as = AAAA BB CCC DDDDDD
• i n t 2 st r — п р е о б р а з о в а н и
е чи се
chmas = i n t 2 st r (A) — о к рглуен и та а в м ас и в с и м в о л в . • m at 2st r — п р е о б р а з о в а н и
л в м ас и е э л е м н от
е м арт и ц
>> str = mat2str(A)
. в м а рт и ц
ы в срто к у
• st r - m at2str(A) — с рт о к в а я п ер м ен н а н и е м а рт и ц ы А в то м в и ед , в к о т р о с рт о к и и л и в М - фай ле , н а п р и м е р : >> А = pi*eye(2);
в с и м в о л в
м м а рт и ц
ы А и з а п и с
ь р е з л ьу
-
. я s t r с о едр ж и а з а д е ст
т п р е сда т в л е я и з к о м а н дн о
й
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
1013 zyxwvutsrqponm
MATLAB и Toolbox
s t r = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
[3.14159265358979 0;0 3.14159265358979] П р и п р ео б р аз о в ан и ц ы н е п р о и с о х ди т
и м а рт и ц
ы в ср т о к
• s t r = m at2str (A, n) — окглрену и • num2str— п р е о б р а з о в а н и
йт о
,ре ипмр •
c
h
у о к ргл у е н и е д о п ц и ф
е м а рт и ц
ы в м ас и
i
n
a
s
•
в м а рт и
-
n
u
m
2
s
t
r
(
A
)
— э
л
е
м
е
н
т
ы
с
т
р
а си мволо в chmas. Уд е р ж и в а е т с и и п р и н е о б х о д и м о с т и и с п о л ь з уе т с и чи сл а ( ан ало ги ч н о форм ат
е десият ч н о
й то ч к и
.zyxwvutsrqponm
о
к
м
а
т
р
и
ц
ы
е п р о и с хо д и
ь в с тр о к у
А
о
е ц и фр я э ксп он ен ц и аль н а у sh o r t e).
• chmas = n u m 2st r( A, form at ) — ф о р м а т н о form at ф о р м и р у е т с я и з с п е ц и ф и к а т о р о я з ап и с
в zyxwvutsrqponmlkjihgfedcbaZYX (с.м р.азд "П-с о р
я ч е ты р
• chmas = n u m 2st r (A, n) — о к р уг л е н и с я ти ч н о й то ч к и .
• s p r i n t f — ф о р м а т н а
р п осл
в си м вол 8).
- ма пгамор "о ят ьк ула в ыг л
м ас и в н о й то ч к м а з ап и с
я э л е м н от
.
б
р
а
ы п осл
з
у
т ю
т
р
о
р и сп ольз ован и
и
-
р п осл
е п реобраз ован и е
-
е де
-
, с т р о к
а
о sp r i n t f.
.
• s t r = s p r i n t f ( fo rm at , A) — к о н с т р у и р о в а н и е с тр о к и s t r и з в е щ е с т вен н ы х да н н ы х , с о д е р ж а щ и хс я в м а тр и ц е А , н а о с н о в е ф о р м а та , к о т о р ы й ук а з а н в с тр о к е form at . С п е ц и ф и к а т о р ы форм ат а ан ало ги ч н те м , к о т о р ы е и с п о л ь з ую т с я в f p r i n t f ( п о д р о б н а я и н форм ац и я о ф о р м а тн о й з ап и с и в фай л с п ри м ерам и и сп ольз ован и я с о де р ж и тс я .аздр "Т еквтыос "ы йл фа ав ыг л 8). П ри ме
к
я фор
т д о п ц и ф
в а н а л о г и ч н
с
е де с я ти ч
ы в
я sp r i n t f:
» А в [1.1 3.2; 0.7 - 4.2]; » str = sprintf('a=%8.Id b=%8.ld\nc=%8.Id d=%8.1d\ A) str = a = l.le+000 b = 7.0e- 001 с = 3.2e+000 d = - 4.2e+000 •
[ s t r , er r m sg] = s p r i n t f ( fo r m a t , A) — е с л и п р и ф о р м а т н о п рои з ош л а ош и бка , т о в ы охнд о й а р мг у е н т errmsg с о едр ж и ю вс т у щ е е с о б щ ен и е .
О sscan f — четн и н о м ф о р м а ет И сп оль з ован и ч т о с ч и ыт в а н и ев ы фа"ы йл ав ыг л
е ад н н ы
х и з с рт о к
и ил
и с рт о к о в о
й з ап и с т с о вте
й п ер м ен н о
й в з адн
и -
. е sscan f в о м н о г м о сж х е п р о и з в о ди ст я и з с тр о к и 8).
е с f scanf, з а и ск лю ч ен и е , а н е и з фа й л а (с.м
р.азд
м то г о "Т к-етос
,
1014
zyxwvutsr
П р и л о еж я н
• str2doubie — п р е о б р а з о в а н и м ас и в .
е ч и с ел
, з ап и с ан н ы
х в с тр о к а х
, в ч и сло в
й
• а = str2doubie ( st r ) — и з срто к и st r и з в лек а ст я ч и сл о и з ан о си т я в п ер м ен у ю а . С тр о к а st r м ож е т с о ед р ж а т ь ц и фр ы , то ч к у , з н а к и п лю с и л и м и н су , си м в о л е и л и i и з ап яут ю л д я р а з де л н и я з н ак о в ыт с я ч , н ап р и м ер :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » а = str2double('1, 485,000.00') а = 1485000 >> а = str2double('- 1.2е- 2 ' ) а = - 0.0120 » а = str2double('- 2 + 3*i') а = - 2.0000 + 3.0000i
Е сл и с тр о к NaN..
а н е м ож е
т бы т
ь п р ео бр аз о в ан
• А = str2double (masstr) — со едр ж и м о п р е о б р а з е у ст я в э лем н т ы ч и слов г m asstr (р а б о т а с м ас и в ам и яче вы 8). П р и м ер
а в ч и сло
, т о в о з в р а щ а е тс
я
е м ас и в
а яч е к И З срто к m asstr а А ТГО О ж е р а з м е р а , ч т о и а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ в р.азд "М ивсаы ке"ч я а- г л
о м ас и в к о п и с а н
:
»
А = s t r 2 d o u b l e ( {' - 7 •
f
3 * i '
' F F F '
' 3 . 1 9 ' })
А = 0 + 3.0000i
- 7.0000
• st r2n u m — п р е о б р а з о в а н и "Пйтос р , пре имр
е м ас и в
а си м вол
а- пм гаор "т я ьк ула выг л
А = s t r 2 n u m ( c h r r i a s ) — С Т р О К
И массив
а С И М В ОЛ
NaN
в в м ас и 8).
3.1900
в ч и се
В c h m a s Д О Л Ж Н
л (с.м Ы С ОС Т Я
р.азд Ь
и з те х ж е с и м в о л в , ч т о и в str2doubie, н а п р и м е р : 5' ] ; » chmas = ['1.3 0.4 3 + 2*i'; 'I - 3*i 29 0.0 >> А = str2num(chmas) A
=
1.3000
ќ
0.4000
1.0000 - 3.0000i 29/0000
Е сл с ет л яю
и с рт о к я п са т у т к о л и ч е с вт
и в chmas н е м о гу т бы т ь п р ео бр аз о в ан я м а тр и ц а А . П р о б е л ы в с рт о к а о э л ем н от в в А , нап р и м е р
3.0000 + 2.0000i 0.0500
ы в ч и с л а х chmas щсу есвтн :
, т о в о з в р а щ а ы и о п р ед
-
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1015zyxwvutsrqpon
MATLAB и Toolbox
»zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA А = s t r 2 n u m ( ' - l - 2 i ' ) А = - 1 . 0 0 0 0 -
2.0000i
> > А = s t r 2 n u m ( ' - l
-
2i')
А = - 1 . 0 0 0 0
рП е о б р а з о в а н и
е сист е м
ы сисчл е ин
• bin2dec — п р е о б р а з о в а н и
ло
, н а п р и м е р »
2 . 0 0 0 0 1zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
0 -
е с рт о к
я
и с дв о и ч н ы
zyxwvutsrqponmlkjihgfedcbaZYXWVU
м ч и сло
м в дес яит ч н о
е чи с
-
:
l l а - bin2dec( 1110001101010 )
а = 7274
• dec2bin — п р е о б р а з о в а н и е дес яит ч н о г о ч и сл а в срто к у с дв о и ч н ы м п р ед с ат в л е н и е м , н а п р и м е р : >> st r = dec2bin(7274) st r = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 1110001101010 В о н дх о
й а р мг у е н
н е п р ев о схядщ и
т м ож е м 252.
т бы т
ь то л ь к
о ц ел ы
е ед с я и т ч н о г • dec2hex — п р е о б р а з о в а н и ри чн ы м п р есдатв л ен и ем , н а п р и м е р >> st r = dec2hex(7274) st r =
о ч и сл
м н е о рт и ц а ет л ь н ы а в ср т о к
м ч и слом у с ш е с н т а цд а е т
, -
:
1С 6 А
В о хн д о н е п р ев о схядщ и
й а р мгу е н
т м ож е м 252.
• hex2dec — п р е о б р а з о в а н и е м в дес яит ч н о е ч и с л о »
а = h e x 2 d e c ( Ч С 6 А
т бы т
ь то л ь к
о ц ел ы
е с рт о к , н а п р и м е р
м н е о рт и ц а ет л ь н ы
и с ш е с н т а цд а е т р и ч н ы
м ч и слом
,
м п р е сд а т в л е н и
-
:
' )
7274
• hex2num— п р е о б р а з о в а н и
в ен н о г о ч и с л а дв о й н о >> format long
е ш е с нт а д ц а ет р и ч н о г й то ч н о с т
и (в с ат н да р т
» а = hex2num('411a243774442a28')
о п р е сд а т в л е н и е IEEE) в ч и с л о
я в ещ ес т :
-
1016
zyxwv
р П е ин л о я ж
4.283018635412776е+ 00 5
С тр о к а , дл и н в а . Е сл и в о х дн о к аж д я с тр о к
а котро й а р мг у е н а и р ез луь ат
й м ен ь ш
е ш е с н т а цд а и т т я в л се т т з ап и с ы в аест
а с м а т риац м
Ра б от Р або т (с.м ,
е с м а тр и ц а м н,ре аипмр
С о з ад н и
я в вещесвт н н ы
о м н ог а"ы ргбе л ав ыг л
лйиеон
ц и масиов
• bikdiag — к о н с тр иу р о в а н и
в
т к в а рд н т у
ю еи д н и ч н у т п р ям огу л ь н у
• ых
ь — с о з да н и
е Мри тац е м а рт и ц
я п о л и н о м а
,
ю м а рт и ц
у р аз м ер
а п .
ю м а рт и ц у р аз м ер а m н а п с .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM
я п о лч у а т
ь бо ле
е п я и т ед с я т
и раз ли ч н ы
х
: p i , p 2 , . . . )
т р аз м ер ы м а тр и ц ы , и нфу к ц и я в ы з ы в а ест , в о з в р а щ а ю щ и м м а рт и ц у . р мАгу ен , н а п р и м е р f cauch y ? , ' o r t h o g 1 .
е м арт и ц
• hankel — Сни а Д З О
у лд
.
, п о з в о л яю щ а . И с п о л ь з о в а н и е
• hadamard — Сни а Д З О
. ю м а рт и ц
й м а тр и ц ы
, p i и р 2 з а д ю м а р г м у е н то м м м а тр и ц ы
С
в v.
[ А 1 , А 2 , . . . ] = g a l l e r y ( n a m e ,
к п рави ло м в ы о х нд ы я и м ен
:
О zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
т с о п р о в ж ад ю щ у
• i = eye (in, n) — i соедр ж и е ид н и ц а м и н а главн о й ди а г о н а л и
Ка о нд и я в л се т
й м а тр и ц ы
й м а тр и ц ы
) — i соедр ж и
О galle ry — фну к ц и я с та н д а р тн ы х м а рт и ц
и zyxwvutsr
О "
О О
е с о п р о в ж адю щ е А = compan (v) — в о з в р а щ а е з адн н ог о в е к то р м к о э ф и ц и е н от
в кн и г 15).
.
е в м б л о ч н о - ди а го н а л ь н о
М = О Б
е е ид н и ч н о
в и р а з де л о 6, гаву л
х м а тр и ц
П compan — с о з ад н и
я .zyxwvutsrqponmlk
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
'А О
• I = еу( п
о гл а
е б л о ч н о - ид а г о н а л ь н ы
м = bikd iag (А , в , с ) —з а н е с е н и
и сп р а
и
о д о с та о ч н "Зиач д
е м а т ри
• eye — создан и
я н л ям у , т о о б р а б ты в а е тс й м ас и в
и и м а с ива м и п о с в ящ ен 2, р.азд
авуг л
, до п о л н яест м с рт о к
я м ас и в о
ы Адам а р ы ГЯнаЛек ы Г и л ь б е р та
, н а п р и м е р
я с т name
, Н = hadamard(n) .
, Н ап ри м ер
, Н = h an kel( n ) .
, н а п р и м е р
, н = h i i b ( n ) .
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
• i n vh i i b — в ы ч и слен и е м а рт и ц ы м ер , н = in vh iib( п ) . • lin sp a c e — ген ер ац и с п о с т ян н ы м ш а го вы б) .
, о б р а тн о
й к м а рт и ц
р v з ан о с и ст
• v = lin sp ace (а , ь , п ) — в в ек от • logspace — ген ер ац и с п о с т ян н ы м ш а го "Петнаы мре п"е ын ме р ав ыг л
я в е к то р а м в л о га р и фм и ч е с к о
, з н ач ен и
р v з ан о с и ст
е "м а ги ч ес к о г
в к о т р о г е (с.м ,
о и з м ен яю ст
я
н,ре аипмр
р.азд
р v з ан оси т
е м ас и в о е а н а л о ги ч н
ы П аск аля т р т ге о у л ь н и к
, н а п р и м е р у П аск аля
в р а в н о м е р н о ones.
ц р а з м е р у р аз м ер
а m н а
й р а з м е р е м ас и в о
в бо ль ш е
х с чл у а й н ы
х и з ч и с ел е а н а л о ги ч н й м а тр и ц ы
а п .
а m н а -
, р = pascal (n). С ркту .
о р ас п р едл н н ы
, со тящ и е ет п л и ц е в о
.
у и з еид н и
в тре х и з м ер н и я с о з ад н и
т м ас и
я и з ч и се л о т й с рт о к и .zyxwvutsrqponmlkjihgfedc
я еид н и ц а м и
ю м арт и ц
. Д о п сук аест
. И с п о л ь з о в а н и
в лю бо
о яв л ю ст
т п р ям огу л ь н у
е м ас и в о
• t o e p i i t z — с о з адн и в од л ь к а ж од й и з ди а го н а л е й
о с от л б ц
ю м арт и ц
• А = ones (m, n, k) — А соедр ж и п н а к , со стящ и й и з еид н и ц г о ч и сл а и з м ер н и й . я м а рт и ц
а п , с о с т ящ а а э л е м н от а и ди а го н а л и
: мсу
т к в а др н т у
• А = ones (m, n) — А соедр ж и п , со стящ юу и з еид н и ц .
• p ascal — ген ер ац и р ут а м а рт и ц ы со втес у
а м р а з м е р
ы к о т р о г
• А - ones (n) — А со едр ж и
й о т 10a д о 10b.
я п з н ач ен и .
я м а рт и ц м с в о й с вт о м в л ю б о г , э лем н т
й о т 10а д о 10ь .
я 50 з н ач ен и
о к в а д р та "
е м ас и в а
П r a n d n — со з адн и н о рм аль н о м у з ак он у
й о т а д о ь .
8).
м = magic (n) — к в а др тн а 1 д о п 2 , о б л а д е т ю с ул е д щ и со в п аде т с м су о й э л е м н от
И сп оль з ован и
-
й о т а д о ь .
я п з н ач ен и
я э лем н от й м ерт и к
• v = iogspace(a, ь , n ) —в в екот
• rand — с о з адн и
, н а п р и
я 100 з н ач ен и
р v з ан о си т
• v = logspace (а , Ь ) — в в ек от
• ones — с о з адн и
е Г и л ь б е р ат
я в е к то р а , з н ач ен и я э лем н от в к о т р о г о и з м ен яю ст я м zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м , н,ре аипмр .аздр "Ринеш гх ынаичр з"ач д га- л
• v = lin sp ace (a, b) —в в ек от
• magic — с о з адн и
1017zyxwvutsrqpo
MATLAB и Toolbox
-
х ч и с ел
, р ас п р едл н н ы о ones.
, э лем н т
. х п о
ы котро
й равн
ы
.
• т = t o e p i i t z (с , г ) — с о з адн и ц ы п р и п о м о щ и в ек от р - сот л б ц • т = t o e p i i t z (г ) — со з адн и п ом ощ и в е к от р - с рт о к и г .
е н е с и м е рт и ч н о а с и в ек от р - срто к е с и м е рт и ч н о
й ет п л и ц е в о и г . й теп л и ц ев о
й м а рт и й м а рт и ц
ы пр
и
1018
zyxwvutsrq
р П е ин л о я ж
• zeros zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — с о з ад н и е м ас и в о , со тящ и х и з н л ейу . И с п о л ь з о в а н и е ан ало
ги ч н
-
о ones.
П Wilkinson — с о з адн и р ы с о б вт е н н ы х з н ач ен и й
Оп е р а иц
е м а тр и ц
ы иУ л к и н с о н а , к о т р а я и ме т бли з к и е па .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE
и с м а с ива м
• c a t — сц еп лен и д а ть . Е сл и А Й
и
е м ас и в о В м а рт и ц ы
, со втес юу щ и , т о в о з м о ж н
е р аз м ер ы юс луед щ и
• м = c a t ( i , А , в ) — сц еп л н и е АЙ (м ас и в ы А Й В р а с п о л ж ен ы в с от л б и к ) • м = cat (2, А , (м ас и в ы А Й В р а с п о л ж ен
в ) — сц еп лн и
• м = c a t p , А , в ) —о б р а з о в а н и • diag — в ы едл н и
е ди а го н а л
ЛО ВД
П f l i p i r — п ер с ат н о в к и з м ен ен н у ю м а рт и ц у
п ер в о г
о и з м ер н и
Ь
в то р о г
о и з м ер н и
о м ас и в а
я я
.
е ди а г о н а л ь н о
е ди а г о н а л ь н о ы в е к то р
й м а рт и ц
й м а тр и ц ы ы А , н а ди а го н а л
. и ко
-
а а . е ди а г о н а л ь н о т э лем н т
• а = diag (А ) — в ы едл н и "Саине здо маитцр (с.м р.азд
й м а рт и ц ы в е к то р
е ди а г о н а л сгьон пцеиал
а с от л б ц о
ы А , н а п о б о ч н о
й к -
а а . и
м а рт и ц ав ид
в м а рт и ц
ы А В в е к от р а zyxwvutsr 2).zyxwvutsrqponmlkjihgfedc
" гав ы л
ы с л ев
а н ап раво
, в о з в р а щ а е
т
.
• flipud — п е р с ат н о в к
а с рт о
к м а рт и ц
ы с в ре х
у в н и з
, в о з в р а щ а е
т и з м ен ен
-
.
• repmat — с о з да н и
а и з о ди н а к о в ы
е блоч н о х блоков
й м а рт и ц .
• м = repmat (A,m, n) — м а рт и ц п о г о р и з о н та л и , к аж ыд й бло
ы ил а м с о с т и к яв ляест
• м = repmat (a, блоч н ог о м ас и в а
и м н о г м ер н о г
о блоч н ог
ы м а рт и ц
• А = reshape (х , т , п ) — фо р м и р о в а н и м ас и в а х дл и н ы m*n. Э лем н т з у я с от л б ц ы А .
-
о М = repmat (А , т , п) .
[m n p . . . ] ) — к о н с тр иу р о в а н и . е фо р м
о м ас
т и з m блок о в п о в е р ти к а л и и п я м а рт и ц е й А .zyxwvutsrqponmlkjihgfedc
ќ М = repmat (A, [m п ] ) —а н а л о г и ч н
• reshape — и з м ен ен и
В
Ь
; е рт е м х р н о г
• А = diag (а , к ) — с о з адн и о й ди а г о н а л и котро й с от я
си в
ВЛ О Д
и и к о н с рт иу р о в а н и
• А = diag (а ) — с о з адн и то р о й с от я т э лем н т
н у ю м а рт и ц у
В
ы со в п а а cat:
ы вы з ов
;
е АЙ ы в срто к)у
ы до л ж н е в а р и а н т
ы ил
е м н о г м ер н о г
и м ас и в а
.
е м а рт и ц ы х в ы б и р а ю ст
о
ы m н а п и з э лем н от я п о с л е д о в а те л ь н о
в , о б р а
-
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1019 zyxwvutsrqp
MATLAB и Toolbox
е тр емх р н о г о м ас и в а m н а • А = reshape (x, m, п , р ) —ф о р м и р о в а н и п н а р и з э лем н от в м ас и в а х лд и н ы m*n*p. нА а л о ги ч н ы м образ о м с о з ад ю с т я м н о г м ер н ы е м ас и в ы .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM • rot90 — п о в о р о
х а ын д
т м а рт и ц " гавы л
к маитцрам
ы zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH (с.м р.азд "Пине имр кн цийфу ткоаибр о 2).
• в = rot90 (А ) — в о б р аз есут н а 90°.
я и з А пов о р то
• в = rot90(A, k) — в о б р аз есут ср т е л к и н а 90° к р а з . П t r i i — в ы едл н и
итцр ма
е н и ж н ег
я и з А п оворот
о тр егуо л ь н и к
сгьон пцеиал
а и з м арт и ц
а"вид авыг л
у L те х ж е р а з м е р о в а А С ди а го н а л ь ю
• L = t r i i (А , к ) — в м арти ц э л е м н ыт , н оаяхдщ и ес я н иж п о ди а г о н а л е й та к я ж е , к а е в ернх ег
е м а ет м а ит ч е с к и
е п и а С ы нц л ь н и ям
и Эйр
"Саине здо
о и А , з а н о с ят
я эле
я я
о t r i i ) .zyxwvutsrq
ы (а н а л о ги ч н
о о п и сан
ы в н а ч л е кн и г и zyxwvutsrqponmlkjihgfedcbaZYXW 1).
и и п ер в о г
и ди ф ер н ц и а л ь н о г
о и в то р о г о урав н ен и я Э й р
• w = a ir y (2, z) —ф ун к ц и
и фну к ц и
о п о р я дк а
я фну к ц и я Э й р
• w = a ir y( 3, z) —п р о и з в о д н а я м ас и в о м
о п о р я дк о в я w" - zw = О .
и п ер в о г
• w = a i r y d , z) —п р о и з в о д н а
и z яв ляест и с о з н ач ен и ям
р.азд
й
, ч т о и А , з а н о с ят и и н а н е й (н муер ац и
укн ци "ф авыг л
• w = a ir y( z) —ф ун к ц и
Е сл н ост
, ч т
и п о др о б н
эе тынар ме л
е фицунк
• a i ry — нфу к ц и
в ч асо в
и е н фу к ц и
"Ве ын отрс
м п р о ти
и
.
а и з м арт и ц
е фицунк р.азд
й с рт е л к
ы (с.м
у L те х ж е р а з м е р о в е -к о й поди а го н а л к и в diag).
о рт е г у о л ь н и к
М а т е м а т и еч с и к Э л е м н ат р н ы (с.м
в ч асо в
2).
• L = t r i i (А ) — в м арти ц м ен т ы н и ж н ег о тр егуо л ь н и к
• t riu — в ы едл н и
м п р о ит
и в то р о г я н фу к ц и
, т о р ез луь ат и Э й р
т w бед у и о т со втесюу щ и
, яв л ю щ и ес
я р еш е
.
-
и Э й р
и п ер в о г
о п о р я дк а
о п о р я дк а
.
о п о р я дк а
.
.
и Э й р
и в то р о г т м ас и в о
м то х э л е м н от
й ж е р а з м е р
в z.
1020
р П е ин л о я ж
, д о п о л н и т е л ь н ы й • [w, i e r r ] = a i r y (к , z) — в о в т о р о й с и тс я и н форм ац и я о н а хо ж д е н и и з н ач ен и я ф ун к ц и О i e r r = 1 — н е в е р н
о з а да н
ы в хо д н ы
О i e r r = 2 — п е р е п о л н е н и е О i e r r = з — - ч а с т и ч н а
я п о те р
О i e r r = 4 — п о л н а больш ое ;
я п о те р
• be s s e i h — ф ун к ц и
ч ере ни
з ф ун к ц и е н и ж е )
и Бес ел
т б уд е
я то ч н о с т
и пр
я п ервог . с о т в е т с т в ую щ е
-
;
и пр
й п роц ес
и Г ан кел я (с м
т з ан о :
т in f;
я то ч н о с т
О i e r r = 5 — в ы ч и с л и т е л ь н ы
, а р г у м е н и Э й ри
е а р г ум е н т ы
, о т в е
zyxwvutsrq
и вы ч и слен и ях
;
и вы ч и слен и ях
, z с л и ш к о
с н е с хо д и т с я
т б уд е
, о т в е
о и в то р о г
о р о да
м
т NaN.zyxwvutsrqp
, в ы р а ж а ю щ и е с
е ди ф е р е н ц и а л ь н о
я е ур а в н е
-
.
• f = b e sse i h ( n u , k, z) — ф ун к ц и в то р о г о (д л я к = 2) р о д а .
я Г ан кел
я п ервог
• [w, i e r r ] = b e sse i h (nu f к , z) —а н а л о г и ч н
о (дл
о обращ ен и
ќ f = besseih(nu, 1, z, l ) — т о ж е е о м а с
я к = l) и
ю К a i r y.zyxwvutsrqp
, т ч о
besselh(nu, 1, z)*exp(- i*z). • f = b e sse i h (nu, ' 2, z, l) — т о ж е с а м о е
, ч т о
b e sse l h ( n u , 2, z ) *e xp ( i *z ) . • be s s e i j, b e s s e i y — ф ун к ц и ц и альн ог
о ур а в н е н и
и Бес еля
, я в л я ю щ и е с я реш ен и ям и ди ф е р е н 2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML я z / " + z / + ( z - v ) y = 0 д л я в е щ е с т в е н н ы х v. 2
• f = b e s s e i j (nu, z) —ф у н к ц и
2
я Бес ел
• f = b e s s e i j (nu, z, l) —т о ж е с а м о е b e s s e i j( n u ,
я п ервог
.
, ч т о
z ) *e xp ( - a b s( i m a g( z ) ) ) .
• f = b e sse i y (nu, z) —ф у н к ц и
я Бес ел
я в то р о г
• f = b e sse i y (nu, z, l) —т о ж е с а м о е
, ч т о
b e sse i y( n u ,
о р о да
о р о да
.
z ) *e xp ( - a b s( i m a g( z ) ) ) .
Возможн ы вы зов ы с о в то р ы м до п о л н и те л ь н ы м в ы хо д н ы ан ало ги ч н о ф ун к ц и и a i r y. Д о п у с т и м ы ком п лексн ы е z и nu — м а с и в ы о ди н а к о в ы х раз м еров , т о р е з у л ь т а то г о ж е р а з м е р а с с о т в е т с т в ую щ и м и з н ач ен и ям В с л уч а е , к о г д а о ди н и з в хо д н ы х а р г ум е н т о в z и л р о й — м а с и в , с к а л я р н ы й а р г ум е н т р а с ш и р я е тс я д о т о м я в л я е тс я м ас и в f. Т а б л и ц а з н ач ен и й дл я р а з л и ч н ы
м а р г ум е н т о м з н ач ен и я д л я z. Е с л т мас и во т f б уд е и ф ун к ц и и Бес еля и nu — ч и с л о , а в т о м ас и в а и р е з ул ь т а х nu и z п о л уч а е т
, и м . -
р П е ин л о ж
1. Ос но веы
ся , сле от р - с от л б е ц
и ои д
окм ыанд
и фуцнки
н и з а р мг у е н о т в z и л и п и — в ек от р - срт о к а , а в то р й — век .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• be s s e ii, be s s e ik — м о ди фи ц и р о в а н н ы
р еш ен и ям
1021 zyxwvutsrqpo
MATLAB и Toolbox
е н фу к ц и
и ид ф е р н ц и а л ь н о г
в е щ е св т н ы
и Бе с л я
, яв л ю щ и ес
2
о р уа в н е н и
2
я
2
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON z y" + zy' + ( z + v )y = 0 лд я
х v.
• f = (nu, z)—м о д и ф и ц и р о в а н н а
я н фу к ц и
я Бес л
• f = b e sse ii (nu, z, 1) —т о ж е с а м о е
я п ер в о г
о р о да
.
, ч т о
be sse ii( n u , z) *e xp ( - a bs( r e a l( z) ) ) . • f = besseik (nu, z) — м о ди фи ц и р о в а н н а р о да .
я н фу к ц и
• f = besseik (nu, z, l) —т о ж е с а м о е
я Бе с л
я в то р о г
о
, ч т о
besseik( n u , z) *e xp ( - a bs( r e a l( z) ) ) . И н ет р ф й
с фн у кц и
й b e sse ii, besseik та к о
• beta, betainc, be t a in — беат- нфу к ц и я
ри ф
м б еа т - н ф у к ц и
и н еп о л н о
й ж е , н еп о л н а
. И н те гр а л ь н ы
я б а е т- н ф у к ц и я б ае т - н ф у к ц и
е п р е сд а т в л е н и
й бае-т нфу к ц и
и Bx(z9 vt>) в ы гл яд
т ю с лу е д щ и
^V "
• f = be t a ( z, w) —в ы ч и с л е н и
е б еа т - н ф у к ц и
ы w и z м о гу и о ди н а к о в , в да н н о
е о б р ащ ен и е
е н а р ту л ь н о г е э ф е к ит в н о г
ь в е щ е свт н н ы м й р а з м е р н о с ти м с ч л уа е о н р а с ш и р яест е н фу к ц и
м э л и п ит ч е с к о г
yv
Jo
й б еа т - н ф у к ц и
и Як об о и н ет г р а л
, х од лж е
о л о га р и фм о а л г о р и тм а
т бы т
• e i i i p j — э л и п ит ч ес к и
ад е м ы
е н еп о л н о
м бо ле
:zyxwvutsrqponmlkj
.
• f = bet a( x, z, w) — в ы ч и слен и п р и н а лд е ж а т ь о рт е з к у [0,1]. • f = be t a in ( z, w) — в ы ч и слен и н фу к ц и и с и сп о ль з о в ан и е lo g( bet a ( z, w)) .
я и л о га и # ( z , w) м образ ом
4
о
р м гА у е н т и л и м ас и в ам бы т ь с к аляр о м
, к а к у b e sse lj, bessely.
. Оид
и и к о м п л ек с н ы м н и з а р гм у е н о т я д о р а з м е р о
а о т б ае т , че м и ч и слам в м ож е в м ас и в а
и sn(u), cn(u), dn(u), п о р ж а
o- v/ l- msin 2 ф
н
и т . -
1022
zyxwvutsrq
П р и л о еж я н
е в ы ч и с л ен и • zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA [sn, en, dn] = e i i i p j (u, m )—о д н о в р е м е н н о л и п ит ч е с к и х н фу к ц и й Я к о б и дл я m и з о рт ез к а [0,1]. Р аз м ер
ы вохнд ы
х а р мг у е н о т
т н а р ез луь ат
в в л и яю
т та к ж е
• [sn, en, dn] = e i i i p j (u, m, t o i) — о дн о в р ем н н о все х э л и п ит ч ес к и х н фу к ц и й Я к о б и лд я m и з о тр е з к то ч н о с ть н ост
ь дл
ю (п о му о л ч а н и я с о к р ащ ен и
• e i i i p k e — п о л н ы Е ( т)
р о да
о и ме ы п ер в о г
е о п р едляю ст
я ю с лу е д щ и
м образ ом
ь от ч
-
о {К т)
и в то р о г
о
: 2
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA J , (Е т) = J < Jl- msin < pd(p. о ^ l- m si n 2 ( p о
о и н те г р а л
• [к , е ] = e lli p k e (m) — о дн о в р ем н н о и н ет г р а л о в п ер в о г о и в то р о г о п о р я дк о
й то ч н о с ть ь лд
ю (п о му о л ч а н и я с о к р ащ ен и
я в р ем н
• erf, erf с , erf ex, erf in v — в ы ч и слен и г о и н те гр а л а в е р о я нт о с ет й и о б р а тн о — t dt\ yJn'Q • у = erf (x) —в ы ч и с л е н и • у = erfc( x) —в ы ч и с л е н и • у = erfcx(x) —в ы ч и с л е н и те г р а л а в е р о я нт о с ет й • х = erf (у ) — в ы ч и с л ен и ортез к у [- 1,1].
о и ме
е до п о л н и те л ь н о г
и о ш и б о к и о ш и б о к
х
е э л и п ит ч е
а [0,1] с
т см ы с
л м уе н ь
-
, до п о л н и те л ь н о :zyxwvutsrqponmlkjihgfedcb
2 V erfcxx = e erfcx. . о и н те г р а л
е м а с ш ат б и р о в а н н о г
-
.
erfcx = l- e r fx \ и о ш и б о к
о по
е э л и п ит ч е с к и а [0,1].
е в ы ч и с л ен и в дл я m и з о тр е з к
ю eps). Ча с т и в ы ч и с л ен и й е фн у к ц и й к фн у к ц и
е фн у к ц и
а п ер в о г
е в ы ч и с л ен и в дл я m и з о тр е з к
• [к , е ] = e llip k e (m, t o i) — о дн о в р ем н н о ск и х и н ет г р а л о в п ер в о г о и в то р о г о п о р я дк о ь то ч н о с т
й
л му ен ь ш и т
ф
• к = e lli p k e (m) — в ы ч и слен и е э л и п ит ч е с к о г а [0,1]. р я дк а дл я m и з о тр е з к
з адн н о ш ит
е
7i/2zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
,
, к а к в beta.
е в ы ч и с л ен и а [0,1] с з а д н н о
т см ы с
е и н ет г р а л
л / 2
х эл -
.
е э л и п ит ч е с к и
, к о т р ы
(К т) =
ю eps). Ча с т и в ы ч и с л ен и й
я в р ем н
е в се
а в е р о я тн о с те й о од п о л н и е т л ь н о г
. о и н
.
-
е нфу к ц и
и ош и бок
, у од л ж е
н п р и н а дл е ж а т
ь
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1023 zyxwvutsrqpon
MATLAB и Toolbox
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA expintzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — и н етгр а л ь н а я п о к а з а те л ь н а я фну к ц и я :
Ei = e xp in t ( x) . • fac to rial — ф а к то р и а л
.
р = fa c t o r i a l (n) — н оахж едн и в е т п о лч у а е с т я то л ь к о лд ж ен н ы й .
е ф а к то р и а л я п , м ен ь ш и х
, че
• gamma, gammainc, gammaln — гам - н уфкц и Г ^ ( а ) и л о га р и ф
о ч и сл я о сатль н ы
я Г ( а ) , неполн а
м г а м а - нф у к ц и
а п , то ч н ы х — п р и б л и
й от
я - гам н КЦИу ф
Я
.
= ] otdt;
Г(а)
а ц ело г м 22, дл
Г Д а ^
1
а
У
о zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE \ )о zyxwvutsrqponmlkjihgfedcbaZYX у = gamma (a), у = gammainc (x, a), у = gammaln (a).
• legendre — п р и с о еид н ен н ы
п о л ну о р м и р о в а н н ы
е н фу к ц и
и Ле ж а н др
е п р и с о е ид н е н н ы
ед л я м ы
е ф о р м л уа
гд е Р п (х) — п о л и н о м
е н фу к ц и
а п ер в о г и Ле ж а н др
о род
а Р™ (х) и
а S™(JC ), о п р е
-
и
ы Ле ж а н др а
.
• р = legen dre (n, х ) — в ы ч и слен и е п р и с о е ид н е н н ы х н фу к ц и й еЛ ж а н я н а вохнд ы е др а п е р в о г о род а дл я все х m = 0, 1, . . . , п . О гр а н и ч ен и е ч и сло , м ен ь ш е е 256, х п р и н алд еж и т о рт е з к у а р г м у е н ыт : m — ц ело [- 1,1]. Е сл и х — с к а л я р , т о р яв ляест я в е к то р о м , дл и н а котрог о н а ие д н и ц р в о з в р а щ а ест н фу к ц и л ен н ы
у боль ш
е п . В счлуае я м а тр и ц а и Ле ж а н др а п ер в о г е дл я к а ж од г о э л ем н т
, к о гд
, сот л б ц
а х — в е к то р , в в ы охнд о м а р мг у е н т ы котро й с о ед р ж а т п р и с о е ид н е н н ы о род а лд я все х m = о , 1, . . . , п , в ы ч и с а в е к то р а х .
• р = legendre(n, x, 'sen ') —в ы ч и с л е н и е п онл у о р м и р о в ан ы идн е н ы х н уф кц и й е Лж а н р д а п ер в о г о род а лд я вес И н ет р ф й с а н а л о ги ч е н legen dre (n, х ) .
е е -
х п р и со е х m = о , 1, ..., п .
1024
р П е ин л о я ж
zyxwvutsrq
— н аохж едн и е еп с т н е й дв о й к и . П pow2 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA • х = pow2 (у ) — в в ек от р в сетп н ь , з а п и с а н н у
е х в о з в р а щ а ест ю в со втесюу щ е
• х - pow2(f, е ) — э лем н ыт x( i) = f( i ) *2 A e ( i ) . • rat, rats — п р и б л и ж ен и ч и се л (р а ц и о н а л ь н о
я р е з л у ь ат м э л ем н т в е к то р
а х в ы ч и с л я ю ст
е в е щ е св т н н ы й др о б ь ю )
т в о з в едн и е у .
х ч и се
я ч и сл
а 2
я п о фо р м л у
л о нт о ш е н и е
м в уд
е
х ц ле ы
х
.
• [п , d] = r a t ( x, t o i) —в о з в р а щ а е т вд а ц ел ы х ч и сл а п и d та к и х , ч т о n/ d п р и б л и з и ет л ь н о равн о х (с то ч н о с ьт ю t o i) в юслуед щ е м см ы сле : abs (n/ d - х ) = p И Л
И n > = p , TO U И V
, а с и s — н е б о л е е р с тр о к ь d i a g (С ) . / d ia g (S).
. О б о б щ е н н ы
е
• s = gsvd(A, в ) —в о з в р а щ а е т в е к то р обобщ ен ы х с и н г ул я р н ы х з н аче ний , о п р е д е л я е м ы й к а к d ia g( C ' *C ) ./ c.iagzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM (S'+S) ) .zyxwvutsrqponmlkjihgfedcbaZYXWV • schur — р а з л о ж е н и
•
е Ш ур а
.
[и , т ] = sc h u r (X) — д л я к в а д р а т н о й м а тр и ц и ун и т а р н а я м а тр и ц а и т а к и е , ч т о х = и * т * и ' и и
• т = sc h u r ( X) —в о з в р а щ а е • svd — с и н г у л я р н о •
т то л ь к
е раз лож ен и
о м а тр и ц
я Ш ур а
е с и н г ул я р н ы
.
х ч и сел
.
[и , D , v] = svd (А ) — н а хо ж д е н и е м а тр и ц ы D С н е о т р и ц а т е л ь н ы м и ди а го н а л ь н ы м и э л е м е н та м и , р а с п о л о ж е н н ы м и в п о р я дк е уб ы в а н и я , и ун и т а р н ы х м а тр и ц и и v т а к и х , ч т о А == U * D * V. Е С Л И size ( A) = [m n ] , T O size( D ) = [m n ] , si z e ( U ) = [m m ] , size ( V) = [n. n ] .
• С ТЮ
е d в о з в р а щ а ю т с
я с и н г ул я р н ы
[U, D, V] - svd (А , 0) —е С Л Я т о л ь к о п п е р в ы х с то л б ц о
е леыинй
Р е ш ни р а з л ое ж н и
• c h o i — р а з л о ж е н и (с и м м е т р и ч н ы х
х ура вне ий
ц
о п о л о ж и те л ь н
р ] = c h o i (А ) — в т о р о й т и з беж ат ь со бщ ен и я й А , в о з в р а щ а я в р ю м а тр и ц у ю т р е уг о л ь н у е п о л о ж и те л ь н о о п р е де л е н н о н R = c h o i( A) .
я c h o i п р и м е н и м итцр"ма ав ыг л
ы А .
о о п р е де л е н н ы
х э р м и то в ы
х
.
• R = c h o i (A) — в о з в р а щ а е т в е р хн ю ч т о R 1 *R = А . Е с л и в хо д н о й а р г ум е н де л е н н о й м а тр и ц е й , т о в ы в о д и т с • [R, п оз воляе о п р е де л е н н о в е р хн ю В с л уч а ан ало ги ч е
а м а тр и ц
, е м а т ри
е Хо л е ц к о г ) м а т р и ц
е чи сл
И s i z e (A) = [m п ] И т > п , Т О Я Л СИ Ч Ы В в и и s i z e (D) = [n n ] .zyxwvutsrqponmlkjihgfedcbaZYX
е и обр а ещ ни
Ф ун к ц и
у т раз лож ен и
е и н а хо ж д е н и
• d = svd ( A ) —в в е к т о р
и за рц я
ы х н а хо д я т с я м а тр и ц а т ? * и = eye ( si z e ( и ) ) .
а к раз реж ен н ы 15).
ю т р е уг о л ь н у т н е я в л я е тс я со бщ ен и
ю м а тр и ц я п о л о ж и те л ь н е о б ош и бке
у R т а к у ю о оп ре
, -
.
до п о л н и те л ь н ы й в ы хо д н о й а р г ум е н т е н е п о л о ж и те л ь н о о б ош и бк е в с л уч а ц ело е п о л о ж и те л ь н о е чи сло , а в R — т а к ую , ч т о R ' * R = A ( i : p - i , l : p - l ) . й м а тр и ц ы р = о и р е з ул ь т а т м м а тр и ц а
м (с.м
р.азд
"Фак-то
1030
zyxwvuts
р П е ин л о я ж
"Оинеащр б маитцр " гав ы л 6). DzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA invzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — о б р а щ е н и е м арт и ц ы (см . р.азд в = inv (А ) — в о з в р а щ а е В счлау е п лох й о бс ул о в л е н н о с т З а дн и п о и ск й еон
е в к а ч есвт у о б р а тн о "ы аргбе л
т м а рт и ц у
, о б р ант у и А в ы адест
е в о х дн о г о а р мг у е н т й к н е й ат к ж е в си м воль н о гав ы л 17).
• lu — LU - р а з л о ж ен и
е к в а др тн о
а си м воль н о
• [L, и , Р ] = lu(A)—д о п о л н и т е л ь н в о к р та к юу , ч т о Р * А = L*U .
Ф ну к ц и маитцр
й а р мгу е н
ь п р о ц ес о
П lsqn o n n eg— н аохж едн и а л ге б р а и ч е с к и х р уа в н е н и от д м н аи м ен ь ш и х к в а д р то ав ыг л 16).
м м а рт и ц а
р.азд
р > ох
•
р.азд
я н ев яз к
-
"Фак-то ы л и н ей н ы
й м а рт и ц е й
х ) ме
-
кавтр"о д
ы н ев яз к
и
я в к а ч е с вт с в ы ч и с л ен и
е на -
й пу р а в л яет е option s нфу к ц и е 16).
М а р г ум е н т
й
е r e sn o r m
и norm(c*x - d)^2.
[X, r e s n o r m , r e s i d u a l ] = l s q n o n n e g ( . . . ) — В НОД ЫХВ
r e sid u a l в о з в р а щ а ест
а [0,1])
а п р и н оа ха п р о и з в о з м ен ь ш е муод
я с и е мт
о и с п о л ь з ес т у
[X, r e sn o r m ] = l s q n o n n e g ( . . . ) — В НО Д ЫХВ
т н орм
у п е р сатн о -
м (с.м
о р еш ен и о с к в а д р а тн о "М дтео и ь ншх е а и м
• х = lsqnonneg (с , d, xo, option s) —п р о ц е с с я п р и п ом ощ и з адн и я п а р м е тр о в в с р тк у optim set (с.м р.азд "Пытер амр оизацпт"м ав ыг л я к в а др
у и и й п ер -
т в е к от р х с н е о тр и ц а те л ь н ы м т norm (c*x - d ) .
• х = lsqnonneg (с , d, xo) — в ек от ч аль н ог о п р и б л и ж ен и я .
в о з в р а щ а е ст
т м а рт и ц
а гл а в н о г
а к р аз р еж н н ы 15).
• х = lsqnonneg (с , d) — в о з в р а щ а е к о м п о н е н та м и , к о т р ы е м и н и м и з и рюу
•
ю м арт и ц
о э л ем н т . П е р с та н о в к о э л ем н т а в t r e sh р а а в сот л б ц е .
о э л ем н т
е п о л ж и те л ь н о г й (н е о б яз а ет л ь н в (с.м
т к ли-
й тр е г у о л ь н о
х м а рт и ц
ь ди а г о н а л ь н о г
" гав ы л
ы п р и в о ди "Зиач д
р.азд
т t r e sh (и з о рт ез к
м вы бор я р а з р еж н н ы
я lu п р и м ен и м
и за рц я
ю р т е г уо л ь н у а к н и жн е о воз вращ ае
• [L, и ] = iu(A, t resh ) — вохнд о т пу р а в л я т и LU - р а з л о ж ен и , есл и млоуд о п о ди а г о н а л ь н о г
е А .
.
т в е рн х ю ь с в е нд
т бы т
й м а рт и ц .
й м а рт и ц е (с.м
й фо р м
й м а тр и ц ы
• [L, и ] = lu(A) — в о з в р а щ а е м а рт и ц у L, к о т р а я м ож е с та н о в к а м и .
п о з в о л яе ж ен д и ди ст я л я л ю б о г
ю к к в а д р а тн о я п р е уд ж ед н и е
М а р г ум е н т
е
а с* х - d.zyxwvutsrqponmlkjihgfedcbaZYXWV
ќ [X, resnorm, residual, exitflag] = lsqnonneg(...)—зинеча н иц а в ы ох дн о г о а р гм у е н т а e xit f lag св и едлть св у т о б с пу е ш н о
е иде м н а -
р П е ин л о ж
1. сО новеы
о жхенд и п с и ут м о
ком ыанд
и р еш ен и я е ч и рл
и фцнуки
, а н о л о и тер а ц и й
MATLAB и Toolbox
1031 zyxwvutsrqpo
ь о з н ач ет , ч т о п р ев ы ш ен о м ак си м аль н о до .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
ќ [X, resnorm, residual, exitflag, output] = lsqnonneg(...) — с р тк у а output соедр ж и т и н фо р м а ц и ю о п роц ес е в ы ч и с л ен и й .
• [X, resnorm, residu al, exit flag, output, lambda] = lsqn on n eg(...) — воз вращ ае т вд о й с в т е н н ы й в е к то р lambda, lambda (i) 0.zyxwvutsrqponmlkjihgfedcbaZY П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA peg — п р еод бсул о в л ен н ы й и о б ы ч н ы й м ео т д с о п р яж ен н ы х г р а д и е н то в • х = peg (А , Ь ) —р е ш е н и е с и емт ы л и н ей н ы х а л ге б р а и ч е с к и н и й *А Х= Ь м еотд м с о п р яж ен н ы х г р а д и е н то в . Зесд ь А — с и м ерти ч н а я п о л ж и ет л ь н о о п р е дл н н а я м а тр и ц а . Н а ч л ь н ы м п р и б л и ж ен и е я в л се т я н л е ву о й в е к то р . С охид м о с т ь с ч и а т ес я д о с ит г н от у й п р о ц ес е и ет р а ц и й norm(b - A*b)/NORM(b) n , TO В О З В р а щ а Ю Т С
е п с т о л б ц о
Я
в Q.
[Q , R, Е ] = Q R ( A, 0) — Т
щ ас е т
т м а тр и ц
О Ж е
а п е р с ат н о в
, ЧТ
О И [ Q , R ] = QR ( А , 0 ) , Н О В О З В р а
к Е такая
е функци
-
, ч т
о Q*R = А ( :, Е ) .zyxwvutsrqponmlkjihgf
ц
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
й о т иртам
р.азд "Вине лисч ы кастеихч м кн цийфу от эвтнео ме л маитцр .м С вы 2.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
" га- л
expm — м а тр и ч н а я э к с п о н е н ат , и с п о л ь з о в а н и е : F = expm(A). П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• funm — в ы ч и с лен и
е п рои з воль н о
й н фу к ц и
и о т м а тр и ц ы
• F = funm(A, 'funname') — в ы ч и слен и яв л ен н о й В - ИЦКнЙЛ а у ф И funname. Е сл ад ес т то ч н о м а тр и
и и со х н д а я м а рт и ц я п р еуд ж едн и . Д л я э р м и от в ы ц р ез луь ат , к а
а и ме е о то м х (си м ерти ч н ы х к п р а в и л о
[ F , e r r e s t ] = fun m (A,
•
ед р ж и
т грбу
ю оц ен к
• logm — м а рт и ч н ы
т бли з к и , ч т
е н фу к ц и
и о т м а рт и ц
е с о б вт е н н ы о р ез луь ат
, п о члуаестя
ы А , о б ъ
е з н ач ен и я т бы т ь н а й ед о о п р е дл н н ы о то ч н ы й
т м ож е ) п о л ж и те л ь н д о с та о ч н
f
f un n am e f ) —В Ы ХО Д Н О
у р е з л у ь ат
й л о га р и фм
.
Й а р г ум е н
, т о в ы н н е
т e r r e s t CO-
. .
•
т e r r e s t С о д е р ж и
[L, e s t e r r ] = lo gm (A) — НОД ЫХВ
• sqrtm — к в а др тн ы
-
.
ы А . ЕС Л И А и м е т о рт и т едбу т к о м п лек с н ы м о то ч н о , т о в ы адест
у р е з л у ь ат
х
• L = logm (А ) — в ы ч и слен и е л о га р и фм а м а рт и ц ц а ет л ь н ы е с о б вт е н н ы е з н ач ен и я , т о р ез луь ат Е сл и р е з л у ь ат т н е м о ж е т бы т ь н а й ед н д о с та о ч н п р еуд ж едн и е (см . фну к ц и ю funm). б у ю о ц ен к
-
Й а р г ум е н
. я
т гру
-
. й к о р ен
• х = sqrtm (А ) — в о з в р а щ а е л я ес т я в ы р о ж ден н о й м а рт и ц е й
ь и з м а тр и ц ы
.
т м а рт и ц
у х та к юу , т о в ы адест
, ч т я п р е уд ж ед н и е
о х* х = А . ЕСЛ И А яв .zyxwvutsrqponmlkji
ќ [X, resnorm] = sqrtm(A) —возвращ е т В reznorm уньлетисонтО ТСОНШерГ Ь norm (А - ^ Х 2 , ' f г о ' ) /norm (A, 'fro').
ю О П -
р П е ин л о ж
1. сО но веы
оП и с
ком ыанд
к корне й
1033 zyxwvutsrqpo
MATLAB и Toolbox
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• f so l ve — р е ш е н и Ле в а рован ин й "
и фуцнки
е н ели н ей н ы
я част ь ур а в н е н и а в ф а й л - ф ун к ц и ав ыг л 16).
х ур а в н е н и
й и с и с те
м ви д
а f( x) = о .
я и л и с и с те м ы f (х ) = о д о л ж н а бы т ь з ап рограм м и и funnamezyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE (с.м .аздр "Ринеш х ий еын л а в у -р ен
• х = fso lve (funname, xO) — в о з в р а щ а е ч е с тв е н ачальн ог о п ри бли ж ен и я .
т реш ен и е
, и с п о л ь з у
я х О в ка
• х = fso lve (funname, xO, o p t i o n s) — п р о ц е с с реш ен и п а р а м е тр а м и , з а д а в а е м ы м и в с т р ук т ур е o p t i o n s. • х = f so l ve (f unname, xO, o p t i o n s , p i , p 2, ли н ей н ы х ур а в н е н и й и с и с те м п р и фи кси рован н ы м е тр о в p i , р 2 , ..., о т к о т о р ы х з ави си т лева я част ...). Р 2 , П ри м ен ен и м е тр о в
ны
х н фу к ц и
ци
то в "отер памр й п освящ е
и щх •
, м о ж е
[х , вы чи слен н о
е fso i ve д л я и с л е д о в а н и т бы т ь о рган и з о в ан
й та к
, к а к о п и с а н
н р.азд
ав ыг л "Ве ын ж о л
о пр
я ф ун к ц и й и п омощ
о в р.азд
я уп р а в л я е т с
, з а в и с я щ и и влож ен н ы
х о т п ара х и ан он и м
фукн ций,
fva l] = fso i ve (f unname, xO, е о т п ри бли ж ен н ог о реш ен и я
-
- за в яи с
ю влож ен н ы ав ыг л
я
. . . ) — р е ш е н и е не х з н ачен и я х п ара ь с и с те м ы f (x, p i ,
"Иваоине д лс
6. П р о г р а м м и р о в а н и кн ци "фу
х ф ун к
-
5.
. . . ) — в о з в р а щ а е .
т з н ач ен и
е f,
• [х , fva l , e x i t f l a g ] = f so lve (f unname, xO, . . . ) — з н а ч е н и е ЫВ Г О ХОДН О а р г у м е н т а e x i t f l a g с о д е р ж и т и н форм ац и ю о з аверш ен и и вы ч и слен и й . Е с л и e x i t f l a g > о , т о п р о ц е с с сош елс я и реш ен и е н а й де н о е с л и e x i t f l a g > f = inline('х.^ 2 + у . 2- 9'); >> ezpiot(f)
В э от
м сч л ау
[х - 2тг
, 2тг] .
• e z p i o t (x, у ) — в ы в о
» Дл
и з а да н н ы
• e z p i o t (f,
ОН
Й ф ун к ц и
= 0 ф ун к ц и
и з а да н н о
х ф ун к ц и
й п о ум о л ч а н и е графи к
и н а о тр е з к
[ t m in , t m a x].
и
а явн о
й y = f{x)
и не
-
е [min, m ax]. е графи к
а н еяв
-
е [xmin, xmax] x [xmin, ymax].
[ t m in , t m a x] ) — п о с т р о е н и и x(t),
й ф ун к ц и
ю ЈЕ [0, 2 я ] .
[xmin, xmax, ymin, ymax]) — п о с т р о е н и
й ф ун к ц и
е [- 271, 2х]с х
t *c o s( t ) ' )
и / ( х , у) В к в а д р а т
• e z p i o t (x, у, з а да н н о
!
я в к в а др т
а п а р а м е тр и ч е с к
[min, max]) —п о с т р о е н и
й f(x,y)
• e z p i o t (f,
к срт о и ст
д графи к
e z p i o t ( ' t * s i n ( t ) ' , я п а р а м е тр и ч е с к
явн о
ю гр а фи
е п о му о л ч а н и
y(t)
дл
е графи к я з н ач ен и
й п а р а м е тр
а п а р а м е тр и ч е с к а и з о тр е з к
и а
1042
zyxwvutsrq
р П е ин л о я ж
• ezpio t (hA, . . .) — в ы в о • h = ezp io t ( . . . ) — з ап и с ли н и и м о гу т бы т ь и з м ен ен ву 9). • e z p o i a r — п о с рт о ен и ск и м п о дб о р о м ш аг
д гр а фи к ь в h указ етл ы в ад л ь н е й ш е
е кри во а п о армгуен т
• ezpoiar (fi) — п о срт ен и срт о к а с и е м со у л д ан о н и м н а я н фу к ц и я е т и сп о ль з о в ан и
а н а ос и с указ етл я н а л и н и ю г р а ф и к а м п р и п ом ощ
й в п о л яр н ы у и в ы в о д е кри во
й н фу к ц и е й . З адн и
х к о р ди н а т м з а го л о в к
) — Т О же ќ ezpolar(f, [а , Ь ]
е двму ер н о г
. С в о й свт а и set zyxwvutsrqponmlkjihg (с.м га- л
я 0е [ О
, 2я ] , дг е fi —
о з ак р аш ен н о г
о м н о г уо л ь н и к а
.zyxwvutsrq
.
о ди н а к о в й дл и н ы с о ед р ж а с ч л уа е н е з а м к н от у г о м н о г уо л ь н и я с п ер в о й . Ц в е т о п р е дл я ст а с : ' г ' , ' д 1 , ' Ь 1 , ' с 1 , 'га в в фо р м а т е [г д ь ] , н а п р и м е р
f i l l ( [ - 3
0 1 2
0 - 5 ] ,
[ 2 3 2 1 9
- 1 ] ,
'с' )
»
f i l l ( [ - 3
0 1 2
0 - 5 J ,
[ 2 3 2 1 9
- 1 ] ,
[ 0 . 4 0 . 2
П лавн о е и з м ен ен и е ц в ет а з али в к и в п р е дл а рт е б у т ку а з а н и я в е к то р а з н ач ен и й , со втес юу щ и е з н а ч ен и т . е . size (с ) = size (х) . кУ а з а н н ы с я (см . фну к ц и ю caxis), а з ает м п р о и с о х ид ц в ет а в н рту и м н о г уо л ь н о й о б л а с ти , н а п р и м е р
х е щк т у е я сн ач л т б и л и н ей н а
в (х и л в к о т р о г ы м а рт и ц
т к о р ди
-
1
я з н ач е , 'у 1 , 'w1, :
0.1])
й п а л и рт х ц в ет а м а с ш ат б и р ю у т я и н етр п о л яц и
ы ц в ет у в ер ш и н
а , я
:
fi l l ( x, Y, с ) — п о с рт о ен и е ср аз у н ес к о л ь к и ч и сл о м н о г уо л ь н и к о в равн о с от л б ц а м м а рт и г а е ст я , ч т о м а рт и ц ы о ди н а к о в ы х р аз м ер о в ) . Т р е ти ад ю щ и й ц ве т з а л и в к и , м ож е т бы т ь в е к то р о м , дл и н да е т с ч и сло м с от л б ц о в в м а рт и ц а х х и у . кУ а з а н и ч т о size (С ) = size( X) , п р и в о ди т к п лав н о й з али в к г уо л ь н и к а . х а р мг у е н о т о э лем н от е к f i l l э к в и в а л ен нт а м а тр и ц а , сот л б ц
о
о ezpiot.
»
, ч и сл
я ли б я р бе у т
, Т Ч О И ezpoiar (f i) , Н О Л Д Я 0Е zyxwvutsrqponml [a, b].
• f i l l (x, у , с ) — в ек от р ы х и у н ат ы в ер ш и н м н о г уо л ь н и к а . В к а п о сленд я я в ер ш и н а с о еи д н я с е т н и е м тр е ь г о в о х дн о г о а р мг у е н т f х э лем н от k' и л и в ек от р м и з тре
О нд и м и з в о хн д ы р ы м — в е к то р Т ак о е о б р ащ ен и в е к то р а ку а з а н в е к то р о м .
.
ь н а н е , inline- н уф кц и й фн у кц и и и л и указ етл й п р и оп релдн и и фн у к ц и
ќ ezpoiar(hA, ...),h = ezpoiar(...) —а н а л о г и ч н П f i l l — п о с рт о ен и
.
х с а в от м а ит ч е а г р а ф и к а
й г = ф ( 9 ) лд
, указ елт е ан о н и м н о х о п ерац и
я п оэ лем н т ы
м Ь А
и у ) м о ж е о равн о обы ч н ом у
т бы т о чи сл ы о ди н а к о в
х м н о г уо л ь н и к о в , ц х и Y (п р епд о ла й а р мг у е н т с , з а а котрог о со в п а е м а тр и ц ы с , та к о й е к а ж до г о м н ог ь м а тр и ц а , а в от у с рт о к м а тр и ц ы . , в к о т р о м в м ес т о ы и с о в п а д ю т с
р П е ин л о ж
1. Ос но веы
Ф ну к ц и п ом ощ и ц в еот м
ком ыанд
и фуцнки
я f i l l од п сук ае и указ н и я со втесюу щ и , н а п р и м е р :
1043 zyxwvutsrqpon
MATLAB и Toolbox
т п о с рт о е н и х рт о е
е м н о г оу л ь н ы к а р мг у е н о т
х о б ъ е к от в с к о р ди н а т м
в пр
и и
f i l l ( x l , y l , ' у ' , х 2 , у 2 , ' д ' ) В Ы О НД Х Й а р мг у е н т ле й н а вс е п о с рт о ен н ы h = f i l l ( . . . )
С в о й с вт ад л ь н е й ш е
а к а ж од г м пр
, в о з в р а щ а ем ы е м н о г уо л ь н ы
й f i l l , явлсет е о б ъ ек т
я в е к от р м к у а з ет а Patch.
ы ти п
-
о и з гр а фи ч е с к и х о б ъ е к от в м о гу т бы т ь и з м ен ен ы в и п о м щ и set zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED (с.м гаву л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA fpiot — п о срт ен и е н фу к ц и и о нд о й п ер м ен о й с а в от м аит ч ес к и м п од "Ф- айл кн ци фу с оинм д вм ын дхо агрубор м ш аг а п о армгуен т у (с.м р.азд мтно ме " гавы л 5 и р.азд "Бе ло он б пр д о о / plot" гавы л б) .
П h i s t — ги с то гр а м мы гатмор вх ынкерто
а м а рт и ч н ы дх"аын авыг л
• h i st (у ) — о т б р а ж ен и у , лд я п о срт ен и н о й дл и н ы .
х ил
и в е к от р н ы 3).
е г и с то г р а м
х ад н н ы ы да н н ы х
я г и с то г р а м
, з а п и с а н н ы
ы и с п о л ь з се т у
• n = h i st (у ) — в ы охнд о й а р мгу е н ч и сл о э л е м н от в и з у , п о п ав ш и то г р а м а н е о т б р а ж е тс я .
я е сд я т
р.азд
"Ги-с
х в в е к то р ь и н ет р в а л о
т в в е к от р , а в в ек от р .
• h i st (у , т ) — о т б р а ж ен и то р е у , лд я п о срт ен и н о й дл и н ы .
ы и с п о л ь з ес т у
е г и с то г р а м
е п ч и сл о э л е м н от в е xout — гр а н и ц
ы да н н ы х
я г и с то г р а м е г и с от г р а м
, з а п и с а н н ы я m и н етр в а л о
ы да н н ы х
я ги с то гр а м я з н а ч ен и ям
ы и с п о л ь з ю у ст и э лем н от
в в е к то р
е в рав
т п я в л се т я в е к от р м и с о ед р ж и х в к а ж ыд й и з десят и и н те р в а л о в
• [n, xout] - h i s t ( . . . ) — в о з в р а щ а е п о п ав ш и х в к а ж ыд й и з и н ет р в а л о в те р в а л о в . Г и с то гр а м а н е о т б р а ж е тс я
• h i st (у , х ) — о т б р а ж ен и то р е у , дл я п о срт о ен и котры х о п р е дл я ю ст
х (с.м
т
. Г и с
,
ы ин х в в ек в рав
-
, з а п и с а н н ы я и н ет р в а л ы а х .
-
х в в ке , ц ен рт ы
• h i st (hA, . . . ) — в ы в о д г и с то г р а м ы н а о с и с к у а з етл м hA в м ест о е кщт у и х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA semilogx, semilogy — построени ќ loglog, и п о л у га р и фм и ч е с к о м м а с ш ат б х .аздр "Грик аф в ксеихч ми лгиофар П pie — о т б р а ж ен и мы агмр вх ынкерто
е ад н н ы дх"аын авыг л
х в в и ед
е о к и ф арг . И с п о л ь з юу ст маатхшбс
" гавы л к р г уо в 3).
й ди а г р а м
в о к с Ве ч и м ф и р а гол я та к ж е 3).
м , к а к p lo t (с.м
ы (с.м
р.азд
"Ди-
1044
zyxwvutsrq
р П е ин л о я ж
• p i e ( x) — п л о щ а д п роп орц и он альн п олн а я к р уг о в а
ь с е к то р а к р уг о в о а x( i ) / su m ( x) . Е с л я ди а гр а м м а .
• p i e ( x, p a r t s ) —н е н у л е в ы е ком п он ен т м ен т ы ДОЛЖН Ы бы т ь О В О К аНИ Д О с о т в е т с т в ую т с е к то р а м , н е м н о г • p i e ( . . . , l a b e l s) — п р и п о с т р о е н и ю тс я н а дп и с и р я до м с к а ж ды до л ж н ы с о де р ж а т ь с тр о к и с т е к с т о • p ie( h A, . . .) — в ы в о вм ест о т е к ущ и х .
С в о й с тв да л ь н е й ш е
а к а ж до г м пр
и к р уг о в о м с е к то р о м м н а дп и с е й
й ди а гр а м м . Я ч е й к .
й ди а гр а м м т в е к то
о x( i) , я не -
ы в е к т о р а p a r t s (в хо дн ы е а р гу Ы le n gt h ( p a r t s) = le n gt h (x)) м и з к р уг а ди а гр а м м ы .
Й Н ДЛИ о в ы д в и н ут ы
д к р уг о в о
• h = p i e ( . . . ) — в о з в р а щ а е объект ы p a t c h и t e xt , о б р а з у ю щ и
й ди а гр а м м ы , о т в е ч а ю щ е г и sum(x) > х = - p i : p i / 3 0 : p i ; О > > у = s i n ( x ) ; О »
В то р ы с то л б ц о н есколь к »
plot(x, y)
м а р г ум е н т о в к о то р о о графи к о в х =
м p l o t м о ж е т бы т ь м а тр и ц а , ч и с л й с о в п а да е т с д л и н о й в е к то р а х . П р и э т о . П р и м е р :
- 10:0.1:10;
> > у = [ s i n ( x ) ; c o s ( x ) ; »
p l o t ( х ,
у )
з 1п (х).
л
2 ;
cos(x)./ 42];
о с тр о м в ы в о ди тс
к ил
и я
р П е ин л о ж
1. сО но веы
ком ыанд
Д о п о л н и те л ь н ы ит п м а р к е р о в В оз м ож н п ар
й с рт о к в ы о п о с рт о е н и
ы в е к от р
е н ес к о л ь к и й а р мг у е н т
а з н ач ен и y l ,
х ,
. . . ) . С к аж од (с.м р.азд "Иине зм
у 2 ,
х ,
й п аро
уЗ
х гр а фи к о а и в е к то р
,
. . . ) И Л
й м ож е
т бы т
стйвсо
линй
е св о й ст е с в о й с вт "Стйвсоа
ь ку а з
• h = p lo t ( . . . ) — в о з в р а щ а е ван н ы е о б ъ ек т ы Lineseries. С в о й с вт ад л ь н е й ш е
а к а ж до г м пр
у 2 ,
я : хЗ
,
уЗ
,
т zyxwvutsrqpo
а ли н и 9), п р и м ер
и на ы в
й о п и сан : 5 ,
' M a r ke r E d ge -
м hA в м ест
р к у а з етл
й н а с о з ад н н ы в м о гу
х о б ъ е к от
. . . ) —
, с о едр ж ащ и м
' M a r k e r S i z e ' , 'у' )
гаву л
х 2 ,
, и
й а р гм у е н
в н а о с и с к у а з е тл
о и з гр а фи ч е с к и и п о м щ и set (с.м
, куа з ы в а й фн у к ц и
' P r o p N a m e ' , ' P r o p V a l e 1 ,
а п ар м и
т в е к от
х о с ях
н с рт о к в ы
е (св о й свт
д гр а фи к о
y l ,
ь ли н и
3).
о гр а фи к
> > p l o t ( x , у , ' M a r k e r ' , ' о ' , C o l o r ' , ' g ' , ' M a r k e r F a c e C o l o r ' ,
• p lo t (hA, . . . ) — в ы в о кщ у и х .
в н а онд и а з н ач ен и
" гавы л
в ли н и и к а ж од г а и ег о з н а ч е н и линй и птйес"хвонр авыг л
т и ис т л
И p l o t ( x l ,
p l o t ( x , у , ' P r o p N a m e 1 , ' P r o p V a l e 1 ,
ку а з а н и з в ан и .аздр
1045zyxwvutsrqp
MATLAB и Toolbox
й а р мгу е н т з аде т ц ве : p lo t (х , у , ' r : o f ) .
, н а п р и м е р
p l o t ( x ,
•
и фуцнки
т бы т
о ет е ри со
ь и з м ен ен
ы в
9).
• h = p lo t ( ! v6 ! , . . .) — в о з в р а щ а е т в е к от р к у а з етл й н а с о з да н н ы е баз о в ы е о б ъ ек т ы Line лд я со в м есит м о ст и с п р е ыд щ у и м и в ер с и ям и M ATLAB (б а з о в ы е и ри сован ы е о б ъ ек т ы о п и сан ы в р.азд "Гр-еич аф к сие ок"етыъ б ав ыг л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE • polar — п о срт о ен и
е гр а фи к
а в п о л яр н ы
х к о р ди н а т х
• p o lar ( t h et a, rho) — о т б р а ж ен и rho о т со втесюу щ и х з н ач ен и в р а ди а н а х . Н а гр а фи к н ан о с и ст
!
е з ав и си м о ст й э лем н от я секта
х в в и д
• stem(x) — о т б р а ж ен и м ер о в . • stem(x, у ) — в ы в о в е к от р е х , п р и м ер : »
и и м ар к ер о м (см . фну к ц и й ди а гр а м ы
и э л е м н от й м ас и в
в о п р е дл я ю p lo t ) .
> > s t e m ( x ,
о срто
в в е к то р а у с абсц и с ам и
а х о т ег о н о , ук а з а н ы м
cos(х)] ;
у )
к м ас и в
а у до л ж н
о р а в н яьт с
я дли н
-
.
х = ( 0 : 0 . 1 : 1 0 ) ' ;
> > у = [ s i n ( x )
Чи с л
д з н ач ен и
а ли н и
е ч ер н к о в
е з ав и си м о ст
а х
.
!
я да н н ы
и э л е м н от в в е к то р а t h e t a , з а д н н ы
в в е к то р
• p i o i a r ( t h e t a , rh o, r : o ) — св о й свт ю ст я до п о л н и етл ь н ы м с рт о к в ы м а р мг у е н от • stem — в и з аул и з а ц и
.
е в е к то р
а х .
и в
-
1046
• stem(x, у , м ар к ер а .
f
r *—' ) —в ы в о
• stem (hA, . . . ) — в ы в о
д с указ н и е
м ц в ет
д н а ос и с указ етл
• h = st em ( . . .) — в о з в р а щ а е т в е к от в ан н ы е о б ъ ек т ы Stemseries (и х ч и сл
а и сит л
Ба з о в ы ав ыг л
е и ктонрыу
И сп оль з ован и о б ъ е к от
р к у а з е тл о р а в н о к о ли ч есвт
е гир ак ф
е н и з к о ру в н е в о в о б ъ я с н я е ст
а
й н а с о з да н н ы у с от л б ц о у с то л б ц о
е ри со в в у) .
й н а с о з ад н н ы в в у) . Д л
е я
я с от л б ц е в а
х да н н ы х
• Ь аг щк у и х
С в о й с вт ш е м п р
: Ь аг
я р т ем х р н а я ди а г р а м З (rand (3, 4))-
д ди а г р а м
ы н а ос и с указ етл
, п р и м ер
З (hA, . . .) — в ы в о .
• h = Ь аг го н а л ь н ы
З ( . . . ) — в о з в р а щ а е е о б ъ е к ыт . а п о л и го н а л ь н ы и п о м о щ х да н н ы х
т в е к от
и set {с.м
ь — го р и з о н та л ь н а
и
й гр а фи к и лд я з а д н и я свой ст в гр а фи ч е с к и х 3 и 9.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
я в гав х л
З — в е р ти к а л ь н а
в е к от р н ы
в е к от р н ы
й и ти п
е и ри сован н ы е о б ъ ек т ы о п и сан ы в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP р.азд "Грксеи ч аф к"ет ыъ бо 9.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Тр е мх е р н ы
• з Ь га
я л и н и
м hA.
• h = stem( ! v6 ' , . . .) — в о з в р а щ а е т в е к от р к у а з ет л баз о в ы е о б ъ ек т ы ли н и и (и х ч и сл о р а в н о к о ли ч есвт с о в м е с ит м о с т и с п р еыд щу и м и в ер с и ям и .
• гЬ а
zyxwvutsrqp
р П е ин л о я ж
я с от л б ц е в а , п р и м е р
т бы т
ь и з м ен ен
е п о ли
-
ы в ад л ь н е й
-
9).
я р т ем х р н а я ди а г р а м : bar3h (rand (3, 4) ) .
й гр а фи 3).
• comet3(x, у , z) — о т б р а ж е н и вд и ж е н и я к о м ет ы п о к р и в о й
о ет -
й н а с о з да н н ы
bar3h(hA, . . . ) И п = b a r 3 h ( . . . ) —а н а л о г и ч н • comet3 — а н и м и р о в а н н ы еваоынр гик "афр авыг л
х и
м hA в м ест
р к у а з етл в м о гу
х о б ъ е к от гаву л
а м а рт и ч н ы
о Ь а гЗ
к рт ем х р н о
й ли н и е ан и м и рован н ог
, п р о хядщ е
й ч ер
з то ч к
а м а рт и ч н ы
х и
. и {с.м
р.азд
"Аи- нм
о гр а фи к и с к о р ди н а т м
а в в и ед
й а р мг у е н ю и с п о л ь з ес ту
т з аде
и
( x( i) , y ( i ) , z ( i) ) . • comet3(x, у , z, p) — до п о л н и етл ь н ы й ч е вт р ы л ди н у в хо с т а к о м ет ы p*ien gt h ( Z ) , п о му о л ч а н и
т я
р = 0 . 1 .
• comet3 (hA, . . . ) — в ы в о ле м hA в м ес т о е тк щ у и х .
д ан и м и рован н ог
о гр а фи к
а н а о с и с к у а з ет
-
р П е ин л о ж
1. Ос но веы
окм ыанд
и фуцнки
1047zyxwvutsrqpon
MATLAB и Toolbox
con tour — п о срт о ен и е ли н и й р уо в н я н фу к ц и и в ду х п ер м ен н ы П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "Ке тынуор ик гафр " гавы л 3). • con tour (х , Y, z) — о т б р а ж ен и к е , о п р едля м о й м а рт и ц а м руо в н я о т б р а ж ю тс я пр нф у к ц и .
е нф у к ц и и х и Y, з а п и с а н и а в от м а ит ч е с к
, з н ач ен и
я к о т р о
х
й н а т ес у z. Ли н и и х з н ач ен и я х
ы в м а рт и ц и п о дб и р а е м ы
• contour (Z) — в к ач есвт е о бласт и п о с рт о е н и я в ы б и р а е ст г уо л ь н и к : х = 1:п , у = 1:гп , гд е [n m] = size( Z ) .
я п р ям о
• con t ou r( z, N) H co n t o u r( x, у , z, N) —о т о б р а ж а ю т с н я , со втес юу щ и е N постян н ы м з н ач ен и я м и с е м л у до ч и сл о л и н и й уро в н я м ож е т бы т ь боль ш е N. •
c o n t o u r ( Z , v e c ) И c o n t o u r (X,
Y,
-
я ли н и и р уо в й фн у к ц и
Z , v e c ) — ИЛ Н И
И ур О В Н
,
Я С Т рО Я С
Я
п р и з н а ч ен и ях , явлю щ ис х я э л ем н а мт и в е к от р а vec. Чи сл о ли н и й р уо в н я р а в н о len gth (vec). Д л я о тбр аж ен и я то л ь к о о нд о й ли н и и уров н я , н а к о т р о й н уф к ц и я п р и н и м ае т з а дн н о е з н а ч ен и е v, е у дсл т ис п о ль з о в ат ь ВЫОВЫ З : contour (Z, [v v] ) ИЛ И contour (X, Y, Z, [v v] ) . • [c, h] = contour (. . . ) — в ы охнд ы м и а р мг у е н а т м и я в л ю ст я м а рт и ц а с и н фо р м а ц и е й о ли н и я х р уо в н я (см . фну к ц и ю con tourc) и куаз е т л ь н а п о с рт о е н н ы е ли н и и (р и с о в ан н ы й о б ъ ек т Contourgroup) "Рев аоиынс окетыъ б (Plot Objects) "гавы л 9). (с.м р.азд • [с , h] = contour ( f v6 ' . . . ) — в ы охнд ы м м а тр и ц а с и н фо р м а ц и е й о ли н и я х р уо в н в е к от р к у а з ет л й н а п о с рт о е н н ы е ли н и Д л я со в м есит м о ст и с п р еыд щу и м и в ер с и ям И н фо р м а ц и я до
м с к аж од п ом ощ
, с о едр ж ащ аяс й ли н и е и c la bel (с.м
и а р мг у е н а т м и яв л ю ст я я (см . фн у к ц и ю con tourc) и и (п о л и го н а л ь н ы е о б ъ е к ыт ) . и M ATLAB.
я в м а рт и ц я с о в т ес ю у щ е
й руо в н р.азд
е с , п о з в о л яе
т расп ол ж и т
ь ря е н фу к ц и и п р и 3).zyxwvutsrqponmlkjihgf
е з н ач ен и
"Ке тныуор
и к "гафр авыг л
f
f
ќ contour(X, Y,.Z, 'k: ),[C, h] = contour(X, Y, Z, ' k : ) — ц в е
си т л с тр о к о в о г
ь в се
х ли н и о в о х дн о г
• con tourc — п очлуен и м ен ы х .
й руо в н о а р мг у е н т
я з а д ю ст а (см
е и н фо р м а ц и
я пр . фну к ц и
и о ли н и я
и п ом ощ
и д о п о л н и те л ь н о г ю p lo t ) .
х р уо в н
• с = con tourc (х , Y, z) — м а тр и ц а с я в л ес т . . . ) , ч и сл о блок в со в п аде т с ч и сло м ли н и и ме т сюлуед щ и й фо р м а т (н а п р и м ер е ci) :
ќ Cl = [levell xl х 2 х З ...; pairsl yl у 2 уЗ
З н а ч ен и ч и сл
е нфу к ц и о п а р то ч е к
и н а да н н о , о п и с ы в аю щ и
й ли н и
и р уо в н х ли н и
о
я н фу к ц и я блоч н о й ру о в н я
и дву
х п ер
-
й с = (ci C2 , к ажыд й бло к
]
я с о едр ж и с т я ю ру о в н я
т И
, к а к м н о г уо л ь н и
в le ve ls, a к
1048 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA . р П е ин л о я ж
(о б ъ е к Т О ЧК
т p a t c h ) — в p a i r s i . В е р ш и н а м И ( x l ,
С п особ
и м н о г о уг о л ь н и к
zyxwvutsr
а я в л я ю тс
я
y l ) , ( х 2 , у 2 ) И Т . Д .
ы з а да н и
я в хо д н ы
х а р г ум е н т о
в c o n t o u r c с о в п а д а ю
т с con tour.
• c o n t o u r f — з а л и т ы й ц в е та м и к о н т ур н ы й графи к , и с п о л ь з о в а н и е ан ало ги ч н о ф ун к ц и и c o n t o u rzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд ''Ке тныуор ик "гафр ав ыг л 3). П c yl i n d e r — о т о б р а ж е н и в е р хн о с т и ц и л и н др а
е ц и л и н др
а и ген ер ац и
я то ч е к
• c y l i n d e r — п о с т р о е н и н ог о р а д и ус а и в ы с о ты
е част
и ц и л и н др и ч е с к о
• c yl i n d e r ( r) — п о у м о л ч а н и р уж н о с т и .
ю и с п о л ь з уе т с
• c y l i n d e r (П А , . . . ) — в ы в о о т е к ущ и х ук а з а т е л е м П А в м е с т
д ц и л и н др и ч е с к о .
[х , Y, z] = c yl i n d e r ( . . . ) — в ы х о д н ы м м а тр и ц ы , о п р е д е л я ю щ и е п о в е р хн о с т ь ж а е тс я , е е м о ж н о п о л уч и т ь пр и п омощ и su r f( X, Y, Z ) , su r fl ( X, Y, Z ).
• e z c o n t o u r — о т о б р а ж е н и то м а ти ч е с к и м п о дб о р о г о графи к а с о де р ж и
х н а по
-
й п о в е р хн о с т
и е ди н и ч
-
.
• c y l i n d e r ( г , п ) — п о с т р о е н и е част и ц и л и н др и ч е с к о е ди н и ч н о й в ы с о ты . В х о д н о й а р г ум е н т г я в л я е тс р а д и ус о в п о в е р хн о с т и в з ави си мост и о т в ы с о ты дл я п о с т р о е н и я о к р уж н о с т и о тр е з к а м и п рям ы х ( [ 0. 1 0. 3 0.5 1.3 1.8 1.6 0 . 1 ] , 100).
•
, л е ж а щ и
.
е ли н и м с е тк т вы раж ен и е
и дл
й п о в е р хн о с т и я в е к то р о м з н ачен и й , a n — ч и с л о то ч е к , п р и м е р : c yl i n d e r
я дв а дц а т
ь то ч е
к в до л
й п о в е р хн о с т
. С а м
и а р г ум е н т а м а п о в е р хн о с т , н а п р и м е р
й ур о в н я ф ун к ц и я и х н а хо ж д е н и я , з а д а ю щ е е и с л е д уе м у
и дв у . З а г о л о в о
ь ок
и н а ос
и с
и я в л я ю тс я ь н е о то б р а : m esh ( x, Y, Z ) , х п ерем ен н ы
х с ав к п о л уч а е м о
ю ф ун к ц и ю
П р и м ер
й о б с уж д а е т с 6. О б р а щ е н и с инм д о
м ын в д х о
я в .аздр е к ф ун к ц и "гмтнео гарум ав ы л
"Ве ы ативрсме и п о ук а з а т е л
и е ын и м а он ю оп и сан 5.)
.
о в .аздр
-
• e z c o n t o u r (fun) — п о с т р о е н и е ли н и ур о в н я ф ун к ц и и fun, г д е fun с тр о к а с и с л е д уе м о й ф ун к ц и е й , ук а з а т е л ь н а не , in lin e- ф ун к ц и я ли б ан он и мн а я ф ун к ц и я . З а д а н и е ан он и мн о й ф ун к ц и и и л и ук а з а т е л т р е б уе т п ри м ен ен и я п о э л е м е н тн ы х оп ерац и й п р и о п р е де л е н и ф ун к ц и и . П о у м о л ч а н и ю с ч и та е тс я , ч т о о б л а с т ь о п р е де л е н и я — к в а д , 2тс ] . ( И с п о л ь з о в а н и е in lin e- ф ун к ц и й и ан он и мн ы р а т [- 2я , 27х] х[ - 2я ф ун к ц и ав ыг л кн ци фу
-
— о я и х
укн ци "ф "Ф- айл
:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
A >> fun = inline ( 'x'^cos (у ) +y 2*sin(x) ' ) ;
>> ezcontour(fun)
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
• ezcon tour(fun , [xi x2 yi y2]) — о б л а с ьт П Р Я М О ГУ О Л Ь Н И
К [ x l ,
• ezcon tour (hA, . . . ) — в ы в о
е ли н и
д ли н и
• h = ezcon tour ( . . . ) — з ап и с л и го н а л ь н ы е о б ъ е к ты . а п о л и го н а л ь н ы и п о м щ
ю о п р е дл н и
я с ч и ат е с
я
x 2 ] X [ y l , у 2 ] .
• e z c o n t o u r ( . . . , п ) — п о срт о ен и кс ет и с п уз лам и п о к аж одм у н ап р ав лен и ю
С в о й с вт ш е м п р
1049 zyxwvutsrqpon
MATLAB и Toolbox
й руо в н .
й уро в н
ь в в ек от
я с и сп о ль з о в ан и е
я н а ос и с указ етл р h указ етл
м м ПА
й н а с о з да н н ы
. е п о
х о б ъ е к от в м о гу т бы т ь и з м ен ен ы в ад л ь н е й и set zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м гаву л 9).
• ezcon tourf — п о члуен и в ду х п ер м ен н ы х . И с п о л ь з о в а н и
е з а л и ыт
х ц в ео т е а н а л о ги ч н
м к о н р утн ы
х гр а фи к о о ezcon tour.
в нф у к ц и
х пе • ezm esh— п о срт о ен и е к арк асн о й м о е лд и п о в е рн х о с т и н фу к ц и и в ду р ем н н ы х . И с п о л ь з о в а н и е а н а л о ги ч н о ezcon tour; к р о м е то г , и м сет воз м ож н ост ь п о с рт о е н и я п о в е р н х о с ит , з а д н н о й п а р м е рт и ч е с к и , и о т браж т ь н фу к ц и ю н а к ргоу в й о бласт и о п р е дл н и я . В ы з о в ezmesh с в ы о нх д ы м а р мг у е н от м п р и в о ди т к з ап и с и в н ег о к у а з ет л я н а с о з ад н н у п о в е рн х о с т ь (с.м р.азд "Гркесоич аф пинетасвл дер укн ций"ф авыг л 17). П ри м е р о т б р аж ен и о п р едл н и я . П ер м ен н ы р а т [- 1, 1]х[ - 1, 1] : > > z = »
inline('х
e z m e s h ( z ,
П ри м е
-
А
я н фу к ц и
н а к р г уо в , в п и с ан н о м
й о бласт у в к в ад
я ю и -
2- у^2') ;
[ - 5 . 3
р п о р с т ен и
и z(x, у) = х - у е х и у п р и н а дл еж а т к рг у
и
5 . 3 ] ,
'circ1)
я п арм иет ч ск
и з а нд о
й п н о в ре х с т
и x(s, t) = scost,
y(s, t) = ssint, z(s,t) = s/ 2:zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF »zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA x = inline('s*cos(t)'); >> у = inline('s*sin(t)'); >> z = inline('s/2'); >> ezmesh(x, y, z)
П о му о л ч а н и ю з н ач ен и я п а р м е тр о в t и s п р и н а дл еж а з адн и я рд г и у х и н ет р в а л о в е с лу д т ку а з а т ь и х в ч е вт р о г ум е н т е — в е к то р е [ t i t2 si s2]: > > e z m e s h ( x ,
и ли
, есл
у ,
и п а р м е тр
> > e z m e s h ( x ,
z ,
[ - 0 . 9 * p i 0 . 9 * p i - 0 . 7 * p i
ы п р и н а лд е ж а у ,
z , - [ - 0 . 6 * p i
т о нд о м 0 . 9*p i] )
у и н ет р в а л у
т [- 2тг , 2л ] . Д л я м в о х нд о м ар -
0 . 8 *p i] )
, т о
1050
р П е ин л о я ж
zyxwvutsrqpo
ezmeshc — п о с рт о ен и е к арк асн о й м о елд и п о в е рн х о с т и нф у к ц и и дву П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA р ем н н ы х и ли н и й руо в н я н а п ло ск о ст и ух . И с п о л ь з о в а н и е а н а л о ги ч н ezmesh (с.м р.азд "Гркесоич аф пинетасвл дер укн цийф " гавы л 17). П ezp io t 3 — о т б р а ж е н и п р о с рт а н с вт е (с.м
е п а р м е рт и ч е с к "Гркесоич аф
р.азд
и з адн н о
й ли н и укн ций"ф авыг л
пинетасвл дер
х пе о
и в р т ме х р н о
м 17).
• ezp io t 3( x, у , z) — п о срт о ен и е п а р м е рт и ч е с к и з адн н о й кри во x{t), у( t), z(t) лд я t и з о рт ез к а [0, 2я ] , гд е х , у , z — срт о к и с и сле емуд ы м и фн у к ц и я м и , указ етл и н а н и х , inline- нфу к ц и и ли б о ан о н и м н ы е фн у к ц и . З а д н и е ан о н и м н ы х н фу к ц и й и л и к у а з а ет л й ртеб у и сп о ль з о в ан и я п о э л ем н т ы х о п ер а ц и й п р и о п р едл н и и фну к ц и й . •
e z p l o t 3 ( x ,
z) , н о д л
у ,
z ,
я з н а ч е н и
й г р а ф и к , н а п р и м е р 100], 'an im at e')
• ezp lo t 3( h A, . . . ) , h = e z p l o t 3 ( . . . ) — а н а л о г и ч н е к арк асн о
. И с п о л ь з о в а н и фукн ций"
ав ыг л
П ezsurf с — п о с рт о ен и р ем н н ы х и ли н и ezmesh.
П f ш п р о с рт а н с вт
й м о елд
р.азд
:
о e zc o n t o u r .
и п о в е рн х о с т и ух . И с п о л ь з о в а н и
я н а п лоск ост
е з а к р а ш е н н о г е (с.м
т
й м о е дл и п о в е рн х о с т и н фу к ц и и в ду х пе "Гркесоич аф п- де р е ан ало ги ч н о ezmesh (с.м р.азд 17).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
е к арк асн о й р уо в н
з — р и с о в а н и
-
С а мо е , Т Ч О И e z p l o t 3 ( x, у , е zyxwvutsrqponmlkjihgfedcbaZYXWV а [tm in , t m ax].
а и з о т р е з к
• e z p i o t 3 ( . . . . , ' a n im a t e ' ) — а н и м и р о в а н н ы >> e z p l o t 3 ( ' s i n ( t ) ' , ' c o s ( t ) ' , ' t ! , [ 0
р ем н ы х инетасвл
-
[ t m i n , t m a x ] ) — Т О Ж
й п а р а м е тр
• ezsurf — п о с рт о е н и
й
о ц в ео т "Гркесоич аф
и н фу к ц и
и дву
м м н о г уо л ь н и к пинетасвл дер
е а н а л о ги ч н
х пе о
а в рт е м х р н о
м
у кн ций"ф авыг л
17).
т з ак р аш ен н ы й ц в ео т м м н о г уо л ь н и к . • fi i i 3 ( x, у , z, с ) — ри есу В ре ш и н ы м н оглуь н и к а (х ( i ) , y( i ) , z (i)) серождат я в тре х п ревы х Ы ВХОДН Х а р г ум е н т а х , П ри ч е м le n gt h ( х ) = le n gt h ( у ) = l e n gt h ( z ) . М н о г уо л ь н и к од л ж е н и м ет ь з а м к н ут ю гр а н и ц у , п о э бтм у п р и н еоб о х ид м о с т и п о с л ен д я я то ч к а с о ие д н я с е т я с п ер в о й . Чевт р ыт й в о х нд о й а р мг у е н т о п р е дл я т ц в е т и сп о с б з а л и в к и . З али в к а м н о г уо л ь н и к н о г о и з с о к р ащ ен и и л и в е к то р а и з тре
й лд х э л е м н от
а о нд и я ц в еат
м ц в ео т м п р о и с о х ди т п р и ку а з а н и и од : f r ' , 'g 1 , ? ь ! , ' с 1 , ' т ' , 'у 1 , 'w!, ' k' , в в фо р м а т е [г д Ь ] , н а п р и м е р :
»
f i l l 3 ( [ l
2 - 3 1 ] ,
[0 1 1
0 ] ,
[ - 1 7 0 - 1 ] ,
»
f i l l 3 ( [ l
2 - 3 1 ] ,
[ 0 1 1
0 ] ,
[ - 1 7 0 - 1 ] , [ 0 . 8
П лавн о рт е б у
е и з м ен ен и т ку а з а н и
е ц в ет я в е к то р
а з али в к а з н ач ен и й
и в п р е дл а х , со втесюу щ и
е щк т у е
'г' ) 0 . 9
й п а л и тр х ц в ет
0.3])
ы ц в ет у в ер ш и н
а ,
р П е ин л о ж
1. Ос но веы
окм ыанд
и фуцнки
1051 zyxwvutsrqpon
MATLAB и Toolbox
т . е . size (с ) = size (а ) . Ук а з а н н ы е з н ач ен и я сн ач л а м а с ш ат б и р ю у т с я (см . фну к ц и ю caxis), а з ает м п р о и с о х ид т б и л и н ей н а я и н етр п о л яц и ц в ет а в н рту и м н о г уо л ь н о й о б л а с ти , н а п р и м е р : » f i l l 3 ( [ l 2 - 3 1] , [ O i l 0] , [- 1 7 0 - 1] , . . . [0.8 0.9 0.3 0.7])
я
• fi i i 3 ( x, Y, z, с ) —п о с т р о е н и е ср аз у н ес к о л ь к и х м н о г уо л ь н и к о в , ч и сл о м н о г уо л ь н и к о в равн о с от л б ц а м м а рт и ц х , Y и z (п р епд о й а р гм у е н т с , л а г е тс я , ч т о size(X) = size(Y) = size( Z ) ) . Чевт р ыт з адю щ и й ц ве т з а л и в к и , м ож е т бы т ь в е к то р о м , лди н а кот рог о со в п аде т с ч и сло м с от л б ц о в в м а рт и ц а х х , Y И Z. Ук а з а н и е м а тр и ц ы с , та к о й ч т о size (С ) = size (х) , п р и в о ди т к п лав н о й з али в к е к а ж до г о м н о г уо л ь н и к а .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 'PropName1, 'PropVale', ы ' PropNairie ',? PropVale ' П О З В О Л Я Ю
ќ fill3(X, Y, Z, С , 1 PropVale ' , . . . ) — п а р
в с ев о з м о ж н ы patch , н а п р и м е р
е с в о й с вт
а м н о г уо л ь н и к
f
PropName', Т зтад
а к а к п о л и го н а л ь н о г
о о б ъ ек т
ь
а
:
» fill3([l 2 - 3 1], [0 1 1 0 ] , [- 1 7 0 - 1 ] , 'у 1, ... 'EdgeColor1, ( g \ 'LineWidth1, 4)
Ф ну к ц и п ом щ ат м
я f i i i 3 од п сук ае и куа з н и я с о в т ес ю у щ и и и ц в еот м , н а п р и м е р
f i l l 3 ( x l /
y l ,
а к а ж до г м пр
и п о м о щ
е м н о г оу л ь н ы х ч ев т р о
х о б ъ е к от в с к о р ди н а
к а р мг у е н о т
в пр
и -
:
z l ,
В ы о хнд о й а р мг у е н т ле й н а вс е п о с рт о ен н ы h = f i l l 3 ( . . . ) С в о й с вт ад л ь н е й ш е
т п о с рт о е н и
' у ' ,
х 2 , у 2 ,
, в о з в р а щ а е м ы е м н о г уо л ь н ы
z 2 ,
'g')
й fi l i 3 , яв л сет е о б ъ ек т
ы ти п
я в е к то р м к у а з ет а patch .
-
о и з гр а фи ч е с к и х о б ъ е к от в м о гу т бы т ь и з м ен ен ы в и se t zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB (с.м гаву л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
hidden— адлеун и е и л и о т б р аж ен и е ч а сет й к арк асн ы х п о в е р н х о с ет й , П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA "Те ын р хемр и к га ф р укн ций"ф а- г л ск ры т х о т н а б л ю да е т л я (с.рм .азд вы 3).
• hidden on — адлеун и
е н ев и д м ы
х ч а с етй
• hidden off — о т б р а ж е н и
е н ев и д м ы х
• hidden — п ер к лю ч ен и
е м же д
П mesh— п о с рт о ен и
в ух д
х ыне мепр
е к арк асн о " гавы л
2 и р.азд
• mesh(x, Y, z) — п о срт о ен и од м з ул е к а р к а с н о й скет
ч а с етй у р еж и м а
й п о в е рн х о с т "Те ын р хемр е к арк асн о и п ло ск о ст
. . и on и off. и (с.м гик афр
р.азд
й п о в е р н х о с ит и х у (скет а з адест
"Грик аф
у кн ц и й ф
фукн ций
" гавы л , в ы с о т я м а тр и ц а м
3). а в к аж и х и
1052
zyxwvutsrqpo
р П е ин л о я ж
Y), со едр ж и ст и z до л ж н е лд а х е ктщ у е Точк а (с.м р.азд Р а з м е кт ч л уш и п о ль з о в ан и е П о в е р нх о с т м н ог з н ач н о .аздр ав ыг л
ы бы т обз ор "Пторв
я в с о в т ес ю у щ е ь о ди н а к о в ы й п а л и рт а с уа т н а в л и в а е с т
м э л ем н т ы в з ав и си м о ст я гик а,фр
иине зм
а о се й п о му о л ч а н и й в и д гр а фи к а . И з м ен ен и м axis. ь м ож е й нф у к ц и "Пине отср 3.
е м а рт и ц ы z. М а тр и ц ы х , Y . Ц в е т л и н и й и з м ен ясет я в п ре и о т вы сот ы от ч е к п о в е р н х о с ит . п р и п ом ощ и н фу к ц и и viewzyxwvutsrqp тк чио оа"рзо б ав ыг л 3).
х р аз м ер о в
ю в ы б и р а е ст
я та к е р а з м е кт
т с о вт е с вт о а т
, ч то б и о се
ь н е то л ь к . С о вт ес юу щ и
к с е и т ч р па м р
ы о б ес п еч и т й п р о и з в о д и ст о о дн о з н а ч н о й
е п р и м ер тйесхвонпр
х а ын з д
ь н аи я с ис , н о и ы в и инй"л
ы п р и в е дн
• mesh (х , у , z) — п ер в ы е дв а вонхд ы х а р мг у е н т а м о гу т бы т ь в е к от р а м и . В да н н о м сч л ау е зу лам и к арк асн о й п о в е рн х о с т и я в л ю ст я от ч к (х ( j) , у ( i ) , z ( i , j ) ) , п ри ч е м лд и н ы в е к то р в до л ж н ы с о вт е с о в ат ь р аз м ер а м м а тр и ц ы : size (Z) = [len gth (у ) len gth (х ) ] . • mesh (Z) — в к ач есвт е в е к то р в х и у (см . п р еыд щу и й вари ан в ы б и р а ю тс я х = [1:п ], у = [1:т] ,Г Д е [т , п ] •= size( Z ) . • m e sh ( . . . , с ) — лд м а рт и ц а с (см . фну к ц и
я о п р е дл н и ю surf).
я ц в ет
а п о в е рн х о с т
и -
т вы з ова
)
и и с п о л ь з ес т у
я
• mesh (...., 'PropN ame', PropValue, ' PropName' , PropValue) — OTOб р аж ен и е п о в е р н х о с ит , св о й свт а котро й п ри н и м аю т з а д н н ы е з н ач е н и я , н а п р и м е р : » [X, Y] = m esh grid ( - 3*p i:p i/ 5:3*p i, - 5 :0 . 5 :4 ) ; » Z = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA sin( X). *( Y + 5) . *( 4 - Y); >> mesh(X, Y, Z, ' L in e St yle ' , 'n o n e 1 , 'M arker 1 , ' . ' ) • h = m esh ( . . . ) — в о з в р а щ а е (о б ъ ек т surface). С в о й с тв п р и п о м о щ и set (с.м гаву л П meshc — п о с рт о ен и п лоск ост и ху . И с п о л ь з о в а н и и к га ф р фукн ций"авыг л
е к а р к а с н о
П meshz — п о с рт о ен и п о в е р н х о с ит
е к а р к а с н о
• piot3 — п о с рт о е н и
ине отрс
кс пеитчр амр
т к у а з ет л ь н а п о с рт о е н н у ю п о в е рнх о с т ь а п о в е рн х о с т и в ад л ь н е й ш е м и з м е н я ю ст я 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH й п о в ернх о ст е а н а л о ги ч н
и в м ес т е с л и н и ям о mesh (с.м р.азд
и уро в н "Те ын р хемр
я н а
и уро в н
я н а
3). й п о в ернх о ст е а н а л о ги ч н
. И с п о л ь з о в а н и е ли н и
и в м ес т о mesh.
й в р т ем х р н о х аын зд
е с л и н и ям
м п р о с тр а н с тв птйсехвонр
е (с.м и линй"авыг л
• p io t 3 (x, у , z) — о т б р а ж е н и е ли н и , п р о хядщ е й ч ер о р ди н а т м и ( x( i) , y( i ) , z ( i ) ) , гд е х , у и z яв л ю ст
р.азд 3).
з то ч к я в е к то р а м
"П-о и с к о
и
р П е ин л о ж
1. Ос но веы
окм ыанд
о ди н а к о в й дл и н ы ц и ю p lo t ) з а д е
т ц ве
p l o t ( х ,
у ,
z ,
и фуцнки
. Д о п о л н и те л ь н ы т и сит л
1053 zyxwvutsrqpon
MATLAB и Toolbox
й с рт о к в ы , а так ж
ь л и н и
е ти
й а р мг у е н п м а р к е р о в
т (см , н а п р и м е р
. фн у к
:
' г : о ' ) .
• p io t 3 (х , Y, z) — о т б р а ж ен и е ли н и й , п р о хядщ и х ч ер з то ч к и с к о о р ди н а т м и (X(i, : ) , Y(i, : ) , z ( i , : ) ) , гд е ч и сл о ли н и й со в п ад е т с ч и сло м с от л б ц о в м а тр и ц . М а тр и ц ы х , Y и z до л ж н ы бы т ь о ид н а ковы х р аз м ер о в . В о з м о ж е н вы з о в p lo t с ч евт ры м д о п о л н и те л ь н ы м а р г м у е н от м , о п р едляю щ и м ц ве т и сит л ь ср аз у в се х л и н и й и ти п м ар к ер о в . Д л я суатн о в к и св о й ст в ли н и й п о о ед т л ь н о с т и е су л д т и сп о ль з о в ат ь о б р ащ ен и е : p io t 3 (xi, yi, zl, si , x2, y2, z2, s2, . . . ) , гд е в о х нд ы е а р мг у е н т ы xi, yi, zl, x2, y2, z2 и т . д . м о гу т бы т ь ли б о в е к от рам и , л и б о м а тр и ц а м и о ди н а к о в ы х р аз м ер о в , а с рт о к в ы е а р мг у е н т ы si, s2 и т . д . з а д ю т си т л ь л и н и й .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM ќ plot3(х , у , z, fPropNamef, 'PropVale', fPropName', 'PropVale', ...) —
ку а з а н и з в ан и
е св о й ст
в ли н и и к а ж до г а и ег о з н а ч ен и
е с в о й свт
• h = p io t 3 ( . . . ) — в ы охнд о вс е с о з адн н ы е л и н и и (р и с о в а н н ы С в о й с вт н ей ш е
а к а ж од г м п р и п о м о щ
е (см
о гр а фи к . фну к ц и
й а р мгу е н
а п ар м и , с о едр ж а щ и м ю p lo t ) . т в е к от
е о б ъ ек т
и на -
р h со едр ж и ы Lineseries).
т к у а з ет л
и н а
т бы т ь и з м ен ен ы в ад л ь о и з гр а фи ч е с к и х о б ъ е к от в м о гу и set zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м гаву л 9).
• sl i c e — в и з аул и з а ц и н и я з н а ч ен и й н а р а з л и ч н ы
я н фу к ц и
и тре
х п ер м ен н ы х и л
х п л о с к о с ят
х пр
и п о м о щ
и п о в е р н х о с ят х
и о тбраж е
-
.
я н фу к ц и и до л ж н ы бы т ь • sl i c e (х , Y, z, v, sx, sy, sz) — з н ач ен и в ы ч и с л ен ы в от ч к а х р т ем х р н о й с ек т и , о п р едля м о й м а тр и ц а м и х , Y и z о ди н а к о в ы х р аз м ер о в , и з а п и с а н ы в рт емх р н ы й м ас и в v. В екот р ы sx, sy и sz з а д ю т п л о с к о с ит , к о т р ы е о б р а з юу т с р ез ы м р те х н о г о п р о с т а н вс т а . Е сли , н ап ри м е р sx(i) = - 2.5, т о н а п лоск т и х = - 2.5 е д бу т о т б р а ж а ть с я з а л и ыт й ц в ое т м к о н р ут н ы й гр а фи к и с е мл у д о й нф у к ц и . Ц в е т в к а ж од й от ч к е о п р е дл я с т я п р и п ом щ и л и н ей н о й и н ет р п о л я ц и
. И с л еод в а н и
е п о в е дн и
и (х 2 + y2)z в о б ъ ем
я н фу к ц и
jc e[- l, l] , ye [- 2, 2], z e [ - l , l] н а ср ез ах , о б р аз еум ы х п л о с к о с ят м х = ± 0.4, у = 0, z = 0, ± 0.8 , п р о и з в о ди ст я п р и п ом ощ и ю с лу е д щ и м ан д : » [X, Y, Z] = m e sh gr id ( - l:0. 1:l, - 2:0. 2:2, - 1:0 . 1:1) ; »
V = ( Х . ^ 2 + Y . ^ 2 ) . * Z ;
»
s l i c e ( X /
О бъе в е р н х о с ят м и
м м ож н
Y, Z , V,
о с р ез ат . М а тр и ц ы
[ - 0 . 4
ь н е то л ь к , з а д ю щ и
0 . 4 ] ,
о п л о с к о с ят м и е п о в е р н х о с ьт
[ 0 ] ,
[ - 0 . 8
0
е и х ко
-
0.8])
, н о и р а з л и ч н ы м , куа з ы в а ю ст
и по я в м ес т
о
1054
zyxwvutsr
р П е ин л о я ж
в е к то р о р е де л е н н о коман д
в в о в хо д н ы й вы ш е
х а р г ум е н т а , н а с ф е р
е п р о и з в о ди тс
х s l i c e . О т о б р а ж е н и я пр
е ф ун к ц и и и с л е д ую щ и
и п омощ
, о п
х
:
>> [XI, YI , Z I ] = sp h e r e ; »
s l i c e ( X / Y, Z, V, XI, YI, Z I)
П ервы ч ен и ям yi ,
е т р и в хо д н ы и v, м о г у z i ) . П р е д п о л а г а е т с
Z = l : p , г д
е а р г ум е н т а ь о п ущ е н ы
т бы т
, з а д а ю щ и е к о о р ди н а т ы то ч е к с о зн а : s l i c e (v, sx, sy, sz ) , s l i c e (v, xi , я п о ум о л ч а н и ю , ч т о х = i : n , Y = i:m ,
е [n m p ] = s i z e (V) .
• s l i c e (. . . , m ethod) — с п о с о н е м до п о л н и те л ь н о м в хо д н о ' l i n e a r ' (П О у м о л ч а н и ю ) Л И
б и н те р п о л я ц и м а р г ум е н т И 'cubic'.
• s l i c e (hA, . . .) — г р а ф и ч е с к и л е м пА .
й вы во
• h = s l i c e ( . . . ) — в в ы х о д н о те л е й н а с о з да н н у ю п о в е р хн о с т ь
м а р г ум е н т .
и о п р е де л я е тс е и може
д п р о и з в о ди тс
я в п о след 1 : ' n e a r e s t ,
т б ы ть я н а ос
е в о з в р а щ а е тс
и с ук а з а т е
я в е к то
-
р ук а з а
-
т бы т ь и з м ен ен ы в да л ь н е й ш е м пр и а к а ж до й п о в е р хн о с т и м о гу и s e t zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м авуг л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGF
С в о й с тв п омощ
• s phe re — о т о б р а ж е н и
ст и с фе р ы
е сфер
ы и ген ер ац и
я то ч е к
, л е ж а щ и
х н а п о в е р хн о
-
.
• sp h e r e — п о с т р о е н и
е в г р а ф и ч е с к о
м окн
е е д и н и ч н о
й сферы
.
• [х , Y, z] * s p h e r e — г е н е р а ц и я м а тр и ц х , Y и z, с о т в е т с т в у ю щ и х е ди н и ч н о й сфер е , п р и ч е м size ( X) = size ( Y) = si z e ( Z ) = [21 21] . С ам а п о в е р хн о с т ь н е о то б р а ж а е тс я , е е м о ж н о п о л уч и т ь пр и п омощ и , н ап ри м ер : mesh (X, Y, Z ) , su r f( X, Y, Z ), su r f 1(X, Y, Z ). • на
[x, Y, z] = sp h e r e (n) — в ы х о д н ы п + l, п о в е р х н о с т ь н е о то б р а ж а е тс я
• sp h er e (n) — п о с т р о е н и п оль з ован и е м п + 1 т о ч е • stem 3 - — о т о б р а ж е н и
е в гр афи ч еск о к п о к а ж д о м
е т р е хм е р н ы
• st em 3( z) — п о с т р о е н и н и е z ( i , j) п р е д с т а в л я е т с кост и z = о и о к а н ч и в а ю щ е г о с • stem 3 (x, у , z) — о т р е з к с т и z = о с к о о р д и н а т а м О »
t -
О »
х = s i n ( t ) ;
е м а тр и ц .
х да н н ы
ы и м ею
м окн у и з н а п р а в л е н и
е е ди н и ч н о
х в ви д
е ч ерен ково
т раз м ер
й о с е
ы п + l
й сфер й к о р ди н а т
0 : p i / 1 0 : 2 *p i ;
я в то ч к а :
.
й ди а гр а м м ы
е з ави си м ост и z ( i , j) о т i и j . К а ж д о я в ви д е о тр е з к а , н а ч и н а ю щ е г о с я к р уг л ы м м аркером . и вы сот ы z ( i) н а ч и н а ю т с и ( x ( i ) , у ( i ) ) , п р и м е р
ы с ис
.
е з н аче я н а п лос х п лоско
-
р П е ин л о ж
1. сО но веы О »
ком ыанд
и фуцнки
1055zyxwvutsrqpo
MATLAB и Toolbox
у = c o s ( t ) ;
О >> z = e x p ( - x - у ) ; О >> s t e m 3 ( x , у , z)
• stem 3 ( . . . , ' f i l l e d ' ) — о т р е з к м аркерам и . У к а з а н и е ч е тв е р то г т а п оз воляе т о п р е де л и т ь ц ве т и ц и ю p l o t ) , н а п р и м е р : stem 3 (х , • h = stem 3 ( . . . ) — в ы х о д н о е тс я у к а з а т е л е м н а ли н и и керо в можн о з а те м и з м ен и т
и о к а н ч и в а ю тс я сп лош н ы м о до п о л н и те л ь н о г о в хо д н о г с ти л ь ли н и и и ти п м а р к е р у , z, f r * f ) .
й в е к то р h с о д е р ж и т ук а з а т е л и , h (2) — н а м а р к е р ы . С в о й с т в ь пр и п омощ и se t , н а п р и м е р
>> h = s t e m 3 ( x , у , z,
и к р уг л ы м о а р г ум е н а (с м . ф ун к
а ли н и :
и -
, h ( l) я в л я й и м ар
-
' r *' )
>> s e t ( h ( l ) , ' C o l o r ' ,
' g' )
»
' b ' ) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH
s e t ( h ( 2 ) , ' C o l o r ' ,
• wa t e rfa l l — п о с т р о е н и
н ап равлен и й
е каркасн о
й п о в е р хн о с т
и ли н и ям
и п о о дн о м
у и з
.
• w a t e r f a l l ( X, Y, Z ) — о т о б р а ж а е т с н о mesh), н о б е з л и н и й , с о т в е т с т в ую щ и Ли н и и , о б р а з у ю щ и е п о в е р хн о с т ь • w a t e r f a l l (Z) — а н а л о г и ч н
я каркасн а
я п о в е р хн о с т х с то л б ц а
, н а п р а в л е н
ы в до л
о mesh с о д н и
м в хо д н ы
Д л я п о с тр о е н и я каркасн о й п о в е р хн о с т и ю т с то л б ц а м м а тр и ц , с л е ду т и сп ольз оват waterfall(X, Y, Z),waterfall(Z) . • p e a ks — ф у н к ц и я ч еск и х в о з м о ж н о с те м а с ш та б и р о в а н н о м
, п р е д н а з н а ч е н н а я д л й M AT L AB. Г е н е р и р у е м ы у д в ум е р н о м у р а с п р е де л е н и
• z = p eaks — г е н е р а ц и
я м а тр и ц
ь (а н а л о г и ч ц х , Y с е т к и и х .
м а р г ум е н т о м
, л и н и
.
.
и к о то р о й с о тв е тс тв у ь тр а н с п о н и р о в а н и е
я де м о н с тр а ц и е з н ач ен и ю Г а ус а
ы з н ач ен и
м м а тр и ь ос
и и и з уч е н и я с о т в е т с т в ую .
-
:zyxwvutsr я графи
т
й z, s i z e (z) = [49 4 9] .
• z = p eaks .(n) —г е н е р а ц и
я м а тр и ц
ы з н ач ен и
й z, s i z e (Z) = [n n ] .
• z = p eaks ( v) —г е н е р а ц и
я м а тр и ц
ы з н ач ен и
й z, s i z e (Z) = l e n gt h ( v) .
• z = p eaks (x, Y) — г е н е р а ц и я м а тр и ц сы ваем о й м а тр и ц а м и х и Y. Д л я п о л уч е н и п ольз оват ь m esh grid . Вы зо в p eaks б е з в ы х о д н ы х а р г ум е н т о н о й ОИ Т Л а з Й ц в е то м Т С ОН Х р е В ОП p e a k s( v) , p e a k s( X, Y). Ук а з а н и з ап и с
е в к а ч е с тв и к о о р ди н а
т уз л о
е в ы хо д н ы в с е тк
х а р г ум е н т о и в м а тр и ц
ы з н ач ен и я м а тр и
в п р и в о ди И ИЦ Н К у ф
й в уз л а ц с е тк
х с е тк и и уд о б н
, о п и о ис
-
т к о то б р а ж е н и ю каркас И p e a ks: p e a ks, p eaks ( n ) ,
в м а тр и ц х , Y и z п р и в о д и ы х и Y и з н а ч е н и й p eaks в z.
т к
1056
zyxwvutsrq
р П е ин л о я ж
П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA surfzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — п о с рт о ен и е з а л и от й ц в ое т м к арк асн о й м о едл и . В охнд ы е а мр гу е н т ы с к о р ди н а т м и зу ло в к арк асн о й кс ет и и з н ач ен и ям и вы сот ы и м ат ри ц а , о п р едл яю щ а я ц ве т п о в ернх о с ит , з адю ст я в та к о м ж е п о р ядк е , ка к и в mesh (см . в ы ш е) , н а п р и м е р : surf (X., Y, z, с ) (с.м р.азд "Те ын р хемр и к га ф р фукн ций " гавы л 3). пУ р а в л ен и е сп ос бо м з али в к и ц в ео т м яч е к к арк асн о й п о в ернх о с т и з в о ид с т я п р и п ом щ и к ом ан д ы shading, з а д в ем о й п осл е П а р м е тр ы facetd (п о му о л ч ан и ю ) и л и fla t з а д ю т п о с т ян н ы яч ей к и , a shading о бесп еч и в ае т б и л и н ей н у ю и н ет р п о л я ц и ю з н а ч ен и ям и в ч ые т р е х з ула х яч ей к и . Ц в ет а зу ло в яч е к з н а ч ен и ям и э л е м н от в м а тр и ц ы с та к о г о ж е р аз м ер а , к а к м а рт и ц ы х , Y и z. П р о ц ес с з а л и в к и ц в ео т м яч ей к и п р о щ е в сег п р и м ер е п о в е р нх о с ти , со стящ е й и з о нд о й яч ей к и : » [X, Y] = m esh grid( [- l 1]) X = - 1 1 - 1 1
и п ро а surf. й ц ве т ц в ет а жм д е у о п р е дл я ю с т я и о с ат л ь н ы е о п о н ят ь н а
вы з ов
Y = zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
- 1 - 1 1 1 » Z = X + Y;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA » С = [ 0 0; 0 1 ] ; >> colormap(jet) » surf(X, Y, Z, С ) >> shading interp
Н л еув ы
е э л ем н т
т у зу ло
в с ке т
ы м а рт и ц
ы с с о вт е с ю у
и с к о р ди н а т м
т с и н ем
у (в п а л и тр
и (- 1, - 1 ) , (- 1, 1), (1, - 1 ) , а э лем н
ри ц В н рт у м ж ед
ы с , р а в н ы й е ид н и ц е , овтеч а т к расн о м у ц в ет у и яч ей к и ц в е т в ы б и р а е ст я п р и п ом щ и б и л и н ей н о у ч еыт р ь м я в ер ш и н ам и . Е сл и э л ем н т ы м а рт и ц ы [0,1], т о п р о и сох ди т и х л и н ей н о е п р е о б р а з о в а н и е к ортез к ц и я caxis п о з в о л яе т с у ат н а в л и в а т ь с о вт е с и е м ж ед н и е м нф у к ц и и л д я да н н ы х о с ей , a colorm ap— в ы б и р а т о ц в е от ы е п а л и тр ы . О б р а щ ен и е к surf бе з ч евт р от г щ е го с я м а рт и ц е й с ц в еат м и зу л о в , п р и в о ди т к вы бор ри ц ы z, т . е . surf (х , Y, z) э к в и в а л ен нт о surf (х , Y,
• surface — н и з к о ру в н е в а
"Оинвещс
кевт,оъ б
е je t ) ц ве
я н фу к ц и окет ъ б
я дл Light (иинкчтос
я с о з ад н и
-
в в ер ш и н е (1,1). й и н етр п о л яц и и с н е п р и н а дл е ж а т у [0,1]. Ф ну к у ц в ео т м и з н ач е ь п рои з воль н ы е а р г м у е н ат , яв л ю у в к а ч е с вт е с м ат Z , Z ).
я п о в ернх о сет свтеа)
т м ат
-
"гавы л
й (с.м 9).
р.азд
р П е ин л о ж
1. Ос но веы
ком ыанд
s u r f a c e ( ' P r o p N a m e ' ,
и фуцнки
1057zyxwvutsrqpon
MATLAB и Toolbox
' P r o p Va l u e ' ,
1
' P r o p N a m e ,
' P r o p Va l u e ' , . . . ) —
общ и й ви д вы з ов а surface, п о з в о л яю щ и й п о с рт о и т ь п о в ернх о с т ь с за да н н ы м и с в о й с вт а м и . Н и ж е п ер ч и с л ен ы н аи бо ле е ч аст о и с п о л ь з е му ы е с в о й с вт а и и х воз м ожн ы е з н ач ен и я с н е о б х ид м ы м и к о м е н та р и я м и . С елуд т и м ет ь в в и уд , ч т о п о в ернх о сьт , о то б р а ж а е м а я н фу к ц и е й surface, в ы в о ди с т я н а е к щт у и е ос и гр а фи ч е с к о г о окн а . Е сл и е щк т у и х о се й (и л и окн а ) н ет , т о с о з адю ст я оси , со едр ж ащ и е гр а фи к п о в ернх о с ит . О дн а к о п о му о л ч а н и ю ос и яв ляю ст я двму ер н ы м и , т . е . н а б л ю даетл ь с м о тр и т н а н и х я 0°. В ы с о к руо в н ен ев ы е с то ч к и , и м ею щ е й аз и м у т 90° и гоу л ск ло н ен и гр а фи ч е с к и е нф у к ц и , н а п р о ти в , в ы в о дя т гр а фи к , в и д м ы й с то ч к и об з ора , аз и м у т котро й рав е н - 37.5°, а гоу л ск ло н ен и я 30°. Д л я п о лчуен и я п ри вы чн ог о в и д а гр а фи к а п о в е рн х о с т и п р и п ом ощ и surface, слеодв а те л ь н о , ртебсу я с у ат н о в и т ь от ч к у обз ора , и сп о ль з у я н фу к ц и ю view: view (- 37.5, 30) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA (с.м р.азд "Птовр ик а,гфр ин е и з м к чи т о а"рзо б ав ыг л 3). З а дн и е ви залуи з и ермуы х а дн ы х п ро и з в оид ст я усатн овк й св о й ст в XData, YData и ZData. З н ач ен и ям и дан н ы х св о й ст в яв л ю ст я м а рт и ц ы х , Y и z с к о р ди н а т м и зу ло в к арк асн о й к с ет и и з н ач ен и ям и в ы с о т ы в с о в т ес юв у щ е й то ч к е п о в е рн х о с т и (см . фн у кц и ю mesh). Ц в е т к а ж од г о з у л а к с ет и . П о с л еод з а д ест я м а рт и ц е й в с в о й св т е CData (см . фн у к ц и ю surf в ы ш е) в а ет л ь н о с т ь к ом ан д , п р и в едн н а я н и ж е , о то б р а ж е т п о в е рнх о с т ь в о нд о м гр а фи ч е с к о м окн е п р и п о м щ и surf, а в дргоу м — с и с п о л ь з о в а н и е м эк в и в а л е н тн о г о (з а и склю ч ен и е м вы вод а ли н и й ск ети ) о б р а щ ен и я к surface.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> [X, Y] = meshgrid(- 3:0.5:3); >> Z = sin(X).*cos(Y).*exp(abs(X.*Y/10)); » surf(X, Y, Z) >> figure >> surface('XData1, X, 'YData1, Y, 'ZData', Z, 'CData', Z); » view(- 37.5, 30) З н ач ен и е с в о й с вт х , Y и z. В да н н о м а рт и ц ы к ортез к щку е й п а л и тр с о б о п р е дл н и с в о й с вт а п о в е рн х о с т ' sc a le d ' , ч т о н овк а с в о й св т ц и и з н ач ен и й C ( i , j) Н Ж ЛОД
а CData м ож е т бы т ь м а рт и ц е й с та к о г о ж м п р и м ер е с = z. Ли н е й н о е п р ео бр аз о в ан и у [0,1] суатн а в л и в а е т с о вт е с и е м ж ед ы и з н а ч ен и ям и м а рт и ц ы с (и н едк с и р о в ан н ы я с о вт е с и я э л е м н от в с ц в ет у з ав и си и CDataMapping. П о му о л ч а н и ю з н ач ен и к а к р а з и о б ес п еч и в ае т л и н ей н о е п р ео бр аз о в ан и е у CDataMapping з н ач ен и я ' d i r e c t ' п р и в о ди т с к а к н о м ер о в ц в еот в е кщ т у е й п а л и тр ы , п о э т м Ы П р и н а д л е ж а т
ь О тр е з к
е р а з м е р а
, к а к й у ц в еат м и ет й ц в е)т . С п о т о т з н ач ен и я е равн о . астУ к и н ет р п р е ат у э л ем н т ы е з н ач ен и
у [ 1 , l e n g t h ( c o l o r m a p ) ] .
1058
Ц ве юм у до л ж н
т к а ж до г о зул а к а р к а с н о й скет , н е п р и в яз ы в а яс ь к ц в е от а б ы т ь н е м а тр и ц а , а трмех р н ы
гд
zyxwvutsr
р П е ин л о я ж
е
[m n ] = s i z e ( X ) , а С ( : ,
ч и слам л ен о г
и о т н л у я д о е ид н и ц ы о и си н ег о ц в ет а дл
и п о в е рн х о с т й п а л и рт е й м ас и : ,
1 ) , С ( : ,
, о п р едляю щ и м я к а ж од г
о зул
а к арк асн о
и м ож н . З н ач ен и е в р а з м е р
о з адват ь н ап р я м с в о й с вт а CData а size (С ) = [m n 3],
: , 2 ) , С ( : ,
и п роп орц и й секти
: ,
3)
ЮЯ В Л ТС
и к расн ог
Я
, з е -
.
С п ос б и з м ен ен и я ц в ет а ли н и й к арк асн о й п о в е рнх о с т и о п р е дл я с т я з н а ч ен и е м с в о й с вт а EdgeCoior. З а н а ч ен и е ' f l a t ' п р и в о ди т к п о с т ян н о м у ц в те у гр а н и ц ы в п р е дл а х к а ж од й яч ей к и , ' i n t e r p ' — о бесп еч и в ает п лав н о е и з м ен ен и е о т в ер ш и н ы к в ер ш и н е (и сп о ль з сету я л и н ей н а я ин ет р п о л я ц и я ) . Ф и к с и р о в а н н ы й ц в е т з а д е ст я онд и м и з со к р ащ ен и й : ' с 1 , ' т 1 , ' у ' , ' к 1 (п о му о л ч а н и ю ) , ' г 1 , ' g f , ' b 1 , 'w1, и л и в е к то р м и з рт е х э л е м н от в в R G B. З н ач ен и е 'п о п е ' п р и в о ди т к то м у , ч т о ли н и и к а р к а с н о й п о в ернх о с т и н е о т б р а ж а ю тс я . С п ос б з али в к и яч е к с уат н а в л и в а е ст я П о с т ян н о е з н ач ен и е F aceCoior, р а в н о и л и в ек от р у и з тре х э л ем н от в , п р и в о ди то м . З а л и в к а яч ей к и н е п р о и з в о д и ст я з н ач ен и е 'п о п е ' . И з м ен ен и е ц в ет а в п р е дл а и л и ' i n t e r p ' (см . фну к ц и ю surf). З н ач ен и п о ль з о в ат ь м а рт и ц у с р а з м е р а , о тл и ч н о г де м о н с р т и р е у т о т б р аж ен и е ет к с р ут и р о в а н н о ср ут а с о д е р ж и ст я в гр а фи ч е с к о м фа й л 300 п и к с ел о в , ц ве т к а ж од г о п и к с ел а п р есдатв ляест
п р и п ом щ и с в о й с вт а F aceCoior. е онд о м у и з с о к р ащ ен и й дл я ц в ет а т к з а л и в к е все х яче к о нд и м ц ве , сел и св о й свт о F aceCoior и м е т х яч ей к и з ав и си т о т ' fla t ' е texturemap п о з в о л яе т ис о о т х , Y и z. С люеуд щ и й п ри м е р й п о в е р н х о с ит , сам а ек т е texture.bmp р а з м е р а 300 н а я 24 б и та м и .zyxwvutsrqponmlk
>> С = imread('texture.bmp'); >> whos С Name
Size
С
Bytes Class
300x300x3
270000 uint8 array
Grand total is 270000 elements using 270000 bytes
М ас и в с я в л ес т RG B. П ер д и сп о ль з о в ан и е е уд т п р е о б р а з о в а т
я рт е м х р н ы м ь к ти п
, рт еь е и з м ер н и м м ас и в а ц в ет а в к а ч е с вт у double и м а с ш та б и р о в а т
»
С = d o u b l e ( С ) ;
»
С ( : ,
: , 1) = С ( : , : ,
D / 255;
»
С ( : ,
: ,
2) = С ( : ,
: ,
2)/ 255;
»
С ( : ,
: ,
3) - С ( : ,
: ,
3)/ 255;
е с о вт е с у
т ц в ет у в ы е г о е лс -
е е т к рс у ь э л е м н ыт
:
Т еп р ь р т ем х р н ы й м ас и в в е щ е св т н ы х ч и се л м ож н о и сп оль з оват ь лд я з адн и я ц в ет а п о в е р н х о с ит . » surface('XData', X, 'YData', Y, 'ZData', Z, 'CData', C, ... 1 FaceCoior', 'texturemap', 'CDataMapping', 'direct'); » view(- 37.5, 30)
ин е ж о и л р П
1. евынос О И он сд х а
L
^
кы адн мо
я трекуст
M
-
^
И
Г
и фукн ци
MATLAB и Toolbox
а и трекиуст ован а
мш . т п
ш - м - - 1П 1 Ш Г- -
я п онверх ст
ь п ри невд
1059zyxwvuts
ы н а р и с
. П 2 .zyxwvutsrqponmlk
Т in-
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA \ 'ik I .И Г Ж\ ш A - 3 —1
w n i
J B
к
r/ jf 0> W
p I
||
, и / ц | и' _
дй
Ш
" L *
2
• - {
4
, *^
\\
2 0
0
-2
^ i» T 1
4
-4 -4
1
Рис
С ит л п ом ощ б ы ть то л щ и н
. ГТ2
. Т ек рсут
а и тек срути р о в ан н а
я п о в е рн х о с ь т
ь и то л щ и н а ли н и й к арк асн о й п о в е рн х о с т и свой ст в L in est yle и Linewidth. З н ач ен и е : ' - ' , ' : ' , ' —' и л и ' - ' , a Linewidth —в е щ е с тв е н н о е л и н и й в п ну кат х (1 п ну к т == 1/72 дю й м а )
и с у ат н а в л и в а ю ст
о ат к ж е о с в ещ ат и в з а и м о ед й с в т и а п о в ернх о с ит
ь п о в е рн х о с т е п о в е рн х о с т , о вт еч а ю щ и
ь и пу р а в л я т и с о с в еот м е з а о св ещ ен и е
и т е
.
Ти п , р а з м е р и сп ос б з ак раск и гр а н и ц и в н рт у е н н о с т щ а ем ы х в з ула х к арк асн о й с ек т и , о п р едляю Markersize,MarkerEdgeColor, MarkerFaceColor. М ожн л яю щ и м с в о й с вт
я пр м L in e st yle ' м о ж е е ч и сло , р а в н о
и м ар к ер о в т с в о й с вт ь с в о й с вт а м и . Н и ж
, п о м е а Marker, zyxwvutsrq , о п ред е п ер ч и с л ен
ы
.
• Am bien t st ren gt h — и н етн си в н о ст ь н ен ап р ав лен н о г о о к ржу а ю щ е г с в еа т , к о т р ы й о с в ещ а е т в с ю п о в е р н х о с ьт . З н ач ен и е м м ож е т бы т ь ве щ е свт н н о е ч и сл о о т н л у я д о е ид н и ц ы , п о му о л ч а н и ю и с п о л ь з ес т у 0.3. Ц в е т о п р е дл я с т я з н а ч ен и е м с в о й свт а AmbientLigthCoior осе (о б ъ ек т а axes). • BackF aceLighting — о п р едл н и е сп ос б а ч а се т й п о в е рн х о с т и в з ав и си м ост и о т н ап р ав лен и я н о рм ал и к п о в е рн х о с т и и р ас п о л ж ен и я на б л ю д а ет л я . З н ач ен и е r e ve r se i i t (усатн о в л ен н о е п р ум о л ч а н и ю ) со т в ес т у т о с в ещ ен и ю в н р т уе н н и х п о в е р н х о с ет й , н о р м а л ь к котры н ап р ав лен а о т н а б л ю д а те л я , ат к ж е к а к и в н еш н и х . В н ртеун н и е по в е рн х о с т и н е о с в ещ а ю стя , еСЛ И ТВ С СВОЙ О BackF aceLighting И ем т ЗНа ч ен и е u n li t . О св ещ ен и е гр а н и ц ы з а м к н ыт у х о б ъ е к от в б уи р а е ст я пр п ом щ и lit . 35 З ак
. 130
о я й м и
1060
zyxwvutsrq
р П е ин л о я ж
• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA D iffu se st r e n gt h — и н етн си в н о ст ь р ас еи в аем о г о п о в е р н х о с ьт ю в ес ат , и з лчу а ем о г о и с от ч н и к о м . З н ач ен и е с в о й с вт а D iffusestren gth м ож е т п ри н и м ат ь в е щ е свт н н ы е з н ач ен и я о т н л у я д о е ид н и ц ы , п о му о л ч а н и ю и с п о л ь з ес т у я 0.6. • EdgeLighting И F aceLigh t in g— СО О СП б о с в ещ ен и я гр а н и ц И яче к арк асн о й п о в е рн х о с т и с в еот м , ищ уд и м о т и с от ч н и к а . С в е т н е о к аз ы в ае т в л и ян и я н а гр а н и ц ы и л и яч ей к и к а р к а с н о й п о в е р н х о с ти , лсе и со о в т ес ю у щ е е с в о й с вт о с уа т н о в л е н о в ' п о п е ' . С а м ы м п р о с ыт м сп о соб м я в л ес т я р ав н о м ер н о е о с в ещ ен и е гр а н и ц яч е к и сам и х яч е к е сло ж н ы м Р ав н о м ер н о е о с в ещ ен и е з а д ес т я з н а ч ен и е м ' f l a t ' . Бо л е н о да ю щ и м ч л уш и й э ф ек т , яв лясет я сп о с б Г ру о , к о т р ы й и сп о ль з у с ет я п р и в ы б о р е 'gouraud 1 . И н етн с и в н о с т ь с в ет а в ы ч и с л яет я в зу ла к арк асн о й с ек т и , з ает м и н е т р п о л и р е с ут я в од л ь гр а н и ц к аж од й яч ей к и И н ет н с и в н о с т ь с в ет а в то ч к а х яч ей к и о п р е дл я с т я п р и п ом ощ и ин те р п о л я ц и и в до л ь о тр е з к а п р ям о й , со еид н яю щ ег о р ебр а . С а м о е е ст свт е н н о е о с в ещ ен и е п о в е рн х о с т и о б е с п е ч и в а ес т я вы боро м з н а ч ен и 1 'phon g , с о вт ес юу щ ег о сп о с б у Ф о н га . С п о с б Ф он г а со ти т и н ет р п о л я ц и и н о рм ал и сн ач л а в од л ь гр а н и ц яч ей к и , а з ает м в н рт у яч ей к и . З н а я н о р м а л ь в к а ж од й то ч к е п о в е рн х о с т и (в к аж од м п и к се ле) , м о ж н о о п р е д л и ьт , к а к о н а о св ещ ен а в н еш н и м и с от ч н и к о м с в ае т М е то д Ф он г а рт е б у т д о с та о ч н о боль ш ог о о б ъ ем а в ы ч и с л ен и й с р ав н ен и ю с дргиу м и м е о т ад м и . Ли с и т н с рт о е н и то ч н и к о
г Ш с о ед р ж и я п а р м е рт и ч е с к м с в е ат , к р о м г П 1 . Прим е
Л ист ин
т п ри м е
р и сп о ль з о в ан и
и з адн н о е н ен а п р а в л ен н о г
р ис пол зь ва ни
. , х . я в и . п о
и surface лд я п о , о св ещ ен н о й о нд и м ис .zyxwvutsrqponmlkjihgfedcbaZYXWVU
я н фу к ц и й п о в е р н х о с ит о с в ае т
я фицнук
к -
и zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPO s u r f a c e ; zyxwvu
ќ
;
ц = (- 2*pi:0.02*pi:2*pi)'; v = - 2*pi:0.02*pi:2*pi; X = 0.3*u*cos : X: = 1 +
.
;
, и з к о т р ы
(cXj, уjС ,
п адю ци
CZk)i j = \ 2
т к о н с уы q > Д
-р к = \ 2
е
Р
и н а с ке т
е (сх п
cyr czk ) t!f;-
я и н те р п о л я ц и я
е и н а р г
=
ч zyxwvutsrqponmlkjihgfedcbaZYXW * 20 ы н а бо ле
^
л я
,2,..., Р - ,к = \ ,2
=1
и
=
9 ^ ? УЗ Л
п о чл у е н и
л
к- \
, з адн г
т п = 41 з еу
=
20
т с (xh yj, z^)/ , jt к = \ , 2,..., n • Д
л и н ей н а
% Зи н а д
х и ос я х д
я с о ед р ж и
7- 1
20 Точки
котра
я з н ач ен и q
п
о
му о л ч а н и
е р е дк о
й к с ет
Ы К ОТОрО
Й Н е С ОВ
е -
й в е к от р - н фу к ю и с п о л ь з ес т у
я
.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
ц от с а л б
xL = 1; xR = 3; yL = - 1; yR = 1;
и ои н е л д е р п
я -роткев ицкнуф
и
р П е ин л о ж
1. Ос но веы
окм ыанд
и фуцнки
MATLAB и Toolbox
1063 zyxwvutsrq
zL = 0; zR = 2; % Ги ц а р е н
я мц и р т а
, си щ а ж р е д о
х кт а н и д р о
ы уо л з
в мо к л е
й ск т е
и
[X, Y, Z] = meshgrid(xL:0.05:xR, yL:0.05:yR, zL:0.05:zR); % Ви н е л с и ч ы
е кн е о п м о
т в- р о т к е и ц к н у ф
и н а эо т
й ск т е
е
A
U = X./sqrtfX.^ + Y. 2 + Z.^2); V = Y./sqrt(X./42 + Y.A2 + Z. A 2); W = Z./sqrtfX."^ + Y.A2 + Z.^2); % Ги ц а р е н
я мц и р т а
[Сх , Су
, си щ а ж р е д о
х кт а н и д р о
ы уо л з
в ро к д е
й ск т е
и
, Cz] = meshgrid(xL:(xR - xL)/3:xR, yL:(yR - yL)/3:yR,...
zL:(zR - zL)/7:zR); % Си н а д з о
е гг о к с е ч и ф а р
о он к
а
figure % Пи н е о р т с о
е вг о н р о т к е
о пл о
% м гон аворибатшса
о кс у н о
% пы н ь л а н о г и л о
й ок е ъ б
я с уе и н е ч и л е в
м ак с е ч и т а м о т в
а в 4 рз а
а и зс и п а
т в пу н е м р е
е зг о н е л
% и си т ы р к
о цт е в
е ре б
я н а пы н е ч у л о
й
ю hC
hC - conepiot (X, Y, Z, U, V, W, Сх % Зи н а д
и
ь ул е т а з к
а дл
, Су
я ге н а р
р (в стеянлопы
, Cz, 4)
й пг о н ь л а н о г и л о
я дл
о от к е ъ б
я кг о д ж а
о ка с у н о
а
)
set(hC,'FaceColor','g'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA , 'EdgeColor',ќnoneќ) % Ук в о н а т с
а по л е д р
% ии н е м з
я ды н а
в ой е с
, тн ч о
о с ищюувтс евто
х га ц и н а р
м
х
axis tight % Зи н а д
е тк ч о
и ор о з б
а
view(31,28) % Ди н е л в а б о
е ик и н ч о т с
а ст е в
а
lightzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Н а н е с е н и
е п о дп и с е
й к ося
м
xla be K 'x1) yla beK 'y1) zlabel('zf) Ф ун к ц и
я c o n e p i o t д о п у с к а е
т д р уг и
е вари ан т
ы вы зова
.
• c o n e p i o t (и , v, w, с х , С у , Cz) — п о у м о л ч а н и ю п р и н и м а е тс я [х , Y, z] = m e s h gr i d ( i : n , i:m , l : p ) , г д е m, n и р я в л я ю т с рам и м ас и в а и (т . е . [m, n , p] - si z e ( U ) ) . • c o n e p i o t ( . . . , (СМ . Н И Ж е фН уК Ц И
' q u i ve r ' ) — Ю q u i ve r 3 ) .
вм ест
о к о н ус о
в р и с ую т с
я раз м е я
с тр е л к
, ч т о и
1064
zyxwvutsr
р П е ин л о я ж
• c o n e p l o t (. . . , ' n e a r e s t ' ) ИЛ
н ей н о бли ж ай ш и х ын
й и н ет р п о л я ц и
и п р и м е н я е ст м и л и к б иу ч е с к а х"аын д й с и с те м
м с о я ед и х ын ре гмо мн i n t e r p 3 в с п р а в о ч н о
И c o n e p l o t ( . . . ,
' c u b i c ' ) — в м е с т
о ИЛ
-
, с о вт ес вт ен н о , и н етр п о л яц и и п о я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM (с.м .аздр "Иция лпотнре - ре в ум д ав ыг л 6, а т а к ж е оп и сан и е ф ун к ц и и е M AT L AB) .
• c o n e p lo t (х , Y, z, и , v, w, ' n o i n t e r p 1 ) — т о ж е с а м о е c o n e p lo t (х , Y, z, и , v, w, С х , С у , C z), н о в к а ч е с т в е м ас и во С у и Cz с о т в е т с т в е н н о п р и н и м а ю тс я м ас и в ы х , Y И Z (и н т е р п о л я ц и н е т р е б уе т с я ) .
, ч т о и в Сх , я
• c o n e p lo t (П А з а те л е м пА .
и с ку а
, . . . ) — о с ущ е с т в л я е
т гр афи ч еск и
й вы во
д н а ос
-
• h e = c o n e p lo t ( . . . ) — в о з в р а щ а е т ук а з а т е л ь н а с о з да н н ы й п о ли го н альн ы й объект . Э т о т ук а з а т е л ь и с п о л ь з уе т с я дл я и з м е н е н и я свой ст в п о ли го н аль н о г о о б ъ е к та .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH • fe a t he r — о т о б р а ж е н и
н а о дн о
й п рям о
й (с.м
р.азд
е в е к то р о "Визацуял
в и с хо д я щ и м х в ы нк е р т о
и и з р а в н о о тс то я щ и йе"лпо авыг л
fe a t h e r (hA, . . . ) И h = fe a t h e r ( . . . ) — а н а л о г и ч н • quive r — в и з у а л и з а ц и
и за ц я л
х в ы нк е р т о
я д в ум е р н о г йе"лпо авыг л
х то ч е 3).
к
о com pass.
о в е к то р о н о г о п ол я (с.м р.азд "Визуа3).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON
ќ quiver (hA, . . . ) — н ч и г о л а н • h = q u ive r ( . . . ) — в о з в р а щ а е Q uivergroup, с в о й с т в а к о то р о г se t (с.м авуг л 9).
о compass. т ук а з а т е л о м о гу
т бы т
ь н а ри сован н ы ь и з м ен ен
ы пр
й объек и п омощ
т и
• h = q u i ve r ( f v 6 ! , . . . ) — в о з в р а щ а е т в е к то р ук а з а т е л е й н а с о з да н н ы е баз овы е объект ы Line д л я с о в м е с т и м о с т и с п р е д ы д ущ и м и верси я м и M ATLAB (б а з о в ы е и ри сован н ы е объект ы оп и сан ы в .аздр "Граксеи ч фи к"етыъ б о ав ыг л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH П quive r3 — в и з у а л и з а ц и лен н о й н а н е к о то р о йе"л ав ыг л 3).
я в е к т о р - ф ун к ц и й п о в е р хн о с т
и (с.м
• q u i ve r 3 ( x, Y, z, и , v, w) —п о с т р о е н и
и о т тр е р.азд "Визацуял
х п ерем ен н ы х
е в е к т о р - ф ун к ц и
, о п р е д х в ы нк е р т о
-п о
и [и, v, w] ,
г д е и= и( х , у, z ) , v = v(x, у, z ) , w = w(x, у, z). М а т р и ц ы х , Y и z о п и сы ваю т п о в е р хн о с т ь , а и , v и w с о д е р ж а т ком п он ен т ы в е к т о р - ф ун к ц и в с о т в е т с т в ую щ и х то ч к а х п р о с тр а н с тв а . Т р е б у е т с я , ч т о б size ( X) = size ( Y) = siz e ( Z ) = size ( U ) = size ( V) = size( W) .
и ы
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1065zyxwvutsrqpon
MATLAB и Toolbox
П р о и с о х ди т а в от м а ит ч е с к о е м а с ш ат б и р о в а н и с атв л я ю щ и х в е к от р - нфу к ц и ю в к а ж од й от ч к лч у ш е г о в и д а гр а ф и к а . П р и м е р и с п о л ь з о в а н и я >> [X, Y, Z] = sphere; » [U, V, W] = surfnorm(X, Y, Z); >> mesh(X, Y, Z) >> hold on >> quiver3(X, Y, Z, U, V, W) • quiver3(x, Y, z, u, v, w, s) —п о с л рован и я лди н с рт е л о к и х дл и н а в у е л и ч и в а се т п р е д о вт р а щ а е т п р е дв а р и е т л ь н о е м а с ш та б и р о в а н и е о п р е дл я с т я с о вт ес ю у щ и м и э л е м н атм
е лд и н ы с рт е л о к , п ред е лд я о б е с п е ч н и я н аи :zyxwvutsrqponmlkjihgfedcbaZYX
е а в от м а ит ч е с к о г
о м а с ш ат б и я в s р а з
и м а рт и
. З н ач ен и е s = о , и дл и н а с рт е л о к ц х , Y и z.
• q u i v e r 3 ( Z , U, V, W) , q u i v e r 3 (Z , U, V, W, s) —П о с т р о е н и
н фу к ц и
и н а п о в ернх о сит
, о п р едля м о
й м а рт и ц е
! g*- . f ) — до п о л н и етл ь н ы • q u i ve r 3 ( . . . , з в о л яе т ку а з т ь си т л ь и ц ве т л и н и ц и ю p lo t ) .
, а атк ж
-
е BeKTOp-
й z. й п о с л ен д и е ит
й а р мг у е н п м ар к ер
т п оа (см
. фн у к
-
• h = quiver3 ( . . . ) — в ы охнд о й в е к от р h соедр ж и т к у а з а ет л и , h (l) яв л ясе т я к у а з е тл м н а ли н и , h(2) — н а м а р к ер ы . С в о й с вт а ли н и й и м ар к ер о в м ож н о з ае т м и з м ен и т ь п р и п ом щ и set zyxwvutsrqponmlkjihgfedcbaZYXW (с.м гаву л 9), н а п р и м ер : >> h = quiver3(X, Y, Z, U, V, W) >> set(h(l), 'Color1, 'r') » set(h(2), 'Color1, 'k')zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
иВ з а у л и з а ц
я фицунк
н а не мпря олгнуь G deiaunay — рт и а н глуяц и
и й обл а ст я Д елан е
и .
t r i = deiaunay (x, у ) — п о с рт о ен и е тр е г у о л ь н и к о в , к о р ди н а т ы ш и н к о т р ы х з а д ю ст я в в ек от р а х х и у . В ы ондх ы м а р мг у е н о т м я в л се т м а рт и ц а t r i с рт ем я с то л б ц а м и , к аж д я с рт о к а м а рт и ц ы с о в т ес у н ек о т р о м у р т ег оу л ь н и к у . С тр о к а с о ед р ж и т и н е кд с ы i, j и к та к и е в ер ш и н ам и тр егуо л ь н и к а яв л ю ст я от ч к и с к о р ди н а т м и ( x( i) , (x(j)/ y(j))> (x(k), у ( к ) ) . М н о ж есвт о тр е г у о л ь н и к о в в ы б и р а е ст ки м о б р а з о м , чт о в н рту и о к ж р у н о си т , о п и сан о й вокру г лю бог о го у л ь н и к а , н е леж и т н и онд о й и з з адн ы х точ ек , к р о м е в ерш и н .
в ер
я т
, ч т о yd ) ) , я ат р ет -
1066
zyxwvutsr
р П е ин л о я ж
П р и м ер
:
»
х = [0 1 0 - 1 0 ] ;
»
у = [ - 1 0
1 0
0];
>> t r i = d e i a u n a y ( x ,
у )
t r i = 4
5
1
5
2
1
4
3
5zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
3
2
5
"'
Ф ун к ц и я d e ia u n a y о с н о в а н а н а п ро грам м ж е сам ы х п а р а м е тр о в а л г о р и тм (с м . http:/ / www.qhull.org/ ). Ф ун к ц и к и пр уг о л ь н а
а
е Qhull и д о п у с к а е т р и а н г ул я ц и и
я d e ia u n a y и с п о л ь з уе т с я , н а п р и м е р , д л и в и з уа л и з а ц и и ф ун к ц и й , о б л а с т ь о п р е де л е н и я (СМ . ф ун к ц и и t r i m e sh И t r i s u r f Н)Ие Ж
• trime s h — п о с т р о е н и
(н е о б я з а т е л ь н т р е уг о л ь н и к о в (с м . в ы ш е )
е к а р к а с н о о п р я м о уг о л ь н о й . С е т к а г е н е р и р уе т с
й п о в е р хн о с т ) о б л а с т и я пр
я з а да н и
,
я т р е уг о л ь н о я к о то р ы
т з а да н и е те х ч т о и zyxwvutsrqponm Qhull й с ет х н е п рям о
-
.
и ф ун к ц и . О б л а с т и п омощ
и н а п рои з вольн о й ь з а да е тс я с е тк о й и з и ф ун к ц и и d e ia u n a y
.
• t r i m e sh ( t r i , x, у , z ) —п о с т р о е н и н а т р е уг о л ь н о й с е тк е с к о о р ди н а та м у , и з н а ч е н и я м и ф ун к ц и и в в е к то р м ац и ю о т р и а н г ул я ц и и . П о в е р хн о с т (P atch) (с в о й с т в "Окет ъ б .аздр
ь графи к
е каркасн о и уз л о в е z. М а т р и ц
а ф ун к ц и
а п о ли го н аль н ы Patch, цвето
и я в л я е тс х о б ъ е к то
З а да н и е свой ст и л и н е п о с р е дс тв е н н
в п о в е р хн о с т о в о в хо д н ы
и п о в е р хн о с т и х в в е к то р а х х и а t r i с о д е р ж и т и н фор
я п о ли го н аль н ы в и р а б о т кевт"оъ б ав ыг л
ине л м р о ф о
• t r i m e s h ( t r i , x, у , z, с ) —у к а з а н и в м а тр и ц е с .
й м о де л
, з а д а н н ы
е ц вет
и п р о и з в о ди тс х а р г ум е н т а х
а с н им
м о б ъ е к то и оп и сан 9).
а п оли гон аль н ог
м ы в zyxwvutsr
о объект
а
я пр и п омощ и ф ун к ц и и se t :zyxwvutsrqponmlkjihgfedcbaZYXW
1 1 ќ trimesh (..., 'PropName', 'PropValue', 'PropName , 'PropValue , . . .) .
• h = t r i m e sh ( . . . ) — в о з в р а щ а е н ы й объект . П ри м ен ен и р и в а е тс
я в гаве л
е se t д л я и з м е н е н и 9.
т ук а з а т е л я свой ст
ь н а с о з да н н ы в гр афи ч еск и
й п о ли го н аль х о б ъ е к то
в рас м ат
-
-
р П е ин л о ж
1. Ос но веы
Л и с ти н о б л а с ти п ом щ ш а го
окм ыанд
г П З с о е др ж и . В екотр и п а р м е рт и ч е с к м и з м ен ен и
и фуцнки
1067zyxwvutsrqpon
MATLAB и Toolbox
т п ри м е р п о с рт е н и я н фу к ц и и н а ш е с ит г оу л ь н о й ы х и у с к о р ди н а т м и зу ло в кс ет и ге н е р и рю у ст я пр и и з адн н ы х о к рж у н о с е т й с д о с та о ч н о боль ш и м я п а р м е тр а . Р ез льу ат т п р и в ед н н а р и с . П З .zyxwvutsrqponmlkjihgfedcb
Л и с т и н г ПЗ . Пост рое ни е фицнку и н а не прмя огул нь й обл а с т и | zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % З а д а н и
е в е к то р
а с о з н ач ен и ям
и п а р а м е тр
I
а
t = 0 : p i / 3 : 2 *p i ;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA % Ги ц а р е н
я ви н ш е н
х уо л з
в от с а л б
и (ви ш р е
н ш акиньлогуитсе
)
х = s in(t); у = cos(t); % Ги ц а р е н
я ду в
х се о л
в ви н е р т у н
х уо л з
в
х = [х 2/3*sin(t)]; у = [у 2/3*cos(t)]; х = [х l/3*sin(t)]; у - [у l/3*cos(t)]; % Зи н а д
е д гоньлетинлоп
о ул з
( х length(х
) + 1 ) = 0;
( у length(у
) + 1) = 0;
% Пи н е о р т с о
е ск т е
а в цр т н е
е нл а ч
а ка н и д р о
т
и
tri = delaunay(x, у) ; % Ви н е л с и ч ы
е зи н е ч а н л
z = - х. 2 - у.
А
й фи ц к н у
и в уа л з
х ск т е
а фи ц к н у
и н а то н ь л о г у е р
и и зс и п а
ь зи н е ч а н
й в во т к е
р z
2;
subplot(1, 2, 1) % Ои н е ж а р б о т
е гк и ф а р
й ск т е
е и пс и п д о
ь ое с
й
Hsurf = trimesh(tri/ x, у , z); set(Hsurf, 'EdgeColorќ, ќk', 'LineWidthќ, 2) xlabel('x'); ylabel('у') ; % Во в ы
д ск т е
и в т о ж е го к с е ч и ф а р
е он к
о н а ди г у р
е ос
и и пс и п д о
ь ое с
й
subplot(1,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA 2, 2) % Уи н а з к
е в кв т с е ч а
% пи н е о р т с о
ю ск т е
е чг о т р е в т е
о ат н е м у г р
а ны в е л у
и
Hmesh = trimesh(tri, x, у , zeros(size(x))); set(Hmesh, ќEdgeColor', 'k', 'LineWidthќ, 2) xlabel('x');
х зи н е ч а н
й пи д о в и р
т к
Приложеня
1068
zyxwvuts
ylabel('у') ; % Ои н е л д е р п
е ды н р е м у в
х ое с
й
view(2)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Рис
. П З
. Ги ф ар
к фнцик у
П t r i su r f — п о срт о ен и е к арк асн о п рои з воль н о й (н е о б яз а етл ь н а н а л о ги ч н о trim esh (см . в ы ш е)
и н а ьн тло г уер
е гиорка ф
о р Ом ф л е н и • c la bel — п о м ещ ен и
й к т ес
е и ск т е
а
й з а к р а ш ен н о й п о в ернх о с т и н фу к ц и и н а о п р я м о гу л ь н о й ) о б л а с ти . И с п о л ь з о в а н и е .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ
в е п опд и се
й к ли н и я
м уро в н
я н а к о н рутн ы
х гр а фи к а х
.
• c la bel (с , h) — вохнд ы м и а р мг у е н ат м и я в л ю ст я : м а тр и ц а с с ин фо р м а ц и е й о ли н и я х р уо в н я и в ек от р к у а з е тл й h н а сам и ли н и , яв л яю щ и ес я м н о г уо л ь н и к а м и (гр афи ч еск и м и о б ъ е к ат м и ти п а patch). Дан н ы е а р мг у е н т ы и н и ц и а л и з и р ю у ст я п р и с о вт ес ю у щ е м о бращ е н и и к con tour, con tourf и л и contour3zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON (с.м р.азд "Ке тныуор гик "афр ав ыг л 3). • c label (С , h ,v) — м ар к и рюу ст в е к от р е v. c label (с , h, 'm an ual') — п ерох руо в н я . Щ ел ч о к мы ш ь ю п о ли н и
я то л ь к
о ли н и д в р еж и и р уо в н
и ру о в н я
м р чу н о я п р и в о ди
, ку а з а н н ы й р а з м е кт т к п о яв л ен и
е в и ли н и
й ю н а
р П е ин л о ж
1. сО но веы
н е й п о дп и с вае т реж и
ком ыанд
и фуцнки
и с о з н ач ен и е м р а з м е тк и
1069 zyxwvutsrqpo
MATLAB и Toolbox
м ф ун к ц и и
. Н а ж а т и
е н а < E n t er > о с т а н а в л и
-
.
• c l a b e l ( C ) , c l a b e M C , v) ИЛ И c l a b e l (С , ' m a n u a l ' ) — п р а к т и ч е с к ж е р е з ул ь т а , ч т о и п р и ук а з а н и и п , н о л и н и я ур о в н я о тм е ч а е тс р о м (з н а к о м п л ю с ) , р я д о м с к о т о р ы м п о м е щ а е тс я з н ач ен и е ф ун к ц и и • hmark = c l a b e l ( . . . ) з а те л я м и н а с о з да н н ы в хо д н о г о а р г ум е н т а н с т в о u se r D a t a к а ж д о г ц и и н а ли н и и ур о в н я .
— в ы х о д н о е объект е з а да в а л с о те к с то в о г
и ТО
Т
я м арке
.
й а р г ум е н т я в л я е тс я в е к то р о м с ук а ы ти п а t e x t (и l i n e s , е с л и в к а ч е с т в я ук а з а т е л ь h н а л и н и и ур о в н я ) . С в о й о объект а с о де р ж и т з н ач ен и е ф ун к
е -
• c l a b e l ( . . . , ' PropName ' , ' P ropValue ' , . . . ) — п а р ы Ы ВХОДН Х ар гу м е н то в п оз воляю т з а да т ь лю бо е с в о й с тв о те к с то в ы х о б ъ е к то в , т . е . п о дп и с е й к ли н и я м ур о в н я . Д о п о л н и т е л ь н о е с в о й с тв о ' L a b e i sp a c i n g' п р е дн а з н а ч е н о дл я о п р е де л е н и я р а с то я н и я в п ун к т а х м еж д у п о дп и сям и , п о у м о л ч а н и ю и с п о л ь з уе т с я 144 п ун к т а (1 п ун к т = 1/72 д ю й м а ) .zyxwvutsrqpon • da t e t i c k — р а з м е т к
а оси
, п о к о т о р о
й о тк л а ды в а е тс
я врем я
.
d a t e t i c k ( t i c k a x i s , d a t e f o r m ) — п е р в ы й НО Д Х В Й а р г ум е н т t ic kaxis п р е дн а з н а ч е н дл я ук а з а н и я ос и и м о ж е т п ри н и мат ь з н ач ен и я ' х 1 , ' у ' и л и f z f . В т о р о й а р г ум е н т о п р е де л я е т форм а т р а з м е тк и , н а п р и м е р : 'dd- mmmУУ У H H :M M :S S ! , 'H H :M M :ssf (в с е в о з м о ж н ы е з н ач ен и я d a t e fo r m п р и в е д е н ы в сп равочн о й с и с те м е M AT L AB) . Д л я к о р е к т н о й р а з м е тк и ос и вре м ен и да н н ы е , о т к л а д ы в а е м ы е п о н ей , д о л ж н ы с о тв е тс тв о в а т ь сери й н о И daten um И now). м у врем ен и (СМ . фИЦНК у • g rid — о т о б р а ж е н и
ине"Ол м р о ф
е ил
и с к р ы ти
икв "о гафр ав ыг л
• gr i d on — о т о б р а ж е н и • gr i d off — с к р ы т и • g r i d — е с л п р и с ут с т в ую т
е ли н и
е с е тк е с е тк
и н а т е к ущ и и н а т е к ущ и
и ли н и и с е тк , т о с к р ы в а ю т с я
й к о о р ди н а тн о
й с е тк
и zyxwvutsrqponmlkjihgfed (с.м .аздр
3). х о сях х о сях
и о т с ут с т в ую т
. .
, т о о н
и о то б р а ж а ю тс я
, а е с л
и
.
П олн о е уп р а в л е н и е с е тк о й о с ущ е с т в л я е т с я пр и п омощ и свой ст в XG rid, YG rid Z G r id , XM in o r G r id , YM in o r G r id И Z M in o r G r id к о о р д и н а т н ы х еС О Й (с.м р.азд "Стйвсоа йе"с о ав ыг л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJI П g t e x t — р е ж и де л а х гр афи ч еск о г
м и н те р а к ти в н о г о окн а
о раз м ещ ен и
я те к с то в ы
х п о дп и с е
й в п ре
-
.
• gt e xt (' s t r i n g ' ) — п о с л е вы п олн ен и п о област и т е к ущ е г о гр афи ч еск о г ст а в в ы б р а н н у ю п ози ц и ю . В с л уч а да е тс я н ово е окн о .
о окн е о т с ут с т в и
я да н н о а п р и в о ди
й коман д я гр афи ч еск и
ы щ елч о т к п ом ещ ен и
к мы ш ю те к х око н соз
и -
1070
zyxwvutsrq
р П е ин л о я ж
• gt e xt ({• s t r i n g i ' , ' s t r i n g2 ' , . . .}) — у к а з а н и г о а р г ум е н т а в е к то р - с тр о к и яч е к и з те к с то в ы ди т ь м н о г о с тр о ч н ы й те к с т .
е в к а ч е с тв к п оз воляе
е в хо д н о
х с тр о
• gt e xt ({• s t r i n g i ' ; г о а р г ум е н т а в е к то р - с то л б ц м е с ти т ь те к с т з а н есколь к
е в к а ч е с тв к п оз воляе
е в хо д н о
х с тр о
' s t r i n g 2 ' ; а яч е о щ елч ко
. . . }) — у к а з а н и к и з те к с то в ы в мы ш ью .
т во
-
т раз
-
• gt e xt ( . . . , ' PropName ' , P ropValue, . . . ) — п а р ы Ы ОДН Х В Х а р г ум е н то в о п р е де л я ю т с в о й с тв а до б а в л я е м о г о те к с та , к а к о б ъ е к т а text (с в о й с т в а те к с то в ы х о б ъ е к то в оп и сан ы в zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR .аздр "Ввд оы ткйвеос и -н аци "м р фо ав ыг л 9). П h o l d — у п р а в л е н и "Вдв оы ь к и х л с е но cla, elf и reset ан
е в ы в о до и к в о га ф р
м н есколь ки ан ин д о к о ан и ойе"с
тйвсоа
• h o ld on — к а ж д ы окн о .
й н овы
й гр афи
• h o ld off — к а ж д ы ско м окн е , п е р е п и с ы в а
й н овы
• h o ld — п е р е к л ю ч е н и до м н о в о г о графи к
е м еж д а с п о т е р е
П le ge n d — п о м е щ е н и кв"о ав ыг л 3).
ис о ав ыг л к до б а в л я е тс
й графи
к о то б р а ж а е тс е окн а
я с о де р ж и м о
е леген д
х графи к о в в о дн " авыг л 3 и "Вине я л 9).
у реж и м ам й п р е д ы д ущ и х
о окн
о {с.м
.аздр hold,
а дн к м о
я в т е к ущ е
е гр афи ч еск о
я в т е к ущ е
е
м гр афи ч е
-
. и до б а в л е н и
я Т рафи к
а и вы во
-
.
ы н а гр афи
к {с.м
р.азд
ине"Ол м р о ф
• l e g e n d ( s t r i n g i / s t r i n g 2 , s t r i n g 3 , . . . ) — в х о д н ы е а р г ум е н т С Т ЛЯЮ Я с т р о к а м и и л и с тр о к о в ы м и п ерем ен н ы м и , с о д е р ж а щ и м н ен и я дл я г р а ф и ч е с к и х о б ъ е к то в , р а с п о л о ж е н н ы х н а т е к ущ и
и - га ф р ы ВЯ и п ояс х о сях .
• le ge n d ( h , s t r i n g i , s t r i n g 2 , s t r i n g 3 , . . . ) — п е р в ы й О ОДН Х В Й ар г ум е н т я в л я е тс я в е к то р о м ук а з а т е л е й н а гр афи ч еск и е о б ъ е к ты , . и н форм ац и я о к о то р ы х до л ж н а с о де р ж а ть с я в л е г е н де . О б ъ е к т у с ук а з а те л е м h ( l ) с о т в е т с т в уе т s t r i n g i , h (2) —s t r i n g 2 H T . Д . Т екс т леген д ы може т з а да в а ть с п ерем ен н ы х , Н О И В м а с и в (работ а с м ас и вам и с тр о вы 9). • legen d (Н а х
, . . . ) — р а з м е щ е н и
• legen d off — уд а л е н и • le ge n d (Н а х р ы е Н ах .
е леген д
, ' o f f ) — уд а л е н и
е С рт о к оп и сан
я н е т о л ь к о в с тр о к а х и л и с тр о к о в ы х к : legen d (M) Л И И le ge n d (h, М ) "М ивсаы к о"трс а- г л а в .аздр
е л е г е н д ы с т е к ущ и е леген д
ы н а ос х осей ы с осей
и с ук а з а т е л е
м н ах
.
. , у к а з а т е л
ь н а к о то
-
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
1071 zyxwvutsrqpo
MATLAB и Toolbox
• H ieg = legen d — в о з в р а щ а е т ук а з а т е л леген д ы н е т , т о H ieg = [ ] .
ь н а л еген д
у т е к ущ и
х осей
, е с л
и
• legen d ( . . . , ' L o c a t i o n ' , l o c a t i o n ) — з а д а н и е п олож ен и я леген д ы В в е к то р е l o c a t i o n = [х у wid t h h e i g h t ] , г д е х И у — к о о р д и н а т ы н и ж н ег о левог о уг л а в с и с те м е к о о р ди н а т гр афи ч еск о г о окн а , a wid t h и h e i gh t — ш и р и н а и вы сот а л е г е н ды . Е д и н и ц ы и з м ерен и я о п р е де л я ю ст я в н о рм али з о в ан н ы х еи д н и ц а х zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJ (с.м р.азд "Ринещ азм ок,н о ойес и ткеас"ав ыг л 9). П арам ет с то в ы ин е л
р l o c a t i o n м о ж е х з н ач ен и й , н а п р и м е р ик а"гфр авыг л 3).
П рои з вольн о ван и я графи к о
е п олож ен и в (с.м
т п ри н и мат ь о дн о и з п р е до п р е де л е н н ы : ' N o r t h ' , ' S o u t h 1 и д р . (с.рм .азд е леген д 4).
ав уг л
ы о п р е де л я е тс
х те к
-
"О- м р о ф
я в реж и м
е р е да к ти р о
-
П ро грам м н о е и з м ен ен и е п о л о ж е н и я и с в о й с т в о б ъ е к то в л еген д ы п рои з в о ди тс я пр и п омощ и обращ ен и я [hLeg, hO, hP , t x t ] - legen d ( . . . ) , к о то р о е воз вращ ает : ук а з а т е л ь н а ос и леген д ы (hLeg), ук а з а т е л и н а гр афи ч еск и е и те к с то в ы е объект ы леген д ы (ho), ук а з а т е л и н а объект ы графи к а (hp), м а с и в яч е к и з т е к с т о в ы х с тр о к леген д ы ( t xt ) . С в о й с т в а да н н ы х о б ъ е к то в м о гу т бы т ь и з м ен ен ы пр и п омощ и ф ун к ц и и se t (с.м авуг л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA • s u bpl o t — р а з б и е н и
о п р е дл н и к м с ео и ч га ф р
е текщ у ег ок"ен ав ыг л
П t i t l e — д о б а в л е н и к а" ав ыг л 3).
е гр афи ч еск о г о п о дг р а ф и к 3). е з аго ло в к
а н а гр афи
• t i t l e ( st r ) — т е к с т , с о д е р ж а щ и й с с тр о к о в о й п ерем ен н ой ) п о м е щ а е т с Т екс т може т бы т ь п р е дс та в л е С п и со коман с в о й с тв а м
к все д Т еХ
х си мволов , с о д е р ж и т с и объект
а ти п
о окн а н а н есколь к а (с.м р.азд "Ньк о лсе к (с.м
я в о в хо д н о я в гр афи ч еск о н в форм ат е Т еХ
, к о т о р ы я в сп равочн о а text (с м
е м о гу . с в о й с т в
о п о дгр а ф и к о гикв о афр
р.азд
ине"Ол м р о ф м а р г ум е н т м окн
в и в ом он д и - га ф р
е (с т р о к е в ерх
е ил у осей
и .
.
т бы т ь з а да н ы пр и п омощ й с и с те м е M AT L AB в р а з д е л о s t r i n g) .
и е с о
• t i t i e ( s t r , 'P ro pN am e', P ropValue, . . . ) — п о м е щ а е м ы й з аго ло в о к (о б ъ е к т text) и м е т с в о й с тв а , о п р е д е л я е м ы е п арам и в хо д н ы х а р гу м е н то в . Н а п р и м е р , д л я и с п о л ь з о в а н и я и н те р п р е та то р а L a T eX с л е ду т "Ввдоы ус т а н о в и т ь с в о й с тв о i n t e r p r e t e r в з н а ч е н и е ' l a t e x ' (с.м р.азд к ас те и х ч м ул м р фо в фоате м р LaTeX"гавы л 9):zyxwvutsrqponmlkjihgfedc » h = title('$$f(x) = \int\limits_CTx t sin t dt$$', 1 Interpreter', 'latex')
1072
zyxwvutsrq
р П е ин л о я ж
• zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA h = t i t l e ( . . . ) — в о з в р а щ а е т к у а з ет л ь н а с о з да в е м ы й з а го л в о (тек сот в ы й о б ъ ек )т , св о й свт а котрог о м о гу т бы т ь и з м ен ен ы пр м ощ и фну к ц и и set (с.м р.азд "Вдв оы ткйвесо аци и"мро фн авыг л О xiabel, yiabe l и zlabe l — п о д и с
к а" гавы л
и к ося
м (с.м
р.азд
к и п о 9).zyxwvutsrqp
ине"Ол м р о ф
ги- афр
3).
• xi a b e i ( st r ) — етк с , соедр ж ащ и й с и л и с тр о к о в о й п ер м ен н о й ) (дл я о с атл ь н ы х осе й а н а л о ги ч н о ) • x l a b e l ( s t r ,
я в о в о х нд о я в к а ч е с вт
, и сп о ль з есту
е (срто к е и к ос и х
.
P ropN am e, P r o p Va l u e ,
ос и (о б ъ ек т text) и м е м ен от в (с.м р.азд "Ввд оы
м а р гм у е н т е п од и с
т с в о й с вт а
. . . ) — п о м е щ а е м а
, о п р едля м ы ткйвесо
е п ар м
я П И СД О
и в о нх д ы 9).
аци и"мро фн авыг л
Ь К
х а р уг
-
т к у а з ет л ь н а с о з ад в е м у ю п од и с ь к • h = xiabel ( . . . ) — в о з в р а щ а е ос и (о б ъ ек т text), дл я и з м ен ен и я ег о св о й ст в е с лу д т в о с п о л ь з о в а ть с я н фу к ц и е й set (с.м гаву л 9).zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHG
п р а У в л е ни
е воид
Н ес к о ль к о р а з де л о MATLAB лд я и з м ен ен и ин е к чи т о а р зо б вы 4). Н иж н овк едбу м ож е п о в е рн х о с т
е п р и в е дн и тр еб ум о г т н а з ы в а ьт с т со тя
м гриак ф в кн и г " авыг л
и п о с в ящ ен я в и д а гр а фи к о 3 и р.азд
, ка м е р
а
ы о п и сан и в (с.м р.азд "Орзо б гикво афр
ю сп ос бов "Пторв
, п р елдаг ем ы гик а,фр и тйсе"хвонпр
ы осн овн ы е н фу к ц и и M ATLAB, п р едн а з н а ч ен н ы е о в и д а осе й гр а фи ч ес к о г о окн а . О б ъ ек от м в да н н о я с о ед р ж и м о е осе й (то , н а ч т о н а п р а в л е н а к ам ер а) ь и з н ес к о л ь к и х гр а фи ч е с к и х о б ъ е к от в M ATLAB, к и (Surface) и м н о г уо л ь н и к а (Patch).
П camdoiiy — и з м ен ен и
е п о л ж ен и
я к ам ер
• camdoiiy (dx, dy, dz) — п ер м щ ен и с и ем т е к о р ди н а т к ам ер ы . П ер м ещ ен и с те я з н а ч е н и е м dx, в в ер х и л и вн и н иц ы и з м ер н и я до л ж н ы с о вт е с вт о а т м ер , camdoiiy (1, - 1 , 0) п р и в о ди в енр х и й г уо л .
ы и о б ъ ек ат
х и-е зм а- г л лд я а с т у м р а з ед л , к о т р о п р и м ер у
f i x t a r g e t ' — Ь КЛОТ
О камеры
е ,
.
е к ам ер
ы и о б ъ ек т а н а dx, dy и dz в е в п р а в о и л и в л ев о о п р е дл я з — dy, в од л ь ос и к а м ер ы — dz. Еид ь ви д м о й о б л а с ти , н а п р и т к п ер м ещ ен и ю о б ъ ек т а в л ев ы й
• camdoiiy (dx, dy, dz, targetmode) — до п о л н и те л ь н ы й ч ев т р ы в о х нд о й а р мг у е н т targetmode п о з в о л яе т з адт ь р а з де л ь н о е п ер м щ ен и е к ам ер ы и о б ъ е к ат . З н ач ен и е 'm ovetarget' (и сп о ль з ему о му о л ч а н и ю ) с о вт ес у т п ер м ещ ен и ю и к ам ер ы , и о б ъ е к та 1
е
.
й е п о , а
р П е ин л о ж
1. Ос но веы
ком ыанд
и фуцнки
1073 zyxwvutsrqpo
MATLAB и Toolbox
• c a m d o l l y ( d x, d y, d z , t a r g e t m o d e , c o o r d s y s ) — Ы Т ПЯ
Й до п о л н и тел ь н ы
й
а р м гу е н т coordsys п р енд аз н ач е н лд я к у а з н и я с и емт ы к о р ди н а т и еи д н и ц и з м ер н и я п ер м ещ ен и й , з адв ем ы х dx, dy и dz. П о муо лч а 1 н и ю и с п о л ь з ес т у я з н ач ен и е 'cam era , к о т р о е о б ес п еч и в а е т п е р вд и ж ен и е в с и ем т е к о р ди н а т к ам ер ы (см . фн у к ц и ю camdolly (dx, dy, dz) в ы ш е) . Д л я и з м ен ен и я п о л ж ен и я к а м ер ы н а п ло ск о ст и э к ран а е су л д т и сп о ль з о в ат ь ' p i xe l s' , п ри ч е м п ер в ы е дв а в о н х д ы х а р м гу е н т а dx и dy з а д ю т с м ещ ен и е в п и к с ел а х , a dz и гн о р и реустя . Ча с т о од у б н о о п р е дл я т ь в ел и ч и н ы п ер м щ ен и й в си емт е к о р ди н а т о с ей , т в к а ч е с вт е п я от г о в о х дн о г о а р мг у е н т а ку а з а т ь лд я ч е г о е су л д 'data'.
• camdolly (н ах , . . .) — п ер м щ ен и е к ам ер ы и о б ъ ек т а о щс у е св т л я с я н а ося х с указ етл м н ах .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCB П cam iookat — н а п р а в л ен и о б ъ е к ыт . П р и м ен яест к о гр афи ч ес к и х о б ъ е к от ки х и з н и х .
е к ам ер я в то м счлуае в и требсту
ы н а нжу ы й гр а фи ч е с к и , к о гд а н а ося х р а с п о л ж ен я к у рп н и т ь в и д о дн о г
й о б ъ ек о ил
т ил
и
о н ес к о л ь и н еск о ль
-
camiookat (h) — н а п р а в л ен и е к ам ер ы н а гр афи ч еск и й о б ъ ек т , куаз етл м н а котры й я в л се т я h (в счлау е н ес к о л ь к и х о б ъ е к от в и с п о л ь з ес т у я в ек то р к у а з ет л й ) . П о с л едо в аетл ь н о с т ь к ом ан д , п р и в едн н а я н и же , обесп ч и в ае т п о с рт о е н и е в уд х к арк асн ы х с фе р и ч е с к и х п о в е рн х о с е т й н а о нд и х ося х и п о с л еод в аетл ь н о е н ап р ав л ен и е к а м ер ы с н ач л а н а п ерву ю с фе р у , а з еа т м н а в то р ю у :zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA >> [X, Y, Z] = sphere; >> XI = X - 1; >> Yl = Y - 1; >> Zl = Z - 1; » Х 2 = X + 1; >> Y2 = Y+1; >> Z2 = Z + 1; >> HI = mesh(Xl, Yl, Zl); >> hold on » H2 = mesh(X2, Y2, Z2); >> camiookat(HI) >> camiookat(H2)
• camorbit — п о в о р о
т к а м ер
ы в о к р у
• camorbit ( dt h et a, dphi) — п о в р о осе й н а гоу л d t h et a п о го р и з о н та л . Ли сит н к у а з ы в а ю ст я в гр асуд)х
г о б ъ е к та
.
т к ам ер ы вокру г о б ъ ек т а ещк т у и и и dphi п о в ер ит к а л и (з н ач ен и г П 4 соедр ж и т п ри м е р и сп оль з ова
х я -
1074
zyxwvutsrqp
р П е ин л о я ж
ни в се
я camorbit в о в ло ж ен н ы х ц и к ла х с ц ел ь ю о с м о тр а п о в е рн х о с т и с о х с то р о н .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
figure surf(peaks(40)) for i = 1:4 pause(1) for j = 1:36 camorbit(10, 0) pause(0.01) end camorbit(0, 90) end В оз м ожн о ку а з а н и о б ъ е к ат .
е раз ли ч н ы
• c a m o r b i t ( d t h e t a ,
в о хнд ы ни п оворот п о п р о и с о х ди то ч к и но [х кру з н а ч ен и л и ц ел н
х сп ос бо
d p h i ,
в п оворот
c o o r d s y s ,
а к ам ер
ы вокру
d i r e c t i o n ) — д о п о л н и т е л ь н ы
е а р мг у е н т
ы coordsys и d ir e c t io n п р едн а з н а ч ен ы лд я с и е мт ы к о р ди н а т и н ап р ав лен и я , в о к р у г котрог о п р о и с о х ди 1 . В о з м о ж н ы дв а з н а ч е н и я дл я coordsys: ' d a t a (и сп о ль з есту 1 1 му о л ч а н и ю ) и 'cam era . Е сл и ку а з а н о ' d a t a , т о п о в о р о т т вокру г ли н и , ищ уд е й в од л ь вы бран н ог о н ап р ав лен и , н а к о т р у ю н а ц ел н а к ам ер а . Н а п р а в л е н и е з а д е ст я м а р гм у е н т е d ir e c t io n и м ож е т бы т ь в е к от р м и з рт е х к о р д и н а у z] и л и с и м в о лам и ' х ' , 'у ' и л и ' z ' лд я ку а з а н и я п оворот г о п р едл н н о й к о р д и н а тн о й оси . В ы б о р в к а ч е с вт е я 'cam era' п р и в о ди т к п о в р о т у н а уго л d t h et a п о го р и з о н та и dphi п о в ер ит к а л и о нт о с и ет л ь н о от ч к и о б ъ е к та , н а к о т р у а к а м е р а .
• camorbit (Н ха , . . . ) — п о в о р о п о л ж ен н ы м в п редла х о се • с а тр а п — п о в о р о camorbit.
т о б ъ ек т
• campos — суат н о в к м ер ы о п р е дл я с т о р ди н а т .
а ил я в е к от р
• с = campos — в ы охдн о м ер ы в де к а р то в о й с и емт
т к ам ер й с указ етл
а вокру и о п р едл н и м и з тре й а р мгу е н е к о р ди н а
г
ы п р и м е н я ест м Нх а
г к ам ер ы
я к о б ъ е к та м
. П о л ж е н и й с и е мт
р с с о ед р ж и т текщ у и
т я к ам ер
ы я о т
в о ов дх
т
а во coordsys ю на , р а с
е а н а л о ги ч н
я к а м е р ы в в де к а р то в о
т в е к от
-
-
.
. И с п о л ь з о в а н и
е п о л ж ен и х э л е м н от
е
я к уа з
т к о р ди н а т х о с ей
.
о е к а е к о ы ка -
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
1075 zyxwvutsrqp
MATLAB и Toolbox
• campos ( [х у z] ) —zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIH з а д ни е по л ж е н и я е к а мр ы в ед к а т р о в й с и те м е к о ид р н а т осей .
• cpmode = campos ( 'm o d e') — вхы о нд й е м у н га р т яе сл т в я с т ор к о в й 1 и о т з на пе р м н о й и ом ж е т бт ы ь ' a u t o ли и ' m a n u a l' в з а вис ом с т еин ч я с во й с т в а осе й cam eraP o sit io n M o d ezyxwvutsrqponmlkjihgfedcbaZYXWVUTSR (с.м р.азд "Упине аврл -е к ам й"о р ав ыг л 4). zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA • campos(mode) — ус та но вк н о й е ум а г н р т ом ж е т паинмтр • campos (н а х те л м Нх а . • camproj — ус та но вк и к о а рф г в н а э а нк р
а в с о тй С
а осе ь з е на ч и
, . . . ) — аупрвле ни а ли
й C am eraP osition M ode. В х о д f я ' a u t o ' ли и ' m a n u a l .
е по л ж е ни е
и о пе р д л е н и
м е ка м р
е ти п
ы н а ося
а о пр е к ц и
и осе
т p r o j с о ед жр и ы в д а в аи р н т и О Т зеначи я В Т С СВОЙ
й е ум а г н р . В о з ом ж н
• cam proj ( p r o je c t i o n ) — з а д ни е тип а о пр е к ц и 1 а р Эк н ( ' o r t h o gr a p h i c ИЛ И ' p e r s p e c t i ve ' ) .
и е т р х е м ны р
• cam proj (Н ах , . . .) — ус та но вк ку а з т е л м ан х н а э акнр .
е тип
р ы и о б еъ к т
т е ар к м а о пи с а н
hold on cylinder for i = 1:60 pause(0.01) camroii(6) end
а ли
ы в о ук р о в р.азд
• c a m r o ii ( d t h e t a ) — по в о р а чс о в й с е к тр л . П ирем
sphere
х с указ
й ет р х е м ны р
-
х
.
• p r o j = cam proj — вхы о нд ет р х е м ны р х осе й н а э а кнр ИЛ И ' p e r s p e c t i v e ' , В З авис ом т осе й к о ид рн а т .
• I c amroii — по в о р
-
г е е о с
"Уе и н арвпл
и ( в з а и н ом
к" й ое р а м т е ка мр
р с о ед ж р и т с
и о пе р д л е н и
ы н а о уг я в лис т нг
т ти
и 1
: ' o r t h o gr a p h i c а P r o je c t i o n
х осе
а о пр е к ц и
е ра с по ло ж е ни
гав ы л
п опр е к ц и
й н а
и осе
й с
е е акм
-
4).
л dt he t a (в аругсд а х ) п о е П 5 . zyxwvutsrqponmlkjihgfe
1076
е п о в о р о т
П р и м ен ен и П ОМ ОЩ
а к ам ер
И о бр ащ ен и
ы к ося
м с указ етл
м н а х п р о и з в о д и ст
е кам еры
• с = c a m t a r ge t — в о з в р а щ а е ру ю н ап рав лен а кам ера о сей .
т в е к то , в д е к а р т о в о
р с к о о р ди н а та м й с и с те м
c t m o d e = c a m t a r g e t ( ' m o d e ' ) — В Ы ОХ Д Н О
во й п ерем ен н о й и с о де р ж и C ameraTargetM ode.
и то ч к и
т з н ач ен и
• c a m t a r ge t (Н ах л е м Н ах .
а ИЛ
И п о л уч е н и
• v = с а т и р — в ы х о д н о то в о й с и с те м е к о о р ди н а ав ыг л 4).
й а р г ум е н т т е к ущ и
т v я в л я е тс х о с е й (с.м
• с а ти р ([х у z]) — в хо д н о й а р г ум е н в о й с и с те м е к о о р ди н а т т е к ущ и х осей ния , в а ж н о о п р е де л я е м о е и м н ап равлен и е п ри н и мае т з н ач ен и е [х у z ] . •
u p m o d e = c a m u p ( ' m o d e ' ) —
п ерем ен н о й и с о де р ж и CameraU pVectorM ode. • camup (mode) — у с т а н а в л и в а е кам еры , т . е . с в о й с т в ( ' a u t o 1 И Л
• camup(Н а х кам ер ы осе
, н а к о т о р у ю т т е к ущ и х о сей , (с.рм .азд е [х у z]zyxwvutsrqponmlkjihg
т Я В Ле Т С
В Ы ОХ Д Н О
т з а да е . Д л и н
и ' m a n u a l с в о й с тв
ы н а ося
х с ук а з а т е
я в е к то р
а кам еры
.
я в е к то р о р.азд
м кам ер
, И
-
ы в де к а р й"о ре к ам
"Уине апврл
т в е к то а в е к то р . С в о й с т в
е ' a u t o ' и л
а
я кам еры е mode ( ' a u t o ' Л И
е кам ер
Й ар гум ен
т з н ач ен и
Я CTpOKO1
м п оз и ц и он и рован и т з н ач ен и
е н ап равлен и
х
е то ч к и
е ' a u t o ' и л
, . . .) — п о з и ц и о н и р о в а н и
, н а к о т о т т е к ущ и
е к о о р ди н а
Й ар гум ен
• c a m t a r ge t (mode) — у с т а н а в л и в а е т реж и Т . е . В Т С ОЙ В С О CameraTargetM ode П р и н и м а е ' m a n u a l' ) .
р — у с т а н о в к
и
.
• c a m t a r ge t ([х у z]) — у с т а н а в л и в а е т п олож ен и н ап равлен а кам ер а в де к а р то в о й с и с те м е к о о р ди н а т . е . с в о й с т в о C am eraTarget п р и н и м а е т з н ач ен и "Уине апврл й"о ре к ам ав ыг л 4).
• с а ти
я п р
я c a m r o l l ( H a x, d t h e t a ) .
• c a m t a r ge t — п о з и ц и о н и р о в а н и
•
zyxwvutsrq
р П е ин л о я ж
-
р кам ер ы в де к а р то а н е име т з н аче о C am erau pvect or
т Я В еЛ Т С
Я С ТрОК ОВ О
и ' m a n u a l'
т реж и м вы бор а н ап равлен и о CameraU pVectorMode п р и н и м а е
Й
с в о й с тв
а
я в е к то р
а е mode
я в е к то р
а
т з н ач ен и
И 'm anual').
, . . . ) — у с т а н о в к й с ук а з а т е л е м н ах
а ил .
и п о л уч е н и
е н ап равлен и
р П е ин л о ж
1. сО но веы
ком ыанд
и фуцнки
1077 zyxwvutsrqpo
MATLAB и Toolbox
camvazyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA — у с т а н о в к а и п о л уч е н и е уг л а обз ор а объект а кам ерой . П zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
• с = camva — в ы х о д н о й а р г ум е н объект а кам еро й н а т е к ущ и вы 4). • camva (а ) —- в х о д н о й а р г ум е н ек т а к а м е р о й н а т е к ущ и х о сях з н ач ен и е с . •
т с я в л я е т с я уг л о м обз ор а (в г р а д у с а х ) х zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPON (с.м р.азд "Уине апврл й"о ре к ам а- г л
х ося
т а з а да е . С в о й с т в
т уг о л обз ор а (в г р а д ус а х о CameraviewAngie п р и н и м а е
c v a m o d e = c a m va ( ' m o d e ' ) — В Ы ОХ Д Н О
Й ар гум ен
• camva (mode) — ус т а н а в л и в а е CameraViewAngleMode п р и н и м а е • camva ( ax, . . .) — у с т а н о в к н а ося х с ук а з а т е л е м н ах • camzoom — и з м е н е н и
е уг л
т Я В е ТЛ С
е ( ' a u t o 1 и л
п ерем ен н о й и с о де р ж и т з н ач ен и CameraViewAngleMode. т реж и
м вы бор т з н а ч е н и
а и п о л уч е н и
Я С ТР ОК ОВО
и ' m a n u a l 1 ) с в о й с т в
а уг л а обз ора е mode ( ' a u t o ' Л И е уг л
а обз ор
а объект
) о б ъ
т
Й
а zyxwvuts
, т . е . с в о й с т в о И ' m a n u a l' ) . а кам еро
й
. а обз ор
а объект
а кам ерой
.
• camzoom (р ) — з н а ч е н и е в хо д н о г о а р г ум е н т а р , б о л ь ш е е е ди н и ц ы , при в о ди т к ув е л и ч е н и ю уг л а обз ора , е с л и р м е н ь ш е е ди н и ц ы , н о б о л ь ш е л обз ор а ум е н ь ш а е т с я . В Т СЙ О В С О CameraViewAngleMode н ул я , Т О уг о п ри н и м ае т з н ач ен и е ' m a n u a l' , а з н а ч е н и е CameraviewAngie и з м е н и я е т с я с о т в е т с т в ую щ и м образ ом . П р и м е р п ри м ен ен и я camzoom п р и в е д е н в л и с ти н г е П 6 . zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA | zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA Л ис т ин г П6 . Изм е н и е улг а обзор а оетбък а
sp h e r e for i = 10:- 1:3 pause(0.05) camzoom (1/10) end for i = 3:10 pause(0.05) camzoom (10) end
1078
р П е ин л о я ж
И з ем н и з а те л
м На
е л гу С Тх И ВОД З ОИ Р П
а обзор
а к аемо р
й о бе ъ кта Я пр
П das pe c t — из ем н и
е ли
, ра с по л о ж е н о г
и ПОМОЩ
и по е л уч н и
• d = d a sp e c t — во з аврщ е осей .
т ве к т о
о н а о с я х с уак я zyxwvutsrqponmlkjihgfedcbaZYXWVU camzoom(H ax, p) .
И о б арще ни е а м с шт а б
zyxwvutsr
а осей
.
р d, о епр д лящию
й а м с шт а
б те и щ к у
• d a sp e c t ( [ х у ищ х о с е й , ва ж н
z] ) — ус та но вк а с о т н о ше н и я ма с ш т а б о а п ор цр и я э ле м нт о в в е к т о ар , на ипрем d a sp e c t ( [ 1 2 1]) И d a sp e c t ( [10 20 10]) пирво яд т К о ид н а к о в ы е р з у л ть а м . С во йс тв о D a t a Asp e c t R a t io пирн ам е т ни е [х у z ] , a D a t a Asp ec t R a t io M o d e— ' m a n u a l' . П р и о т о б ар ж е ни е ын ра ьл х е г о е м ит рч с к и х о беъ кто в л д я с о х а рне и я с о т н о ше н и е м и ч т ср к х а р з ем о р в с ле у д т ус танилв ь [ 1 , 1, 1 ] , наиепмр
х в е т ук
: м
з е на ч
и я его
:
>> sp h e r e . » d a sp e c t ( [1 1 1]) • darmode = d a sp e c t ( 'm o de') —НО ОД ВЫХ в о й п е р ем н о й и с о ед ж р и т з н ае ч и DataAspectRatioMode.
Й е ум а г н р е ( ' a u t o ' ил
т ерж и • d a sp e c t (mode) — су танвли е В СВОЙСТ О D ataAspectR atioM ode ипнраме ' m a n u a l' ) .
• d a sp e c t (Н а х , . . . ) — из ем н и з а те л м Нх а . • pbas pe c t — ус та но вк
а ли
• v = p b a sp e c t — в ве кто осей .
м вб ы о р т з н ае ч и
е ил
и о еп р д л е н и
а а м с шт а б
и по ел уч н и
а zyxwvuts
а осей , т . е . е mode ( ' a u t o ' ИЛ И
е ам с шт а б
е с о т н о ше н и
р v з аипсвеы т
т я е л вс т я ОКО СТр и ' m a n u a l' ) с во йс тв
я л ди я с о т н о ше н и
а осе
й с ак у
н осей
.
е л ди
н т е ки щ у
-
х
а с о т н о ше н и я дл и н т е к ущи х • p b a sp e c t ( [ х у z] ) — ус та но вк осей , ва ж н а п ор цр и я э ле м нт о в ве к то ар , на пирем : p b a sp e c t ( [ l l 1]) и p b a sp e c t ( [ i o 10 10]) ипрво яд т к о ид н а к о в ы м е р з у лть а та м . С в о й с т в о P io t Bo xAsp e c t R a t io пирн ам е т з н а еч н и е [х у z ] , a
PlotBoxAspectRatioMode — 'manual'. ќ pbarmode = pbaspect ( 'mode' ) — ОНДХЫВ
с я с тр о к о в о С ВОЙ С ТВ
й п ер м ен н о
й и со едр ж и
Й ан е м у г р
т з н ач ен и
т pbarmode Ят е Я Л В
е ( ' a u t o ' и л
и 'm an ual')
а P lo t Bo xAsp e c t R a t io M o d e .
т ерж и м вб ы о р • p b a sp e c t (mode) — су танвли е осей , Т . е В . СВОЙСТ О P lotBoxAspectR atioM ode ипнраме ( ' a u t o ' ИЛ И ' m a n u a l' ) .
а с о т н о ше н и т З е ан чи
я л ид н е mode
-
р П е ин л о ж
1. сО но веы
ком ыанд
• p b a sp e c t ( a x, о с е й с ук а з а т е л е • vie w — ус т а н о в к
и фуцнки
. . . ) — и з м е н е н и е и л и п о л уч е н и е с о тн о ш е н и я дл и н м н а х .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFED а ил
и о п р е де л е н и
е то ч к
и обз ора
.
• vie w( a z , e l) Л И И view ( [az, e l ] ) —з а д а н и пр и п омощ и а з и м ут а и уг л а склон ен и я (с.м р.азд "Пт о рв ик а,гфр ин е и з м к чи т о • view( 2) — з а д а н и с м о тр и т н а о с и с в е р ху • view( 3) — и з м е н е н и раем ы м и п о ум о л ч а н и ю •
е д в ум е р н ы , в д о л е ви д
ь ос
я К Ч О Т И о б з о р х в г р а д ус а 3).
е т е к ущ и
е т е к ущ е
х з н ач ен и
а пр
м склон ен и я
й а з и м ут
и п омощ и м а тр и ц ю viewm tx).
й м а тр и ц
ь
ы п реобраз ован и
, в ы б и
а и уг л
-
а скло
-
ы п реобраз о
я
-
з н ач ен и
й
. е м а тр и ц
ы п реобраз ован и я
.
• т = viewmtx ( az, e l) — в о з в р а щ а е т м а тр и ц ти р о в а н и я дл я о то б р а ж е н и я т р е хм е р н ы (э к р а н е м о н и то р а ) в с о т в е т с т в и и с то ч к о м склон ен и я (с м . ф ун к ц и а з и м ут о м и уг л о н а т е к ущ и х ося х н е и з м е н я е тс я . Д л я п о л уч е н и ния , с о т в е т с т в ую щ е й т е к ущ е м у п олож ен и и сп ольз оват ь обращ ен и е т = view.
у о р то г о н а л ь н о г о п роек х о б ъ е к то в н а п лоскост й обз ора , о п р е д е л я е м о ю view). С а м а то ч к а обз ор я м а тр и ц ы п р о е к ти р о в а ю то ч к и обз ора , с л е ду
• т - viewmtx ( az, e l , p h i) — в о з в р а щ а е обесп еч и ваю щ у ю п е р с п е к ти в н о е и з ображ ен и е м ен т p h i о п р е д е л я е т вели ч и н у п е р с п е к ти в ы в е т с т в уе т о р то г о н а л ь н о й п роекц и и .
т м а тр и ц
М а тр и ц рам л я ю тс де р ж и
а х zyxwvutsrqpo
х о с е й с AZ = о , EL = 90 ( н а б л ю д а т е л и z).
• view(T) — у с т а н о в к а то ч к и обз ор ван и я Т , s i z e (Т ) = [4 4] (СМ . ф ун к ц и • т = vi e w — п о л уч е н и а з и м ут а и уг л а склон ен и я
е П о ло ж ен и , в ы р а ж е н н ы а"рзо б ав ыг л
а о с е й с а з и м ут о м и уг л о : AZ = - 37.5, E L = 30.
[az, e l ] = view — п о л уч е н и н ен и я .
• viewm tx — в ы ч и с л е н и
1079 zyxwvutsrqpo
MATLAB и Toolbox
а т п р е о б р а з уе , п е р в ы е дв е к о м п о н е н т я и скомы м и п роекц и ям т п ри ме р и з ображ ен и
т в е к то р
ы дл и н ы к о то р ы х и н а п лоскост я к уб а с р а з л и ч н о
. Т р е т и , з н а ч е н и
ы ч е ты р , п о д е л е н н ы
у п р о е к ти р о в а н и я й в хо д н о й а р гу е phi = о с о т
и й а т
, -
е [х у z l] f к в е к т о е н а ч е т в е р т ую , я в ь экран а . Л и с т и н г П 7 с о й п е р с п е к ти в о й .
р П е ин л о я ж 1080zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Лиснт
г П7 . Имизне
е персивптк
ы иине жозбар
zyxwvutsrq
я zyxwvutsrqponmlkjihgfedcbaZYXWVUTSR
f i gu r e % З а д а н и
е к о о р ди н а
т в ер ш и 0
0
0
1
1
а
1
у = [0
0 1 1 0 0 0 1 1
z = [0
1
н к уб
х = [0
0
0zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML 1 1 0 0]; 0 0 0
1
1
1
1];
1 0
0
1
1
0];
0 0 0 0 1 1 1 1 1
% Цо к с е ч и л к и
е ии н е м з
е зи н е ч а н
я пв и т к е п с р е
ы
for phi = 0:10:90 % Пи н е ч у л о
е мцирта
ы пи н а в о р и т к е о р
я
Т = viewmtx(- 37.5, 30, phi) ; % Ни н е д ж о х а
е пи ц к е о р
v = Т*[х
й
; у ; z; ones(size(x))];
xl = v(l, :)./v(4, : ) ; yl = v(2, :)./v(4, : ) ; % Во в ы
д рт а ь л у з е
plot(xl, yl) pause(1) end
а н а ды н р е м у в
е ос
и
е и н лр ж о П
е 2
ис па О н К кн и г к о м а н ды В к о р н ев о м е р гл а в ы о п и сан п р о гр а м
е кмо тап-к искд е п ри ло ж е , п р и в едн н ы м к атлог . К аж д о с о вт е с и м да н н о
а
н к о м п а к - т ид с к
, к о т р ы е в етк с . Ди с е н ао х я д с т я п ап к я п ап к а с о едр ж и т Ме м ж ед у и м ен а м й гл а в ы .
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQ
й с о е др ж и т л и с ит н г и п р о гр а м м и к о р га н и з о в а н ю с ул ед щ и м образ ом . и с и м ен а м и Work_XX, гд е XX — н о фа й л ы и фа й л readme.txt, в к о т р о м и М - фа й л о в и н о м ер ам и л и с ти н г о в
П ап к и с н о м ер ам и Wo rkJO , Work_ ll, Work_12, Work_13 и Work_22 овте ч аю т те м гл а в м , к о т р ы е п о с в ящ ен ы с о з ад н и ю п р и л о ж ен и й с гр а фи ч ес к и м и н е тр ф й с о м п о л ь з о в а ет л я . И з чуа я э т и гл а в ы , в ы етдбу е п р о гр а м и р о в а т ь п о н фд у к ц и и о б р а б о тк и с о б ы ит й и м о ди ф и ц и р о в а т ь и х . М н о ги е фа й л ы со де р ж а т п о нф д у к ц и , п р енд аз н ач ен н ы е л д я в с ат к и в о сн о в н у ю н фу к ц и ю о б р а б о тк и с о б ы ит й . П о э т м у и м ен а М - фай ло в с п онфду к ц и ям и н а з ы в а ю ст я listing_x.m, гд е х — н о м е р л и с ит н г а в е тк с . Э т о ж е з а м еч а н и е к а с ет я од н о г о фа й л а listing_17.m в п ап к е Work_16 с н а б о р м п о н фду к ц и й дл я п р и л о ж ен и я с гр афи ч ес к и м и н ет р ф й с о м . В к а ж ыд й к атло щ и й и з с еб я М - ф а й л от ч к и з р ен и я а в то р о в в и д е л и с ти н г о в н о в р ем н н о с чент и е с я п о с л е од в а е т л ь н о з о в ат ь ран е е с о з ад н н ы р а з б и то м н а яч ей к и Д р гуа р е д а к то р к о п и ро в ан и
я воз м ож н ост м (м о ж н и и с п о л н яем о г
н фа й л summaryXX.m, п р есдатв ляю г Work_XX п ом ещ е , р а з б и ты й н а яч ей к и , к о т р ы й с о ед р ж и т осн овн ы е с в к о м ан д ы и фн у к ц и и и з тек с т а к н и ги , н е о ф р м л ен н ы е . И с п о л ь з у я р е д а к то р М - фа й л о в , и х м о ж н о и с п о л н ят ь од м к н и ги , н е н а б и р а я в к о м а н дн о й с рт о к е . Р ек о м ен туд е в ы п о л н ен и е яч е к , т . к . к о м а н д ы яч ей к и м о гу т и сп о ль е п ер м ен н ы е с р ед ы (о р га н и з а ц и я работ ы в М - фа й л е , , о п и с ан а zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA в р.азд и н Ре а з б М - а йл фа на яйек чи" гавы л 5). ь со ти о и з м ен и т
т в о кт р ы ит ь р ас ш и р ен и о код а в к о м ан нд у
Дл я и сп о ль з о в ан и я п р и л аг ем ы е щк т у и й к атло г M ATLAB, л и б л а т ь е г о е щк т у и м (усатн о в к а е к тщ у е г путйе"авыг л 5, к о т р а я ц ел и к о р у М - фа й л о в ) . П о с л е э от г о в с рт о к и и л и р е д а к то р а М - фа й л о м о ст и о т с о едр ж и м о г о М - фа й л а )
х М - фа й л о о ск о п и ро в ат
и фа й л о е лд
в summaryXX.m етк со в ы м я пу р о щ ен и я вы з ов а н а txt) и ю ср т о к у M ATLAB.
в е су л д
т ли б ь ц ел и к о а о п и сан
о к атлог м п о с в ящ ен а р а б о т е с М - фай лам ы м о ж ет е з а п с уи т ь М - фа й в и л и в ы з в ат ь к а к фа й л - н фу к ц и .
о ск оп и роват м п о дк а т л о а в р.азд
ь и х в г и е дс -
''Утваскон и и р еда к от л и з к о м а н дн о ю (в з ав и си
й -
Сп и с о
к литерату
ы
1. н Афруи е в И . Е . С ам очуи етл 2002. — 736 с . 2. Д ь як о н о н ия 3. М эьтю ад н и е )
: Р ку о в дс вт
ь M atLab 5.3/ б..х
— С П б .
в В . П . M atlab 6/ 6.1/ 6.5+ Simulink 4/ 5. О сн о в о п о л ь з о в а ет л я . — М . : С о л н - П р ес з Д . , Ф и н . — С П б .
4. Че н К . , Д ж и б л и н и ях . — М . : М и р 5. Чер н ы Д и а л о г- М И Ф И
zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML
к К . Чи слен ы : В и ль ям е
е м оеытд . И с п о л ь з о в ан и , 2001. — 720 с .
: БВХ - П етр б уг ы п р о гр а м и р о в а , 2002. — 768 с .
я и н ж ен ер н ы
-
е MATLAB (3- е и з -
н П . , И р в и н г A. MATLAB в м ает и ч ес к и , 2001. — 346 с .
х И . В . Simulink: сред а с о з ад н и , 2004. — 496 с .
,
х и с л ое д в а х п ри лож ен и й .
— М . :
6. Kwon Y.W. The Finite Element Method using MATLAB. — Boca Raton a. o.: CRC Press, 1997. —519 p.
и нг К
и иатесдвзль
а "Б-ХВ е Пт груб в проаедж
" :
www.bhv.ru М а г зи От е д
н "Наво
я кинаг" : zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFE .б П С , Ии кс во лйм за й п.р , д . 29, елт . (812) 251- 41- 10 : e- mail: [email protected]
я т е хниеч сак х п о с т а во к
л оытвпо
«В подлинке» Серия
д а мА е н к о .А , учокК (+CD- ROM) н др е А
в А . Л о ги че с ко
е про г ам м и ро вани
е и Visual Prolog
в А . и др . Microsoft Windows XP. Home Edition и Professional. е верс и и
ус Р и к н др е А
в А . и др
н др е А
. Microsoft Windows 2000 Professional. усР ак
я в ер с и
640 с . я
в А . и др . Microsoft Windows 2000 Server и Professional. е вер с и и
ус Р и к
я в ер с и в А . и др . Microsoft Windows 2000 Server. суР ак в А . и др . Microsoft Windows XP. оквуРсд т о дм а и н о с р т а н P. Macromedia ColdFusion
н др е А н др е А яа х А
992 с .
752 с . 1056 с .
я а
960 с . 848 с . 672 с .
о р уБ к а л
в М . CorelDRAW 11
720 с .
о р у кБ а л о р уБ к а л
в М . CorelDRAW 12 в М . Создани е в и де о л к п
720 с . 1216 с .
В и ш н е в с ик ус Р а к м о ф аГ
й А. , оКк р е в а О. , Чмек рае я в ер с и я н В . и др . Delphi 7
е н о к лД ж е н о к лД ж
в .В , Колес ни ок в .В , Колес ни ок
в в A. Microsoft Windows Server 2003.
1120 с . 1216 с .
в Ю . Microsoft Excel 2002 в Ю . Microsoft Excel 2003
1072 с . 1024 с .
р оД н
в В . Macromedia Dreamweaver MX
736 с .
р оД н
в В . Macromedia Dreamweaver MX 2004
736 с .
р оД н
в В . Macromedia Flash MX 2004
800 с .
уб о Д в ц е
в A. Microsoft .NET (+CD- ROM)
З а ке и ян ро К ь
р К . омК ерюнтыпь е с ие т в Д . Mathcad 12
оК к р е в о К л е с н и еч к ео р т К М о д ь нл к а М ма е р оМ с т а М еив х
. М одернизца
704 с . я и по и с
к неис прваносе т
в A. Microsoft Windows Server 2003 о .О , Ш и ш и г н И . Аныпрта е с р едв т а PC, 5- е и зд в Д. , Косарте в А . Н Р Р 5 д М . ASP.NET в Е . Microsoft SQL Server 2000
й
а О.,Чмек ра
в А . и др
. HTML 4.0
а В . Microsoft Access 2003 (+CD- ROM)
.
1088 с . 576 с . 1184 с 1152 с 1120 с 992 с 1280 с
. . . . .
672 с . 1072 с .
о рН т
н Р. , М юел
э у ал П
л Т . Web- ди зйан е рП с о
р Дж
н Р. , оуР
. Windows 98 , 2- е и зд
з К . Microsoft Word 97 в по длин к
-ц и т П и т М л о у
с .Н , иК р
е
к Ч . XML
о П ел щ у
к Н . AutoCAD 2004
о П ел щ у
к Н . AutoCAD 2004. Рзарб окт
а е н п и р ло ж
оП н м а р е н к
о С . FreeHand 7 в по длин к
оП н м а р е н к
о С . Adobe Illustrator CS
оП н м а р е н к
592 с 1072 с 1120 с 736 с 976 с 624 с 320 с
.
й и ациаптд
я
е
768 с 928 с .
о С . Adobe Photoshop CS
с уе Р
в С . WAP: неохтл ги
он х а т С
в A. Linux
и н ев т С
е Р . рПо ткл
. . . . . . .
я и пени р олж
я
432 с . 912 с .
ы TCP/ IP. Пиртечакс о
е рокув дс т
о
672 с .
и P. Python (+CD- ROM)
768 с .
ай Т
ц А . М. , Тйа
704 с .
ай Т
ц А . М. , Тйа
ай Т
ц А . М.
Су з
р Т а с ок в с ик ар Ф о н
в В
ар Ф о н
в В
на Х
т Ш . Этк фе ф
рияСе
ц A. A. Adobe InDesign
784 с . 1200 с . , Тйа ц A. A. CorelDRAW Graphics Suite 11: вс е про г ам м ы петка а 544 с . й A. BIOS . Turbo Pascal 1056 с . . Сисемт а про гам м и ро вани я Delphi 912 с . ы в CorelDRAW (+CD- ROM) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM 704 с . ц A. A. Adobe PageMaker 7.0
«М а с т е р»
Microsoft. Visual Basic 6.0 Microsoft. Ресру
ы Microsoft Windows NT Server 4.0. Кни г
Microsoft Со здани
е intranet. Оиноц ьла ф
Microsoft. Эротленка
я ок м м е р ц и я
й Аз е к
е о р к у в дс т
а 1 (+CD- ROM) о Microsoft
. В2В- про гма м иро внаи
е (+CD- ROM)
е С . Dynamic HTML (+CD- ROM)
н де рА с
н .В , Норт
ниА
н Б . Защ и т
с А б ра
н П . Рзарб окт
а е пн и р л о ж
а о к м е ю р п т ьн о
и С . Корп ивтаны
я н а бза
ь в Windows
н С . Фаск и м и нльа
я с взя
Бе р з и
н С . Фаск - м о де м ы
: выбор
оБ р
н Г . Рсет
и коилетвкно
и
е реш ени
Бе р з и
б а с оГ р ба Г
й в Access 97 (+CD- ROM)
й ио рм нф аци
е Linux (+CD- ROM)
, полюдкечни
р Windows 98 (+дисаетк
в Ю . Internet 2000 р П . Novell GroupWise 5.5: с и семт й б ор а т ы
р е ан Г
в A. Excel, VBA, Internet в э ко н м и к
р е ан Г
в A. Visual Basic .NET: раз б окт
, во хы
д в Ирен т
)
т
а э рлетокн
й пточ е и фи нас
а пенир ло ж
ы
992 с . 752 с . 672 с . 368 с . 496 с . 656 с . 384 с . 496 с . 304 с . 256 с . 496 с . 448 с . 480 с
816 с 624 с й zyxwvutsrqponmlkjihgfedcbaZYXWVU х
ра и Г гу
с С . Sound Forge. Мны ьлазук
о ре д Г
в О . Про гам м и ро вани
м о фа Г
н .В , Хом о не к
у б Д а ок
е з в ук о А . бота Р
в М . Веб - м саеритн а А . и др
ун ае Д а р ок Ж
в С . Тнеохл ги и ие р - н т п р о г м а м и р о в н а в С . Shareware: еспроифналь м в С . СП А
Р н а бза
Зи м
а В . и др
. Безопса н т
б О . и др
оК к р е в
а О . Рсет
. Рзарбкот
р Windows 2000
оК к р е в
а О . Рсет
р Windows XP
о ц с е К ль т в A. GTK+. Рзарб окт (+CD- ROM)
в М . И др
. Ком м униацк о н ы
о И . Виед
о «по- омд ша мен » у е з да о А . буПциалк
2- е и зд
.
ид О н ц о
в И . Пес ро фи н лаь
ас Р и к о б ин Р
ы Motorola
й м емта ик
560 с .
, теори
и и м еанхи к . (+дисаетк
я и
а пенир ло ж
1040 с . е
560 с .
е п р о г ам м и р о в ан и е
. Сисем т ны
р Н . Ныво е н е о х т л ги и и об ордувнаи н Ю . Fruity Loops Studio: м назьулык й о к м ею п т ь
о С . Adobe InDesign: ди з ай н Д . Microsoft Office 2000: разр б окт
680 с . й похд
,
й похд е IP- е ст я а б р фи к
р дл
ы ацаипдт
320 с .
й . Сисемт ны
я р а и г тс
д й а н а PC
а
а перни йло ж
624 с . 512 с . 512 с . 368 с . 496 с .
и AutoCAD н и верскт
320 с . . 528 с .
)
х в Иретн
е п р о г ам м и р о в ан и е
н Ю . Мны ьлазук
336 с . 352 с .
, с редсват
з дына
368 с .
352 с . х н а Java
о
я ба
в И . Пес ро фи н лаь
с при м ерам и
в
ц в Microsoft Office 2000
в Ф . Microsoft Office 2000: рзарб окт
к Н . Visual LISP и с рект
432 с .
) ы фирм
о прос т
ч вы с ш е
е Web- нрсиат
р В. , Ое илф н .Р , иле тП (+CD- ROM) и ле т П н .Р , иле тП
)
416 с .
х в прим ера
в Ю . Visual C++ и MFC, 2- е и зд
оН в и к
о П н м ар е н к
р дныа
е о с но вы
ид О н ц о
о П ле щ у
х Delphi (+дисаетк
. Мемта исч к
е ли О ф и ел т П
320 с .
х е й с о и р нф т
е кронелт
в М. , Хом о не к в Д . Создани
1168 с .
х Delphi (+CD- ROM)
. тЭ
в A. Maple 6. Реш ени
М и ро н
480 с . 320 с .
й
х ги ечсрафк
а суртк
в С . Про г ам м и ро вани е
М е щ е р о як
е
560 с .
е и о б ра окт
в А. , иохТм иро
304 с .
640 с .
а в паротек
урК и л е н к
)
я (+CD- ROM) х е н ох т л г и
й в Delphi (+дисаетк
а в праотек
уп р К и я н о
М е ш ок
а и пенировд ж
а п ер но с и м ы
й А . оСзднаи
р М о ст а
544 с .
а - ер ин т ени п р ол ж
в М . OpenGL и к раф Г
624 с .
я
х ыв е с т
у б К е н с ик
384 с . .
е (+дисаетк
я р аз б о к т к э т о дс етал
р Ка с н о
)
х в Delphi, 2- е и зд
е и э лреток ни
ь гын оьлба
в М . DirectX. и к рафГ
384 с .
и CSS
е д у о Кж
Л ав р о
и дына
е AutoCAD - ак
р Кас н о
ы
а в Windows (+дисаетк
. MS Excel в э рлетокнхи
е уЗ
и и этк фе ф
а с б азм
г с редсвмат
у б Ди н
п р о г ам
е ок м п о з и ц
576 с .
а
544 с . . Ко м п ак
т ди с
к
. с Д . Окдал т
а е н и п р ло ж
й (+CD- ROM)
512 с .
о м Р ве ы нч а р л е ма к
а .Э , Яцю к О . Ком ерюнтыпь а (+CD- ROM)
с уе Р
в Д . Тенхо л ги
е тенох л ги
и б е с п р о в дн о г
нц е в з а я Р р етк С
а .Н , Рзнцяае ы б от ар ы
н ц з е ав я Р р ет к С
ы б о т ар
н ц з е ав я Р р етк С
и в ди зай не
о до супта
. Эитвкна фе ф
. Спрваончик
я
.
432 с . 352 с .
в Д . 1С:рипеПдтя
. Ком п леск на
в Д . 1С:реПпид тя
. Бергалтухс ик
а .Н , Рзянаце ы б от ар ы
в Д . 1С:рипеПдтя
. Зраптл
а и кадры
.
304 с .
н ц з е ав я Р р ет к С
а .Н , Рзняаце ы б о т ар ы
в Д . 1С:рПепди тя
. Торг вл
я и с лкад
.
368 с .
цн ев з а я Р
а .Н , Рзнцяае
в Д . 1С:рипеПдтя
Со к л е н
о П . Про г ам м и ро вани е
ыС с о й и к н
а М . Borland Kylix: разрб окт
и о хТ м и р о (^ди с аект
в Ю . Open GL. рПо гма м и ро внаи )
и о хТ м и р о
в Ю . SQL Server 7.0: разрб окт
а .Н , зянацеР
. Срект а пенир ло ж
320 с .
й гир каф
, 2- е и зд
.
й
й р ди а о с н ц т о сани о держ
в А . рСедсвт
а в и н о з л аь у г
Ш а п о ш н и ок
в И . Иернт- прогма м ировнаие
я сойат
704 с . в
528 с .
я н а Java (+CD- ROM)
о приотеквна
400 с .
ы Microsoft .NET к Web- м сеарт
я и п риатк
448 с .
400 с . 336 с . , 2- е и зд
в И . Справончи
)
й н а Java 2
е е с кт о в г
м е Ч к ра е
в И . Web- с ерви
304 с . 370 с .
и (+дисаетк х е н п и р ло ж
а и оо рм ф лени
т Г . Теори
544 с .
400 с .
в A. Windows 2000 Active Directory
Ш а п о ш н и ок
352 с . 432 с .
й (+CD- ROM)
а пенир ло ж
е рс а п е нл д ы
н Р . Разрб окт
Ш а п о ш н и ок
.
я IBM PC
е тремх ерно
р н а любсиеольтк
н И . Со здани
Ш и н акр е
.
ы про г ам м и ро вани я и дл
м е Ч к ра е
цю Я
624 с .
ы BIOS
в Г . Ком юпеьт
б аи л у Х
Ш и дл
й уетч
SVGA- ик грфа
й А . реСкт
еб Чи ы к
.
ы
р Т а с ок в с ик п я еи ч Т
я киогунрфац и я
.
224 с .
. XML
304 с .
а C++
416 с .
в О . SOFTIMAGE| XSI: о т м оедилр вна
я д о ани м аци
и (+CD- ROM)
432 с .
к О . Ком еюрптныь е тенох л ги и в ди зай не . Л о г итп ы , уп ако в а , белтку ы 464 с . (+CD- ROM) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
рияСе
«М а с т е р
М иа е»д
в М . В . Macromedia Flash MX 2004: с б о р к
о р у кБ а л е л-а Д о Р с М ве д М ев д М ев д ие л т П ви е д
а .Р , ел-а Д оРс
в Е. , русТ о в в Е. , русТ о в (+CD- ROM) в Е. , рТус о в
а видеолкп
а A. Adobe Photoshop дл а В . Cubase SX лд я м озуныатк а В . Steinberg Nuendo 2. Сретк а В . Ронс тьлае
ь н о г ь л ва у и р т
н .Р , иел тП н Ю . Adobe Audition. Обракот о (+CD- ROM)
в я н и о ку х д ж
720 с . в
в (+CD- ROM) ы н о г ь лв а и у р т о з в ук о з в ук
а (+CD- ROM)
а з в ук
а дл
я р о ц ив ф г
592 с . а
640 с . 432 с . 496 с .
о
400 с .
и ел т П
н .Р , иел тП
ие л т П
н .Р , иел тП (+CD- ROM) оП г р е л
о С . иПске
ео л Ц
е м уз ы к
«М а с т е р
прога м »
ы р о вц и ф
е е й с ир фн т
В ер ш и н п р о и т е к в на и
н М. , Инова я и разр б окт
в М . Создани а (+CD- ROM)
р е ан Г
в A. Microsoft Excel 2002: разрб окт
ар в х е Д л и д з
е .П , М арок
в Е . рПо гам м и ро вани
е .П , М раок
в Е . зарРб окт
и К . Тенхи к
а з ащ и т
а Кс п е р с к пм а т я
и К . Тенхи к
а о пи т м и з ац
и п р о г ам м
544 с .
и
в в с ред
1088 с .
е Delphi. Рокву сд т
о
й
а Web- сжул
. зарРб окт
а и о иптм и зац
ы о к м п- т а к д и с о к
320 с . 768 с .
)
б с редсвмат
784 с .
и Delphi
в о т копиро внаи
672 с .
я (+CD- ROM)
. Эитвкно фе ф
е и с п з о ль в н а и
464 с . е
464 с .
и
М гд а а Ю . Ас ем б лер (+CD- ROM) рМ о т с а в А . и др
. MS Office XP: раз б окт
а С . и др
я Windows- енипр олж а пенир лож
й
544 с .
й
. Microsoft ADO.NET: разр б окт
944 с .
а пес роифныьла
х
768 с .
в н С , естСи
к О . Пно ьелра х вын ьлеисытч
е про гам м и ро вани х с и ет
й В . Про гам м и ро вани в В . Ас ем б ле
е дл
е усротй р дл
я Windows, 2- е и зд
400 с .
в SCSI и IDE
592 с .
.
656 с .
е н а Visual C++ .NET
в В . Про г ам м и ро вани
в прим ера
в .А , рБсу енц в В . Мод те ы и алгормит ы о к м юе п р т ь н о х н а Visual C++, 2- е и зд . (+CD- ROM) в В . Про гам м и ро вани
е н а С++/ С
т A. Visual Studio. NET: раз б окт
ч В. , Краонху Palm и Pocket PC
я
м
иП р о г
о Пс и л т
496 с .
704 с .
е в Delphi 7 (+дисаетк
аКс п е р с к
о л ав и ф а Р
й
а пенир лож
)
о П мн а р е
я
а -е р и н т е н и п р о л ж
е о км п о не т
а р в х Де л и д з (+дисаетк
о Пк я л
а п р о г ам м и р о в ан и
а Е . Java 2, Enterprise Edition. Тенхо л ги и
в Е. , олнва Г
иП р о г
320 с . zyxwvutsrqpo
е н а Java
В е с ол р аз б о и ч тк
Н е с ви к ж
496 с .
у
. Пиртак
й А . C++ и Pascal в Kylix 3. Рзарб кот
288 с . и
о к сно мл ж
ы ПК
592 с .
н
й иг р к а ф
: о т про с тг
в В . Иер-нт прогма м ировна
еН м н ю г и м но г п р о цес о р ны
е и ди з ай
. Принц п и н а ПК
656 с .
я Cubase и Sonar
Д
и до л у Б
М э р о хт л п р о те к
ы дл
е м о е д ил р в н а
в П . Пын ьелостдва (+CD- ROM) Бо р в с ик и Б УС
а (+CD- ROM)
е и г п ан л
л и вотрек
р С . Создани
рияСе
ы м с е ра в т
н Ю . ес рПоинфы ьла
в В . AutoCAD: рметх ерно
По н м а р е н к
г у рА о
н Ю . Cubase SX 2. Срект
в С . рПо гма м иро внаи
800 с . й ги рк аф
и
560 с .
# в Visual Studio .NET 2003
352 с .
а е н п и р ло ж
й ба е дл
я рам к наы
з днаы
х х ко м пюеьтр о
544 с . в
352 с .
еу н С к о
в Н . Про г ам м и ро вани е
р аы и г т С б аи л у Х р б ак Ч о т п ро т е к ол а е к Ч (+диасетк
н а C++ в Linux
368 с .
н A. XML: раз б окт а Web- енипр олж й (+CD- ROM) н И . Рзарб окт а Web- сжул б с редсвмат и Java и А . и др . Microsoft .NET Framework: раз б окт а пес роифныльа
х
592 с . 400 с . 896 с .
в в А . заБ )
ы днаых
: о т приотеквна
я д о разрб окт
и пенри ло ж
й
384 с .
Ш ор т С . азрРб окт а XML Web- с ерви о в с р е д в ма т и Microsoft .NET 480 с . (+CD- ROM) zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
«М а с т е р
рияСе
ре ший» н
г па о А н в С . и др . Срсвед т а д и с ан ц т и о н г и н с р му т ра е ин т й (+CD- ROM) й ы дш а Г е в И . Реш ени е ын ч у а х и иенры нж C++ (+CD- ROM) и лс е Е в Д . Апнраот- прогма м ны е с р ед в т (+CD- ROM) а Кс п е р с к ео к К т
и К . ПК
: реш ени
е п р о б ле
о мд у Р т е ев С
т В . AutoCAD: кн о п к
«М а с т е р
рияСе
Л у ка ц и оП п е Ф д о р чу и Фл м о н
н Дж
з ны ах д я р к и по т г р аф
й А . ени бОнражу
336 с .
и Excel, VBA и
512 с .
в
368 с .
х о к м юе п р т ь о
х м о д ет
в Е . PC: насротй к
и и язы
и
480 с . 736 с 496 с 464 с 512 с
, оиптм изца
496 с .
я и р аз го н
, 3- е и зд
х с р ед т
а с при м ен и
к м а рк о м а н
672 с .
е MATLAB и fuzzyTECH р о теч о в Crystal Reports я (+CD- ROM) е в с исемт е К-С МАОП З О
е аны тпра
я э ко н м и к
в
е и упрвалени е в с ред . оенрта Г
е м о е д ил р в н а
.
. . . .
в PC
542 с .
м Mathcad и Excel
464 с .
д
320 с .
с ис т е м »
й К . омК еюрптныь . Адм и н срит о вани
а В . и др . Безопса но т а О . се тР в .И , Беял
ч с редсвмат
,
560 с .
в Е . оФр с и р о вани
в О . Мемта исч к
, тенхо л ги я
а крам наы
е чис елны
е м о е д ил р в н а в Д . Анлаи
в .В , Родум ет
м л а С но
Зи м оК к р е в о Кн е
х з да
н В . Microsoft Project в дело пр изво дс т
Л е о н ок в А . океНчт М ло а к в С , веМта М са л е н и о к в М . Пиретчсак оПе м т и к н А . Тновеьрлдт (+CD- ROM) о д м у Р те в .В , одму Р ет
ал и с ч Г к а с иГ к
. М оетдиак
м
в Ю . Matlab 6.x: про г ам м и ро вани
у п К е р ш е йт
о обечнуия
е с и ем т
ы в тони елф и е Novell Netware 6/6.5 (+CD- ROM)
ь ы н ь о лб га х ыв е с т х е н тх о л г и й р Microsoft Windows Server 2003 в А . о рмИнф цаио н а я б е з о п са н о т ь п р е ид т я е ка т
, 2- е и зд
.
в A. Windows ScriptHost дл я Windows 2000/ XP (+дисаетк к А. , оТр н A. FreeBSD: ус анто вк , нас рто йак , ис поз львнаи в А . рПоктл ы ер н т И а
400 с . 1056 с .
, 2- е и зд
. я
.
368 с . 640 с . 752 с . 608 с .
) е
640 с . 640 с . 528 с .