Bernstein基函数及其性质

Bernstein基函数及其基本性质 matlab实现

一.Bernstein基函数

Bernstein基函数可以作为多项式空间的一组基底,n次Bernstein基函数 B i n ( t ) B^n_i(t) Bin(t)定义为:
B i 3 ( t ) = ( i n ) t i ( 1 − i ) n − i , ( i n ) = n ! i ! ( n − i ) ! , i = 0 , 1 , . . . , n . B^3_i(t) = (^n_i)t^i(1-i)^{n-i}, (^n_i) = \frac {n!} {i!(n-i)!} ,i=0,1,...,n. Bi3(t)=(in)ti(1i)ni,(in)=i!(ni)!n!,i=0,1,...,n.
下图为n=5时的Bernstein基函数的图像n=5

二、Bernstein基函数的性质

对于 t ∈ [ 0 , 1 ] t\in[0,1] t[0,1],Bernstein基函数有以下性质:

  1. 非负性.
    B i n ( t ) ≥ 0 , t ∈ [ 0 , 1 ] . B^n_i(t)\geq 0,t\in[0,1]. Bin(t)0,t[0,1].

  2. 单位分解性.
    ∑ i = 1 n B i n ( t ) = [ t + ( 1 − t ) ] n ≡ 1. \sum_{i=1}^nB^n_i(t) = [t+(1-t)]^n \equiv1. i=1nBin(t)=[t+(1t)]n1.

  3. 端点性质.在端点 t = 0 t=0 t=0 t = 1 t=1 t=1,分别只有一个Bernstein基函数取值为1,其余为0,即
    B i n ( 0 ) = { 1 , i = 0 , 0 , i ≠ 0 , , B^n_i(0) = \begin{cases}1,&i= 0,\\ 0, & i \not=0 , \end{cases}, Bin(0)={ 1,0,i=0,i=0,,
    B i n ( 1 ) = { 1 , i = n , 0 , i ≠ n . B^n_i(1) = \begin{cases}1,&i= n,\\ 0, & i \not=n . \end{cases} Bin(1)={ 1,0,i=n,i=n.

  4. 对称性.从图像上看,第 i i i 个和第 n − i n-i ni 个Bernstein基函数关于 t = 1 2 t= \frac {1} {2} t=21对称,即
    B i n ( t ) = B n − i n ( 1 − t ) , i = 0 , 1 , . . . , n . B^n_i(t) = B^n_{n-i}(1-t) , i=0,1,...,n. Bin(t)=Bnin(1t),i=0,1,...,n.

  5. 导函数.n次Bernstein 基函数的导数可以用由两个n-1次的Bernstein基函数线性组合得到,即
    ( B i n ( t ) ) ′ = n ( B i − 1 n − 1 ( t ) − B i n − 1 ( t ) ) . (B^n_i(t))^{'} = n(B^{n-1}_{i-1}(t)-B^{n-1}_{i}(t)). (Bin(t))=n(Bi1n1(t)Bin1(t)).

  6. 最大值. B i n ( t ) B^n_i(t) Bin(t) t = i n t = \frac{i}{n} t=ni时达到最大值.

  7. 递推性.n次Bernstein基函数可分别由两个n-1次或两个n+1次的Bernstein基函数递推得到,即
    { B i n ( t ) = ( 1 − t ) B i n − 1 ( t ) + t B i − 1 n − 1 ( t ) , B i n ( t ) = i + 1 n + 1 B i + 1 n + 1 ( t ) + ( 1 − i n + 1 ) B i − 1 n − 1 ( t ) , i = 0 , 1 , . . . , n . \begin{cases}B^n_i(t) = (1-t)B^{n-1}_i(t)+tB^{n-1}_{i-1}(t) , \\ B^n_i(t) =\frac{i+1}{n+1}B^{n+1}_{i+1}(t)+(1-\frac{i}{n+1})B^{n-1}_{i-1}(t) , \\ i=0,1,...,n . \end{cases} Bin(t)=(1t)Bin1(t)+tBi1n1(t),Bin(t)=n+1i+1Bi+1n+1(t)+(1n+1i)Bi1n1(t),i=0,1,...,n.
    其中 B − 1 n − 1 ( t ) = B n n − 1 ( t ) ≡ 0. B^{n-1}_{-1}(t) = B^{n-1}_{n}(t)\equiv0. B1n1(t)=Bnn1(t)0.

  8. 积分等值性.所有n次Bernstein基函数在区间[0,1]上的积分相等,即
    ∫ 0 1 B i n ( t )   d t = 1 n + 1 , i = 0 , 1 , . . . , n . \int_0^1 {B^n_i(t)} \, {dt} = \frac{1}{n+1}, i=0,1,...,n. 01Bin(t)dt=n+11,i=0,1,...,n.

%基函数图像相应的matlab程序为:
function bezier
%  Bernstein基函数的图像
a = 0;
b = 1;
M = 40;
hx = (b-a)/M;
x = (a:hx:b)';
n=4;           
for i = 1:n+1 
    y = B(x,n,i-1);
    figure(1)
    plot(x,y)
    hold on
end
end

function y = B(x,n,i)
y = k(n,i).*(x.^i).*((1-x).^(n-i));
end

function y = k(n,i)           %组合系数
y1 = factorial(n);            %n的阶乘
y2 = factorial(i)*factorial(n-i);
y = y1/y2;
end


代码可以直接运行。
运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mw_1422102031/article/details/107489924