Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Алгоритмы Найти наиболее точную оценку для рекуррентных отношений https://www.cyberforum.ru/ algorithms/ thread2205317.html
Нужно найти наиболее точную оценку для T(N) = T(9N/10) + N; если Т(N) - константа при N ≤ 2; Проблема в том, что не могу понять как решать такое где перед N стоит еще число. Куда девать эту девятку? Добавлено через 26 минут Я нашел свою ошибку, я перепутал 9/10 и 10/9. В итоге получилось Θ(N)
Задача на подмножества Алгоритмы
Задан массив A из n целых чисел. Существуют операции двух видов: 1.Поменять местами A и A. 2.Определить, является ли подмассив A отсортированным в неубывающем порядке. (1 ≤ n ≤ 300 000, 1 ≤ q ≤ 200 000) Задача - ответить на запросы второго типа Подскажите, пожалуйста, каким методом решать, если простой перебор слетает по времени?
Алгоритмы Алгоритм нахождения среднего значения https://www.cyberforum.ru/ algorithms/ thread2205237.html
Здравствуйте, помогите написать алгоритм нахождения среднего значения между числами, которые берутся из синусоиды через каждые 8мс. Сначала мы должны найти среднее в промежутке от 1...7, второе значение в промежутке от 5...11, третье значение от 9...15 и т.д. По формулам выглядит так: F1ср =( F1+F2+F3+...+F7)/7, F2ср= ( F5 + F6+...F11)/7 итд
Алгоритмы Список https://www.cyberforum.ru/ algorithms/ thread2205219.html
Приветствую. Задача реализовать список. Он уже реализован мной, однако нужно уточнить одну вещь. В условии сказано, что в списке есть повторяющиеся элементы и при удалении надо соответственно прореагировать. Вот вопрос. Каким образом? Удалять все элементы с указанным ключом или первый попавшийся?
Протокол Фейга — Фиата — Шамира Алгоритмы
Здравствуйте, пытаюсь реализовать идентификацию с нулевым разглашением с помощью протокола Протокол Фейга — Фиата — Шамира. Имеется следующий код: public static void main(String args) throws Exception { BigInteger p = BigInteger.probablePrime(16, new Random()); BigInteger q = BigInteger.probablePrime(16, new Random()); int k = 10; // Receive k BigInteger trustedN =...
Алгоритмы рекуррентное отношение https://www.cyberforum.ru/ algorithms/ thread2205129.html
помогите решить ,найти точную оценку T(N) = 2T(N — 1) + N если T(1) = 2;
Алгоритмы Найти наименьшую сумму n слагаемых для ряда чисел Вот, дан ряд чисел, и дано количество слагаемых, а найти нужно наименьшую сумму для каких то n чисел писал на c# примерно такое using System; using System.Globalization; namespace samolet { class Program { https://www.cyberforum.ru/ algorithms/ thread2204324.html Алгоритмы Тема на диплом связанная с алгоритмами
Учусь на 3 курсе, дали задание выбрать тему на диплом. Большинство тем в нашем университете всегда звучит как "Веб-сайт + 11-2 слова", "Интернет-магазин". Мне как-то не особо заниматься этим. Научного руководителя , который сможет подсказать что-то интересное я, скорее всего, не найду. Единственное, что мне нравится это различные алгоритмические задачи.(к сожалению математику знаю не на...
Алгоритмы Быстрые алгоритмы нахождения чисел-палиндромов на заданном промежутке https://www.cyberforum.ru/ algorithms/ thread2204249.html
Какие существуют быстрые алгоритмы нахождения палиндромов на промежутке?
Алгоритмы Кольцевой буффер Делаю задания с книги Algorithms, 4th Edition by Robert Sedgewick : 1.3.37 Кольцевой буфер. Кольцевой или кольцевая очередь - это структура данных с правилом FIFO фиксированного размера N, удобная для передачи данных между асинхронными процессами или для хранения файлов журналов. Если буфер пуст, получатель ждет поступления в него данных; если буфер полон, отправитель ждет, когда можно... https://www.cyberforum.ru/ algorithms/ thread2203880.html
Алгоритмы Количество доменов в матрице
Необходимо посчитать количество доменов в матрице. Пример матрицы: 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0
Алгоритмы Зоны влияния https://www.cyberforum.ru/ algorithms/ thread2201381.html
Всем привет, Есть матрица n на n элементов. Каждый элемент может принимать в себя одно из двух значений 0 или 1. Допустим пользователь оградил некую территорию в матрице. <- ( На рисунке ниже наглядный пример. ) Как компьютеру понять что территория была ограждена? Какие алгоритмы для этого используются?
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 12
0

Метод бисопряженных градиентов для решения СЛАУ - Алгоритмы - Ответ 12185032

05.03.2018, 11:00. Показов 1203. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, никак не могу понять почему метод бисопряженных градиентов дает неточный результат. Может ошибка в алгоритме?
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
            double eps = 0.0001;
            int Rows = grid1.RowDefinitions.Count;
            int m1columns_m1rows = comboBox.SelectedIndex + 2;
            double[] Xk = new double[m1columns_m1rows];//Корни
            double[] Rk = new double[m1columns_m1rows];//вектор невязки. Отличие полученных свободных членов от требуемых
            double[] Sz = new double[m1columns_m1rows];
            double[] Zk = new double[m1columns_m1rows];//Вектор спуска
            double[] Pk = new double[m1columns_m1rows];
            double[] St = new double[m1columns_m1rows];
            double[,] t = Transpose(matrix_left); 
            double[] Sk = new double[m1columns_m1rows];
            double alpha, beta, mf;
            double Spr, Spr1, Spz;
            int i, j;
            double tmp,a,b,c;
            double[] prev_x = new double[m1columns_m1rows];
 
            /* Вычисляем сумму квадратов элементов вектора right_matrix(правой части)*/
            for (mf = 0, i = 0; i < Rows; i++)
            {
                mf += matrix_right[0, i]* matrix_right[0, i];
            }
 
            /* Задаем начальное приближение корней. В Хk хранятся значения корней
            * к-й итерации. */
            for (i = 0; i < Rows; i++)
            {
                Xk[i] = 0;
            }
 
            /* Задаем начальное значение r0 и z0. */
            for (i = 0; i < Rows; i++)
            {
                for (Sz[i] = 0, j = 0; j < Rows; j++)
                {
                    Sz[i] += matrix_left[i, j] * Xk[j];
                }
                Rk[i] = matrix_right[0, i] - Sz[i];
                Zk[i] = Rk[i];
                Sk[i] = Rk[i];
                Pk[i] = Rk[i];
            }
            do
            {
                /* Вычисляем числитель и знаменатель для коэффициента
                * alpha = (pk-1,rk-1)/(Azk-1,sk-1) */
                Spz = 0;
                Spr = 0;
 
                for (i = 0; i < Rows; i++)
                {
                    for (Sz[i] = 0,St[i] = 0, j = 0; j < Rows; j++)
                    {
                        Sz[i] += matrix_left[i, j] * Zk[j];
                        St[i] += t[i, j] * Sk[j];
                    }
                    Spz += Sz[i] * Sk[i];
                    Spr += Pk[i] * Rk[i];
                }
                alpha = Spr / Spz;             /*  alpha    */ //величина смещения
 
 
                /* Вычисляем вектор решения: xk = xk-1+ alpha * zk-1,
                вектор невязки: rk = rk-1 - alpha * A * zk-1 и числитель для beta равный (rk,rk) */
                Spr1 = 0;
                a = 0;
                b = 0;
                for (i = 0; i < Rows; i++)
                {
                    Xk[i] += alpha * Zk[i];
                    Rk[i] -= alpha * Sz[i];
                    Pk[i] -= alpha * St[i];
                    Spr1 += Pk[i] * Rk[i];
                }
 
                /* Вычисляем  beta  beta = (pk * rk)/(pk-1 * rk-1) (*/
                beta = Spr1 / Spr;
 
                /* Вычисляем вектор спуска: zk = rk+ beta * zk-1 */
                for (i = 0; i < Rows; i++)
                {
                    Zk[i] = Rk[i] + beta * Zk[i];
                    Sk[i] = Pk[i] + beta * Sk[i];
                }
 
            }
            /* Проверяем условие выхода из итерационного цикла  */
            while (Spr1/mf > eps);
            int R;
            for (i = 0; i < Rows; i++)
            {
                R = i + 1;
                textBox3.Text += "x[" + (i + 1) + "]= " + Xk[i].ToString() + "\n";
            }
Транспонирование матрицы
C#
1
2
3
4
5
6
7
8
9
   public static double[,] Transpose(double[,] m)
        {
            double[,] t = new double[m.GetLength(1), m.GetLength(0)];
            for (int i = 0; i < m.GetLength(0); i++)
                for (int j = 0; j < m.GetLength(1); j++)
                    t[j, i] = m[i, j];
 
            return t;
        }


Вернуться к обсуждению:
Метод бисопряженных градиентов для решения СЛАУ Алгоритмы
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2018, 11:00
Готовые ответы и решения:

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

Метод сопряженных градиентов для решения СЛАУ
Пишу прогу для решения СЛАУ методом сопряженных градиентов. Есть СЛАУ, Ax=B, заданная матрицами ...

Метод простых итераций и метод Зейделя для решения СЛАУ
1. Методом простых итераций и методом Зейделя решить СЛАУ вида Bx=с B=\begin{pmatrix}21 &amp; 3 &amp; 1...

Метод для решения СЛАУ
Вообщем есть такая система на картинке. Нужно ее решить каким-либо способом, не важно. Пробовал...

0
05.03.2018, 11:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2018, 11:00
Помогаю со студенческими работами здесь

Метод Холецкого для решения Слау
Ты не мог бы выложить программу?

Метод Гаусса для решения СЛАУ
Здравствуйте! У меня есть алгоритм решения СЛАУ методом Гаусса, но почему-то он не работает((( Я...

Метод Гаусса для решения СЛАУ
Господа, начну с того, что у меня есть программа (основу, т.е. метод я брал здесь, моя работа...

Метод Зейделя для решения слау
Пытаюсь реализовать метод Зейделя, подсмотрев реализацию в Википедии, написала функцию Itera(). Она...

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