я пытался решить дифференциальное уравнение второго порядка, используя этот 1, однако Я не мог понять это правильно и не нашел ничего полезного в Интернете, но я считаю, что добился прогресса.
Я использовал dsolve;
syms x(t) v(t) fi(t)
[x(t), v(t)] = dsolve(diff(x) == v, diff(v) == fi/m, x(0) == [-L, -L], v(0) == [5, 10] )
что дает мне;
x(t) =
int(fi(x)/5, x, 0, t, 'IgnoreSpecialCases', true, 'IgnoreAnalyticConstraints', true) - 5
v(t) =
C2 + t*(int(fi(x)/5, x, 0, t, 'IgnoreSpecialCases', true, 'IgnoreAnalyticConstraints', true) - 5) + int(-(x*fi(x))/5, x, 0, t, 'IgnoreSpecialCases', true, 'IgnoreAnalyticConstraints', true)
Теперь мне нужна помощь в обработке результата, и мне интересно, могу ли я использовать этот результат, чтобы получить что-то из ode45? Также я хочу построить решение как эталонную траекторию для моделирования 500 частиц, движущихся через силовое поле.
используя ODE45:
function dxdt = solution(t,y0)
frprintf('Second stop')
.....
dxdt = [x, v]
end
вызов из основного файла:
t:dt:t_f
y0 = [x0,v0]
fprintf('first stop')
[x, v] = ode45(@solution, y0, t)
Я настроил его так, что если код будет работать гладко, он будет печатать «первая остановка, вторая остановка, третья остановка» и «четвертая остановка», он печатает только первую остановку, и вот где я получаю ошибку.
dsolve
иint
предназначены для символьной математики и предназначены в основном для получения аналитических решений.ode45
используется для численного решения ОДУ. Эти две вещи очень отличаются друг от друга. Ваши символические уравнения здесь полностью абстрактны, поэтому вам не следует ожидать каких-либо решений. Я рекомендую вам вернуться к изучению того, как использоватьode45
. Прочтите документацию (doc ode45
в командном окне). Попробуйте примеры. Не ждите, что сразу все поймете. Если вы столкнетесь с проблемами / вопросами, выполните поиск на этом сайте. Если вы задаете вопрос, убедитесь, что он конкретен. - person horchler   schedule 18.05.2015dsolve
предназначен для того, чтобы дать вам аналитическое решение дифференциального уравнения, если оно существует. Здесь ее не может быть, потому что вы все указали в терминах абстрактной функции (функции без определения)fi
. Если вы хотите использовать символьную математику для получения функций дляode45
, -numeric-solution/" rel="nofollow noreferrer">см. этот пост в блоге MathWorks. - person horchler   schedule 19.05.2015