27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
1

Написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов

09.04.2014, 20:12. Показов 4229. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам

Нужно написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов.

СЛАУ выглядит так:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}{a}_{11}{x}_{1}+{a}_{12}{x}_{2}+...+{a}_{1n}{x}_{n}={b}_{1} \\ {a}_{21}{x}_{1}+{a}_{22}{x}_{2}+...+{a}_{2n}{x}_{n}={b}_{2}  \\ .........................................................\\ {a}_{n1}{x}_{1}+{a}_{n2}{x}_{2}+...+{a}_{nn}{x}_{n}={b}_{n} \end{cases}

или в векторной форме:
AX=B
с каждого уравнения вычисляем https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}(i=1...n) и получаем:
https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}=\frac{1}{{a}_{11}}({b}_{1}-{a}_{12}{x}_{2}-{a}_{13}{x}_{3}-...-{a}_{1n}{x}_{n})

или в векторной форме:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{X}=F(\bar{X})

для которого можно использовать метод простой итерации. Метод заключается в том, что в правую часть подставляем какие то значения https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}(i=1...n), получаем новые значения, какие опять подставляем в правую часть и т. д. То есть, на каждой итерации имеем предыдущие значения неизвестных https://www.cyberforum.ru/cgi-bin/latex.cgi?{xp}_{i}(i=1...n), какие подставляем в правую часть схемы и новые значения https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}(i=1...n), какие получаем в левой части.

Вычислительную схему можно записать:
https://www.cyberforum.ru/cgi-bin/latex.cgi?x[i]=(b[i]-\sum_{j=1,j\neq i}^{n}(a[i][j]*xp[j]))/a[i][i], i=1...n

Начальное значение неизвестных можно вычислить:
xp[i]=b[i]/a[i][i]

после каждой итерации значение некоторого неизвестного меняется на величину:
https://www.cyberforum.ru/cgi-bin/latex.cgi?{delta}_{i}=\left| x[i]-xp[i]\right|
Вычисления можно остановить когда максимальная поправка
https://www.cyberforum.ru/cgi-bin/latex.cgi?prop={max}_{i}({delta}_{i})
будет меньше заданной точности https://www.cyberforum.ru/cgi-bin/latex.cgi?eps
По окончании итерации, вычисление всех новых значений https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}, вычисление максимальной поправки https://www.cyberforum.ru/cgi-bin/latex.cgi?prop нужно переписать массив https://www.cyberforum.ru/cgi-bin/latex.cgi?x к массиву https://www.cyberforum.ru/cgi-bin/latex.cgi?xp.

Необходимым (но не достаточным) условием сходимости метода есть выполнения условия:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\left|{a}_{ii} \right|>\left|\sum_{j=1,j\neq i}^{n}   {a}_{ij} \right|

Матрицу коэффициентов уравнения A, векторы В, Х, ХР реализуются как динамичные массивы.

п.с. помогите с программой (желательно с комментариями), заранее спс=)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2014, 20:12
Ответы с готовыми решениями:

Решение СЛАУ методом простой итерации, Методом Зейделя, Методом Релаксации
Всем доброго времени суток, помогите пожалуйста реализовать данные методы, а то у меня не...

СЛАУ методом простой итерации
Ребята, помогите решить Слау методом простой итерации в Mathcad. А=\left(\begin{matrix} 20,9 &...

СЛАУ методом простой итерации
Помогите сделать

Решение СЛАУ методом простой итерации или методом Зейделя
Решение СЛАУ методом простоой интерпритации или методом Зейделя. Напишете пожалуйста пример решения

20
78 / 77 / 51
Регистрация: 30.03.2013
Сообщений: 194
09.04.2014, 20:43 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
//////////////////////////////////////////////////////////////////////////////
//  Solving nonlinear equations (iterations method)
//  (c) Johna Smith, 1996
//
//  Method description:
//    This method is used for solving equations like x=f(x)
//    We should set first approximation of the root and then
//    make some iterations x=f(x). When the difference between
//    two consequental iterations will be less than epsilon we
//    can say that we found the root.
//    To apply this method to equations like F(x)=0 we should
//    transform it into iterational form x=f(x), where f(x):
//      1) defined on [a;b]
//      2) for every point on [a;b] exists f'(x)
//      3) for every x from [a;b] f(x) is in [a;b]
//      4) exists number q : |f'(x)|<=q<1 for all x from [a;b]
//
//////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
// this function returns value of f(x)
double f(double x)
{
  // x = x + 0.37(sin 2x - ln x)
  return x+0.37*(sin(2*x)-log(x));
}
double Solve(double x, double epsilon)
{
  double x1;
  do
  {
    x1=x;
    x=f(x);
  } while (fabs(x1-x)>epsilon);
  return x;
}
void main(void)
{
  printf("sin 2x - ln x = 0");
  printf("\nx0=%f",Solve(1.4,1e-6));
}
0
Заблокирован
09.04.2014, 20:51 3
Цитата Сообщение от andreyananas Посмотреть сообщение
для вычисления СЛАУ
СЛАУ - система линейных уравнений

Цитата Сообщение от aiwprton805 Посмотреть сообщение
nonlinear equation
одно нелинейное уравнение, к тому же - очень конкретное:
Цитата Сообщение от aiwprton805 Посмотреть сообщение
"sin 2x - ln x = 0"
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
10.04.2014, 01:43  [ТС] 4
Это вообще что такое???

Добавлено через 31 минуту
все еще актуально

Добавлено через 4 часа 17 минут
помогите плсссссссссссссс
0
Заблокирован
10.04.2014, 01:57 5
Напишите что-нибудь сами. Глядишь, и помогут.
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
11.04.2014, 03:49  [ТС] 6
наоборот мне бы ваша помощь с началом помогла бы

Добавлено через 7 часов 10 минут
Ап помогите плс

Добавлено через 2 часа 6 минут
раньше всегда помогали)

Добавлено через 5 часов 10 минут
Никто не поможет???
0
Заблокирован
11.04.2014, 05:04 7
Цитата Сообщение от andreyananas Посмотреть сообщение
раньше всегда помогали)
Это когда было нужно ввод/вывод чего-нибудь простенького организовать? Так это и бухгалтерам задают. А их жалко.

Задание этой темы показывает, что по специальности вы претендуете быть нашим коллегой.
А кому нужны коллеги-дармоеды?
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
11.04.2014, 12:16  [ТС] 8
Цитата Сообщение от IrineK Посмотреть сообщение
Задание этой темы показывает, что по специальности вы претендуете быть нашим коллегой.
А кому нужны коллеги-дармоеды?
Когда ты делаешь что то впервые, в просьбе о помощи ничего плохого не вижу.
п.с. в данном случае проблема в понимании математического смысла.
0
78 / 77 / 51
Регистрация: 30.03.2013
Сообщений: 194
11.04.2014, 17:18 9
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
//////////////////////////////////////////////////////////////////////////////
//
//  Solving system of linear equations (iterations method)
//  (c) Johna Smith, 1996
//
//  Method description:
//  This program automatically transforms system of equations to
//  iterative form and solves it.
//  Iterative form:
//     x1=a11*x1+a12*x2+... + a1n*xn+b1
//     x2=a21*x1+a22*x2+... + a2n*xn+b2
//     ...
//     xn=an1*x1+an2*x2+... + ann*xn+bn
//  Setting first iteration of vector X we can get next iteration from
//  such form of system of equations. Iterations will be finished when
//  difference between two consequitive iterations will be less than epsilon
//
//////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
#define N      3     // size of matrix
#define N1     N+1
float matrix[N][N1]=
    {{14.38,-2.41,1.39,5.86},
  {1.84,25.36,-3.31,-2.28},
  {2.46,-3.49,16.37,4.47}
    };
int maxiterations=10;  // maximum number of iterations
float epsilon=0.0001;  // required accuracy
void ShowMatrix(void)
{
  for (int i=0;i<N;i++)
  {
    for (int j=0;j<N;j++)
      printf("%+f*x%d",matrix[i][j],i+1);
    printf("=%f\n",matrix[i][N]);
  }
}
void main(void)
{
  // Variables declaration
  float x[N],y[N],t;
  register short int i,j,k;
  int iterations=0;
  // Printing given matrix
  ShowMatrix();
  // setting first iteration of vector X
  for (i=0;i<N;i++) x[i]=matrix[i][N];
  do
  {
    for (i=0;i<N;i++)
    {
      t=-matrix[i][N];
      for (j=0;j<N;j++)
        t+=matrix[i][j]*x[j];
        y[i]=(-t+matrix[i][i]*x[i])/matrix[i][i];
    }
    iterations++;
    k=0;
    // checking solution
    while (fabs(x[k]-y[k])<epsilon && k<N) k++;
    // new iteration becomes old
    for(i=0;i<N;i++) x[i]=y[i];
  } while (k!=N && iterations<maxiterations);
  if (iterations==maxiterations)
  {
    printf("Iterations are very slow...");
  } else
  {
    // Printing solution
    printf("\nSolution:\n");
    for (i=0;i<N;i++)
      printf("x%d=%f\n",i+1,x[i]);
    printf("%d iterations were made",iterations);
  }
}
1
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
13.04.2014, 02:47  [ТС] 10
заплачу за прогу
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
16.04.2014, 07:51  [ТС] 11
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
#include <iostream>
#include <windows.h>
#include <math.h>
 
using namespace std;
 
int main()
{
    SetConsoleOutputCP(1251);
    char con;
    int n;
    double delta=0.0, eps=0.0;
    do
    {
        cout << " Введите количество неизвестных: " << endl;
        cin >> n;
        cout << " Введите точность: " << endl;
        cin >> eps;
 
        float **a = new float*[n];//выдиление динам. памяти для массива
        for(int i=0; i<n; i++)
        {
            a[i] = new float[n];
        }
        float *b = new float[n];// выдиление памяти для свободных членов
        float *x = new float[n];
        float *xp = new float[n];
 
        for(int i=0; i<n; i++)// ввод данных
        {
            for(int j=0; j<n; j++)
            {
                cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
                cin >> a[i][j];
            }
            cout << " Введите " << (i+1) << "й свободный член " << (i+1) << "го уравнения: ";
            cin >> b[i];
        }
 
        for(int i=0; i<n; i++)// вывод СЛАУ
        {
            cout << " | ";
            for(int j=0; j<n; j++)
            {
                cout << a[i][j] << "*x(" << (i+1) << ") + " ;
            }
            cout << " = " << b[i];
            cout << endl;
        }
 
        do
        {
            for(int i=0; i<n; i++) // НЕ РАБОТАЕТ(((
            {
                for(int j=1; j<n; j++)
                {
                    if(j!=i)
                    {
                        xp[i]=b[i]/a[i][i]; // начальное значение Х
                        x[i]=(b[i]-(a[i][j]*xp[j]))/a[i][i];
                        if(fabs(x[i]-xp[i])>delta)
                            delta=fabs(x[i]-xp[i]);
                    }
                }
            }
        }
        while(delta>eps);
 
        for(int i=0; i<n; i++)// вывод результата
        {
            cout << "  x(" << i << ") = " << x[i] << endl;
        }
 
 
 
 
        for(int i=0; i<n; i++)// освобождение выдиленой памяти
        {
               delete [] a[i];
        }
        delete [] a;
        delete [] b;
        delete [] x;
        delete [] xp;
        cout << " Для продолжения программы, введите - 'y'" << endl;
        cout << " для завершения, введите любой символ..." << endl;
        cin >> con;
    }
    while(con=='y');
    return 0;
}
Вот мои наработки, выдает не правильный результат(((

Добавлено через 3 часа 24 минуты
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
#include <iostream>
#include <windows.h>
#include <math.h>
 
using namespace std;
 
int main()
{
    SetConsoleOutputCP(1251);
    char con;
    int n;
    double delta=0.0, eps=0.0;
    do
    {
        cout << " Введите количество неизвестных: " << endl;
        cin >> n;
        cout << " Введите точность: " << endl;
        cin >> eps;
 
        double **a = new double*[n];//выдиление динам. памяти для массива
        for(int i=0; i<n; i++)
        {
            a[i] = new double[n];
        }
        double *b = new double[n];// выдиление памяти для свободных членов
        double *x = new double[n];
        double *xp = new double[n];
 
        for(int i=0; i<n; i++)// ввод данных
        {
            for(int j=0; j<n; j++)
            {
                cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
                cin >> a[i][j];
            }
            cout << " Введите " << (i+1) << "й свободный член " << (i+1) << "го уравнения: ";
            cin >> b[i];
        }
 
        for(int i=0; i<n; i++)// вывод СЛАУ
        {
            cout << " | ";
            for(int j=0; j<n; j++)
            {
                cout << a[i][j] << "*x(" << (i+1) << ") + " ;
            }
            cout << " = " << b[i];
            cout << endl;
        }
 
        do
        {
            for(int i=0; i<n; i++) // НЕ РАБОТАЕТ(((
            {
                xp[i]=b[i]/a[i][i]; // начальное значение Х
                for(int j=0; j<n; j++)
                {
                    if(j!=i)
                    {
                        x[i]=(b[i]-(a[i][j]*xp[j]))/a[i][i];
                    }
                }
                delta=fabs(xp[0]-x[0]);
                if(fabs(xp[i]-x[i])>delta)
                    delta=fabs(xp[i]-x[i]);
                xp[i]=x[i];
            }
        }
        while(delta>eps);
 
        for(int i=0; i<n; i++)// вывод результата
        {
            cout << "  x(" << i << ") = " << x[i] << endl;
        }
 
 
 
 
        for(int i=0; i<n; i++)// освобождение выдиленой памяти
        {
               delete [] a[i];
        }
        delete [] a;
        delete [] b;
        delete [] x;
        delete [] xp;
        cout << " Для продолжения программы, введите - 'y'" << endl;
        cout << " для завершения, введите любой символ..." << endl;
        cin >> con;
    }
    while(con=='y');
    return 0;
}
Вот еще немного подправил.
Но теперь выбивает в ответе inf

Добавлено через 10 минут
что вообще значит inf и -inf??????
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
16.04.2014, 12:15 12
andreyananas, бесконечность. Смотрите, где-то может быть переполнение или деление на ноль.
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
18.04.2014, 03:33  [ТС] 13
Цитата Сообщение от iRomul Посмотреть сообщение
Смотрите, где-то может быть переполнение или деление на ноль.
блин не могу найти ошибку(
0
78 / 77 / 51
Регистрация: 30.03.2013
Сообщений: 194
19.04.2014, 16:10 14
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
#include <iostream>
#include <conio.h>
#include <locale>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int n;
    double delta, eps;
 
    do
    {
        cout << " Введите количество неизвестных: " << endl;
        cin >> n;
        cout << " Введите точность: " << endl;
        cin >> eps;
 
        double **a = new double *[n];//выдeление динам. памяти для массива
        for(int i=0; i<n; i++)
        {
            a[i] = new double[n];
        }
        double *b = new double[n];// выдeление памяти для свободных членов
        double *x = new double[n];
        double *xp = new double[n];
 
        for(int i=0; i<n; i++)// ввод данных
        {
            for(int j=0; j<n; j++)
            {
                cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
                cin >> a[i][j];
            }
            cout << " Введите свободный член " << (i+1) << "го уравнения: ";
            cin >> b[i];
        }
 
        for(int i=0; i<n; i++)// вывод СЛАУ
        {
            cout << " | ";
            for(int j=0; j<n; j++)
            {
                cout << a[i][j] << "*x(" << (i+1) << ") + " ;
            }
            cout << " = " << b[i];
            cout << endl;
        }
 
        for(int i=0; i<n; i++)
        {
            double temp = 0.0;
            for(int j=0; j<n; j++)
            {
                if(j != i) temp += a[i][j];
            }
            if(a[i][i] < temp)
            {
                cout << " Необходимое условие сходимости не выполняется" << endl;
                break;
            }
        }
 
        for(int i=0; i<n; i++)
        {
            xp[i] = b[i]/a[i][i]; // начальное значение Х
        }
 
        do
        {
            for(int i=0; i<n; i++)
            {
                double temp = 0.0;
                for(int j=0; j<n; j++)
                {
                    if(j != i) temp += a[i][j]*xp[j];
                }
                x[i] = (b[i] - temp)/a[i][i];
                delta = fabs(x[0] - xp[0]);
                for(int j=1; j<n; j++)
                {
                    if(fabs(x[j] - xp[j]) > delta)
                        delta = fabs(x[j] - xp[j]);
                }
                xp[i] = x[i];
            }
        }
        while(delta > eps);
 
        for(int i=0; i<n; i++)// вывод результата
        {
            cout << "  x(" << i << ") = " << x[i] << endl;
        }
 
        cout << " Для продолжения программы, введите 'y'" << endl;
        cout << " Для завершения введите любой другой символ..." << endl;
        int ch = getche();
        if((char)ch != 'y') break;
 
        for(int i=0; i<n; i++)// освобождение выдeленной памяти
        {
            delete [] a[i];
        }
        delete [] a;
        delete [] b;
        delete [] x;
        delete [] xp;
 
    } while(1);
 
 
    return 0;
}
1
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
19.04.2014, 19:38  [ТС] 15
Цитата Сообщение от aiwprton805 Посмотреть сообщение
Причина: библиотека math.h не нужна

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
  for(int i=0; i<n; i++)
        {
            double temp = 0.0;
            for(int j=0; j<n; j++)
            {
                if(j != i) temp += a[i][j];
            }
            if(a[i][i] < temp)
            {
                cout << " Необходимое условие сходимости не выполняется" << endl;
                break;
            }
        }
 
        for(int i=0; i<n; i++)
        {
            xp[i] = b[i]/a[i][i]; // начальное значение Х
        }
 
        do
        {
            for(int i=0; i<n; i++)
            {
                double temp = 0.0;
                for(int j=0; j<n; j++)
                {
                    if(j != i) temp += a[i][j]*xp[j];
                }
                x[i] = (b[i] - temp)/a[i][i];
                delta = fabs(x[0] - xp[0]);
                for(int j=1; j<n; j++)
                {
                    if(fabs(x[j] - xp[j]) > delta)
                        delta = fabs(x[j] - xp[j]);
                }
                xp[i] = x[i];
            }
        }
        while(delta > eps);
А можно коменты ? не совсем понимаю(
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
19.04.2014, 19:46  [ТС] 16
Объясни как работает проверка на условие сходимости???? Так то онлайн калькулятор решает такой ввод.
Миниатюры
Написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов  
0
78 / 77 / 51
Регистрация: 30.03.2013
Сообщений: 194
20.04.2014, 02:03 17
Цитата Сообщение от andreyananas Посмотреть сообщение
Объясни как работает проверка на условие сходимости????
ты же сам формулы писал
Цитата Сообщение от andreyananas Посмотреть сообщение
Необходимым (но не достаточным) условием сходимости метода есть выполнения условия:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left|{a}_{ii} \right|>\left|\sum_{j=1,j\neq i}^{n} {a}_{ij} \right|
кстати забыл, что там надо по модулю брать. нужно так
C++
1
2
3
4
5
if(fabs(a[i][i]) < fabs(temp))
            {
                cout << " Необходимое условие сходимости не выполняется" << endl;
                break;
            }
проще говоря, условие заключается в том, чтобы матрица имела диагональное преобладание
Цитата Сообщение от andreyananas Посмотреть сообщение
онлайн калькулятор решает
онлайн калькулятор итерационным методом не решает
1
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
20.04.2014, 10:46  [ТС] 18
Цитата Сообщение от aiwprton805 Посмотреть сообщение
C++
1
if(j != i) temp += a[i][j]*xp[j];
Не понимаю, почему тут ПЛЮС????

Добавлено через 7 минут
А все понял почему плюс, чет туплю с утра)
0
Заблокирован
20.04.2014, 10:53 19
ты в курсе что здесь ветка математики ? https://www.cyberforum.ru/mathematics/
0
27 / 27 / 11
Регистрация: 15.10.2013
Сообщений: 880
20.04.2014, 11:38  [ТС] 20
Цитата Сообщение от aiwprton805 Посмотреть сообщение
кстати забыл, что там надо по модулю брать. нужно так
Все сделал как ты написал, как выбивало inf и -inf так и выбивает(((

Добавлено через 9 минут
Цитата Сообщение от aiwprton805 Посмотреть сообщение
C++
1
2
3
4
5
if(fabs(a[i][i]) < fabs(temp))
* * * * * * {
* * * * * * * * cout << " Необходимое условие сходимости не выполняется" << endl;
* * * * * * * * break;
* * * * * * }
Если это условие выполняется, то как пропустить все следующие вычисления и вернутся в начало программы?
(без GOTO)

Добавлено через 32 минуты
Цитата Сообщение от aiwprton805 Посмотреть сообщение
C++
1
2
3
4
5
if(fabs(a[i][i]) < fabs(temp))
* * * * * * {
* * * * * * * * cout << " Необходимое условие сходимости не выполняется" << endl;
* * * * * * * * break;
* * * * * * }
Приведите пример матрицы какую можно посчитать этим методом?
0
20.04.2014, 11:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2014, 11:38
Помогаю со студенческими работами здесь

Решение СЛАУ методом простой итерации и методом последовательных приближений
Не получается преобразовать систему,условие сходимости не выполняется.

Составить программу нахождения корней нелинейного уравнения методом простой итерации с точностью вычисления E
Помогите Составить программу нахождения корней нелинейного уравнения методом простой итерации с...

Решения СЛАУ методом простой итерации
Код решения СЛАУ методом простой итерации. Program Metod_Prostoy_Iteracii ; Uses crt; const...

Решить СЛАУ методом простой итерации
Помоготе пожалуйста решить СЛАУ методом простой итерации 0.31x+0.14y+0.30z+0.27t=1.02...


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

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

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