HODNOTA POLYNOMU A JEHO DERIVACÍ
PROBLÉM
Vypočítat hodnotu polynomu A.N*X**N+...+A.1*X+A.0 a jeho první derivace v bodě V.
IMPLEMENTACE
Jednotka: vnitřní funkce
Globální proměnné: vektor A.0, A.1,...,A.N reálných koeficientů
Parametry: přirozené číslo N - stupeň polynomu, reálné číslo V - zadaný bod
Vrací: Dvojice hodnot oddělených mezerou: hodnota polynomu a jeho první derivace
DDPOLY1: procedure expose A.
parse arg N, V
P = A.N; D = 0
do J = N - 1 to 0 by -1
D = D * V + P; P = P * V + A.J
end
P = A.N; D = 0; J = N
do J = N - 1 to 0 by -1
D = D * V + P; P = P * V + A.J
end
return P D
|
PROBLÉM
Vypočítat hodnotu polynomu A.N*X**N+...+A.1*X+A.0 a D jeho derivací v bodě V
IMPLEMENTACE
Jednotka: nerekurzívní vnitřní funkce
Globální proměnné: vektor A.0,A.1,...,A.N reálných koeficientů, výstupní vektor Pd.0,Pd.1,...,Pd.D hodnot derivací
Parametry: přirozené číslo N - stupeň polynomu, přirozené číslo D - počítat se bude hodnota 1. až D-té derivace, reálné číslo V - zadaný bod
Výsledek: Hodnota polynomu v bodě V je uložena v Pd.0 a hodnoty D derivací jsou uloženy v Pd.1,...,Pd.D
DDPOLY: procedure expose A. Pd.
parse arg N, D, V
Const = 1; Pd. = 0; Pd.0 = A.N
do I = N - 1 to 0 by -1
if D < N - I then Nd = D; else Nd = N - I
do J = Nd to 1 by -1
Jm1 = J - 1; Pd.J = Pd.J * V + Pd.Jm1
end
Pd.0 = Pd.0 * V + A.I
end
do I = 2 to D
Const = Const * I; Pd.I = Pd.I * Const
end
return
|
PŘÍKLAD Pro dané hodnoty
N = 5; D = 5; V = 2
A. = 0
A.5 = 1; A.3=-4; A.2 = 6
A.1 = -8; A.0 = 10
bude pole Pd. obsahovat v prvních prvcích (s indexy 0 až 5) hodnoty 18,48,124,216,240,120 po provedení příkazu call DDPOLY N, D, V.
SOUVISLOSTI
Literatura
Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B.P. Numerical Recipes in C : the art of scientific computing - 2nd ed. University Press, Cambridge, 1992
Faddejev A.K., Sominskij J.S. Sbornik zadač po vyššej algebre Nauka, Moskva 1964
|