哪位大神帮我看看下面的在matlab的M-文件中编写的程序哪里有问题?紧急!!!!! 20
functionc=D(h,T)functionf=f(y)if(0<=y)&(y<=pi)f=y;elseif(pi<y)&(y<=(2*pi))f=2*pi-y;el...
function c=D(h,T)
function f=f(y)
if (0<=y)&(y<=pi)
f=y;
elseif (pi<y)&(y<=(2*pi))
f=2*pi-y;
elseif ((3*pi)>=y)&(y>(2*pi))
f=y-2*pi;
elseif ((4*pi)>=y)&(y>(3*pi))
f=4*pi-y;
elseif ((5*pi)>=y)&(y>(4*pi))
f=y-4*pi;
else
f=0;
end
end
k=h/2;
n=T/k;
N=(2*pi)/h-1;
V=0;
U=0;
v=0;
u=0;
for i=1:(n+1)
for j=1:(N+1)
if i==1
V(j,i)=f(j*h);
elseif (j==1)&(i>=2)
V(j,i)=V(j,i-1)+(k*(V(j+1,i-1)-V(N+1,i-1)))/(2*h);
elseif (j==N+1)&(i>=2)
V(j,i)=V(j,i-1)+k*(V(1,i-1)-V(j-1,i-1))/(2*h);
else
V(j,i)=V(j,i-1)+(k*(V(j+1,i-1)-V(j-1,i-1)))/(2*h);
end
end
end
for i=1:(n+1)
for j=1:(N+1)
if i==1
U(j,i)=V(j,i);
else
U(j,i)=f(j*h+i*k);
end
end
end
for i=1:(n+1)
for j=1:(N+1)
if V(j,i)>=v
s=j;t=i;
v(t)=V(j,i);
end
end
u(t)=U(s,t);
c(t)=v(t)-u(t);
end
plot(t,c(t));
注:重点看内函数的调用、变量的定义以及书写格式是否正确。 展开
function f=f(y)
if (0<=y)&(y<=pi)
f=y;
elseif (pi<y)&(y<=(2*pi))
f=2*pi-y;
elseif ((3*pi)>=y)&(y>(2*pi))
f=y-2*pi;
elseif ((4*pi)>=y)&(y>(3*pi))
f=4*pi-y;
elseif ((5*pi)>=y)&(y>(4*pi))
f=y-4*pi;
else
f=0;
end
end
k=h/2;
n=T/k;
N=(2*pi)/h-1;
V=0;
U=0;
v=0;
u=0;
for i=1:(n+1)
for j=1:(N+1)
if i==1
V(j,i)=f(j*h);
elseif (j==1)&(i>=2)
V(j,i)=V(j,i-1)+(k*(V(j+1,i-1)-V(N+1,i-1)))/(2*h);
elseif (j==N+1)&(i>=2)
V(j,i)=V(j,i-1)+k*(V(1,i-1)-V(j-1,i-1))/(2*h);
else
V(j,i)=V(j,i-1)+(k*(V(j+1,i-1)-V(j-1,i-1)))/(2*h);
end
end
end
for i=1:(n+1)
for j=1:(N+1)
if i==1
U(j,i)=V(j,i);
else
U(j,i)=f(j*h+i*k);
end
end
end
for i=1:(n+1)
for j=1:(N+1)
if V(j,i)>=v
s=j;t=i;
v(t)=V(j,i);
end
end
u(t)=U(s,t);
c(t)=v(t)-u(t);
end
plot(t,c(t));
注:重点看内函数的调用、变量的定义以及书写格式是否正确。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询