让微积分穿梭于工作与学习之间(30):用夹逼公式去掉圆弧直线定积分(投影面积)中的if判断
对CAD圆弧直线不了解的朋友可以先阅读以下博文:
https://blog.****.net/iloveas2014/article/details/103837857
https://blog.****.net/iloveas2014/article/details/103848611
这个东西虽然涉及到积分的知识,但我们在第21篇和22篇就已经推导过了。所以这里我们把用到夹逼定理之前的式子搬过来。
然后,oy,eα,sα和R都是跟圆心角α有关的变量,都需要化开。
这个地方,由于我写教程间隔的时间太长了,加上自己没有规范好一些字母的含义,所以跟前面的式子有点混淆。此处cy不再表示圆心了,而是起点和终点连线的中点。所以我把21篇和22篇中的cy改为了oy,并且有
然后,sα和eα代表起点的角度和终点的角度,按照之前的约定,sα和eα的角平分线的角度定为cα,在圆心角变化的过程中,是个常量。
而R则等于L/2*csc(α/2)
L为S和E的距离,也是常量。
现在我们就代入展开吧。
中括号内第一项包含sin(α/2),跟括号外的公因子csc(α/2)互为倒数,可以抵消。我们先把这块给提出来。后面部分的则提取公因子L。
后面的部分看着还是很乱,曾让我一度陷入困境,本来想着再提取csc(α/2)的,但可惜第一项没有。不过后面想了想,就因为这样而不能提取了么?反正提取了csc(α/2),第一项乘个sin(α/2)就抵消了,还正好凑到了正弦的二倍角公式,跟第三项的sinα相互呼应。
这样一看,中括号内的部分简洁了很多,我们把余弦的二倍角展开下,虽然它是常量,但展开后更方便跟单倍角的平方合并。用的是这个公式。
代入继续。
中括号内的部分因为跟cα有关的两个项被相互抵消而变得更简洁了。
要求极限的部分也就只剩最后面的部分。
这个极限手算很简单,用洛必达法则一下子就能算出来了。
但非常遗憾的是,洛必达法则的过程无法在非数学编程语言中进行实现。然后我想了很多很多的办法,尝试把它变成夹逼公式或其变体,都失败了。主要原因在于三角函数和幂函数在这里是加减而非乘除,它不具备夹逼公式的特点。
既然如此,那我们先试着把这个极限化为通用性较强的公式,并且放入到公用的极限公式里面。
比如可以写成这样:
也可以用另一种等价无穷小替代原始极限:
这样,上式中的
也被归入到极限公式当中了。
投影面积公式去if的操作没有想象中的顺利,这也是跟定积分的公式有关。在定积分公式中,α既存在于幂函数中,也存在于三角函数,它们位于不同的项,相加减的过程跟无法用初等数学的方法进行合并,也很难整理成sinx/x这样的夹逼形式。既然如此,那这里就先这样凑合着好了,等我想到更好的办法再来更新。