多语言展示
当前在线:575今日阅读:86今日分享:14

【Mathematica】余弦函数的迭代

在知乎上看到网友问:用计算器计算任意实数的余弦值,之后重复按余弦键盘,得到的数值总会趋向于同一个数值。求解释。本文,用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的迭代,在复数范围内未必收敛。

推荐信息