Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Alekto
1 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 51
#1

Разработать программу для решения СЛАУ методом Гаусса

16.02.2012, 21:21. Просмотров 1856. Ответов 2
Метки нет (Все метки)

Разработать программу для решения СЛАУ методом Гаусса
есть код, но во первых он не работает
во вторых нужно на 5х5, вместо 3х3

помогите плиз оптимизировать и заточить код по нужное ТЗ
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// gays2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<io.h>
#include "stdio.h"
#include "conio.h"
#include <windows.h>
#include <iostream>
#include <time.h>
#include <io.h>
#include <fcntl.h>
#include <string.h>
#include "stdafx.h"
using namespace std;
 
#include <stdio.h> // Описания функций ввода-вывода
#include <math.h> // Описания математических функций
#include <stdlib.h> // Описания функций malloc и free
 
const int n=3;
void ReadData()
{
int n;
double A[n][n];
FILE*f=fopen("l1.txt","rt");
if (f!=0)
printf("CAN'T OPEN FILE\nPlease, f**k off!");
{
 
fscanf(f,"%d",&n);
printf("Sborka matritsi m- na n-:\n");
for (int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
fscanf(f,"%d",&A[i][j]);
printf("%d",A[i][j]);
}
printf("\n");
}
printf("\n\n");
fclose(f);
}
}
 
void Gauss
( double X[n], const double Z[n][n], const double Y[n])
{
ReadData();
double A[n][n]; // матрица коэффицентов Гаусса
double B[n]; // рабочий массив свободных членов
int i;
int j;
int k; // рабочие переменные
for( i = 0; i < n; i++ ) // копирование в рабочую матрицу A
{
for( j = 0; j < n; j++ )
A[i][j] = Z[i][j];
B[i] = Y[i]; // копирование свободных членов
X[i] = 0;
}
for( k = 0; k < n-1; k++ )
for( i = k+1; i < n; i++ ) // преобразование строк
{
double r = A[i][k] / A[k][k];
for( j = k; j < n; j++ )
A[i][j] -= A[k][j] * r;
B[i] -= B[k] * r;
}
X[n-1] = B[n-1] / A[n-1][n-1];
 
for( i = n-2; i >= 0; i-- )
{
double s = 0;
for( j = i+1; j < n; j++ )
s += A[i][j] * X[j];
X[i] = ( B[i] - s ) / A[i][i];
}
 
printf( "\n" );
for( i = 0; i < n; i++ )
{ printf( "\n" );
for( j = 0; j < n; j++ )
printf( "%8.2lf", A[i][j] );
printf( " %8.2lf", B[i] );
}
}
 
/* ------------------------------------------------- */
 
void main()
     {
ReadData();
double X[n];// корни системы линейных уравнений
short i, j; // рабочие переменные
printf( " matritsa A* matritsa B\n" );
for( i = 0; i < n; i++ ) // цикл строк
{
printf( "\n" ); // новая строка на мониторе
for( j = 0; j < n; j++ );
 
printf( "%8.2lf", A[i][j] );
printf( " %8.2lf", B[i] );
 
}
printf( "\n" );
printf( "stypen4atii vid matritsi \n" );
Gauss( X, A, B ); // решение методом Гаусса
printf( "\n" );
printf( "\n" );
printf( " zna4enia peremennih x1,x1,x3\n" );
printf( "\n X = " );
 
for( i = 0; i < n; i++ )
 
printf( "%8.2lf", X[i] );
printf( "\n" );
printf( "\n" );
printf( "rang=\n" );
 
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2012, 21:21
Ответы с готовыми решениями:

Ошибка в программе для решения СЛАУ методом Гаусса
Здравствуйте помогите пожалуйста! Не могу найти ошибку в программе :( ...

Реализация алгоритма решения СЛАУ методом Гаусса
Попрошу помочь в реализации алгоритма решения СЛАУ методом Гаусса на языке С...

Улучшить программу для решения уравнения методом Гаусса
В общем, есть код для обычного решения уравнения, но мне требуется улучшить,...

Нужно написать программу на СИ для решения СЛАУ методом LU разложения Краута
Нужно написать программу на СИ для решения СЛАУ с помощью Метода LU разложения...

Написать программу которая находит решение СЛАУ методом Гаусса
Помогите найти ошибку в коде. Нужно написать программу которая находит решение...

2
Kolodza
0 / 0 / 1
Регистрация: 13.02.2012
Сообщений: 2
16.02.2012, 23:55 #2
У тебя точно не работает функция ReadData(). Она не изменяет ни одной переменной в области видимости функции main.
Что делает функция Gauss(…) понять крайне затруднительно. Попробуй разделить на функции типа «поделить все элементы строки на число» «вычесть одну строку из другой» и т. д. И да, зачем хранить свободный коэффициент в отдельном массиве?
0
-=ЮрА=-
Заблокирован
Автор FAQ
17.02.2012, 13:23 #3
Alekto, по ссылке рабочий метод Гаусса
Методом Гаусса решить систему n линейных алгебраических уравнений
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2012, 13:23

Решение СЛАУ методом Гаусса для 3 уравнений с 2-мя неизвестными
Нужно создать функцию для решения СЛАУ методом Гаусса для 3 уравнений с 2-мя...

Метод Гаусса решения СЛАУ
Прошу помочь с составлением программы, позволяющей решать системы линейных...

Решение СЛАУ методом Гаусса
помогите, пожалуйста! надо создать программу, которая считает систему линейных...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru