ClearAll["Global`*"];
pocet=10;(*zmente pro vasi rychlost pocitace*)

(*Funkce pro vypocet pomoci NDSolve*)

f1[a_]:=(y/.NDSolve[{y'[t]==((1+a)/((y[t])^2)),y[0]==1},y,{t,0,10}][[1]])[10];

(*Funkce pro vypocet pomoci DSolve*)
f2[a_]:=y[t]/.DSolve[{y'[t]==((1+a)/((y[t])^2)),y[0]==1},y[t],t][[1]]/.t->10;

reseni1=Timing[Table[f1[a],{a,1,pocet}]];(*vypocet opakovan ve funkci f1 pro NDSolve*)
reseni2=Timing[Table[f2[a],{a,1,pocet}]];(*vypocet opakovan ve funkci f2 pro DSolve*)

reseni3=Timing[Table[f1[a],{a,1.,N[pocet]}]];(*vypocet opakovan ve funkci f1 pro NDSolve-nepresna cisla*)
reseni4=Timing[Table[f2[a],{a,1.,N[pocet]}]];(*vypocet opakovan ve funkci f2 pro DSolve-nepresna cisla*)
pomocnyVysledek=f2[a0];
reseni5=Timing[Table[pomocnyVysledek/.a0->a,{a,1,pocet}]];(*vypocet f2 je provedeny jednou, dosazovano opakovane*)
reseni6=Timing[Table[pomocnyVysledek/.a0->a,{a,1.,N[pocet]}]];
(*vypocet f2 je provedeny jednou, 
dosazovano opakovane a vstup je nepresne cislo*)
(*vypocet pomoci f1 pro tuto variantu neni mozny, protoze NDSolve neumi vyjadrit reseni pomoci vzorce a tudiz se neda do vzorce dosadit*)

Print["cas pro NDSolve                :",reseni1[[1]]];
Print["cas pro  DSolve                :",reseni2[[1]]];
Print["cas pro NDSolve, N             :",reseni3[[1]]];
Print["cas pro  DSolve, N             :",reseni4[[1]]];
Print["cas pro  DSolve    a 1 dosazeni:",reseni5[[1]]];
     Print["cas pro  DSolve, N a 1 dosazeni:",reseni6[[1]]];

(*Pozn.:Vysledky reseni1 a reseni3 jsou z hlediska vypoctu stejne, protoze NDSolve pouziva numeriku. Pokud se casy lisi, tak je to dano operacnim systemem a planovanim procesu*)

(*Pri porovnani ruznych zpusobu reseni je uzitecne vysledky porovnat mezi sebou*)
(*Porovnani souctu absoultni chyby reseni vuci reseni 2 (je pocitano symbolicky a je nejpresnejsi) - zjednodusene receno o kolik se vysledky lisi*)
Total[Abs[reseni2[[2]]-reseni1[[2]]]]
Total[Abs[reseni2[[2]]-reseni3[[2]]]]
Total[Abs[reseni2[[2]]-reseni4[[2]]]]
Total[Abs[reseni2[[2]]-reseni5[[2]]]]
Total[Abs[reseni2[[2]]-reseni6[[2]]]]