14640

Решение заданного дифференциальног уравнения методом Рунге – Кутта с применением «ручных» вычислений

Лабораторная работа

Информатика, кибернетика и программирование

Решить заданное дифференциальное уравнение методом Рунге – Кутта с применением ручных вычислений и с помощью программы с шагом h и шагом h/2. С помощью прикладного программного средства MathCAD методом Рунге – Кутта обеспечить вывод полученных решений в виде таблиц и граф...

Русский

2013-06-08

121.27 KB

23 чел.

Решить заданное дифференциальное уравнение методом Рунге – Кутта с применением «ручных» вычислений и с помощью программы с шагом h и шагом  h/2. С помощью прикладного программного средства (MathCAD) методом Рунге – Кутта обеспечить вывод полученных решений в виде таблиц и графиков.

1) Решение «вручную» с помощью MS Excel:

y=f(x,y)

a

b

y0

h

x+sin(y/3)

1.6

2.6

4.6

0.1

1.1) При h=0.1:

1)

2)

3)

4)

5)

6)

………………………………………………………………………………..

10)

1.2) При h=0.05:

1)

2)

3)

………………………………………..

19)

20)

  

Таблица результатов при h=0.1:

i

xi

y0

k1

f(x,y)=x+sin(y/3)

k2

f(x+h/2,y+k1/2)

0

1,6

4,6

0,259930

2,599298

0,264998

2,649983

1

1,7

h

0,269871

2,698707

0,274541

2,745411

2

1,8

0,1

0,278988

2,789884

0,283222

2,832219

3

1,9

0,287211

2,872105

0,290977

2,909768

4

2

0,294483

2,944828

0,297762

2,977620

5

2,1

0,300773

3,007726

0,303556

3,035562

6

2,2

0,306071

3,060711

0,308363

3,083633

7

2,3

0,310394

3,103941

0,312211

3,122114

8

2,4

0,313782

3,137823

0,315153

3,151530

9

2,5

0,316299

3,162987

0,317262

3,172619

10

2,6

0,318027

3,180270

0,318631

3,186307

i

k3

f(x+h/2,y+k2/2)

k4

f(x+h,y+k3)

Yi1

0

0,264998

2,649978

0,269871

2,698706

4,600000

1

0,274534

2,745336

0,278988

2,789882

4,864965

2

0,283209

2,832087

0,287210

2,872103

5,139467

3

0,290959

2,909592

0,294482

2,944824

5,422643

4

0,297742

2,977415

0,300772

3,007722

5,713571

5

0,303535

3,035347

0,306071

3,060706

6,011281

6

0,308342

3,083421

0,310394

3,103936

6,314785

7

0,312192

3,121921

0,313782

3,137816

6,623098

8

0,315137

3,151367

0,316298

3,162981

6,935262

9

0,317249

3,172494

0,318026

3,180264

7,250372

10

0,318622

3,186222

0,319067

3,190665

7,567596

Таблица результатов при h=0.05:

i

xi

y0

k1

f(x,y)=x+sin(y/3)

k2

f(x+h/2,y+k1/2)

0

1,6

4,6

0,129965

2,599298

0,131244

2,624875

1

1,65

h

0,132499

2,649980

0,133730

2,674598

2

1,7

0,05

0,134935

2,698707

0,136116

2,722311

3

1,75

0,137269

2,745374

0,138396

2,767915

4

1,8

0,139494

2,789884

0,140566

2,811318

5

1,85

0,141608

2,832153

0,142622

2,852440

6

1,9

0,143605

2,872105

0,144561

2,891213

7

1,95

0,145484

2,909680

0,146379

2,927582

8

2

0,147241

2,944828

0,148075

2,961506

9

2,05

0,148876

2,977516

0,149648

2,992957

10

2,1

0,150386

3,007726

0,151096

3,021926

11

2,15

0,151773

3,035453

0,152421

3,048416

12

2,2

0,153036

3,060711

0,153622

3,072447

13

2,25

0,154176

3,083526

0,154703

3,094055

14

2,3

0,155197

3,103941

0,155665

3,113291

15

2,35

0,156101

3,122016

0,156511

3,130220

16

2,4

0,156891

3,137823

0,157246

3,144922

17

2,45

0,157572

3,151447

0,157874

3,157489

18

2,5

0,158149

3,162987

0,158401

3,168027

19

2,55

 

0,158628

3,172555

0,158833

3,176650

20

2,6

0,159014

3,180270

0,159174

3,183485

i

k3

f(x+h/2,y+k2/2)

k4

f(x+h,y+k3)

Yi2

0

0,131244

2,624878

0,132499

2,649980

4,600000

1

0,133730

2,674592

0,134935

2,698707

4,731240

2

0,136115

2,722297

0,137269

2,745373

4,864965

3

0,138395

2,767893

0,139494

2,789884

5,001076

4

0,140564

2,811289

0,141608

2,832152

5,139467

5

0,142620

2,852405

0,143605

2,872105

5,280027

6

0,144559

2,891172

0,145484

2,909679

5,422643

7

0,146377

2,927537

0,147241

2,944828

5,567198

8

0,148073

2,961457

0,148876

2,977516

5,713571

9

0,149645

2,992906

0,150386

3,007726

5,861640

10

0,151094

3,021874

0,151773

3,035453

6,011281

11

0,152418

3,048363

0,153036

3,060710

6,162371

12

0,153620

3,072395

0,154176

3,083525

6,314786

13

0,154700

3,094005

0,155197

3,103941

6,468402

14

0,155662

3,113243

0,156101

3,122015

6,623098

15

0,156509

3,130176

0,156891

3,137822

6,778757

16

0,157244

3,144881

0,157572

3,151446

6,935262

17

0,157873

3,157453

0,158149

3,162986

7,092502

18

0,158400

3,167995

0,158628

3,172554

7,250372

19

0,158831

3,176623

0,159013

3,180269

7,408768

20

0,159173

3,183463

0,159313

3,186263

7,567596

Относительные погрешности метода:

Влияние шага на точность вычислений:

2) Решение в MathCad:

2.1) При  h=0.1:

2.2) При h=0.05:


Относительные погрешности метода:

3) Решение в Matlab:

создадим документ Blank M-file, напечатаем

function f=fun2(t,y)

f=t+sin(y/3);

сохраним под именем fun2

>> t=1.6;

>> h=0.1;

>> t_fin=2.6;

>> y0=4.6;

>> [t,y]=ode45('fun2',[1.6:h:t_fin],[y0]);

>> plot(t,y,'LineWidth', 2);grid;

>> single(y)

ans =

  4.5999999

  4.8649654

  5.1394668

  5.4226437

  5.7135711

  6.0112815

  6.3147855

  6.6230979

  6.9352617

  7.2503719

  7.5675964

Округлим до 6-ти цифр после запятой:

y=

4.600000

4.864965

5.139467

5.422644

5.713571

6.011282

6.314786

6.623098

6.935262

7.250372

7.567596

>> h=0.05;

>> [t,y]=ode45('fun2',[1.6:h:t_fin],[y0]);

>> hold on;

>> plot(t,y,'LineWidth', 2);grid;

single(y)

ans =

  4.5999999

  4.7312398

  4.8649654

  5.0010762

  5.1394668

  5.2800274

  5.4226437

  5.5671983

  5.7135711

  5.8616400

  6.0112815

  6.1623712

  6.3147855

  6.4684014

  6.6230979

  6.7787566

  6.9352617

  7.0925026

  7.2503719

  7.4087682

  7.5675964

Округлим до 6-ти цифр после запятой:

y=

  4.600000

  4.731240

  4.864965

  5.001076

  5.139467

  5.280027

  5.422644

  5.567198

  5.713571

  5.861640

  6.011282

  6.162371

  6.314786

  6.468401

  6.623098

  6.778757

  6.935262

  7.092503

  7.250372

  7.408768

  7.567596

Таким образом, y = 7.567596

Относительные погрешности метода:

Сводная таблица результатов:

Метод

Результат

δ(y), %

h

h/2

h

h/2

«вручную» с Excel

7,567596

7,567596

MathCad

7,567596

7,567596

Matlab

Вывод: относительная погрешность во всех методах одинакова, выявить наиболее точный метод не удалось. На приведенных графиках видно, что с уменьшением шага повышается точность вычислений. В данном случае, при решении способом Рунге-Кутта, по сравнению с методом Эйлера мы получили чуть большую погрешность вычислений (0.000014% против 0.000013%).

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РТ

АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ

НЕФТЯНОЙ ИНСТИТУТ

Кафедра информатики

ЛАБОРАТОРНАЯ  РАБОТА №11

По дисциплине: «Прикладное программирование»

На тему: «Численное решение обыкновенного дифференциального

уравнения первого порядка методом Рунге-Кутта»

Вариант №42

Выполнил: студент группы 10-21   Хохлов Р.С. Проверил: доцент каф. информатики Амиров Д.Ф.

Альметьевск 2013


 

А также другие работы, которые могут Вас заинтересовать

50848. Цена деления гальванометра 44 KB
  Коэффициент взаимной индукции убывает с увеличением расстояния l т. поле одного витка первой катушки убывает с расстоянием по закону. При том же токе I1 поток магнитной 2 через витки второй катушки убывает с расстоянием между катушками.