Warning: Explicit solution could not be found

1 view (last 30 days)
EDU>> syms sim_phi(t)
Dy = diff(sim_phi);
sim_phi(t) = dsolve(diff(sim_phi, t, t) == -9.8*sim_phi);
sim_phi(t) = simplify(sim_phi)
syms phi(t)
Dy = diff(phi);
phi(t) = dsolve(diff(phi, t, t) == -9.8*sin(phi));
phi(t) = simplify(phi)
sim_phi(t) =
C2*cos((7*5^(1/2)*t)/5) + C3*sin((7*5^(1/2)*t)/5)
Warning: Explicit solution could not be found; implicit solution returned.
> In dsolve at 204
phi(t) =
0
solve(C22 - t + int((2^(1/2)*i)/(2*(C20 - (49*cos(phi))/5)^(1/2)), phi, 'IgnoreAnalyticConstraints', true) == 0, phi)
solve(C22 - t - int((2^(1/2)*i)/(2*(C20 - (49*cos(phi))/5)^(1/2)), phi, 'IgnoreAnalyticConstraints', true) == 0, phi
So I am attempting to solve the differential for a pendulum, with and without using the small angle approximation of sin(theta) ~= theta. I am getting the warning in the dsolve for the part without the small angle approximation.
The ultimate goal of my project is to compare values for t for theta<<1 and theta>1.
If this is not doable through matlab, there are other projects I can work on. It's for a class, and our assignment is to "Do any math/science problem that you want to solve and present using Matlab"
I only have the tools available in the $99 student version of Matlab. R2014a...
MATLAB and Simulink Student Suite
Includes MATLAB, Simulink, Control System Toolbox, Simulink Control Design, Image Processing Toolbox, Optimization Toolbox, Signal Processing Toolbox, DSP System Toolbox, Statistics Toolbox, Symbolic Math Toolbox, Data Acquisition Toolbox and Instrument Control Toolbox

Answers (1)

Alan Weiss
Alan Weiss on 28 Jan 2015
Instead of trying to solve the ODE analytically (I mean symbolically), I suggest that you solve it numerically using an ODE solver.
Alan Weiss
MATLAB mathematical toolbox documentation

Categories

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

Products

Community Treasure Hunt

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

Start Hunting!