请教大家一个插值求离散数据极值的问题

edgarzw 2010-08-27 04:11:34
现有一组离散数据,我们暂缺把它命名为数组y[20],其数据大概是一个有规律的凸形(可以说是一条特性曲线吧),而与其相对应的为数组x[20],其20个数分别为等间距的从1至20的整数,现想要求这数组的极值(非这群数中的最大值,而是这个函数的最大值)及其所对应的x值,之前所用的是对最大的三个数采用高斯插值的办法,但效果不佳,请问还有其他的插值方法来解决吗?谢谢!
...全文
328 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxdkxgwan 2010-08-31
  • 打赏
  • 举报
回复
我是来学习的。。。
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 the_eagles 的回复:]
引用楼主 edgarzw 的回复:
现有一组离散数据,我们暂缺把它命名为数组y[20],其数据大概是一个有规律的凸形(可以说是一条特性曲线吧),而与其相对应的为数组x[20],其20个数分别为等间距的从1至20的整数,现想要求这数组的极值(非这群数中的最大值,而是这个函数的最大值)及其所对应的x值,之前所用的是对最大的三个数采用高斯插值的办法,但效果不佳,请问还有其他的插值方法来解决吗?谢谢!
……
[/Quote]

神仙?
达人?
谢谢!
AlanBruce 2010-08-30
  • 打赏
  • 举报
回复
kankan...
The_eagles 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 edgarzw 的回复:]
现有一组离散数据,我们暂缺把它命名为数组y[20],其数据大概是一个有规律的凸形(可以说是一条特性曲线吧),而与其相对应的为数组x[20],其20个数分别为等间距的从1至20的整数,现想要求这数组的极值(非这群数中的最大值,而是这个函数的最大值)及其所对应的x值,之前所用的是对最大的三个数采用高斯插值的办法,但效果不佳,请问还有其他的插值方法来解决吗?谢谢!
[/Quote]
对最大的三个数采用高斯插值??
~~~~~~~~~~~~~~~~~~~~~~~~~~
1. indexs of these there value must be continous.
2. guass is absolutely enough, even rectangle.

//pseudo code
for(nwnd=5; nwnd<11; ++nwnd, ++nwnd)
{
nNewLen= 20 + nwnd-1;
ye[nNewLen]={0};
x[nNewLen]={0};
memcpy(ye+nwnd/2, y,20)
for(i=nwnd/2; i<nNewLen-nwnd/2; ++i)
{
j=-nwnd/2;
while(j++ <= nwnd/2)
x[i] += ye[i-j];
x[i] /= nwnd;
}

search the biggest value in x[], get index.
This "effect" is you desired?
yes ---> break;
no ---> continue;
}
DavidFracs 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tu_lq 的回复:]
最小二乘没法“凸”没法极值
引用 3 楼 davidfracs 的回复:

这种情况用最小二乘要比插值好吧
[/Quote]

用最小二乘算出来一条二次曲线,有了这条曲线不就可以求极值了么?
toplinq 2010-08-27
  • 打赏
  • 举报
回复
最小二乘没法“凸”没法极值
[Quote=引用 3 楼 davidfracs 的回复:]

这种情况用最小二乘要比插值好吧
[/Quote]
DavidFracs 2010-08-27
  • 打赏
  • 举报
回复
这种情况用最小二乘要比插值好吧
toplinq 2010-08-27
  • 打赏
  • 举报
回复
其实就是多项式插值和三次样条插值这两种比较合适,至于你是拉格朗日那么插还是牛顿那么插,都一样,把所有的点都用上即可,程序网上都有现成的。
koutyayh 2010-08-27
  • 打赏
  • 举报
回复
插值的办法很多:
lagrange插值、newton插值、hermite插值、三次样条插值……自己选择比较吧,详细的可以看数值方法类的书

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧