「没事瞎折腾」求函数f在定义域(a,b)上的极值。
mathcad吧
全部回复
仅看楼主
level 14
冥海幽客 楼主
请在mc或mc中构造一个函数,要求在不对原函数求导的前提下,求出原函数f在定义域(a,b)上的所有极值点和对应极值。
请阐述求解原理和计算代价。
2014年08月14日 04点08分 1
level 12
求解命令块里设上 a<x<b ,其他的你都知道怎么了。
2014年08月14日 06点08分 2
请试试看。是极值,不是解哦[笑眼]
2014年08月14日 07点08分
level 14
冥海幽客 楼主
百度对“极值”的解释还是很科学的!
http://baike.baidu.com/view/294001.htm?fr=aladdin
2014年08月14日 07点08分 3
level 12
看在你是聪明肯干勤劳好学的小吧主的份上,我这次不动粗。
2014年08月14日 08点08分 4
竖着的线,x=1和x=6是怎么画的?
2016年10月14日 14点10分
level 12
我上面的式子有错误,一个Given只能带一个求解器,要想用两个求解器,就得用两个Given。所以我上面的那个b不受1<x<6的限制。
修改了一下,从估值对解的影响上看,Minimize多少有些震荡,Maximize还是很好的。
2014年08月14日 08点08分 5
厉害
2024年03月01日 03点03分
大佬牛逼,今天卡在这个最小值求出来是在值域外,原来是要用两个given而不是一个,感谢大佬
2025年04月12日 07点04分
level 14
冥海幽客 楼主
这函数是求最值的。对于一个未知函数来说。你不可能知道闭区间(A,B)里面只有一对极值。如果区间(A,B)里面有多个极值点。怎么解?
画出函数图像,手动辨认?
可是要求的极值点有七八百个!那效率……
2014年08月14日 09点08分 6
level 14
冥海幽客 楼主
求最值和求极值是两个不同概念。
2014年08月14日 09点08分 7
level 14
冥海幽客 楼主
就吧主你构造的目标函数来言,把区间定义为[-10,10]。
maxmize和minmize就不好使了。
它们只能找出最值。
2014年08月14日 09点08分 8
level 14
冥海幽客 楼主
还有。maxmize和minmize对导数不连续的函数也不好使。
2014年08月14日 09点08分 9
level 12
你举个例子,说明maxmize和minmize对导数不连续的函数也不好使。
嗯,你再构造一个函数,你觉得比较复杂的,可以在这道题里用的。
然后你再给出一个你自己的答案,或者思路。
别光会找个名目来刁难人,出考题是要讲究道德的。
2014年08月14日 09点08分 10
level 12
还有一个问题,如果一个函数不包含振荡,那么就无所谓极值了,这个假设对么?
2014年08月14日 09点08分 11
level 12
这道题不用导数,确实有些难。我想用固定步长对某个波函数进行遍历,记录a(x)=Minimize(y,x)和b(x)=Maximize(y,x)的相异值,也就是当a(x)≠a(x-1)时,在结果向量中记录一个值,当遍历完成时,就得到了所有的最大值和最小值。但MC的Minimize和Maximize只能用共轭梯度法和拟牛顿法,这两个方法都涉及到了对切线的迭代,很不稳定的,很容易在某些值上出现发散不收敛,然后就在估值和结果对应曲线上出现了振荡,就像我上面贴的那个图似的。
感觉要解决这题,需要用傅里叶变换之类的技巧,得到若干个振荡周期,然后将所有的周期值都用作估值,再求最大值和最小值。
2014年08月14日 12点08分 12
level 13
2014年08月14日 13点08分 13
level 12
神奇,LNS,你是咋做的?
2014年08月14日 13点08分 14
level 13
就是您的函数,在作图时,我把a(t)改成了f(a(t))就成了这样
2014年08月14日 14点08分 15
level 13
这个有一点象剑客曾经说到的一个方法——我忘了><
2014年08月14日 15点08分 16
好像是什么隧道法,旧帖里有,有兴趣的朋友翻一翻
2014年08月15日 04点08分
回复 LNSZDZG :找着了在https://tieba.baidu.com/p/3120748454理22楼
2014年08月15日 04点08分
level 13
事实上,在MC中无论是min还是Maximize都是最小而非极小,所以得到的都是“最”而非“极”!
2014年08月14日 15点08分 17
更正Maximize为Minimize
2014年08月14日 15点08分
level 12
真是一个让我吃惊的一个结果。
不过,LNS,从你上面的那个图里,貌似你不仅仅是这么做的,很明显你后面贴的这个图和你上面的那个图是不一样的,上面的那个图在最小点的两侧都有水平线延长出来,而在你下面的图中,只有一侧(右侧)有水平线延长出来。
2014年08月14日 15点08分 18
level 13
是的,上面一个用您的办法,用Minimize函数,下面一个是我编的程序做的
2014年08月14日 16点08分 19
level 12
我找到了一个法子:
(1)绘制函数图像,确定自变量截取值域和遍历步长。
(2)设两个新函数,新函数是初始函数的一部分,函数的自变量值域是由(1)来确定的,根据求最大值和最小值的目的不同,离群值取+∞和-∞。
(3)参数化求Minimize和Maximize。
(4)用(1)确定的固定步长来遍历函数,参数化找各个截取值域的最大值和最小值。
(5)组成矩阵,绘图。
实在找不到特别高端的方法了,这可能是解决这个问题最笨的方法,但它对于振荡不很大的函数来说,运算速度还成,而且对于所有的振荡情况都适用,比如说变周期函数、变振幅函数以及变振荡基线函数。
这个方法可以得到确定的所有的极值。
嗯,并且我发现这种方法可以有效的避免共轭梯度法和拟牛顿法的对某些估值运算不收敛的问题。
qiuletian在这点表现的不好,出考题,但不给出示例函数。
我构造了一个函数,变周期、变振幅、变基线,LNS,你可以验证一下,用上面你的那种方法应该给不出结果的了。
嗯,不卖关子了,解法如下:
2014年08月14日 16点08分 20
2014年08月14日 16点08分
回复 朱老剑客 :剑客啊,有一点包络的味道了哈!
2014年08月15日 04点08分
回复 LNSZDZG :蓝色的一条线和绿色的一条线,是中间曲线的一个包络。
2014年08月15日 04点08分
这里的思路和方法没看懂,不明白为何要有g和h两个函数。
2015年11月25日 11点11分
1 2 尾页