|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
29.05.2013, 11:12 | #1 | |
Пользователь
Регистрация: 04.11.2012
Сообщений: 33
|
Решение системы дифференциальных уравнений(C++)
Здравствуйте. Подскажите, пожалуйста, как решить систему дифференциальны уравнений:
Цитата:
Другие данные: T(t=0) = 15 V(t=0) = 5 O = 21 S = 18 C = 1.5 k1 = 0.2 k2 = 1.1 k3 = 0.1 /*******************************/ В общем я сделал функцию, которая принимает параметры (T, V, O, S, C, k1, k2, k3), и в цикле мне необходимо посчитать значения T(t), V(t) и D(t), по значениям которых будет строиться график(по оси OY). Ну вобщем я попробовал такой метод: Код:
Последний раз редактировалось stpdqstns; 29.05.2013 в 11:21. |
|
29.05.2013, 11:26 | #2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Начните с простого:
Цитата:
Подсказка: рассматривайте dF/dt как (F(t+dt)-F(t))/dt, где dt - какое-то малое число, скажем, 0.0001. |
|
29.05.2013, 12:27 | #3 |
Пользователь
Регистрация: 04.11.2012
Сообщений: 33
|
Стыдно, но я даже не знаю почему dF/dt нужно рассматривать рассматривать как (F(t+dt)-F(t))/dt
|
29.05.2013, 12:40 | #4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Ну, потому что (если не вдаваться в тонкости) dF/dt в точке t - это предел (F(t+dt)-F(t))/dt при dt стремящемся к нулю. Определение производной.
Но, поскольку пределы компьютер брать не умеет, можно попытаться ограничиться "очень маленьким" dt. |
29.05.2013, 12:52 | #5 | |
Пользователь
Регистрация: 04.11.2012
Сообщений: 33
|
Дифференциальных уравнений никогда в жизни не решал: попробовал , прочитав немного теории для чайников, вот что получилось:
Цитата:
upda: похоже, что нет, подставив 1, ни разу не число Эйлера получилось.. Последний раз редактировалось stpdqstns; 29.05.2013 в 12:54. |
|
29.05.2013, 12:56 | #6 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Не решайте аналитически. Считайте. Программой.
Изначально есть F(0). Можно посчитать F(0+dt). Потом F(dt+dt). Потом F(2dt+dt)... P.S. Упс, невнимательность. dF/dt = F*(1+2t). P.P.S. Если интересно, аналитическое решение для dF/dt = F/(1+2t), F(0)=2 - это F(t)=2*sqrt(2t+1). Последний раз редактировалось Abstraction; 29.05.2013 в 13:01. |
29.05.2013, 13:14 | #7 | |
Пользователь
Регистрация: 04.11.2012
Сообщений: 33
|
Цитата:
|
|
29.05.2013, 14:27 | #8 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
dF/dt = F/(2t+1) => dF/F=dt/(2t+1) => ln(F(t)) = 1/2ln(2t+1) + C => F(t) = C*exp(1/2ln(2t+1)) => F(t) = C*(2t+1)^(1/2). F(0) = 2 = C*(2*0+1)^(1/2) = C => F(t) = 2*sqrt(2t+1). Можно подставить и проверить. Посчитать программно - значит, написать программу, которая будет выводить F(t). Аналогично Вашему исходному заданию. Да, F(1) в этом уравнении равно 2*sqrt(3). Мой косяк (см. P.S. в предыдущем сообщении). Получилось бы, если бы уравнение было dF/dt = F*(1+2t), с тем же начальным условием. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение дифференциальных уравнений в Excel | cMep4[21] | Microsoft Office Excel | 0 | 20.04.2013 12:32 |
Численное решение дифференциальных уравнений | Sargil | Помощь студентам | 3 | 28.12.2012 11:00 |
РЕШЕНИЕ СИСТЕМЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ методом Эйлера | ruslan 91 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.01.2011 22:12 |
Решение обыкновенных дифференциальных уравнений | Craz | Помощь студентам | 0 | 28.11.2009 21:25 |