# Input argument "x" is undefined.

14 views (last 30 days)
Hani Daniel on 19 Apr 2021 at 20:41
Commented: Star Strider on 19 Apr 2021 at 21:50
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))

Star Strider on 19 Apr 2021 at 21:34
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.
See the documentation on What Is a Function Handle? for details.
##### 2 CommentsShowHide 1 older comment
Star Strider on 19 Apr 2021 at 21:50
As always, my pleasure!