|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2016, 21:02 | #1 |
Регистрация: 24.05.2016
Сообщений: 7
|
c++ Решение уравнения теплопроводности конечно-разностными методами. Неправильно печатается массив массивов(строка из матрицы)
Здравствуйте.
Есть уравнение теплопроводности, оно решается двумя методами и сравнивается с точным решением. Каждый метод оформлен как отдельная функция, принимающая на вход двумерный массив. В этом массивае я накапливаю все шаги метода. Внутри функций все работает и печатается верно. Как только вызываю из главной программы—крайние элементы начинают выводится неправильно, а некоторые строки вообще нулевые. Где ошибка? PHP код:
|
07.06.2016, 21:04 | #2 |
Регистрация: 24.05.2016
Сообщений: 7
|
Выдача выглядит так:
Код:
|
07.06.2016, 22:25 | #3 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
|
08.06.2016, 07:16 | #4 |
Регистрация: 24.05.2016
Сообщений: 7
|
Поменяла q, выдача стала лучше, спасибо. Но проблема с границами так и не ушла.
|
08.06.2016, 15:02 | #5 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
1) Я подумал, что изменения которые я сделал "в неявном методе" справедливо только для соотношения 2/4. А если будет другое?
В этом месте нужно просто q=i; (см. фотографию) 2) Для научных результатов больше подходит ф-ций вывода printf, в которой можно задать количество знаков после запятой (в моем примере выведен 3-й знак после запятой). Тогда вывод получится более аккуратным. Анаже убрала значение 6.94476e-310 (хотя мне всегда говорили, что это и так есть 0-ль, а поэтому я особо не комплексовал по выводу 6.94476e-310). 3) По остальному вопросу мне непонятно что должно выводить. Может быть это (см. фотографию). Но тогда не понятно зачем вообще рассчитывать 3 и 4 слой если их не выводить. Короче, я думал, что в этом месте все правильно выводило, только нужно отодразить что это 3 и 4 слой. 4) Ещё мне не понятно зачем дублировать информацию в внешних функциях (там где "-------")? Зачем захломлять экран одинаковой информацией, например от СЛОЙ=4 и —————4 ? И зачем вообще выводить во внешних функциях? Я бы вывел все в main() в сравнении 0,1,2 слой (как сейчас), а чуть ниже сопоставление 3,4. В этом случае вывод стал бы компактней в 2 раза, а информации никакой не потерял (см. фото №2). Последний раз редактировалось ura_111; 08.06.2016 в 16:11. |
08.06.2016, 17:57 | #6 |
Регистрация: 24.05.2016
Сообщений: 7
|
Задача: сравнить, как считают методы, и сравнить с точным решением. Т.к. шаг неявного больше, то итерация будет меньше (меньше слоев). Поэтому пляшем от неявного метода, и выбираем из всех слоев явного метода и точного решения, только те, которые есть в неявном. А чтобы удобнее было сравнивать, выводим их друг под другом. Для этого в каждом методе я и накапливаю все результаты в матрицу.
Слой 1: явный метод x x x неявный метод: x x x точное (эталон): x x x Функциями все оформлено, чтобы можно было переиспользовать в любой момент, в любой программе, т.е. задача изначально так стояла. И на самом деле, вывод результатов внутри методов нужен только для проверки, все ли считается верно, и как записывается в матрицу, потому что есть проблема, что в main результаты выводятся неверно, и, если увеличить конечное время, то только до 3 слоя, хотя их становится 10. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ Решение уравнения теплопроводности разными методами. Оформление функциями не работает. | Katyam | Помощь студентам | 4 | 25.05.2016 10:29 |
Решение трехмерного уравнения теплопроводности | E90 | Помощь студентам | 2 | 08.08.2012 21:44 |
Разностное решение уравнения теплопроводности.Явный метод(Delphi) | Helene Lee | Помощь студентам | 0 | 27.05.2012 21:16 |
Решение уравнения.массив | SilAs | Помощь студентам | 9 | 22.02.2011 11:27 |
Решения одномерного дифференциального уравнения теплопроводности в частных производных (delphi) | Denzloy | Помощь студентам | 1 | 27.01.2009 14:51 |