Контрольная 1 Никитина Дарья ПИН 31Д
.docx
Контрольная работа 1
Вариант 1
никитина дарья пин 31д
Код m-файла (метод простой итерации):
n1=input('Введите номер группы: ');
n2=input('Bведите ваш номер в списке группы:');
n=n1+n2;
%rand('normal');
rand('seed',n);
A=rand(7);
b=rand(7,1);
Au=triu(A);
A1=tril(A);
Ad=diag(diag(A));
su=sum(sum(abs(Au)));
sl=sum(sum(abs(A1)));
Su=sum(abs(Au));
S1=sum(abs(A1));
sigma=5;
O=ones(7);
Ou=triu(O);
S6=diag(sigma*(Su./S1));
At=sigma*((A1+ Ou)./(Au'+Ou));
neo=rem(n2,2);
mode=rem(n2,3);
if (mode==0) A1=(sigma*su/sl)*A1; end
if (mode==1) A1=S6*A1; end
if (mode==2) A1=At.*A1; end
A=A1+Ad+Au;
ma=max(max(abs(A)));
if (ma>1000) A=0.08*A; end
A=0.5*A+2.75*diag(diag(A));
disp(' Матрица системы: ');
A
disp('Правая часть системы:');
b
P=size(A);
n=P(1);
for i=1:n
d=A(i,i);
bi(i)=b(i)/d;
for j=1:n
AI(i,j)=-A(i,j)/d;
AI(i,i)=0;
end
end
bi=bi';
EPS=0.0001;
X=zeros(n,1);
Y=X;
X=bi+AI*X;
P=Y-X;
I=1;
v=norm(P,inf);
while v>EPS
I=I+1;
Y=X;
X=bi+AI*X;
P=Y-X;
v=norm(P,inf);
end
disp('ОТВЕТ:');
X
disp('Число итераций:');
I
disp('ПРОВЕРКА, точное решение:');
A^(-1)*b
Результат выполнения:
>> ITER_PROST
Введите номер группы: 31
Bведите ваш номер в списке группы:1
Матрица системы:
A =
3.4372 0.2494 0.0874 0.3836 0.4416 0.0319 0.3524
0.8846 11.6850 0.4099 0.2723 0.1288 0.1190 0.3480
0.2909 0.1041 4.2038 0.3779 0.0752 0.3817 0.2410
0.1285 0.4613 0.8264 15.6365 0.0717 0.0176 0.1724
2.8812 0.2742 2.9513 2.4291 22.8472 0.3620 0.0062
8.5297 7.8185 4.0727 4.3485 3.6773 8.0192 0.1621
19.8479 27.0992 15.2508 12.8309 16.6498 8.3144 47.4059
Правая часть системы:
b =
0.0522
0.0564
0.1264
0.1291
0.4300
0.2699
0.9084
ОТВЕТ:
X =
0.0121
0.0027
0.0290
0.0065
0.0129
-0.0061
-0.0021
Число итераций:
I =
14
ПРОВЕРКА, точное решение:
ans =
0.0121
0.0027
0.0290
0.0065
0.0129
-0.0060
-0.0020
>>
Код m-файла (метод Зейделя):
n1=input('Введите номер группы: ');
n2=input('Bведите ваш номер в списке группы:');
n=n1+n2;
%rand('normal');
rand('seed',n);
A=rand(7);
b=rand(7,1);
Au=triu(A);
A1=tril(A);
Ad=diag(diag(A));
su=sum(sum(abs(Au)));
sl=sum(sum(abs(A1)));
Su=sum(abs(Au));
S1=sum(abs(A1));
sigma=5;
O=ones(7);
Ou=triu(O);
S6=diag(sigma*(Su./S1));
At=sigma*((A1+ Ou)./(Au'+Ou));
neo=rem(n2,2);
mode=rem(n2,3);
if (mode==0) A1=(sigma*su/sl)*A1; end
if (mode==1) A1=S6*A1; end
if (mode==2) A1=At.*A1; end
A=A1+Ad+Au;
ma=max(max(abs(A)));
if (ma>1000) A=0.08*A; end
A=0.5*A+2.75*diag(diag(A));
disp(' Матрица системы: ');
A
disp('Правая часть системы:');
b
P=size(A);
n=P(1);
for i=1:n
d=A(i,i);
bi(i)=b(i)/d;
for j=1:n
AI(i,j)=-A(i,j)/d;
AI(i,i)=0;
end
end
bi=bi';
EPS=0.0001;
X=zeros(n,1);
Y=X;
X(1)=bi(1) +AI(1,2)*X(2)+AI(1,3)*X(3)+AI(1,4)*X(4)+AI(1,5)*X(5)+AI(1,6)*X(6)+AI(1,7)*X(7);
X(2)=bi(2)+AI(2,1)*X(1) +AI(2,3)*X(3)+AI(2,4)*X(4)+AI(2,5)*X(5)+AI(2,6)*X(6)+AI(2,7)*X(7);
X(3)=bi(3)+AI(3,1)*X(1)+AI(3,2)*X(2) +AI(3,4)*X(4)+AI(3,5)*X(5)+AI(3,6)*X(6)+AI(3,7)*X(7);
X(4)=bi(4)+AI(4,1)*X(1)+AI(4,2)*X(2)+AI(4,3)*X(3) +AI(4,5)*X(5)+AI(4,6)*X(6)+AI(4,7)*X(7);
X(5)=bi(5)+AI(5,1)*X(1)+AI(5,2)*X(2)+AI(5,3)*X(3)+AI(5,4)*X(4) +AI(5,6)*X(6)+AI(5,7)*X(7);
X(6)=bi(6)+AI(6,1)*X(1)+AI(6,2)*X(2)+AI(6,3)*X(3)+AI(6,4)*X(4)+AI(6,5)*X(5) +AI(6,7)*X(7);
X(7)=bi(7)+AI(7,1)*X(1)+AI(7,2)*X(2)+AI(7,3)*X(3)+AI(7,4)*X(4)+AI(7,5)*X(5)+AI(7,6)*X(6);
P=Y-X;
I=1;
v=norm(P,inf);
while v>EPS
I=I+1;
Y=X;
X(1)=bi(1) +AI(1,2)*X(2)+AI(1,3)*X(3)+AI(1,4)*X(4)+AI(1,5)*X(5)+AI(1,6)*X(6)+AI(1,7)*X(7);
X(2)=bi(2)+AI(2,1)*X(1) +AI(2,3)*X(3)+AI(2,4)*X(4)+AI(2,5)*X(5)+AI(2,6)*X(6)+AI(2,7)*X(7);
X(3)=bi(3)+AI(3,1)*X(1)+AI(3,2)*X(2) +AI(3,4)*X(4)+AI(3,5)*X(5)+AI(3,6)*X(6)+AI(3,7)*X(7);
X(4)=bi(4)+AI(4,1)*X(1)+AI(4,2)*X(2)+AI(4,3)*X(3) +AI(4,5)*X(5)+AI(4,6)*X(6)+AI(4,7)*X(7);
X(5)=bi(5)+AI(5,1)*X(1)+AI(5,2)*X(2)+AI(5,3)*X(3)+AI(5,4)*X(4) +AI(5,6)*X(6)+AI(5,7)*X(7);
X(6)=bi(6)+AI(6,1)*X(1)+AI(6,2)*X(2)+AI(6,3)*X(3)+AI(6,4)*X(4)+AI(6,5)*X(5) +AI(6,7)*X(7);
X(7)=bi(7)+AI(7,1)*X(1)+AI(7,2)*X(2)+AI(7,3)*X(3)+AI(7,4)*X(4)+AI(7,5)*X(5)+AI(7,6)*X(6);
P=Y-X;
v=norm(P,inf);
end
disp('ОТВЕТ:');
X
disp('Число итераций:');
I
disp('ПРОВЕРКА, точное решение:');
A^(-1)*b
Результат выполнения:
>> ZEIDEL_ITER
Введите номер группы: 31
Bведите ваш номер в списке группы:1
Матрица системы:
A =
3.4372 0.2494 0.0874 0.3836 0.4416 0.0319 0.3524
0.8846 11.6850 0.4099 0.2723 0.1288 0.1190 0.3480
0.2909 0.1041 4.2038 0.3779 0.0752 0.3817 0.2410
0.1285 0.4613 0.8264 15.6365 0.0717 0.0176 0.1724
2.8812 0.2742 2.9513 2.4291 22.8472 0.3620 0.0062
8.5297 7.8185 4.0727 4.3485 3.6773 8.0192 0.1621
19.8479 27.0992 15.2508 12.8309 16.6498 8.3144 47.4059
Правая часть системы:
b =
0.0522
0.0564
0.1264
0.1291
0.4300
0.2699
0.9084
ОТВЕТ:
X =
0.0121
0.0027
0.0290
0.0065
0.0129
-0.0060
-0.0020
Число итераций:
I =
4
ПРОВЕРКА, точное решение:
ans =
0.0121
0.0027
0.0290
0.0065
0.0129
-0.0060
-0.0020
>>