Error using plot Conversion to double from sym is not possible.

3 views (last 30 days)
plot([0,2],[0,0],'k');
plot([0,0],[0,2],'k');
sol=dsolve('D3y-3*D2y+y=-3*x','y(0)=0','Dy(0)=3','D2y(0)=0','x');
xx = 0:0.1:2;
yy = subs(sol,'t',xx);
plot(xx,yy);
axis([-1,2.5,-1,2.5]);

Answers (4)

Walter Roberson
Walter Roberson on 17 Feb 2013
Edited: Walter Roberson on 17 Feb 2013
plot(xx, double(yy))
If that gets you the same error then examine sol and you will likely find that it has at least one free variable other than t.
  2 Comments
Gandi Pirkov
Gandi Pirkov on 17 Feb 2013
Error using mupadmex Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.
Error in sym/double (line 936) Xstr = mupadmex('symobj::double', S.s, 0);
Error in zad1 (line 8) plot(xx, double(yy));
I got this :(
Walter Roberson
Walter Roberson on 19 Feb 2013
That indicates that your dsolve() result has at least one free variable beyond the 't' that you substituted in. "A"'s response pointing out that you would likely not have a "t" looks reasonable to me.

Sign in to comment.


A
A on 19 Feb 2013
Edited: A on 19 Feb 2013
Dear Gandi Pirkov,
the variable of your equation is x, why you are addressing t and xx?! I have modefied it, the following code works without error
plot([0,2],[0,0],'k'); plot([0,0],[0,2],'k');
sol=dsolve('D3y-3*D2y+y=-3*x','y(0)=0','Dy(0)=3','D2y(0)=0','x'); x = 0:0.1:2;
plot(x,subs(sol));
axis([-1,2.5,-1,2.5]);
Good Luck

omayma mansouri
omayma mansouri on 3 Aug 2015
Error using plot Conversion to double from sym is not possible. need help to solve this problem, thank you
  1 Comment
omayma mansouri
omayma mansouri on 3 Aug 2015
Edited: omayma mansouri on 3 Aug 2015
Error using plot Conversion to double from sym is not possible need help to solve this problem, thank you my code matlab

Sign in to comment.


Steven Lord
Steven Lord on 3 Aug 2015
Change your SUBS call to substitute xx in for x not t, since you told DSOLVE that your independent variable is x by specifying it as the final input argument.
yy = subs(sol, 'x', xx);

Community Treasure Hunt

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

Start Hunting!