如何计算两条曲线的相似性?

matrix2009 2008-04-07 02:27:01
如何计算两条曲线的相似性?
我用1000多个点生成一个曲线,这些点的纵坐标是横坐标的概率分布,所以曲线位于X和Y轴的正半轴的区域。
当我用另外1000多个点生成曲线时,如何计算这两条曲线的相似性?
这两组数据的X坐标不一定一致。就是一组有0.05这个X坐标,但另一组不一定有。
大家看看怎么计算
要考虑时效性
...全文
6928 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
matrix2009 2008-04-11
  • 打赏
  • 举报
回复
我知道怎么做了
采用曲线拟合的办法,计算出两条曲线的方程,
然后就可以计算曲线相似性了
matrix2009 2008-04-11
  • 打赏
  • 举报
回复
也许我没说明白,
再说一遍吧,
这些数据是离散的数据,比如说第一组数据里,0.05这个距离值的概率是0.089,
但是第二组数据里没有0.05这个距离,有0.06这个距离,它的概率是0.012。
N为1的明科夫距离公式是要计算对应的距离的概率,现在第二组数据没有0.05距离及概率,总不能不管不顾直接相减把,这就太不严谨了。
所以我有点犯难。
我再看看书把。
我本来想这里高手如云,能给我个简单快速的办法,早点把课题做完好出去实习。
我再去看看把
matrix2009 2008-04-11
  • 打赏
  • 举报
回复
呵呵 楼上说的是
我当然知道明科夫斯基公式的意思
呵呵
我是说我编程的基础不行
没说我数学的基础不行啊
也许有点懒吧,
楼上教训的是
我看书去也
wflishh 2008-04-11
  • 打赏
  • 举报
回复
首先,你得把算法给出来。就是计算的过程或者计算方法,才可能写出程序。
Yofoo 2008-04-11
  • 打赏
  • 举报
回复
随机n个x点两个曲线做插值, 计算方差
HUNTON 2008-04-11
  • 打赏
  • 举报
回复
不知道统计学的计算相关系数的方法是否可用。
arong1234 2008-04-10
  • 打赏
  • 举报
回复
无论出于啥理由,你都应该取查明白明可夫斯基公式是啥意思。做论文还不弄明白这个,你不是瞎混吗?

这种公式应该是集合论或者空间论中得吧?定义在空间上得距离公式?到图书馆取找书,不然你怎么答辩啊

[Quote=引用 10 楼 matrix2009 的回复:]
我现在通过编程,已经把数据计算出来了,就是若干个距离值和距离值在总长度中的百分比,并利用这些数据将这些数据在一个对话框窗口中画出来了,一个曲线图。
因为距离值不是一一对应,所以我不太清楚该怎么计算。
[/Quote]
rover___ 2008-04-10
  • 打赏
  • 举报
回复
频域分析,做FFT后看频谱,低频部分决定相似性。
wangdong_monkey 2008-04-10
  • 打赏
  • 举报
回复
把横坐标归并到一起!
然后用欧氏距离!
matrix2009 2008-04-10
  • 打赏
  • 举报
回复
我现在通过编程,已经把数据计算出来了,就是若干个距离值和距离值在总长度中的百分比,并利用这些数据将这些数据在一个对话框窗口中画出来了,一个曲线图。
因为距离值不是一一对应,所以我不太清楚该怎么计算。
smaltdd 2008-04-08
  • 打赏
  • 举报
回复
先用数学方式搞明白原理,建立好数学模型!

有了清晰的数学模型,编程就是水到渠成了
Mr-Chen 2008-04-08
  • 打赏
  • 举报
回复
Minkowski 公式,好像是以两变量绝对差值p次幂之和的p次根来判断其相似性

算法类似与4楼所说
matrix2009 2008-04-08
  • 打赏
  • 举报
回复
我是跨专业过来的,有些东西即使知道在数学上怎么做,但是编程实现还是有点问题。
两条曲线是概率分布曲线,计算这两条曲线的相似度。
论文上说是采用Minkowski距离公式。采用N=1的情况。
我的程序是基于对话框的VC++6.0程序,在一个对话框里生成一个概率分布曲线。
我想知道怎么编程实现?
这是我的研究课题的一部分,这是最后一步了。做完就OK了。
因为这里不能用公式编辑器,有兴趣的可以QQ联系。 我的QQ:14425846
scq2099yt 2008-04-08
  • 打赏
  • 举报
回复
数学上的问题,把你的相似性翻译成代码就可以了
arong1234 2008-04-07
  • 打赏
  • 举报
回复
这可不是随便瞎想一下就可以的。论文需要是很严谨的
[Quote=引用 2 楼 norsd 的回复:]
俺来给点思路.

从简单到复杂.

假设对象是两条直线, 那么是否相似只需要计算这两条直线的斜率是否在可接受的范围, 比如差值为+-5;

现在扩展到两条曲线, 在效率和精确中协调出一个值, 用这个值来作为切割曲线的段数, 比如切成100条直线( 怎么切是有难度的 ,需要分析曲线的性质, 如果一般化就只需要随机切), 然后比对这100条直线的斜率.
[/Quote]
arong1234 2008-04-07
  • 打赏
  • 举报
回复
这种东西别问程序员,应该找数学书,相似在数学上有精确定义的,程序员一般不解除这个

我理解的相似性,就是两者差的均方差比较小,但是也不确定
minkovwski公式大概是多维空间的距离相类似的概念,这些应该在论文系统中查询到(如果是学生,教育网资源应该有这方面比较多的东西)不是什么都在公共网上有的

简单的计算
一个1000点序列可以记做x={xi} i =0,1,...,999
那么两点之间的距离可以定义为|x-y|= sqrt(sum((xi-yi)^2)

我估计和这个近似吧,但是具体定义去查资料吧


[Quote=引用 3 楼 matrix2009 的回复:]
论文上说是用Minkowski 公式计算,但是我不知道怎么算
[/Quote]
matrix2009 2008-04-07
  • 打赏
  • 举报
回复
论文上说是用Minkowski 公式计算,但是我不知道怎么算
norsd 2008-04-07
  • 打赏
  • 举报
回复 1
俺来给点思路.

从简单到复杂.

假设对象是两条直线, 那么是否相似只需要计算这两条直线的斜率是否在可接受的范围, 比如差值为+-5;

现在扩展到两条曲线, 在效率和精确中协调出一个值, 用这个值来作为切割曲线的段数, 比如切成100条直线( 怎么切是有难度的 ,需要分析曲线的性质, 如果一般化就只需要随机切), 然后比对这100条直线的斜率.

九桔猫 2008-04-07
  • 打赏
  • 举报
回复
首先要看楼主的相似性是如何定义的。

19,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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