作业帮 > 综合 > 作业

MATLAB 常微分方程 数值解 出错

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 22:02:09
MATLAB 常微分方程 数值解 出错
说实话 一点也不会用MATLAB
我的M文件
function dy=vdp1(t,x)
-500*(dx)^2=10000*x+(96.321*exp(-t/378.47108)+287.758)*0.0003*100000/(373*(0.0003-x*0.000038485))-100000
应该蛮有问题的,第二行一大串是我的方程,t是自变量,x是因变量.
怎么改?
还有,改好之后运行[T,X]=ode15s('vdp1',[0 3000],[2 0]);就行了吧?
画图的话是plot(T,X(:,1),'-')吗?
首先建立vdp1.m文件
function dx=vdp1(t,x)
dx=zeros(2,1);
dx(1)=x(2);
dx(2)=(10000*x+(96.321*exp(-t/378.47108)+287.758)*0.0003*100000/(373*(0.0003-x*0.000038485))-100000)/-500;
再建立ff.m文件
t0=0,tf=0.9999
[t,x]=ode15s('eq1',[t0 tf],[0 0]);
plot(t,x(:,1),'b.')
hold on
y=0:0.01:2;
plot(1,x,'b*')
两个文件放到同一目录下,目录中无中文 按F5运行.应该就可以,但是发生运算报错,有可能是函数本省的问题.
Error in ==> ode15s at 228
[neq,tspan,ntspan,next,t0,tfinal,tdir,y0,f0,odeArgs,odeFcn,...
Error in ==> eq1 at 2
[t,x]=ode15s('eq1',[t0 tf],[0 0]);
这个可能是我随便取的 零点dx=zeros(2,1); t0=0,tf=0.9999 你自己对一下
注:如果有需要,我这有比较详细的讲义,可以发给你.