MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Математика -> Обусловленность матрицы

Название:Обусловленность матрицы
Просмотров:324
Раздел:Математика
Ссылка:Скачать(116 KB)
Описание: Министерство образования и науки российской федерации Федеральное агентство по образованию Новосибирский государственный технический университет Бердский филиал Расчетно-графич

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

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

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

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

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

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

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

Выполнила:

Студентка 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 <iostream.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <windows.h>

#include <dos.h>

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 <iostream.h>

#include <stdio.h>

#include <windows.h>

#include <math.h>

#include <conio.h>

#include <dos.h>

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<sz; i++)

{

         for( j=0;j<sz; j++)

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

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

   cout<<endl;

}

 system("pause");

}

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

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

{

int i,j,k;

 for (k=0;k<sz;k++)

         {

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

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

                                      {

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

                                      for(j=k;j<sz;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<sz;i++)

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

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


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

                            for(int j=k+1;j<sz;j++)

                                      {

                                               for(int i=k;i<sz;i++)

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

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

                   for(int i=k;i<sz;i++)

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

               F[j]-=b[sz];

                                      }

         }

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

         {

                   par=0;

                   for     (j=0;j<sz-1-i;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<sz;i++)  printf("\nX[%d]= %.5f \n\r",i,X[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

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





Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  
 
     

Вечно с вами © MaterStudiorum.ru