数与图(9)——幂函数曲线

《数与图(3)》中我们分别绘制了一次函数、二次函数及三次函数的曲线,本篇文章中,我们将绘制6次函数的曲线,函数的表达式为

y = (x+3.6)*(x+2.5)*(x+1)*(x-0.5)*(x-2)*(x-3.5)

这正是那个在前几篇文章中反复讨论的多项式,现在将它写成函数的形式,以便绘制它的曲线。

在开始绘制六次函数曲线之前,我们先简单回顾一下绘制曲线的方法,《数与图(3)》中“绘制曲线”过程的代码如图1所示:

图1 在画布上绘制函数曲线的过程

在上面的代码中,我们要理解的重要内容有三点:

  1. x的取值范围由坐标轴上x的最小值和最大值决定,x的取值间隔为十分之一辅间距。

  2. 根据给定的x值,由函数表达式求出函数的y值,其中的函数表达式是需要替换的部分,本文中要替换成六次函数。

  3. 根据给定的x和求得的y绘制函数曲线,注意数学坐标和画布坐标之间的变换,除了缩放比例外,还有y轴的取相反数。

有了以上准备,下面来确定六次函数的绘图区间,我们人为地将其设为[-10,10],即:-10≤x≤10,而x坐标的主间距为2,辅间距为0.4。根据x坐标来预测y坐标的最大值。

回到《数与图(8)》的项目中,利用循环语句求六次函数在[-10,10]之间间隔为1时的函数值列表,代码及计算结果如图2所示。从结果中可以看出,函数值不在一个数量级内,y的最大值接近百万。在这种情况下,如果将y的最小值设为0,最大值设为100万,那么每个像素表示的长度是1,000,000/600≈1667,如此一来,那些小于2000的y值就会匍匐在x轴上,无法展示出它们的差异。我们不妨来画画看。

图2 观察x在[10,10]内函数值y的取值

回到《数与图(8)》的项目中,将“多项式求积”过程放入代码背包,然后打开《数与图(3)》的项目,将求积过程从背包中取出,然后将图1中的“y坐标”过程替换成“多项式求积”过程,代码如图3所示。

图3 用“多项式求积”过程替换“y坐标”过程

单独执行“绘制曲线”过程,所得结果如图4所示。

图4 绘制六次函数曲线的测试结果

从曲线图中可以看到,当-5<x<5时,函数值几乎为零,而当x<-5或x>5时,函数值激剧增大。为了让曲线在绘图区域内展示出明显的变化趋势,我们需要引入一个修正函数:e-x*x/4,用这个函数来乘以幂函数,即:

y=(x+3.6)*(x+2.5)*(x+1)*(x-0.5)*(x-2)*(x-3.5)*e-x*x/4

引入的指数函数,当x趋近于0时,该函数值趋近于1,随着x的增大,函数值快速地趋近于0,这种特性可以让急剧增大的幂函数快速衰减,因此使函数曲线变得平缓。

下面修改“多项式求积”过程,将指数函数引入到函数表达式中,代码如图5所示。

图5 将指数函数引入到“多项式求积”过程里

再次单独运行“绘制曲线”过程,测试结果如图6所示。

图6 引入指数函数之后的函数曲线

以上我们绘制了经过指数函数修正的幂函数曲线,你有没有从中获得什么启示呢?经过修正的幂函数,在0附近表现出振荡的特性,这个图形是否有点像人的心电图曲线呢?如果是,那么心电图曲线是否也可以分解为某种形式的多项式呢?假如可以,那么多项式中的每一项是否可以与人的健康状况建立某种联系呢?这些问题是没有答案的,至少我还没有找到答案,就留给读者思考吧,或许某个年轻人在未来的某个时刻会揭开这个谜题。

(0)

相关推荐

  • 【所长林超】学科04:函数重要模型

    ps:笔记虽好,所长林超的视频质量更棒,更有助于自己的理解,有能力就支持一波 笔记整理人:贲志泉.群友@金海 @刘峥嵘 @田野 @neilz @懒志 @侯博晟 @何杰 函数 "函数" ...

  • 我用 Python 算了下:编程教室的用户数哪天能到100万

    这是一篇正经的数据分析案例. 去年12月初,在经过四年多的积累后,编程教室微信公众号的关注人数突破10万人.(可回顾 最开始我也没有想过会有这么一天-) 10万人只是另一个开始,让我感到责任更大了.如 ...

  • 23 为什么这么神奇?

    说明:本文为第一届和乐杯数学科普大赛参赛作品.期待更多参赛作品,共同做好数学普及. 23 为什么这么神奇?与 , 的大小有关吗? 作者:张劲松 数学中有很多神奇的数字:2,5,1729,,,(黄金分割 ...

  • 一款好用且免费的曲线拟合工具CurveFitter

    点组所表示的坐标与函数值之间的关系.曲线拟合可以帮助我们了解数据之间的内在联系,并能预测此类问题在其他离散点下的变化趋势.在实际的数据分析工作中,大多数需要拟合的曲线或曲面都是非线性的,所以常需要借助 ...

  • 数与图(1)

    App Inventor的画布组件,相当于一个平面直角坐标系,画布上的任何一点都可以用一对坐标(x,y)加以描述,而画布具有画笔的功能,可以在指定位置绘制点.线.圆等基本图形,这就使得开发者可以用程序 ...

  • 数与图(2)

    在上一篇文章『数与图(1)』中我们遗留下一个问题,当坐标轴的原点不在画布范围内时,程序会报错,现在我们就来解决这个问题. "原点不在画布范围内"可能有三种不同的情况: (1)x轴原 ...

  • 数与图(2)修正版

    说明:此前发送的『数与图(2)』缺少图1,现将图1补上,重新发送,给您带来的不便,请多包涵. 在上一篇文章『数与图(1)』中我们遗留下一个问题,当坐标轴的原点不在画布范围内时,程序会报错,现在我们就来 ...

  • 数与图(3)

    在前两篇文章(数与图(1).数与图(2))中,我们完成了对坐标系的绘制,现在可以在坐标系中绘制函数图像了. 在高中数学课本里,函数被表示为y=f(x),在函数的定义域内,每一个x值,都有唯一的y值与其 ...

  • 数与图(4)——多项式表达式

    在数与图(3)中,我们绘制了一次函数.二次函数及三次函数的图形,接下来我们希望绘制更为复杂的函数图形,如下式: 通过改变系数的值,来观察系数对曲线形状的影响.这项任务涉及到大量的运算,对于人类来说,即 ...

  • 数与图(5)——合并同类项

    在上一篇文章<数与图(4)>中,我们拼写出多项式表达式,其难点在于如何处理众多可能的条件分支.本篇文章继续讨论与多项式有关的代数运算--合并同类项. 拥有初中数学基础的读者都知道合并同类项 ...

  • 数与图(6)——多项式乘法

    在上一篇文章<数与图(5)>中,我们实现了合并同类项操作,而合并同类项是多项式乘法的基础,本文在此基础上,用程序实现多项式的乘法运算. 首先将上一篇文章的项目"合并同类项&quo ...

  • 数与图(7)——求多项式的值

    在上一篇<数与图(6)>中,我们实现了多项式的乘法,但是遗留了一个很重要的问题--如何验证程序的正确性呢?在这篇文章中,我们尝试给定一个x的值,用两种方法求多项式的值,即,同时将x的值带入 ...

  • 数与图(8)——计算的代价

    在<数与图(7)>中,我们通过求多项式的值,检查出程序的bug,于是从最靠近结果的部分开始,追溯错误产生的原因,找到并最终改正了错误.本篇文章继续讨论求值的问题,我们要来评价一下计算的代价 ...