"Вычисления, визуализация и программирование в среде MATLAB 5.x" - читать интересную книгу автора (Мартынов Н. Н., Иванов А. П.)

┬ яЁхф√фє∙хщ уыртх шчєўрышё№ ёЎхэрЁшш, ъюЄюЁ√х Ёрчфхы ■Є ётюш яхЁхьхээ√х ё Ёрсюўшь яЁюёЄЁрэёЄтюь ёшёЄхь√ MATLAB. ╥рър  Єхёэр  шэЄхуЁрЎш  эх яючтюы хЄ ЁхрышчютрЄ№ яюыэюёЄ№■ шчюышЁютрээ√щ ш эхчртшёшь√щ юЄ Ёрсюўхую яЁюёЄЁрэёЄтр ЇЁруьхэЄ ъюфр эр ╠- ч√ъх. ╩Ёюьх Єюую, ёЎхэрЁш ь эхтючьюцэю яхЁхфрЄ№ тїюфэ√х ярЁрьхЄЁ√.
╫Єюс√ ЁхрышчютрЄ№ эхчртшёшь√щ ш шчюышЁютрээ√щ ЇЁруьхэЄ ъюфр, Ёх°р■∙шщ эхъюЄюЁє■ ЇшъёшЁютрээє■ чрфрўє ш яЁшэшьр■∙шщ т тшфх тїюфэ√ї ярЁрьхЄЁют эрўры№эє■ шэЇюЁьрЎш■, эєцэю юЇюЁьшЄ№ ¤ЄюЄ ЇЁруьхэЄ т тшфх ЇєэъЎшш ёшёЄхь√ MATLAB.
╘єэъЎшш, ъръ ш ёЎхэрЁшш, ёюёЄю Є шч эрсюЁр шэёЄЁєъЎшщ ╠- ч√ър, ш шї Єръ цх чряшё√тр■Є т ЄхъёЄют√х Їрщы√ ё Ёрё°шЁхэшхь ур. ┬ шЄюух фы  ыръюэшўэюёЄш шї эрч√тр■Є ╠-ЇєэъЎш ьш. ╤хщўрё ь√ яюфЁюсэю ЁрёёьюЄЁшь тёх юёюсхээюёЄш єёЄЁющёЄтр ╠-ЇєэъЎшщ.
╥хъёЄ ╠-ЇєэъЎшш фюыцхэ эрўшэрЄ№ё  ё чруюыютър, яюёых ъюЄюЁюую ёыхфєхЄ Єхыю ЇєэъЎшш. ╟руюыютюъ юяЁхфхы хЄ шэЄхЁЇхщё ЇєэъЎшш (ёяюёюс тчршьюфхщёЄтш  ё эхщ) ш шьххЄ ёыхфє■∙шщ тшф:
function [Retl, Ret2,...] = FName(parl, par2,...)
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 177
┬ эхь юс· ты хЄё  ЇєэъЎш  (ё яюью∙№■ ъы■ўхтюую ёыютр function) ё шьхэхь FNarae, ъюЄюЁр  яЁшэшьрхЄ тїюфэ√х ярЁрьхЄЁ√ parl, par2,... ш т√ЁрсрЄ√трхЄ т√їюфэ√х {тючтЁр∙рхь√х) чэрўхэш  Retl, Ret2... ╠эюуюЄюўш  эх  ты ■Єё  ¤ыхьхэЄрьш ёшэЄръёшўхёъющ ъюэёЄЁєъЎшш, ш ь√ шї чфхё№ яЁшьхэ хь Єюы№ъю фы  Єюую, ўЄюс√ эруы фэю яюфўхЁъэєЄ№ ЄюЄ ЇръЄ, ўЄю ЇєэъЎшш ьюуєЄ шьхЄ№ Ёрчэюх ўшёыю тїюфэ√ї ярЁрьхЄЁют ш т√їюфэ√ї чэрўхэшщ. ┬юЄ шыы■ёЄЁшЁє■∙шх яЁшьхЁ√ эр ¤Єє Єхьє:
function FNamel
function FName2(parl, par2, Ёру╟) function Retl = FName3(parl, par2) function [Retl, Ret2, Ret3] = FName4(parl)
╟фхё№ т яхЁтющ ёЄЁюъх яЁхфёЄртыхэ чруюыютюъ ЇєэъЎшш FNamel, эх шьх■∙хщ эш тїюфэ√ї ярЁрьхЄЁют, эш т√їюфэ√ї чэрўхэшщ. ╘єэъЎш  FName2 яЁшэшьрхЄ ЄЁш тїюфэ√ї ярЁрьхЄЁр ш Єръ цх эх шьххЄ тючтЁр∙рхь√ї чэрўхэшщ. ─рыхх, ЇєэъЎш  FName3 яЁшэшьрхЄ фтр ш тючтЁр∙рхЄ юфэю чэрўхэшх. ╚ эръюэхЎ, ЇєэъЎш  FName4 шьххЄ юфшэ тїюфэющ ярЁрьхЄЁ ш ЄЁш т√їюфэ√ї чэрўхэш .
╫рёЄю фы  ъЁрЄъюёЄш тїюфэ√х ярЁрьхЄЁ√ эрч√тр■Є рЁуєьхэЄрьш ЇєэъЎшш, р тючтЁр∙рхь√х (т√їюфэ√х) чэрўхэш  ЇєэъЎшш эрч√тр■Є яЁюёЄю хх чэрўхэш ьш.
╙ърчрээюх т чруюыютъх шь  ЇєэъЎшш фюыцэю ёютярфрЄ№ ё шьхэхь Їрщыр (схч єўхЄр Ёрё°шЁхэш .Є), т ъюЄюЁ√щ чряшё√трхЄё  ЄхъёЄ ЇєэъЎшш. ╨рёёюуырёютрэшх шьхэш ЇєэъЎшш ш шьхэш Їрщыр эх фюяєёърхЄё .
╥хыю ЇєэъЎшш ёюёЄюшЄ шч шэёЄЁєъЎшщ ╠- ч√ър, ё яюью∙№■ ъюЄюЁ√ї т шЄюух т√ўшёы ■Єё  тючтЁр∙рхь√х чэрўхэш . ╥хыю ЇєэъЎшш ёыхфєхЄ чр чруюыютъюь ЇєэъЎшш. ╟руюыютюъ ЇєэъЎшш яы■ё Єхыю ЇєэъЎшш т ёютюъєяэюёЄш ёюёЄрты ■Є юяЁхфхыхэшх ЇєэъЎшш. ╥ръшь юсЁрчюь, т ╠-Їрщы чряшё√трхЄё  шьхээю юяЁхфхыхэшх ЇєэъЎшш. ╨рчьх∙рЄ№ ╠-Їрщы ё юяЁхфхыхэшхь ЇєэъЎшш эєцэю т юфэюь шч ърЄрыюуют фшёър, тїюф ∙шї т ёяшёюъ фюёЄєяр яръхЄр MATLAB. ╬с ¤Єюь ь√ єцх Ёрёёърч√трыш Ёрэхх, ъюуфр шчєўрышё№ ёЎхэрЁшш.
┼ёыш т ╠-Їрщы яюьхёЄшЄ№ юяЁхфхыхэш  ёЁрчє эхёъюы№ъшї ЇєэъЎшщ, Єю т√ч√трЄ№ шч ъюьрэфэюую юъэр ёшёЄхь√ MATLAB (шыш шч ЇєэъЎшщ фЁєуюую ╠-Їрщыр) ьюцэю сєфхЄ Єюы№ъю Єє шч эшї, шь  ъюЄюЁющ ёютярфрхЄ ё шьхэхь ╠-Їрщыр. ╥ръшь юсЁрчюь, Єюы№ъю юфэр ЇєэъЎш  шч ╠-Їрщыр тшфшьр тэх ¤Єюую Їрщыр. ╬ёЄры№э√х ЇєэъЎшш т√ч√тр■Єё  шчэєЄЁш фрээюую ╠-Їрщыр ш т√яюыэ ■Є тёяюьюурЄхы№эє■ ЁрсюЄє.
┬юЄ яЁшьхЁ ёшЄєрЎшш, ъюуфр т Їрщых ManyFunc.m ёюфхЁцрЄё  юяЁхфхыхэш  фтєї ЇєэъЎшщ (юяЁхфхыхэшх ЇєэъЎшш чрърэўштрхЄё  ышсю шёўхЁярэшхь шэёЄЁєъЎшщ, ышсю чруюыютъюь юяЁхфхыхэш  ёыхфє■∙хщ ЇєэъЎшш):
function retl = ManyFunc( xl, x2 ) retl = xl .* x2 + AnotherFunc( xl ); function ret2 = AnotherFunc( є ) ret2 =y.*y+2*y+3;
178
├ыртр 6. ╧ЁюуЁрььшЁютрэшх Їєэъшшщ эр ╠- ч√ъх
╟фхё№ юяЁхфхыхэ√ ЇєэъЎшш ManyFunc ш AnotherFunc. ╬фэръю шчтэх ьюцэю т√ч√трЄ№ Єюы№ъю ЇєэъЎш■ ManyFunc. ╘єэъЎш■ AnotherFunc ьюцхЄ т√ч√трЄ№ ЇєэъЎш  ManyFunc ш сюы№°х эшўЄю. ╘єэъЎш■ ManyFunc ьюцэю эрчтрЄ№ юёэютэющ ЇєэъЎшхщ т Їрщых ManyFunc .m, р ЇєэъЎш■ AnotherFunc - тёяюьюурЄхы№эющ ЇєэъЎшхщ шыш яюфЇєэъЎшхщ (яю-рэуышщёъш - subfunction).
╤є∙хёЄтєхЄ х∙х юфшэ ёяюёюс юуЁрэшўшЄ№ тючьюцэюёЄш т√чютр ЇєэъЎшш. ─юяєёЄшь, ь√ їюЄшь, ўЄюс√ эхъюЄюЁє■ ╠-ЇєэъЎш■ ьюуыш т√ч√трЄ№ Єюы№ъю ╠-ЇєэъЎшш шч чрфрээюую ърЄрыюур ш сюы№°х эшўЄю. ╥юуфр є ¤Єюую ърЄрыюур эєцэю ёючфрЄ№ фюўхЁэшщ яюфърЄрыюу ё шьхэхь private ш яюьхёЄшЄ№ Єєфр єърчрээє■ ЇєэъЎш■. ┬ёх ЇєэъЎшш шч ърЄрыюур private тшфшь√ Єюы№ъю ЇєэъЎш ь шч ЁюфшЄхы№ёъюую ърЄрыюур.
╩ръ тїюфэ√х ярЁрьхЄЁ√, Єръ ш тючтЁр∙рхь√х чэрўхэш  ьюуєЄ с√Є№ т юс∙хь ёыєўрх ьрёёштрьш Ёрчышўэ√ї Єшяют, ЁрчьхЁэюёЄхщ ш ЁрчьхЁют. ═ряЁшьхЁ, ёыхфє■∙р  ЇєэъЎш  ё шьхэхь MatrProcl:
function [ └, ┬ ] = MatrProcl( XI, ╒2, ї ) % MatrProcl calculates MatrixProduction % plus (or by) one scalar
A = XI ┬ = XI
X2
x;
X2 + x; %The last line of the code
ЁрёёўшЄрэр эр ляЁшхь╗ фтєї ўшёыют√ї ьрёёштют XI ш ╒2 юфшэръютюую ЁрчьхЁр ш юфэюую ёъры Ёр ї. ▌Єш ьрёёшт√ т Єхых ЇєэъЎшш ёэрўрыр яхЁхьэюцр■Єё  яю¤ыхьхэЄэю, яюёых ўхую Ёхчєы№ЄрЄ Єръюую яхЁхьэюцхэш  фюяюыэшЄхы№эю єьэюцрхЄё  эр ёъры Ё ї. ╥ръшь юсЁрчюь яюЁюцфрхЄё  яхЁт√щ шч т√їюфэ√ї ьрёёштют, Єю хёЄ№ ьрёёшт └. ╬фшэръют√х ЁрчьхЁ√ тїюфэ√ї ьрёёштют XI ш ╒2 урЁрэЄшЁє■Є т√яюыэшьюёЄ№ юяхЁрЎшш шї яю¤ыхьхэЄэюую єьэюцхэш . ┬ЄюЁющ т√їюфэющ ьрёёшт (ё шьхэхь ┬) юЄышўрхЄё  юЄ яхЁтюую Єхь, ўЄю яюыєўрхЄё  ёыюцхэшхь ёю ёъры Ёюь (р эх єьэюцхэшхь).
┬ ЄхъёЄх ЇєэъЎшш MatrProcl яюьшью шэёЄЁєъЎшщ, т√ўшёы ■∙шї тючтЁр∙рхь√х ЇєэъЎшхщ чэрўхэш , яЁшёєЄёЄтє■Є Єръцх ъюььхэЄрЁшш, эрўшэр■∙шхё  ёю чэрър %. ╩ръ шчтхёЄэю, т ы■сюь  ч√ъх яЁюуЁрььшЁютрэш  ъюььхэЄрЁшш эх  ты ■Єё  шёяюыэ хь√ьш шэёЄЁєъЎш ьш, р ёыєцрЄ ыш°№ фы  Ўхыхщ фюъєьхэЄшЁютрэш  яЁюЎхёёр яЁюуЁрььшЁютрэш . ╬эш яю ёэ ■Є яЁюуЁрььшёЄє ёь√ёы Єюую шыш шэюую єўрёЄър ъюфр. ┴хч ъюььхэЄрЁшхт ЄЁєфэю с√трхЄ яюэ Є№ юЄфхы№э√х ьхёЄр т ёыюцэ√ї яЁюуЁрььрї, ъюуфр яЁю°ыю шчЁ фэюх тЁхь  ё ьюьхэЄр яхЁтюэрўры№эющ ЁрчЁрсюЄъш яЁюуЁрьь√ (ЇєэъЎшш).
┬ ёшёЄхьх MATLAB юёюсє■ Ёюы№ шуЁр■Є эхёъюы№ъю ёЄЁюъ ъюььхэЄрЁшхт, Ёрёяюырур■∙шїё  ёЁрчє цх чр чруюыютъюь ЇєэъЎшш. ▌Єш ъюььхэЄрЁшш яЁхфэрчэрўхэ√ эх Єюы№ъю фы  яЁюуЁрььшёЄют, эю ш фы  ъюэхўэ√ї яюы№чютрЄхыхщ, цхыр■∙шї ючэръюьшЄ№ё  ё ъЁрЄъющ шэЇюЁьрЎшхщ яю ЁрчЁрсюЄрээющ ъхь-Єю фЁєушь ЇєэъЎшш. ╥ръшь юсЁрчюь, т ¤Єшї ёЄЁюърї фюыцэр с√Є№ Ёрёяюыюцхэр ъЁрЄър 
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх
179
ёяЁртър яю їюЁю°ю фюъєьхэЄшЁютрээющ ЇєэъЎшш. ╧юыєўшЄ№ ¤Єє ёяЁртъє ьюцхЄ ы■сющ яюы№чютрЄхы№ ЇєэъЎшш, хёыш т√яюыэшЄ ъюьрэфє
help MatrProcl
т Ёхчєы№ЄрЄх т√яюыэхэш  ъюЄюЁющ т ъюьрэфэюх юъэю яюёЄєяшЄ ёыхфє■∙р  шэЇюЁьрЎш  (ёь. Ёшё. 6.1):
Х> MATLAB Command Window
Eile Edit Wmdow Help
╗ help MatrProcl
MatrProcl calculates MatrixProduction plus (or by) one scalar
╨шёєэюъ 6.1
▌Єш цх эрўры№э√х ёЄЁюъш ъюььхэЄрЁшхт єўрёЄтє■Є т яюшёъх ЇєэъЎшш яю ёюфхЁцр∙шьё  т эхщ ЄхъёЄют√ь ЇЁруьхэЄрь. ╥ръющ яюшёъ юёє∙хёЄты хЄё  ъюьрэфющ
lookfor ЄхъёЄ -all
═ръюэхЎ, ъюьрэфющ
type шь _ЇєэъЎшш
лЁрёяхўрЄ√трхЄё ╗ (т ъюьрэфэюь юъэх) тхё№ ЄхъёЄ ╠-ЇєэъЎшш тьхёЄх ёю тёхьш хх ъюььхэЄрЁш ьш.
╥хяхЁ№ яЁюфюыцшь шчєўхэшх фЁєушї рёяхъЄют ёшэЄръёшёр ╠-ЇєэъЎшщ, р шьхээю Єхї шч эшї, ўЄю ёт чрэ√ ё шёяюы№чютрэшхь ЁрчЁрсюЄрээ√ї ЇєэъЎшщ. ┬√чют ёючфрээющ эрьш ЇєэъЎшш юёє∙хёЄты хЄё  шч ъюьрэфэюую юъэр ёшёЄхь√ MATLAB шыш шч ЄхъёЄр ъръющ-ышсю фЁєующ ЇєэъЎшш. ╨рчэ√х ╠-ЇєэъЎшш ё ёютярфр■∙шьш шьхэрьш (ёютярфр■Є шьхэр шї ╠-Їрщыют) ьюуєЄ ЁрёяюырурЄ№ё  т Ёрчэ√ї ърЄрыюурї эр фшёъх ъюья№■ЄхЁр. ┬ Ёхчєы№ЄрЄх яЁш т√чютх ╠-ЇєэъЎшщ ёшёЄхьр MATLAB фюыцэр ЁєъютюфёЄтютрЄ№ё  ўхЄъю юяЁхфхыхээ√ь ъЁшЄхЁшхь т√сюЁр ъюэъЁхЄэющ ЇєэъЎшш. ╩ЁшЄхЁшщ ёюёЄюшЄ т чрфрээющ яюёыхфютрЄхы№эюёЄш юЄсюЁр ърэфшфрЄют. ╧ЁшюЁшЄхЄ тёхуфр юЄфрхЄё  тэєЄЁхээхщ фы  ╠-Їрщыр ЇєэъЎшш, хёыш т√чют юёє∙хёЄты хЄё  тэєЄЁш ¤Єюую Їрщыр ш хёыш тэєЄЁхээ   ЇєэъЎш  ё ¤Єшь шьхэхь ёє∙хёЄтєхЄ. ┬ ёыєўрх эхєфрўш яюшёъ яЁюфюыцрхЄё  т ўрёЄэюь яюфърЄрыюух private ш Єюы№ъю яюёых ¤Єюую эрўшэрхЄ яЁюёьрЄЁштрЄ№ё  тхё№ ёяшёюъ яєЄхщ фюёЄєяр яръхЄр MATLAB тяыюЄ№ фю яхЁтющ тёЄЁхЄшт°хщё  яЁш ¤Єюь ЇєэъЎшш ё ёютярфр■∙шь шьхэхь (¤Єю шь  ╠-Їрщыр).
╤шэЄръёшё т√чютр ЇєэъЎшш ЄЁрфшЎшюэхэ фы  сюы№°шэёЄтр  ч√ъют яЁюуЁрььшЁютрэш : чряшё√трхЄё  шь  ЇєэъЎшш, яюёых ъюЄюЁюую т ъЁєуы√ї ёъюсърї ўхЁхч чря Єє■ яхЁхўшёы ■Єё  ЇръЄшўхёъшх тїюфэ√х ярЁрьхЄЁ√, ёю чэрўхэш ьш ъюЄю-
180
├ыртр 6. ╧ЁюуЁрььшЁютрэшх ЇєэъЎшщ эр ╠- ч√ъх
Ё√ї ш сєфєЄ яЁюшчтхфхэ√ т√ўшёыхэш . ╘ръЄшўхёъшх ярЁрьхЄЁ√ ьюуєЄ с√Є№ чрфрэ√ ўшёыют√ьш (ш фЁєушьш) чэрўхэш ьш, шьхэрьш яхЁхьхээ√ї (єцх шьх■∙шьш ъюэъЁхЄэ√х чэрўхэш ), р Єръцх т√Ёрцхэш ьш.
┼ёыш ЇръЄшўхёъшщ ярЁрьхЄЁ чрфрэ шьхэхь эхъюЄюЁющ яхЁхьхээющ, Єю Ёхры№э√х т√ўшёыхэш  сєфєЄ яЁюшчтюфшЄ№ё  ё ъюяшхщ ¤Єющ яхЁхьхээющ (р эх ё эхщ ёрьющ). ▌Єю эрч√трхЄё  яхЁхфрўхщ ярЁрьхЄЁют яю чэрўхэш■.