Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



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

Вариант - 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

 

3. Параболическая регрессия:  

 

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

 

X

1 2 3 4 5 6 7 8 9 10

Y

-8,5 -3,5 -1,9 -0,7 0,0 -0,3 -1,5 -2,7 -5,2 -11,7

 

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

Коэффициенты данной аппроксимирующей функции a, b, c находят из условия минимума функции:

Условия минимума функции сводятся к системе уравнений:

 

 

После преобразований получаем систему трёх линейных уравнений с тремя неизвестными:

 

 

При решении системы находим коэффициенты  a, b, c.

 

 

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

 

I X Y X ^2 X ^3 X ^4 X *Y X ^2*Y
1 1 -8,5 1 1 1 -8,5 -8,5
2 2 -3,5 4 8 16 -7 -14
3 3 -1,9 9 27 81 -5,7 -17,1
4 4 -0,7 16 64 256 -2,8 -11,2
5 5 0 25 125 625 0 0
6 6 -0,3 36 216 1296 -1,8 -10,8
7 7 -1,5 49 343 2401 -10,5 -73,5
8 8 -2,7 64 512 4096 -21,6 -172,8
9 9 -5,2 81 729 6561 -46,8 -421,2
10 10 -11,7 100 1000 10000 -117 -1170

55 -36 385 3025 25333 -221,7 -1899,1
a b c d e f G

dd = (e ∙ c ∙ n + d ∙ a ∙ c + d ∙ a ∙ c) - (c ∙ c ∙ c + d ∙ d ∙ n + a ∙ a ∙ e) = 435600

da = (g ∙ c ∙ n + d ∙ a ∙ b + f ∙ a ∙ c) - (b ∙ c ∙ c + f ∙ d ∙ n + a ∙ a ∙ g) = -208230

db = (e ∙ f ∙ n + g ∙ a ∙ c + d ∙ b ∙ c) - (c ∙ f ∙ c + d ∙ g ∙ n + b ∙ a ∙ e) = 2165394

dc = (e ∙ c ∙ b + d ∙ a ∙ g + d ∙ f ∙ c) - (c ∙ c ∙ g + d ∙ d ∙ b + a ∙ f ∙ e) = -5460973

 

                

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

 

X

1 2 3 4 5 6 7 8 9 10

Y

-8,0436 -4,5067 -1,9258 -0,3009 0,3679 0,0806 -1,1627 -3,3621 -6,5176 -10,6291

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

 

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

 

PRINT "Y=a*X^2+b*X+c"

CLS

n = 10

DIM x(n), y(n)

DATA 1,2,3,4,5,6,7,8,9,10

FOR i = 1 TO n

READ x(i)

NEXT i

DATA -8.5, -3.5, -1.9, -0.7, 0.0, -0.3, -1.5, -2.7, -5.2, -11.7

FOR i = 1 TO n

READ y(i)

NEXT i

FOR i = 1 TO n

PRINT "X="; x(i); "Y="; y(i)

NEXT i

PRINT

FOR i = 1 TO n

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

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

c = c + x(i) ^ 2: c1 = x(i) ^ 2

d = d + x(i) ^ 3: d1 = x(i) ^ 3

e = e + x(i) ^ 4: e1 = x(i) ^ 4

f = f + x(i) * y(i): f1 = x(i) * y(i)

g = g + x(i) ^ 2 * y(i): g1 = x(i) ^ 2 * y(i)

PRINT "i="; i, "a="; a1; "b="; b1; "c="; c1; "d="; d1; "e="; e1; "f="; f1; "g="; g1

NEXT i

PRINT

dd = (e * c * n + d * a * c + d * a * c) - (c * c * c + d * d * n + a * a * e)

da = (g * c * n + d * a * b + f * a * c) - (b * c * c + f * d * n + a * a * g)

db = (e * f * n + g * a * c + d * b * c) - (c * f * c + d * g * n + b * a * e)

dc = (e * c * b + d * a * g + d * f * c) - (c * c * g + d * d * b + a * f * e)

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

PRINT

a = da / dd

b = db / dd

c = dc / dd

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

PRINT

FOR i = 1 TO n

y1 = a * x(i) ^ 2 + b * x(i) + c

PRINT "i="; i, "y1="; y1

NEXT i

END

 

 


Поделиться:



Последнее изменение этой страницы: 2019-04-10; Просмотров: 184; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.073 с.)
Главная | Случайная страница | Обратная связь