Why does it say f plot error line 97

10 vues (au cours des 30 derniers jours)
Maria De Silva
Maria De Silva le 14 Mai 2017
Commenté : Star Strider le 14 Mai 2017
I have the equation from ysol is 3*cos(2*x) - 3*exp(-3*x) - 2*sin(2*x) however whenever i plot it using fplot it gives me an error Index exceeds matrix dimensions.
Error in fplot (line 97) xmin = min(lims(1:2)); xmax = max(lims(1:2));
Heres my codes
ySol(x) = dsolve(ode,conds)
ySol = simplify(ySol);
x = 0.0:1.:30.0;
figure
fplot(ySol,'r',[0 30])

Réponses (1)

Star Strider
Star Strider le 14 Mai 2017
Since ‘x’ is the independent variable in your equation, do not define it as a vector if you want to use the fplot function. Leave it undefined, and fplot will implicitly consider ‘ySol’ as a single-variable function.
This works:
ySol = 3*cos(2*x) - 3*exp(-3*x) - 2*sin(2*x);
figure
fplot(ySol,'r',[0 30])
  4 commentaires
Maria De Silva
Maria De Silva le 14 Mai 2017
Modifié(e) : Star Strider le 14 Mai 2017
syms y(x)
Dy = diff(y);
Dy2= diff(y,2);
ode = diff(y,x,3)+3*diff(y,x,2)+4*diff(y,x,1)+12*y == 0;
cond1 = y(0) == 0;
cond2 = Dy(0) == 5;
cond3 = Dy2(0) == -39;
conds = [cond1 cond2 cond3];
ySol(x) = dsolve(ode,conds);
ySol = simplify(ySol)
figure
fplot(ySol,'r',[0 30])
title(' Homogeneous linear ODE, complex roots, IVP')
legend('3*cos(2*x) - 3*exp(-3*x) - 2*sin(2*x)')
Here is everything
Star Strider
Star Strider le 14 Mai 2017
Your code as you posted it works perfectly for me and produces this plot (in R2017a):

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by