探讨:求解函数在指定区间内的极值
mathcad吧
全部回复
仅看楼主
level 11
randvac 楼主
由于没有宽带联网,上网费力,就不尝试上传文档截图了,改用文字简介吧。
简介如下:
本文探讨了通过mathcad自动计算【计算函数在指定区间内的极值】(或【计算函数在指定区间内的值域】)的编程算法。
实现了对一些连续函数的值域自动求解,能够自动给出在指定区间内极值点的横坐标和纵坐标。
虽然最终的结果并不完美,但提出和证明了:【在程序块中也是可以使用 solve 命令求解方程的】!
这一点打破了以往大家对程序块中不能使用 solve 的认识。
同时也展示了solve 和 root 等方程求解命令的局限性,乃至mathcad本身的局限性。
全文沿袭一贯的风格,通过详细说明讲解每一步的思路,尽量让更多人能看懂。
若有不明之处,请提出欢迎交流。
若能更正我的错误,更是感激不尽。
源文件:百度网盘
2015年11月24日 16点11分 1
level 11
randvac 楼主
@朱asd12 你在mcp吧提出了求值域的问题(https://tieba.baidu.com/p/3986394492),我想你可能会对本帖感兴趣,有空的时候请看一看。
2015年11月24日 16点11分 2
level 11
randvac 楼主
趁网络还能动
2015年11月24日 16点11分 3
level 11
服了,真服了!太感谢了!
2015年11月25日 00点11分 4
尚有许多问题没能解决,一起琢磨下呗。
2015年11月25日 00点11分
回复
angelycs
:我这显示都有解啊
2015年11月25日 00点11分
@朱asd12 不光要有解,还必须得是完备和正确的解。在我这里,文档末尾所提的函数没有能够得出正确结果。
2015年11月25日 00点11分
level 11
randvac 楼主
文档是在我的个人电脑上写的,其中用 solve 与 assume 配合求解指定范围内的根时,出现了失效的情形。
但我刚刚在办公电脑上用solve 和 assume 求解sin(x)=0在[5,10]上的根,能够得出正确结果。
所以文档中提到的局限性有可能是由于电脑环境产生的,如果 solve 能够在程序块中正常求解指定范围内的根,那么文档中的方法的适应性还能稍微增强些。
有人愿意帮忙测试下吗?只需打开上面提供的文档,翻到“与正文无关的吐槽”或文末,查看其中的solve解方程是否在指定区间内解出了
正确的
解。
2015年11月25日 00点11分 5
level 11
randvac 楼主
我发现办公电脑上依然存在这个问题。
用 solve 和 assume 解sin(x)+xcos(x)=0在区间[1,10]之间的根,得出的结果是0,用root 求解得出的结果是7.979,都没能得出完整的结果。从图形来看,应该有3个根才对。
所以,我当前需要在这个问题上寻求一些支持:如何在mc中解方程时得出完备的解(不限于 solve 或 root)。
各位,能给我点建议吗?
2015年11月25日 00点11分 6
level 12
你说的那个solve的表现确实很诡异,我用MC2001i算出的结果和用MC15得到结果是不一样的,至少用Maple引擎得到的结果还稍微靠谱一些。
你的这个问题从MC档案里查,有这个:https://tieba.baidu.com/p/3229679092,供参考。
2015年11月25日 07点11分 8
1