focus on computer-based architectural design
12 July 2020
编辑: 马海东
在贝塞尔曲线的定义中会涉及到一个数学知识点:Bernstein多项式.
为了后续对贝塞尔曲线的讲解,在这里简要的对Bernstein多项式进行阐述.
谢尔盖·纳塔诺维奇·伯恩施坦(俄语:Серге́й Ната́нович Бернште́йн)(1880年3月5日—1968年10月26日)是一位俄国及苏联的数学家. 1912年, Bernstein多项式曾经被用来证明威尔斯特拉斯逼近定理(Weierstrass approximation theorem), 这在正文里面将会被提到.
以下为正文(转载):
By Alon Amit, PhD in Mathematics; Mathcircler
from: https://www.quora.com/What-is-a-Bernstein-Polynomial
假设你在做一个实验,成功的概率是u ,就像掷一枚偏心的硬币或玩一个偶然的游戏。 如果你连续尝试这个实验 n 次,你成功的概率正好是 i 次,那么你成功的概率是多少?
你应该知道或者能够确定答案是:
而这,其实就是Bernsteain多项式.
其中:
在这里: 我们是把视角从固定概率和可变成功次数转移到固定成功次数和可变概率上。
从定义中,有几件事应该马上就能明白。首先,这是一个多项式。同时,对于[0,1]范围内的u,多项式的值是非负数,并且不超过1( 既然我们可以将它们解释为概率 )。
此外,我们可以直观地看到它的表现。具体来说,我们把𝑛=100,i=40 。所以我们要求的是通过尝试100次,正好得分40次成功的可能性。
现在,很明显,如果概率u恰好是u=0.4 ,那么在40%的尝试中成功的可能性应该是合理的(事实上,获得精确的40次成功的可能性大约是8%,这听起来不大,但它比使用其他u值要好得多)。
另一方面,如果u远离0.4,那么这个概率很快就会变得小得离谱。例如,想象一下,u正好是0.7 。那么你就会期望70次成功。得到60次似乎不太可能,但仍有可能,但得到50次是非常意外的,应该是极其罕见的,而40次成功是你永远也想不到会发生的。事实上,在概率为0.7的情况下,40次成功的可能性不到十亿分之一。
这对我们的多项式意味着什么?意味着给定的n,i,多项式的值非常强烈地集中在u最可能的值周围,也就是i/n。事实上,这里有一张在0≤u≤1范围内的b 100,40(u)的图。
当我们增加𝑛 的值时,钟形变得更窄:实验次数越多,成功次数越不可能明显偏离预期值。
因此,多项式的峰值总是在u=i/n处,并迅速向左和向右衰减。这就是伯恩斯坦多项式的关键作用: 它的行为在一个特定的点上有一个尖峰外,其他地方都是0,在这种情况下就是i/n 。伯恩斯坦多项式的总面积并不是1,但是曲线下的总面积(多项式从0到1的积分)很容易被确定为1/(𝑛+1) ,与i无关。
由于这种性质,Bernstein多项式可以很自然地组合成近似于[0,1]上的任何连续函数。给定这样一个函数𝑓 ,我们定义一个近似值𝐵𝑛[𝑓]为:
我们只是在0,1/𝑛,2/𝑛,…,1这几个点对函数进行采样,然后将每个采样乘以该点的 “尖峰 “多项式。 令人高兴的是,来自每个Bernstein多项式的总面积的归一化因子正是我们所需要的,如果你用常数函数 𝑓(𝑥)=1来试一试,你就会发现。
然后我们可以很容易地证明,𝐵𝑛[f]与f本身并没有太大差别,而且随着𝑛 的增长,差别会减小到 0,这个结果对所有u都成立 。因此,Bernstein多项式为Weierstrass逼近定理提供了明确的证明,该定理指出,连续函数可以被多项式均匀地逼近。
全文结束
贝塞尔曲线的简史
贝塞尔曲线的数学基础是早在 1912 年就广为人知的伯恩斯坦多项式。 但直到 1959 年,当时就职于雪铁龙的法国数学家 Paul de Casteljau 才开始对它进行图形化应用的尝试,并提出了基于一种数值稳定的 de Casteljau 算法。
然而贝塞尔曲线的得名,却是由于 1962 年另一位就职于雷诺的法国工程师 Pierre Bézier 的广泛宣传。他使用这种只需要很少的控制点就能够生成复杂平滑曲线的方法,来辅助汽车车体的工业设计。
正是因为控制简便却具有极强的描述能力,贝塞尔曲线在工业设计领域迅速得到了广泛的应用。不仅如此,在计算机图形学领域,贝塞尔曲线一直占有重要的地位。
n阶贝塞尔曲线的定义
比较贝塞尔曲线函数C之前正文里面的函数B可以看出, 只要把B函数里面的f替换为点P,就是贝塞尔曲线的定义了.
1-2阶贝塞尔曲线:
n=1:
当n=1的时候可以用来表示直线.
n=2:
当n>=2的时候可以用来表示曲线.
在后续的blog会对贝塞尔曲线详细展开阐述.
ikuku精选课 Python4Rhino 建筑师编程课 2020.8.16开始线上直播!讲师:马海东
Comments
No comments found for this article.
Join the discussion for this article on this ticket. Comments appear on this page instantly.