CV3 - Kvadraturní formule

Program pro Lichoběžníkové pravidlo

\(\(Lich[f_, a_, b_, n_] := 
	
        Module[{i, h, l}, 
          h = \((b - a)\)/n; 
	\ l = 
            N[\((h/2)\) \((f[a] + 2*Sum[f[a + i*h], {i, 1, n - 1}] + f[b])\), 
              15]; l];\)\)

Program pro Simpsonovo pravidlo

\(\(Sim[f_, a_, b_, n_] := 
	
        Module[{i, m, h, s}, h = \((b - a)\)/n; 
          m = n/2; 
		s = 
            N[\((h/3)\) \((f[a] + 
                    4*Sum[f[a + \((2*i - 1)\)*h], {i, 1, 
                          m}] + 
									2*
                      Sum[f[a + \((2*i)\)*h], {i, 1, m - 1}] + f[b])\), 15]; 
          s];\)\)

Použití obou programů na výpočet \(TraditionalForm\`∫\_a\%b\( e\^x\) dx\)

Vypočet integralu \(TraditionalForm\`∫\_1\%2\( e\^x\) dx\) pro n=4.

f := Exp;
L1 = Lich[f, 1, 2, 4];
S1 = Sim[f, 1, 2, 4];
P = N[Integrate[f[x], {x, 1, 2}], 15];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L1]
Print["Simpsonovo pravidlo       ", S1]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Vypočet integralu \(TraditionalForm\`∫\_1\%2\( e\^x\) dx\) pro n=10.

L2 = Lich[f, 1, 2, 10];
S2 = Sim[f, 1, 2, 10];
P = N[Integrate[f[x], {x, 1, 2}], 15];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L2]
Print["Simpsonovo pravidlo       ", S2]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Vypočet integralu \(TraditionalForm\`∫\_1\%2\( e\^x\) dx\) pro n=100.

L3 = Lich[f, 1, 2, 100];
S3 = Sim[f, 1, 2, 100];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L3]
Print["Simpsonovo pravidlo       ", S3]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Vypočet integralu \(TraditionalForm\`∫\_1\%2\( e\^x\) dx\) pro n=1000.

L4 = Lich[f, 1, 2, 1000];
S4 = Sim[f, 1, 2, 1000];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L4]
Print["Simpsonovo pravidlo       ", S4]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Tabulka pro Lichoběžníkové pravidlo pro jednotlivá n

Print["n=4                       ", L1]
Print["N=10                      ", L2]
Print["N=100                     ", L3]
Print["N=1000                    ", L4]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Tabulka pro Simpsonovo pravidlo pro jednotlivá n

Print["n=4                       ", S1]
Print["N=10                      ", S2]
Print["N=100                     ", S3]
Print["N=1000                    ", S4]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Použití obou programů na výpočet (∫_a^b)(( sin(
                x))/x) dx

Vypočet integralu (∫_1^2)(( sin(
                x))/x) dx pro n=4.

f =. ;
f[x_] = Sin[x]/x;

L1 = Lich[f, 1, 2, 4];
S1 = Sim[f, 1, 2, 4];
P = N[Integrate[f[x], {x, 1, 2}], 15];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L1]
Print["Simpsonovo pravidlo       ", S1]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Vypočet integralu (∫_1^2)(( sin(
                x))/x) dx pro n=10.

L2 = Lich[f, 1, 2, 10];
S2 = Sim[f, 1, 2, 10];
P = N[Integrate[f[x], {x, 1, 2}], 15];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L2]
Print["Simpsonovo pravidlo       ", S2]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Vypočet integralu (∫_1^2)(( sin(
                x))/x) dx pro n=100.

L3 = Lich[f, 1, 2, 100];
S3 = Sim[f, 1, 2, 100];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L3]
Print["Simpsonovo pravidlo       ", S3]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Vypočet integralu (∫_1^2)(( sin(
                x))/x) dx pro n=1000.

L4 = Lich[f, 1, 2, 1000];
S4 = Sim[f, 1, 2, 1000];

Print["Lichob\:011b\:017eníkové pravidlo   ", 
      L4]
Print["Simpsonovo pravidlo       ", S4]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Tabulka pro Lichoběžníkové pravidlo pro jednotlivá n

Print["n=4                       ", L1]
Print["N=10                      ", L2]
Print["N=100                     ", L3]
Print["N=1000                    ", L4]
Print["P\:0159esná hodnota integrálu  ", 
      P]

Tabulka pro Simpsonovo pravidlo pro jednotlivá n

Print["n=4                       ", S1]
Print["N=10                      ", S2]
Print["N=100                     ", S3]
Print["N=1000                    ", S4]
Print["P\:0159esná hodnota integrálu  ", 
      P]