张量积型的Bernstein基函数
程序员文章站
2024-03-24 23:05:40
...
张量积型的Bernstein基函数
所谓张量积型,或者乘积型的二元空间是指,他的基函数可以由一元基函数通过张量积(乘积)得到.例如,我们考虑两个分量的次数分别不超过m和n次的二元多项式空间,可以由两个一元多项式空间和的张量积得到,即.因此
空间的基函数对应的矩阵结构,
因此可以称为矩形上的多项式空间.
由上可知,通过两组Bernstein基函数和的张量积,就可以得到张量积型的二元Bernstein基函数
下图给了三个张量积型的双二次Bernstein基函数 和在单位矩阵上的图像.
二、相应的matlab程序
function bernstein_surf_bf
%bf: basis function基函数
%张量积型的bernstein基函数
a = 0;
b = 1;
N = 40;
M = 50;
hx = (b-a)/N;
hy = (b-a)/M;
x = (a:hx:b)'; %x:[0,1]区间N等分得到的向量
y = (a:hy:b)'; %y:[0,1]区间M等分得到的向量
n = 2;
m = 2;
z = f(x,y,n,m,1,1);
figure(1)
surf(x,y,z)
title('B^{2,2}_{1,1}');
end
function z = f(x,y,n,m,N,M) %n:n次bernstein基函数;m:m次bernstein基函数
[x,y] =meshgrid(x,y); %N:n次bernstein基函数中取B(n,N)
z = B(x,n,N).*B(y,m,M);
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