MATLAB关于一段ode45的程序报错

function dx=hj(t,x)
F=32000; m=1400; u=18; g=9.8; s=0.4;
dx=(F-(m-u*t)*g-s*x*x)/(m-u*t);

运行:
>> clear
>> h=0.01;%所取时间点间隔
>> ts=[0:h:60];%粗略估计到时间60
>> x0=0;%初始条件
>> opt=odeset('reltol',1e-6,'abstol',1e-9);%相对误差1e-6,绝对误差1e-9
>> [t,x]=ode45(@hj,ts,x0,opt);%使用5级4阶龙格—库塔公式计算

出错:
??? Error using ==> feval
Undefined command/function 'hj'.

Error in ==> funfun\private\odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, ...

速求答案,谢谢谢谢!!!

我给你运行了一下没错啊 这是一部分数据 不过你在第一个函数保存时函数名应该是 hj把
266.7452
266.7543
266.7634
266.7725
266.7816
266.7907
266.7997
266.8088
266.8179
266.8270
266.8361
266.8452
266.8543
266.8634
266.8725
266.8815
266.8906
266.8997
266.9088
266.9179
266.9270
266.9361
266.9452
266.9542
266.9633
266.9724
266.9815
266.9906
266.9997
267.0087
267.0178
267.0269
267.0360
267.0451
267.0541
267.0632
267.0723
267.0814
267.0905
267.0995
267.1086
267.1177
267.1268
267.1359
267.1449
267.1540
267.1631
267.1722
267.1812
267.1903
267.1994
267.2085
267.2175
267.2266
267.2357
267.2448
267.2538
267.2629
267.2720
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-05
恩,就是m文件名应该为hj.m
相似回答