Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы (методичка) .doc
Скачиваний:
15
Добавлен:
17.11.2019
Размер:
2.82 Mб
Скачать

Пример выполнения заданий

  1. Решение системы методом простой итерации.

Необходимо привести заданную систему к виду, пригодному для применения метода итераций и метода Зейделя. Найти приближённое решение системы с помощью метода простой итерации. Вычисления прекратить при выполнении неравенств

( ).

Дана система:

  1. ;

  2. ; (5.5)

  3. .

Система не содержит уравнений с коэффициентами, модули которых больше суммы модулей остальных коэффициентов уравнений. Путём элементарных преобразований приводим заданную систему к такому виду:

(2)+(3) ;

(2)-(1) ; (5.6)

(3)-(1) .

Перед каждым уравнением системы (5.6) указано, каким способом получено каждое уравнение этой системы из уравнений исходной системы (5.5).

Решим первое уравнение системы (5.6) относительно , второе – относительно , третье – относительно :

; ; (5.7)

.

Методы простой итерации и Зейделя применимы для решения системы (5.7). Находим приближённое решение системы методом простой итерации. Возьмём в качестве нулевого приближения столбец свободных членов:

; ; .

Подставляя , , в правую часть системы (5.7), получаем , , и т.д. Вычисления заносим в таблицу:

0,7504

-0,4004

1,3077

0 ,9951

-0,9159

1,7378

1,0707

-1,0860

1,9505

1,1871

-1,1800

2,0105

1,2094

-1,1857

2,0842

1,2207

-1,2191

2,0970

1,2274

-1,2233

2,1068

Расчеты можно закончить, так как выполняются следующие неравенства:

;

;

.

Решение системы методом простой итерации таково:

;

;

.

Пример взят из пособия С.В. Михайленко «Прикладная математика» [4].

  1. Пример расчета в пакете mathcad.

Функция iter для приведенной системы из n линейных уравнений находит методом простой итерации вектор решений X1. В программном блоке используется В – вектор свободных членов для исходной системы, А – приведенная матрица коэффициентов, – точность, k: – счетчик количества итераций:

  1. Программная реализация метода простой итерации для решения слау в пакете matlab.

Входные параметры: U – расширенная матрица коэффициентов, eps – требуемая точность решения.

Function res = Jakobi(U,eps);

%проверка 1

[n, m] = size(U);

if (n ~= m-1)

error ('Неверно задана система');

end;

%приведение системы к диагонально доминирующему виду

for j=1:m

for i=1:n

U1(i,j)=-U(i,j)/U(i,i);

end

end

U=U1;

%матрица А

A=U(1:n,1:m-1);

for i=1:n

A(i,i)=0;

end

%матрица B

B=-U(1:n,m);

%====================================================

%проверка 2

if rank(A) ~= rank(U)

error('Система не совместна');

end;

%вывод матриц

A

B

%сумма по строкам

norm1=zeros(n,1);

k=1;

for i=1:n

for j=1:m-1

norm1(k)=norm1(k)+abs(A(i,j));

end

if k<4

k=k+1;

end;

end

%матрица сумм по строкам

norm1;

%первая норма по строкам

max_norm1=max(norm1);

%сумма по столбцам

k=1;

norm2=zeros(n,1);

for j=1:m-1

for i=1:n

norm2(k)=norm2(k)+abs(A(i,j));

end

if k<4

k=k+1;

end

end

%матрица сумм по строкам

norm2;

%вторая норма по строкам

max_norm2=max(norm2);

%нахождение третьей нормы

%нахождение суммы элементов матрицы А

sum=0;

for i=1:n

for j=1:m-1

sum=sum+A(i,j)*A(i,j);

end

end

% третья норма

max_norm3=sqrt(sum);

%вывод значений норм матрицы А

max_norm1

max_norm2

max_norm3

%===================================================

%проверка условия сходимости метода итераций

if ( (max_norm1>1) && (max_norm2>1) && (max_norm3>1))

error('Введенная матрица не является диагонально преобладающей')

end;

%====================================================

%итерационный процесс

k=0;

X0=zeros(n,1);

X0=B;

X1=zeros(n,1);

for i=[1:n]

%нахождение суммы для Х1(i)

sum=0;

for j=[1:m-1]

sum = sum + ( A(i,j) * X0(j) );

end

X1(i)=sum + B(i);

end

while ( abs( X0(i) - X1(i) ) > eps )

X0=X1;

for i=[1:n]

%нахождение суммы для Х1(i)

sum=0;

for j=[1:m-1]

sum = sum + ( A(i,j) * X0(j) );

end

X1(i)=sum + B(i);

end

k=k+1;

end

%====================================================

%вывод вектора решений

X1

%вывод числа итераций для выполненияусловия точности

k

%=====================================================

return

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