1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
||||||
Изменить программу интегрирования методом второго порядка05.03.2015, 23:19. Показов 1896. Ответов 17
Метки нет Все метки)
(
Здравствуйте. Возникла проблема с задачей. Вот ее решение:
порядка, т.е. в один шаг. Он страшно неточный, поэтому решение раскачивается и все значения функций быстро нарастают. Поэтому нужно использовать метод хотя бы второго порядка (в два шага), а еще лучше - четвертого Рунге-Кутты. И шаг интегрирования должен быть примерно 0.001. Должны быть периодические функции. Шаг задаю, получаются периодические все правильно. И вместо от 1до350 я поставил от 1до35000. Но у меня не получается преобразовать из первого порядка во второй. Помогите пожауйста. Заранее спасибо
0
|
05.03.2015, 23:19 | |
Ответы с готовыми решениями:
17
Уравнение второго порядка, операционным методом Создать абстрактный класс линия второго порядка с полями – коэффициенты уравнения второго порядка Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл |
Модератор
![]() ![]() |
|
06.03.2015, 21:29 | |
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 00:09 [ТС] | |
Да там неважно я так понял по заданию. Главное, что периодический график был. Просто когда я задавал шаг 0,1(как в програаму), то график резко вверх уходил. А когда 0,001, то периодический. Если что исследование проводил так:
1. Имеем существенно-нелинейное дифференциальное уравнение второго порядка с граничными условиями, каковое нужно решить. 2. Решение сводится прежде всего к преобразованию уравнения второго порядка к системе уравнений первого порядка. Делается это так. а) Исходное уравнение: d²q/dt² = exp(-q)(exp(-q)-1) б) Вводим новую переменную v = dq/dt в) Записываем систему dv/dt = exp(-q)(exp(-q)-1) = f(q) dq/dt = v = g(v) 3. Решаем систему численно. Поскольку нам предлагается использовать простой метод второго порядка, то воспользуемся простым (немодифицированным) методом Эйлера. Тут так. а) Задаем шаг по времени Δt. б) Допустим, мы знаем значения функций q(t) и v(t) для какого-то i-того значения t, т.е. мы знаем q(ti) и v(ti). Тогда мы определяем значения q(ti+Δt) и v(ti+Δt), как v(ti+Δt) = v(ti) + f(q(ti))*Δt q(ti+Δt) = q(ti) + g(v(ti))*Δt в) Стартуя от данных начальных условий, строим функции и графики q(t) и v(t). Вот тут и в программе я использовал метод интегрирования первого порядка. А нужно ходяб второго. Я в интегрировании не силен( и никак не выходит сделать как надо
0
|
Модератор
![]() ![]() |
||||||
07.03.2015, 01:58 | ||||||
Из
получим а потом Методом Рунге-Кутты 4 порядка где Как определялось ранее Это дал поиск по "Рунге Кутта" Добавлено через 9 минут ----------------------------------- Для решения можно воспользоваться каркасом, который я набросал для дифура 1-го порядка - т.к. в твоём первом посте не было ни слова о порядке дифура.
1
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 13:53 [ТС] | |
О, спасибо большое =). Только правда было бы лучше просто второго порядка. Мне сказали, чтоб изменил программу немного и добавил пару строк в нее. А тут она полностью изменена. И чтоб в файл выводилась, как у меня в первом варианте. А можно просто в моей программе сделать так, чтоб изменив несколько строк реализовался метод интегрирования второго порядка. Извиняюсь за наглость конечно.
0
|
Модератор
![]() ![]() |
|
07.03.2015, 14:25 | |
Наверное...
Я не пойму "2-го порядка" относится к методу или к уравнению. Но независимо от этого, все изменения будут локализованы в RungeKutta4Step, теперь там нужно добавить вычисления для 2-й производной, а также во всех процедурах решения добавить значение 1-й производной в точке t0 (начальные условия задачи Коши). Ещё, если будет использован другой метод решения, то потребуется переименовать RungeKutta4Step в Xxxx2Step. А приведённую в посте №1 прогу не очень хочется модифицировать. Она рабочая, но нескладная, не расширяемая. Если я начну её переделывать - она сильно изменится. В общем попробуй какой-либо другой вариант - свою новую или переделать одну из имеющихся... Математическая модель уже есть, осталось только в "железе" воплотить.
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 14:36 [ТС] | |
К методу интегрирования второго порядка.
Вы правы, наверное лучше новую. А можно тогда код для программы для этой задачи с методом интегрирования второго порядка? И чтоб с выводом в текстовый файл результаты
0
|
Модератор
![]() ![]() |
||||||
07.03.2015, 15:45 | ||||||
1. Вывод в текстовый файл по образу и подобию
3. Попробуй реализовать хоть как-нибудь решение, т.к. пока нечего строить.
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 17:28 [ТС] | |
Ах да. Задание тут такое было:
Составить программу интегрирования методом второго порядка Я уже когда то писал сюда, но потом вроде разобрался. Там в задании надо построить 2 графика зависимости V(t) и Q(t), проинтегрировава численно уравнение. Все у меня получилось, но преподователь сказал, что я проинтегрировал первым порядком, а нужно хотябы вторым. Вот и думаю...а как можно ее написать так...Программа должна вывести текстовый файл(скину его). В нем должно быть 3 столбца:1)шаг по времени, который задаем;2)Q;3)V. После этого запускаем любой графический редактор(я пользовался гнуплотом) и строим 2 графика q(t) и v(t). График, что скидывал, он практически верный, надо было изменить задачу, использовава метод интегрирования второго порядка
0
|
Модератор
![]() ![]() |
||||||
07.03.2015, 21:57 | ||||||
В общем смотри. Всё то же самое, только модифицированный метод Эйлера (по схеме прогноз-коррекция). Формулы - на русской странице Wikipedia.
Вывод t,y,y',y'' в файл организуешь самостоятельно - это не сложно.
0
|
Модератор
![]() ![]() |
|
09.03.2015, 19:10 | |
Спасибо. Я, действительно, уже забыл, как дифуры решаются. Там же ещё кроме вынужденных, входит и решение для свободных колебаний (подзабыл правильную терминологию).
0
|
Модератор
![]() ![]() |
|
09.03.2015, 20:54 | |
Ну и хорошо.
[не по теме] А ты ещё упоминал gnuplot. Ты графики из командной строки формировал или какая-то GUI-оболочка есть?
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
09.03.2015, 21:06 [ТС] | |
Программа, как я уже говорил, выдавала текстовый файл с 3 столбцами чисел(шаг, Q и V). Я в гнуплоте забивал: plot 'result3.txt' u 1:2 w linesp, 'result3.txt' u 1:3 w linesp. Где: 'result3.txt' - этот файл, u 1:2 - построить график по 1 и 2 стобцу, u 1:3 - по 1 и 3 столбцу, w linesp - чтоб точки графика соединять отрезками. И он сторил графики. А чтоб он мне сразу график в файл выводил я прописывал:
gnuplot > set terminal png size 1366, 768 gnuplot > set output 'graph.png' gnuplot > plot 'result3.txt' u 1:2 w linesp, 'result3.txt' u 1:3 w linesp И получается такой вот график наподобии того, что кидал выше
1
|
Модератор
![]() ![]() |
|
09.03.2015, 21:22 | |
Спасибо.
0
|
09.03.2015, 21:22 | ||||||
Помогаю со студенческими работами здесь
18
Изобразить область интегрирования на чертеже и изменить порядок интегрирования в повторном интеграле Построить область интегрирования и изменить порядок интегрирования(Проверить решение) Решение ЛДУ второго порядка методом прогонки Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл двумя способами Изменить порядок интегрирования. Область интегрирования изобразить на чертеже Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
|
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
|
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
|
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
|
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
|
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
|
Линейное решение нелинейной задачи с помощью арктангенса для метода обработки данных из double buffering.
Hrethgir 10.04.2025
Публикация в доработке, метод арктангенса в комментариях внизу.
Вообще изначально я пренебрёг квадратурой числа, но потом понял, что для вычисления приблизительного значения - сгодится, формулу. . .
|
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
|
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
|
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
|