how to make a function of this system

1 view (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.

Community Treasure Hunt

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

Start Hunting!