用计算器求超越方程数值解的几个简单有趣的例子
用计算器求超越方程数值解的几个简单有趣的例子
孟也清(原创)REV1.02 01052013
很显然,这些超越方程都可以编个简单程序解决,但这里说的是仅使用普通函数计算器, JUST FOR FUN!
解方程1
X=Cos(X)
这可能是世界上最简单的用函数计算器迭代方式解超越方程的例子了,只要你连续按函数计算器上的COS 键。第一个近似解可以是计算器上显示的任何数字,如一开机为0就可按键,或是99999999都无所谓,因为COS 是周期函数,所有数字都会以2π为模。
按键若干次后你就看到那个解趋近你使用的计算器的最高精度。
在8位计算器上得到X=0.7390851,约按键50次,
在10位计算器上得到X=0.739085133,约按键52次,
在Windows 上的32位计算器上为X=0.[***********][1**********]387,约按键200次。 注意上面X 是弧度
若X 是“度“则收敛更快, 仅10次即可得到32位解X=0.[***********][1**********]98
解方程2
X= - LOG(X)
见下图,蓝色为y=log(x), 紫色为y=-x, 交点约为X=0.4
若用X 取对数再取正值后再迭代,其过程发散。
所以这样解, 将两次相近的解的几何平均值代回去迭代。有弦位法的意思。
X0=0.4
X1’=-Log(X0) =0.39794
X1=(X0+X1’)/2=0.39897
经过10次迭代可得到
X10=0.[**************]
用几何平均值代回去迭代,也是10次,因为Xn 范围很小。
1
解方程3
X=10LOG(X)
若X 为功率,而10LOG(X)表示dBm ,则在数值上有两个点它们是相等的。
即求解方程X=10LOG(X)的两个解。
见下图,蓝色为y=x, 紫色为y=10log(x ),
交点2约为X=10,y=10LOG(10)=10,此点可用直接迭代求出,但收敛速度不很快。
交点1约为X=1.4,此点用直接迭代或上面平均值迭代均发散,反而在计算器上用凑数法比较快,为
1.371288573~4
当然可考虑牛顿法(切线法)切线法似乎也会发散。弦位法应可以,没试过。
2
从放大的下图可以看出
当选定一个X 后,取对数X10后,X 会沿着绿色箭头方向移动,而其移动是向背离真解(橙色虚线)方向,所以造成发散。
照此思路,可考虑其反函数,可能或一定会收敛。
取X0=1.4
X1=10^(1.4/10)
X2=10^(X1/10)
… …
约10~20次后,在10位数计算器上得到X=1.371288574
第二个交点X=10由于蓝色和紫色线上下换了位置,所以取对数方法收敛,而用指数方法则发散。
3
这两个解,对于射频无线电功率或光功率中的物理意义是
1.371288573mW=1.371288573dBm
10mW=10dBm
4