Input argument "x" is undefined.
4 views (last 30 days)
Show older comments
Hani Daniel
on 19 Apr 2021
Commented: Star Strider
on 19 Apr 2021
How do I correct undefined input argument x?
Error:
??? Input argument "x" is undefined.
Error in ==> ckt at 7
xdot(1) = x(2)/C1;
Code:
function xdot = ckt(t,x)
vg=1;
C1=100e-9;
C2=100e-9;
R=30;
L=184e-6;
xdot(1) = x(2)/C1;
xdot(2) =-(x(1) + x(3))/L + vg/L;
xdot(3) = x(2)/C2 - x(3)/(R*C2);
xdot = [xdot(1); xdot(2); xdot(3)];
t0=0; tf=60e-6;
tspan=[t0,tf];
x0=[-1 0 0]' ;
[t,x]=ode45('ckt',tspan,x0);
plot(t,x(:,3))
0 Comments
Accepted Answer
Star Strider
on 19 Apr 2021
Instead of using the single quotes, call the function in ode45 with a function handle as:
[t,x]=ode45(@ckt,tspan,x0);
so the full code is now:
t0=0; tf=60e-6;
tspan=[t0,tf];
x0=[-1 0 0]' ;
[t,x]=ode45(@ckt,tspan,x0);
figure
plot(t,x(:,3))
function xdot = ckt(t,x)
vg=1;
C1=100e-9;
C2=100e-9;
R=30;
L=184e-6;
xdot(1) = x(2)/C1;
xdot(2) =-(x(1) + x(3))/L + vg/L;
xdot(3) = x(2)/C2 - x(3)/(R*C2);
xdot = [xdot(1); xdot(2); xdot(3)];
t0=0; tf=60e-6;
end
And it works correctly.
2 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!