seminar 2 numericka matematika

15
СЕМИНАРСКИ РАД II Предмет: Нумеричка математика

Upload: damise3

Post on 12-Jan-2016

20 views

Category:

Documents


0 download

DESCRIPTION

Seminarski

TRANSCRIPT

Page 1: Seminar 2 Numericka Matematika

СЕМИНАРСКИ РАД IIПредмет: Нумеричка математика

Page 2: Seminar 2 Numericka Matematika
Page 3: Seminar 2 Numericka Matematika

1.1. Лагранжов интерполациони полином

Програмски код за налажење Лагранжовог полинома у програмском језику Qbasic je:

10 REM LAGRANZOVA JEDNACINA20 PRINT "BROJ TACAKA N JE"30 INPUT N40 DIM X(N), Y(N)50 FOR I = 0 TO N - 160 READ X(I), Y(I)70 NEXT80 DEF FNZ (Z)90 LX = 0100 FOR J = 0 TO N - 1110 P1 = 1120 P2 = 1130 FOR I = 0 TO N - 1140 IF I <> J THEN150 P1 = P1 * (Z - X(I)): P2 = P2 * (X(J) - X(I))160 END IF170 NEXT172 LX = LX + Y(J) * P1 / P2174 NEXT180 FNZ = LX190 END DEF210 PRINT "X, LX"212 PRINT X, LX215 FOR XZ = 1 TO 3 STEP .1220 PRINT USING "#.####"; XZ;225 PRINT " ";230 PRINT USING "#.####"; FNZ(XZ);240 PRINT " ";250 NEXT260 DATA 1,0.2420,1.2,0.1942,1.4,0.1497,1.6,0.1109,1.8,0.0790,2,0.0540

Page 4: Seminar 2 Numericka Matematika

Слика 1.1.1. Изглед екрана са програмским кодом за изналажење Лагранжовог полинома

После покретања програма појављује се проограм са дијалогом

BROJ TACAKA N JE? 6После уношења броја тачака добијају се слиједеће вриједности: ? 6X LX1.0000 0.2420 1.1000 0.2179 1.2000 0.1942 1.3000 0.17141.4000 0.14971.5000 0.1295 1.6000 0.11091.7000 0.0941 1.8000 0.0790

Page 5: Seminar 2 Numericka Matematika

1.9000 0.06572.0000 0.0540 2.1000 0.0438 2.2000 0.0347 2.3000 0.02652.4000 0.01872.5000 0.0109 2.6000 0.0024 2.7000 -.0073 2.8000 -.0190 2.9000 -.03343.0000 -.0515

Слика 1.1.2. Изглед прозора у МС-ДОС-у са вриједностима Лагранжовог интерполационог полинома

1.2. Нјутнов интерполациони полином

Page 6: Seminar 2 Numericka Matematika

Програмски код за налажење Нјутновог интерполационог полинома је:

10 REM NJUTNOVA INTERPOLACIJA20 PRINT "KROZ KOLIKO TACAKA N SE PROVLACI POLINOM"50 INPUT N60 PRINT "POCETNA VRIJEDNOST X0"70 INPUT X080 PRINT "INTERVAL"90 INPUT H100 DATA 0.2420,0.1942,0.1497,0.1109,0.0790,0.0540105 FOR I = 0 TO N - 1110 READ Y(I)120 NEXT I122 DEF FNZ (Z)123 FK = 1130 Y0 = Y(0)140 D0 = Y(1) - Y0142 FX = Y0145 FOR J = 1 TO N147 P1 = 1153 FK = FK * J154 A1 = D0 ^ J / ((H ^ J) * FK)155 FOR I = 1 TO J160 X(I - 1) = X0 + (I - 1) * H170 P1 = P1 * (Z - X(I - 1))190 NEXT I192 FX = FX + (A1 * P1)193 NEXT J242 FNZ = FX245 END DEF250 FOR Z = 1 TO 2.1 STEP .1260 PRINT USING "#.#####"; Z270 PRINT " ";280 PRINT USING "#.#####"; FNZ(Z)290 PRINT " ";400 NEXT Z450 END

Page 7: Seminar 2 Numericka Matematika

Слика 1.2.1. Програм за проналажење Нјутновог интерполационог полинома

Покретањем програма Njutn.bas добија се прозор са дијалогом:

KROZ KOLIKO TACAKA N SE PROVLACI POLINOM? 6POCETNA VRIJEDNOST X0? 1INTERVAL? 0.2

После уношења тражених вриједности добијају се вриједности интерполационог полинома:

1.00000 0.24200 1.10000 0.21781

Page 8: Seminar 2 Numericka Matematika

1.20000 0.19420 1.30000 0.17116 1.40000 0.14868 1.50000 0.12675 1.60000 0.10535 1.70000 0.08446 1.80000 0.06408 1.90000 0.04419 2.00000 0.02478.

Слика 1.2.2. Изглед екрана у МС-ДОС-у са вриједностима Нјутновог интерполационог полинома

Page 9: Seminar 2 Numericka Matematika

Види се да за вриједност бољу апроксимацију даје Лагранжов интерполациони полином.

2.0. Рјешавање система једначина у околини тачке

Програм Nelinear.bas за рјешавање система једначина у околини тачке гласи:

10 REM RJESAVANJE NELINEARNIH JEDNACINA11 DEF FNS (Y) = (EXP(Y) - EXP(-Y)) / 213 DEF FNC (Y) = (EXP(Y) + EXP(-Y)) / 220 DEF FNX (X, Y) = SIN(X) * FNC(Y)30 DEF FNY (X, Y) = COS(X) * FNS(Y)40 DEF FNXX (X, Y) = COS(X) * FNC(Y)50 DEF FNXY (X, Y) = SIN(X) * FNS(Y)60 DEF FNYX (X, Y) = -SIN(X) * FNS(Y)70 DEF FNYY (X, Y) = COS(X) * FNC(Y)80 PRINT "UNESITE PRIBLIZNE VRIJEDNOSTI X I Y'"90 INPUT "X="; X100 INPUT "Y="; Y110 PRINT " UNESITE ZELJENU TACNOST E"120 INPUT " E="; E130 I = 1140 D = FNXX(X, Y) * FNYY(X, Y) - FNYX(X, Y) * FNXY(X, Y)150 DH = FNY(X, Y) * FNXY(X, Y) - FNX(X, Y) * FNYY(X, Y)160 DK = FNYX(X, Y) * FNX(X, Y) - FNXX(X, Y) * FNY(X, Y)170 H = DH / D180 K = DK / D190 X1 = X + H200 Y1 = Y + K210 IF ABS(H) + ABS(K) > E THEN220 X = X1230 Y = Y1240 I = I + 1250 GOTO 140260 END IF270 PRINT "RJESENJA SU: "; "X="; X1, "Y="; Y1280 END

Page 10: Seminar 2 Numericka Matematika

Слика 2.1. Програм за рјешавање система нелинеарних једначина у околини тачке Нјутновом методом

После покретања програма и уношења тражених вриједности у прозор са дијалогом добијају се рјешења.

UNESITE PRIBLIZNE VRIJEDNOSTI X I Y'X=? 3Y=? 7 UNESITE ZELJENU TACNOST E E=? 0.000001RJESENJA SU: X= 3.141593 Y= 0UNESITE PRIBLIZNE VRIJEDNOSTI X I Y'X=? 3Y=? 7 UNESITE ZELJENU TACNOST E E=? 0.0000001RJESENJA SU: X= 3.141593 Y= 0

Page 11: Seminar 2 Numericka Matematika

Слика 2.2. Изглед екрана у МС ДОС-у после извршавања програма Nelinear.bas

3.0. Рјешавање система једначина итеративном методом

Задати сисстем једначина није дијагонално доминантан, тако да не испуњава услов конвергенције потребан за итеративну методу, па рјешења неће бити прецизна као у случајевима гдје је услов конвергенције задовољен.

Програмски код у Qbasic-у је :

10 REM ITERATIVNA METODA20 DEF FNW (X, Y, Z) = (32 - 7 * X - 8 * Y - 7 * Z) / 1030 DEF FNX (W, Y, Z) = (23 - 7 * W - 6 * Y - 5 * Z) / 540 DEF FNY (W, X, Z) = (33 - 8 * W - 6 * X - 9 * Z) / 1050 DEF FNZ (W, X, Y) = (31 - 7 * W - 5 * X - 9 * Y) / 1060 PRINT "DOZVOLJENA GRESKA EPS"70 INPUT EPS80 PRINT " POCETNA VRIJEDNOST W"90 INPUT W100 PRINT "POCETNA VRIJEDNOST X"110 INPUT X120 PRINT " POCETNA VRIJEDNOST Y"130 INPUT Y140 PRINT " POCETNA VRIJEDNOST Z"150 INPUT Z160 I = 0210 W1 = FNW(X, Y, Z)220 X1 = FNX(W1, Y, Z)230 Y1 = FNY(W1, X1, Z)240 Z1 = FNZ(W1, X1, Y1)250 R1 = ABS(W1 - W)100 PRINT "POCETNA VRIJEDNOST X"

Page 12: Seminar 2 Numericka Matematika

110 INPUT X120 PRINT " POCETNA VRIJEDNOST Y"130 INPUT Y140 PRINT " POCETNA VRIJEDNOST Z"150 INPUT Z160 I = 0210 W1 = FNW(X, Y, Z)220 X1 = FNX(W1, Y, Z)230 Y1 = FNY(W1, X1, Z)240 Z1 = FNZ(W1, X1, Y1)250 R1 = ABS(W1 - W)260 R2 = ABS(X1 - X)290 R3 = ABS(Y1 - Y)310 R4 = ABS(Z1 - Z)315 R = R1 + R2 + R3 + R4320 IF R > EPS GOTO 330 ELSE GOTO 400330 W = W1340 X = X1350 Y = Y1360 Z = Z1370 I = I + 1380 GOTO 210400 PRINT "RJESENJA W, X, Y,Z SU:"; " W1", " X1", " Y1", " Z1"405 PRINT " W1", "X1", " Y1", "Z1"410 PRINT W1, X1, Y1, Z1420 PRINT " BROJ ITERACIJA JE "; " I"430 PRINT " I"435 PRINT I440 END

Page 13: Seminar 2 Numericka Matematika

Слика 3.1. Прозор са програмом Semindva.bas за рјешавање система једначина итеративном методом

После стартовања програма добија се следећи прозор:

Page 14: Seminar 2 Numericka Matematika