Use function with symbolic variable within ODE45 in van der pol oscillator problem
3 views (last 30 days)
Show older comments
I want to call the second order derivative term as a symbolic function insead of the procedure stated in MATLAB documentation. How can I make this run. Thanks in advance.
%%
clear all
clc
syms t y
[t,y] = ode45(@(t,y)vdp1(t,y),[0 20],[2; 0])
function dydt = vdp1(t,y)
syms p1 p2
EQ1=2*(1-p1^2)*p2-p1;
% dydt = [y(2); 1*(1-y(1)^2)*y(2)-y(1)];
function k= makfun(EQ1,y(1),y(2))
k=subs(EQ1,[p1 p2],[y(1) y(2)]);
end
dydt = [y(2); makfun(EQ1,y(1),y(2))];
end
0 Comments
Answers (1)
Gokul Nath S J
on 21 Oct 2022
Dear Aninda Pal,
There are few ways by which you can use symbolic to find the derivative. Refer to the code below.
syms y(t) dydt(t)
y(t) = t^2 + 2*t + 5;
dydt(t) = diff(y(t));
A sample function of y(t) has been created for the demonstration. If you want to evaluate the derivative at a specific point, say 5, just call dydt(5).
Refer to the attached documentation for more info.
0 Comments
See Also
Categories
Find more on Ordinary Differential Equations 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!