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

= 5j V(*')2 + (y'f + (z'fdt = 5j Vcos2 t + 4 sin2 t + 9dt.
─ы  т√ўшёыхэш  яюф√эЄхуЁры№эющ ЇєэъЎшш ёючфрфшь ёыхфє■∙шщ ЄхъёЄ:
function z = MyFunc321( t )
z = sqrt( cos(t) .╦2 + 4*sin(t) .A2 +. 9 );
ъюЄюЁ√щ чряш°хь т Їрщы MyFunc321 .m, яюёых ўхую т√ч√трхь ЇєэъЎш■ quad:
╠ = 5 * quad( 'MyFunc321', 0, 2 ); ╠ =
34.2903
─тющэ√х шэЄхуЁры√ ётюф Єё  ъ т√ўшёыхэш■ яютЄюЁэ√ї юяЁхфхыхээ√ї шэЄхуЁрыют, юфшэ шч ъюЄюЁ√ї  ты хЄё  тэєЄЁхээшь, р фЁєующ тэх°эшь. ┬эєЄЁхээшщ шэЄхуЁры  ты хЄё  яюф√эЄхуЁры№эющ ЇєэъЎшхщ фы  тэх°эхую шэЄхуЁрыр. ╠юцэю
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх 143
с√ыю с√ эряшёрЄ№ эхъюЄюЁє■ Ўхяюўъє т√ўшёыхэшщ (яЁюуЁрььє), т ъюЄюЁющ ьэюуюъЁрЄэ√х т√ўшёыхэш  яюф√эЄхуЁры№эющ ЇєэъЎшш ётюфшышё№ с√ ъ ьэюуюъЁрЄэ√ь т√чютрь ЇєэъЎшш quad. ╬фэръю эхЄ эхюсїюфшьюёЄш фхырЄ№ ¤Єю ёрьюёЄю Єхы№эю, Єръ ъръ т ёшёЄхьх MATLAB фы  ¤Єюую шьххЄё  ёяхЎшры№эр  ЇєэъЎш  dblquad.
┬ Ёхчєы№ЄрЄх т ёыєўрх эхюсїюфшьюёЄш т√ўшёыхэш  фтющэюую шэЄхуЁрыр, Єръюую, ъръ, эряЁшьхЁ, шэЄхуЁры
1 2
JJ (ї sin (є) + є sin (x) )dxdy, ю 1 фюёЄрЄюўэю юЇюЁьшЄ№ яюф√эЄхуЁры№эє■ ЇєэъЎш■ т ёыхфє■∙хь тшфх:
function z = Fof2Var( x, є ) z = x.*sin(y) + y.*sin(x);
(чряшёрт ¤ЄюЄ ЄхъёЄ т Їрщы Fof 2Var .m) ш т√чтрЄ№ ЇєэъЎш■ dblquad:
J = dblquad( 'Fof2Var', 0, 1, 1, 2 ); J = 1.1678
т Ёхчєы№ЄрЄх ўхую ш яюыєўшь шёъюьюх чэрўхэшх фтющэюую шэЄхуЁрыр (¤Єю ўшёЄю єўхсэ√щ яЁшьхЁ, Єръ ъръ фрээ√щ шэЄхуЁры рэрышЄшўхёъшьш яЁхюсЁрчютрэш ьш ётюфшЄё  ъ яЁюшчтхфхэш■ юфэюъЁрЄэ√ї юяЁхфхыхээ√ї шэЄхуЁрыют).
╨х°хэшх ёшёЄхь юс√ъэютхээ√ї фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ
┬ яЁхф√фє∙хь яюфЁрчфхых ь√ яючэръюьшышё№ эр яЁшьхЁх чрфрўш ю т√ўшёыхэшш юяЁхфхыхээ√ї шэЄхуЁрыют ё ЇєэъЎш ьш ёшёЄхь√ MATLAB, ъюЄюЁ√х ьюцэю с√ыю с√ эрчтрЄ№ шэЄхыыхъЄєры№э√ьш Ёх°рЄхы ьш ъюэъЁхЄэющ ьрЄхьрЄшўхёъющ яЁюсыхь√. ╥рь Єръшьш лЁх°рЄхы ьш╗ с√ыш рфряЄштэ√х ЇєэъЎшш quad ш quad8 (р Єръцх dblquad), ъюЄюЁ√х ёрьюёЄю Єхы№эю тхыш яЁюЎхёё т√ўшёыхэшщ, эр їюфє юяЁхфхы   эєцэ√х ЁрчьхЁ√ °руют шэЄхуЁшЁютрэш .
─ы  Ёх°хэш  ёшёЄхь юс√ъэютхээ√ї фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ т ёшёЄхьх MATLAB Єръцх шьх■Єё  эхюсїюфшь√х лЁх°рЄхыш╗. ▌Єю ЇєэъЎшш ode23, ode45, odell3, odel5s, ode23s,ode23t ш ode23tb.
╘єэъЎшш ё ёєЇЇшъёюь s яЁхфэрчэрўхэ√ фы  Ёх°хэш  Єръ эрч√трхь√ї ёшёЄхь цхёЄъшї фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ. ╚ї ь√ ЁрёёьюЄЁшь ўєЄ№ яючцх, р фы  тёхї юёЄры№э√ї ёшёЄхь фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ эршсюыхх єяюЄЁхсшЄхы№эющ  ты хЄё  ЇєэъЎш  ode45, Ёхрышчє■∙р  рыуюЁшЄь ╨єэух- ╩єЄЄр 4- 5-ую яюЁ фър (Ёрчэ√х яюЁ фъш ЄюўэюёЄш шёяюы№чє■Єё  фы  ъюэЄЁюы  °рур шэЄхуЁшЁютрэш ).
144 ├ыртр 4. ╨х°хэшх Єшяют√ї чрфрў рыухсЁ√ ш рэрышчр
╧Ёхцфх ўхь яЁшьхэшЄ№ эр яЁръЄшъх ЇєэъЎш■ ode45, юяш°хь хх рЁуєьхэЄ√, ёт чрээ√х ёю ёЄЁєъЄєЁющ ёшёЄхь√ юс√ъэютхээ√ї фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ. ╧юёыхфэ   шьххЄ тшф
yl' = Fl( ї, yl, є2, ..., єя ); є2' = F2( ї, yl, y2, ..., єя );
єя' = Fn( ї, yl, y2, ..., єя);
Єю хёЄ№ ёюёЄюшЄ шч я єЁртэхэшщ, ЁрчЁх°хээ√ї юЄэюёшЄхы№эю яхЁт√ї яЁюшчтюфэ√ї ЇєэъЎшщ yl, є2, ..., єя (¤Єю тёх ЇєэъЎшш юЄ ї). ┬тхфхь тхъЄюЁ-ёЄюысЎ√ Y ш F, ёюёЄю ∙шх шч yl, є2, ..., єя ш Fl, F2, ...,Fn ёююЄтхЄёЄтхээю. ╥юуфр ёшёЄхьр фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ яЁшьхЄ ёыхфє■∙шщ тхъЄюЁэ√щ тшф:
i у \ ы, 1 I ,
╫Єюс√ яЁшьхэшЄ№ лЁх°рЄхы№╗ ode45, эєцэю юЇюЁьшЄ№ т тшфх ёюсёЄтхээющ ЇєэъЎшш яЁртє■ ўрёЄ№ ёшёЄхь√ єЁртэхэшщ F ( ї, Y ).
╧єёЄ№, ъ яЁшьхЁє, ЄЁхсєхЄё  Ёх°шЄ№ ёыхфє■∙є■ ёшёЄхьє єЁртэхэшщ:
yl' = є2 + ╩ * ї * ї; є2' = -yl;
ё эрўры№э√ьш єёыютш ьш yl (0) = 0, є2 (0) = 1. ╟фхё№ ╩-ъю¤ЇЇшЎшхэЄ эхышэхщэюёЄш чрфрўш. ╧Ёш ╩ = 0 чрфрўр ёЄрэютшЄё  ўшёЄю ышэхщэющ ш юяшё√трхЄ урЁьюэшўхёъшх ъюыхсрэш . ┼ёыш яюёЄхяхээю єтхышўштрЄ№ чэрўхэшх ъю¤ЇЇшЎшхэЄр ╩ ш эрїюфшЄ№ ёююЄтхЄёЄтє■∙шх Ёх°хэш , Єю ьюцэю сєфхЄ эруы фэю эрсы■фрЄ№ яюёЄхяхээюх яЁю тыхэшх эхышэхщэюую їрЁръЄхЁр ъюыхсрэшщ.
─ы  фрээюую яЁшьхЁр эхшчтхёЄэр  тхъЄюЁ-ЇєэъЎш  Y ёюёЄюшЄ шч фтєї ¤ыхьхэЄют:
╙ = [ yl, є2 ]
╥ръ ъръ ЇєэъЎшш yl ш є2 т√ўшёы ■Єё  тю ьэюушї Єюўърї т яЁюЎхёёх эрїюцфхэш  Ёх°хэш , Єю Ёхры№эю yl ш є2  ты ■Єё  тхъЄюЁ-ёЄюысЎрьш. ┬хъЄюЁ F яЁрт√ї ўрёЄхщ ёшёЄхь√ єЁртэхэшщ фы  ╩ = 0.01 т√ўшёы хь ё яюью∙№■ ёюсёЄтхээющ ЇєэъЎшш MyDifEql:
function F = MyDifEql( x, є)
F = [ 0.01 * x * x + y(2); -y(l) ] ;
ЄхъёЄ ъюЄюЁющ чряшё√трхь т Їрщы MyDifEql .ур. ▌Єр ЇєэъЎш  т√ч√трхЄё  ърцф√щ Ёрч, ъюуфр ЄЁхсєхЄё  т√ўшёышЄ№ яЁрт√х ўрёЄш єЁртэхэшщ т ъюэъЁхЄэющ Єюўъх ї, Єръ ўЄю чфхё№ ї  ты хЄё  ёъры Ёюь, р тхъЄюЁ є ёюёЄюшЄ тёхую шч фтєї ¤ыхьхэЄют. ─Ёєур  ЇєэъЎш  - MyDifEqO:
function F = MyDifEqO( x, є ) F = [ y(2); -y(l) ];
MATLAB 5.x. ┬√ўшёыхэш , тшчєрышчрЎш , яЁюуЁрььшЁютрэшх
145
юяшё√трхЄ яЁрт√х ўрёЄш фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ яЁш эєыхтюь чэрўхэшш ъю¤ЇЇшЎшхэЄр ╩, Єю хёЄ№ юэр ёююЄтхЄёЄтєхЄ ўшёЄю ышэхщэюьє ёыєўр■. ╥хяхЁ№ ьюцэю т√ч√трЄ№ ЇєэъЎш■ ode45:
[ X, Y ] = ode45( 'MyDifEqO',[0,20], [0,1] );
эрїюф ∙є■ Ёх°хэшх эр°хщ ёшёЄхь√ фшЇЇхЁхэЎшры№э√ї єЁртэхэшщ ё эрўры№э√ьш єёыютш ьш [0,1] эр юЄЁхчъх [0,20]. ╧юёъюы№ъє чфхё№ шёяюы№чютрэр ЇєэъЎш  MyDifEqO фы  яЁрт√ї ўрёЄхщ єЁртэхэшщ, Єю ь√ эр°ыш Ёх°хэшх фы  ышэхщэюую ёыєўр  урЁьюэшўхёъшї ъюыхсрэшщ. ▌Єю Ёх°хэшх (ъръ yl = Y(:,l), Єръ ш є2 = ╙ (:, 2)) ё яюью∙№■ ъюьрэф
plot( X, Y(:,l) )
hold on
plot( X, Y(:,2) )
юЄюсЁрцрхЄё  эр ёыхфє■∙хь уЁрЇшъх (ёь. Ёшё. 4.6).
~i Figure No 1
┬┬┼╟
Window Х Help