窄带函数积分或者求极值的问题,多谢!
最近在编个算法,中间可以推出一个类概率密度分布函数(pdf)(没归一化,积分不一定为一,基本对称;重点是这个单峰函数很尖,定义域很窄,而且是定义域是R),我积分想求这个函数的均值,或者一维搜索求这个函数的极大值;面临的困难是:函数窄带,数值积分方法必须找到大概区间才能保证有效精确,一维搜索的初值也必须接近这个窄带区间,而区间未知。matlab功能很强大,如果可以直接写出这个函数表达式的话,用quadgk函数积分,完了归一化就可求出均值,solve函数解方程求出有效区域内的对称双根,平均值就是均值(极值);但是我的算法只能给出关系式,具体表达式未知(只能从结果里看);matlab内置的这些符号运算积分函数,方程求解函数,只识别具体的函数表达式,有没有什么命令可以在程序中调出具体表达式,然后自己放到这些函数里用。不可以的话我只能想到下面的方法了。
估计个初值用弦截法带到推出的函数表达式,令表达式值很小,0.01(概率分布的端点)求出一个根,(我在matlab里把程序推出的函数表达式结果复制,再用solve求解的双根都有,但普通数值解只能找到单根),拿这个根当初值用一维搜索找到极大值,关于这个极大值对称下找到另一个端点,两个端点作为积分区间完成后面的积分,归一化,积分求均值工作。 这一套下来太复杂了,求大侠指导有没更好的方法。能把表达式显示自动带入solve求解或者积分更好。 细节问题最头疼,多谢!:handshake
页:
[1]