Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LEKTsIYa-4_Cauchy.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
400.9 Кб
Скачать

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

>>

>>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]