作业帮 > 综合 > 作业

matlab 非线性参数辨识y=a*x+b*tan(c*x);求参数abc

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 11:03:15
matlab 非线性参数辨识y=a*x+b*tan(c*x);求参数abc
用matlab自带的nlinfit拟合的效果不是很好
p=nlinfit(x,y,@myFunc,[0.5,0.5,0.5]);
请问还有什么更好的拟合方法么
H=a*db+(b*tan(c*B)+sign(db));
其中abc是需要求的参数
H的数据为[1 1.034 1.067 1.101 1.135 1.17 1.207 1.246 1.287 1.332 1.382 1.438 1.502 1.576 1.664 1.771 1.905 2.076 2.3 2.599 3 2.195 1.512 0.9655 0.5471 0.2341 0 -0.178 -0.3165 -0.4272 -0.5178 -0.5937 -0.6588 -0.7157 -0.7663 -0.812 -0.8541 -0.8932 -0.9302 -0.9657 -1 -1.034 -1.067 -1.101 -1.135 -1.17 -1.207 -1.246 -1.287 -1.332 -1.382 -1.438 -1.502 -1.576 -1.664 -1.771 -1.905 -2.076 -2.3 -2.599 -3 -2.195 -1.512 -0.9655 -0.5471 -0.2341 0 0.178 0.3165 0.4272 0.5178 0.5937 0.6588 0.7157 0.7663 0.812 0.8541 0.8932 0.9302 0.9657 1]
matlab 非线性参数辨识y=a*x+b*tan(c*x);求参数abc
没有哪种方法绝对优于其它方法,否则其它方法也就没必要存在了.
拟合结果的优劣不仅和拟合方法有关,和拟合函数的形式、拟合参数初值以及算法设置等因素都有关系,很多情况下需要具体分析.
你不给出具体的数据来,怎样帮你分析?
 
3月12日补充:
 
楼主另外开帖提的那个问题我看到了(见参考资料的链接).是不是问题补充有字数限制,无法贴完整,所以另外提问的?如果是这个原因,给楼主提个建议:这种情况下,应该在原帖说明一下,否则,我很可能会注意不到你的那个帖子,而在原帖里给的信息又难免让人一头雾水.
 
对这个问题,我花了不少时间研究.目前得到的结果如图所示:

楼主可以看看是否符合自己的需要,如果符合,请在这里继续追问,或者采纳这个答案后我再去回答你的另一个提问.
 
并不是我想多得分,而是因为我不想明明自己很认真提供的答案无缘无故地不被采纳——如果我直接去回答另一个问题,这一个很可能就会悬在这里了.如果楼主不愿两个帖子都采纳我的回答,那就请在这里继续追问,我会继续回答.
 
顺便说一句,知道的规则似乎是这样的:悬赏的财富在提问的时候已经扣除了,采纳满意答案并不会让提问者额外损失什么(如果及时采纳可能还有奖励).我并不在乎这些虚拟的财富(对我其实也没什么用),但是我希望自己的劳动和专业能力得到肯定和尊重.