how to make a function of this system

2 views (last 30 days)
Jens Petit-jean
Jens Petit-jean on 16 May 2021
Commented: Jens Petit-jean on 16 May 2021
how do I make a function of this ?

Answers (1)

Stephan
Stephan on 16 May 2021
syms a b y1(t) y2(t)
ode(1,1) = diff(y1,t,2) == a*y2 - cos(diff(y1,t));
ode(2,1) = diff(y2,t) == b*y1 + cos(t)
ode = 
[V,S] = odeToVectorField(ode)
V = 
S = 
odeFun = matlabFunction(V,'vars',{'t','Y','a','b'})
odeFun = function_handle with value:
@(t,Y,a,b)[cos(t)+b.*Y(2);Y(3);-cos(Y(3))+a.*Y(1)]
tspan = [0 1];
yInit = [5 0 1];
a = 1;
b = 2;
[t,y] = ode45(@(t,Y)odeFun(t,Y,a,b), tspan, yInit);
plot(t,y)
  5 Comments
Stephan
Stephan on 16 May 2021
Edited: Stephan on 16 May 2021
y1 & y2 are the solutions - and due to your system they will only be numerical solutions. They can not be input. So please elaborate what exactly you want to do.
Jens Petit-jean
Jens Petit-jean on 16 May 2021
oh yeah sorry I mean dy(1) and dy(2)

Sign in to comment.

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!