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

16. Анықталған интегралды жуықтап есептеуді көрсетіңіз. Feval функциясы. Трапеция әдісі.

Физика, химия, экология, механика және де басқа да жаратылыстану ғылымдарындағы көптеген есептерді шешу анықталған интегралды есептеуге тіреледі.

Күнделікті өмірде Ньютон-Лейбниц формуласын қолданудың реті бола бермейді. Ондай жағдайда сандық интегралдау әдісі қолданылады. Ол әдістер келесіге негізделген анықталған интегралы геометриялық тұрғыдан қарастырғанда, қисық сызықты трапецияның ауданын көрсетеді. Сызықты итегралдау әдісі [a; b] интервалын кішігірім интервалдарға бөле отырып ізделінді ауданды элементарлы аудандардың қосындысы ретінде қарастыруға негізделген. Пайдаланылған аппроксимацияға қатысты сандық интегралдаудың әртүрлі дәлдікке қол жеткізуге мүмкіндік беретін формулалары табылады. Трапеция әдісін қарастырайық.

Бұл әдісте сызықтық аппроксимациялау қолданылады, функциясының графигі нүктелерін қосатын қисық түрінде көрсетіледі. қадамы тұрақты болғанда, мұндағы n – учаскілер саны трапеция формуласы төмендегідей болады:

Матлаб ортасында бұл формуланы trapz(x, y) программасы орындайды.

Feval процедурасы

Матлаб-та кез-келген функция, мысалы FUN1, тек қарапайым хабарласу көмегімен емес [y1, y2, …, yk]=FUN1(x1, x2,…, xn) арнайы процедура feval арқылы жүзеге асырылуы мүмкін:

[y1, y2, …, yk]=feval(‘FUN1’,x1,x2,…, xn)

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

Себебі функцияны осы процедура көмегімен шақырған кезде функция атауы процедураның кіріс парметрі ретінде қарастырылады. Бұл функция атауын айнымалы ретінде қолдануға және оны функцияның нақты атуын білмей тұрып М-файлға хабарласу ретінде рәсімдеуге болады.

17. Цикл операторлары – for, whіle. Тармақтау операторлары – шартты оператор іf, оператор swіtch. Кіріс аргументтерді тексеріңіз. Тармақтауды ұйымдастыру. Ауыстырып қосу операторы.

Ағымдарды басқарудың бес құрылымдық түрлері бар:

If операторы, Switch, For, While, Break

For::: >>For count=start:step:final

>>Командалар

>>End. Мұнда count – циклдық айнымалы, start – оның бастапқы, final – соңғы, step – цикл қадамы. Цикл count мәні final-дан үлкен болғанда бітеді.

While:: While<шарт>

<операторлар>

End... <операторлар> <шарт> шындық болғанша орынд.

Шартты if операторы. If <шарт>

<операторлар>

End

Таңдау операторы switch…case

Екіден артық логикалық шарттармен тармақталу конструкцияларын құру қажет болса if операторы орнына switch…case таңдау операторын қолданған ыңғайлы. Ол оператор құрылымы келесідей:

Switch<өрнек>

Case<мән1>

операторлар

Case<мән2>

Операторлар...

Otherwise

Операторлар

End

18.Циклді үзу, оператор break. Төтенше жағдайларды өңдеу, оператор try…catch.

Қайталау операторларын қолданыңыз. Find функциясы.

Циклдық есептеулер жүргізу барысында циклдыің ішінде қателік пайда болмуын ескеру қажет.Мысалы қандай да х массиві берілсін,ол бүтін сан болсын. y(i) = x(i+1)/x(i) шарты бойынша жаңа массив құру керек болсын.Осы есеп for циклі арқылы шығарылатыны анық.Бірақ егер бастақы массивтің қандай да бір элементі нөлге тең болса,бөлген жағдайда inf шығады,және келесі есептеулер керексіз болады.Осындай жағдайды болдырмау үшін циклдан шығу пайдаланылады,егер x(i) мәні нөлге тең болса.Циклді тоқтату үшін break операторын қолданамыз:

for x = 1:20

z = x-8;

if z==0

break

end

y = x/z

end

z айнымалысы нөлге тең болғанда цикл тоқтап қалады. Break операторы for және while циклдарын тоқтата алады.Басқа циклдарда break жұмыс істемейді.

try.

Инстуркция1

Инстуркция2 catch.

Инструкция3...

Инстуркция 4

End

Бұл құрылым барлық инструкцияларды орындайды.Егер catch операторына дейін қателік кездессе,қателік туралы нұсқау келеді де,бірақ соңғыlasterr қателіктің жүйелік айнымалысы өзгермейді. Catchтан кейін қателік туралы нұсқаулар келмейді.Келесі мысалда қателіктің шығуы көрсетілген(ааа айнымалысы анықталмаған),одан кейін try...catch...end блогі орындалады:

ааа

??? Undefined function or variable 'ааа'.

try

2+3:

3+4:

2/0: catch

4+5: end:

Warning: Divide by zero.

»lasterr ans = Undefined function or variable

'aaa'.

Блогтың соңында lasterr командасы оның бастапқы мәнін шығарады.

Келесі мысалда try...catch...end блогында қателік catch операторынан кейін қойылған:

» try

2+3:

3+4;

4+5: catch

5/0:

end:

» lasterr

ans = Undefined function or variable 'aaa'.

5/0 есептеуінде қателік көрсетілмеген, жәнеlasterr мәні бастапқы күйінде тұр.

break – циклды үзу операторы

Циклдық есептеулерді ұйымдастырған кезде цикл ішінде қатенің болмауын қадағалау керек. Мысалы, бір х – массиві берілсін. Ол толық сандардан құралған. Бізге y(i)=x(i)/x(i+1) ережесі бойынша жаңа у массивін құру керек. Көрініп тұрғандай бұл есеп for – циклының көмегімен шешіледі. Бірақ егер бастапқы массив элементтерінің біреуі нолге тең болса, онда бөлгенде inf шығады және келесі есептеулер пайдасыз болып қалуы мүмкін. Циклдан шығу арқылы бұл ситуацияны болдырмауға болады, егер ағымдағы х(і) мәні 0-ге тең болса.

Келесі программаның фрагменті циклды үзу үшін break-ті қолдануды көрсетеді.

y=zeros(length(x)-1)

for i = 1:length(x)-1

if x(i) = = 0

break

end

y(i)=x(i+1)/x(i);

end

x(i) = = 0 шарты орындалғанда break операторы циклды аяқтайды және операторлардың орындалулары болады, end-тен кейін орналасқан. break операторын while циклімен бірге қолдануға болады.

Try…catch операторы

A=load(‘my.dat’);

pie(A)

x=[12 -1 -2];

x=x.^2

Егер Matlab іздеу жолында my.dat файлын табатын болса және ондағы берілгендерді салыстырса, онда есеп ойдағыдай шығады. Егер файлды таппаса немесе оқылуында қате болса, онад Матлабта программаны жүргізуді аяқтау туралы терезе шығады.

Бұдан шығу үшін бізге try…catch конструкциясы көмектеседі, ол осындай айрықша сәттерден шығу үшін керек.

Қолдану схемасы

try

% операторы, выполнение которых

%может привести к ошибке

catch

%операторы, которые следует выполнить

%при возникновении ошибки в блоке

%между try и catch

end

try

A=load(‘my.dat’);

pie(A)

catch

disp(‘ne mogu naiti fail my.dat’)

end

x=[1;2;-1;-2];

x=x.^2

Енді программа хабарлама қалдырады да жұмысын жалғастырады.

>> ne mogu naiti fail my.dat

x =

1 4 1 4

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