Обусловленность матрицы

Министерство образования и науки российской федерации

Федеральное агентство по образованию

Новосибирский государственный технический университет

Бердский филиал

Расчетно-графическая работа

по курсу: ВлВычислительная математикаВ»

Выполнила:

Студентка II курса

Булгакова Н.

Группы ВТБ-81

Проверил:

Преподаватель

Голубева Елена Николаевна

г. 362964Бердск,

2010


Задание 1 Обусловленность матрицы

Задание: Дана системаВа уравнений ax=b порядка n. Исследовать зависимость погрешности решения x от погрешностей правой части системы b.

погрешность уравнение координата интерполяция дифференциальный

1. Задать матрицу системы A и вектор правой части b, найти решение x системы Ax=b с помощью метода Гаусса.

2. Принимая решение x, полученное в п.1, за точное,Ва вычислить вектор

относительных погрешностей решений Васистем ,где компоненты векторов Вавычисляются по формулам:

(-произвольная величина погрешности).

3. На основе вычисленного вектора dВа построить гистограмму. По гистограмме определить компоненту Ва, вектора b, которая оказывает наибольшее влияние на погрешность решения.

4. Вычислить число обусловленности cond(A) матрицы A.

5. Оценить теоретически погрешность решения Вапо формуле:


Сравнить значение Васо значением практической погрешности ВаОбъяснить полученные результаты.

Решение

1. Задаём матрицу А.

Для заполнения используем код программы zapolnenie.cpp (см. приложение)

#include

#include

#include

#include

#include

#include

main()

{

ВаВаВаВаВаВаВаВа double matr[100][100];

ВаВаВаВаВаВаВаВа for (int i=1;i<7;i++)

{

ВаВаВаВаВаВаВаВаВаВаВа for (int j=1;j<7;j++)

ВаВаВаВаВаВаВаВа ВаВа matr[i][j]= 1000/(3*(pow(0.1*21*i*j,2))+pow(0.1*21*i*j,3));

}

ВаВаВаВаВаВаВаВа for ( int j=1;j<7;j++)

{

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа for ( int i=1;i<7;i++)

printf("%10.4f",matr[j][i]);

printf("\n");

}

ВаВа getchar();

}

Результат работы zapolnenie:

Найдем решение полученной матрицы используя программу gauss.cpp (см приложение)

ИсходныйВа кодВаВа gauss.cpp:

#include

#include

#include

#include

#include

#include

const int sz=6;


double A[sz][sz]={

ВаВаВаВаВаВаВаВаВаВаВа {44.4622,ВаВаВа 7.8735,ВаВаВа 2.7092,ВаВаВа 1.2432,ВаВаВа 0.6719,ВаВаВаВа 0.4038},

ВаВаВаВаВаВаВаВаВаВаВаВа {7.8735,ВаВаВа 1.2432,ВаВаВа 0.4038,ВаВаВа 0.1789,ВаВаВа 0.0945,ВаВаВаВа 0.0558},

ВаВаВаВаВаВаВаВаВаВаВаВа {2.7092,ВаВаВа 0.4038,ВаВаВа 0.1278,ВаВаВа 0.0558,ВаВаВа 0.0292,ВаВаВаВа 0.0172},

ВаВаВаВаВаВаВаВаВаВаВаВа {1.2432,ВаВаВа 0.1789,ВаВаВа 0.0558,ВаВаВа 0.0242,ВаВаВа 0.0126,ВаВаВаВа 0.0074},

ВаВаВаВаВаВаВаВаВаВаВаВа {0.6719,ВаВаВа 0.0945,ВаВаВа 0.0292,ВаВаВа 0.0126,ВаВаВа 0.0065,ВаВаВаВа 0.0038},

ВаВаВаВаВаВаВаВаВаВаВаВа {0.4038,ВаВаВа 0.0558,ВаВаВа 0.0172,ВаВаВа 0.0074,ВаВаВа 0.0038,ВаВаВаВа 0.0022}

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа ВаВа }ВаВаВа ;

doubleВа F[sz]={21.00,21.00,21.00,21.00,21.00,21.00} ;

doubleВа X[sz];

doubleВа b[sz+1],par;

//ВаВа функция вывода матрицы на экран

void Viv(double A[sz][sz])

{

int i,j;

for( i=0;i

{

ВаВаВаВаВаВаВаВа for( j=0;j

ВаВа printf(" %.4fВа ",A[i][j]); //вывод на экрам исходной матрицы с заданным количеством знаков после запятой (5f)

ВаВа printf(" %.4fВа ",F[i]);

ВаВа cout<

}

Ваsystem("pause");

}

///////////////Ва функция решения методом ГауссаВа

void Resh(double A[sz][sz],double F[sz],double X[sz])

{

int i,j,k;

Ваfor (k=0;k

ВаВаВаВаВаВаВаВа {

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа // проверяем первый элемент

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа if (A[k][k]==0) //проверка на неноль

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа {

ВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа for (i=k;A[i][k]==0;i++);ВаВаВаВаВа // находим ненулевой 1й элемент

ВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа for(j=k;j

ВаВаВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа {

ВаВаВаВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа par=A[k][j];ВаВаВа //смена строк в матрице

ВаВаВаВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа A[k][j]=A[i][j]; //путем записи в par и извлечения из него

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа A[i][j]=par;

ВаВаВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа }

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа par=F[k]; // смена строкВа в ответе

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа F[k]=F[i];

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа F[i]=par;

ВаВа ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа }

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа // получаем 1й элемент единицуВаВа (делим всю первую строку на a1,1Ва )

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа par=A[k][k]; //пишем в par первый элемент

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа for(int i=k;i

ВаВаВаВаВаВаВаВа A[k][i]=A[k][i]/par;

ВаВаВаВаВаВаВаВа F[k]=F[k]/par;ВаВаВаВаВа // делим ответ на 1й


ВаВаВаВаВа // нулевой столбец

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа for(int j=k+1;j

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа {

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа for(int i=k;i

ВаВаВаВаВаВаВаВаВаВаВаВаВаВа b[i]=A[k][i]*A[j][k];

ВаВаВаВаВаВаВаВаВаВаВаВаВаВа b[sz]= F[k]*A[j][k];

ВаВаВаВаВаВаВаВаВаВаВаВа ВаВаВаВаВа for(int i=k;i

ВаВаВаВаВаВаВаВаВаВаВаВаВаВа A[j][i]-=b[i];

ВаВаВаВаВаВаВаВаВаВаВаВаВаВа F[j]-=b[sz];

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа }

ВаВаВаВаВаВаВаВа }

Ваfor(i=sz-1;i>=0;i--) //обратка

ВаВаВаВаВаВаВаВа {

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа par=0;

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа forВаВаВаВа (j=0;j

ВаВаВаВаВа par+=A[i][sz-j-1]*X[sz-1-j];

ВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа X[i]=F[i]-par;

ВаВаВаВаВаВаВаВа }

}

//функция - точка входа в программу

void main()

{

Ва Viv(A);Ва ВаВаВаВаВаВаВаВаВаВаВа // выводим матрицу

Ва Resh(A,F,X);ВаВа // решаем матрицу A методом Гаусса

Ва for(int i=0;i

Ваsystem("pause");

}

Результат работы gauss:

====================================================

точное

====================================================

44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 21.0000

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 21.0000

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 21.0000

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 21.0000

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038ВаВа 21.0000

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022ВаВа 21.0000

Для продолжения нажмите любую клавишу . . .

X[0]= 872.15582

X[1]= -16329.24792

X[2]= 10011.59140

X[3]= 111650.80126

X[4]= -26697.87796

X[5]= -144076.29603

Для продолжения нажмите любую клавишу . . .

======================================================


2. Вычисляем векторВа d.

Величина погрешности, вносимой в правую часть системы тАУВа 1%.

Сформируем векторы b (по заданному закону)

b1b2b3b4b5b6
20,792121212121
2120,7921212121
212120,79212121
21212120,792121
2121212120,7921
212121212120,79

Для каждого из них найдем решение матрицы, используя gauss

С погрешностью в тАж. компоненте

======================================================

в первой

======================================================

Ва44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 20.7900

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 21.0000

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 21.0000

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 21.0000

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038ВаВа 21.0000

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022ВаВа 21.0000

Для продолжения нажмите любую клавишу . . .

X[0]= 872.07580

X[1]= -16327.25169


X[2]= 10005.24500

X[3]= 111652.84781

X[4]= -26679.82743

X[5]= -144100.68447

Для продолжения нажмите любую клавишу . . .

======================================================

во второй

======================================================

Ва44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 21.0000

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 20.7900

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 21.0000

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 21.0000

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038ВаВа 21.0000

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022ВаВа 21.0000

Для продолжения нажмите любую клавишу . . .

X[0]= 874.15205

X[1]= -16398.19981

X[2]= 10378.69292

X[3]= 111250.49388

X[4]= -27254.14851


X[5]= -143256.57148

Для продолжения нажмите любую клавишу . . .

======================================================

в третьей

======================================================

Ва44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 21.0000

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 21.0000

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 20.7900

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 21.0000

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038Ва Ва21.0000

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022ВаВа 21.0000

Для продолжения нажмите любую клавишу . . .

X[0]= 865.80942

X[1]= -15962.14640

X[2]= 7652.50187

X[3]= 114149.98680

X[4]= -23271.06118

X[5]= -148104.07985

Для продолжения нажмите любую клавишу . . .

======================================================

в четвёртой

======================================================

Ва44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 21.0000

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 21.0000

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 21.0000

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 20.7900

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038ВаВа 21.0000

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022Ва Ва21.0000

Для продолжения нажмите любую клавишу . . .

X[0]= 874.20237

X[1]= -16729.55530

X[2]= 12510.77695

X[3]= 111600.37766

X[4]= -35532.05319

X[5]= -138409.12992

Для продолжения нажмите любую клавишу . . .

======================================================

в пятой

======================================================

Ва44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 21.0000

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 21.0000

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 21.0000

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 21.0000

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038ВаВа 20.7900

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022ВаВа 21.0000

Для продолжения нажмите любую клавишу . . .


X[0]= 890.20635

X[1]= -16885.51847

X[2]= 13438.40819

X[3]= 102816.62603

X[4]= -16375.93145

X[5]= -148185.68530

Для продолжения нажмите любую клавишу . . .

======================================================

в шестой

=====================================================

Ва44.4622ВаВа 7.8735ВаВа 2.7092ВаВа 1.2432ВаВа 0.6719ВаВа 0.4038ВаВа 21.0000

Ва7.8735ВаВа 1.2432ВаВа 0.4038ВаВа 0.1789ВаВа 0.0945ВаВа 0.0558ВаВа 21.0000

Ва2.7092ВаВа 0.4038ВаВа 0.1278ВаВа 0.0558ВаВа 0.0292ВаВа 0.0172ВаВа 21.0000

Ва1.2432ВаВа 0.1789ВаВа 0.0558ВаВа 0.0242ВаВа 0.0126ВаВа 0.0074ВаВа 21.0000

Ва0.6719ВаВа 0.0945ВаВа 0.0292ВаВа 0.0126ВаВа 0.0065ВаВа 0.0038ВаВа 21.0000

Ва0.4038ВаВа 0.0558ВаВа 0.0172ВаВа 0.0074ВаВа 0.0038ВаВа 0.0022ВаВа 20.7900

Для продолжения нажмите любую клавишу . . .

X[0]= 847.76738

X[1]= -15509.52337

X[2]= 5983.80758


X[3]= 117317.96737

X[4]= -30807.26724

X[5]= -140960.86219

Для продолжения нажмите любую клавишу . . .

Вместе с этим смотрят:


РЖнварiантнi пiдпростори. Власнi вектори i власнi значення лiнiйного оператора


РЖнтерполювання функцiй


Автокорреляционная функция. Примеры расчётов


Актуальные проблемы квантовой механики


Алгебра и алгебраические системы