matlab程序常微分方程

globalR;globalT;globalt1;globalt2;globalt3;globaln;globalL;globald;globalv1;globali;L... global R;global T;global t1;global t2;global t3;global n;
global L;global d;global v1;global i;
L=input('enter''L'':');
d=input('enter''d'':');
v1=input('enter''v1'':');
n=input('enter''n'':');
for i=0:n-1
R=L/n-3^0.5*d;
T=d/v1/sin(pi/6)+pi*R/3/v1;
t1=d/(2*v1*sin(pi/6))+i*T;
t2=pi*R/(3*v1)+t1;
t3=t2+d/(2*v1*sin(pi/6));
[t,x]=ode45('x_t',[i*T,(i+1)*T],i*(R+3^0.5*d));
[t,y]=ode45('y_t',[i*T,(i+1)*T],0);
plot(x,y);
hold on;
end

调试的实话一直说x和y维度不一致,不理解怎么回事,请大神指点!
展开
 我来答
lhmhz
高粉答主

2017-10-22 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部

问题可能出在x、y的初值上。因为x0的初值是一组向量(有i个数值),而y0的初值是一个数值。

另外,我觉得微分方程组的自定义函数表述也有问题。请把具体的微分方程组贴出来,这样可以好分析其他的错误。

追问

y_t=(t>=0&t<t1).*v1.*sin(pi/6)+((t>=t1)&(t<t2)).*v1.*sin(pi/6-v1.*(t-t1)/R)+((t>=t2)&(t<t3)).*(-v1.*sin(pi/6))+((t>=t3)&(t<=t4)).*v1.*sin(-pi/6+v1/R.*(t-t3));

大概是画出一个类似于正弦函数的图像。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式