我是Matlab或任何类型的编程语言的新手,我试图把这个脚本变成一个函数我希望函数返回x和u(x,t),我尝试过不同的方法但是情节不像在脚本上那样工作
7
答案 0 :(得分:0)
一种方法如下:
1.首先,创建一个应根据您的函数名称命名的新文件。在我的情况下,我选择了名称' func'但它应该更具指示性:
function [ x,u ] = func(xmin,xmax,N,dt,t,v)
dx=(xmax-xmin)/N;
x=xmin-dx : dx : xmax+dx;
u0=exp(-200*(x-0.25).^2);
u=u0;
unpl=u0;
while t < 1.0
u(1)=u(3);
u(N+3)=u(N+1);
for i=2 : N+2
unpl(i)=u(i)-v*(dt/dx)*(u(i)-u(i-1));
end
t=t+dt;
u=unpl;
plot(x,u,'bo-','markerfacecolor','b')
hold on
hold off
xlabel('x','fontsize',16)
ylabel('u(t,x)','fontsize',16)
title(sprintf('time=%1.3f',t),'fontsize',16)
shg
pause(dt);
end
end
2.可以按如下方式调用此函数:
xmin=0;
xmax=1;
N=100;
dt=0.009;
t=0;
v=1;
[ x,u ] = func(xmin,xmax,N,dt,t,v);