"Вычисления, визуализация и программирование в среде MATLAB 5.x" - читать интересную книгу автора (Мартынов Н. Н., Иванов А. П.)return else
res = n * MyRecursFact( n - 1 ); end ╟фхё№ урЁрэЄшхщ чртхЁ°хэш Ўхяюўъш ЁхъєЁёштэ√ї т√чютют ты хЄё єёыютэ√щ юяхЁрЄюЁ, Єръ ъръ т√чют√ юёє∙хёЄты ■Єё ё єьхэ№°р■∙шьшё чэрўхэш ьш рЁуєьхэЄют, ш ъюуфр Єх фюёЄшуэєЄ чэрўхэш 1, эрўэхЄё юсЁрЄэр Ўхяюўър тючтЁрЄют шч ¤Єшї ¤ъчхьяы Ёют ЇєэъЎшщ ё яюёыхфютрЄхы№э√ь єьэюцхэшхь тючтЁр∙рт- MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 195 ь√ї чэрўхэшщ эр яюёыхфютрЄхы№эю єтхышўштр■∙шхё яюыюцшЄхы№э√х ўшёыр, ўЄю ш яЁштхфхЄ т шЄюух ъ т√ўшёыхэш■ ЇръЄюЁшрыр. ╨рчЁрсюЄрээр ЁхъєЁёштэр ЇєэъЎш яЁхъЁрёэю т√ўшёы хЄ ЇръЄюЁшры√ Ёрчышўэ√ї Ўхы√ї ўшёхы: 57 ) MyRecursFact ans = 4.0527х+07с MyRecursFact( ans = 2.0044e+291 163 ш Є. ф. ╤ыхфє■∙шщ цх Ёхчєы№ЄрЄ: MyRecursFact( 200 ) ans = Inf ючэрўрхЄ, ўЄю ёЄюы№ сюы№°юх чэрўхэшх ЇръЄюЁшрыр эх ьюцхЄ яюьхёЄшЄ№ё т юЄтхфхээє■ яюф ўшёыю Єшяр double ярь Є№ ъюья№■ЄхЁр, Єръ ўЄю яЁшїюфшЄё чрьхэ Є№ шёЄшээюх ўшёыютюх чэрўхэшх эр ёшьтюышўхёъє■ ъюэёЄрэЄє Inf, ючэрўр■∙є■ льр°шээє■ схёъюэхўэюёЄ№╗, эю ёрьр ЁхъєЁёштэр ЇєэъЎш ЁрсюЄрхЄ яЁш ¤Єюь эюЁьры№эю. ┬ Єю цх тЁхь Ёхчєы№ЄрЄ ёыхфє■∙хую т√чютр ¤Єющ ЇєэъЎшш ё юўхтшфэюёЄ№■ яюфЄтхЁцфрхЄ, ўЄю ёшёЄхьр MATLAB фхщёЄтшЄхы№эю эръырф√трхЄ юуЁрэшўхэшх эр уыєсшэє ЁхъєЁёштэ√ї т√чютют (¤Єю ь√ єяюь эрыш т√°х, яюфўхЁъэєт, ўЄю Єхь ёрь√ь яЁхюфюыхтрхЄё яЁюсыхьр схёъюэхўэющ ЁхъєЁёшш) (ёь. Ёшё. 6.10). Х> MATLAB Command Window ╨шё Ej.t Wir.J-j* Help ╗ MyRecursFact(, 520 ) . ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLiinit',N) to change (lie limit. Be aware that exceeding yoiu available stack №Ёяёё can crash MATLAB and/or your computer. Eiror in ==> E:\MyO\vnWork\MatlabWork\MFiles\MyReciuisFact.m On line с ==> res = n * MyRecursFact( n-1 ); 2 ╨шёєэюъ 6.10 ╚ч ёюяєЄёЄтє■∙хую фшруэюёЄшўхёъюую ёююс∙хэш ёыхфєхЄ, ўЄю яЁхфхы уыєсшэ√ т√чютют яю єьюыўрэш■ Ёртхэ 500. ┼ёыш эєцэю єтхышўшЄ№ ¤Єє тхышўшэє, Єю ёыхфєхЄ т√яюыэшЄ№ ъюьрэфє set(0,'RecursionLimit' ,N) 196 ├ыртр 6. ╧ЁюуЁрььшЁютрэшх ЇєэъЎшщ эр ╠- ч√ъх уфх N - эютюх чэрўхэшх яЁхфхыр фы ы■с√ї ЁхъєЁёштэ√ї ЇєэъЎшщ, фхщёЄтє■∙хх т Ёрьърї Єхъє∙хую ёхрэёр ЁрсюЄ√ ё яръхЄюь MATLAB. ▀ёэю, ўЄю Ёрчэ√х ЁхрышчрЎшш Ёх°хэш юфэющ ш Єющ цх чрфрўш юЄышўр■Єё фЁєу юЄ фЁєур ёрь√ьш ЁрчэююсЁрчэ√ьш ётющёЄтрьш, Єръшьш, эряЁшьхЁ, ъръ ЁрчьхЁ ЇєэъЎшщ, шї лўшЄрхьюёЄ№╗, ёыюцэюёЄ№ ЁрчЁрсюЄъш (т ёь√ёых тЁхьхэш, чрЄЁрўхээюь эр ЁрчЁрсюЄъє ш юЄырфъє ЇєэъЎшш). ╨рчэ√х ЁхрышчрЎшш юЄышўр■Єё фрцх яю Єръюьє эхєыютшьюьє яюэ Єш■, ъръ лъЁрёюЄр ЁхрышчрЎшш╗. ┬ёх яхЁхўшёыхээ√х їрЁръЄхЁшёЄшъш тяюыэх юўхтшфэ√, ь√ чрщьхьё Єюы№ъю ¤ЇЇхъЄштэюёЄ№■ (т ёь√ёых с√ёЄЁюфхщёЄтш т√яюыэхэш ╠-ЇєэъЎшш). ╧ръхЄ MATLAB яюёЄрты хЄ єфюсэюх ёЁхфёЄтю фы яЁшсышчшЄхы№эюую чрьхЁр ¤Єющ їрЁръЄхЁшёЄшъш - эрсюЁ ъюьрэф tic ш toe. ▌Єю ёЁхфёЄтю яЁшьхэ хЄё ёыхфє■∙шь юсЁрчюь: tic, FunctionCall, toe Єю хёЄ№ т ъюьрэфэющ ёЄЁюъх т√чют эхъюЄюЁющ ЇєэъЎшш юсЁрьы хЄё ё фтєї ёЄюЁюэ ¤Єшьш ъюьрэфрьш, т Ёхчєы№ЄрЄх ўхую яюёых т√ўшёыхэш ЇєэъЎшш т ъюьрэфэюх юъэю т√фрхЄё эх Єюы№ъю Ёхчєы№ЄрЄ т√ўшёыхэш , эю ш єёыютэюх тЁхь т√ўшёыхэш . ╧ю ¤Єюьє єёыютэюьє тЁхьхэш ьюцэю ёЁртэштрЄ№ Ёрчэ√х ЁхрышчрЎшш ЇєэъЎшщ ьхцфє ёюсющ. ╤ыхфєхЄ, юфэръю, шьхЄ№ т тшфє, ўЄю тЁхь т√яюыэхэш чрьхЁ хЄё яЁшсышчшЄхы№эю ш чртшёшЄ юЄ Ё фр эхъюэЄЁюышЁєхь√ї ЇръЄюЁют, Єръ ўЄю Єръшх т√чют√ ёыхфєхЄ яютЄюЁшЄ№ эхёъюы№ъю Ёрч, р яюыєўхээ√х чрьхЁ√ єёЁхфэшЄ№. ╤хщўрё ёЁртэшь эр яЁръЄшъх фтх ЁхрышчрЎшш Ёх°хэш чрфрўш ю т√ўшёыхэшш ЇръЄюЁшрыр: ЁрчЁрсюЄрээє■ ш яЁхфёЄртыхээє■ т√°х ЇєэъЎш■ MyFactorial, юёэютрээє■ эр юяхЁрЄюЁх Ўшъыр, ш ЇєэъЎш■ MyRecursFact, юёэютрээє■ эр ЁхъєЁёшш. ┬ Ёхчєы№ЄрЄх т√ ёэшь, ўЄю ¤ЇЇхъЄштэхх - Ўшъы√ шыш ЁхъєЁёш . ┬юЄ яЁръЄшўхёъшх Ёхчєы№ЄрЄ√ ёююЄтхЄёЄтє■∙шї чрьхЁют: tic, MyRecursFact( 100 ), toe ans = 9.3326e+157 elapsed_time = 0.0710 tic, MyFactorial( 100 ), toe ans = 9.3326e+157 elapsed_time = 0.0700 ┬шфэю, ўЄю Ёхчєы№ЄрЄ√ чрьхЁют єёыютэюую тЁхьхэш яЁръЄшўхёъш юфшэръют√х. ╥ръ ўЄю ЇєэъЎшш т√ўшёыхэш ЇръЄюЁшрыют эр юёэютх юяхЁрЄюЁр Ўшъыр ш эр юёэютх ЁхъєЁёшш ёЁртэшь√ яю ¤ЇЇхъЄштэюёЄш. MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 197 ╬фэръю с√тр■Є ёыєўрш, ъюуфр Ёрчэ√х ЁхрышчрЎшш шьх■Є ъюыюёёры№эю Ёрчэ√х ¤ЇЇхъЄштэюёЄш. ╥ръшь Єшяшўэ√ь ёыєўрхь фы ╠- ч√ър ёшёЄхь√ MATLAB ты хЄё тючьюцэюёЄ№ шчсхцрЄ№ шёяюы№чютрэш юяхЁрЄюЁют Ўшъыр ё яюью∙№■ яЁшьхэхэш юяхЁрЎшш чрфрэш фшрярчюэр чэрўхэшщ ш фЁєушї ¤ЇЇхъЄштэ√ї уЁєяяют√ї юяхЁрЎшщ ╠- ч√ър (ьэюцхёЄтхээр шэфхъёрЎш , эряЁшьхЁ). ┬ ўрёЄэюёЄш, ёыхфє■∙шщ ЇЁруьхэЄ: └ = 1 : 0.1 : 2000; ЇюЁьшЁє■∙шщ тхъЄюЁ └ шч 19 991 ¤ыхьхэЄр т 10 000 Ёрч ¤ЇЇхъЄштэхх ЇЁруьхэЄр i=l;e=l; while i<=19991, A(i)=e;e=e+0.1;i=i+l; end юёэютрээюую эр яЁшьхэхэшш юяхЁрЄюЁр Ўшъыр фы шэфштшфєры№эюую яЁюяшё√трэш ¤ыхьхэЄют тхъЄюЁр └. ╧ю¤Єюьє ёютхЄє■Є яЁш яЁюуЁрььшЁютрэшш ╠-ЇєэъЎшщ ёЄрЁрЄхы№эю шчсхурЄ№ яЁшьхэхэш ьрёёштэ√ї Ўшъышўхёъшї т√ўшёыхэшщ эр срчх юяхЁрЄюЁют Ўшъыр ╠- ч√ър. ▌Єю ьюцэю ёфхырЄ№, яЁшьхэшт тьхёЄю эшї ¤ЇЇхъЄштэ√х уЁєяяют√х юяхЁрЎшш ╠- ч√ър. ┼ёыш цх ¤Єюую ёфхырЄ№ эхы№ч , Єю хёЄ№ шчсхцрЄ№ Ўшъыют эх єфрхЄё , Єю Єюуфр ёЄюшЄ яюфєьрЄ№ ю ЁхрышчрЎшш Ўшъышўхёъшї рыуюЁшЄьют эр ч√ърї C/C++, яюёъюы№ъє т ёшёЄхьх MATLAB шьххЄё яЁшэЎшяшры№эр тючьюцэюёЄ№ яюфъы■ўшЄ№ фы ёютьхёЄэющ ЁрсюЄ√ фрцх Єръшх яЁюуЁрььэ√х ьюфєыш. ╬с ¤Єюь сєфхЄ яюфЁюсэю Ёрёёърчрэю т уы. 8. ═ръюэхЎ, Ёрёёърцхь ю яют√°хэшш ¤ЇЇхъЄштэюёЄш т√яюыэхэш ╠-ЇєэъЎшщ чр ёўхЄ ёяхЎшры№эющ эрёЄЁющъш ёЁхф√ MATLAB. ─хыю т Єюь, ўЄю яЁш яхЁтющ чруЁєчъх ёюфхЁцшьюую ╠-Їрщыр т ярь Є№ ъюья№■ЄхЁр ёшёЄхьр MATLAB юёє∙хёЄты хЄ ёшэЄръёшўхёъшщ ЁрчсюЁ ъюфр, яхЁхтюфшЄ хую тю тэєЄЁхээшщ ЇюЁьрЄ, эрч√трхь√щ яёхтфюъюфюь шыш ╨-ъюфюь, яюёых ўхую ёюїЁрэ хЄ яюыєўхээ√щ яёхтфюъюф т ярь Єш ъюья№■ЄхЁр т Єхўхэшх тёхую ёхрэёр ЁрсюЄ√ ё яръхЄюь MATLAB. ┬ Ёхчєы№ЄрЄх яхЁт√щ т√чют ╠-ЇєэъЎшш юёє∙хёЄты хЄё ьхфыхээхх (юс√ўэю эхэрьэюую ьхфыхээхх) яютЄюЁэ√ї т√чютют. ╠юцэю эхёъюы№ъю яют√ёшЄ№ ¤ЇЇхъЄштэюёЄ№ яхЁтюую т√яюыэхэш ╠-ЇєэъЎшш, т√яюыэшт ъюьрэфє pcode шь _╠-ЇєэъЎшш(Їрщыр) ▌Єр ъюьрэфр ЄЁрэёышЁєхЄ ёюфхЁцшьюх ╠-Їрщыр т яёхтфюъюф ш чряшё√трхЄ эр фшёъ Їрщы ё Єхь цх шьхэхь, эю ё Ёрё°шЁхэшхь .Ё, яюёых ўхую чруЁєчър ╠-ЇєэъЎшш сєфхЄ т√яюыэ Є№ё шьхээю шч ¤Єюую Їрщыр ш яхЁтюх шёяюыэхэшх ЇєэъЎшш яЁющфхЄ с√ёЄЁхх. ╩Ёюьх Єюую, ьюцэю сєфхЄ ёЄхЁхЄ№ Їрщы ё Ёрё°шЁхэшхь .Є, р ёюфхЁцшьюх юёЄрт°хуюё Їрщыр ё яёхтфюъюфюь сєфхЄ эхтючьюцэю яЁюўшЄрЄ№ т ЄхъёЄют√ї ЁхфръЄюЁрї, Єръ ъръ ЇюЁьрЄ ¤Єшї Їрщыют сшэрЁэ√щ. ┬ Ёхчєы№ЄрЄх ьюцэю сєфхЄ ёъЁ√Є№ юЄ ы■сюя√Єэ√ї уырч лЄрщэ√х╗ фхЄрыш ЁрчЁрсюЄрээ√ї трьш рыуюЁшЄьют. 198 ├ыртр 6. ╧ЁюуЁрььшЁютрэшх ЇєэъЎшщ эр ╠- ч√ъх ╠-ЇєэъЎшш ё яхЁхьхээ√ь ўшёыюь тїюфэ√ї ярЁрьхЄЁют ш т√їюфэ√ї чэрўхэшщ ┬ юяЁхфхыхэш ї ╠-ЇєэъЎшщ, ъюЄюЁ√х ь√ ЁрёёьрЄЁштрыш фю ёшї яюЁ, тёхуфр с√ыю ёЄЁюую ЇшъёшЁютрээюх ъюэхўэюх ўшёыю тїюфэ√ї ярЁрьхЄЁют ш т√їюфэ√ї чэрўхэшщ. ╬фэръю с√тр■Є ёшЄєрЎшш, ъюуфр яюыхчэю шьхЄ№ юфэє ЇєэъЎш■, ъюЄюЁр °ЄрЄэю юсЁрсрЄ√трыр с√ яхЁхьхээюх ўшёыю тїюфэ√ї ярЁрьхЄЁют ш т√їюфэ√ї чэрўхэшщ. ═ряЁшьхЁ, эхяыюїю шьхЄ№ ЇєэъЎш■, ъюЄюЁр ьюцхЄ ёєььшЁютрЄ№ фышэ√ яЁюшчтюы№эюую ўшёыр тхъЄюЁют. ╥рър ЇєэъЎш фюыцэр єьхЄ№ ЁрёяючэртрЄ№ Ёхры№эюх ъюышўхёЄтю ярЁрьхЄЁют, ё ъюЄюЁ√ьш юэр т√чтрэр. |
|
© 2025 Библиотека RealLib.org
(support [a t] reallib.org) |