Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик готовый 1 вариант.doc
Скачиваний:
3
Добавлен:
26.08.2019
Размер:
1.46 Mб
Скачать

Вторая модельная задача.

Исходные данные

v, км/ч

v, м/с

R, Н

T, Н

0

0

0

152000

4

1,11

1000

8

2,22

5000

151500

12

3,33

10000

16

4,44

30000

151000

20

5,55

52000

24

6,66

75000

149000

28

7,77

93000

32

8,88

106000

148000

36

10

109000

40

11,11

108000

141000

44

12,22

107000

48

13,33

103000

130000

52

14,44

98000

56

15,55

92000

115000

60

16,66

87000

64

17,77

85000

105000

68

18,88

82000

72

20

87000

75000

Масса судна:

m=

76000

Линейная аппроксимация функции

Значения коэффициентов для уравнения сопротивления:

R1(V)

1170

2853,6

-4012,1

R2(V)

-47,979

-1256,8

125472

79831

81144,4

Значения коэффициентов для уравнения тяги:

T1(V)

-294,53

2445,6

148731

Значения коэффициентов для разности уравнений тяги и сопротивления:

v<8,88

-1464,53

-408

152743,1

v>8,88

-246,551

3702,4

23259

Стационарная скорость

Отделяем корень уравнения R(V)=T(V) шаговым методом

v, м/с

F(x)

0

152743,1

1,11

150485,8

2,22

144619,6

3,33

135144,4

4,44

122060,4

5,55

105367,5

6,66

85065,71

7,77

61155,02

8,88

36694,68

10

35627,9

11,11

33960,36

12,22

31685,26

13,33

28802,62

14,44

25312,42

15,55

21214,67

16,66

16509,37

17,77

11196,52

18,88

5276,123

20

-1313,4

Уточняем корень методом половинного деления

e=

0,001

x

b

F(a)

F(x)

F(a)*F(x)

|F(x)|<e

18,88

19,44

20

5276,123

2058,68001

10861849

19,44

19,72

20

2058,68

391,969602

806939,98

19,72

19,86

20

391,9696

-455,8828

-178692,2

19,72

19,79

19,86

391,9696

-30,7484991

-12052,48

19,72

19,755

19,79

391,9696

180,912576

70912,23

19,755

19,7725

19,79

180,9126

75,1575448

13596,945

19,7725

19,78125

19,79

75,15754

22,2233994

1670,2561

19,78125

19,78563

19,79

22,2234

-4,2578307

-94,62347

19,78125

19,78344

19,78563

22,2234

8,98396414

199,65422

19,78344

19,78453

19,78563

8,983964

2,36336167

21,232356

19,78453

19,78508

19,78563

2,363362

-0,94716078

-2,238483

19,78453

19,7848

19,78508

2,363362

0,70811888

1,673541

19,7848

19,78494

19,78508

0,708119

-0,11951634

-0,084632

19,7848

19,78487

19,78494

0,708119

0,29430242

0,2084011

19,78487

19,78491

19,78494

0,294302

0,08739332

0,0257201

19,78491

19,78492

19,78494

0,087393

-0,01606144

-0,001404

19,78491

19,78492

19,78492

0,087393

0,03566596

0,003117

19,78492

19,78492

19,78492

0,035666

0,00980227

0,0003496

Корень

Уточняем корень методом простой итерации

e=

0,001

x

F(x)

S(x)

|F(x)|<e

18,88

5276,123

20,01346

20,01346

-1396,353

19,73047

19,73047

328,8782

19,79808

19,79808

-79,69745

19,78175

19,78175

19,1815

19,78569

19,78569

-4,624207

19,78474

19,78474

1,114344

19,78497

19,78497

-0,268561

19,78491

19,78491

0,064723

19,78492

19,78492

-0,015598

19,78492

19,78492

0,003759

19,78492

19,78492

-0,000906

19,78492

Корень

Уточняем корень методом Ньютона

e=

0,000001

x

F(x)

F'(x)

|F(x)|<e

20

-1313,4

-6159,64

19,78677

-11,2096

-6054,5

19,78492

-0,000845

-6053,58

19,78492

0

-6053,58

Корень

Вычисляем время разгона

a=

0

b=

19,78492

h=

0,395698

Метод левых прямоугольников

i

v

f(v)

Ef(v)

result

0

0

0,497567

159,807

63,23538

1

0,395698

0,498844

2

0,791397

0,50164

3

1,187095

0,506009

4

1,582794

0,512032

5

1,978492

0,519825

6

2,374191

0,529546

7

2,769889

0,5414

8

3,165587

0,555655

9

3,561286

0,572652

10

3,956984

0,592836

11

4,352683

0,616781

12

4,748381

0,645244

13

5,14408

0,679235

14

5,539778

0,720122

15

5,935477

0,769806

16

6,331175

0,831

17

6,726873

0,907708

18

7,122572

1,00609

19

7,51827

1,136126

20

7,913969

1,315121

21

8,309667

1,575909

22

8,705366

1,989307

23

9,101064

2,080304

24

9,496762

2,10039

25

9,892461

2,125448

26

10,28816

2,155821

27

10,68386

2,191945

28

11,07956

2,234361

29

11,47525

2,283737

30

11,87095

2,340898

31

12,26665

2,406865

32

12,66235

2,482905

33

13,05805

2,570602

34

13,45375

2,671954

35

13,84945

2,789508

36

14,24514

2,926558

37

14,64084

3,087423

38

15,03654

3,277881

39

15,43224

3,505824

40

15,82794

3,782316

41

16,22364

4,123354

42

16,61933

4,552949

43

17,01503

5,10885

44

17,41073

5,853985

45

17,80643

6,901649

46

18,20213

8,478446

47

18,59783

11,11315

48

18,99352

16,39213

49

19,38922

32,24727

50

19,78492

-83889912

#include<math.h>

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

int main()

{

clrscr();

int i;

float t,r,slp,sum,n,a,b,hx;

float x[150],y[150];

printf("enter a\n");

scanf("%f",&a);

printf("enter b\n");

scanf("%f",&b);

printf("enter n\n");

scanf("%f",&n);

hx=(b-a)/n;

printf("assigned data\n");

printf("a=%9.5f\n",a);

printf("b=%9.5f\n",b);

printf("hx=%9.5f\n",hx);

printf("n=%9.5f\n",n);

sum=0;

printf(" x y\n");

for(i=0;i<=n-1;i++)

{

x[i]=a+i*hx;

t=-294.53*x[i]*x[i]+2445.6*x[i]+148731;

if(x[i]<8.88){r=1170*x[i]*x[i]+2853.6*x[i]-4012.1;}

else{r=-47.979*x[i]*x[i]-1256.8*x[i]+125472;}

y[i]=76000/(t-r);

printf("%9.5f %9.5f\n",x[i],y[i]);

sum=sum+y[i];

}

slp=hx*sum;

printf("slp=%9.5f",slp);

return 0;

}

Определяем путь разгона судна

a=

0

b=

63,23538

h=

1,264708

Метод Эйлера

i

t

S

V

0

0

0

0

1

1,264708

0

2,541781

2

2,529415

3,214609

4,908851

3

3,794123

9,42287

6,830038

4

5,05883

18,06087

8,18855

5

6,323538

28,41699

9,040596

6

7,588245

39,8507

9,649315

7

8,852953

52,05426

10,24886

8

10,11766

65,01607

10,8364

9

11,38237

78,72095

11,40931

10

12,64708

93,15038

11,96522

11

13,91178

108,2829

12,50208

12

15,17649

124,0944

13,01812

13

16,4412

140,5585

13,51192

14

17,70591

157,6471

13,98239

15

18,97061

175,3307

14,42878

16

20,23532

193,5789

14,85064

17

21,50003

212,3607

15,24782

18

22,76474

231,6447

15,62041

19

24,02944

251,3999

15,96878

20

25,29415

271,5958

16,29345

21

26,55886

292,2022

16,59516

22

27,82357

313,1902

16,87474

23

29,08827

334,5318

17,13316

24

30,35298

356,2003

17,37144

25

31,61769

378,1701

17,59067

26

32,8824

400,4171

17,79195

27

34,1471

422,9187

17,97642

28

35,41181

445,6537

18,14519

29

36,67652

468,602

18,29934

30

37,94123

491,7453

18,43994

31

39,20593

515,0664

18,568

32

40,47064

538,5495

18,68452

33

41,73535

562,18

18,7904

34

43,00006

585,9444

18,88653

35

44,26476

609,8303

18,97372

36

45,52947

633,8265

19,05274

37

46,79418

657,9226

19,12429

38

48,05889

682,1093

19,18905

39

49,32359

706,3778

19,24762

40

50,5883

730,7204

19,30056

41

51,85301

755,13

19,34839

42

53,11772

779,6

19,39159

43

54,38242

804,1247

19,43058

44

55,64713

828,6987

19,46576

45

56,91184

853,3172

19,49749

46

58,17655

877,9758

19,52611

47

59,44125

902,6707

19,5519

48

60,70596

927,3981

19,57515

49

61,97067

952,1549

19,59611

50

63,23538

976,9383

19,61498

#include<math.h>

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

int main()

{

clrscr();

int i;

float a,b,h,xn,x[150],y[150],z[150],tv,rv;

printf("enter a\n");

scanf("%f",&a);

printf("enter b\n");

scanf("%f",&b);

printf("enter n\n");

scanf("%f",&xn);

printf("enter x(0)\n");

scanf("%f",&x[0]);

printf("enter y(0)\n");

scanf("%f",&y[0]);

printf("enter z(0)\n");

scanf("%f",&z[0]);

h=(b-a)/xn;

printf("assigned data\n");

printf("a=%9.5f\n",a);

printf("b=%9.5f\n",b);

printf("hx=%9.5f\n",h);

printf(" x y z\n");

printf("%9.5f %9.5f %9.5f\n",x[0],y[0],z[0]);

for(i=1;i<=xn;i++)

{

tv=-294.53*z[i-1]*z[i-1]+2445.6*z[i-1]+148731;

if(z[i-1]<8.88){rv=1170*z[i-1]*z[i-1]+2853.6*z[i-1]-4012.1;}

else{rv=-47.979*z[i-1]*z[i-1]-1256.8*z[i-1]+125472;}

x[i]=a+i*h;

y[i]=y[i-1]+h*z[i-1];

z[i]=z[i-1]+h*((tv-rv)/76000);

printf("%9.5f %9.5f %9.5f\n",x[i],y[i],z[i]);

}

return 0;

}

Определяем энергию разгона

a=

0

b=

19,78492

h=

0,395698

Метод левых прямоугольников

i

v

f(v)

Ef(v)

result

Энергия разгона:

0

0

0

6329,635

2504,627

E=

95175820

1

0,395698

0,156577

2

0,791397

0,626309

3

1,187095

1,409195

4

1,582794

2,505236

5

1,978492

3,914431

6

2,374191

5,636781

7

2,769889

7,672285

8

3,165587

10,02094

9

3,561286

12,68276

10

3,956984

15,65773

11

4,352683

18,94585

12

4,748381

22,54712

13

5,14408

26,46156

14

5,539778

30,68914

15

5,935477

35,22988

16

6,331175

40,08378

17

6,726873

45,25083

18

7,122572

50,73103

19

7,51827

56,52439

20

7,913969

62,6309

21

8,309667

69,05057

22

8,705366

75,78339

23

9,101064

82,82937

24

9,496762

90,1885

25

9,892461

97,86078

26

10,28816

105,8462

27

10,68386

114,1448

28

11,07956

122,7566

29

11,47525

131,6815

30

11,87095

140,9195

31

12,26665

150,4707

32

12,66235

160,3351

33

13,05805

170,5126

34

13,45375

181,0033

35

13,84945

191,8071

36

14,24514

202,9241

37

14,64084

214,3543

38

15,03654

226,0976

39

15,43224

238,154

40

15,82794

250,5236

41

16,22364

263,2064

42

16,61933

276,2023

43

17,01503

289,5113

44

17,41073

303,1336

45

17,80643

317,0689

46

18,20213

331,3175

47

18,59783

345,8792

48

18,99352

360,754

49

19,38922

375,942

50

19,78492

391,4431

Определяем время торможения

a=

19,78492

b=

0

h=

-0,395698

Метод левых прямоугольников

i

v

f(v)

Ef(v)

PP

0

19,78492

0,928809

69,25557

27,40432

1

19,38922

0,914932

2

18,99352

0,901624

3

18,59783

0,888854

4

18,20213

0,876593

5

17,80643

0,864813

6

17,41073

0,85349

7

17,01503

0,8426

8

16,61933

0,832121

9

16,22364

0,822033

10

15,82794

0,812317

11

15,43224

0,802955

12

15,03654

0,793932

13

14,64084

0,78523

14

14,24514

0,776837

15

13,84945

0,768738

16

13,45375

0,760921

17

13,05805

0,753373

18

12,66235

0,746084

19

12,26665

0,739042

20

11,87095

0,732238

21

11,47525

0,725662

22

11,07956

0,719305

23

10,68386

0,71316

24

10,28816

0,707217

25

9,892461

0,70147

26

9,496762

0,695911

27

9,101064

0,690534

28

8,705366

0,694089

29

8,309667

0,756298

30

7,913969

0,827442

31

7,51827

0,909357

32

7,122572

1,004385

33

6,726873

1,115561

34

6,331175

1,246871

35

5,935477

1,403656

36

5,539778

1,593208

37

5,14408

1,825735

38

4,748381

2,11593

39

4,352683

2,485662

40

3,956984

2,968856

41

3,561286

3,620908

42

3,165587

4,538472

43

2,769889

5,905835

44

2,374191

8,121459

45

1,978492

12,23122

46

1,582794

22,12076

47

1,187095

74,20762

48

0,791397

-74,43768

49

0,395698

-28,15086

50

0

-18,9427

#include<math.h>

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

int main()

{

clrscr();

int i;

float e,x[50],f[50],fp[50],tv[50],tvp[50],rv[50],rvp[50];

e=0.000001;

printf("enter first x\n");

scanf("%f",&x[1]);

tv[1]=-294.53*x[1]*x[1]+2445.6*x[1]+148731;

tvp[1]=-294.53*x[1]*2+2445.6;

if(x[1]<8.88){rv[1]=1170*x[1]*x[1]+2853.6*x[1]-4012.1; rvp[1]=1170*x[1]*2+2853.6;}

else{rv[1]=-47.979*x[1]*x[1]-1256.8*x[1]+125472; rvp[1]=-47.979*x[1]*2-1256.8;}

f[1]=tv[1]-rv[1];

fp[1]=tvp[1]-rvp[1];

printf(" x f fp\n");

printf("%6.4f %6.4f %6.4f\n",x[1],f[1],fp[1]);

for(i=2;i<21;i++){

x[i]=x[i-1]-f[i-1]/fp[i-1];

tv[i]=-294.53*x[i]*x[i]+2445.6*x[i]+148731;

tvp[i]=-294.53*x[i]*2+2445.6;

if(x[i]<8.88){rv[i]=1170*x[i]*x[i]+2853.6*x[i]-4012.1; rvp[i]=1170*x[i]*2+2853.6;}

else{rv[i]=-47.979*x[i]*x[i]-1256.8*x[i]+125472; rvp[i]=-47.979*x[i]*2-1256.8;}

f[i]=tv[i]-rv[i];

fp[i]=tvp[i]-rvp[i];

printf("%6.4f %6.4f %6.4f\n",x[i],f[i],fp[i]);

if(fabs(f[i])<e)

{

printf("end of calculation\n");

printf("wanted value x=%6.4f",x[i]);

getch();

}

}

return 0;

}