Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпор кмр Сагындык.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
192.37 Кб
Скачать

14. MatLab жүйесіндегі арифметикалық есептеулер. Қарапайым функцияларды пайдаланыңыз. Ішкі қарапайым функциялар. Айнымалыларды қолданыңыз.

Арифметикалық есептеулер. Матлабтың құрамдас математиканың функциялары әртүрлі өрнектердің мәндерін табуға мүмкіндік береді. Матлабта нәтижелерді қорыту форматын басқару мүмкіндігі бар. Өрнектерді есептеуге арналған командалар барлық жоғарғы деңгейдегі программалау тілдеріне сай, түсінкті түрде келтірілген.

Қарапайым есептеулер. Командалық жолда 2+3-ті теріп және “Enter” басатын болсақ, нәтижесінде Матлаб командалық терезесінде: >> 2+3

ans = 8

матлабтың құрамдас функцияларының мысалдары:

  • sin, cos, tan, cot – синус, косинус, тангенс, котангенс

  • sec, csc – секанс, косеканс

  • asin, acos, atan, acot – арксинус, арккосинус, арктангенс, арккотангенс

  • asec, acsc – арксеканс, арккосеканс.

Тригонометриялық функциялардың аргументтері радиандарда берілуі керек. Сол сияқты кері тригонометриялық функциялар да нәтижелерді радиандарда қайтаруы тиіс.

Кешенді сандармен жұмыс істеуге қажет функциялар:

  • abs, angle – модуль r және фаза (-дан –ға дейінгі радиандарда) кешенді сандар a+i*b = r*(cos + i*sin)

  • complex – кешенді санды оның нақты және жорамал бөліктері арқылы құрастырады.

>>complex (4.2, 7.6)

ans=4.2000+7.6000і

  • conj – кешенді-сәйкес санды қайтарады

  • imag, real – кешенді санның нақты және жорамал бөліктерін қайтарады.

Дөңгелектеу және бөлінгеннен кейінгі қалдық:

  • fix – нөлге қарай ең жақын бүтін санға дейін дөңгелектеу

  • floor, ceil - -шексіздік немесе +шексіздікке қарай ең жақын бүтін санға дейін дөңгелектеу

  • round - ең жақын бүтін санға дейін дөңгелектеу

  • mod – бүтін сандық бөлуден қалған қалдық (таңбасымен қоса)

  • rem – бүтін сандық бөлуден қалған қалдық

  • sign – сан таңбасын қайтарады.

Айнымалыларды қолдану. Матлабта айнымалылармен жұмыс істеуге мүмкіндік бар. Мысалы

>> a=1.52

a= 1.52

Матлабта командаларды нүктелі үтірмен аяқтауға болады. Бұл жағдайда амалдар орындалады, бірақ нәтижесі экранға шығарылмайды.

15. Қарапайым дифференциалдық теңдеулерді шешіңіз.Нәтижелерді көрсетіңіз.

Дифференциалдық теңдеулер үшін Коши есебі, кез келген ретті дифференциалдық теңдеулерді қанағаттандыратын t=t0 болғанда y(t0)=u0, y’(t0)=u1, …,y(n-1)(t0)=un-1

Алғашқы шартын қанағаттандыратын функцияны табудан құралады:

y(n)=f(t,y,y’,….., y(n-1)).

Мұндай түрдегі есептерді Matlab-та шешу өте оңай. Шешудің үрдісі келесідей этаптардан тұрады:

  1. Берілген дифференциалдық теңдеуледі бірінші реттегі дифференциалдық теңдеулердің жүйесіне келтіру.

  2. Теңдеулер жүйесіне арнайы файл функция жазу.

  3. Сәйкес солверді шақыру.

  4. Нәтижелерді көрсету.

Қозғалысты анықтайтын теңдеу келесі түрде берілсін: y”+4y’+6y=cost

Нүкте координатасы бастапқы жағдайда бірге тең, ал жылдамдығы нөлге тең. Сонда сәйкес бастапқы шарттар келесідей түрде болады:

y(0)=1,y’(0)=0

Енді берілген есепті дифференциалдық теңдеулер жүйесіне келтіреміз. Ол үшін теңдеу ретінде сәйкес қосымша функциялар енгізіледі. Бұл жағдайда келесі формулалармен анықталатын y1 және y2 қосымша функцияларын енгіземіз.

y1=y,

y2=y’.

Бастапқы дифференциалдық теңдеулер жүйесі бастапқы шарттармен келесідей түрге келтіріледі:

y1’=y2,

y2’=-4y2-6y1+cost.

Екінші этап негізінен дифференциалдық теңдеулер жүйесі үшін оның оң бөлігін сипаттайтын файл функцияларды жазудан құралады. Файл функцияның екі кіріс аргументі болуы керек. Біріншісі t ол бойынша дифференциалдау орындалатын t айнымалысы да,екіншісі өлшемі жүйедегі белгісіз функция сандарына сәйкес келетін вектор. Егер t жүйеге анық кірмейтін болса да, аргументтердің саны және реті тұрақты. Файл функцияның шығыс аргументі болып жүйенің оң бөлігінің векторы алынады. Қарастырылып отырған жүйенің файл функциясының оң бөлігі келесідей түрде табылады.

Теңдеудің оң бөлігіндегі функция.

Function F=dif(t,y)

F=[y(2);-4*y(2)-6*y(1)+cos(t)];

Есепті шешуде ode45 солвері қолданылады.

y0=[1;0];

[T,Y]=ode45(‘dif’,[ 0 15],y0);

Plot(T,Y(:,1))

Hold on

Plot(T,Y(:,2))

Title(differencialdyk tendeudin wewimi)

Ylabel(‘y,y’’’)

Legend(‘koordinata’,’jyldamdyk’,4)

Grid on

Hold off

Әртүрлі есептерді шығарған кезде қарапайым дифференциалдық теңдеулерді сандық шешудің түрлі процедураларын таңдауға болады. Қатаң емес теңдеулер жүйелерін шешу үшін Матлабта келесі функциялар бар:

  • ode45 – Рунге-Кутта нақты әдісіне негізделген: бұл бірқадамдық алгоритм – шығару үшін алдыңғы нүктенің біріндегі мәнді білу керек. Бұл функция көп жағдайда бастапқы шешімдер үшін тиімді.

  • Ode23 – ол да нақты Рунге-Кутта әдісіне негізделген, бірақ реті төмен, сондықтан дәлдігі төмен және аздаған қатаңдыққа сай шешімдер үшін тиімді келеді. Ол да бірқадамдық әдіс.

  • Ode113 – Адамс-Бэшфорт-Милтонның ретті әдісін қолданады. Ол ode45 әдісіне қарағанда, әсіресе ерекше жоғарғы дәлдік қажет болған жағдайда және теңдеудің оң жағын есептеу күрделі кезде тиімдң болуы мүмкін. Көпқадамдық әдіс, сондықтан шешуді бастамас бұрын алғашқы бірнеше нүктелердегі шешімдерді білу керек.

Матлаб жүйесінде қатаң теңдеулер жүйесін шешу үшін 4 функция қарастырылған:

  • Ode15s – кері сандық дифференциялау әдісіне негізделген, ол Гир әдісі ретінде әйгілі. Ode113 әдісі сияқты бұл әдіс те көпқадамдық әдіс.

  • Ode23s – Розенброктың екінші ретті әдісін қолданады. Бірқадамдық әдіс болғандықтан Ode15s әдісіне қарағанда жоғары емес дәлдік жағдайлары үшін тиімдірек болады.

  • Ode23t – бос көбейткіші бар трапециялар ережелерін іске асыру болып табылады. Бұл әдісті егер есеп онша күрделі емес болса, және есепті сандық демпфирлеу керек болса қолдану мәні бар.

  • Ode23tb – Рунге-Куттаның айқын емес бойынша формуласы бойынша іске асырылады. Ode23s әдісі тәрізді бұл әдіс шешімнің жоғары емес дәлдігін қажет етпейтін кезде тиімді.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]