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)00g];提示
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/01 12:28:22
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)00g];提示
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的吗?帮我讲讲心得 感激不尽
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)00g];提示
你把下面的程序放到第一个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];