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

─ы  яюшёър ьшэшьєьр ЇєэъЎшш эхёъюы№ъшї яхЁхьхээ√ї яЁшьхэ хЄё  ЇєэъЎш  frains:
xmin = fmins( name, xO )
╟фхё№ name  ты хЄё  шьхэхь ЇєэъЎшш эхёъюы№ъшї яхЁхьхээ√ї, фы  ъюЄюЁющ ш∙хЄё  ьшэшьєь, р ї╬ - ¤Єю тхъЄюЁ хх рЁуєьхэЄют, ё ъюЄюЁюую эрўшэрхЄё  яюшёъ. ─ы  шыы■ёЄЁрЄштэюую яЁшьхЁр ёючфрфшь яЁюёЄє■ ЇєэъЎш■ фтєї яхЁхьхээ√ї
function є = MyFunc2( ї ) є = ї(1)╦2 + ї(2)ы2;
шьх■∙є■ ьшэшьєьюь Єюўъє (0,0). ▌ЄюЄ ЄхъёЄ эрфю чряшёрЄ№ т Їрщы MyFunc2 .m т Єхъє∙шщ ърЄрыюу ёшёЄхь√ MATLAB. ╧юёых ¤Єюую ьюцэю т√чтрЄ№ ЇєэъЎш■
fmins:
xmin = fmins ( 'MyFunc2', [1,1] ); ъюЄюЁр  яЁшсышцхээю эрїюфшЄ тхъЄюЁ xmin ъююЁфшэрЄ Єюўъш ьшэшьєьр:
xmin(1)
ans =
-2.102352926236483х-005
xmin(2)
ans =
2.548456493279544х-005
╬сх эрщфхээ√х ъююЁфшэрЄ√ сышчъш ъ ётюшь Єюўэ√ь чэрўхэш ь, Ёртэ√ь эєы■.
─ы  ЇєэъЎшщ эхёъюы№ъшї яхЁхьхээ√ї х∙х трцэхх, ўхь фы  Ёрэхх ЁрёёьюЄЁхээ√ї ЇєэъЎшщ юфэющ тх∙хёЄтхээющ яхЁхьхээющ, яюёЄрЁрЄ№ё  ряЁшюЁэю юЎхэшЄ№ ъюышўхёЄтю ш яЁшсышчшЄхы№эюх эрїюцфхэшх ыюъры№э√ї ьшэшьєьют. ╥єЄ ьюуєЄ ёє∙хёЄтхээю яюьюў№ ЄЁхїьхЁэ√х уЁрЇшъш, ъюЄюЁ√х ь√ т уы. 2 ёЄЁюшыш фы  ЇєэъЎшщ фтєї тх∙хёЄтхээ√ї яхЁхьхээ√ї.
═ряЁшьхЁ, фы  ЇєэъЎшш peaks т яюфЁрчфхых л─юяюыэшЄхы№э√х фхЄрыш юЇюЁьыхэш  ЄЁхїьхЁэ√ї уЁрЇшъют╗ шч уы. 2 ЇєэъЎшхщ surfc с√ы яюёЄЁюхэ юўхэ№ эруы фэ√щ ЄЁхїьхЁэ√щ уЁрЇшъ, эр ъюЄюЁюь Єръцх с√ыш эрэхёхэ√ ышэшш єЁютэ . ╚ч яЁхфёЄртыхээющ уЁрЇшўхёъющ ърЁЄшэъш їюЁю°ю тшфэю, ўЄю шьх■Єё  ЄЁш ыюъры№э√ї ьшэшьєьр. ╧хЁт√щ ЁрёяюырурхЄё  тсышчш Єюўъш ё ъююЁфшэрЄрьш [0,0], р фтюх фЁєушї- тсышчш Єюўхъ [0,-1.5] ш [-1.5,0] ёююЄтхЄёЄтхээю. ╠юцэю тюёяюы№чютрЄ№ё  ¤Єющ яЁшсышцхээющ шэЇюЁьрЎшхщ ш эрщЄш єЄюўэхээ√х чэрўхэш  ыюъры№э√ї ьшэшьєьют ¤Єющ ЇєэъЎшш. ╬фэръю ёрьющ ЇєэъЎшхщ peaks чфхё№ тюёяюы№чютрЄ№ё  эх єфрёЄё , Єръ ъръ юэр тючтЁр∙рхЄ эхёъюы№ъю чэрўхэшщ, эх ёюуырёє■∙шїё  ё ЇєэъЎшхщ fmins. ╧ю¤Єюьє ь√ ёрьш ёючфрфшь ЇєэъЎш■ MyPeaks:
function z = MyPeaks ( X ) x = X ( 1 ); є = X ( 2 );
138
├ыртр 4. ╨х°хэшх Єшяют√ї чрфрў рыухсЁ√ ш рэрышчр
'MyPeaks', [0,-1.5]
z = 3*(1 - ї) .╦2.*хїЁ(-(ї.ы2) -
10*(ї/5 - ї.ы╟ - є.ы5).* хїЁ(-ї.ы2 - є.ы2) - ... 1/3*хїЁ(-(ї+1).╦2 - є.ы2);
уфх ьэюуюЄюўшх ючэрўрхЄ яхЁхэюё чряшёш т√Ёрцхэш  эр фЁєує■ ёЄЁюъє. ╟фхё№ фы  т√ўшёыхэш  чэрўхэш  z ЇєэъЎшш MyPeaks яю фтєь чэрўхэш ь рЁуєьхэЄют ї ш є шёяюы№чєхЄё  Єр цх ёрьр  ЇюЁьєыр, ўЄю ш т ЇєэъЎшш peaks. ─рыхх яЁхфёЄртыхээ√щ ЄхъёЄ ЇєэъЎшш чряш°хь т Їрщы MyPeaks.m, яюёых ўхую т√чютхь ЇєэъЎш■ яюшёър ьшэшьєьр fmins:
xminl = fmins( 'MyPeaks', [0,0] ); xrainl (1) ans =
0.2964 xminl(2) ans =
0.3202
xmin2 = fmins xmin2(l) ans =
0.2283 xmin2(2) ans =
-1.6255 xmin3 = fmins xmin3(l) ans =
-1.3474 xmin3(2) ans =
0.2045
┼ёыш с√ ь√ чрїюЄхыш єчэрЄ№, ъръюх ъюышўхёЄтю шЄхЁрЎшщ яЁш°ыюё№ юёє∙хёЄтшЄ№ фы  эрїюцфхэш  єЄюўэхээюую Ёхчєы№ЄрЄр, Єю ЇєэъЎш■ fmins эєцэю с√ыю с√ т√ч√трЄ№ т ЇюЁьрЄх ё фтєь  тючтЁр∙рхь√ьш чэрўхэш ьш:
[ xmin, Options ] = fmins( name, x0 )
уфх тючтЁр∙рхь√щ тхъЄюЁ Options ёюфхЁцшЄ т ърўхёЄтх юЄфхы№э√ї ётюшї ¤ыхьхэЄют ёрь√х ЁрчэююсЁрчэ√х ётхфхэш  ю яЁюЎхёёх эрїюцфхэш  ьшэшьєьр. ┬ ўрёЄэюёЄш, ¤ыхьхэЄ Options (10) ёюфхЁцшЄ ъюышўхёЄтю ёютхЁ°хээ√ї шЄхЁрЎшщ. ┼ёыш с√ ь√ т Єюы№ъю ўЄю ЁрёёьюЄЁхээюь яЁшьхЁх шёяюы№чютрыш ¤ЄюЄ ЇюЁьрЄ т√чютр ЇєэъЎшш fmins, Єю эрь с√ыю с√ шчтхёЄэю ўшёыю шЄхЁрЎшщ:
[xmin3,Opts] = fmins( 'MyPeaks', [-1.5,0] );
'MyPeaks', [-1.5,0]
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 139
xmin3(l) ans =
-1.3474 xmin3(2) ans =
0.2045 Opts(10) ans =
88
╬с√ўэю ўхь фры№°х юЄ шёЄшээюую ьшэшьєьр ЁрёяюырурхЄё  эрўры№эр  Єюўър фы  шЄхЁрЎшщ, Єхь сюы№°х ЄЁхсєхЄё  шї ўшёыю:
[xmin3,Opts] = fmins( 'MyPeaks', [-2,0] );
xmin3(l)
ans =
-1.3474 xrain3(2) ans =
0.2045 Opts (10) ans =
106
╩ръ Єюы№ъю ь√ чрфрыш їєф°хх эрўры№эюх яЁшсышцхэшх, Єръ ЄєЄ цх яюыєўшыш тючЁюё°хх ўшёыю эхюсїюфшь√ї шЄхЁрЎшщ фы  фюёЄшцхэш  юфэющ ш Єющ цх ЄюўэюёЄш.
┬√ўшёыхэшх юяЁхфхыхээ√ї шэЄхуЁрыют