- •Лекция 4
- •Задача Коши (задача с начальными условиями)
- •4.1.Математическая формулировка задачи Коши для обыкновенного дифференциального уравнения (оду) 1-го порядка
- •4.2. Метод Эйлера решения задачи Коши для оду 1-го порядка.
- •4.3. Задача Коши для обыкновенного дифференциального уравнения (оду) n-го порядка
- •4.4. Сведение задачи Коши для оду n-го порядка к задаче Коши для системы n оду 1-го порядка
- •4.5. Вариант метода Эйлера решения задачи Коши для системы оду 1-го порядка.
- •Задача об изгибе консоли (задача Коши)
- •1. Модифицированный метод Эйлера.
- •2. Использование встроенной функции ode45, предназначенной для решения задачи Коши для систем обыкновенных дифференциальных уравнений 1-го порядка вида .
- •3. Использование встроенной функции ode15s, предназначенной для решения задачи Коши для систем обыкновенных дифференциальных уравнений 1-го порядка вида .
4.5. Вариант метода Эйлера решения задачи Коши для системы оду 1-го порядка.
Наиболее простым и естественным для численного решения задачи Коши (4.15)-(4.16) представляется следующий алгоритм метода Эйлера:
– для первого уравнения использовать интегрирование по формуле левых прямоугольников (без уточнения),
– для остальных – по формуле трапеции, т.е.:
– задано (начальные
условия)
(4.17)
Задача об изгибе консоли (задача Коши)
Задание.
Рассмотрим задачу об изгибе консоли, жестко закрепленной с левого края (рис. 4.3).
Определить прогиб консоли (решить задачу Коши)
(Л4.1)
методом Эйлера.
Рис. 4.3. К задаче об изгибе консоли.
Варианты задания.
– изгибающие
моменты в балке (рис. 4.3);
– жесткость балки;
– числовой параметр,
– длина балки;
– номер группы,
– номер студента по журналу.
Принять
для расчета на ЭВМ число точек
.
Предварительные построения.
Сводим основное уравнение исходной задачи второго порядка к системе двух дифференциальных уравнений первого порядка:
(Л4.2)
где
.
1. Модифицированный метод Эйлера.
Для
определения
воспользуемся обычной формулой Эйлера,
а для определения
будет естественным использовать
уточненную формулу, т.е.
(Л4.3)
Пример
соответствующей M-функции
(ниже задано
,
,
):
function consol
s=input('s=');g=input('g=');L=input('L=');n=input('n=');
h=L/n;c=0.02*(s+g);ej=1/c;
x=0:h:L;z=zeros(size(x));y=z;
for i=1:n
z(i+1)=z(i)+h*f(x(i),z(i));
y(i+1)=y(i)+h*(z(i)+z(i+1))/2;
end
ixyz=[(0:n);x;y;z];
fprintf('\n'),fprintf('%3s %4s %6s %6s','i','x','y','z')
fprintf('\n'),fprintf('%3d %4.1f %6.4f %6.4f\n',ixyz)
plot(x,y,'.-',x,z,'*-'),grid on
legend('y=y(x)','z=y''(x)',0),title('modificyrovannyj metod Eilera')
function dzdx=f(x,z)
dzdx=m(x)/ej*sqrt((1+z^2)^3);
end
function M=m(x)
M=1/sqrt((1+(c*x)^2)^3);
end
end
Результаты счета:
s=12
g=3
L=1
n=10
i x y z
0 0.0 0.0000 0.0000
1 0.1 0.0015 0.0300
2 0.2 0.0060 0.0600
3 0.3 0.0135 0.0900
4 0.4 0.0240 0.1200
5 0.5 0.0375 0.1500
6 0.6 0.0540 0.1800
7 0.7 0.0735 0.2100
8 0.8 0.0960 0.2400
9 0.9 0.1215 0.2700
10 1.0 0.1500 0.3000
>>
2. Использование встроенной функции ode45, предназначенной для решения задачи Коши для систем обыкновенных дифференциальных уравнений 1-го порядка вида .
В данной функции реализуются одношаговые методы Рунге-Кутта 4-го и 5-го порядков. Это классический подход, рекомендуемый для начальной пробы решения. Во многих случаях (если система уравнений не является жесткой) можно получить удовлетворительные результаты. Таким образом, данную функцию применяют довольно часто, особенно тогда, когда неизвестны характеристики задачи.
Предварительно представим систему (Л4.2) в виде
,
(Л4.3)
где
,
,
,
,
.
При
обращении к
ode45
входными параметрами будут дескриптор
имени функции, реализующей вычисление
вектор-функции
,
массив, содержащий значения левого и
правого конца диапазона изменения
переменной
,
а также вектор начальных значений
.
Выходными параметрами будут массивы
и
,
где
,
,
,
.
Пример соответствующей M-функции (ниже задано , ):
function consol_ode45
s=input('s=');
g=input('g=');
c=0.02*(s+g);
EJ=1/c;
x0xL=input('[x0 xL]=');
z0=input('[z10 z20]=');
[X Z]=ode45(@F,x0xL,z0);
n=length(X);
fprintf('\n'),fprintf('%3s %6s %6s %6s','i','x','y','y'''),fprintf('\n')
for i=1:n
fprintf('%3d %6.4f %6.4f %6.4f\n',i,X(i),Z(i,:))
end
plot(X,Z(:,1),'.-',X,Z(:,2),'*-'),grid on
legend('y=y(x)','z=y''(x)',0),title('ode45')
function dz=F(x,z)
dz=zeros(2,1);
dz(1)=z(2);
dz(2)=M(x)/EJ*sqrt((1+z(2)^2)^3);
end
function m=M(x)
m=1/sqrt((1+(c*x)^2)^3);
end
end
Результаты счета:
s=12
g=3
[x0 xL]=[0 1]
[y0 z0]=[0 0]
i x y y'
1 0.0000 0.0000 0.0000
2 0.0002 0.0000 0.0001
3 0.0003 0.0000 0.0001
4 0.0005 0.0000 0.0002
5 0.0007 0.0000 0.0002
6 0.0015 0.0000 0.0005
7 0.0023 0.0000 0.0007
8 0.0032 0.0000 0.0010
9 0.0040 0.0000 0.0012
10 0.0082 0.0000 0.0025
11 0.0124 0.0000 0.0037
12 0.0166 0.0000 0.0050
13 0.0208 0.0001 0.0062
14 0.0417 0.0003 0.0125
15 0.0626 0.0006 0.0188
16 0.0836 0.0010 0.0251
17 0.1045 0.0016 0.0313
18 0.1295 0.0025 0.0388
19 0.1545 0.0036 0.0463
20 0.1795 0.0048 0.0538
21 0.2045 0.0063 0.0613
22 0.2295 0.0079 0.0688
23 0.2545 0.0097 0.0763
24 0.2795 0.0117 0.0838
25 0.3045 0.0139 0.0913
26 0.3295 0.0163 0.0988
27 0.3545 0.0188 0.1063
28 0.3795 0.0216 0.1138
29 0.4045 0.0245 0.1213
30 0.4295 0.0277 0.1288
31 0.4545 0.0310 0.1363
32 0.4795 0.0345 0.1438
33 0.5045 0.0382 0.1513
34 0.5295 0.0421 0.1588
35 0.5545 0.0461 0.1663
36 0.5795 0.0504 0.1738
37 0.6045 0.0548 0.1813
38 0.6295 0.0594 0.1888
39 0.6545 0.0643 0.1963
40 0.6795 0.0693 0.2038
41 0.7045 0.0744 0.2113
42 0.7295 0.0798 0.2188
43 0.7545 0.0854 0.2263
44 0.7795 0.0911 0.2338
45 0.8045 0.0971 0.2413
46 0.8295 0.1032 0.2488
47 0.8545 0.1095 0.2563
48 0.8795 0.1160 0.2638
49 0.9045 0.1227 0.2713
50 0.9284 0.1293 0.2785
51 0.9522 0.1360 0.2857
52 0.9761 0.1429 0.2928
53 1.0000 0.1500 0.3000
>>
>>
