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


Obálka Obsah Index Hlavní stránka Rexx   Mail

změněno 8. srpna 2001
Copyright © 2000-2001 Vladimír Zábrodský, RNDr.