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

 Akzeptierte Antwort

Star Strider
Star Strider am 19 Apr. 2021

0 Stimmen

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 Kommentare

Hani Daniel
Hani Daniel am 19 Apr. 2021
Thank you very much for your help.
Hani Daniel
Star Strider
Star Strider am 19 Apr. 2021
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Numerical Integration and Differential Equations finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by