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!

