Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Метод Гаусса с выбором главной переменной

Название: Метод Гаусса с выбором главной переменной
Раздел: Рефераты по информатике
Тип: реферат Добавлен 07:50:34 01 апреля 2011 Похожие работы
Просмотров: 7 Комментариев: 34 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Метод Гаусса с выбором главной переменной

( практическая работа по компьютерной алгебре )

Текст программы.

#include <fstream.h>

#include <math.h>

#include <conio.h>

#include <stdlib.h>

const num = 4;

int i,j,I,J;

int c[num+1];

long double x[num+1];

long double max;

long double A[num][num+1];

// -----------------------------------------------------------

void max_el(int sr, int st)

{ max = A[num+1-sr][num+2-st];

I = num+1-sr;

J = num+2-st;

for (i = num+1-sr ; i<=num ; i++)

{

for (j = num+2-st ; j<=num ; j++)

{

if (fabs(A[i][j]) > fabs(max))

{

max = A[i][j];

I = i;

J = j;

}

}

}

cout << "\n\n Max = " << max << " I=" << I<< " J=" << J;

}

// -----------------------------------------------------------

void print(int sr,int st)

{

cout << "\n";

int i,j;

for (i = num+1-sr ; i<=num ; i++)

{

for (j = num+2-st ; j<=num+1 ; j++)

{

if (A[i][j] < 0 ) gotoxy(12*j + j - 1,i+1);

else gotoxy(12*j + j,i+1);

cout << A[i][j];

}

}

}

// ------------------------------------------------------------------

void preob(int S)

{

int i,j;

long double temp;

for (j = S; j<=num+1; j++) A[S][j] = A[S][j]/max;

for (i = S + 1; i <= num; i++)

{

temp = A[i][S];

for (j = S; j<= num+1 ; j++) A[i][j] = A[i][j] - A[S][j]*temp;

}

}

// ------------------------------------------------------------------

void perestanovka(int sr,int st)

{

if (J != (num+1-sr))

{

for (i = 1; i<=num; i++) {

A[i][J] = A[i][J] + A[i][num+1-sr];

A[i][num+1-sr] = A[i][J] - A[i][num+1-sr];

A[i][J] = A[i][J] - A[i][num+1-sr];

}

c[J] = c[J] + c[num+1-sr];

c[num+1-sr] = c[J] - c[num+1-sr];

c[J] = c[J] - c[num+1-sr];

}

if (I != (num+2-st))

{

for (j = 1; j<=num+1; j++) {

A[I][j] = A[I][j] + A[num+2-st][j];

A[num+2-st][j] = A[I][j] - A[num+2-st][j];

A[I][j] = A[I][j] - A[num+2-st][j]; }

}

}

// ------------------------------------------------------------------

void otvet()

{

float temp;

for (i=num; i>=1; i--)

{

temp = A[i][num+1];

for(j = num; j > i; j--) temp = temp - A[i][j]*x[j];

x[i] = temp/A[i][i];

}

}

// ------------------------------------------------------------------

void interface()

{

clrscr();

print(num,num+1);

cout << "\n Массив перестановок столбцов ";

for (i = 1; i <= num ;i++) cout << " " << c[i];

}

// ------------------------------------------------------------------

void load_file()

{

char ch;

ifstream in("c:\\gauss\\mat.dat");

cout << "\n";

for (i = 1 ; i<=num ; i++)

{

c[i] = i;

while (ch != '|') in >> ch;

ch = 'q';

for (j = 1 ; j<=num+1 ; j++) in >> A[i][j];

}

}

// ------------------------------------------------------------------

void main()

{

clrscr();

load_file();

int g;

for(g = num+1; g >= 3; g--)

{

interface(); max_el(g-1,g); getch();

perestanovka(g-1,g); interface(); getch();

preob(num+2-g); interface(); getch();

}

clrscr();

print(num,num+1);

otvet();

print(num,num+1);

cout << "\n\n ";

long double X[num];

for (i=1; i<=num; i++) X[c[i]] = x[i];

for (i=1; i<=num; i++) cout << " X" << i << " = " << X[i];

getch();

}

Тестовые задания.

Задание №1 (найти неизвестные):

4.24x1 + 2.73x2 - 1.55x3 = 1.87

2.34x1 + 1.27x2 + 3.15x3 = 2.16

3.05x1 - 1.05x2 - 0.63x3 = -1.25

1.1 Результат выполнения программы:

x1 = - 0.025461 x2 = 0.915112 x3 = 0.335678

1.2 Расчёт погрешности вычисления:

4.24*(- 0.025461) + 2.73*0.915112 - 1.55*0.335678 = 1,87000022 погрешность: 2,2*10-7

2.34*(- 0.025461) + 1.27*0.915112 + 3.15*0.335678 = 2,1599992 погрешность: 8,0*10-7

3.05*(- 0.025461) - 1.05*0.915112 - 0.63*0.335678 = -1,25000079 погрешность: 7,9*10-7

средняя погрешность вычисления: 6,0*10-7

Задание №2 (найти неизвестные):

3.81x1 + 0.25x2 + 1.28x3 + (0.75+a)x4 = 4.21

2.25x1 + 1.32x2 + (4.5+a)x3 + 0.49x4 = 6.47+b

5.31x1 + (0.28+a) x2 + 0.98x3 + 1.04x4 = 2.38

(9.39+a)x1 + 2.45x2 + 3.35x3 + 2.28x4 = 10.48+b

a = (0,1,2,3,4) b = (0,1,2,3,4,5)

2.1 Таблица значений.

a

b

Ответы:

0

0

X1 = -12.660899

X2 = -16.107649

X3 = 5.273899

X4 = 66.299137

1

X1 = -12.132586

X2 = -14.858407

X3 = 5.186943

X4 = 63.347289

2

X1 = -11.604272

X2 = -13.609166

X3 = 5.099988

X4 = 60.39544

3

X1 = -11.075957

X2 = -12.359925

X3 = 5.013031

X4 = 57.443595

4

X1 = -10.547642

X2 = -11.110685

X3 = 4.926076

X4 = 54.491746

5

X1 = -10.019327

X2 = -9.861445

X3 = 4.839121

X4 = 51.539901

1

0

X1 = 13.959632

X2 = -39.106359

X3 = 7.324007

X4 = -27.756765

1

X1 = 16.668562

X2 = -46.672114

X3 = 8.73446

X4 = -33.605312

2

X1 = 19.377489

X2 = -54.237864

X3 = 10.144913

X4 = -39.453861

3

X1 = 22.086416

X2 = -61.803618

X3 = 11.555367

X4 = -45.30241

4

X1 = 24.795347

X2 = -69.369373

X3 = 12.96582

X4 = -51.150959

5

X1 = 27.504276

X2 = -76.935127

X3 = 14.376274

X4 = -56.999508

2

0

X1 = 1.033843

X2 = -1.696273

X3 = 0.997951

X4 = -0.211727

1

X1 = 1.191176

X2 = -2.016845

X3 = 1.183171

X4 = -0.486773

2

X1 = 1.348508

X2 = -2.337417

X3 = 1.36839

X4 = -0.761819

3

X1 = 1.505841

X2 = -2.657989

X3 = 1.55361

X4 = -1.036865

4

X1 = 1.663174

X2 = -2.978561

X3 = 1.73883

X4 = -1.311911

5

X1 = 1.820507

X2 = -3.299134

X3 = 1.92405

X4 = -1.586957

3

0

X1 = 0.772977

X2 = -0.794749

X3 = 0.762146

X4 = 0.13016

1

X1 = 0.872765

X2 = -0.954303

X3 = 0.902687

X4 = -0.008559

2

X1 = 0.972553

X2 = -1.113856

X3 = 1.043229

X4 = -0.147278

3

X1 = 1.072341

X2 = -1.27341

X3 = 1.18377

X4 = -0.285998

4

X1 = 1.172129

X2 = -1.432964

X3 = 1.324311

X4 = -0.424717

5

X1 = 1.271917

X2 = -1.592518

X3 = 1.464853

X4 = -0.563436

4

0

X1 = 0.675128

X2 = -0.476895

X3 = 0.645225

X4 = 0.196021

1

X1 = 0.754634

X2 = -0.580642

X3 = 0.763131

X4 = 0.105936

2

X1 = 0.83414

X2 = -0.68439

X3 = 0.881037

X4 = 0.015852

3

X1 = 0.913647

X2 = -0.788137

X3 = 0.998942

X4 = -0.074233

4

X1 = 0.993153

X2 = -0.891884

X3 = 1.116848

X4 = -0.164317

5

X1 = 1.072659

X2 = -0.995631

X3 = 1.234754

X4 = -0.254402

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
trendlive.ru Раскрутила свои видео, сайты с помощью сервиса трендов хештегов сайта trendlive.ru
02:22:26 29 июня 2022
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита22:07:35 04 ноября 2021
.
.22:07:33 04 ноября 2021
.
.22:07:32 04 ноября 2021
.
.22:07:30 04 ноября 2021

Смотреть все комментарии (34)
Работы, похожие на Реферат: Метод Гаусса с выбором главной переменной

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(294402)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте