在知乎上看到网友问:用计算器计算任意实数的余弦值,之后重复按余弦键盘,得到的数值总会趋向于同一个数值。求解释。本文,用Mathematica来绘制图像,给出一个解释。
工具/原料
1
电脑
2
Mathematica
定义域为实数
1
先画出余弦函数的图像,不过,为了实现嵌套效果,直接使用Nest函数:Plot[Evaluate[Nest[Cos, x, 1]], {x, -2 Pi, 2 Pi}, AspectRatio -> Automatic]
2
cos(cos(x))就可以表示为Nest[Cos, x, 2];当x为实数时,函数的取值范围变【窄】了,而且全部大于0。
3
Nest[Cos, x, 3]的图像如下:
4
随着嵌套次数的增加,函数的取值范围越来越窄,当嵌套100次的时候,看起来就像是一条平直的直线:Nest[Cos, x, 100]
5
用NestList[Cos, x, 100],把这100个嵌套的过程,全部画出来:
定义域为复数
1
如果定义域扩展为复数,会怎么样?先考虑纯虚数:Nest[Cos, I x, 1]
2
二次嵌套:Nest[Cos, I x, 2]
3
100次嵌套:Nest[Cos, I x, 100]
4
前100次嵌套:NestList[Cos, I x, 100]
5
再把自变量给为一般复数,比如(1+I) x:NestList[Cos, x + I x, 100]
确定数值
1
解方程,是不能的,不过可以用特定数值来实现:N[Nest[Cos, 0, 100], 100]答案约等于:0.73945217442793733333
2
换复数试试:N[Nest[Cos, 1 + I, 100], 100]可以发现,虚部趋向于0,实部呢?
3
N[Nest[Cos, 5 + 2 I, 100], 100]计算力不足,没算出来。
注意事项
Cos的迭代,在复数范围内未必收敛。