1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
||||||
1 | ||||||
Изменить программу интегрирования методом второго порядка05.03.2015, 23:19. Показов 1873. Ответов 17
Метки нет (Все метки)
Здравствуйте. Возникла проблема с задачей. Вот ее решение:
порядка, т.е. в один шаг. Он страшно неточный, поэтому решение раскачивается и все значения функций быстро нарастают. Поэтому нужно использовать метод хотя бы второго порядка (в два шага), а еще лучше - четвертого Рунге-Кутты. И шаг интегрирования должен быть примерно 0.001. Должны быть периодические функции. Шаг задаю, получаются периодические все правильно. И вместо от 1до350 я поставил от 1до35000. Но у меня не получается преобразовать из первого порядка во второй. Помогите пожауйста. Заранее спасибо
0
|
05.03.2015, 23:19 | |
Ответы с готовыми решениями:
17
Уравнение второго порядка, операционным методом Создать абстрактный класс линия второго порядка с полями – коэффициенты уравнения второго порядка Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл Изобразить область интегрирования на чертеже и изменить порядок интегрирования в повторном интеграле |
Модератор
|
|
06.03.2015, 21:29 | 2 |
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 00:09 [ТС] | 3 |
Да там неважно я так понял по заданию. Главное, что периодический график был. Просто когда я задавал шаг 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 | |||||
Из
получим а потом Методом Рунге-Кутты 4 порядка где Как определялось ранее Это дал поиск по "Рунге Кутта" Добавлено через 9 минут ----------------------------------- Для решения можно воспользоваться каркасом, который я набросал для дифура 1-го порядка - т.к. в твоём первом посте не было ни слова о порядке дифура.
1
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 13:53 [ТС] | 5 |
О, спасибо большое =). Только правда было бы лучше просто второго порядка. Мне сказали, чтоб изменил программу немного и добавил пару строк в нее. А тут она полностью изменена. И чтоб в файл выводилась, как у меня в первом варианте. А можно просто в моей программе сделать так, чтоб изменив несколько строк реализовался метод интегрирования второго порядка. Извиняюсь за наглость конечно.
0
|
Модератор
|
|
07.03.2015, 14:25 | 6 |
Наверное...
Я не пойму "2-го порядка" относится к методу или к уравнению. Но независимо от этого, все изменения будут локализованы в RungeKutta4Step, теперь там нужно добавить вычисления для 2-й производной, а также во всех процедурах решения добавить значение 1-й производной в точке t0 (начальные условия задачи Коши). Ещё, если будет использован другой метод решения, то потребуется переименовать RungeKutta4Step в Xxxx2Step. А приведённую в посте №1 прогу не очень хочется модифицировать. Она рабочая, но нескладная, не расширяемая. Если я начну её переделывать - она сильно изменится. В общем попробуй какой-либо другой вариант - свою новую или переделать одну из имеющихся... Математическая модель уже есть, осталось только в "железе" воплотить.
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 14:36 [ТС] | 7 |
К методу интегрирования второго порядка.
Вы правы, наверное лучше новую. А можно тогда код для программы для этой задачи с методом интегрирования второго порядка? И чтоб с выводом в текстовый файл результаты
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 14:44 [ТС] | 8 |
Ну еще такой график получался, когда я делал программу первый раз с шагом 0,001. И вот нужно бы только с методом интегрирования второго порядка программу и график похожий должен получиться
0
|
Модератор
|
||||||
07.03.2015, 15:45 | 9 | |||||
1. Вывод в текстовый файл по образу и подобию
3. Попробуй реализовать хоть как-нибудь решение, т.к. пока нечего строить.
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
07.03.2015, 17:28 [ТС] | 10 |
Ах да. Задание тут такое было:
Составить программу интегрирования методом второго порядка Я уже когда то писал сюда, но потом вроде разобрался. Там в задании надо построить 2 графика зависимости V(t) и Q(t), проинтегрировава численно уравнение. Все у меня получилось, но преподователь сказал, что я проинтегрировал первым порядком, а нужно хотябы вторым. Вот и думаю...а как можно ее написать так...Программа должна вывести текстовый файл(скину его). В нем должно быть 3 столбца:1)шаг по времени, который задаем;2)Q;3)V. После этого запускаем любой графический редактор(я пользовался гнуплотом) и строим 2 графика q(t) и v(t). График, что скидывал, он практически верный, надо было изменить задачу, использовава метод интегрирования второго порядка
0
|
Модератор
|
||||||
07.03.2015, 21:57 | 11 | |||||
В общем смотри. Всё то же самое, только модифицированный метод Эйлера (по схеме прогноз-коррекция). Формулы - на русской странице Wikipedia.
Вывод t,y,y',y'' в файл организуешь самостоятельно - это не сложно.
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
08.03.2015, 22:25 [ТС] | 12 |
0
|
Модератор
10060 / 5402 / 3353
Регистрация: 17.08.2012
Сообщений: 16,522
|
|
09.03.2015, 18:59 | 13 |
Не секрет. Основной период данной функции чисто комплексный и равен π∙i, где i - мнимая единица.
1
|
Модератор
|
|
09.03.2015, 19:10 | 14 |
Спасибо. Я, действительно, уже забыл, как дифуры решаются. Там же ещё кроме вынужденных, входит и решение для свободных колебаний (подзабыл правильную терминологию).
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
09.03.2015, 20:46 [ТС] | 15 |
Все, я программу написал. Все получилось вроде бы правильно. Использовал метод Рунге-Кутты 4 порядка
0
|
Модератор
|
|
09.03.2015, 20:54 | 16 |
Ну и хорошо.
[не по теме] А ты ещё упоминал gnuplot. Ты графики из командной строки формировал или какая-то GUI-оболочка есть?
0
|
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 10
|
|
09.03.2015, 21:06 [ТС] | 17 |
Программа, как я уже говорил, выдавала текстовый файл с 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 | 18 |
Спасибо.
0
|
09.03.2015, 21:22 | |
09.03.2015, 21:22 | |
Помогаю со студенческими работами здесь
18
Построить область интегрирования и изменить порядок интегрирования(Проверить решение) Решение ЛДУ второго порядка методом прогонки Изменить порядок интегрирования. Построить область интегрирования и вычислить двойной интеграл двумя способами Изменить порядок интегрирования. Область интегрирования изобразить на чертеже Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |