Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Дискретно-аналитический метод решения задачи. ⇐ ПредыдущаяСтр 5 из 5
Для решения задачи будем использовать дискретно-аналитический метод, который состоит в следующем: по оси x осуществляется конечно-разностная аппроксимация, а по оси времени t рассматривается непрерывная задача (рис. 4.3). Рис. 4.3. Схема дискретизации.
Введем обозначения: ; , , (4.55) где в простейшем случае . (4.56) Здесь – количество внутренних узлов конечно-разностной сетки, причем пусть – нечетное число. Для всех внутренних узлов получим конечно-разностное уравнение – дискретный аналог уравнения колебаний (4.54): , , (4.57) где (4.58) – вторая конечная разность, приближенно представляющая вторую производную от искомой функции по аргументу . В соответствии с краевыми условиями из (4.54) для граничных узлов, очевидно, можем записать: ; ; ; . (4.59) C учетом (4.59) преобразуются уравнения (4.57) Имеем: ; (4.60) ; (4.61) , ; (4.62) ; (4.63) . (4.64) Обоснуем, например, (4.60) и (4.61): ; Введя обозначение , (4.65) можем представить разрешающую систему конечно-разностных уравнений (4.60)-(4.64) в матричном виде (4.66) где . (4.67)
Заметим, что матрица положительно определена, т.е. все ее собственные числа положительные (в этом можно убедиться при их непосредственном вычислении). Общее решение задачи (4.66) имеет вид: . (4.68) По условию рассматриваемой задачи , (4.69) откуда следует, что , где . (4.70) Это значит, что в векторе лишь один «срединный элемент» (с номером ) равен единице, а остальные элементы равны нулю. Ненулевой элемент вектора соответствует узлу конечно-разностной сетки с координатой , в котором в момент времени приложено сосредоточенное ударное воздействие величиной . Подставив (4.69) в (4.68), получим окончательный вид общего решения: . (4.71)
Варианты задания. – величина приложенного сосредоточенного ударного воздействия; ; ; – номер группы, – номер студента по журналу. Принять количество количество внутренних узлов конечно-разностной сетки . Пример соответствующего M-файла (ниже задано , ): function blow_f
g=input('g='); s=input('s='); n=input('n=');
L=300; P=300; h=L/(n+1); alfa=10^8*(100+g+s); x=0: h: L;
a0=6*eye(n); a0(1, 1)=5; a0(n, n)=5; a1=ones(n-1, 1); a2=ones(n-2, 1); A=a0-4*(diag(a1, -1)+diag(a1, 1))+diag(a2, -2)+diag(a2, 2) A=alfa*A/h^4;
F=zeros(n, 1); F((n+1)/2)=P;
sq_A=sqrtm(A);
fJ=sqrt(eig(A)); t0=pi/(4*fJ(n)); tmax=125*t0; nt=3; t=[t0, tmax/2, tmax];
res=zeros(nt, n+2); fprintf('\n прогиб балки Y(x, t)\n') for i=1: nt Y_t=inv(sq_A)*funm(sq_A*t(i), 'sin')*F; res(i, 2: n+1)=Y_t'; fprintf('Y(%6.4f): ', t(i)), fprintf('%8.4f', res(i,:)), fprintf('\n') end
hold on plot(x, res(1,:), '.-') plot(x, res((nt+1)/2,:), 'o-.r') plot(x, res(nt,:), '*: g') grid on s1=sprintf('t=%6.4f', t(1)); s2=sprintf('t=%6.4f', t((nt+1)/2)); s3=sprintf('t=%6.4f', t(nt)); legend(s1, s2, s3, 0) title(sprintf('Y(x, t)=-inv(sqrt(A))*sin(sqrt(A)t))*F\n%s %s %s', s1, s2, s3))
Результаты расчета: g=3 s=12 n=7 A = 5 -4 1 0 0 0 0 -4 6 -4 1 0 0 0 1 -4 6 -4 1 0 0 0 1 -4 6 -4 1 0 0 0 1 -4 6 -4 1 0 0 0 1 -4 6 -4 0 0 0 0 1 -4 5
прогиб балки Y(x, t) Y(0.0027): 0.0000 -0.0001 -0.0053 0.0217 0.7703 0.0217 -0.0053 -0.0001 0.0000 Y(0.1673): 0.0000 2.2085 4.2797 5.8565 5.5146 5.8565 4.2797 2.2085 0.0000 Y(0.3346): 0.0000 -1.3399 -3.5149 -3.9787 -4.1294 -3.9787 -3.5149 -1.3399 0.0000 > >
Замечание. Здесь вычисление функций от матрицы A реализуются следующим образом: Ø с использованием стандартной функции sqrtm(A), Ø с использованием funm(sqrtm(A), ’sin’).
Кроме того, для вычисления , и можно использовать встроенные функции expm(A), logm(A) и sqrtm(A), соответственно.
|