简单介绍一下采用二分法的思路吧,程序还是需要你自己去完成的
假设你的kd取值范围为[kd(0),kd(n)]
1. 将该范围分成n份,这样就形成了[kd(0),kd(1)],[kd(1),kd(2)],......,[kd(n-1),kd(n)]共n个区间
2. 计算下列节点位置的的固有频率
[kd(0),kd(1),kd(2),......,kd(n-1),kd(n)]
得到固有频率
[w1(0),w1(1),w1(2),......,w1(n-1),w1(n)]
[w2(0),w2(1),w2(2),......,w2(n-1),w2(n)]
3. 判断解区间
判断寻找满足(w1(i+1)-sw1)(w1(i)-sw1)<0 且 (w1(i+1)-sw1)(w1(i)-sw1)<0的情况
找出对应的存在解得区间为[kd(i),kd(i+1)]
4. 在[kd(i),kd(i+1)]的区间内使用二分法找出你所需要的解
二分法程序参考http://forum.vibunion.com/thread-96621-1-1.html
所不同的是你这里需要同时满足两个条件
该方法整体思路比较简单清晰,但是问题比较多,比如找不到解、效率低下等
如果取得较好的效果还是用优化工具箱里的函数,你这个问题可以表述为多目标优化问题
比如采用fgoalattain函数等
|