пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05...

38
Дәрістердің тірек коспектілері Ф ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі С. Торайғыров атындағы Павлодар мемлекеттік университеті Информатика және ақпараттық жүйелер кафедрасы 050703 –ақпараттық жүйелері мамандығының студенттері үшін «Сандық әдістері» пәні бойынша пәнді оқуға әдістемелік нұсқаулар Павлодар

Upload: others

Post on 07-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Дәрістердің тірек коспектілеріФ

ФСО ПГУ 7.18.2/05

Қазақстан Республикасының Білім және ғылым министрлігі

С. Торайғыров атындағы Павлодар мемлекеттік университеті

Информатика және ақпараттық жүйелер кафедрасы

050703 –ақпараттық жүйелері мамандығының студенттері үшін

«Сандық әдістері» пәні бойынша

пәнді оқуға әдістемелік нұсқаулар

Павлодар

Page 2: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Дәрістердің тіреккоспектілерін бекіту парағы

ФФСО ПГУ 7.18.1/05

БЕКІТЕМІНФМж/еАТ факультетінің деканы___________ С.К.Тлеукенов 200 __ ж. «___»____________

Құрастырушы: Аға оқытушы Джарасова Г.С.

Информатика және ақпараттық жүйелер кафедрасы

050703 «Ақпараттық жүйелер» мамандығының студенттері үшін

«Сандық әдістер» пәні бойынша пәнді оқуға әдістемелік нұсқаулар

Кафедра мәжілісінде бекітілді, 200__ж. «___»____________ Хаттама №_____.

Кафедра меңгерушісі _________________________ Нұрбекова Ж.Қ.

Факультеттің әдістемелік кеңесінде құпталды,

200__ж. «___»____________ Хаттама №_____.

ӘК төрайымы _________________________ Кишубаева А.Т.

2

Page 3: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Пәнді оқытудағы мақсат – оқушыларға есептеу машинасының әдістерін игеру үшінқажетті білім мен дағдыларын қамтамасыз ету және оларды кейінгі маман ретіндеқолданбалы математика аймағындағы іс-әрекеттерінде пайдалануға оқыту.

Курс міндеттері – студенттерге жүйелі түрде қолданбалы есептерді жуықтау (сандық)әдістерімен шешу ұғымдарын қалыптастыру және студенттерді математикалық есептердішешудің есептеу алгоритмдерін құрастыруға және ЭЕМ көмегін қолдануға дайындау.

Жоғары кәсіптік білім берудің Мемлекеттік білім беру стандартының талаптарынасәйкес курсты оқу нәтижесінде студенттердің игеруі керек:

есептерді сандық шешудің негізгі ұғымдары; алгоритмдер және программалық құралдарды пайдалану принциптері; вариациалық есептеменің негізгі әдістері туралы түсінік алу.

Курсты оқу нәтижесінде студенттер білуі керек: ЕТ мүмкіндіктерін және программалық қамтамасыздандыруды пайдалануды; тәжірибелік экстремальды есептердің математикалық моделдерін құрастыруды; шешудің белгілі әдістерін пайдалануды және қорытынды жасауды.

«Есептеу әдістері» пәнін оқу үшін студенттер келесі пәндерді меңгерулері тиіс: Математикалық талдау; Алгебра және геометрия; Дифференциалдық теңдеулер.

3

Page 4: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Дәріс №1 КіріспеЖоспар1. Есептеу әдістері – таным үрдісіндегі есептеу математикасының қажетті бөлімі. 2. Есептеу математикасының пайда болуындағы сандық әдістердің рөлі.3. Есептеу математикасының әртүрлі халық шаруашылық аймағында практикалық

қолданылуының болашақтылығы. Әдебиеттер: [1], 6-13 б., [2]-[4], 13-16 б., [6], 8-13 б.

Дәріс №2 Алгебралық және трансценденттік теңдеулерді шешудің сандықәдістері

2.1 Теңдеулерді шешу есебінің қойылымыТеңдеуді шешу – оның түбірлері болатынын, егер бар болатын болса нешеу екенін

және оларды белгілі дәлдікпен мәндерін анықтау. 0xF

түріндегі сызықтық емес теңдеулердің түбірлерін табу есебі әртүрлі ғылыми зерттеулердекездеседі (мұндағы xF – анықталған және шектеулі немесе шектеусіз ba,

аралығында үздіксіз функция). Сызықтық емес теңдеулерді екі класқа бөлуге болады:алгебралық және трансценденттік. Алгебралық теңдеулер деп тек алгебралық функциялардығана (бүтін, рационал, иррационал) қамтитын теңдеулерді айтады. Дербес жағдайда,көпмүше бүтін алгебралық теңдеу болып табылады. Басқадай функцияларды(тригонометриялық, көрсеткіштік, логарифмдік, және т.б.) қамтитын теңдеулердітрансценденттік деп атайды.

Әрбір ba, сандар xF функциясын нөлге айналдыратын болса,яғни 0xF , берілген теңдеудің түбірі деп аталады. саны k еселі түбірдеп аталады, егер x болғанда xF функциясымен бірге оның 1k -шіретті туындылары да нөлге тең болса:

01 kFFF

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

Теңдеудің түбірлерін сандық әдіспен табу есебі екі кезеңнен тұрады: түбірлерді айыру,яғни түбірдің бір ғана мәнін қамтитын жеткілікті аз (сығылған) аймақтарды табу жәнетүбірлерді анықтау, яғни қандайда бір аймақтағы түбірді белгілі дәлдікпен есептеу.

2.2 Алгебралық және трансценденттік теңдеулердің түбірлерін айыруАйталық бізге

0xF

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

xfxf 21

теңдеуімен алмастыруға болады. Мұндай жағдайда xf1 және xf 2

функцияларының графиктері салынып, Ох осіндегі осы графиктердіңқиылысу нүктелерін көрсететін кесінділері белгіленеді.

Мысал 1. 0ln2sin xx теңдеуінің түбірлерін айыру керек.

4

Page 5: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Түбірлерін графикалық түрде айыру үшін, оны оған мәндесxx ln2sin түрге келтіреміз. xy 2sin1 және xy ln2 функцияларының

графиктерін жеке-жеке саламыз.Графикке қарап, оның бір түбірі болатынын көреміз және ол 5,1;1

кесіндісінде жатады.

Түбірлерді айыру туралы есептерді шешу барысында келесі жайттардың пайдасы бар:1. Егер ba; кесіндісінде үздіксіз xF функциясы, оның шеткі

нүктелерінде әртүрлі таңбалы мәндер қабылдаса (яғни 0 bFaF ) , ондаберілген теңдеудің осы кесіндіде кем дегенде бір түбірі бар болады.

2. Егер xF функциясы монотонды (кемімелі немесе өспелі) болса, ba; кесіндісіндегі түбір жалғыз ғана болады.

Тексеру үшін xxxF ln2sin функциясының 5,1;1 кесіндісінің шеткінүктелеріндегі мәндерін есептейік: 909298,01 F ; 264344,05,1 F .Байқауымызша, 5,1;1 кесіндісінде түбірдің болатынын аламыз.

Қарапайым жағдайда, түбірлерді графикалық айыруды қолмен еептеуге болады, кейдекүрделі жағдайларда теңдеудің түбірі берілген кесіндіде болуын (санын) анықтаудакомпьютердің қолданбалы бағдарламасын пайдалануға немесе программалау тіліндепрограмма құрастыруға болады.

Айталық 0xF теңдеуінің барлық түбірлері CA; кесіндісіне тиістіболсын, яғни 0 CFAF . Бізге теңдеудің түбірлерін айыру керек, яғнибір түбірден жататын барлық CAba ;; кесінділерді көрсету керек.

xF -тің мәнін Ax нүктесінен бастап оң жаққа қарай қандайда бірh қадаммен қозғала отырып есептейміз.

xF -тің көршілес екі әртүрлі таңбалы мәндері пайда болған кезде, алынған кесіндігетүбір тиісті болатынын аламыз.

5

Page 6: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Теңдеудің шешімін программалау тілі көмегімен қарастырайық.Осыған сәйкес келетін алгоритмнің жалпы схемасын көрсетейік.Қойылған есептің нәтижесі экранда көрсетілген 1x және 2x

параметрлерінің мәндері (белгіленген кесіндінің шеткі нүктелері) болады.

Мысал 2. xx 1,0cos теңдеуінің 10;10 кесіндідегі түбірлерін 0,1қадаммен бөліктерге бөліңдер.

Бұл есепті Excel көмегімен шешуге болады. Компьютер экранындаxxy 1,0cos функциясының графигінен басқа мәндері анықталған кесте

және одан 0,1 қадаммен жеті бөлінген кесінділердің нәтижесін алуғаболады: 6,97,9 1 x ; 9,80,9 2 x ; 2,43,4 3 x ; 7,18,1 4 x ;

5,14,1 5 x ; 3,52,5 6 x ; 1,77 7 x .

6

Page 7: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Түбірлерді айыру алгоритмінің схемасы бойынша программаны оңайқұрастыруға болады. Төменде Turbo Pascal тілінде құрылған программаныұсынамыз: Program Separat_root;uses crt;var a,b,x1,x2,y1,y2,h:real; n,k:integer;function f(x:real):real; {уравнение вида F(x)=0}begin f:=cos(x)-0.1*x;end;

begin clrscr; writeln (' Введите a,b,h '); read (a,b,h); k:=0; x1:=a; x2:=x1+h; y1:=f (x1); while x2<b do begin y2:=f (x2); if y1*y2<0 then begin inc(k);

writeln (k, '-й корень [ ', x1:4:1, , ' ; ' , x2:4:1, , ' ] ' )

end; x1:=x2; x2:=x1+h; y1:=y2; end; repeat until keypressedend.

Программаның орындалу нәтижесі:

Ескерту. Теңдеудің түбірлерін айыру алгоритмінің сенімділігі xF

функциясының сипатына және таңдалған h қадамның шамасынатәуелді. xF функциясының hxx ; кесіндісінде бір емес бірнешетүбірлері болуы мүмкін. Сондықтан түбірлерді айыру барысында hқадамның шамасын өте аз етіп алған дұрыс.

7

Page 8: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Тапсырма 1. Берілген теңдеудің түбірлерін графикалық әдісті пайдаланып айырыңдаржәне осы тапсырманы программалау тілінің көмегімен орындаңдар:

8

Page 9: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

2.3 Жартылай бөлу әдісімен теңдеудің түбірін анықтауСызықтық емес теңдеулердің түбірлерін табудың қарапайым әдістердің бірі болып

табылады. 0xF

теңдеуін шешу барысында, ереже бойынша түбірі жуық мәнінің алдын ала мүмкін қателігі беріледі. Түбірлерді анықтау үрдісінде олардың қателігінен үлкен емес жуық мәндерін табуды талап етеді.

Айталық теңдеудің ba, кесіндісінде бір түбірі бар болсын, яғни

xF функциясы осы кесіндіде үздіксіз. ba, кесіндісін 2

baс

нүктесімен

жартылай бөлеміз. xF функциясының ca, және bс, кесінділерініңшеткі нүктелеріндегі мәндерін зерттейміз, яғни bca ,, нүктелерінде.Егер 0cF болса, онда екі жағдай болуы мүмкін: xF функциясы ca,

кесіндісінде немесе bс, кесіндісінде таңбасын ауыстырады (2.6-сурет).

Функцияның таңбасы ауыспайтын кесіндіні алып тастап, таңбасы ауысатын кесіндінітаңдап алып (өйткені, ол аралықта ізделінді түбір жатыр), оны жаңа кесінді ретіндеқарастырамыз. Жартылай бөлу үрдісін жалғастыра отырып, теңдеудің түбірі тиісті болатынең кіші кесіндіге келеміз.

Айталық анықтық үшін 0,0 bFaF болсын.

Бастапқы жуық түбір ретінде 20

baс

аламыз. Қарастырылған жағдайда 00 сF , онда bсс 0 және bс ,0

кесіндісін ғана қарастырамыз. Келесі

жуықтау: 2

01

bcс

. Мұнда bс ,1

кесіндісін алып тастаймыз, өйткені 01 сF және 0bF , яғни 10 cсс .

Осыған ұқсас басқа жуықтауларды

табамыз: 2

102

ccс

және т.б.

Жуықтау үрдісін xF функциясының модульімен алынған мәніберілген ең аз санынан аз болғанша жалғастырамыз, яғни nсF .

Төмендегі суретте теңдеудің түбірін кесіндіні жартылай бөлуәдісімен табудағы итерациялық үрдістің блок-схемасын ұсынамыз. Мұндакесіндіні сығу a және b шектерін ағымдық c түбіріне ауыстыруменжүргізіледі.

9

Page 10: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Сонымен қатар алынған кесіндінің ұзындығын бағалауға болады:егер ол мүмкін қателігінен кіші болса, есептеу тоқтатылады, яғни

ab . Төмендегі суретте теңдеудің түбірін кесіндіні жартылай бөлу

әдісімен табудағы итерациялық үрдістің блок-схемасын ұсынамыз. Мұндакесіндіні сығу a және b шектерін ағымдық c түбіріне ауыстыруменжүргізіледі.

10

Page 11: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Мысал 3. 0ln2sin xx теңдеуінің 5,1;3,1 кесіндісінде бір түбірі бар.Осы теңдеуді 4101 дәлдігіне дейін жартылай бөлу әдісіменкомпьютердің программасы көмегімен шешейік.

Алгоритмнің блок-схемасына сәйкес Turbo Pascal тілінде программамынадай болады:

Программаның орындалу нәтижесі:

Тапсырма 2. Жартылай бөлу әдісімен берілген теңдеудің бір түбірін 10-3 дәлдікпенесепте:

а) Есептеме кестенің көмегімен;б) Прграммалау тілінің көмегімен.Есептің берілгендерін 1-тапсырмадан алыңыз.

11

Page 12: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

2.4 Ньютон әдістеріЖартылай бөлу әдісімен қатар күрделі және тиімді итерациялық әдістер бар. Бұл

әдістерге Ньютон есімімен байланысқан әдістердің тобы қатысады. Олардың екеуінқарастырайық: жанама әдісі және хорда (қиюшы) әдісі. Бл әдістердің екеуі де мынадайтәсілге негізделген.

0xF

теңдеуінің ba ; кесіндісінде жалғыз түбірі бар болсын. Оны оған мәндес теңдеугетүрлендіреміз:

xFxxx

мұндағы, x - ba ; кесіндісінде анықталған және осы кесіндіде нөлге айналмайтын кезкелген функция.

x - ті әртүрлі тәсілмен таңдай отырып, көрсетілген әдістердіалуға болады.

Жанама әдісіа) Бірінші тәсіл

Айталық xF

x

1

. Сонымен итерациялық тізбек

,2,1,01

nxF

xFxx nn

реккуренттік қатынасының көмегімен құрылады. Бастапқы 0х мәнін таңдау мәселесі, xF

функциясының мынадай шарттарды қанағаттандыруымен шешіледі:1) ba ; кесіндісінде екінші рет дифференциалданады;2) Бірінші және екінші ретті туындылары осы кесіндіде таңбасын сақтайды, яғни

xF функция монотонды және дөңестік сипатын ауыстырмайды.Мұндай жағдайда 0х мәні ретінде ba ; кесіндісінің шеткі нүктелерінің бірі

алынады және ол нүктеде xF функциясы және оның екінші ретті туындысыбірдей таңбалы болуы керек, яғни 000 xFxF шарты орындалады.

Реккуренттік қатынаспен ( 0n ) болғандаанықталған 1x нүктесі, xFу функциясыныңграфигіне 0x нүктесінде жүргізілгенжанамамен абсциссаның қиылысу нүктесіболады.

Итерациялық тізбектің әрбір келесімүшесіне xFу функциясының графигінетізбектің алдыңғы мүшесі арқылы жүргізілгенжанаманың абсциссамен қиылысу нүктесісәйкес келетін болады.

Қателікті бағалау мынадай теңсіздіктің көмегіменжүзеге асырылады:

xFmm

xFx

ban

;min,

nxF мәндері реккуренттік тізбектің мүшелерін табуда есептелетінболады.

Мысал 4. 0ln2sin xx теңдеуінің 5,1;3,1 кесіндісіндегі түбірін4101 -ке дейінгі дәлдікпен жанама әдісі арқылы анықта.Берілген жағдайда реккуренттік қатынас мынадай түрде болады:

,2,1,0/12cos2

ln2sin1

n

xx

xxxx

nn

nnnn

12

Page 13: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

0x нүктесін анықтау үшін 5,1;3,1 кесіндісінің шеткі нүктелеріндегі

xxxF ln2sin және 2

12cos4

xxxF таңбаларын табамыз:

025,03,1 F , 002,43,1 F

026,05,1 F , 004,45,1 F

Сонымен, 3,10 x .Итерациялық үрдісті тоқтатуды тексеру үшін (белгілі дәлдік

бойынша)

xxxFm

ba

12cos2minmin

5,1;3,1;

мәндерін анықтаймыз. Кесіндінің шеткі нүктелері үшін 65,25,1,48,23,1 FF .Кесінді өте аз болғандықтан, 4,2m деп алуға болады.

Итерациялық тізбектің бірнеше мүшелерін есептейік:

0401948,13,1/13,12cos2

3,1ln3,12sin3,11

nx

Түбірдің жету дәлдігіне тексеру жасайық:

003,04,2

4019448,1ln401948,12sin1

m

xF - талап етілген дәлдік жеткілікті

емес.

1399430,1401948,1/1401948,12cos2

401948,1ln401948,12sin401948,12

nx

Тағы тексеру жасаймыз: 62 101

4,2

399430,1ln399430,12sin

m

xF - талап етілген дәлдік жеткілікті.

Итерациялық тізбек мүшелерін тізбектеліп есептелуін кесте түріндекөрсетейік:

nnx

nn

nnnn xx

xxxx

/12cos2

ln2sin1

nx

0 1,3 1,401948 0,0031 1,401948 1,399430 0,000001

Сонымен, 399430,1 нәтижесінде барлық сандар дұрыс болады.б) Екінші тәсіл

xFу қисығына kcx нүктесінде жанама жүргізіліп, жанаманыңабсцисса осімен қиылысу нүктесі анықталады. Мұндай жағдайда 0cx

бастапқы жуықтау түбірін табу керек.

13

Page 14: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

xFу қисығына )(; 000 cFcM нүктесінде жүргізілген жанаманыңтеңдеуі

000 )( cxcFcFу .Осыдан жанаманың Ох осімен ( 0у ) қиылысу нүктесі ретіндегі 1cx жуық

түбірін табамыз:

)( 0

001 cF

cFcс

Осыған ұқсас )(; 111 cFcM , )(; 222 cFcM және т.б. нүктелеріндежүргізілген жанамалардың абсцисса осімен қиылысу нүктелері ретіндегіжуықтаулар табылады. 1n - ші ретті жуықтау үшін формула:

)(1

n

nnn cF

cFcс

Мұндай жағдайда, 0 ncF болуы керек. Итерациялық үрдісті тоқтату үшін ncF шартын немесе тізбектің екі жуықтауының жақындалу

nn cс 1 шартын пайдалануға болады.

Хорда (қиюшы) әдісі Жанама әдісін жүзеге асыру барысында, xF функиясының мәнін ғана емес

оның xF туындысының мәнінде есептеу қажетті. Бірақ Ньютон әдісініңтек xF мәнін есептеумен шектелетін нұсқасы бар.

а) Бірінші тәсіл

Егер )(cFxF

cxx

деп алып, с мәні ретінде ba ; кесіндісінің шеткі

нүктелерінің бірі алынады және ол нүктеде 0 сFсF шарты орындалады.Осыдан итерациялық әдіс

,2,1,01

n

cFxF

cFxxсFx

n

nnn

реккуренттік қатынаспен анықталатын хорда әдісіне (қиюшы әдісіне) келеміз.0х мәні ретінде ba ; кесіндісінен с мәні таңдағаннан қалған екінші

шеткі нүктесі алынады (яғни, егер ac болса, онда bx 0 немесекерісінше).

Тізбек реккуренттік қатынастың формуласы бойынша құрылады. Жуықтау түбірініңбағалауы

xFmm

xFx

ban

;min,

теңсіздігінің көмегімен анықталады. Әдістің геометриялық мағынасы төмендегі суретте

көрсетілген. Берілген жағдайда axbc 0, . 1х мәнінеқисықтың шеттерін қосатын хорданың абсциссаосімен қиылысу нүктесіне сәйкес келеді. Кейінқисықтың бойынан абсцисасы 1х болатын нүктетабылып, хорда жүргізіледі және т.б.

Мысал 5. 0ln2sin xx теңдеуінің 5,1;3,1

кесіндісіндегі түбірін 4101 -ке дейінгі дәлдікпен хорда әдісі арқылыанықта.

14

Page 15: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

с нүктесін анықтау үшін 5,1;3,1 кесіндісінің шеткі нүктелеріндегі

xxxF ln2sin және 2

12cos4

xxxF таңбаларын табамыз:

025,03,1 F , 002,43,1 F

026,05,1 F , 004,45,1 F

Сонымен, 3,1с . Осыдан 5,10 x .

1х мәнін табамыз:

0401948,13,1/13,12cos2

3,1ln3,12sin3,11

nx

397834,13,1ln3,12sin5,1ln5,12sin

3,1ln3,12sin5,15,1ln5,12sin3,1

0

001

cFxF

cFxxсFx

Берілген дәлдіктің жеткіліктілігін тексерейік:

002,04,2

397834,1ln397834,12sin1

m

xF - талап етілген дәлдік жеткілікті

емес.Келесі жуықтауды табамыз:

399410,1

3,1ln3,12sin397834,1ln397834,12sin

3,1ln3,12sin397834,1397834,1ln397834,12sin3,11

112

cFxF

cFxxсFx

52 1024,2

399430,1ln399430,12sin

m

xF - талап етілген дәлдік жеткілікті.

Итерациялық тізбек мүшелерін тізбектеліп есептелуін кесте түріндекөрсетейік:

n nx cFxF

cFxxсFx

n

nnn

1 nx

0 1,3 1,397834 0,0021 1,397834 1,399410 0,00002

Сонымен, 3994,1 .

б) Екінші тәсілАйталық xFу функциясы таңбасын ауыстыратын ba ; кесіндісін

бар болсын. Анықтық үшін 0,0 bFaF депалайық. Берілген әдісте итерация үрдісібойынша, теңдеудің түбірлеріне жуықтауретінде хорданың абсцисса осіменқиылысқан нүктелердің ,, 10 cc мәндеріалынады.

Алдымен АВ хордасының теңдеуінтабамыз:

ab

ax

aFbF

aFy

Оның абсцисса осімен қиылысу нүктелеріүшін ( 0,0 уcx )

15

Page 16: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

)()()(0 aF

aFbF

abaс

теңдеуін аламыз.Қарастырылған жағдай үшін aF және 0сF шамаларының

таңбаларын салыстыра отырып, түбірдің 0; сa аралығында болатынын

аламыз, өйткені 00 сFaF . bс ;0 кесіндісін қарастырмаймыз. Келесі итерация

АВ1 хордасымен абсцисса осінің қиылысу нүктесі болатын жаңа 1c

жуықтауын анықтаудан тұрады және т.с.с. Итерациялық үрдіс ncF

шарты орындалғанша жалғастырылады.Хорда әдісінің блок-схемасы

Тапсырма 3. Берілген теңдеудің бір түбірін 10-6 дәлдікпен Ньютон әдістерінің бірінпайдаланып, программалау тілінің көмегімен есепте. Есептің берілгендерін 1-тапсырмаданалыңыз.

16

Page 17: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Дәріс №3 Сызықтық теңдеулер жүйесін шешудің сандық әдістері3.1 Сызықтық жүйелерКөптеген қолданбалы және таза математикалық есептер жиыны сызықтық алгебралық

жүйелерді шешудің қажеттілігіне әкеледі. Сызықтық теңдеулер жүйесін шешу есептеуматематикасының қажетті есептерінің бірі болып табылады.

Алгебра курсынан белгілі, жүйедегі белгісіздер саны теңдеулер санынан артық немесетең болуы мүмкін. Біз тек белгісіздер саны теңдеулер санына тең болатын жүйеніқарастырамыз. n белгісізі бар n сызықтық алгебралық теңдеулердің жүйесін жазайық:

nnnnnn

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

2211

22222121

11212111

(1)

Жүйенің коэффициенттерінен құралған матрицаны жүйенің негізгі матрицасы ( n ретті квадраттық матрица) деп атайды:

nnnn

n

n

aaa

aaa

aaa

A

21

22221

11211

(2)

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

nnnnn

n

n

b

b

b

aaa

aaa

aaa

A

2

1

21

22221

11211

(3)

A матрицасы ұғымын пайдаланып, (1) теңдеулер жүйесін матрицалық түрде жазуғаболады:

BXA (4)мұндағы, X және B - белгісіздердің және бос мүшелердің векторлық-бағандары:

nx

x

x

X

2

1

,

nb

b

b

B

2

1

Теңдеулер жүйесінен әртүрлі матрицалар алынады, мысалы:

421

231

112

A ;

200

110

321

B ;

1000

0100

0010

0001

E ;

0000

0000

0000

0000

O

Мұнда, А – симметриялық матрица (оның элементтері бас диагоналға қатыстысимметриялы орналасқан ( jiij aa )).

B - жоғары үшбұрышты матрица (бас диагоналдан төмен орналасқан элементтернөлге тең);

Е – бірлік матрица; О – нөлдік матрица.

17

Page 18: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

3.2 Сызықтық жүйелерді шешу әдістері туралыСызықтық теңдеулер жүйесін шешу әдістері екі топқа бөлінеді: тура және

итерациялық.Тура әдістер белгісіздерді есептеу үшін шектеулі қатынастар (формулалар)

пайдаланады. Олар алдын ала белгілі амалдарды орындаудан кейін шешімді береді. Бұләдістер қарапайым және әмбебап болып табылады. Сызықтық теңдеулер жүйесін шешудіңтура әдістерін кейде дәл әдістер деп атайды, өйткені шешім жүйенің коэффициенттеріарқылы дәл формулалар түрінде өрнектеледі. Бұл әдістерге:

анықтауыштар әдісі (Крамер әдісі); матрицалық шешім: BAX 1 (егер кері матрица белгілі болса); белгісіздерді біртіндеп жою әдісі (Гаусс әдісі).Итерациялық әдістер – біртіндеп жуықтау әдістері. Мұнда жуықталған шешімін

беру керек – бастапқы жуықтау. Бұдан кейін алгоритм көмегімен есептеудің бір цикліжүргізіледі (итерация деп аталады). Итерация нәтижесінде жаңа жуықтау алынады. Итерацияталап етілетін дәлдікпен шешім алынғанға дейін жүргізіледі. Итерациялық әдістердіпайдаланып сызықтық теңдеулерді шешудің алгоритмдері тура әдістермен салыстырғандаөте күрделі.

3.3 Гаусс әдісіГаусс әдісі (3) кеңейтілген матрицаны үшбұрышты түрге келтіруге негізделген. Бұл

жүйенің теңдеулерінен белгісіздерді біртіндеп жоюмен жүзеге асырылады. Гаусс әдісініңмәні – (1) жүйені оған мәндес үшбұрышты матрицалы жүйеге түрлендіру болып табылады,кейін біртіндеп (кері жүріс) барлық белгісіздердің мәндері алынады.

(1) жүйені келесідегідей түрлендірейік. 011 a (жүргізуші элемент) деп алып, біріншітеңдеудің коэффициенттерін 11a -ге бөлеміз:

112121 nnxxx (5)(5) теңдеуді пайдаланып, жүйенің басқа қалған теңдеулерінен 1x белгісізін оңай

жоюға болады (ол үшін алдын ала 1x -дің сәйкесінше коэффициентін (5) теңдеуге көбейтіп,әр теңдеуден азайтсақ жеткілікті).

Бірінші теңдеуді сол қалпында қалдырып, қалған теңдеулерге осындай түрлендірулержасаймыз: теңдеулерден жүргізуші элементімен теңдеуді таңдап, оның көмегімен қалғантеңдеулерден 2x белгісізін жоямыз. Осы үрдісті қайталай отырып, берілген жүйеге мәндесүшбұрышты матрицалы жүйені аламыз:

nn

nn

nn

x

xxx

xxxx

223232

113132121

(6)

(6) жүйеден біртіндеп 11 ,,, xxx nn белгісіздерінің мәндері табылады.Сонымен (1) жүйені Гаусс әдісімен шешу үрдісі екі кезеңге бөлінеді. Бірінші кезең,

белгісіздерді біртіндеп жою – тура жүріс деп аталады. Есептеудің екінші кезеңі –белгісіздердің мәндерін табу – кері жүріс деп аталады.

Мысал 1. Сызықтық теңдеулер жүйесін шеш:

18

Page 19: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

56,5537,899,792,3

44,627,022,504,8

41,1461,1121,434,2

321

321

321

xxx

xxx

xxx

Жүйенің шешімін кесте түрінде көрсетейік:

Бөлім 1x 2x 3x Бос мүшелер

А

2,34

8,04

3,92

-4,21

5,22

-7,99

-11,61

0,27

8,37

14,41

6,44

55,56

/ 2,34

1 -1,799 -4,962 6,158

А1

19,685

-0,938

40,161

27,819

-55,951

31,420

/ 19,685

1 2,040 -2,842

А229,732 28,756 / 29,732

1 0,967

В

1

1

1 0,967

-4,816

2,293

Кестенің А бөліміне берілген жүйенің коэффициенттері және бос мүшелеріенгізіледі. А бөліміндегі бірінші жолдың элементтерін жүргізуші элемент 2,34 –ке бөліптөртінші жолға жазамыз. Осы төртінші жолды пайдаланып, осы бөлімнің екінші және үшіншіжолды түрлендіруге көшеміз (жүйенің 2-ші және 3-ші теңдеуінен 1x белгісізін жоямыз).Осы түрлендірудің нәтижелері А1 бөлімнің сәйкесінше бірінші және екінші жолдарын береді.

Мысалы, А1 бөлімнің бірінші жолын алу үшін, А бөліміндегі төртінші жолға (-8,04)-тікөбейтіп екінші жолға қосамыз, ал А1 бөлімнің екінші жолын алу үшін, А бөліміндегітөртінші жолға (-3,92)-ні көбейтіп үшінші жолға қосамыз.

А1 бөлімдегі үшінші жолдың элементтері бірінші жолды жүргізуші элемент 19,685-кебөлуден шығады, содан кейін А2 бөлімнің жолдары толтырылады.

А2 бөлімімен тура жүріс аяқталады. Бос мүшелер бағанында 967,03 x мәні алынады.Басқа белгісіздерінің мәндерін біртіндеп кері жүріспен табамыз:

816,48157,4967,0040,2842,22 x .Белгісіздерді табу үрдісі кестенің В бөлімінде берілген.

Мысал 2. СТЖ кестелік процессор Excel көмегімен шеш:

139373

353

1542

522

4321

421

4321

421

xxxx

xxx

xxxx

xxx

19

Page 20: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

20

Page 21: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

4.Тапсырма , 0,001 .Гаусс әдісін пайдаланып дәлдігімен жүйені шеш

: Программа құрастыр

3333232131

2323222121

1313212111

bxaxaxa

bxaxaxa

bxaxaxa

21

Page 22: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

22

Page 23: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

3.4 Анықтауыштарды және кері матрицаны есептеу

nnnnnn

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

2211

22222121

11212111

жүйенің анықтауышын D арқылы белгілейік:

nnnn

n

n

aaa

aaa

aaa

D

21

22221

11211

Теңдеулер жүйесін шешудің Гаусс әдісімен анықтауышты есептеу алгоритмінқарастырайық.

Бірінші теңдеудің сол және оң жақ бөліктерін 11a жүргізуші элементіне бөлсек,түрлендірілген жүйенің анықтауышы 11/ aD -ге тең. Бірінші қадамның келесі түрлендірулері(жүйенің басқа теңдеулерінен 1x белгісізін жою) анықтауыштың шамасын өзгертпейді.Екінші қадамда, екінші теңдеудің (түрлендірілген) екі бөлігін екінші жүргізуші элементке

(оны )1(22a арқылы белгілейік) бөлсек, алынған жүйенің анықтауышы )1(

2211/ aaD -ге тең.

Жүйенің теңдеуінен 2x белгісізін жоюдағы амалдар D анықтауышы шамасын өзгертпейді.Амалдарды жалғастыра отырып, n -ші қадамда

nn

nn

nn

x

xxx

xxxx

223232

113132121

жүйесіне келеміз. Осы жүйенің анықтауышы )1()1(2211/

n

nnaaaD -ге тең. Жүйе

белгісіздері коэффициенттерінің матрицасы – бас диагоналы бірге тең болатын үшбұрыштыматрица. Сондықтан оның анықтауышы 1-ге тең:

1)1()1(2211

nnnaaaD .

Сонымен, бастапқы матрицаның анықтауышы:

)1()1(2211

21

22221

11211

nnn

nnnn

n

n

aaa

aaa

aaa

aaa

D

,

мұндағы )1()1(2211 ,,, n

nnaaa - жүргізуші элементтер.

Бұдан мынадай қорытынды жасауға болады: егер квадратты матрицаныңанықтауышын есептеу қажет болса, онда осы матрицадан теңдеулер жүйесін шешу керек.

A матрицасы үшін 1A кері матрицасының элементтерін есептеуге болады.Анықтама бойынша, EAA 1 , мұндағы E - бірлік матрица. Ізделінді 1A керіматрицасы мен бірлік матрицаны векторлық-бағандар жиынтығы түрінде көрсетейік:

)()2()1()()2()1(1 ,,,,,,, nn eeeExxxA

Осы жазу арқылы niexA ii ,,2,1)()(

23

Page 24: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Әр жүйені шешімі кері матрицаның сәйкесінше бағанын береді.

Мысал.

37,899,792,3

27,022,504,8

61,1121,434,2

A матрицасы үшін кері матрицаны табу керек.

Есептеу кестеде көрсетілген.

Табылған элементтердің мәндерін жаза отырып (жолдарды кері ретті орналастыру),ізделінді кері матрицаны аламыз:

0336,00016,00619,0

0686,00475,00483,0

0433,00934,00357,01A

Тура тексеруді жасайық:

0003,10005,00002,0

0033,09994,00000,0

0270,00088,00041,11AA

24

Page 25: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Сызықтық теңдеулер жүйесін Гауус әдісімен шешу алгоритмі төмендегі суреттекөрсетілген. 11,1, njnijia массиві жүйенің кеңейтілген матрицаныңкоэффициенттерін қамтиды. Программа жүйенің анықтауышын есептеуді қамтиды(айнымалы det ).

25

Page 26: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

26

Page 27: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Мысал.

139373

353

1542

522

4321

421

4321

421

xxxx

xxx

xxxx

xxx

Программаның нәтижесі:

27

Page 28: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Гаусс әдісімен теңдеулер жүйесін шешу (2-тәсіл)

program gauss;uses crt;var a:array[1..10,1..10] of real; b:array[1..10] of real; c:array[1..10,1..10] of real; x:array[1..10]of real; i1,j1,k,i,j,n:integer; s,cl:real; Label 1,2,3,4,5,6,7,8; BEGIN writeln('Bbedite schislo uravnenii n'); readln(n); writeln('Bbedite po stroscno koeffisentob pri neizbesnih'); for i:=1 to n do begin for j:=1 to n do begin writeln('a[',i,j,']'); read(a[i,j]); end; end; writeln('Bbedite po elementof sbabodni scleni sistem'); for i:=1 to n do begin writeln('[',i,']'); read(b[i]); end; {********** primoi hot pescenie zadasc******} k:=1; 1: i:=k+1;

28

Page 29: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

if a[k,k]<>0 then goto 3; 2:i1:=k+1; if a[i1,k]=0 then goto 2;j1:=i1; For j:=1 to n do begin c[k,j]:=a[k,j]; a[k,j]:=a[j1,j]; a[j1,j]:=c[k,j]; end; 3: cl:=a[i,k]/a[k,k]; a[i,k]:=0; j:=k+1; 4: a[i,j]:=a[i,j]-cl*a[k,j]; if j<n then begin j:=j+1; goto 4; end; b[i]:= b[i]-cl* b[k]; if i<n then begin i:=i+1; goto 3; end; if k<n-1 then begin k:=k+1; goto 1; end; {********** Obratni hot rescenia***********} x[n]:=b[n]/a[n,n]; i:=n-1; 5:j:=i+1; s:=0; 6:s:=s+a[i,j]*x[j]; if j<n then begin j:=j+1;goto 6; end; x[i]:=(b[i]-s)/a[i,i]; if i>1 then begin i:=i-1;goto 5; end; writeln(' rescenia sistem '); for i:=1 to n do writeln('x[',i,']=',x[i]:7:4); readln; readln; end.

29

Page 30: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Тапсырма 5. Гаусс әдісін пайдаланып, 0,001 дәлдігімен жүйені шеш. Программа

құрастыр:

3333232131

2323222121

1313212111

bxaxaxa

bxaxaxa

bxaxaxa

. Есептің берілгендерін 4-тапсырмадан алыңыз

3.5 Гаусс – Зейдель әдісіЕң қарапайым итерациялық әдістердің бірі – Гаусс-Зейдель әдісі болып табылады.

Осы әдісті пайдаланып жүйені шешуге мысал келтірейік.

3333232131

2323222121

1313212111

bxaxaxa

bxaxaxa

bxaxaxa

(3.5.1)

Айталық жүйенің диагоналдық 332211 ,, aaa элементтері нөлден өзгеше болсын (егерболмаса, теңдеулердің орындарын алмастырамыз). Жүйенің бірінші, екінші және үшіншітеңдеулерінен сәйкесінше 321 ,, xxx белгісіздерін өрнектейміз:

,13132121

111 xaxab

ax (3.5.2)

,132312112

222 xaxab

ax (3.5.3)

.123213113

333 xaxab

ax (3.5.4)

Белгісіздерге бастапқы (нөлдік) жуықтаулар берейік: 033

022

011 ,, xxxxxx . Осы

мәндерді (3.5.2) өрнегінің оң жақ бөлігіне қоя отырып, 1x үшін жаңа (бірінші) жуықтаудыаламыз:

,1 0313

02121

11

11 xaxab

ax

Осы мәнді 1x үшін және 03x жуықтауын 3x үшін пайдаланып, (3.5.3) өрнегінен 2x

үшін бірінші жуықтауды табамыз: ,1 0

3231

121222

12 xaxab

ax

Соңында, есептелген 122

111 , xxxx мәндерін пайдаланып, (3.5.4) өрнегінің

көмегімен 3x үшін бірінші жуықтауын табамыз: 1

2321

131333

13

1xaxab

ax .

Осымен (3.5.2) – (3.5.4) жүйелерді шешудің бірінші итерациясы аяқталады. Енді 1

31

21

1 ,, xxx мәндерін пайдаланып, осындай тәсілмен екінші итерацияны жүргіземіз,

нәтижесінде екінші жуықтау табылады: 233

222

211 ,, xxxxxx және тағы басқалары. k

номерлі жуықтауды мынадай түрде көрсетуге болады: ,1 1

3131

212111

1 kkk xaxab

ax

,1 13231212

222

kkk xaxaba

x

30

Page 31: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

kkk xaxaba

x 232131333

3

1 .

Итерациялық үрдіс kkk xxx 321 ,, мәндері берілген дәлдікпен 13

12

11 ,, kkk xxx

мәндеріне жақындағанша жалғастырылады.

Мысал. Жүйені Гаусс-Зейдель әдісі көмегімен шеш:

032

762

44

321

321

321

xxx

xxx

xxx

.

Жүйенің шешімі 1321 xxx болатынын оңай тексеруге болады.Шешімі. 321 ,, xxx белгісіздерін сәйкесінше бірінші, екінші және үшінші

теңдеулерден өрнектейміз:

).2(3

1

),27(6

1

),44

1

213

312

321

xxx

xxx

xxx

Бастапқы жуықтаулар ретінде 0,0,0 )0(3

)0(2

)0(1 xxx деп алып, белгісіздердің жаңа

жуықтауларды табамыз.

.9

8)

6

521(

3

1

,6

5)0127(

6

1

,1)004(4

1

)1(3

)1(2

)1(1

x

x

x

Осы сияқты келесі жуықтауды есептейміз:

.72

71)

72

712

72

71(

3

1

,72

71)

9

8

72

7127(

6

1

,72

71)

9

8

6

54(

4

1

)2(3

)2(2

)2(1

x

x

x

Итерациялық үрдісті тізбектелген екі белгісіздер арасында ең аз айырымды алғанғадейін жалғастыруға болады.

Енді n белгісізі бар n сызықтық теңдеулер жүйесін қарастырайық. Оны мынадайтүрде жазамыз:

nibxaxaxaxaxa ininiiiiiiiiii ...,,2,1,...... 11,11,11

Мұнда барлық диагоналдық элементтер нөлден өзгеше деп аламыз. Сонда Гаусс-Зейдел әдісіне сәйкес k номерлі жуықтауды мынадай түрде көрсетуге болады:

nixaxaxaxaba

x knin

kiii

kiii

kii

ii

ki ...,,2,1),......(

1 )1()1(11,

)(11,

)(11

)(

Итерациялық үрдіс )(kix мәндерінің барлығы )1( k

ix мәніне жақын болғаншажалғастырылады. Осы мәндердің жақындауын олардың айырымының максимальдыабсолюттік шамасымен сипаттауға болады. Сондықтан берілген 0 дәлдігі бойыншаитерациялық үрдістің аяқталу белгісін мынадай түрде жазуға болады:

,max )1()(

1

ki

ki

nixx

31

Page 32: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Осы шарттың орындалуынан Гаусс-Зейдельдің итерациялық үрдісі жинақты депаталады.

n сызықтық теңдеулер жүйесін Гаусс-Зейдель әдісімен шешу алгоритмінің блок-схемасы көрсетілген. Бастапқы мәндер ретінде теңдеулер жүйесінің коэффициенттері, дәлдігі, М итерация саны, бастапқы )...,,2,1( nixi жуықтау мәндері енгізіледі. Бастапқыжуықтау мәндердін енгізбеуге болады, яғни нөлге тең деп алуға болады.

k - итерацияның реттілік номері;i - теңдеудің және айнымалының номері;j - )(k

jij xa түріндегі мүшенің номері.Итерация шарттың орындалуымен немесе Mk болған жағдайда тоқтатылады.

Uses CRT;

Const

32

Page 33: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

maxn = 10;

Type Data = Real; Matrix = Array[1..maxn, 1..maxn] of Data; Vector = Array[1..maxn] of Data;

{ Процедура ввода расширенной матрицы системы }Procedure ReadSystem(n: Integer; var a: Matrix; var b: Vector);Var i, j, r: Integer;Begin r := WhereY; GotoXY(2, r); Write('A'); For i := 1 to n do begin GotoXY(i * 6 + 2, r); Write(i); GotoXY(1, r + i + 1); Write(i:2); end; GotoXY((n + 1) * 6 + 2, r); Write('b'); For i := 1 to n do begin For j := 1 to n do begin GotoXY(j * 6 + 2, r + i + 1); Read(a[i, j]); end; GotoXY((n + 1) * 6 + 2, r + i + 1); Read(b[i]); end;End;

{ Процедура вывода результатов }Procedure WriteX(n :Integer; x: Vector);Var i: Integer;Begin For i := 1 to n do Writeln('x', i, ' = ', x[i]);End;

{ Функция, реализующая метод Зейделя }Function Seidel(n: Integer; a: Matrix; b: Vector; var x: Vector; e: Data) :Boolean;Var i, j: Integer; s1, s2, s, v, m: Data;Begin

{ Исследуем сходимость } For i := 1 to n do begin

33

Page 34: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

s := 0; For j := 1 to n do If j <> i then s := s + Abs(a[i, j]);

If s >= Abs(a[i, i]) then begin Seidel := false; Exit; end;

end;

Repeat

m := 0; For i := 1 to n do begin

{ Вычисляем суммы } s1 := 0; s2 := 0; For j := 1 to i - 1 do s1 := s1 + a[i, j] * x[j]; For j := i to n do s2 := s2 + a[i, j] * x[j];

{ Вычисляем новое приближение и погрешность } v := x[i]; x[i] := x[i] - (1 / a[i, i]) * (s1 + s2 - b[i]);

If Abs(v - x[i]) > m then m := Abs(v - x[i]);

end;

Until m < e;

Seidel := true;End;

Var n, i: Integer; a: Matrix; b, x: Vector; e: Data;Begin ClrScr; Writeln('Программа решения систем линейных уравнений по методу Зейделя'); Writeln;

Writeln('Введите порядок матрицы системы (макс. 10)'); Repeat Write('>');

34

Page 35: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Read(n); Until (n > 0) and (n <= maxn); Writeln;

Writeln('Введите точность вычислений'); Repeat Write('>'); Read(e); Until (e > 0) and (e < 1); Writeln;

Writeln('Введите расширенную матрицу системы'); ReadSystem(n, a, b); Writeln;

{ Предполагаем начальное приближение равным нулю } For i := 1 to n do x[i] := 0;

If Seidel(n, a, b, x, e) then begin Writeln('Результат вычислений по методу Зейделя'); WriteX(n, x); end else Writeln('Метод Зейделя не сходится для данной системы'); Writeln;End.

Программа решения систем линейных уравнений по методу Зейделя

Введите порядок матрицы системы (макс. 10)>4

Введите точность вычислений>.000001

Введите расширенную матрицу системы A 1 2 3 4 b

1 4.1 0.1 0.2 0.2 21.14 2 0.3 5.3 0.9 -0.1 -17.82 3 0.2 0.3 3.2 0.2 9.02 4 0.1 0.1 0.2 -9.1 17.08

Результат вычислений по методу Зейделяx1 = 5.2000000008E+00x2 = -4.2000000028E+00x3 = 3.0000000003E+00x4 = -1.8000000000E+00

35

Page 36: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

Тапсырма 6. Гаусс-Зейдель әдісін пайдаланып, 0,001 дәлдігімен жүйені шеш.

Программа құрастыр:

3333232131

2323222121

1313212111

bxaxaxa

bxaxaxa

bxaxaxa

. Есептің берілгендерін 4-тапсырмадан

алыңыз.

36

Page 37: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

ӘДЕБИЕТТЕР

Негізгі әдебиеттер1. Н. Н. Калиткин. Численные методы. - М.: Наука, 1978.2. И. С. Бахвалов. Численные методы. - Ч.1, - М..: Наука, 1973.3. Г. И. Марчук. Методы вычислительной математики. - М.: Наука, 1980.4. Л. И. Турчак. Основы численных методов. - М.: Наука, 1987. – 320 с.5. В.М. Заварыкин. Численные методы. – М.: Просвещение, 1990. – 176с.6. Г. И. Воробьева, А. И. Данилова. Практикум по численным методам.

- М., Наука, 1979.7. И.Л. Акулич. Математическое программирование в примерах и

задачах. – М.: Высш. шк., 1986. – 319 с.8. Н. Культин. Программирование на Object Pascal в Delphi 5. Спб, БХБ.

- Санкт-Петербург, 1999.9. Фаронов В.В. Турбо Паскаль 7.0 Учебный курс. - М., 1998. - 433 с.10. Фаронов В.В. DELPHI 4. Учебный курс. - М., 1999. - 464 с.11. Электронные учебники по языкам программирования.

Қосымша әдебиеттер12. Численные методы и задачи оптимизации. /под ред. В.Н. Игнатьева,

Г.Ш. Фридмана. - Томск: Томского ун-та, 1983. - 165 с.13. В.М. Монахов и другие. Методы оптимизации. Применение

математических методов в экономике. Пособие для учителя. - М.:Просвещение, 1978. - 175 с.

14. Г.И. Марчук. Методы вычислительной математики. - М.: Наука,1980.

,

37

Page 38: пәнді оқуға әдістемелік нұсқаулар · ФСО ПГУ 7.18.2/05 Қазақстан Республикасының Білім және ғылым министрлігі

38