找回密码
 注册
Simdroid-非首页
查看: 184|回复: 5

请教求拟合曲线峰值

[复制链接]
发表于 2005-9-12 10:03:15 | 显示全部楼层 |阅读模式 来自 湖南长沙
x=[8.1 10.2 13.0 15.8 19.0];
y=[1.67 1.71 1.80 1.83 1.76];
%二次拟合
p2=polyfit(x, y, 2);
xx=7.5:0.1:20;
polc=polyval(p2, xx);
plot(xx,polc,x, y,'r+');

我想求出拟和曲线最大值y(峰值)和对应的x值,如何求得,还有平方差怎么计算,
哪位能指点一二!不胜感谢!
发表于 2005-9-12 10:51:14 | 显示全部楼层 来自 黑龙江哈尔滨

Re:请教求拟合曲线峰值

Simdroid开发平台
两个思路:
1 使用优化,比如优化工具箱的fmincon函数,对拟合函数求最大值。

2 利用符号工具箱,对拟合函数表达式自动求导数,在求解导数方程的零点。
银河星斗 该用户已被删除
发表于 2005-9-12 11:02:02 | 显示全部楼层 来自 吉林长春
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2005-9-12 11:24:34 | 显示全部楼层 来自 新疆乌鲁木齐

Re:请教求拟合曲线峰值

本帖最后由 bainhome 于 2010-11-20 23:38 编辑

接你的程序
  1. >> [maximum,index_y]=max(polc)
  2. maximum =
  3.     1.8138
  4. index_y =
  5.     78
  6. >> xx_max=xx(index_y)
  7. xx_max =
  8.    15.2000
复制代码

这是从你给定的xx中找到的峰值,如果要找polc的"真正"峰值,先找一下p2的表达式:
  1. poly2sym(p2);
  2. digits(3);
  3. vpa(ans)
  4. ans =-.315e-2*x^2+.957e-1*x+1.09
复制代码

用一维极值搜索命令fminbnd
  1. >> f=inline('.315e-2*x.^2-.957e-1*x-1.09','x');
  2. >> x=fminbnd(f,7.5,20)
  3. x =
  4.    15.1905
复制代码

至于平方差不知道是谁和谁的平方差,无从回答,但如果是误差估计的话polyfit命令中有个命令格式
  1. [p,S] = polyfit(x,y,n)
  2. [p,S,mu] = polyfit(x,y,n)
复制代码

建议看看,如果是求原来x对应的y和拟合y值的平方差想必就很简单了,不多说.
 楼主| 发表于 2005-9-12 12:20:41 | 显示全部楼层 来自 湖南长沙

Re:请教求拟合曲线峰值

谢谢各位地热心帮助!看了以后茅塞顿开!
以后还要多向大家学习学习
发表于 2010-11-20 22:18:28 | 显示全部楼层 来自 大连理工大学
学到不少。。冥思苦想好几天 一下解决了
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 09:22 , Processed in 0.058135 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表