Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchyot_po_kursovoy_rabote_14_var.doc
Скачиваний:
13
Добавлен:
11.02.2016
Размер:
354.82 Кб
Скачать

2. Решение обыкновенного дифференциального уравнения первого порядка

2.1 Аналитическое решение

Решению подлежит обыкновенное дифференциальное уравнение первого порядка (ОДУ1) (2.1).

, (2.1)

где  - время,

X – безразмерное значение воздействия,

Y - безразмерное значение реакции объекта,

А. К – коэффициенты отражающие свойства объекта.

Воздействие описывается синусоидой со сдвигом по фазе

(2.2)

Аналитическое решение уравнения (2.1) при воздействии (2.2) имеет вид (2.3).

, (2.3)

где:

C1=

1,2

C2=

3,7485

C3=

1,39598

2.2 Численное решение (неявный метод)

(2.4)

D1=

0,6

D2=

0,4


Абсолютное условие устойчивости 0<D<1

2.3 Численноее ршение в среде Excel

Результаты решения уравнения (2.1) при воздействии (2.2) представлено в таблице 2.2. и на рис. 2.1.

Для тестирования правильности выполнения вычислений приняты следующие значения исходных данных (Таблица 2.1).

A=

1,5

a0=

1,2

K=

1

a1=

5

Y0=

0

a2=

0,5

=

1

a3=

1

Таблица 2.1 – Исходные данные

Таблица 2.2

i

X

Ya

Yн

Yн, %

1

0,0

5,407

0,000

0,000

0,000

0,000

2

1,0

6,187

2,889

2,475

-0,414

-5,203

3

2,0

5,746

4,424

3,784

-0,641

-8,043

4

3,0

4,192

4,687

3,947

-0,739

-9,284

5

4,0

1,906

3,847

3,130

-0,717

-8,998

6

5,0

-0,554

2,232

1,657

-0,576

-7,227

7

6,0

-2,584

0,299

-0,040

-0,339

-4,256

8

7,0

-3,688

-1,447

-1,499

-0,052

-0,655

9

8,0

-3,595

-2,562

-2,337

0,225

2,822

10

9,0

-2,328

-2,765

-2,333

0,432

5,419

11

10,0

-0,197

-2,002

-1,479

0,523

6,566

12

11,0

2,276

-0,457

0,023

0,480

6,027

13

12,0

4,485

1,492

1,808

0,316

3,963

14

13,0

5,890

3,369

3,441

0,071

0,897

15

14,0

6,147

4,715

4,523

-0,192

-2,408

16

15,0

5,192

5,200

4,791

-0,409

-5,136

17

16,0

3,261

4,705

4,179

-0,527

-6,613

18

17,0

0,824

3,353

2,837

-0,516

-6,475

19

18,0

-1,520

1,473

1,094

-0,379

-4,755

20

19,0

-3,198

-0,474

-0,623

-0,149

-1,873

Таблица 2.2 – Результаты решения

Условные обозначения:

Ya, Yтр – соответственно решения уравнения (2.1):

Yтр – абсолютная погрешность решения уравнения (2.1)

Yтр – относительная погрешность решения уравнения (2.1)

Значение относительной погрешности определялось по формуле (2.5).

. (2.5)

2.4. Решение в Delphi

Листинг файла OutPut|.txt

A= 1.5000 K= 1.0000 Y0= 0.0000 Dtau= 1.0000 N= 20

A0= 1.2000 A1= 5.0000 A2= 0.5000 A3= 1.0000

I Tau X Ya Ynejav

0 0.00 5.4074 0.0000 0.0000

1 1.00 6.1875 2.8894 2.4750

2 2.00 5.7465 4.4242 3.7836

3 3.00 4.1924 4.6865 3.9471

4 4.00 1.9056 3.8472 3.1305

5 5.00 -0.5539 2.2324 1.6567

6 6.00 -2.5840 0.2994 -0.0396

7 7.00 -3.6877 -1.4466 -1.4988

8 8.00 -3.5946 -2.5619 -2.3371

9 9.00 -2.3277 -2.7650 -2.3334

10 10.00 -0.1971 -2.0018 -1.4788

11 11.00 2.2756 -0.4571 0.0229

12 12.00 4.4849 1.4921 1.8077

13 13.00 5.8900 3.3692 3.4406

14 14.00 6.1468 4.7149 4.5231

15 15.00 5.1924 5.1999 4.7908

16 16.00 3.2606 4.7054 4.1787

17 17.00 0.8242 3.3527 2.8369

18 18.00 -1.5201 1.4729 1.0941

19 19.00 -3.1985 -0.4737 -0.6229

I Tau DYnejav DeltaYnejav

0 0.00 0.0000 0.0000

1 1.00 -0.4144 -5.2029

2 2.00 -0.6406 -8.0431

3 3.00 -0.7394 -9.2837

4 4.00 -0.7167 -8.9982

5 5.00 -0.5756 -7.2274

6 6.00 -0.3390 -4.2561

7 7.00 -0.0522 -0.6554

8 8.00 0.2248 2.8218

9 9.00 0.4316 5.4190

10 10.00 0.5230 6.5663

11 11.00 0.4801 6.0272

12 12.00 0.3156 3.9626

13 13.00 0.0714 0.8966

14 14.00 -0.1918 -2.4083

15 15.00 -0.4090 -5.1355

16 16.00 -0.5267 -6.6127

17 17.00 -0.5158 -6.4754

18 18.00 -0.3788 -4.7555

19 19.00 -0.1492 -1.8729

ВЫВОДЫ

В данной работе я ознакомился с работой дифференциальных уравнений на практике. Рассмотрел, какие воздействия происходят под влиянием разных методов, разносторонних реакций воздействия.

Численное решение уравнения ОДУ неявным методом, проведенное в среде Excel и Turbo Delphi полностью совпадают и хорошо соотносятся с аналитическим решением уравнения.

СПИСОК ЛИТЕРАТУРЫ

  1. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся втузов. -13-е изд., исправленное. -М.: Наука, Гл.Ред. физ.-мат. лит., 1986. -544 с.

  2. Волков Е.А. Численные методы: Учебное пособие. - М.: Наука. Главная редакция физико-математической литературы, 1982. - 256 с.

  3. Тузова І.А., Челабчі В.В., Челабчі В.М. Чисельні методи. Навчальний посібник.- Одеса.:ОНМУ, 2012 – 39 с.

  4. Годунов С.К., Рябенький В,С. Разностные схемы (введение в теорию). Учебное пособие. - М: Наука, 1973.- 400 с.

  5. Львовский Е.Н. Статистические метода построения эмпирических формул: Учеб. пособие для втузов. - 2-е изд., перераб. и доп. -М.:Высш. шк., 1988. -239 с.

  6. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. - Томск: МП "Раско", 1991.-272 с.

  7. Турчак Л.И. Основы численных методов: Учеб. Пособие. - М.: Наука, Гл.ред.физ.-мат. лит., 1987. - 320 с.

  8. Методические указания разработанные кафедрой “Техническая кибернетика” и электронные документы – методические указания к лабораторным работам по курсам “Численные методы” и “Моделирование систем”.

ПРИЛОЖЕНИЕ

program Calc_ODU1;

{$APPTYPE CONSOLE}

uses

Math, sysutils, classes,

//Dialogs,

MyType, MyProc;

var

I,N : Ir;

A, K, Y0, A0, A1, A2, A3, Ymax, Ymin, Dtau : Db;

Tau, X, YA, Ynejav, DYnejav, DeltaYnejav : Vec;

F1,F2 : TextFile;

Begin

AssignFile(F1,'Input_ODU1.txt');

AssignFile(F2,'Output_ODU1.txt');

Reset(F1);

ReWrite(F2);

Readln(F1,A,K,Y0,Dtau,N);

Writeln('A=',A:7:4,' K=',K:7:4,' Y0=',Y0:7:4,' Dtau=',Dtau:7:4,' N=',N:3);

Writeln(F2,'A=',A:7:4,' K=',K:7:4,' Y0=',Y0:7:4,' Dtau=',Dtau:7:4,' N=',N:3);

Readln(F1,A0,A1,A2,A3);

Writeln(' A0=',A0:7:4,' A1=',A1:7:4,' A2=',A2:7:4,' A3=',A3:7:4);

Writeln(F2,' A0=',A0:7:4,' A1=',A1:7:4,' A2=',A2:7:4,' A3=',A3:7:4);

Readln;

An_Bienie(N,Y0,A,K,Dtau,A0,A1,A2,A3,Tau,X,YA);

Calc_Ynejav(N,A,K,Y0,Dtau,X,Ynejav);

Ymax := Ya[1];

Ymin := Ya[1];

for i:=2 to N-1 do

Begin

if (i=0) or (Ymax<YA[i]) then

Ymax:=Ya[i];

if (i=0) or (Ymin>YA[i]) then

Ymin:=Ya[i];

End;

Writeln(' I Tau X Ya Ynejav ');

Writeln(F2,' I Tau X Ya Ynejav ');

for I:=0 to N-1 do

begin

Writeln(I:2,' ',Tau[I]:6:2,' ',X[I]:7:4,' ',Ya[I]:7:4,' ',Ynejav[I]:7:4);

Writeln(F2,I:2,' ',Tau[I]:6:2,' ',X[I]:7:4,' ',Ya[I]:7:4,' ',Ynejav[I]:7:4);

end;

Readln;

Writeln(' I Tau DYnejav DeltaYnejav ');

Writeln(F2,' I Tau DYnejav DeltaYnejav ');

for I:=0 to N-1 do

begin

DYnejav[I]:=Ynejav[I]-Ya[I];

DeltaYnejav[I]:=DYnejav[I]/(Ymax-Ymin)*100;

Writeln(I:2,' ',Tau[I]:6:2,' ',DYnejav[I]:7:4,' ',DeltaYnejav[I]:7:4);

Writeln(F2,I:2,' ',Tau[I]:6:2,' ',DYnejav[I]:7:4,' ',DeltaYnejav[I]:7:4);

end;

Readln;

Close(F1);

Close(F2);

{ TODO -oUser -cConsole Main : Insert code here }

end.

unit MyProc;

interface

uses

MyType,

SysUtils,

Classes,

Math;

procedure An_Bienie(N:Ir; Y0,A,K,Dt,A0,A1,A2,A3:Db; Var T,X,Y:Vec);

procedure Calc_Ynejav(N:Ir; A,K,Y0,Dtau:Db; X:Vec; Var Ynejav:Vec);

implementation

procedure An_Bienie(N:Ir; Y0,A,K,Dt,A0,A1,A2,A3:Db; Var T,X,Y:Vec);

var

I : Ir;

C1,C2,C3 : Db;

begin

C1:=K*A0;

C2:=K*A1* (cos(A3) + A*A2*sin(A3) ) / (sqr(A*A2)+1);

C3:=K*A1* (sin(A3) - A*A2*cos(A3) ) / (sqr(A*A2)+1);

for I:=0 to N do

begin

T[I]:=Dt*I;

X[I]:=A0+A1*sin(A2*T[I] + A3);

Y[I]:=(Y0-C1-C3)*exp(-T[I]/A) + C1 + C2*sin(A2*T[I]) + C3*cos(A2*T[I]);

end;

End;

procedure Calc_Ynejav(N:Ir; A,K,Y0,Dtau:Db; X:Vec; Var Ynejav:Vec);

var

I : Ir;

D1,D2:Db;

begin

D1:=A/(A+Dtau);

D2:=K*Dtau/(A+Dtau);

Ynejav[0]:=Y0;

for I:=1 to N do

Ynejav[I]:=D1*Ynejav[I-1]+D2*X[I];

end;

End.

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