返回介绍

Function (ℝ)

发布于 2025-01-31 22:20:44 字数 12861 浏览 0 评论 0 收藏 0

Numeric Array

阵列相信大家耳熟能详。各个整数位置,各有一个数值。

Numeric Function

Plot3D[(x-3)*(x-3)*(x-3)*(y-1)*(y-1)*2*x*y, {x, -0.1, 4.4}, {y, -0.2, 1.5}, PlotRange -> {-3, 3}, Boxed -> False, Axes -> False, ColorFunction -> "SolarColors"]

函数的概念,请参考本站文件“ Function ”。此处仅专注于有著数值、有得计算的函数。函数可以想成是阵列的连续版本。

Function 可以画成图形

穷举各种输入,分别计算输出,把输入与输出化作座标位置。

一元函数和二元函数容易作图,三元函数就只能用空气浓度来呈现函数值了,四元以上只能用幻想的。

Plot3D[Sin[x * y] * Cos[x + y], {x, -Pi, Pi}, {y, -Pi, Pi}, PlotRange -> {-2, 2}, Boxed -> False, Axes -> False, ColorFunction -> (ColorData["CherryTones"][Rescale[#3, {-2, 2}]] &) ]

Function 资料结构

函数有两种记载方式:符号记载、数值记载。

f(x) = x² + 2x + 1 | f(x) = { 2x   if x > 0  |   f(0.01) = 0.02  
                   |        { -x   otherwise |   f(0.02) = 0.05  
                   |                         |       :       :   
 symbolic notation |    symbolic notation    | numerical notation

採用符号记载,函数可以轻易写成程式码、写成函式。

採用数值记载,函数必须取样、择邻。留待章末介绍。

Function Operation

函数就和实数、複数一样,有著各种运算。以下将介绍函数的运算:求值、代入、加、减、乘、除、模、複合、微、积。

       operation (noun)      operation (verb)    result (noun)
-----  --------------------  ------------------  --------------
let =  evaluation      求值  evaluate      求值  value       值
let =  substitution    代入  substitute    代入  expression  式
+      addition        加法  add           加    sum         和
-      subtraction     减法  subtract      减    difference  差
       multiplication  乘法  multiply      乘    product     积
/      division        除法  divide        除    quotient    商
mod    modulo          模    ---           模    remainder   馀
∘      composition     複合  compose       複合  composite function 複合函数
d/dx   differentiation 微分  differentiate 微    derivative  导
∫ dx   integration     积分  integrate     积    integral    积分

求值

给定输入数值,计算输出数值。属于数值计算。

代入

输入变数替换为其他变数。属于符号计算。

                          x = s + 2
          sin x   cos y   y = t / 2            sin(s + 2)   cos(t / 2)
f(x, y) = ————— + —————  ==========> f(s, t) = —————————— + ——————————
            y       x                             t / 2        s + 2  

加减乘除模

如果经常要把两个函数的输出加在一起,可以预先把两个函数加在一起,得到新函数,节省计算时间!

两个函数
f(x) = x² + x + 1
g(x) = -x + 2

输入数值是 1 的时候,计算所有函数输出数值的总和
f(1)        = 1² + 1 + 1 = 3
g(1)        = -1 + 2     = 1
f(1) + g(1) = 3 + 1      = 4

输入数值是 2 的时候,计算所有函数输出数值的总和
f(2)        = 2² + 2 + 1 = 7
g(2)        = -2 + 2     = 0
f(2) + g(2) = 7 + 0      = 7
如果预先让函数相加的话
(f + g)(x) = f(x) + g(x)
           = (x² + x + 1) + (-x + 2)
           = x² + 3

那麽就可以节省计算时间
(f + g)(1)  = 1² + 3     = 4
(f + g)(2)  = 2² + 3     = 7

输入越多种、函数越多个,节省越多时间!

用抽象的、简洁的数学符号表达函数加法:

f + g

用直观的、亮丽的函数图形表达函数加法:

加减乘除模概念相仿,其馀运算就不多提了。

複合

如果输入经常接连地用函数变换两次,可以预先把两个函数複合在一起,得到新函数,节省计算时间!

两个函数
f(x) = x² + x + 1
g(x) = -x + 2

输入数值是 1 的时候,计算先经过 g 函数、再经过 f 函数的输出数值
g(1)           = -1 + 2     = 1
f(g(1)) = f(1) = 1² + 1 + 1 = 3

输入数值是 2 的时候,计算先经过 g 函数、再经过 f 函数的输出数值
g(2)           = -2 + 2     = 0
f(g(2)) = f(0) = 0² + 0 + 1 = 1
如果预先让函数複合的话
(f ∘ g)(x) = f(g(x))
           = (-x + 2)² + (-x + 2) + 1 
           = x² - 5x + 7

那麽就可以节省计算时间
(f ∘ g)(1)  = 1² - 5 + 7   = 3
(f ∘ g)(2)  = 2² - 10 + 7  = 1

输入越多种、函数越多个,节省越多时间!

用抽象的、简洁的数学符号表达函数複合:

f ∘ g

用直观的、亮丽的函数图形表达函数複合?我不会画。

微分

相邻数字差,通通除以 dx,得到新函数。

请读者参考本站文件“ Sequence ”提及的离散版本。此处介绍的是连续版本,只多了个 dx:一个无限微小、略大于零的数值。

用抽象的、简洁的数学符号表达函数微分:

 d
-- f   输入变数刚好一个
dx

 ∂
-- f   输入变数大于一个
∂x

用直观的、亮丽的函数图形表达函数微分:

当输入变数只有一个,导数是座标(x,f(x)) 的“斜率 slope”。当输入变数有许多个,各个输入变数分别求得斜率,合称“梯度 gradient”。

积分

从负无限大开始的连续数字和,通通乘以 dx,得到新函数。

用抽象的、简洁的数学符号表达函数积分:

∫ f dx

用直观的、亮丽的函数图形表达函数积分:

当输入变数只有一个,积分是左至-∞、右至 x、下至 0、上至 f(x),四个边界所包围的“面积 area”,面积可正可负。当输入变数有许多个,各个输入变数一齐累计,得到“容积 volume”。

函数积分最简单的演算法是 Rectangle Rule:按照定义来,将面积切割成数条宽度为 dx 的矩形。

然而,左至负无限大,演算法永不结束,怎麽办?解决方式是增设左边界,想订多少就多少。数学家把“自订左右边界的积分运算”的结果叫做“定积分 definite integral”。

对计算学家来说,定积分就是区间和啦。前缀和改成区间和,就这样而已。

Field (ℝ)(Under Construction!)

Multivariate Function(Field)

函数输入、函数输出,推广成多个数值,组成向量、矩阵。

数学家称作“多变数函数”,本质上仍是函数,但是又多了一些特殊运算。物理家称作“场”,物理学的中流砥柱,重中之重。

Field 可以画成图形

空间处处有数据。空间座标是函数输入,数据是函数输出。

空间可以是一维数线(一维场)、二维平面(二维场)、三维空间(三维场)、……。

数据可以是一个数字(纯量场)、一个向量(向量场)、一个矩阵(张量场)、……。

如果没有特别注明数据维度,则预设为空间维度。例如三维向量场是ℝ³ ⇨ ℝ³、三维张量场是ℝ³ ⇨ ℝ³ˣ³。

注:张量是泛称。零阶张量是纯量、一阶张量是向量、二阶张量是矩阵、三阶张量是立方体。维度较高时,大家直接称呼为张量。

二维纯量场,即普通的函数。可画成折线图、浓度图、等高线图。离散化后,还可画成长条图、数值阵列。

二维向量场。可画成两个纯量场。离散化后,还可画成箭矢图。

递增数列,箭矢自源点散开。递减数列,箭矢聚集至汇点。

三维纯量场、三维向量场。原理相同,不再赘述。

Field 可以描述世界

场经常用于描述物理现象,例如水流、气流、热传导、电磁场、声波。想要用计算机模拟物理现象,首先必须学会场。

Faraday 以三维场解释电磁现象,衍生古典场论。

Einstein 以四维场(纳入时间维度)解释重力现象,衍生相对论。近年获得验证。

Schrödinger 以複数的四维场解释波粒现象,衍生量子场论。大家仍在做实验验证。质量拥有实部虚部,若隐若现,非常奇葩。

Field Operation

多了几种运算。数学家并未命名运算名称。

    	operator  result (noun)
----	--------  ---------------------
∇·  	div()     divergence 散度
∇×  	curl()    curl       旋度
∇   	grad()    gradient   梯度
∇·∇ 	---       Laplacian  梯度的散度
∇×∇ 	---       ---        梯度的旋度(总是 0,缺乏讨论意义)
    	---       ---        梯度反元素(缺乏关爱)

散度

         ∂Fx   ∂Fy
div(F) = ――― + ―――         2D
         ∂x    ∂y 

         ∂Fx   ∂Fy   ∂Fz
div(F) = ――― + ――― + ―――   3D
         ∂x    ∂y    ∂z

散度运算,宛如点积。向量场,求散度,得纯量场。

物理意义是每一处的出入变化多寡,flux change。

分开观察 XYZ 三个分量,求相邻数字差,加总差异。

我不知道加总的理由。我也不知道“ 向量点积求得投影量 ”的加法如何直观解释。我想了十年未果。如果读者知道,麻烦告诉我。

Function (ℂ)(Under Construction!)

Complex Function

“複变函数”。输入、输出推广为複数。

看来看去好像只有 analytic => conformal 和 e^iπ值得一提。

Field (ℂ)(Under Construction!)

Field

Schrödinger's Smoke

http://www.its.caltech.edu/~achern/projects/SchrodingersSmoke/

看来看去好像还是没看懂。

Contour(Under Construction!)

Contour(Level Set)

http://paulbourke.net/papers/conrec/

http://paulbourke.net/papers/conrec/contour1.gif

Mathematical Morphology

Mathematical Morphology

Histogram3D[{{0,0},{0,0},{0,0}},{1},Boxed->False,Axes->None]

【注:本人制图技术差,只好介绍阵列版本,而非函数版本。】

调整函数形状的学问。因为不是显学,所以名称矫揉造作,不像一般的数学名词那样地简洁有力。关键字 grayscale morphology。

基本操作是 dilation 和 erosion,进阶操作由基本操作组成。

            dilation:邻近格子取最大值。功效是补厚。
             erosion:邻近格子取最小值。功效是削薄。
             closing:先 dilation 再 erosion。
             opening:先 erosion 再 dilation。
   top-hat transform:原函数减掉 opening。
bottom-hat transform:closing 减掉原函数。

邻近格子可以自订样式。另外,大样式多半可以改为小样式,效果相同而且时间複杂度更低。

例如 5×5,改为两波 3×3,亦得取得 5×5 范围内的最小值(最大值)。本来读取 X×Y×5×5 格,变成只读取 X×Y×3×3×2 格。

运算不可逆、不可抵销,没有反运算。个人推测这些运算可以减少乱度。

额外使用过滤函数

进阶版本。额外设计一个过滤函数。设计不同的过滤函数,得到不同的效果。

穷举原函数的每个位置;针对一个位置,令过滤函数的中心对准该位置,各个位置点对点相加(相减)后,才取最大值(最小值)。

Polynomial Function

Polynomial

由未知数(变数)与已知数(常数)的加法、减法、乘法所组成的式子,就叫做“多项式”。以变数次方为主角,多项式可以拆成许多“项”。

多项式的资料结构,要嘛开个 array,每一格存一种次方的係数;要嘛开个 list,把係数为零的项统统去掉然后串成一串。

多项式的运算,主要有加、减、乘、除、模、微、积、分解、代入。中学到大学接触了六年,应当难不倒各位读者,就不赘述了。

大数的四则运算,就是多项式的四则运算:大数其实就是 x 代入 10,大数的骨子裡根本就是多项式。电脑的数字有二进位、十进位、八进位、十六进位,进位法其实就是 x 代入各种底数,进位法骨子裡根本就是多项式。

UVa 392 126 10719 10586 10951 463 930 10428 498 10268 10105

Polynomial Function

“多项式函数”。离散与连续的桥樑。离散的係数值,变成连续的函数值。数学家正在探索其奥秘。

多项式函数的导数、积分,仍是多项式函数!dx 竟然可以变不见!有兴趣的读者可以观落阴请教牛顿或莱布尼兹。

多项式函数的导数、积分,可以预计算!数学家发明了大量的计算手法,得以在纸上推导微积分的结果,得到公式,不必使用前面章节的演算法。有兴趣的读者可以参考微积分、工程数学教科书。

多项式函数,虽然内容繁杂,但是性质优雅,所以用途广泛。物理、化学、工程、经济、……,各种领域都在使用多项式函数。

Horner's Rule

f(x) = 3x³ + 2x + 1 = ((((3 * x) + 0) * x) + 2) * x) + 1
f(5) = 3x³ + 2x + 1 = ((((3 * 5) + 0) * 5) + 2) * 5) + 1

这是一个演算法。一元多项式函数,代入数值。一乘一加,不断更迭,求得函数值。完全不需要次方运算。

Taylor Series

              f'(a)          f"(a)             
f(x) = f(a) + ――――― (x-a)¹ + ――――― (x-a)² + ...
                1!             2!              

这是一道数学公式。将平滑函数变成多项式函数。

换句话说,以无限项的多项式函数,趋近平滑函数。

y  = f(x)
                                     h¹         h²      
y₊ = f(x₊) = f(x + h) = f(x) + f'(x) ―― + f"(x) ―― + ...
                                     1!         2!      

这是另一种形式。当 x 略微增减,得知 y 如何增减。

当 h 介于正负 1 之间,则次方越大、数值越小。后面的项,数值越来越小,越来越细腻,越来越不重要。只取前几项,即是取近似值!多取几项,即是逼近真实值!数值精确度,以项数多寡来决定。

UVa 12413

e

“欧拉数 Euler Number”。实际数值差不多是 2.72。

计算 eˣ的演算法:Taylor Series 与 Horner's Rule。

π

“圆周率”。圆周长除以直径,实际数值差不多是 3.14。

http://en.wikipedia.org/wiki/Category:Pi_algorithms

延伸阅读:π is wrong!

http://www.math.utah.edu/~palais/pi.html

有两派人马,一派支持角度,一派支持面积。

角度派认为π是 180°,是圆周角 360°的一半,要乘以二才能补成 360°,极不方便。这派人马认为应该替 360°特别订立一个代号。

面积派认为π刚好就是单位圆面积,明明很方便,不需要改。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文