Форум программистов, компьютерный форум, киберфорум
Численные методы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510

Метод не сходится при слишком высокой точности

20.03.2016, 22:08. Показов 2074. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не знаю, нужный ли раздел выбран - возможно, этот вопрос больше связан с реализацией, нежели с теорией, но надеюсь, что вы сможете дать совет по решению проблемы.

Нужно было сделать метод SOR для решения уравнения пуассона uxx+uyy=f(x,y) для произвольной точности.
Сначала, для определения сходимости я использовал невязку: в таком случае, я мог задать любую точность (проверял до 10^-10), и алгоритм сходился.
Потом я попробовал задать норму: https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{Ng}\sum_{Ng}^{}|\varepsilon| где Ng - количество внутренних узлов сетки (внутренних, т.к. на граничных по условию функция равна нулю). Эпсилон - разность между точным и приближенным решением (точное заранее известно).

На этой норме алгоритм перестает сходится при точности 10^-4. Полностью перестает сходится. Если на предыдущих точностях (-1,-2,-3) требовалось соответственно 50, 130 и 230 итераций, то при -4 даже на 60000-й итерации, алгоритм не сходится.

На определенной итерации норма начинает то увеличиваться, то уменьшаться (изменения происходят на 20м знаке) и в общем счете метод не сходится...

Как вы думаете - это связано с округлением в эвм, или какими-то особенностями данного метода?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2016, 22:08
Ответы с готовыми решениями:

Датчик высокой точности и быстродействия
Привет всем! Нужен опытный совет, по выбору датчика положения высокой точности и быстродействия. Условия: работа при линейном...

Не сходится теория и практика метод Шелла и метод простого выбора
Здравствуйте! Помогите пожулуйста найти ошибке в коде, Я уже не знаю где ее искать. У меня метод простого выбора работает по показателям...

Есть метод класса внутри , есть проверка. Если условие сходится то метод должен выдать указатель, иначе булевую переменную
Есть метод класса внутри которого, посередине, есть проверка. Если условие сходится то метод должен выдать указатель на вектор, а если нет...

2
 Аватар для bobah16
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
23.03.2016, 17:39
Лучший ответ Сообщение было отмечено proggamer12 как решение

Решение

proggamer12, и при какой размерности матрицы не сходится SOR? Точность вообще говоря зависит от метода аппроксимации уравнения и шага сетки, и если взять мало узлов то хоть миллиард итераций сделай, решение не сойдется к точному (ну итерации то сойдутся конечно, только не к тому, к чему нужно). Вообще такие системы решают точно, тогда погрешность будет зависеть только от шага сетки и не будет зависеть от количества итераций.

В случае, когда вы задаете условие остановки с помощью указанной вами нормы, если шаг сетки слишком большой, тогда метод сойдется, но условие будет не выполнено, поэтому итерации продолжаться. Думаю в этом причина.
Если порядок аппроксимации вашего метода h^2, тогда при шаге 0.01 вы можете задать эпсилон порядка 0.0001 и не меньше. Иначе решение системы сойдется к результату, для которого ваше условие не будет выполнено в силу причин, озвученных мной выше.
1
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
23.03.2016, 21:27  [ТС]
Спасибо!
Действительно, шаг сетки приближенно равен 0,04, видимо поэтому и не сходится
Крайне признателен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2016, 21:27
Помогаю со студенческими работами здесь

Метод эквивалентного генератора не сходится
Рассчитал схему методом эквивалентного генератора но не сходится, Рас читать ветвь I2, Перерисовав схему и сделав режим холостого хода...

Не сходится метод переменных направлений (ADI)
Здравствуйте! Требуется решить уравнение вида u_{xx}+u_{yy}=f \pi/2\leq x,y\leq5\pi/2 Сетка 0<=m<=N; 0<=n<=N; По...

Метод Монте-Карло для решения тройного интеграла (не сходится решение)
Здравствуйте. Только начинаю изучать данный метод. Не могу до конца его понять. Полазив на форуме, получилось написать такую программку,...

Метод Рунге-Кутта 4 порядка точности
Уважаемые Форумчане помогите решить задачу Коши для обыкновенного дифференциального уравнения y' =f(x, y) на промежутке методом...

Метод Рунге-Кутта 40го порядка точности
Доброго времени суток, уважаемые форумчане! Решаю следующие краевые задачи: 1. \frac{dx}{dt}=\frac{d^2x}{ds^2} Граничные...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru