Консультация № 199211
24.09.2020, 08:55
0.00 руб.
0 9 1
Здравствуйте! Прошу помощи в следующем вопросе:
Нужно написать программу, которая сможет решить систему линейных уравнений вида Ах=b методом Зейделя.

Обсуждение

давно
Советник
400484
472
24.09.2020, 09:52
общий
Добрый день,
в интернете все уже есть. Посмотрите страницу.
давно
Советник
400484
472
24.09.2020, 15:32
общий
это ответ
Здравствуйте, tanya.hryanina!
Вот возможный вариант:
Код:

#include <stdio.h>
#include<iostream>
using namespace std;
int main()
{
const int N = 3;
const double eps = 0.01;
int A[N][N], b[N], x[N],i,j;
double temp;
bool nevyazka;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
cin >> A[i][j];
for (i = 0; i < N; i++)
{
cin >> b[i];
x[i] = 0;
}
do
{
nevyazka = false;
for (i = 0; i < N; i++)
{
temp = b[i];
for (j = 0; j < N; j++)
if (j!=i)
temp -= A[i][j] * x[j];
temp /= A[i][i];
if (abs(x[i] - temp) > eps)
nevyazka = true;
x[i] = temp;
}
} while (nevyazka);
for (i = 0; i < N; i++)
cout << x[i]<<endl;

system("pause");
}
давно
Посетитель
402845
5
25.09.2020, 04:05
общий
Адресаты:
Здравствуйте, я видела этот вариант программы и эту страницу, но она не идет.
давно
Управляющий
143894
2148
25.09.2020, 08:21
общий
Адресаты:
Разъясните, что вы подразумеваете под словом "не идет"?
Выдает ошибки? Препод не принимает, так как знает об ней из интернета?
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Советник
400484
472
25.09.2020, 10:09
общий
Цитата: tanya.hryanina
solowey:
Здравствуйте, я видела этот вариант программы и эту страницу, но она не идет.


Уважаемая Татьяна, код рабочий. Ввел случайный набор данных, расчет произведен. Вы могли пояснить что у вас не получается?
Прикрепленные файлы:
0ae6aea34852c0d805ffab3596ace72c.jpg
давно
Управляющий
143894
2148
25.09.2020, 10:26
общий
25.09.2020, 10:28
Адресаты:
Скорее всего препод знает про этот сайт... и рубит разгильдяек.
Умные преподы в Омске
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Советник
400484
472
25.09.2020, 10:29
общий
Цитата: Сергей Фрост
solowey:

Скорее всего препод знает про этот сайт... и рубит разгильдяек

Зачем так?! Может барышня не совсем понимает код, и как с ним работать. Вот и не получается. Мы же можем ей помочь.
давно
Посетитель
402845
5
28.09.2020, 08:22
общий
Адресаты:
Мы программируем в CodeBloks и у меня там компилируется с ошибками, соответственно программа не идет.
давно
Советник
400484
472
28.09.2020, 10:34
общий
28.09.2020, 10:36
Цитата: tanya.hryanina
solowey:
Мы программируем в CodeBloks и у меня там компилируется с ошибками, соответственно программа не идет.


Добрый день, Татьяна.
Хотелось бы увидеть вашу ошибку. Можно скриншот ошибки?

В код добавил 2 библиотеки, у меня все работает.
Код:

#include<cmath>
#include<cstdlib>

полный код такой:
Код:

#include<stdio.h>
#include<iostream>
#include<cmath>
#include<cstdlib>

using namespace std;

int main()
{
const int N = 3;
const double eps = 0.01;
double A[N][N], b[N], x[N];
int i,j;
double temp;
bool nevyazka;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
cin >> A[i][j];
for (i = 0; i < N; i++)
{
cin >> b[i];
x[i] = 0;
}
do
{
nevyazka = false;
for (i = 0; i < N; i++)
{
temp = b[i];
for (j = 0; j < N; j++)
if (j!=i)
temp -= A[i][j] * x[j];
temp /= A[i][i];
if (abs(x[i] - temp) > eps)
nevyazka = true;
x[i] = temp;
}
} while (nevyazka);
for (i = 0; i < N; i++)
cout << x[i]<<endl;

//system("pause");
cout << "pause"; // для отладки
cin >> i;
}
Вы под дебагером пробовали пройтись по коду?
Прикрепленные файлы:
9e8c2ac1fa3bb20baddeb4e44b2a7b18.jpg
Форма ответа