roberthan 发表于 2006-8-18 23:40

[求助]请问弦振动方程的动态模拟

我想请教一下 玄振动方程的动态模拟怎么实现 ,如果使用matlab
我是做分布参数控制的, 一直想做一个动态模拟(仿真),
他是一个偏微分方程(已经给定了初始值 以及边界控制值), 我想做一个这样的模拟-- 横轴是位置变量x, 纵轴是相应于各个位置的位移,然后随着时间的变化 整个图像动态变化

向高手求教 如何实现

[ 本帖最后由 cdwxg 于 2006-8-19 03:38 编辑 ]

xawbw 发表于 2006-8-19 09:39

1。 建立动力学微分方程;
2。由分布参数控制域,限定数值解范围;
3。用MATLAB进行动态数值仿真。

具体实现每一步过程要详细参阅MATLAB的使用手册或相关书籍!

cao 发表于 2006-8-19 09:48

1、MATLAB中有 PDE(偏微分方程的解法),应该可以较方便的实现!
2、可参见《数学物理方程的MATLAB解法与可视化实现》书,还可以看看MATLAB求解数学问题方面的书,一般其中有一章来阐述偏微分方程的解法,基本的问题是可以直接用其求解!
3、较复杂的偏微分方程求解,在深入理解有关算法的基础上,可以采用MATLAB编程求解,祝好运!

songzy41 发表于 2006-8-19 15:34

以下取之《数学物理方程的MATLAB解法与可视化实现》一弦两端固定时驻波的振动动态模式的程序,可见采用MATLAB编程求解方程完全可得振动的动态模式。
clear all; clc;
t=0:0.005:2.0;    x=0:0.001:1;
ww1=wfun(1, 0);      ww2=wfun(2,0);
ww3=wfun(3, 0);      ww4=wfun(4,0);
ymax1=max(abs(ww1));
figure
subplot(2,1,1 )
h1=plot(x,ww1,'r', 'linewidth' ,5);
hold on;
h3=plot(x, ww3, 'g', 'linewidth' ,5);
axis([ 0, 1, -ymax1, ymax1])
subplot (2,1,2)
ymax4=max(abs(ww4));
h2=plot(x,ww2,'r', 'linewidth' ,5);
hold on;
h4=plot(x,ww4, 'g', 'linewidth' ,5);
axis([ 0, 1, -ymax4, ymax4])

for n=2:length(t)
       ww1=wfun( 1, t(n));
       set(h1, 'ydata' ,ww1);
       ww3=wfun(3, t(n));
       set(h3, 'ydata',ww3);
       drawnow;
       ww2=wfun( 2, t(n));
       set(h2, 'ydata',ww2);
       ww4=wfun(4, t(n));
       set(h4, 'ydata',ww4);
       drawnow;
end

function wtx=wfun(k, t)
x=0:0.001:1;   a=1;
wtx=cos(k*pi*a*t).*sin(k*pi*x);

[ 本帖最后由 songzy41 于 2006-8-19 15:39 编辑 ]

vib 发表于 2006-12-8 22:13

四楼的程序能添加一些注释吗?不是很明白的说,这里面用到解偏微分方程了吗?是哪几句?
页: [1]
查看完整版本: [求助]请问弦振动方程的动态模拟