2 * Functions and Variables for Bernstein::
5 @node Functions and Variables for Bernstein, , Bernstein, Bernstein
6 @section Functions and Variables for Bernstein
8 @deffn {関数} bernstein_poly (@var{k}, @var{n}, @var{x})
10 @code{k}が負の整数でないと仮定すると、
12 @code{bernstein_poly(k,n,x) = binomial(n,k) x^k (1-x)^(n-k)}で定義されます;
13 負の整数@code{k}に対しては、Bernstein多項式 @code{bernstein_poly(k,n,x)}は零です。
14 @code{k}か @code{n}のどちらかが非整数の時、
15 オプション変数 @code{bernstein_explicit}は
16 Bernstein多項式の明示形式への展開を制御します。
20 (%i1) load(bernstein)$
22 (%i2) bernstein_poly(k,n,x);
23 (%o2) bernstein_poly(k, n, x)
24 (%i3) bernstein_poly(k,n,x), bernstein_explicit : true;
26 (%o3) binomial(n, k) (1 - x) x
29 Bernstein多項式はgradefプロパティとintegrateプロパティの両方を持ちます:
32 (%i4) diff(bernstein_poly(k,n,x),x);
33 (%o4) (bernstein_poly(k - 1, n - 1, x)
34 - bernstein_poly(k, n - 1, x)) n
35 (%i5) integrate(bernstein_poly(k,n,x),x);
38 hypergeometric([k + 1, k - n], [k + 2], x) binomial(n, k) x
39 ----------------------------------------------------------------
44 Bernstein多項式は数値結果に評価されます:
47 (%i6) bernstein_poly(5,9, 1/2 + %i);
49 (%o6) -------- + -----
51 (%i7) bernstein_poly(5,9, 0.5b0 + %i);
52 (%o7) 3.076171875b2 %i + 1.5380859375b2
55 @code{bernstein_poly}を使うには、最初に @code{load("bernstein")}。
60 @defvr {変数} bernstein_explicit
63 @code{k}か @code{n}のどちらかが非整数の時、
64 オプション変数 @code{bernstein_explicit}は
65 Bernstein多項式の明示形式への展開を制御します; 例えば:
68 (%i1) bernstein_poly(k,n,x);
69 (%o1) bernstein_poly(k, n, x)
70 (%i2) bernstein_poly(k,n,x), bernstein_explicit : true;
72 (%o2) binomial(n, k) (1 - x) x
74 @code{k}と @code{n}の両方が明示的に整数の時、
75 @code{bernstein(k,n,x)}は @emph{いつも}明示形式に展開されます。
80 @deffn {関数} multibernstein_poly (@var{[k1,k2,@dots{}, kp]}, @var{[n1,n2,@dots{}, np]}, @var{[x1,x2,@dots{}, xp]})
82 マルチBernstein多項式 @code{multibernstein_poly (@var{[k1, k2, ...,
83 kp]}, @var{[n1, n2, ..., np]}, @var{[x1, x2, ..., xp]})}
84 Bernstein多項式 @code{bernstein_poly(k1, n1, x1)
85 bernstein_poly(k2, n2, x2) ... bernstein_poly(kp, np, xp)}の積です。
87 @code{multibernstein_poly}を使うには、最初に @code{load("bernstein")}。
91 @deffn {関数} bernstein_approx (@var{f}, @var{[x1, x1, @dots{}, xn]}, n)
93 関数 @code{(x1, x2, ..., xn) |--> f}の
94 @code{n}次の一様Bernstein多項式近似を返します。
99 (%i1) bernstein_approx(f(x),[x], 2);
101 (%o1) f(1) x + 2 f(-) (1 - x) x + f(0) (1 - x)
103 (%i2) bernstein_approx(f(x,y),[x,y], 2);
105 (%o2) f(1, 1) x y + 2 f(-, 1) (1 - x) x y
108 + f(0, 1) (1 - x) y + 2 f(1, -) x (1 - y) y
111 + 4 f(-, -) (1 - x) x (1 - y) y + 2 f(0, -) (1 - x) (1 - y) y
114 + f(1, 0) x (1 - y) + 2 f(-, 0) (1 - x) x (1 - y)
117 + f(0, 0) (1 - x) (1 - y)
120 @code{bernstein_approx}を使うには、最初に @code{load("bernstein")}。
124 @deffn {関数} bernstein_expand (@var{e}, @var{[x1, x1, @dots{}, xn]})
127 多変数Bernstein多項式の線形結合として厳密に表します。
130 (%i1) bernstein_expand(x*y+1,[x,y]);
131 (%o1) 2 x y + (1 - x) y + x (1 - y) + (1 - x) (1 - y)
136 一番目の引数が多項式でない時、Maximaはエラーをシグナルします。
138 @code{bernstein_expand}を使うには、最初に @code{load("bernstein")}。