如何利用泰勒级数展开式计算数学函数的值(SCL代码)

大部分PLC都会提供常用数学函数的算法指令,当然也包括SIN(x),COS(x)等。利用现有指令完成常用数学函数值的计算,不是本篇博文讨论的重点。但是你有没有想过指令的底层又是如何完成函数指令计算的呢。(这篇文章我们以SIN函数为例,利用SCL语言实现正弦函数的计算)。一些没有指令支持的数学函数(平滑函数f(x),可以泰勒展开的)数值计算,大家同样可以利用泰勒级数展开按照这个算法进行计算。

关于泰勒级数、麦克劳林级数、泰勒多项式不是很清楚的同学。可以把藏在桌底的高等数学再拿出来回味一下,肯定会有所收获。限于本人水平,文中难免错误和不足之处,欢迎大家批评指正,同时感谢大家订阅和关注。

下面我们利用SCL语言在博途PLC完成这个级数的计算,这是一个无穷的级数,但是我们的计算不能无穷下去。所以我们计算直到最后一项的绝对值小于10^ -7时停止计算。

如何计算级数的每一项,我们还需要简单构造一个因子(否则算法时间复杂度和空间复杂度还是不小的)。以便我们可以采用递推算法完成求和(大部分级数展开式求和都可以用这个递推实现)。算法也用到了SIN函数的周期性质。我们只需要计算0~2PI范围的函数值即可。

1、函数的周期性 

猜你喜欢

转载自blog.csdn.net/m0_46143730/article/details/125676517