|
Реферат: Решение линейного уравнения методом Гаусса с выбором главной переменной |
Реферат: Решение линейного уравнения методом Гаусса с выбором главной переменной
ГОСУДАРСТВЕННЫЙ КОМИТЕТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПО ВЫСШЕМУ И СРЕДНЕСПЕЦИАЛЬНОМУ ОБРАЗОВАНИЮ
КРАСНОЯРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Практическое задание
по компьютерной алгебре
тема: метод Гаусса с выбором главной переменной
Выполнил:
студент 2 курса ФИВТ
группы 27-4
Попов А.В.
Проверила:
Быкова Е.Г.
1998 г.
Текст программы.
#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++)
}
// ------------------------------------------------------------------
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 |
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|