Халецкий әдісімен теңдеулер жүйесін шешу

Скачать



МАЗМҰНЫ
КІРІСПЕ
1 АЛГЕБРАЛЫҚ ТЕҢДЕУЛЕР ЖҮЙЕСІН ШЕШУ
1.1 Сызықтық теңдеулер жүйесін шешу туралы мағұлмат
1.2 Гаусс әдісі
1.3 Гаусс әдісінің көмегімен анықтауышты есептеу
1.5 Квадрат түбірлер әдісімен теңдеулер жүйесін шешу
1.6 Негізгі элементтер әдісі
1.7 Халецкий әдісі
1.8 Итерация әдісі
1.9 Зейдел әдісі
1.10 Релаксация әдісі
2 ЗЕРТХАНАЛЫҚ САБАҚТАРДЫ ҰЙЫМДАСТЫРУ
2.1 Зертханалық жұмыс №1 Гаусс әдісі және оның қолданылуы
2.2 Зертханалық жұмыс №2 Гаусс әдісінің көмегімен кері матрицаны
2.3 Зертханалық жұмыс №3 Квадрат түбірлер әдісі
2.4 Зертханалық жұмыс №4 Халецкий әдісі
2.5 Зертханалық жұмыс №5 Итерация әдісі
2.6 Зертханалық жұмыс №6 Зейдел әдісі
2.7 Зертханалық жұмыс №7 Релаксация әдісі
3 ЗЕРТХАНАЛЫҚ ЖҰМЫСТАРҒА АРНАЛҒАН ТАПСЫРМАЛАР
3.1 Гаусс әдісінің көмегімен теңдеулер жүйесін шешу
3.2 Гаусс әдісінің көмегімен анықтауыштың мәнін есептеу
3.3 Гаусс әдісімен кері матрицаны есептеу
3.4 Квадрат түбірлер әдісі
3.5 Негізгі элементтер әдісі
3.6 Халецкий әдісімен теңдеулер жүйесін шешу
3.7 Итерация әдісімен теңдеулер жүйесін шешу
3.8 Зейдел әдісі
ҚОРЫТЫНДЫ
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
КІРІСПЕ
Сызықтық теңдеулер жүйесін шешу әдістері сандық әдістер курсының негізгі
Бітіру жұмыстың мақсаты “сандық әдістер” курсының теңдеулер жүйесін
Бітіру жұмысының өзектілігі пәнді жетік меңгеруде қазақ тілінде жазылған
Бітіру жұмысы кіріспеден, теориялық, практикалық бөлімдерден, тапсырмалардан, қорытынды және
Теориялық бөлімде дәл әдістер тобына жататын Гаусс, квадрат
Практикалық бөлімде Гаусс, квадрат түбірлер, Халецкий, Зейдел, итерация, релаксация
Зертханалық жұмыстарға арналған бөлімінде барлық тоғыз әдістің әр
1 ТЕҢДЕУЛЕР ЖҮЙЕСІН ШЕШУ
1.1Сызықтық теңдеулер жүйесін шешу туралы мағлұмат
Теңдеулер жүйесін шешу әдістері негізінен екі топқа бөлінеді:
1 – топ – дәл әдістер тобы – мұнда
2 – топ - итерациялық әдістер тобы, мұнда
Есептеулер кезінде дөңгелектеу қолданылатындықтан, дәл әдістердің нәтижелері де жуық
1.2 Гаусс әдісі
Анықтық үшін төрт белгісізі бар төрт теңдеуден тұратын жүйені
(1.2.1)
, болсын. жетекші элемент
белгілеуін енгізсек:
(1.2.2)
(1.2.2) – теңдеуін қолданып, (1.2.1) – жүйесінің
Нәтижесінде үш теңдеуден тұратын жүйе аламыз:
белгілеуі арқылы
(1.2.1/)
аламыз. Мұндағы ,
жүйесінің бірінші теңдеуін мүшелеп жетекші элементке бөлсек:
белгілеуін енгізсек:
,
Енді (1.2.1/) жүйесінен белгісізін жоғарыдағыдай жолмен
(1.2.1//)
Мұнда - жетекші элемент.
(1.2.1//) жүйесінің бірінші теңдеуін жетекші элементке мүшелеп бөлсек:
,
Енді (1.2.1//) жүйесінен белгісізін алып тастаймыз:
,
.
Бұдан
, және теңдеулерін жинақтап
(1.2.3)
Гаусс әдісін қолданып теңдеулер жүйесін шешу үшін қажетті және
Үшбұрышты матрицаның (1.2.3) коэффициенттерін анықтау үрдісі тура жүріс, ал
Практикада Гаусс әдісімен теңдеулер жүйесін шешуді жеңілдету үшін арнайы
Тура жүріс кестенің А бөліміне жүйенің коэффициенттерін және бос
Ал А1 бөлімінің соңғы жатық жолы бірінші жолды
Осындай жолмен қалған А2, А3 бөлімдері құрылады.
Ал, кері жүрісте Аi бөлімдерінің (белгіленген жатық жолдары) 1
Есептеулерді бақылау үшін «бақылау қосындылары» қолданылады.
(1.2.4)
Бұл қосындылар сәйкес жатық жолдағы коэффициенттер мен бос мүшелердің
Егер (1.1.1) жүйесінде бос мүшелер ретінде
(1.2.5)
белгісіздері алғашқы жүйенің белгісіздері мен төмендегідей
(1.2.6)
Шындығында да (1.2.6) формуласын (1.2.5) теңдеуіне қойып, (1.2.1) және
.
Практикада әрбір жолдағы есептеуді бақылау үшін, кестеде тағы бір
Егер ағымдық жолда ешқандай қателер пайда болмаса, онда осы
Кестеде үш теңдеулердің жүйесін қарастырайық
Кесте 1 Гаусс сызбасы
Бөлімдер
1
1 1
1.3 Гаусс әдісінің көмегімен анықтауышты есептеу
(1.3.1)
сызықтық теңдеулер жүйесінің коэффициенттерінің анықтауышы.
(1.32)
Сызықтық теңдеулер жүйесін
(1.3.3)
қарастырайық. (1.3.3) жүйесін Гаусс әдісімен үшбұрышты матрицасына түрлендіреміз, яғни
(1.3.3)
мұндағы В:
В матрицасының элементтері А матрицасының элементтерінен және
1) жетекші элементтерге бөлу. Мұнда жетекші
2) А матрицасының сәйкес элементтерінен тік жол мен жатық
Мұндай операциялар нәтижесінде:
А матрицасының анықтауышы да сәйкес жетекші элементтерге бөлінеді.
б) екінші операцияда А анықтауышы өзгермейді.
Олай болса, ; бұдан
(1.3.4)
Сонымен, жүйенің анықтауышы жетекші элементтердің көбейтіндісіне тең. Ал жетекші
Егер белгілі бір қадамдарда немесе нөлге
Мысал 1.3.1: Төмендегі анықтауыштың мәнін есептеңіз:
Анықтауыштың мәнін есептеу үшін Гаусс әдісін қолданамыз.
Кесте 3 Анықтауышты есептеу кестесі
x1 x2 x3 X4 S ∑
Кесте 3 жалғасы
7,4 2,2 -3,1 0,7 7,2 7,2 A
1,6 4,8 -8,5 4,5 2,4 2,4
4,7 7 -6 6,6 12,3 12,3
5,9 2,7 4,9 -5,3 8,2 8,2
1 0,29729 -0,41891 0,009459 0,887839 0,887839
4,32343 -7,82974 4,34866 0,84235 0,84235 A1
5,600274 -4,03112 6,15543 7,724584 7,724584
0,9599 7,37157 -5,85808 2,47339 2,47339
1 -1,81062 1,00562 0,195 0,195
6,11331 0,05212 6,16543 6,16543 A2
4,0844 -6,80939 -2,72499 -2,72499
1 0,08526 1,08526 1,08526
-7,58393 -7,58393 -7,58393 A3
- анықтауыштың мәні.
1.4 Гаусс әдісімен кері матрицаны есептеу
Бізге айрықша емес матрица берілсін
(1.4.1)
Анықтама. Егер болса, онда А матрицасы
Оның кері матрицасы анықтау үшін алгебра
А және А-1 матрицаларын көбейтіп, белгісіздерін
мұндағы
.
жүйелердің барлығының матрицасы бірдей, ол берлген теңдеулер жүйесінің коэффициенттерінің
Практикада арнайы кестелер қолданылады, мұнда есептеулер бақылау қосындылары арқылы
Мысал 2.4.1: Берілген матрица үшін кері
.
Кесте 4 Кері матрицаны анықтау кестесі
x1j x2j x3j x4j j=1 J=2 j=3 j=4 (
A 3,5 -2,3 -5,4 1,2 1 0 0 0
2,1 -3,2 1,4 5,5 0 1 0 0 6,8
1,2 2,7 0 -4,9 0 0 1 0 0
1,3 -1,2 -4,5 9,4 0 0 0 1 6
x1j x2j x3j x4j j=1 J=2 j=3 j=4 (
1 -0,657143 -1,542857 0,34286 0,28571 0 0 0 -0,5714
B 0 -1,82 4,64 4,78 -0,6 1 0 0
0 3,488571 1,8514286 -5,31143 -0,3429 0 1 0 0,68571
0 -0,345714 -2,494286 8,95429 -0,3714 0 0 1 6,74286
1 -2,549451 -2,62637 0,32967 -0,54945 0 0 -4,3956
C 0 10,745368 3,85086 -1,4929 1,9168 1
0 -3,375667 8,04631 -0,2575 -0,18995 0 1 5,22323
1 0,35836 -0,1389 0,17838 0,0931 0 1,49084
D 0 9,25603 -0,7265 0,41219
1 -0,0785 0,04453 0,0339 0,10804 1,10803
E
-0,159 -0,0184 0,2954 0,18504 1,30306
0,03719 0,22314 0,3073 0,02482 1,59244
Есептеуді бақылау үшін ( бағанасын есептеп отыру қажет. Оның
Мысалы:
1)
Екінші жағынан: ;
2)
1.5 Квадрат түбірлер әдісі
Бізге (1.6.1) теңдеулер жүйесі берілген, А
Мұндай матрицаны транспонирленген екі үшбұрышты матрицаның көбейтіндісі түрінде жазуға
,
мұндағы
,
.
T және T’ матрицаларын көбейте отырып Т
(1.5.5)
(1.5.2) теңдігі орынды болса, онда (1.5.1) жүйесі төмендегідей
және
Теңдеулер жүйесін ашып жазсақ:
(1.5.7)
(1.5.8)
(1.5.7) – жүйеден т.с.с.
(1.5.8) – жүйеден:
(1.5.9) анықтмимыз.
Есептеу кезінде бақылау қосындылары қолданылады. Қайсыбір қосынды жолында
1.6 Негізгі элементтер әдісі
Сызықтық теңдеулер жүйесі берілсін:
(1.6.1)
(1.6.1) жүйесінің коэффициенттері мен бос мүшелерінен тұратын кеңейтілген тікбұрышты
.
М матрицасынан бос мүшелер бағанында жатпайтын, модулі бойынша ең
М матрицасымен төмендегідей амалдарды орындаймыз. М матрицасының әрбір негізгі
М(1) матрицасымен жоғарыдағыдай операцияларды жасасақ, М(1) матрицасының орнына бір
тізбегін аламыз. Ең соңғы М(n-1) матрицасы екі элементті, бір
Енді барлық матрицалардағы негізгі жатық жолдарды жинап жазсақ, белгісіздерді
Негізгі элементтер әдісімен теңдеулер жүйесін шешуге болады, егер жүйесін
.
Сонымен, бұрын қарастырылған Гаусс әдісі негізгі элементтер әдісінің дербес
1.7 Халецкий әдісі
Бізге матрицалық түрде сызықтық теңдеулер жүйесі берілсін.
(1.7.1)
- n – ші ретті квадрат матрица.
, - вектор – бағаналар.
A матрицасын екі ұшбұрышты матрицалардың көбейтіндісі түрінде жазайық,
.
Мұндағы
және
B және С матрицалары бір - біріне көбейтіп bij
b11=a11
bi1=ai1
Егер k>j, болса ckj=0, олай болса,
себебі
(1.7.3)
және
,
; егер , онда
i>
1.51 -0.63 2.15
-0.1409
0.8479
-0.7891
2.4 Зертханалық жұмыс №4
Тақырыбы: Халецкий әдісі бойынша теңдеулер жүйесін шешу
Мақсаты: Халецкий әдісі бойынша теңдеулер жүйесін шешу алгоритмін түсіндіру.
Есептің қойылуы: Төмендегідей теңдеуді шешу:
Кестенің бірінші бөліміне матрицаның коэффициенттерін, оның бос мүшелерін және
Кестенің екінші бөлімі бақылау қосындысы
Нәтиже бөлімінің элементтері , ,
Сутрет 4 Халецкий әдісі
Халецкий әдісінің паскаль тіліндегі бағдарламасы.
program Халецкий;
const n=4;e=0.001;
const a:array[1..4,1..6] of real=((0.17,0.75,-0.18,0.21,0.11,1.06),
(0.75,0.13,0.11,1,2,3.99),
(-0.33,0.11,3.01,-2.01,0.11,0.89),
( 0.11,1.12,1.11,-1.31,0.13,1.16));
var b,c:array[1..4,1..4] of real;
x,y:array[1..4] of real;
k,i,j,s:integer;
begin
writeln('elementter=>>');
for i:=1 to n do
begin
for j:=1 to n do
write (' ', a[i,j]:2:3);
writeln;end;
b[1,1]:=a[1,1];
for i:=1 to n do
for j:=1 to 6 do
b[i+1,j]:=a[i+1,j];
i:=1;
for j:=2 to 6 do
c[i,j]:=a[i,j]/b[1,1];
for i:=2 to n do
b[i,2]:=a[i,2]-b[i,1]*c[1,2];
i:=2;
for j:=3 to 6 do
c[i,j]:=(a[i,j]-b[2,1]*c[1,j])/b[2,2];
for i:=3 to n do
b[i,3]:=a[i,3]-(b[i,1]*c[1,3]+b[i,2]*c[2,3]);
for j:=4 to 6 do
c[3,j]:=(a[3,j]-(b[3,1]*c[1,j]+b[3,2]*c[2,j]))/b[3,3];
b[4,4]:=a[4,4]-(b[4,1]*c[1,4]+b[4,2]*c[2,4]+b[4,3]*c[3,4]);
i:=4;
for j:=5 to 6 do
c[i,j]:=(a[i,j]-(b[i,1]*c[1,j]+b[i,2]*c[2,j]+b[i,3]*c[3,j]))/b[i,4];
y[1]:=a[1,5]/b[1,1];
y[2]:=(a[2,5]-b[2,1]*y[1])/b[2,2];
y[3]:=(a[3,5]-(b[3,1]*y[1]+b[3,2]*y[2]))/b[3,3];
y[4]:=(a[4,5]-(b[4,1]*y[1]+b[4,2]*y[2]+b[4,3]*y[3]))/b[4,4];
x[4]:=y[4];
x[3]:=y[3]-c[3,4]*x[4];
x[2]:=y[2]-(c[2,3]*x[3]+c[2,4]*x[4]);
x[1]:=y[1]-(c[1,2]*x[2]+c[1,3]*x[3]+c[1,4]*x[4]);
for i:=1 to 4 do
writeln(' y= ' , y[i]:2:4);writeln;
for i:=1 to 4 do
writeln('x[',i,']= ', x[i]:2:4);
end.
Есептің шешімі:
Borland Pascal Version 7.0 Copyright (c) 1983,92
элементтер=>>
0.170 0.750 -0.180 0.210
0.750 0.130 0.110 1.000
-0.330 0.110 3.010 -2.010
0.110 1.120 1.110 -1.310
y= 0.6471
y= -0.4765
y= 0.3444
y= 0.1708
x[1]= 2.4364
x[2]= -0.3501
x[3]= 0.4305
x[4]= 0.1708
2.5 Зертханалық жұмыс №5
Тақырыбы: Итерация әдісі бойынша теңдеулер жуйесін шешу.
Мақсаты: Итерация әдісі бойынша теңдеулер жуйесін шешу алгоритмін түсіндіру.
Есептің қойылуы: Төмендегідей жүйенің шешімін дәлдікпен
Практикада жүйені итерация әдісімен шешу үшін төмендегідей метрикалардың біреуінің
а)
б)
в)
Алғашқы жуықтау ретінде кез-келген сандардан тұратын бағанды алуға болады.
- ге дейінгі дәлдікпен жүйені шешу үшін итерациялық үрдісті
шарты орындалғанша жүргіземіз.
Сурет 5 Итерация әдісі
Итерация әдісінің паскаль тіліндегі бағдарламасы.
рrogram iteracia;
label 1;
const n=4;e=0.001; b=0.77;
const a:array[1..4,1..5] of real=((0.42,-0.32,0.03,0,0.44),
(0.11,-0.26, 0.36,0,1.42),
(0.12,0.08, 0.14,-0.24,0.83),
(0.15, 0.35, 0.18,0,1.42));
var y:array[1..4] of real;
x:array[1..4] of real;
var k,i,j:integer; m,r:real;
begin
writeln('элементтер=>>');
for i:=1 to n do
begin
for j:=1 to n+1 do
write (' ' ,a[i,j]:2:3);
writeln;end;
begin
m:=e*(1-b)/b;
for k:=1 to n do begin
x[k]:=a[k,n+1];
end;
1: for i:=1 to n do begin
y[i]:=a[i,n+1];
for j:=1 to n do begin
y[i]:=y[i]+a[i,j]*x[j];end;end;
r:=0;
for k:=1 to n do begin
r:=r+sqr(x[k]-y[k]); end;
r:=sqrt(r);
for k:=1 to n do begin
x[k]:=y[k];end;
if r>m then goto 1 else
writeln('шешімі:');
for i:=1 to n do begin
writeln('x[',i,']=',x[i]:2:3); end;
end.
Есеп шешімі:
'элементтер=>>
0.42,-0.32,0.03,0,0.44
0.11,-0.26,-0.36,0,1.42
0.12,0.08,-0.14,-0.24,0.83
0.15,-0.35,-0.18,0,1.42
шешімі:
x[1]=0.253
x[2]=0.974
x[3]=0.611
x[4]=1.007
2.6 Зертханалық жұмыс №6
Тақырыбы:Зейдел әдісімен теңдеулер жүйесін шешу
Мақсаты: Зейдел әдісімен теңдеулер жүйесін шешу алгоритмін түсіндіру. Еxcel
Есептің қойылуы: Теңдеулер жүйесін дәлдікпен шешу.
Практикада Зейдель үрдісі жинақты болуы үшін төмендегідей метрикалардың (нормалардың)
Мұндағы - сығылу коэффициенті.
Бізге -шы жуық шешімі анық
Әдістің қатесін төмендегідей формуламен есептейміз:
.
Сурет 6 Зейдел әдісі
Зейдел әдісінің паскаль тіліндегі бағдарламасы
program Зейдель;
label 100;
const n=3;e=0.001;
const a:array[1..3,1..3] of real=((0.91,0.56,0.78),
(0.53,1.07,0.5),
(0.5,-0.01,0.66)) ;
b:array[1..3] of real=(0.98,0.31,0.4);
var x,z:array[1..3] of real;k,i,j,s:integer;
begin
writeln('Элементтер=>>');
for i:=1 to n do
begin
for j:=1 to n do
write (' ', a[i,j]:2:2);
writeln;
end;
begin
writeln(' ','Бос мүше=>> ');
for i:=1 to n do write(' ' ,b[i]:2:2);
end;
s:=0; writeln;for i:=1 to n do
begin
readln(z[i]);
end;
100: k:=0; for i:=1 to n do
begin
x[i]:=-b[i];for j:=1 to n do
begin
x[i]:=x[i]+a[i,j]*z[j];
end;
if abs(x[i]/a[i,i])>=e then k:=1;x[i]:=z[i]-x[i]/a[i,i];z[i]:=x[i];
end;
s:=s+1; if k=1 then goto 100;
writeln('Жауабы=>');
for i:=1 to n do
begin
writeln(x[i]:2:3);
end;
end.
Есептің қойлымы:
Элементтер=>>
0.91 0.56 0.78
0.53 1.07 0.50
0.50 -0.01 0.66
Бос мүше=>>
0.98 0.31 0.40
0.98
0.31
0.4
Есептің шешімі=>
2.107
-0.290
-0.995
2.7 Зертханалық жұмыс №7
Тақырыбы: Релаксация әдісі
Мақсыты: Релаксация әдісінің алгоритмін түсіндіру. Зертханалық жұмысты excel көмегімен
Есептің қойылуы: Төмендегі жүйені релаксация әдісімен шешіңдер.
1.10.1
Берілген есепті релаксация әлісімен шешу үшін алдымен бос мүшелерін
1.10.2
Жүйенің шешімінің бастапқы жуықтауы ретінде аламыз.
Осы табылған алшақтықтар ішінен ең үлкені ретінде
Енді
i s
қолданып, төмендегідей алшақтықтарды аламыз:
Осы табылған алшақтықтар ішінен ең үлкені ретінде
Яғни , онда сәйкес алшақтықтар төмендегідей түрде
Енді таңдап алып, алшақтық әлсірегенше, яғни
Әдісті төмендегідей кестенің көмегімен орындаған тиімді (Кесте 7).
Кесте 7 Релаксация кестесі
x1 R1 X2 R2 X3 R3
1 0 0,6 0 0,7 0 0,8
2 0,16 0,16 0,8 -0,8
3 0,76 0,86 0,86 0
0,17 -0,86 0,09
0,93 0,93 0 0,09
-0,93 0,09 0,09
0 0,09 0,18 0,18
0,04 0,04 -0,18
0,04 0,129 0,13 0
0,03 -0,13 0,01
0,06 0,06 0 0,01
-0,06 0,01 0,01
0 0,01 0,02 0,02
0 0 -0,02
0 0,01 0,01 0
0 -0,01 0
0,01 0,01 0 0
-0,01 0 0
0 0 0
∑ 1,0 1,0 1,0
Үрдістің соңында ∑ жолындағы жүйенің шешімін аламыз, яғни:
Есептеуді Exсel бағдарламасынның көмегімен жүргізуді қарастырайық.
B2, D2, F2 жол ұяшықтарында бастапқы
Сурет 7 Релаксация әдісі
Релаксация әдісінің паскаль тіліндегі бағдарламасы
program Relaks;
const n=3;m=4;
type arr=array[1..n,1..m] of real;
var max,r1,r2,r3,r1sum,r2sum,r3sum:real;
a:arr;
i,j,k:integer;
Procedure Wwod(var x:arr);
begin Writeln('Massiv elementterin engiz');
for i:=1 to n do
for j:=1 to m do
Readln(x[i,j]);
end;
Procedure Wywod(var x:arr);
begin
for i:=1 to n do
begin for j:=1 to m do
Write(x[i,j]:6:2);Writeln; end;
end;
Procedure BasHadam;
var z:real;
begin
for i:=1 to n do
begin z:=a[i,i];
for j:=1 to m do
a[i,j]:=a[i,j]/(-z);end;
end;
procedure Maxi(var l1,l2,l3:real);
begin
if l1


Скачать


zharar.kz