
Warning: Explicit solution could not be found.Īdding the initial values does not help: Dy = diff(y) dsolve(ode,y(0) = 2,Dy(0) = 0)

When trying to compute a solution of this ODE using dsolve, we see that the symbolic ODE solver does not find an explicit closed form solution: dsolve(ode) We define it in a symbolic form using a symbolic function symfun y(t): syms y(t) We start with the second-order non-linear ODE with two given initial values: Solve the differential equation numerically using the MATLAB numeric ODE solver ode45ĭefining a Differential Equation in Symbolic Form.Create a function handle for the coupled first-order system using matlabFunction.Convert it to a coupled first-order system using odeToVectorField.Define an ODE in a symbolic form using symbolic functions.This article demonstrates the following workflow of transforming a symbolic representation of an ODE to a form accepted by the MATLAB numeric ODE solver ode45. Numeric solvers usually require them to be transformed to a coupled first-order system. Symbolic solvers require a scalar symbolic (= "textbook-like") representation of an ODE.


But numeric solvers require a particular form and type of arguments, which often differ from the arguments of a symbolic solver. Since we cannot solve the ODE symbolically, we must switch to a numeric ODE solver. But we find that the symbolic ODE solver cannot find a closed form solution (something which is likely to happen, because only particular classes of ODEs can be solved in closed symbolic form). In this article, we consider a slightly different scenario. Convert the symbolic solution to a MATLAB function handle using matlabFunction.Compute a symbolic solution of an ordinary differential equation (ODE) using dsolve.
