Error in a code for (Tunnel diode system)

12 次查看(过去 30 天)
the first script is
function [xtd] = tunnel_diode_system(t,x)
h=@(z) 17.76*z-103.79*z^2+229.62*z^3-226.31*z^4+83.72*z^5;
xtd= [0.5*(-h(x(1))+x(2)); 0.2*(-x(1)-1.5*x(2)+1.2)];
end
The second script is:
clf;
axis([-.4 1.6 -.4 1.6]);
plot (0.882,0,21,'or',0.063,0,758,'ob');
hold on;
button =1;
options=odeset('AbsTol',1e-8,'RelTol',1e-6);
while button==1;
[xinit(1),xinit(2),button] = ginput(1);
if button ~= 1 break;end;
[t,u]=ode45(@tunnel_diode_system,[0 40],xinit,options);
plot(u(:,1),u(:,2))
[t,u]=ode45(@tunnel_diode_system,[0 40],xinit,options);
plot(u(:,1),u(:,2))
end
I get this error when I run the first script:
Not enough input arguments.
Error in tunnel_diode_system (line 4)
xtd= [0.5*(-h(x(1))+x(2)); 0.2*(-x(1)-1.5*x(2)+1.2)];
and I get this error when I run the second script:
Error using plot
Data must be a single matrix Y or a list of pairs X,Y.
Error in Untitled (line 3)
plot (0.882,0,21,'or',0.063,0,758,'ob');
They are both together, any suggestions?
  5 个评论
Walter Roberson
Walter Roberson 2021-2-10
This is not an official support channel; you should not expect Mathworks to reply.

请先登录,再进行评论。

回答(1 个)

darova
darova 2021-2-10
Here is the mistake
Use dot instead of comma
  5 个评论
Walter Roberson
Walter Roberson 2021-2-10
clf;
axis([-.4 1.6 -.4 1.6]);
plot (0.882,0,21,'or',0.063,0,758,'ob');
hold on;
options = odeset('AbsTol',1e-8,'RelTol',1e-6);
while true
[tx, ty, button] = ginput(1);
if isempty(tx) || isempty(button) || button ~= 1
break
end
xinit = [tx(1), ty(1)];
[t,u]=ode45(@tunnel_diode_system,[0 40],xinit,options);
plot(u(:,1),u(:,2))
[t,u]=ode45(@tunnel_diode_system,[0 40],xinit,options);
plot(u(:,1),u(:,2))
end

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by