xixiaohua2005 发表于 2011-11-28 07:30:47

matlab求解波动方程

>> N=320;
dx=0.01;
a=4;
dt=0.0005;
c=300*dt/dx/dx;
u(1:100,1)=0;
x=linspace(0,1,100)';
u(2:50,1)=0.06/50*(2:50)';
u(50:99,1)=0.06/50.*(100-(50:99)');
u(2:99,2)=u(2:99,1)+c/2*(u(3:100,1)-2*u(2:99,1)+u(1:98,1))+...
c/2*a*dx*(u(3:100,1)-u(2:99,1));
plot(,,'r')
holdon
h=plot(x,u(:,1),'linewidth',3);
set(h,'erasemode','xor');
axis();
for k=2:N
set(h,'XData',x,'YData',u(:,2));
drawnow;
u(2:99,3)=2*u(2:99,2)-u(2:99,1)+c*(u(3:100,2)...-2*u(2:99,2)+u(1:98,2));
u(2:99,3)=u(2:99,3) +c*a*dx*(u(3:100,2) -u(2:99,2));
u(:,1)=u(:,2);
u(:,2)=u(:,3);
pause(0.1)
end
运行之后出现了
??? u(2:99,3)=u(2:99,3) +c*a*dx*(u(3:100,2) -u(2:99,2));
    |
Error: Unexpected MATLAB expression.
请高手指点!

mhkmars 发表于 2011-11-28 09:43:40

u(2:99,3)=2*u(2:99,2)-u(2:99,1)+c*(u(3:100,2)...-2*u(2:99,2)+u(1:98,2));
你把那个...去掉,后面一行就正常了,可以得到图像

xixiaohua2005 发表于 2011-11-28 16:05:39

谢谢楼主,十分感谢,但是去掉好像结果不对?能否说一下你的QQ,也可以加我的qq(987269306):我在向你具体请教,这个对我很重要,毕业要用。
页: [1]
查看完整版本: matlab求解波动方程