Слау методом простых итерации. Не решаемое? |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Слау методом простых итерации. Не решаемое? |
Vitik |
11.05.2011 10:18
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Здравствуйте все!
Есть задание: Решить систему линейных алгебраических уравнений методом простых итерации с точностью e=0,001. x1+5*x2-x3=7 x1-x2+5*x3=7 8*x1+x2+x3=26 Вот мое решение: uses crt; Проблема заключается в том что последний цикл не решается, т.е. сам пример. Решил проверить в ручную и тоже самое. Неужели это система не решаемое? или я что-то на путал? Объясните пожалуйста. П.С. если уж она не решается, подскажите ка закончить программу для сдачи преподу. |
Lapp |
11.05.2011 11:52
Сообщение
#2
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Решить систему линейных алгебраических уравнений методом простых итерации с точностью e=0,001. x1+5*x2-x3=7 x1-x2+5*x3=7 8*x1+x2+x3=26 Вот мое решение: <...> Проблема заключается в том что последний цикл не решается, т.е. сам пример. Решил проверить в ручную и тоже самое. Неужели это система не решаемое? или я что-то на путал? Объясните пожалуйста. Интересно получается )). Ты посмотри на условие выхода из цикла. Что оно означает? Что ты ждешь, что решение будет нулевым. Надо сравнивать с заданной точностью НЕ САМИ решения, а их разности на последовательных итерациях. Короче, я подправил (и не только), и программа успешно завершается. Но я совершенно не знаю, что ты делаешь выше этого цикла. Например, зачем нужен кусок, который у тебя называется "проверка диоганалей" (орфография сохранена)), если он не оказывает совершенно никакого влияния на выполнение программы? Это просто так - потусоваться что ли? )) const -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Vitik |
11.05.2011 22:36
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Lapp, спасибо большое.
Цитата зачем нужен кусок, который у тебя называется "проверка диоганалей" (орфография сохранена)), если он не оказывает совершенно никакого влияния на выполнение программы? Это просто так - потусоваться что ли? )) В справочниках, где говорилось про решение слау методом простых итерации, необходимо чтобы диагональные значения были больше суммы остальных данной строки, вот почему стоит проверка диагоналей. Мне преподаватель говорил, что любой программист должен стремится к универсальности (как-то так примерно), т.е. писать программы не для единичного случая, а для схожих типов задач (типовых). В данном случае это черновой вариант программы, надо лишь немного отредактировать (сделать подпрограммы) и будит МОЯ СОБСТВЕННАЯ типовая программа для решения слау методом простых итерации. Еще раз спасибо. |
Lapp |
12.05.2011 2:31
Сообщение
#4
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
В справочниках, где говорилось про решение слау методом простых итерации, необходимо чтобы диагональные значения были больше суммы остальных данной строки, вот почему стоит проверка диагоналей. Мне преподаватель говорил, что любой программист должен стремится к универсальности (как-то так примерно), т.е. писать программы не для единичного случая, а для схожих типов задач (типовых). Я ни секунды не возражаю. Все, что я сказал - это что тот кусок не оказывает ни малейшего воздействия на выполнение программы. Что его нет, что он есть - результат один. Разница только во времени выполнения (без него быстрее)). Если делаешь проверку, то: 1. делай ее правильно; 2. используй ее результаты как-то. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Vitik |
12.05.2011 9:38
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Цитата Я ни секунды не возражаю. Все, что я сказал - это что тот кусок не оказывает ни малейшего воздействия на выполнение программы. Что его нет, что он есть - результат один. Разница только во времени выполнения (без него быстрее)). Как не оказывает!? А если в другом примере не нужно переставлять строки, и так все устраивает. Тогда действие перестановки строки будет не нужной и приводящая к неправильному решению. Цитата Если делаешь проверку, то: 1. делай ее правильно; 2. используй ее результаты как-то. Ее результат используется, нужна ли перестановка или нет |
-Lapp- |
12.05.2011 11:11
Сообщение
#6
|
Гость |
Как не оказывает!? Зачем так эмоционально? Компьютер не реагирует на эмоции, криком ничего с ним не добьешься. Цитата Ее результат используется, нужна ли перестановка или нет Еще раз тебе говорю - вот этот кусок:{проверка диоганалей}- совершенно никакого действия на последующее выполнение программы не оказывает. Чем возмущаться, лучше проверь. |
Vitik |
12.05.2011 14:03
Сообщение
#7
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Цитата Еще раз тебе говорю - вот этот кусок: {проверка диоганалей}- совершенно никакого действия на последующее выполнение программы не оказывает. Чем возмущаться, лучше проверь. Верно данный кусок в моем примере никакого действия на последующее выполнение программы не оказывает. ОДНАКО, как я говорил, это черновой вариант и пишу под общий тип. Т.е. этот кусок будет у меня подпрограммой и выполнять проверку для других однотипных задач, где требуется перестановка, а где нет. |
Lapp |
12.05.2011 23:46
Сообщение
#8
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Верно данный кусок в моем примере никакого действия на последующее выполнение программы не оказывает. Что это верно, я знал с самого начала, мне твое подтверждение не требовалось.Цитата ОДНАКО, как я говорил, это черновой вариант и пишу под общий тип. Т.е. этот кусок будет у меня подпрограммой и выполнять проверку для других однотипных задач, где требуется перестановка, а где нет. Vitik, не надо нести чушь в оправдание.Я видел только этот твой код и говорил, естественно, только про него. Я указал на факт, на что ты отреагировал так: "Как не оказывает!?" Верно? А теперь ты пишешь, это типа была часть плана?.. Простое "спасибо" за указание на ошибку тут было бы ГОРАЗДО уместнее. Может, ты и научишься программировать. Но ОЧЕНЬ тебе рекомендую научиться признавать свои ошибки и не лезть в бутылку, когда тебе стараются помочь. В этом нет ничего страшного, и - главное - всем будет хорошо. Успехов тебе. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
-Дмитрий- |
31.10.2012 21:58
Сообщение
#9
|
Гость |
Здравствуйте! Мне тоже понадобилась решение СЛАУ этим методом. Нашёл ваш код. Но возникла проблема при компиляции. Выдаёт ошибку, что "Невозможно присвоить константному объекту" в куске кода:
|
Гость |
31.10.2012 21:59
Сообщение
#10
|
Гость |
p:=b[i];
b[i]:=b[i-1]; b[i-1]:=p |
Гость |
31.10.2012 22:01
Сообщение
#11
|
Гость |
Как решить данную проблемку?
А вообще мне нужно переделать прогу под размерность 4х4, но я думаю с этим сам справлюсь. |
Текстовая версия | 27.04.2024 15:31 |