Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/75: Рейтинг темы: голосов - 75, средняя оценка - 4.59
5 / 3 / 2
Регистрация: 28.02.2019
Сообщений: 29
1

Метод сопряженных градиентов

22.02.2020, 01:46. Показов 14301. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема в том что по какой-то причине алгоритм неправильно считает результирующую матрицу
Я сколько не смотрел, не смог понять где косяк
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def fletcherrievesmethod(A, b, tol):
    it = 0
    x = 0
    r = np.copy(b)
    r_prev = np.copy(b)
    rho = np.dot(r, r)
    p = np.copy(r)
    while (np.sqrt(rho) > tol * np.sqrt(np.dot(b, b)) ):
        it += 1
        if it == 1:
            p[:] = r[:]
        else:
            beta = np.dot(r, r) / np.dot(r_prev, r_prev)
            p = r + beta * p
            w = np.dot(A, p)
            alpha = np.dot(r, r) / np.dot(p, w)
            x = x + alpha * p
            r_prev[:] = r[:]
            r = r - alpha * w
            rho = np.dot(r, r)
 
    return x, it
Выдает ответ:
0.53027305, 2.86445254, -1.09950536

Когда, в то же время верный ответ:
1 2 -1

Исходные матрицы
Python
1
2
3
4
5
6
a= [[3,-1,1],
    [3,5,1],
    [-1,2,4]
    ]
 
b=[0,12,-1]
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2020, 01:46
Ответы с готовыми решениями:

Метод сопряженных градиентов решения матричных уравнений
Пытался решить по алгоритму приведенному у Yousef Saad x1...

Метод сопряженных градиентов
Здравствуйте! Помогите, пожалуйста, разобраться с программой по методу сопряженных градиентов...

Метод Сопряжённых Градиентов
#include <iostream> #include <cstdlib> #include <cmath> #include "sol.h" using namespace std;...

Метод сопряжённых градиентов
Здравствуйте. Что и требовалось по заданию, найдены значения неизвестных (хоть и с некими...

Метод сопряжённых градиентов
Всем доброго времени суток. Хочу разобраться в методе сопряжённых градиентов. Нашёл в сети задачу...

6
4921 / 2674 / 550
Регистрация: 07.11.2019
Сообщений: 4,395
22.02.2020, 09:38 2
Лучший ответ Сообщение было отмечено sergeu908 как решение

Решение

Цитата Сообщение от sergeu908 Посмотреть сообщение
Выдает ответ:
0.53027305, 2.86445254, -1.09950536
А про то что выдает еще и ошибку вы, почему-то, умолчали...
1. Почему у вас матрица а не симметричная (симметричная-положительноопределенная)? Экстремум какой функции ищите?
2. Задавайте начальные данные как числа с плавающей точкой.
3. tol=?
1
5 / 3 / 2
Регистрация: 28.02.2019
Сообщений: 29
22.02.2020, 20:08  [ТС] 3
Цитата Сообщение от u235 Посмотреть сообщение
1. Почему у вас матрица а не симметричная (симметричная-положительноопределенная)? Экстремум какой функции ищите?
Матрицу дал преподаватель, и сказал написать алгоритмы и решить.Я не думал о проверке.
Задание заключалось в написании некоторых алгоритмов решения СЛАУ
Цитата Сообщение от u235 Посмотреть сообщение
tol=?
Заданная точность вычисления
Цитата Сообщение от u235 Посмотреть сообщение
А про то что выдает еще и ошибку вы, почему-то, умолчали...
Ну об этом косяке я умолчал, потому что уверен что в моем написании алгоритма ошибка
0
4921 / 2674 / 550
Регистрация: 07.11.2019
Сообщений: 4,395
22.02.2020, 20:42 4
sergeu908, сопряженные градиенты это про поиск экстремума, а не про СЛАУ.
Если ищите экстремум функции, то матрица Гессе (A) будет симметрична.
Никто не гарантирует сходимость если A не симметрична...
и чему равен у вас tol?
0
5 / 3 / 2
Регистрация: 28.02.2019
Сообщений: 29
22.02.2020, 21:02  [ТС] 5
Цитата Сообщение от u235 Посмотреть сообщение
и чему равен у вас tol?
1e-6

Цитата Сообщение от u235 Посмотреть сообщение
сопряженные градиенты это про поиск экстремума, а не про СЛАУ.
https://ru.wikipedia.org/wiki/... шения_СЛАУ)
0
4921 / 2674 / 550
Регистрация: 07.11.2019
Сообщений: 4,395
22.02.2020, 21:14 6
Хорошо, но все равно на матрицу там накладываются ограничения в симметричности и положительной-определенности.
Советую придумать для себя простую систему уравнений с заданым экстремумом и поотлаживать код. Если все сойдется, значит код верный и проблема с данными (несимметричности, например).
0
5 / 3 / 2
Регистрация: 28.02.2019
Сообщений: 29
22.02.2020, 21:23  [ТС] 7
Цитата Сообщение от u235 Посмотреть сообщение
там накладываются ограничения в симметричности и положительной-определенности.
Да, в этом вы правы, это я не учел в ходе проверки. В итоге так и вышло, если ограничения соблюдены то решение четкое.
И еще влияние оказало смена типа чисел на числа с плавающей точной
1
22.02.2020, 21:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2020, 21:23
Помогаю со студенческими работами здесь

Метод сопряжённых градиентов
Всем доброго времени суток! У меня проблема с алгоритмом нелинейного метода сопряжённых градиентов....

Метод сопряжённых градиентов!
Уважаемые форумчане здравствуйте! Есть ли у кого исходники Метода сопряжённых градиентов для...

Метод сопряжённых градиентов
На скринах изображён ход оптимизации функции с двумя переменными, методом сопряжённых градиентов....

Метод сопряженных градиентов...
Помогите пожалуйста написать программу решения задачи минимизации функции без ограничений методом...

метод сопряжённых градиентов
Решение задачи оптимизации с помощью метода сопряжённых градиентов существенно зависит от...


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

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