3 / 3 / 1
Регистрация: 19.07.2008
Сообщений: 142
|
||||||
1 | ||||||
Последний метод итераций19.06.2009, 12:54. Показов 5723. Ответов 17
Метки нет (Все метки)
Здравсвуйте программисты! Спасибо за ответы на предыдущие посты. Осталось решить методом итераций систему уравнений. Вчера Сазари мне подсказал как делать методом Зейделя, осталось методом итераций. Вот попробывал собрать код методом итераций, но дело в том,что результат системы уравнений равен по -1, все 4 уравнения, подскжаите пожалуйста где в данном коде мождет быть проблемма.
Загвоздка в результате. Зараннее благодарен за скорый ответ. Вот код:
1
|
19.06.2009, 12:54 | |
Ответы с готовыми решениями:
17
Посчитать количество проведенных итераций (метод простых итераций, Pascal -> C++) Метод итераций и метод Зейделя метод итераций с++ метод итераций |
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
29.11.2009, 13:05 | 2 |
А ты можешь вкратце объяснить как ты приводишь матрицу к диагонально-преобладающему виду?
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||||||
29.11.2009, 14:19 | 3 | |||||
Можно как-то так:
Код
1
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
29.11.2009, 16:24 | 4 | |||||
А как Вы приводите матрицу к диагонально-преобладающему виду?
Добавлено через 2 минуты Вот например тут в коде матрица приводится к диагонально-преобладающему виду. Поэтому код работает для любой хорошо обусловленной матрицы, записанной произвольно. Но я его никак с фортрана на С++ не преведу( http://rulekcia.ru/kurs/45/2353
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
29.11.2009, 16:32 | 5 |
А у Вас решается просто итеративный процесс. Если матрица не диагонально-преобладающая, то он расходится. Я в Вашем коде не вижу такого. Ради примера вот есть текстовик, там объясняется о чем я и приводится один из алгоритмов, но я тоже не в силах пока его норм реализовать. Уже несколько дней не спал, очень плохо соображаю.Метод Якоби(итеративный).rar
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
29.11.2009, 17:50 | 6 |
Тут основная проблема в том, что выбор коэффициентов - задача NP-полная. Что тут применить пока не доходит
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
29.11.2009, 22:22 | 7 |
Дело в том, что в Методе простых итераций используется преобразованная система уравнений.
Если, в общем виде записывается система вот так: A*X = B; но преобразованная система выглядет так: X = альфа*x + бета; Переход к преобразованной системе уравнений происходит следующим образом: бета i = Bi / Aii; альфа i j = - Aij / Aii; при i,j = 1,2...n; и i не равно j; при i = j альфа i j = 0;
2
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
29.11.2009, 22:27 | 8 |
Дело вот в чем. Я это знаю, но если Матрица А не диагонально преобладающая, то после таких преобразований Вы получите расходящийся процесс. Так как норма матрицы альфа будет больше еденицы. Иногда он сходится, если матрица хорошо обусловлена, но в большинстве случаев, если норма больше еденицы - то все плохо Нужно диагональное преобладани. В том текстовике они приводят её к такому виду. И даже есть блок-схемы, но я не могу их разобрать. Все запутано. По крайней мере, для меня.
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||||||
29.11.2009, 22:34 | 9 | ||||||||||
ну так матрицу не всегда можно привести к диагонально преобладающей. в этом вся и загвоздка - это называется проверка на сходимость или как-то так. методом простых итераций можно решить не любую систему уравнений.
1
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
29.11.2009, 22:51 | 10 |
Хорошо. Щас я выложу систему, которая не решается "в лоб" но к диагонально-преобладающему виду приводится.
Однако переставляя строки местами и скаладывая их и вычитая, домножив на произвольные коэффициенты её можно свети к такой (кстати очень даже быстро): Вот тут, когда Вы делите на Aii, то это Aii должно по модулю превышать сумму элементов соответствующей строки. А если это не выполняется, то полученная матрица альфа будет с нормой намного большей еденицы.
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
29.11.2009, 23:06 | 11 |
Да
я лишь перевел с фортрана насчет сложений/вычитаний/домножений - не знаю.. Но это, по идеи, и не важно. А перемещение строк - это просто. Достаточно искать максимальный элемент по модулю (предположительно диагональный), смотреть его индекс и перемещать строку в ту позицию, в которой этот максимальный элемент будет диагональным. И все таки, как вы получили из строки:
1
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
29.11.2009, 23:49 | 12 |
Я делал так:
1) Сложил первую строку с третьей, и записал р-тат в первую. 2) Вычел из первой 2*на вторую и записал в первую. 3) Записал то, что во второй в первую. 4) записал то, что в третьей во вторую. 5) Записал то, что в первой в третью. Как это не важно, только переставляя строки ничего не добъешься.
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
30.11.2009, 00:49 | 13 |
по идеи 0.278 должно быть
Дело в том, что написать программу которая анализировала и думала бы как человек - тяжело. Именно поэтому, этот способ и редко применяется. Обычно используется метод приведения матрицы к треуголному виду.
1
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
30.11.2009, 12:14 | 14 |
А я напиасал. Потом выложу. Я щас на пары ухожу.
0
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
01.12.2009, 21:01 | 15 | |||||
Добавлено через 23 минуты Monte-Cristo, что скажете?
0
|
blackwizard
|
|
18.05.2010, 19:14 | 16 |
спасибо, полезная тема.
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 836
|
|
18.10.2010, 11:49 | 17 |
Найти корень алгебраического уравнения на заданном интервале [a,b],с точностью эпсилон 0,00001
(x-1)^2-0,5e^x=0 интервал [-0,2;0,3] Помогите пожалуйста
0
|
-5 / 6 / 4
Регистрация: 16.12.2010
Сообщений: 68
|
|
02.12.2011, 01:39 | 18 |
prikolist, а можещь поделится методом зейделя???
0
|
02.12.2011, 01:39 | |
02.12.2011, 01:39 | |
Помогаю со студенческими работами здесь
18
Метод итераций Метод итераций Метод итераций метод итераций метод итераций Метод итераций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |