Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ 4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
684.54 Кб
Скачать

1.10.2. Некоторые важные примеры приложений.

Пример 4.1. Рассмотрим задачу Коши для системы обыкновенных дифференциальных уравнений первого порядка вида

(4.31)

где

; , (4.32)

причем – искомые функции; – заданные функции; – матрица, не зависящая от x.

Общее решение задачи (4.31) определяется формулой:

. (4.32)

Пример 4.2. Рассмотрим задачу Коши для системы обыкновенных дифференциальных уравнений второго порядка вида

(4.33)

Пусть – положительно определенная матрица, т.е. все ее собственные числа . Тогда общее решение (4.33) можно записать в виде:

. (4.34)

Пример 4.3. Рассмотрим задачу Коши для системы обыкновенных дифференциальных уравнений второго порядка вида

(4.35)

Общее решение задачи (4.35) определяется формулой:

, (4.36)

где и – гиперболические синус и косинус от произвольного аргумента.

1.10.3. Дискретно-аналитический метод решения задачи теплопроводности

Математическая постановка задачи имеет вид:

(4.37)

где

– координата по толщине стены, ; – координата по времени, ; – значение температуры в точке во время ; – коэффициент температуропроводности материала; – функция, характеризующая мощность возможного источника тепла.

Задача (4.37) определена в пространственно-временной области W:

. (4.38)

Отметим, что

; . (4.39)

Заметим, что поскольку задача (4.37) содержит начальные условия по времени, то она является задачей Коши.

Ниже рассмотрим дискретно-аналитический метод решения задачи, который состоит в следующем: по оси x осуществляется конечно-разностная аппроксимация, а по времени t рассматривается непрерывная (континуальная) задача.

Пусть , – координаты точек разбиения, причем и – граничные точки (в которых заданы краевые условия). Таким образом, искомыми будут являться функции , во внутренних узлах сетки. Схема аппроксимации пространственно-временной области в данном случае условно показана на рис. 5.5.1.

Рис. 4.1. Пространственно-временная область:

Во всех внутренних точках узлах уравнение теплопроводности в (4.37) примет вид:

(4.40)

при этом пусть

, . (4.41)

В соответствии с краевыми условиями из (4.37) для граничных точек, в свою очередь, можем записать:

, , . (4.42)

Следовательно, уравнения теплопроводности для узлов с номерами и имеют соответственно вид:

; (4.43)

. (4.44)

Введем обозначения:

; , (4.45)

где

; . (4.46)

Получаем матричную формулировку разрешающей системы уравнений:

(4.47)

где

; ; . (4.48)

Согласно (4.31)-(4.32) общее решение задачи (4.47) имеет вид:

. (4.49)

Если не зависит от , переходим к формуле

.

Выполняем интегрирование:

,

откуда

. (4.50)

Реализация формулы (4.50) предполагает вычисление экспоненты от матрицы , для выполнения которого следует воспользоваться результатами предыдущего параграфа (см. формулу (4.17)). Имеем:

, (4.51)

где

– матрица собственных векторов матрицы ;

– обратная матрица к матрице ;

; (4.52)

– собственные числа матрицы , .

Аналогично можем вычислить

, где . (4.53)

Варианты задания.

– функция, характеризующая мощность источника тепла;

– коэффициент температуропроводности материала стены;

– краевые условия;

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

– толщина стены; – номер группы, – номер студента по журналу.

Текст М-файла

function teplo_1_expm

s=input('s=');

g=input('g=');

n=input('n=');

l=input('l=');

alpha=input('alpha=');

h=l/n;

c=alpha/h^2;

m=n-1; a1=ones(m-1,1);

A=diag(a1,-1)-2*eye(m)+diag(a1,1),A=c*A;

u0=g; ul=s;

F=c*[u0;zeros(m-2,1);ul];

xi=(0:h:l)';x=xi(2:n);

U0=g+(g+3*s)*x-2*(g+s)*x.^2;

t=[0 0.15 1.5];

nt=length(t);res=zeros(nt,n+1);

fprintf('\n значения функции температуры U(x,t)\n')

for i=1:nt

res(i,:)=[u0 ut(t(i),F,U0,A)' ul];

fprintf('U(%4.2f):',t(i)),fprintf('%6.2f',res(i,:)),fprintf('\n')

end

hold on

plot(xi,res(1,:),'.-')

plot(xi,res(2,:),'o-.r')

plot(xi,res(nt,:),'*:g')

grid on

s1=sprintf('t=%2.0f',t(1));

s2=sprintf('t=%4.2f',t(2));

s3=sprintf('t=%4.2f',t(nt));

legend(s1,s2,s3,0)

title(sprintf('U(x,t)=exp(At)*U0-inv(A)*(E-exp(At))*F\n%s %s %s', s1,s2,s3))

function U=ut(t,F,U0,A)

m=size(A);E=eye(m);

eAt=expm(t*A);

U=eAt*U0-A\(E-eAt)*F;

Замечание. Здесь вычисление функции от матрицы реализуется с использованием стандартной функции expm(At), в которой используется алгоритм

Результаты счета

s=12

g=3

n=8

l=1

alpha=1

A =

-2 1 0 0 0 0 0

1 -2 1 0 0 0 0

0 1 -2 1 0 0 0

0 0 1 -2 1 0 0

0 0 0 1 -2 1 0

0 0 0 0 1 -2 1

0 0 0 0 0 1 -2

значения функции температуры U(x,t)

U(0.00): 3.00 7.41 10.88 13.41 15.00 15.66 15.38 14.16 12.00

U(0.15): 3.00 4.81 6.52 8.03 9.29 10.28 11.02 11.56 12.00

U(1.50): 3.00 4.13 5.25 6.38 7.50 8.63 9.75 10.88 12.00

>>

Дискретно-аналитический метод решения задачи о колебаниях балки при ударе

Математическая формулировка задачи.

Рассматривается задача о действии поперечной ударной нагрузки в середине балки (рис. 4.2), определяется линия прогибов балки для любого момента времени.

Рис. 4.2. Расчетная схема балки.

Математическая формулировка задачи имеет вид:

(4.54)

где – прогиб балки в точке в момент времени ; – координата по длине балки, ; – координата по времени, ; ; – изгибная жесткость балки; – плотность материала балки; – функция, моделирующая поперечное ударное воздействие по балке в точке ; и – дельта-функции.

Дискретно-аналитический метод решения задачи.

Для решения задачи будем использовать дискретно-аналитический метод, который состоит в следующем: по оси 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’).

Function

Syntax for Evaluating Function at Matrix A

exp

funm (A, @exp)

log

funm(A, @log)

sin

funm(A, @sin)

cos

funm(A, @cos)

sinh

funm(A, @sinh)

cosh

funm(A, @cosh)

Кроме того, для вычисления , и можно использовать встроенные функции expm(A), logm(A) и sqrtm(A), соответственно.