Форум программистов, компьютерный форум CyberForum.ru

Правильно ли реализовано вычисление членов последовательности - C++

Восстановить пароль Регистрация
 
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
20.05.2014, 18:02     Правильно ли реализовано вычисление членов последовательности #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
void SUR(double **a,int n,double w,double *f,double *x_app)
{
 
    //-------------------------------------------
    double * fut = new double[n];
    //-------------------------------------------
    for(int i = 0;i < n;i++)
    {
        fut[i] = 0;//x_app[i];
    }
    //-------------------------------------------
//  for(int k = 0;k < 6;k++)
//  {
        for(int i = 0;i < n;i++)
        {
            fut[i] = 0;//x_app[i];
        }
        for(int i = 0;i <n;i++)
        {
            double t = 0;
            for(int j = i + 1;j < n;j++)
            {
                t += a[i][j]*x_app[j];
            }
 
            double temp = 0;
            for(int j = 0;j < i;j++)
            {
                temp += a[i][j]*fut[j];
            }
            double qs = 1./a[i][i]; 
            fut[i] = (1. - w)*x_app[i] + w*qs*(f[i] - temp - t);
        }
 
        for(int i = 0;i <n;i++)
        {
            x_app[i] = fut[i];
        }
//  }
}
http://www.cyberforum.ru/cgi-bin/latex.cgi?  x^{(k+1)}_i  = (1-\omega)x^{(k)}_i + \frac{\omega}{a_{ii}} \left(b_i - \sum_{j<i} a_{ij}x^{(k+1)}_j - \sum_{j>i} a_{ij}x^{(k)}_j \right),\quad i=1,2,\ldots,n.

Добавлено через 1 минуту
Правильно ли реализовал, математическую запись ?

Мне кажеться ,что все норм ,однако считает ужасно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 18:02     Правильно ли реализовано вычисление членов последовательности
Посмотрите здесь:

C++ 4. Найти сумму К членов последовательности: 3, 7, 11, 15,… Вычислить сумму членов последовательности 1, 4, 7, 10, …, не превосходящих числа К
C++ Получить число отрицательных членов последовательности и сумму нулевых членов последовательности
C++ Вычисление суммы первых n членов последовательности
C++ Вычисление суммы первых n членов последовательности
Массив. Найти, сколько членов первой последовательности совпадает с членами второй последовательности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
20.05.2014, 18:30     Правильно ли реализовано вычисление членов последовательности #2
Qazan, Что такое k, k+1? Что такое i, j?
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
20.05.2014, 19:23  [ТС]     Правильно ли реализовано вычисление членов последовательности #3
outoftime, k, k + 1 это соответственно текущий и предыдущий вектор

Это итерационный метод решения,в начале задаем приближенное значение ,а потом приближаем дальше

i,j - индексы вектора

формируется вектор приближенных значений постепенно

Добавлено через 1 минуту
http://www.cyberforum.ru/cgi-bin/latex.cgi? a_{ij} Элементы матрицы A.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
20.05.2014, 20:09     Правильно ли реализовано вычисление членов последовательности #4
Цитата Сообщение от Qazan Посмотреть сообщение
k, k + 1 это соответственно текущий и предыдущий вектор
А теперь распиши что из себя представляют переменные.
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
20.05.2014, 21:30  [ТС]     Правильно ли реализовано вычисление членов последовательности #5
outoftime, переменный это эле менты вектора тобишь просто числа

Добавлено через 32 секунды
Successive_over-relaxation

Добавлено через 2 минуты
Successive_over-relaxation
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
21.05.2014, 00:35     Правильно ли реализовано вычисление членов последовательности #6
Qazan, на самом деле, на вики ниже есть алгоритм, и даже там вместо двух циклов используется один с условием (кода на 1 операцию больше, зато читабельней).

Я только не понял как выбирается начальное значение и что значит "повторять пока не сойдется", сам алгоритм выдает результат схождением (по аналогии с разложением функции в ряд быстрого схождения). У меня только одна мысль по этому поводу - делать по аналогии с рядами измеряя эпсилон как разницу между значениями на смежных итерациях.

Если после этого у вас возникают вопросы не касающиеся кода - можете начинать писать код. Если у вас есть явные ошибки в коде - форумчане помогут. Но копаться в этом методе решения линейных уравнений я не хочу (остальные, скорей всего, меня поддержат).
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
21.05.2014, 05:37  [ТС]     Правильно ли реализовано вычисление членов последовательности #7
outoftime, про реализацию это да, там есть псевдокод

но мне он не очень ясен ;

Хотелось бы расписать все так ,как описано математический;

Добавлено через 1 минуту
Про остановку пока не сойдется это понятно,
там нужно какое то условие остановки

например, как вы и сказали , разность последующей и предыдущей итераций ,только норма от этого дела
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
21.05.2014, 11:33     Правильно ли реализовано вычисление членов последовательности #8
Цитата Сообщение от Qazan Посмотреть сообщение
но мне он не очень ясен
Это плохо, псевдокод на вики, обычно, лучше всего описывает реализацию (оптимизации только language specific можно проводить).
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
21.05.2014, 15:20  [ТС]     Правильно ли реализовано вычисление членов последовательности #9
outoftime, Обычно мне было понятно , но в данном случае мне не ясно

http://www.cyberforum.ru/cgi-bin/latex.cgi? \sigma \leftarrow \sigma + a_{ij} \phi_j

Вот ,что означает такая запись ?
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
21.05.2014, 16:46     Правильно ли реализовано вычисление членов последовательности #10
Qazan, эквивалент на плюсах
C++
1
sigma = sigma + a[i][j] * phi[j];
Где sigma, a, phi - переменные соответствующих типов и для тих определены данные операции.
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
21.05.2014, 18:02  [ТС]     Правильно ли реализовано вычисление членов последовательности #11
outoftime, а дак стрелка это присваивание .Ясно
outoftime
21.05.2014, 20:23
  #12

Не по теме:

Qazan, стандартная нотация, кажись, в Кормене такая же. Советую почитать.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2014, 21:28     Правильно ли реализовано вычисление членов последовательности
Еще ссылки по теме:

Правильно ли я записываю/ считываю ( принцип вроде да а реализовано УГ) C++
Правильно ли реализовано удаление элемента из массива и совершен вызов деструктора? C++
Правильно ли в приведенном примере реализовано выделение и очищение памяти под двумерный вектор C++

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

Или воспользуйтесь поиском по форуму:
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
21.05.2014, 21:28  [ТС]     Правильно ли реализовано вычисление членов последовательности #13
outoftime, Пасибо ,почитаю
Yandex
Объявления
21.05.2014, 21:28     Правильно ли реализовано вычисление членов последовательности
Ответ Создать тему
Опции темы

Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru