Модифицированный метод Эйлера. — КиберПедия 

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Модифицированный метод Эйлера.

2017-10-11 343
Модифицированный метод Эйлера. 0.00 из 5.00 0 оценок
Заказать работу

Для определения воспользуемся обычной формулой Эйлера, а для определения будет естественным использовать уточненную формулу, т.е.

(Л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

>>

>>

 

 

3. Использование встроенной функции ode15s, предназначенной для решения задачи Коши для систем обыкновенных дифференциальных уравнений 1-го порядка вида .

В данной функции реализуется многошаговый метод переменного порядка (от одного до пяти), использующий формулы численного дифференцирования «назад». Это адаптивный метод, рекомендуемый к применению в случае, когда ode45 не обеспечивает решения (система уравнений жесткая). При этом, входные и выходные параметры при обращении к ode15s полностью совпадают с соответствующими параметрами функции ode45.

Пример соответствующей M-функции (ниже задано , ):

function consol_ode15s

s=input('s=');

g=input('g=');

c=0.02*(s+g);

EJ=1/c;

x0xL=input('[x0 xL]=');

z0=input('[z10 z20]=');

 

[X Z]=ode15s(@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('ode15s')

 

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.0021 0.0000 0.0006

3 0.0041 0.0000 0.0012

4 0.0062 0.0000 0.0019

5 0.0152 0.0000 0.0046

6 0.0242 0.0001 0.0073

7 0.0332 0.0002 0.0100

8 0.0422 0.0003 0.0127

9 0.0690 0.0007 0.0207

10 0.0957 0.0014 0.0287

11 0.1225 0.0023 0.0367

12 0.1492 0.0033 0.0448

13 0.2492 0.0093 0.0748

14 0.3492 0.0183 0.1048

15 0.4492 0.0303 0.1348

16 0.5492 0.0453 0.1648

17 0.6492 0.0632 0.1948

18 0.7492 0.0842 0.2248

19 0.8492 0.1082 0.2548

20 0.9492 0.1352 0.2848

21 1.0000 0.1500 0.3000

>>

 

 


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.027 с.