论坛首页    职业区    学术与写作    工程技术区    软件区    资料区    商务合作区    社区办公室
 您好! 欢迎 登录注册 最新帖子 邀请注册 活动聚焦 统计排行 社区服务 帮助
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
  • 2897阅读
  • 2回复

matlab求解波动方程 [复制链接]

上一主题 下一主题
离线xixh2008
 

发帖
412
土币
1
威望
875
原创币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-11-29

>> 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([0,1],[0,0],'r')
hold  on
h=plot(x,u(:,1),'linewidth',3);
set(h,'erasemode','xor');
axis([0,1,-0.1,0.1 ]);
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.
请高手指点!
离线analyze

发帖
943
土币
25461
威望
2657
原创币
0
只看该作者 1楼 发表于: 2011-12-04
楼主的表达式本身有问题。 我没装有MATLAB,只用高度兼容MATLAB的开源免费软件GUI OCTAVE试运行一下,即可看到结果:

parse error:
  syntax error
>> 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));


看到吧,上面多了一个“  ... ”。去掉多出的符号,可正常运算
离线johhan

发帖
334
土币
1758
威望
202
原创币
0
只看该作者 2楼 发表于: 2012-02-07
回 1楼(analyze) 的帖子
analyze:楼主的表达式本身有问题。 我没装有MATLAB,只用高度兼容MATLAB的开源免费软件GUI OCTAVE试运行一下,即可看到结果:
parse error:
  syntax error
>> 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));
....... (2011-12-04 16:51) 

请教一下,GUI OCTAVE有中文版吗?好用不?
快速回复
限100 字节
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
 
上一个 下一个

      浙公网安备 33010602003799号 浙ICP备14021682号-1

      工业和信息化部备案管理系统网站