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

Министерство образования и науки РФ

Государственное образовательное учреждение ВПО

Пермский национальный исследовательский политехнический университет

Кафедра «Металлорежущие станки и инструменты»

КУРСОВАЯ РАБОТА

по дисциплине «Информатика»

Тема: «Использование численных методов при решении инженерных задач»

Вариант - 23

Выполнила:

студентка гр. УК уск. – 11

Сюткина С.А.

Проверила:

старший преподаватель

Мышкина А.В.

г. Пермь, 2011 г.

I. Аппроксимация неизвестной функции методом наименьших квадратов

1. Линейная регрессия:

Даны значения:

X

2

4

6

8

10

12

14

16

18

20

Y

14,84

9,96

9,30

8,14

10,58

7,56

5,10

4,70

2,88

1,10

Найти коэффициенты a и b выражения .

Находим суммы:

i

X

Y

X*Y

X*X

1

2

14,84

29,68

4

2

4

9,96

39,84

16

3

6

9,3

55,8

36

4

8

8,14

65,12

64

5

10

10,58

105,8

100

6

12

7,56

90,72

144

7

14

5,1

71,4

196

8

16

4,7

75,2

256

9

18

2,88

51,84

324

10

20

1,1

22

400

А = 110

B = 74,16

C = 607,4

D = 1540

Найденные коэффициенты a и b подставляем в уравнение и полученные значения заносим в таблицу

X

2

4

6

8

10

12

14

16

18

20

Y

13,0985

11,8358

10,5730

9,3102

8,0474

6,7846

5,5218

4,2590

2,9962

1,7335

Программа для вычислений коэффициентов a и b:

CLS

‘Y=a*X+b"

N = 10

DIM X(N), Y(N)

DATA 2, 4, 6, 8, 10, 12, 14, 16, 18, 20

FOR i = 1 TO N

READ X(i)

NEXT i

14.84,9.96,9.3,8.14,10.58,7.56,5.1,4.7,2.88,1.1

DATA 14.84, 9.96, 9.3, 8.14, 10.58, 7.56, 5.1, 4.7, 2.88, 1.1

FOR i = 1 TO N

READ Y(i)

NEXT i

FOR i = 1 TO N

PRINT i, X(i), Y(i)

NEXT i

a = 0: b = 0

FOR i = 1 TO N

a = a + X(i): a1 = X(i)

b = b + Y(i): b1 = Y(i)

c = c + X(i) * Y(i): c1 = X(i) * Y(i)

d = d + X(i) ^ 2: d1 = X(i) ^ 2

PRINT "i="; i, "a1="; a1, "b1="; b1, "c1="; c1, "d1="; d1

NEXT i

PRINT i; a; b; c; d

dd = (d * N) - (a * a)

da = (c * N) - (b * a)

db = (d * b) - (a * c)

PRINT "dd="; dd, "da="; da, "db="; db

a = da / dd

b = db / dd

PRINT "a="; a, "b="; b

FOR i = 1 TO N

Ya = a * X(i) + b

PRINT "i="; i, "Ya="; Ya

NEXT i

END

2. Степенная регрессия:

Заданы значения:

X

2

4

6

8

10

12

14

16

18

20

Y

0,56

0,21

0,11

0,07

0,05

0,04

0,03

0,02

0,02

0,02

Найти коэффициенты a и b выражения .

Прологарифмируем исходное уравнение:

Полученное уравнение является уравнением прямой линии:

Находим суммы:

I

Ln(X)

Ln(Y)

Ln(X)*Ln(Y)

Ln(X)*Ln(X)

1

0,69315

-0,57982

-0,40190

0,48045

2

1,38629

-1,56065

-2,16352

1,92181

3

1,79176

-2,20727

-3,95491

3,21040

4

2,07944

-2,65926

-5,52978

4,32408

5

2,30259

-2,99573

-6,89793

5,30190

6

2,48491

-3,21888

-7,99861

6,17476

7

2,63906

-3,50656

-9,25401

6,96462

8

2,77259

-3,91202

-10,84643

7,68725

9

2,89037

-3,91202

-11,30720

8,35425

10

2,99573

-3,91202

-11,71937

8,97441

A=22,03588

B=-28,46424

C=-70,07365

D=53,39394

Коэффициенты a и b подставляем в уравнение и значения Y заносим в таблицу

X

2

4

6

8

10

12

14

16

18

20

Y

0,5766

0,2010

0,1086

0,0701

0,0499

0,0379

0,0299

0,0244

0,0244

0,0174

Результаты вычислений можно представить графически:

Программа для вычислений коэффициентов a и b:

CLS

PRINT "Y=a*X^b"

N = 10

DIM X(N), Y(N)

DATA 2,4,6,8,10,12,14,16,18,20

FOR i = 1 TO N

READ X(i)

NEXT i

DATA 0.56, 0.21, 0.11, 0.07, 0.05, 0.04, 0.03, 0.02, 0.02, 0.02

FOR i = 1 TO N

READ Y(i)

NEXT i

FOR i = 1 TO N

PRINT "X="; X(i), "Y="; Y(i)

NEXT i

FOR i = 1 TO N

a = a + LOG(X(i)): a1 = LOG(X(i))

b = b + LOG(Y(i)): b1 = LOG(Y(i))

c = c + LOG(X(i)) * LOG(Y(i)): c1 = LOG(X(i)) * LOG(Y(i))

d = d + LOG(X(i)) ^ 2: d1 = LOG(X(i)) ^ 2

PRINT "i="; i, "a="; a1, "b="; b1, "c="; c1, "d="; d1

NEXT i

PRINT "Summa", "A="; a, "B="; b, "C="; c, "D="; d

PRINT

dd = (d * N) - (a * a)

da = (c * N) - (b * a)

db = (d * b) - (a * c)

PRINT "dd="; dd, "da="; da, "db="; db

PRINT

a = da / dd

b2 = db / dd

PRINT "b2="; b2

b = EXP(b2)

PRINT "a="; a, "b="; b

PRINT

FOR i = 1 TO N

y0 = Y(i)

y1 = b * X(i) ^ a

PRINT "X="; X(i), "Y="; Y(i), "y1="; y1

NEXT i

END