Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Метод Зейделя. Пусть требуется решить систему уравнений (3.1):





Пусть требуется решить систему уравнений (3.1):

 

(3.25)

 

Выразим из первого уравнения переменную x 1, из второго — x 2, и т.д.:

Пусть k -е приближение к решению обозначено так . Подставим его в правую часть полученной системы и выразим следующее приближение . В отличие от метода итераций, метод Зейделя использует при вычислении уже найденные компоненты вектора x k +1.

Расчетные формулы метода Зейделя можно записать в виде:

 

(3.26)

 

Теорема 3.3 (достаточные условия сходимости [1]). Пусть при всех i для коэффициентов системы уравнений (3.25) выполняются условия

 

(3.27)

 

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

 

, (3.28)

 

где x * — точное решение системы (3.25).

Если матрица A удовлетворяет условию (3.27), то говорят, что A — матрица с диагональным преобладанием.

Пример 3.5. Решить систему уравнений методом итераций и методом Зейделя. Сравнить скорости сходимости методов.

 

Решение. Очевидно, матрица коэффициентов системы уравнений имеет диагональное преобладание. Выразим из каждого уравнения соответствующую переменную

 

и запишем расчетные формулы метода Зейделя

 

 

Введем в программе Excel обозначения в ячейках A 1: D 1, начальные значения в ячейках B 2: D 2 и формулы в ячейках B 3: D 3, как показано в таблице 3.4. Выделим диапазон B 3: D 3 и протянем маркер заполнения вниз до ячейки D 12. Для нумерации последовательных приближений выделим диапазон A 2: A 3 и протянем маркер заполнения вниз до ячейки A 12. Получим 10 последовательных приближений к решению.

Таблица 3.4

  A B C D E
  k X1 X2 X3 Погрешность
           
    =(5-2*C2-D2)/9 =(6+B3+D2)/7 =(-3-B3-C3)/9 =МАКС(ABS(B3-B2); ABS(C3-C2); ABS(D3-D2))

 

Результаты расчетов приведены в таблице 3.5. Как видим, есть сходимость процесса итераций, так как соответствующие компоненты векторов x 9 и x 10 содержат по 8 одинаковых значащих цифр, начиная слева направо. Норма разности || x 10x 9||1 = 3,92663E–10 < 0,000000001.

Таблица 3.5

  A B C D E
  k X1 X2 X3 Погрешность
           
    0,222222222 1,031746032 -0,472663139 1,472663139
    0,378796786 0,843733378 -0,469170018 0,188012654
    0,420189251 0,850145605 -0,474481651 0,041392465
    0,419354493 0,849267549 -0,474291338 0,000878056
    0,419528471 0,84931959 -0,474316451 0,000173978
    0,419519697 0,849314749 -0,474314938 8,77441E-06
    0,419520604 0,849315095 -0,474315078 9,07706E-07
    0,419520543 0,849315066 -0,474315068 6,13672E-08
    0,419520548 0,849315069 -0,474315069 5,25818E-09
    0,419520548 0,849315068 -0,474315068 3,92663E-10

 

Приведем результаты решения системы методом итераций. Если в таблице 3.4 формулы в третьей строке заменить на формулы метода итераций, как показано в ячейках A 3: D 3 таблицы 3.6, затем выделить A 3: D 3 и скопировать вниз маркером заполнения до строки 12, то получим таблицу 3.7.

Таблица 3.6

  A B C D E
  k X1 X2 X3 Погрешность
           
    =(5-2*C2-D2)/9 =(6+B2+D2)/7 =(-3-B2-C2)/9 =МАКС(ABS(B3-B2); ABS(C3-C2); ABS(D3-D2))

 

Сравнивая таблицы 3.5 и 3.7, мы видим, что метод Зейделя имеет более высокую скорость сходимости, чем метод итераций. Например, на шаге k = 4, метод итераций дает погрешность 0,012514, а метод Зейделя имеет на этом же шаге погрешность 0,000878056.

Таблица 3.7

  A B C D E
  k X1 X2 X3 Погрешность
           
    0,222222 1,142857 -0,55556 1,555556
    0,363316 0,809524 -0,48501 0,333333
    0,429551 0,839758 -0,46365 0,066236
    0,420459 0,852272 -0,47437 0,012514
    0,418869 0,849442 -0,47475 0,00283
    0,419541 0,84916 -0,47426 0,000671
    0,419548 0,849326 -0,4743 0,000166
    0,419516 0,849321 -0,47432 3,21E-05
    0,41952 0,849314 -0,47432 7,35E-06
    0,419521 0,849315 -0,47431 1,17E-06

 

 

Теорема 3.4 (достаточные условия сходимости [1]).Пусть матрица A системы (3.1) — вещественная, симметричная и положительно определенная. Тогда метод Зейделя сходится.

Пример 3.6. Решить методом Зейделя систему уравнений

 

 

Решение. Матрица системы симметрична, но не имеет диагонального преобладания.Применяя критерий Сильвестра (см. ниже п. 3.6, теорема 3.8), покажем, что матрица системы положительно определена:

 

 

Согласно теореме 3.4 метод Зейделя для данной системы сходится. Выразим из каждого уравнения соответствующую переменную и запишем формулы метода Зейделя:

 

 

Аналогично примеру 3.5 по данным расчетным формулам можно вычислить решение системы линейных уравнений.

Составим программу на языке C ++ для решения системы уравнений методом Зейделя (3.26):

 

#include <except.h>

#include <iostream.h>

#include <math.h>

int Zeidel(long double **a, long double *b, long double *x,

long double eps, int k_max, const int n);

int main(){

long double **a; long double *b, *x, eps; int i,j,n,k_max;

cout <<"\n input n = "; cin >> n;

cout <<"\n input eps = "; cin >> eps;

cout <<"\n input k_max = "; cin >> k_max;

try {

a= new long double*[n]; for(i=0;i<n;i++) a[i]=new long double[n];

b= new long double[n]; x= new long double[n];

}

catch (xalloc){cout <<"\nCould not allocate\n"; exit(-1);}

cout <<"\n input matrix a \n";

for (i=0; i<n; i++)for (j=0; j<n; j++)cin >> a[i][j];

cout <<"\n input vector b\n";

for (i=0; i<n; i++)cin >> b[i];

cout << "\n matrix a: ";

for (i=0; i<n; i++){cout << "\n"; for (j=0; j<n; j++) cout <<" "<< a[i][j];}

cout << "\n vector b: ";

for (i=0; i<n; i++)cout << "\n " << b[i];

Zeidel(a, b, x,eps,k_max, n);

cout << "\n vector x: ";

for (i=0; i<n; i++)cout << "\n x[" << i <<"] = " << x[i];

cout << "\n Press Key and Enter to continue";

cin >> i; // for pause

for(i=0;i<n;i++)delete[] a[i];

delete a;

delete[] b;

delete[] x;

return 0;

}//end main

int Zeidel(long double **a, long double *b, long double *x,

long double eps, int k_max, const int n){

int i, j, m; long double *x1, xerr, s;

try {x1 = new long double[n];}

catch (xalloc){cout <<"\nCould not allocate\n"; exit(-1);}

for (i = 0; i < n; i++)x1[i] = x[i];

for (m = 0; m <= k_max; m++) {// m

for (i = 0; i < n; i++){ //i

s = b[i];

for (j = 0; j < n; j++) if(j!= i)s = s - a[i][j]*x1[j];

x1[i] = s / a[i][i];}//end i

xerr = 0;

for (i = 0; i < n; i++) xerr = xerr + (x1[i] - x[i])* (x1[i] - x[i]);

xerr = sqrt(xerr); for (i = 0; i < n; i++)x[i] = x1[i];

if(xerr < eps) break;

}// end m

delete[] x1;

return 0;

}// end iter

 

Найдем с помощью этой программы решение системы уравнений примера 3.4:

 

input n = 3

input eps = 0.0000001

input k_max = 10000

input matrix a

4 –2 0 –2 4 –2 0 –2 4

Input vector c

5 –6 –3

matrix a:

4 –2 0

–2 4 –2

0 –2 4

vector 5:

–6

–3

vector x:

x[0] = 4.84288e–08

x[1] = –2.5

x[2] = –2

Press Key and Enter to continue

 

Ответ: x = (0; –2,5; –2).







Дата добавления: 2015-08-12; просмотров: 1582. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия