0 / 0 / 0
Регистрация: 16.10.2017
Сообщений: 23
1

Выполнить подсчет количества строк в СЛАУ после преобразования

06.07.2018, 15:45. Показов 633. Ответов 1

Помогите! Я вообще не программист и плохо разбираюсь. У меня решение слау методом Гаусса. МНЕ нужно совершить подсчет строк и столбцов и в конце создать условие, по-видимому, которая указывает, что если количество полученных строк(уравнений)меньше чем переменных, то получается бесконечное множество решений. Написать условие. Вот код к задаче:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<stdio.h> 
#include<iostream> 
using namespace std;
int main()
{setlocale (LC_ALL, "Rus"); 
int n, i, j; 
double d, s;
printf("Введите размер матрицы n="); //ввод
scanf("%d",&n); //вывод
double **a = new double *[n];
for (i = 0; i <= n; i++)
a[i] = new double [n];
double *b = new double [n];
double *x = new double [n]; 
//заполняем матрицу:
printf("Элементы расширенной матрицы\n ");
for (i = 1; i <= n; i++)
{for (j = 1; j <= n; j++)
{printf("Введите %d элемент %d строки=", i,j);
cin >> a[i][j];} //заполненяем основную матрицу
printf("Введите элемент %d столбца= ", i);
cin >> b[i];} //заполняем матрицу со свободными членами
for (int k = 1; k <= n; k++) 
{for (j = k + 1; j <= n; j++)
{ d = a[j][k] / a[k][k]; 
for (i = k; i <= n; i++)
{a[j][i] = a[j][i] - d*a[k][i]; }
b[j] = b[j] - d*b[k];}
}
 
for (int k = n; k >= 1; k--) // обратный ход - определение неизвестных
{d = 0;
for (j = k + 1; j <= n; j++)
{ s = a[k][j] * x[j]; 
d = d + s; }
x[k] = (b[k] - d) / a[k][k]; }
 
//ЗДЕСЬ СОСЧИТАТЬ КОЛИЧЕСТВО СТРОК
 
 
// написать условие
 
printf( "Корни СЛАУ методом Гаусса:\n "); //решение системы линейных алгебраических уравнений методом Гаусса
for( i = 1; i <= n; i++)
printf("%f\n",x[i]);
system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2018, 15:45
Ответы с готовыми решениями:

Подсчет количества строк в файле в С++ (fstream)
Добрый день! Для подсчета строк в файле до сего момента использовал С'шные функции. Пожалуйста,...

подсчет количества заданных строк в выбранном файле
скажите, мне требуется реализовать: 1. &quot;подсчет количества заданных строк в выбранном файле,...

Подсчет количества строк файла, начинающихся и заканчивающихся одной буквой
Написать программу для подсчета количества строк текстового файла, на- чинающихся и оканчивающихся...

Предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после каждого цикла сортировки
Нужно предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после...

1
0 / 0 / 0
Регистрация: 16.10.2017
Сообщений: 23
06.07.2018, 19:19  [ТС] 2
В общем, мне нужно сосчитать количество уравнений после различных элементарных преобразований в методе Гаусса, и написать условие, о том сколько решений выходит. Если единственное, она должна показать корни, если множество решений сообщить об этом, если нет решений тоже написать об этом в программе и вывелось на экран. Мне сказали как-то это делается с помощью подсчета количества уравнений, а как сосчитать понятия не имею. Помогите прошу!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<stdio.h> 
#include<iostream> 
using namespace std;
int main()
{setlocale (LC_ALL, "Rus"); 
int n, i, j, k; 
float d; 
printf("Введите размер матрицы n = "); //ввод порядка матрицы
scanf("%d",&n); //вывод
double **a = new double *[n];//объявление двумерного массива, задаем имя двумерному массиву
for (i = 0; i <= n; i++)
a[i] = new double [n];
double *b = new double [n];//обявление одномерного массива, задаем имя массиву
double *x = new double [n]; //обявление одномерного массива
//заполняем матрицу:
printf("Элементы расширенной матрицы\n ");
for (i = 1; i <= n; i++)
{for (j = 1; j <= n; j++)
{printf("Введите %d элемент %d строки = ", j,i);
cin >> a[i][j];} //заполненяем основную матрицу
printf("Введите элемент %d столбца свободных членов = ", i);
cin >> b[i];} //заполняем матрицу со свободными членами
printf("Вывод матрицы\n");
for( int i=1; i<=n; i++) //вывод введенной матрицы 
{ for(j=1; j<=n; j++)
{cout<<a[i][j]<<" ";}
cout<<endl;}
 
//прямой ход предполагает последовательное исключение неизвестных из уравнения системы, начиная с 1-го, по представленным ниже формулам
for (int k=1; k<=n; k++) // прямой ход заключается в том, чтобы привести матрицу к трапециевидной, где k-номер цикла-номер столбца
{for (j =k+1; j<=n; j++)
{ d = a[j][k]/a[k][k]; 
for (i=k; i<=n; i++)
{a[j][i] = a[j][i]-d*a[k][i]; }
b[j] = b[j] - d*b[k];
}
} 
//обратный ход - последовательное нахождение значений неизвестных начиная с последнего уравнения
for (int k=n; k>=1; k--) // обратный ход - определение неизвестных
{double s = 0;
for (j = k + 1; j <= n; j++)
{s+= a[k][j] * x[j];}
x[k] = (b[k] - s) / a[k][k]; }
 
 
 
 
 
 
{printf("Слау имеет бесконечно много решений "); return 0;}}
 
 
 
for (i=1; i<=n; i++)
{printf( "Корни СЛАУ методом Гаусса:\n "); //решение системы линейных алгебраических уравнений методом Гаусса
for(i=1; i<=n; i++)
cout << "x[" << i << "]=" << x[i] << endl;
system("pause");}
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2018, 19:19
Помогаю со студенческими работами здесь

Подсчет количества строк
Есть текстовой файл (исходный код).Необходимо подсчитать количество строк без пробелов и...

Подсчет количества строк
Помогите пожалуйста исправить код запроса чтобы он правильно работал. Формулировка запроса:...

Подсчет количества строк
Здравствуйте, уважаемые форумчане. Стоит следующая проблема. Существует таблица выводимая из...

Разработать и выполнить командный файл (КФ), выполняющий подсчет количества целых чисел в текстовом файле
Разработать и выполнить командный файл (КФ), выполняющий подсчет количества целых чисел в текстовом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru