Создать функцию для использования в ode45
Так что это является частью более крупного проекта, но я застрял на номер два раздела. Я переписал систему, чтобы получить его в требуемой форме:
дх (1)/DT = х (2)
дх (2)/дт = (- (М + М)/мл)) х (4) + 1/(мл) у
дх (3)/DT = х (4)
дх (4)/дт = - (мг/м) х (1) + (1/M) у
После подстановки переменных, приведенных в задаче я написал несильно:
function dx = fun(t,x)
dx = zeros(4,1);
dx(1) = x(2);
dx(2) = -((2+.1)/(.1*.5)).*x(4);
dx(3) = x(4);
dx(4) = -((.1*9.81)/2).*x(1);
end
Я запутался в том, как реализовать u (t) = 0 и как создать функцию theta.
Любая помощь, даже если ее просто указывая на меня в правильном направлении, было бы удивительно. Заранее спасибо :)
Спасибо, что помогает тонну :), но как я могу построить график тета (t) против времени? Также u (t) = 0 по существу означает игнорировать u-часть системы? Я знаю, как построить x (t) по сравнению с временем, но если вы добавите эти состояния, как я могу построить только тэта (t) по сравнению с t? –
@ Хлоя Кармайкл пока, да, вы полностью игнорируете 'u (t)'. Хотя я думаю, что это больше не будет игнорироваться в более поздней части вашего проекта. Как вы справитесь с этим, зависит от того, как вы даете. Если это внешняя функция, вы можете просто использовать ее в своем дифференциальном уравнении и передать время в качестве параметра: 'u = funct_u (t)', а затем использовать 'u' в вашем дифференциальном уравнении. – Cat
Также вы уже должны определить 'u' и просто установить его на ноль. То, как вы сформулировали свои уравнения, теперь 'u' полностью отсутствует, что математически видно не так, но с кодовым. 'u' есть, это просто' 0'. – Cat