how to make a function of this system

Answers (1)

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

thanks but is it also possible in a functions script like this?:
function [outputArg1,outputArg2] = untitled5(inputArg1,inputArg2)
%UNTITLED5 Summary of this function goes here
% Detailed explanation goes here
outputArg1 = inputArg1;
outputArg2 = inputArg2;
end
Yes, what are the desired in- & outputs?
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.
oh yeah sorry I mean dy(1) and dy(2)

Sign in to comment.

Asked:

on 16 May 2021

Commented:

on 16 May 2021

Community Treasure Hunt

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

Start Hunting!