Input argument "x" is undefined.

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))

 采纳的回答

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 个评论

Thank you very much for your help.
Hani Daniel
As always, my pleasure!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Numerical Integration and Differential Equations 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by