Error using ezplot on differential equation
Show older comments
Hi. Can anyone please tell me what's wrong with this code?
syms ya yb y xb t
ya = dsolve('(L*10^(-3))/(Rs*10^3)*D2ya+Dya+1/(Rs*10^3+C*10^(-6))*ya=0','ya(0)=5','Dya(0)=2');
figure(1)
ezplot(ya,[0,10])
grid on
axis auto
It displays this error message:
Error using sym/ezplot (line 50)
Two variables or less expected when plotting an equation.
Error in soustava (line 14)
ezplot(ya,[0,10])
This code is crucial for me to get working, otherwise I fail my subject. Why it works with older version and R2019a doesn't accept it?
Answers (1)
Star Strider
on 19 Dec 2019
Provide the correct numerical values for ‘C’, ‘L’, and ‘Rs’ if you want to plot it:
syms C L Rs ya(t) yb y xb t
C = sym(3);
L = sym(5);
Rs = sym(7);
Dya = diff(ya);
D2ya = diff(Dya);
ya = dsolve((L*10^(-3))/(Rs*10^3)*D2ya+Dya+1/(Rs*10^3+C*10^(-6))*ya==0,ya(0)==5,Dya(0)==2)
figure(1)
ezplot(ya,[0,10])
grid on
axis auto
10 Comments
Marek Polacek
on 19 Dec 2019
Star Strider
on 19 Dec 2019
With those additions, this produces an appropriate plot:
syms C L Rs ya(t) yb y xb t
C = sym(100E-6);
L = sym(20E-3);
Rs = sym(100E+3);
Dya = diff(ya);
D2ya = diff(Dya);
ya = dsolve((L*10^(-3))/(Rs*10^3)*D2ya+Dya+1/(Rs*10^3+C*10^(-6))*ya==0,ya(0)==5,Dya(0)==2)
figure(1)
ezplot(ya,[0,2E-12])
grid on
axis auto
title(['$ya(t)=5.0-4.5475\times 10^{-13}\,{\mathrm{e}}^{-5.0e+12\,t}$'], 'Interpreter','latex')
Marek Polacek
on 19 Dec 2019
Edited: Marek Polacek
on 19 Dec 2019
Star Strider
on 19 Dec 2019
What is the problem with the units?
My code threw no errors when I ran it. I have no idea where the subsref error comes from.
This code (the new ‘ya’ being the only difference) ran without error:
syms C L Rs ya(t) yb y xb t
C = sym(100E-6);
L = sym(20E-3);
Rs = sym(100E+3);
Dya = diff(ya);
D2ya = diff(Dya);
% ya = dsolve((L*10^(-3))/(Rs*10^3)*D2ya+Dya+1/(Rs*10^3+C*10^(-6))*ya==0,ya(0)==5,Dya(0)==2)
ya = dsolve(L/Rs*D2ya+Dya+1/(Rs+C)*ya==0,ya(0)==5,Dya(0)==2);
figure(1)
ezplot(ya,[0,1])
grid on
axis auto
You must have done something wrong to have triggered that error.
Marek Polacek
on 19 Dec 2019
Star Strider
on 19 Dec 2019
You did not copy my syms call. Use this one:
syms ya(t) yb y xb t
and the code works. It is absolutely necessary to declare ‘ya’ as ‘ya(t)’ or the code will fail.
Marek Polacek
on 19 Dec 2019
Star Strider
on 19 Dec 2019
The plots do, actually.
Consider:
syms C L Rs ya(t) yb y xb t
C = sym(100E-6);
L = sym(20E-3);
Rs = sym(100E+3);
Dya = diff(ya);
D2ya = diff(Dya);
% ya = dsolve((L*10^(-3))/(Rs*10^3)*D2ya+Dya+1/(Rs*10^3+C*10^(-6))*ya==0,ya(0)==5,Dya(0)==2)
ya = dsolve(L/Rs*D2ya+Dya+1/(Rs+C)*ya==0,ya(0)==5,Dya(0)==2);
figure(1)
ezplot(ya,[1E-7,2E-4])
grid on
axis auto
set(gca, 'XScale','log')
It is necessary to either expand or transform the independent variable scale to see the function correctly.
Marek Polacek
on 19 Dec 2019
Star Strider
on 19 Dec 2019
Please note that your differential equation (and of course its solution) are in the time domain and the Bode plot is in the frequency domain. They should not look at all the same.
Categories
Find more on Mathematics 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!
