You are on page 1of 4

LABA Uppgift 1:

numerisk analys
Använd ett matematikprogram för att göra en numerisk analys och ta reda på T(n) och Ordo
för följande kodsnutt:
int r=0, n=20;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
for(int k=j;k<=i+j;k++)
for(int m=1;m<=i+j-k;m++)
r++;//Enkel sats

för att vi kunna se hur många gånger den enkla satsen exekveras måste vi först köra
programmet, där genom att ge första provkörning för n =1-20, andraprovkörning för n= 1-40
och tredjeprovkörning för n=1-100.

Resultat:
Vid Första körning av programmet hittas resultat för T(n) och ordo för n=1-20 :
T(n)= 1, 7, 25, 65, 140, 266, 462, 750, 1155, 1705, 2431, 3367, 4550, 6020, 7820, 9996,
12597, 15675, 19285, 23485.
Nu låter matematikprogram anpassa en tredjegradare, fjärdegradare och femtegradare :
polynom av grad 3:
5.6667 * n3 - 71.7143 * n2 + 356.3333 * n - 455.4000.
polynom av grad 4:
0.1250 * n4 + 0.4167* n3 + 0.3750* n2 + 0.0833 * n + 0.0000.
polynom av grad 5:
-0.0000 * n5 + 0.1250* n4 + 0.4167* n3 + 0.3750*n2 + 0.0833* n + 0.0000.

Vid andra körning av programmet hittas resultat för T(n) och ordo för n=1-40 :
T(n)= 1, 7, 25, 65, 140, 266, 462, 750, 1155, 1705, 2431, 3367, 4550, 6020, 7820, 9996,
12597, 15675, 19285, 23485, 28336, 33902, 40250, 47450, 55575, 64701, 74907, 86275,
98890, 112840, 128216, 145112, 163625, 183855, 205905, 229881, 255892, 284050,
314470, 347270.
polynom av grad 3:
1.0e+03 * 0.0107* n3 -0.2721 *n2 + 2.5553*n -5.8179
polynom av grad 4:
0.1250 * n4 + 0.4167* n3 + 0.3750* n2 + 0.0833 * n + 0.0000.
polynom av grad 5:
-0.0000 * n5 + 0.1250* n4 + 0.4167* n3 + 0.3750*n2 + 0.0833* n + 0.0000.

Vid tredje körning av programmet hittas resultat för T(n) och ordo för n=1-100 :
T(n)= 1, 7, 25, 65, 140, 266, 462, 750, 1155, 1705, 2431, 3367, 4550, 6020, 7820, 9996,
12597, 15675, 19285, 23485, 28336, 33902, 40250, 47450, 55575, 64701, 74907, 86275,
98890, 112840, 128216, 145112, 163625, 183855, 205905, 229881, 255892, 284050,
314470, 347270, 382571, 420497, 461175, 504735, 551310, 601036, 654052, 710500,
770525, 834275, 901901, 973557, 1049400, 1129590, 1214290, 1303666, 1397887,
1497125, 1601555, 1711355, 1826706, 1947792, 2074800, 2207920, 2347345, 2493271,
2645897, 2805425, 2972060, 3146010, 3327486, 3516702, 3713875, 3919225, 4132975,
4355351, 4586582, 4826900, 5076540, 5335740, 5604741, 5883787, 6173125, 6473005,
6783680, 7105406, 7438442, 7783050, 8139495, 8508045, 8888971, 9282547, 9689050,
10108760, 10541960, 10988936, 11449977, 11925375, 12415425, 12920425.

polynom av grad 3:
1.0e+05 * 0.0003* n3 -0.0164 *n2 +0.3735 *n -1.9706
polynom av grad 4:
0.1250 * n4 + 0.4167* n3 + 0.3750* n2 + 0.0833 * n + 0.0000.
polynom av grad 5:
-0.0000 * n5 + 0.1250* n4 + 0.4167* n3 + 0.3750*n2 + 0.0833* n + 0.0000.

Slutsatsen:
Enligt analysering av T(n) resultat dras att tillväxt av funktionen sker så snabbt, där värden bli
mycket stor. Resultatet som visar ovan visar att fjärde grad polynom är korrekt polynom dvs
Ordo(n4). Där koefficienten i fjärde grad polynom är för mindre jämfört med första
koefficienten i tredje grad polynom. Dessutom, det går inte och tar femte grad polynom,
eftersom första koefficienten i femte grad polynom är 0.
Analysering av T(40) och T(100) resultat visar att polynom av grad 4 och grad 5 är alltid
samma resultat som fick innan, dvs vid provkörning när T(20). Och det som visar att vi har
hittat rätt polynom som är polynom av grad 4.
T(n)=O(n4).

Figure1: T(20)

Figure2 T(100)

koefficienterna i bråkform:
0.1250 * n4 + 0.4167* n3 + 0.3750* n2 + 0.0833 * n + 0.0000 <= C*n4

0.1250 * n4 1/8*n4
0.4167* n3 5/12*n3
0.3750* n2 3/8* n2
0.0833 * n 1/12* n
0.0000 0/0

1/8*n4 + 5/12*n3 + 3/8* n2 + 1/12* n <= C*n4

You might also like