geogebra进阶185:如何求若干个函数的最大者?
下面问题由笔者的好友,《LATEX范例学习与试卷论文排版》的作者万述波老师私聊笔者提出:
笔者第一时间提出:
用了两次if,最为简便!
同时笔者也提出,但是应该还有更简洁的方法,请教大家!
但是上述结果发给万老师的时候,他提出:
“刘老师把x>-7时的做出来了,但是x<=-7的没有做出来”
笔者分析:原因是x<-7,这个对数函数没有意义!
笔者也给出了改进方法:
可以直接指定!
当然,潘立强老师也给了类似的方法:
If[x<=-7,If[f>=g,f,g],f>=g&&f>=h,f,g>=h,g,h]
这个多重if指令,并不好解读。
桂群成老师提出:if指令复杂一点的就是嵌套多分支,如果有十几个分支的,指令会很长。不过如果分支条件有规律,可用序列来化简指令
或者曹洪洋老师提出:
(2*f + g + h + abs(g - h) + 2*abs(f + (-g - h - abs(g - h))/2))/4
(这个也没有显示x≤-7的部分)
方法2:孙生富老师认为,仅以定义域进行群分,哪要两两地比较。而且将滑动条最大值和最小值用角点横坐标去设置,同样范围广。即滑动条a的范围x(角点(1)),x(角点(2)),
笔者提出:这个方法好,但是所得的效果是轨迹,不是函数,不能引用?可以,可直接引用。
孙老师认为:对用轨迹生成图像有2点误判:
1.不能引用
2.显示范围要人为选择,感觉有限
通过本例就可以知道,轨迹虽不是方程,但是参数生成的,一样可引用;显示范围,完全取决于滑动条的范围,所以用角点指令设置滑动条范围, 取值很方便。
当然笔者的意见是:if应该更适合教学,因为教学需要得到是解析式,if 指令得到的就是分段函数,也就是符合题意要求的函数。
总结一下三个关键指令:
p(x)=if(f>=g,f,g)
q(x)=if(p>=h,p,h)
r(x)=if(x<-7,p,q)
如果是多个函数,方法类似,如果是求多个函数的最小值,也可以进行推广!
下一期讲下面这个往返运动的制作:
孙老师认为:
就像早前做来回跑的动画,好像非要借助迭代才能做。其实用迭代反而隔断了思维,实在不敢恭维,不过我当时,也跟着学习这种方法,边学习边肯定,边思考边否定,后来,觉得还是直接做更好更有味道。
而笔者更喜欢利用折线图进行简化制作,当然需要继续利用迭代或序列,把计算交个计算机,从而进行简化!
敬请期待!