Пример выполнения работы на ЭВМ в обычной формулировке

Варианты задания.

Исходная СЛАУ

,

где  – номер факультета;  – номер группы;  – номер студента по журналу.

 

Не выполняется условие диагонального преобладания для 1-го и 2-го уранений. Их перестановка позволяет выполнить это условие:

 

Для определения точности приближения воспользуемся нормой вектора

.

Замечание. При вычислении нормы вектора используется стандартная функция norm, которая определена для векторов  как

, ,

,

,

.

Таким образом, для вычисления  следует использовать обращение к функции norm при , т.е. .

 

Текст М-файла (обычная формулировка)

eps=1e-4;kmax=100; K=input('введите номер факультета K='); G=input('введите номер группы G='); S=input('введите номер студента S='); A=[4 -1 1;1 5 1;S G 2*(S+G+K)] b=[S-G+4*K-2;S-G+K+10;2*((S-G)*(S+G+K)+G)+K*S] n=size(A); % метод простой итерации x=zeros(size(b)); for k=1:kmax h=b; for i=1:n    for j=1:n        if j~=i            h(i)=h(i)-A(i,j)*x(j);        end    end    h(i)=h(i)/A(i,i); end zk=norm(h-x,1); x=h; if zk<eps     break end end fprintf('\n метод простой итерации') fprintf('\n количество итераций k=%d',k) fprintf('\n точность решения zk=%f8',zk) fprintf('\n решение СЛАУ x: \n'), disp(x') % метод Зейделя x=zeros(size(b)); for k=1:kmax h=x; for i=1:n    s=b(i);    for j=1:n        if j~=i            s=s-A(i,j)*x(j);        end    end    x(i)=s/A(i,i); end zk=norm(h-x,1); if zk<eps    break end end fprintf('\n метод Зейделя') fprintf('\n количество итераций k=%d',k) fprintf('\n точность решения zk=%f8',zk) fprintf('\n решение СЛАУ x: \n'), disp(x')    

 

Результаты счета для K=1, G=3, S=12

введите номер факультета K=1

введите номер группы G=3

введите номер студента S=12

A =

4 -1 1

1 5 1

12 3 32

b =

11

20

306

 

 метод простой итерации

 количество итераций k=11

 точность решения zk=0.0000718

 решение СЛАУ x:

1.0000 2.0000 9.0000

 

 метод Зейделя

 количество итераций k=8

 точность решения zk=0.0000868

 решение СЛАУ x:

1.0000 2.0000 9.0000

 

Пример ручного счета в матричной формулировке.

Рассмотрим решение СЛАУ из п. 2.3.4:

Общая схема пересчета

,    ,

где

,

            – невязка

             – окончание счета.

 

,

 

 

 

Для рассматриваемого примера эти компоненты итерационных схем имеют вид

4 1 1

A = 1 6 -1

1 2 5

9

b = 10

20

4 0 0

D = 0 6 0

0 0 5

    0.2500 0    0

D-1 =    0 0.1667  0

   0  0      0.2000

4 0 0

L = 1 6 0

1 2 5

    0.2500  0    0

L-1 = -0.0417 0.1667       0

   -0.0333 -0.0667 0.2000

 

Метод простой итерации Метод Зейделя
k = 0 v0 = -9 -10 -20 h0 = -2.2500 -1.6667 -4.0000 x1 = 2.2500 1.6667 4.0000 z0 = 4 k = 1 v1 = 5.6667 -1.7500 5.5833 h1 = 1.4167 -0.2917 1.1167 x2 = 0.8333 1.9583 2.8833 z1 = 1.4167 k = 2 v2 = -0.8250 -0.3000 -0.8333 h2 = -0.2062 -0.0500 -0.1667 x3 = 1.0396 2.0083 3.0500 z2 = 0.2062   k = 0 v0 = -9 -10 -20 h0 = -2.2500 -1.2917 -3.0333 x1 = 2.2500 1.2917 3.0333 z0 = 3.0333 k = 1 v1 = 4.3250 -3.0333     0 h1 = 1.0812 -0.6858 0.0581 x2 = 1.1688 1.9774 2.9753 z1 = 1.0812 k = 2 v2 = 0.6277 0.0581 -0.0000 h2 = 0.1569 -0.0165 -0.0248 x3 = 1.0118 1.9939 3.0001 z2 = 0.1569  

 

 




double arrow
Сейчас читают про: