幂
幂
\\\scriptstyle\text{ }\\\scriptstyle\frac{\scriptstyle\text{分 子 }}{\scriptstyle\text{分 母 }}\end{matrix}\right\}\,=\,;zh-hant:formula_1;}-
在数学中,重复连乘的运算叫做乘方,乘方的结果称为 幂(,power);由此,若 formula_18 为正整数,formula_18 个相同的数 formula_20 连续相乘(即 formula_20 自乘 formula_18 次),就可将 formula_23 看作乘方的结果 ——“幂”。
formula_24
幂运算(--
)又称指数运算、取幂,是数学运算,表达式为 formula_23,读作「formula_20 的 formula_18 次方」或「formula_20 的 formula_18 次幂」。其中,formula_20 称为底数,而 formula_18 称为指数,通常指数写成上标,放在底数的右边。在纯文字格式等不能用上标的情况,例如在编程语言或电子邮件中,formula_23 通常写成 b^n 或 b**n;也可视为超运算,记为 b[3]n;亦可以用高德纳箭号表示法,写成 b↑n。
当指数为 1 时,通常不写出来,因为运算出的值和底数的数值一样;指数为 2 时,可以读作“formula_20 的平方”;指数为 3 时,可以读作“formula_20 的立方”。
由于在十进制中,十的幂很容易计算,只需在后面加零即可,所以科学记数法借此简化记录的数字;二的幂则在计算机科学中相当重要。
。这样定义了后,很易想到如何一般化指数 0 和负数的情况:指数是零时,底数不为零,幂均为一(即除 0 外,所有数的 0 次方都是 1 );指数是负数时,就等于重复除以底数(或底数的倒数自乘指数这么多次),即:
formula_35
formula_36。
若以分数为指数的幂,则定义:
formula_37,
即 formula_20 的 formula_18 次方再开 formula_40 次方根。
0的0次方(formula_41)目前没有数学家给予正式的定义;在部分数学领域中,如组合数学,常用的惯例是定义为 1 。
此外,当 formula_18 是复数,且 formula_20 是正实数时,
formula_44
exp 是指数函数,而 ln 是自然对数。
formula_45
formula_46
formula_48
运算律.
加法和乘法存在交换律,比如:formula_54,formula_55,但是幂的运算不存在交换律,formula_56,但是formula_57。
同样,加法和乘法存在结合律,比如:formula_58,formula_59。不过,幂运算没有结合律:formula_60,而formula_61,所以formula_62。
但是幂运算仍然有其运算律,称为指数律:
整数指数幂.
整数指数幂的运算只需要初等代数的知识。
正整数指数幂.
表达式formula_69被称作formula_70的平方,因为边长为"formula_70"的正方形面积是formula_72。
表达式formula_73被称作"formula_70"的立方,因为边长为"formula_70"的正方体体积是formula_76。
所以formula_77读作「3的平方」,formula_78读作「2的立方」。
指数表示的是底数反复相乘多少次。比如formula_79,指数是5,底数是3,表示3反复相乘5次。
或者,整数指数幂可以递归地定义成:
formula_80
指数是1或者0.
注意formula_81表示仅仅1个3的乘积,就等于3。
注意formula_82,formula_83,formula_84,formula_85,
继续,得到formula_86,所以formula_87
另一个得到此结论的方法是:通过运算法则formula_88
当formula_89时,formula_90
零的零次方.
formula_91 其实还并未被数学家完整的定义,但部分看法是formula_92 ,在程式语言中(python) formula_93
在这里给出这一种极限的看法
formula_94
于是,可以求出 x 取值从 1 到 0.0000001 计算得到的值,如图
负数指数.
我们定义任何不为 0 的数 a 的 -1 次方等于它的倒数。
formula_95
对于非零formula_70定义
formula_97,
而formula_98时分母为 0 没有意义。
证法一:
根据定义formula_99,当formula_100时
formula_101
得formula_102, 所以formula_103。
证法二:
通过运算法则formula_104
当formula_105时,可得formula_106
负数指数formula_107还可以表示成1连续除以formula_18个formula_70。比如:
formula_110.
特殊数的幂.
10的幂.
在十进制的计数系统中,10的幂写成1后面跟着很多个0。例如:formula_111
因此10的幂用来表示非常大或者非常小的数字。如:299,792,458(真空中光速,单位是米每秒),可以写成 formula_112,近似值 formula_113 或 formula_114
国际单位制词头也使用10的幂来描述特别大或者特别小的数字,比如:词头“千”就是 formula_115,词头“毫”就是 formula_116
1的幂.
1的任何次幂都为1。
0的幂.
0的正数幂都等于0。
0的负数幂没有定义。
任何非0之数的0次方都是1;而0的0次方是悬而未决的,某些领域下常用的惯例是约定为1。但某些教科书表示0的0次方为无意义。也有人主张定义为1。
负1的幂.
-1的奇数幂等于-1
-1的偶数幂等于1
指数非常大时的幂.
一个大于1的数的幂趋于无穷大,一个小于-1的数的幂趋于负无穷大
当formula_117,formula_118,formula_119
当formula_120,formula_118,formula_122 或 formula_123 , (视乎n 是奇数或偶数)
一个绝对值小于1的数的幂趋于0
当formula_124,formula_118,formula_126
1的幂永远都是1
当formula_127,formula_118,formula_129
如果数"a"趋于1而它的幂趋于无穷,那么极限并不一定是上面几个。一个很重要的例子是:
当formula_130
参见e的幂
其他指数的极限参见幂的极限
正实数的实数幂.
一个正实数的实数幂可以通过两种方法实现。
N次方根.
一个数formula_70的formula_18次方根是formula_133,"formula_133"使formula_135。
如果"formula_70"是一个正实数,"formula_18"是正整数,那么方程formula_135只有一个正实数根。
这个根被称为"formula_70"的"formula_18"次方根,记作:formula_141,其中formula_142叫做根号。或者,"formula_70"的"formula_18"次方根也可以写成formula_145.
例如formula_146
当指数是formula_147时根号上的2可以省略,如:formula_148
有理数幂.
有理数指数幂定义为
formula_149
e的幂.
这个重要的数学常数"e",有时叫做欧拉数,近似2.718,是自然对数的底。它提供了定义非整数指数幂的一个方法。
它是从以下极限定义的:
formula_150
指数函数的定义是:
formula_151
可以很简单地证明"e"的正整数"k"次方formula_152是:
formula_153
formula_154
formula_155
formula_156
formula_157
实数指数幂.
因为所有实数可以近似地表示为有理数,任意实数指数"x"可以定义成:
formula_158
例如:
formula_159
于是
formula_160
实数指数幂通常使用对数来定义,而不是近似有理数。
自然对数formula_161是指数函数formula_162的反函数。
它的定义是:对于任意formula_163,满足
formula_164
根据对数和指数运算的规则:
formula_165
这就是实数指数幂的定义:
formula_166
实数指数幂formula_167的这个定义和上面使用有理数指数和连续性的定义相吻合。对于复数,这种定义更加常用。
负实数的实数幂.
如果formula_70是负数且formula_18是偶数,那么formula_170是正数。如果"formula_70"是负数且"formula_18"是奇数,那么formula_170是负数。
使用对数和有理数指数都不能将formula_174(其中"formula_70"是负实数,formula_176实数)定义成实数。在一些特殊情况下,给出一个定义是可行的:负指数的整数指数幂是实数,有理数指数幂对于formula_177(formula_18是奇数)可以使用"formula_18"次方根来计算,但是因为没有实数formula_133使formula_181,对于formula_177("formula_18"是偶数)时必须使用虚数单位formula_184。
使用对数的方法不能定义formula_185时的formula_174为实数。实际上,formula_162对于任何实数"formula_133"都是正的,所以formula_189对于负数没有意义。
使用有理数指数幂来逼近的方法也不能用于负数formula_70因为它依赖于连续性。函数formula_191对于任何正的有理数formula_70是连续的,但是对于负数"formula_70",函数formula_194在有些有理数formula_195上甚至不是连续的。
例如:当formula_196,它的奇数次根等于-1。所以如果"formula_18"是正奇数整数,formula_198当formula_40是奇数,formula_200当"formula_40"是偶数。虽然有理数formula_202使formula_203的集合是稠密集,但是有理数formula_202使formula_205的集合也是。所以函数formula_206在有理数域不是连续的。
因此,如果要求负实数的任意实数幂,必须将底数和指数看成复数,按复数的正实数幂或复数的复数幂方法计算。
正实数的复数幂.
e的虚数次幂.
复数运算的几何意义和"e"的幂可以帮助我们理解formula_207("formula_133"是实数),即纯虚数指数函数。想象一个直角三角形formula_209(括号内是复数平面内三角形的三个顶点),对于足够大的formula_18,这个三角形可以看作一个扇形,这个扇形的中心角就等于formula_211弧度。对于所有formula_176,三角形formula_213互为相似三角形。所以当"formula_18"足够大时formula_215的极限是复数平面上的单位圆上formula_133弧度的点。这个点的极坐标是formula_217,直角坐标是formula_218。所以formula_219,而这个函数可以称为纯虚数指数函数。这就是欧拉公式,它通过复数的意义将代数学和三角学联系起来了。
等式formula_220的解是一个整数乘以formula_221:
formula_222
更一般地,如果formula_223,那么formula_224的每一个解都可以通过将formula_221的整数倍加上formula_20得到:
formula_227
这个复指数函数是一个有周期formula_221的周期函数。
更简单的:formula_229。
三角函数.
根据欧拉公式,三角函数余弦和正弦是:
formula_230
历史上,在复数发明之前,余弦和正弦是用几何的方法定义的。上面的公式将复杂的三角函数的求和公式转换成了简单的指数方程
formula_231
使用了复数指数幂之后,很多三角学问题都能够使用代数方法解决。
e的复数指数幂.
formula_232可以分解成formula_233。其中formula_162是formula_232的模,formula_236决定了formula_232的方向
正实数的复数幂.
如果formula_70是一个正实数,formula_239是任何复数,formula_240定义成formula_241,其中formula_242是方程formula_243的唯一解。所以处理实数的方法同样可以用来处理复数。
例如:
formula_244
formula_245
复数的复数幂.
复数的虚数幂.
让我们从一个简单的例子开始:计算formula_246。
formula_247
其中formula_248的得法参见上文正实数的复数幂
复数的复数幂.
类似地,在计算复数的复数幂时,我们可以将指数的实部与虚部分开以进行幂计算。例如计算formula_249:
formula_250
一般情况.
复数的复数幂必须首先化为底数为formula_251的形式:
formula_252
又,由复数的极坐标表示法:
formula_253
故
formula_254。
然后,使用欧拉公式处理即可。
由于复数的极坐标表示法中,辐角formula_255的取值是具有周期性的,因此复数的复数幂在大多数情况下是多值函数。不过实际应用中,为了简便起见,辐角都只取主值,从而使幂值唯一。
在函数中.
当函数名后有上标的数(即函数的指数),一般指要重复它的运算。例如formula_256即formula_257。特别地,formula_258指formula_259的反函数。
但三角函数的情况有所不同,一个正指数应用于函数的名字时,指答案要进行乘方运算,而指数为-1时则表示其反函数。例如:formula_260表示formula_261。因此在三角函数时,使用formula_262来表示formula_263的反函数formula_264。
计算自然数(正整数)"formula_18"的formula_266的算法.
最快的方式计算formula_266,当formula_18是正整数的时候。它利用了测试一个数是奇数在计算机上是非常容易的,和通过简单的移所有位向右来除以2的事实。
在C/C++语言中,你可以写如下算法:
double power(double a, unsigned int n)
double y = 1;
double f = a;
while (n > 0) {
if (n % 2 == 1) y *= f;
n »= 1;
f *= f;
return y;
此算法的时间复杂度为formula_269,比普通算法快(a自乘100次,时间复杂度为formula_270),在formula_18较大的时候更为显著。
例如计算formula_272,普通算法需要算100次,上述算法则只需要算7次。若要计算formula_273可先以上述算法计算formula_274,再作倒数。