polydegmono,
polydegmono1,
polydegmono2 : VAR DegreeMono
mpoly,
mpoly1,mpoly2 : VAR MultiPolynomial
pprod,
pprod1,pprod2 : VAR Polyproduct
a : VAR real
X,Avars,Bvars : VAR Vars
v,jj : VAR nat
nvars,terms,
terms1,terms2 : VAR posnat
cf,cf1,cf2 : VAR Coeff
rel : VAR [[real,real]->bool]
boundedpts,
intendpts : VAR IntervalEndpoints
polyproduct_eval(pprod,polydegmono,nvars)(X) : real =
product(0,nvars-1,LAMBDA (i:nat):polynomial(pprod(i),polydegmono(i))(X(i)))
multipoly_eval(mpoly,polydegmono,cf,nvars,terms)(X) : real =
sigma(0,terms-1,LAMBDA (i:nat): cf(i)*polyproduct_eval(mpoly(i),polydegmono,nvars)(X))
%%%%%%%%%%%%% Translating to the Interval [0,1] %%%%%%%%%%%%
polyprod_translate(pprod,polydegmono,nvars)(Avars,Bvars,boundedpts)(i:nat) : Polynomial = IF boundedpts(i)`1 AND boundedpts(i)`2 THEN
poly_translate(pprod(i),polydegmono(i))(Avars(i),Bvars(i)) ELSIF boundedpts(i)`1 THEN poly_translate_inf_pos(pprod(i),polydegmono(i))(Avars(i)) ELSE poly_translate_inf_neg(pprod(i),polydegmono(i))(Bvars(i)) ENDIF
multipoly_translate_denormalize: LEMMA
lt_below?(nvars)(Avars,Bvars) AND bounded_points_exclusive?(nvars)(boundedpts) AND
(FORALL (ii:below(nvars)): (NOT (boundedpts(ii)`1 AND boundedpts(ii)`2)) IMPLIES X(ii)/=0) IMPLIES LET pconst = product(0,nvars-1,LAMBDA (i:nat): IFNOT (boundedpts(i)`1 AND boundedpts(i)`2) THEN
X(i)^polydegmono(i) ELSE 1 ENDIF) IN
multipoly_eval(multipoly_translate(mpoly,polydegmono,nvars,boundedpts)(Avars,Bvars),
polydegmono,cf,nvars,terms)(X)
=
pconst*multipoly_eval(mpoly,polydegmono,cf,nvars,terms)
(denormalize_lambda(nvars,X,boundedpts)(Avars,Bvars))
multipoly_translate_normalize: LEMMA
lt_below?(nvars)(Avars,Bvars) AND (FORALL (ii:below(nvars)): (boundedpts(ii)`1 IMPLIES
X(ii)/=Avars(ii)-1) AND (boundedpts(ii)`2 IMPLIES X(ii)/=Bvars(ii)+1)) AND bounded_points_exclusive?(nvars)(boundedpts) IMPLIES LET pconst = product(0,nvars-1,LAMBDA (i:nat): IF (boundedpts(i)`1 ANDNOT boundedpts(i)`2) THEN
(X(i)-Avars(i)+1)^polydegmono(i) ELSIF (boundedpts(i)`2 ANDNOT boundedpts(i)`1) THEN
(Bvars(i)+1-X(i))^polydegmono(i) ELSE 1 ENDIF) IN
pconst*multipoly_eval(multipoly_translate(mpoly,polydegmono,nvars,boundedpts)(Avars,Bvars),
polydegmono,cf,nvars,terms)(normalize_lambda(nvars,X,boundedpts)(Avars,Bvars)) =
multipoly_eval(mpoly,polydegmono,cf,nvars,terms)(X)
multipoly_translate_bounded_def: LEMMA
boxbetween?(nvars)(Avars,Bvars,intendpts,boundedpts)(X) AND
bounded_points_true?(nvars)(boundedpts) IMPLIES
multipoly_eval(multipoly_translate(mpoly,polydegmono,nvars,boundedpts)(Avars,Bvars),
polydegmono,cf,nvars,terms)(normalize_lambda(nvars,X,boundedpts)(Avars,Bvars)) =
multipoly_eval(mpoly,polydegmono,cf,nvars,terms)(X)
polyproduct_product(pprod1,pprod2,polydegmono1,polydegmono2)(v:nat)(d:nat): real = IF d<=mono_sum(polydegmono1,polydegmono2)(v) THEN
sigma(0,d,LAMBDA (i:nat):IF i<=polydegmono1(v) THEN pprod1(v)(i) ELSE 0 ENDIF* IF i<=d AND d-i<=polydegmono2(v) THEN pprod2(v)(d-i) ELSE 0 ENDIF) ELSE 0 ENDIF
multipoly_product_coeff(cf1,cf2,terms1,terms2,jj)(i:nat): RECURSIVE real = IF jj = 0 THEN IF i<terms1 THEN cf1(i)*cf2(jj) ELSE 0 ENDIF ELSE IF i<jj*terms1 THEN multipoly_product_coeff(cf1,cf2,terms1,terms2,jj-1)(i) ELSIF i<(jj+1)*terms1 THEN cf1(i-jj*terms1)*cf2(jj) ELSE 0 ENDIF ENDIF MEASURE jj
multipoly_product(mpoly1,mpoly2,polydegmono1,polydegmono2,terms1,terms2,jj)(i:nat): RECURSIVE Polyproduct = IF jj=0 THEN IF i<terms1 THEN polyproduct_product(mpoly1(i),mpoly2(jj),polydegmono1,polydegmono2) ELSE zero_poly_prod ENDIF ELSE IF i<jj*terms1 THEN
multipoly_product(mpoly1,mpoly2,polydegmono1,polydegmono2,terms1,terms2,jj-1)(i) ELSIF i<(jj+1)*terms1 THEN
polyproduct_product(mpoly1(i-jj*terms1),mpoly2(jj),polydegmono1,polydegmono2) ELSE zero_poly_prod ENDIF ENDIF MEASURE jj
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.