作业帮 > 综合 > 作业

matlab画图问题:在不同的时间段内划出不同表达式的图像.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/14 22:06:49
matlab画图问题:在不同的时间段内划出不同表达式的图像.
画出函数v
在第一个时段【0,8】内,v=0;
在第二个时段【8,9】内,跟一个方程有关,v=-0.8sign(x)(abs(x))^(1/2),其中,x导数=-1.6sign(x)(abs(x))^(1/2),初值x8=0.7;
在第三个时段【9,14】内,v=0;
在第四个时段【14,17】内,也跟一个方程有关,v=-0.8sign(y)(abs(y))^(1/2),其中,y导数=-0.8sign(y)(abs(y))^(1/2),初值y14=-0.2.
如何画出这几个时段内v的图像呢?就这么多分了,全都送给你.
你这个里的自变量应当是时间t,x应当是一个参变量.
%%0到8没有问题.
t1=[0,8];
v1=[0,0];
%%8到9这里,x是一个微分方程,我直接用最简单的欧拉法求解.
dt2=0.001;
t2=8:dt2:9;
x2=0.7; %初值
for i=2:length(t2)
x2(i)=x2(i-1)+dt2*(-1.6*sign(x2(i-1))*sqrt(abs(x2(i-1))));
v2(i)=-0.8*sign(x2(i))*sqrt(abs(x2(i)));
end
%%9到14这里,
t3=[9,14];
v3=[0,0];
%%14到17这里,同样用欧拉法求解
dt4=0.001;
t4=14:dt4:17;
y4=-0.2; %初值
for i=2:length(t4)
y4(i)=y4(i-1)+dt4*(-0.8*sign(y4(i-1))*sqrt(abs(y4(i-1))));
v4(i)=-0.8*sign(y4(i))*sqrt(abs(y4(i)));
end
t=[t1,t2,t3,t4];
v=[v1,v2,v3,v4];
plot(t,v)
再问: 非常感谢你的回答;把你的程序运行了一下没问题。不过发现了一个很奇怪的情况,在那个plot画图命令中,分别改成下面几个命令试试?为什么会出现这么怪的情况呢? 1、plot(t,v,'-') 2、plot(t,v,'-.') 3、plot(t,v,'*') 4、plot(t,v,'diamond') 下面是第1种出现的出错信息,请教该怎么修改呢? ??? Error using ==> plot Vectors must be the same lengths. Error in ==> inputvv at 30 plot(t,v,'-')