Sumace

Sumace jsou "diskrétním případem" integrálů. V jejich konečném (určitém) případě lze pro jejich výpočet použít příkaz add .

> Sum(k^2,k=1..10)=add(k^2,k=1..10);

Sum(k^2,k = 1 .. 10) = 385

V obecném případě použijeme příkaz Sum a následně value pro výpočet exaktní hodnoty výsledku nebo evalf, pro numeriký výpočet.

> Sum(1/(k^2-4),k=3..n): %=value(%);

Sum(1/(k^2-4),k = 3 .. n) = -1/2*(-n-3*(n+1)^2+2*(n...

Nekonečný součet lze potom uskutečnit dvěmi cestami.

> limit(rhs(%),n=infinity); # pomocí limity
Sum(1/(k^2-4),k=3..infinity): %=value(%); # nebo přímo při výpočtu zadat požadovanou mez
sum(1/(k^2-4),k=3..infinity); # ekvivalentní zápis předchozímu případu

25/48

Sum(1/(k^2-4),k = 3 .. infinity) = 25/48

25/48

V některých případech buď nelze najít přesnou hodnotu výsledku nebo z jiných důvodů (rychlost) potřebujeme provést výpočet numericky. Potom postupujme podle následujících příkladů. Pozor však na numericý výpočet - může být špatně!

> sum(3^(-k),k=1..infinity); # přená hodnota
evalf(Sum(3^(-k),k=1..infinity)); # numericky vypočítaná hodnota

1/2

.5000000000

Pozor na rozdíl mezi Sum a sum ! Příkaz sum už provede výpočet.

> sum(3^(k),k=1..infinity); # přená hodnota
evalf(sum(3^(k),k=1..infinity)); # numericky vyjádřená přesná hodnota
evalf(Sum(3^(k),k=1..infinity)); # numericky vypočítaná hodnota a špatná!

infinity

Float(infinity)

-1.500000000