作业帮 > 综合 > 作业

Matlab,odeplot,小程序挑错及原理.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 04:22:45
Matlab,odeplot,小程序挑错及原理.
下面是程序:
t0=[0,2];
x0=[0,0,12,5,5,0];
options = odeset('RelTol',1e-8,'AbsTol',1e-8,'OutputFcn',@odeplot);
[t,y] = ode45(@odefunc,t0,x0,options);
function dy=odefunc(t,y)
g=-9.8;
dy=[y(4)
y(5)
y(6)
0
0
g];
提示错误如下:
Error using ==> get
Invalid handle object.
Error in ==> odeplot at 99
ud = get(TARGET_FIGURE,'UserData');
Error in ==> ode45 at 306
feval(outputFcn,[t tfinal],y(outputs),'init',outputArgs{:});
…………
上面错在什么地方呢?OutputFcn到底应该怎么用?这让人很头疼.
比如我把上面odeplot改为函数ABC,在函数ABC中只画y前三个量的轨迹,即plot3(y(1,:),y(2,:),y(3,:)),为什么画两三个点之后总错呢?不明白使用OutputFcn时有哪些条条框框.
如果回答满意,会有20-50的不同程度财富悬赏,
今天打开matlab,odeplot又可以重新运行了,还是上面程序,没有变化.很奇怪?
有用过OutputFcn的吗?帮我讲讲心得 感激不尽
你把下面的程序放到第一个m文件中t0=[0,2];x0=[0,0,12,5,5,0];options = odeset('RelTol',1e-8,'AbsTol',1e-8,'OutputFcn',@odeplot);[t,y] = ode45(@odefunc,t0,x0,options);figure(2)plot3(y(:,1),y(:,2),y(:,3))把下面的程序放在第二个m文件中function dy=odefunc(t,y)g=-9.8;dy=[y(4)    y(5)    y(6)    0    0    g];