Решение задачи продольных колебаний бруска, описанных волновым уравнением с помощью MATLAB
21

Приложение 1

Листинг программы task6.5

%  Функция решения волнового уравнения d2U/dt2=d2U/dx2

m = 1000 %число шагов по времени

n = 200%число шагов по координате

E=1e10 %модуль упругости материала

ro=600 %плотность материала

L=10 %длина бруска

T=0.01 %время моделирования

dx=L/n %шаг по расстоянию

dt=T/m  %шаг по времени

cur=dt/dx*(E/ro)^0.5 %число Курранта

ii=1:n

jj=1:m

 

%начальные условия

u(1,ii)=sin(pi*ii*dx/L)

u(2,ii)=u(1,ii)

 

%граничные условия

u(jj,1)=0

 

%вычисление численного решения

for j=2:m

fori=2:n-1                    

    u(j+1,i)=cur*cur*(u(j,i+1)-2*u(j,i)+u(j,i-1))+2*u(j,i)-u(j-1,i)

end

end

 

%визуализация результата

mesh(u);

xlabel('x-coordinate');

ylabel('t-time');

zlabel('u(x,t)');