Error using ezplot on differential equation
显示 更早的评论
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?
回答(1 个)
Star Strider
2019-12-19
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 个评论
Marek Polacek
2019-12-19
Star Strider
2019-12-19
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
2019-12-19
编辑:Marek Polacek
2019-12-19
Star Strider
2019-12-19
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
2019-12-19
Star Strider
2019-12-19
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
2019-12-19
Star Strider
2019-12-19
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
2019-12-19
Star Strider
2019-12-19
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Mathematics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

