猿问

求解,请问在matlab函数文件中flag起什么作用?有什么用途

函数文件
function dr=pen(t,x,flag,F)
dr=[x(2);-0.5*x(2)-sin(x(1))+F*cos(2/3*t)];
-----------------------------------------------------------
脚本文件
hold on;
N=80;
for F=0.96:0.01:1.52
for n=1:N
[t,x]=ode45('pen',[0,66],[0,0.6],[ ],F);
T(n)=x(end,2);
end
plot(F*ones(1,N),T,'.','markersize',1)
end
注: 此程序运行时间有点长

青春有我
浏览 1419回答 1
1回答

米脂

1、从现有代码看,flag这个变量没起任何作用。2、由于函数pen的参数表里面有flag,但调用ode45的时候并未提供该参数,所以调用会出错。改正的做法是,或者把1function dr=pen(t,x,flag,F)改为1function dr=pen(t,x,F)或者把1[t,x]=ode45(@pen,[0,66],[0,0.6],[ ],F);改为1[t,x]=ode45(@pen,[0,66],[0,0.6],[ ],[],F);3、看不出里面的那个for循环有任何意义,因为运行N次的结果都完全相同。
随时随地看视频慕课网APP
我要回答