打开主菜单

求真百科

变数
图片来自youtube

初等数学里,变数变元是一个用来表示值的符号,该值可以是随意的,也可能是未指定或未定的。在代数运算时,将变数当作明确的数值代入运算中,可以于单次运算时解出多个问题。一个典型的例子为一元二次公式,该公式可以解出每个一元二次方程[1] 的值,只需要将方程的系数代入公式中的变数即可。

变数这个概念在微积分中非常重要。一般,一个函数y = f(x)会包含两个变数,参数x和值y。这也是“变数”这个名称的由来,当参数“变动”时,值也会相对应地“变动”。另外在更深的数学中,变数也可以只代表某个数据,一般为数字,但也可能为向量矩阵或函数等数学物件。

目录

起源及概念之演进

弗朗索瓦·韦达于16世纪末引入了使用字母表示已知及未知数字的想法,并将这些字母视同数字般运算,以在最后简单代入数值求解。弗朗索瓦·韦达习惯会以子音字母表示已知值,以母音字母表示未知值。

1637年,勒内·笛卡儿引入以x, y, z表示公式中的未知数,以a, b, c表示已知数的习惯,此一习惯至到今日依然常见。

1660年代起,艾萨克·牛顿哥特佛莱德·莱布尼兹分别独立发展出无穷小演算,主要研究一个“可变量”的无穷小变动如何导致另一个量(第一个变数(量)的函数)相对应的变动。之后过了近一个世纪,李昂哈德·尤拉修正了无穷小微积分的用语,并引入y = f(x)的概念,f是个函数,具有参数x及值y。直到19世纪末,“变数”这一词几乎都被用来指函数的参数及值。

19世纪下半叶,人们发觉无穷小微积分的基础似乎不够形式化,不足以处理像是处处不可微连续函数这类自相矛盾的问题。为了解决此类问题,卡尔·魏尔斯特拉斯引入了新的定义,以取代之前对极限的直观概念。对极限,旧的概念描述“当“变数”x变动且趋近于a时,f(x)会趋近于L,其中的“趋近”并没有明确的定义。魏尔斯特拉斯则将上述句子以下列公式取代:

(\forall \epsilon >0) (\exists \eta >0) (\forall x) \;|x-a|<\eta \Rightarrow |L-f(x)|<\epsilon

其中的5个变数均不被视为是变动的。

此一静态公式导致今日对变数只是表示数学物件(可以是未知的,或可被给定集合中的任何元素取代)之符号的概念。

计算机科学上

变数可以指在电脑记忆体里存在值的被命名的存储空间。

变量通常是可被修改的,即可以用来表示可变的状态。这是许多语言(如Java)的基本概念之一。有的语言可能定义其它术语,如C语言左值来精确地表示这里的(可能匿名的)存储空间的概念,而“变量”则在变量名的意义上被强调。

当某个已宣告变数开始使用,直译器或编译器通常会设定一个空间来储存所给出的值。稍后该变数不再使用时,那些空间可以回收

也有观点认为,变量应该和数学的原意一致,不需要允许它储存的可变,不需要有能力表示可变状态。Haskell的类型变量仍然符合这个含义。

有些编程语言中的变数必须带有型别

命名

每种编程语言都有规则指定甚么才可作为变数的名字。

使用C和其相关语言,变数名称在语法上称为标识符,必须是由英文字母、数字和底线组成,且必须由字母起头。有时还不可以使用某些保留字命名。

使用某些语言,变数的名字同时告诉了这个变数带有甚么种类的值。例如FORTRAN的程式里,变数的首个字母显示了它是整数还是浮点数。变数名字首个字符是$的话,在BASIC的程式里表示其值是字串。Perl透过字首如$,@,%和&来分辨哪是纯量、阵列、杂凑或副程式。

每个编程组织都有非正式的命名规矩——单打独斗的程式员亦是如此。有人喜欢所有变数都用简单的英文字母取名,认为能增加输入程式码的速度,但只要变数一多,就会容易混淆,甚至以后自己看回程式码也不懂在写甚么。

回圈控制变数这样的虚变量和数学上的习惯类似,通常以i, j, k命名。

统计学上

变量是统计学研究中对象的特征。它可以是定性的也可以是定量的,一个定量变量要么是离散的,要么是连续的。社会科学中研究变量的关系,通常采用数学中对应的观念,把一个变量称为自变量(独立变量),另一个变量称之为因变量(依赖变量)。

参考文献