计算化学公社

 找回密码 Forget password
 注册 Register
Views: 7411|回复 Reply: 7
打印 Print 上一主题 Last thread 下一主题 Next thread

[数值算法] 怎么求解两条曲线的差值?

[复制链接 Copy URL]

257

帖子

4

威望

4967

eV
积分
5304

Level 6 (一方通行)

本帖最后由 wxhwbh 于 2020-6-3 17:40 编辑

自己有一些计算数据,和标准的数据对照。画出图来就是两条XY曲线。我想比较两条曲线的差异,想到把两条曲线做差,于是动手写程序。但发现两组数据的自变量并不同(也就是两条曲线的X 不是一一对应的,甚至数据点数目或者范围都不一定一样),这样直接做差是没有意义的。虽说origin可以做出两条曲线的差,但由于我有大量的数据,觉得自己写程序处理比较方便。网上查了一下基本都是说做非线性拟合,但不同的数据曲线形状完全不同,感觉拟合的效果可能不是很好。所以想问问如何处理这种自变量不统一的两条曲线做差问题?或者有什么库可以解决的吗?
贫困U 退学与疯子工程学院

164

帖子

0

威望

1939

eV
积分
2103

Level 5 (御坂)

2#
发表于 Post on 2020-6-3 17:07:45 | 只看该作者 Only view this author
本帖最后由 thanhtam 于 2020-6-3 17:16 编辑

标题“插值”应该是打错了。

但是巧合的是,这个问题可以用插值来解决。例如本来两条曲线的x值为
x1: 10,20,40,50.
x2:10,30,45,50.
通过插值,把x1,x2都变成10,15,20,...,40,45,50
原理就是在原来的数据点之间插入新的数据点。这样当然会产生误差,但是对于不适合拟合的情况,比拟合好一点。

具体怎么做取决于你用的工具,搜索interpolation即可。



评分 Rate

参与人数
Participants 2
eV +10 收起 理由
Reason
hebrewsnabla + 5
wxhwbh + 5 谢谢

查看全部评分 View all ratings

257

帖子

4

威望

4967

eV
积分
5304

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2020-6-3 17:42:09 | 只看该作者 Only view this author
thanhtam 发表于 2020-6-3 17:07
标题“插值”应该是打错了。

但是巧合的是,这个问题可以用插值来解决。例如本来两条曲线的x值为

谢谢你,请问你了解有什么插值的库好用吗?最好是fortran的,或者python的。
贫困U 退学与疯子工程学院

164

帖子

0

威望

1939

eV
积分
2103

Level 5 (御坂)

4#
发表于 Post on 2020-6-3 17:53:56 | 只看该作者 Only view this author
wxhwbh 发表于 2020-6-3 17:42
谢谢你,请问你了解有什么插值的库好用吗?最好是fortran的,或者python的。

python的scipy

5万

帖子

99

威望

5万

eV
积分
112353

管理员

公社社长

5#
发表于 Post on 2020-6-3 20:22:19 | 只看该作者 Only view this author
用B-spline插值。彭国伦的Fortran95的书靠后部分就有介绍,也给了现成代码。还有好多现成的B-spline库
https://github.com/Takayuki-Miyagi/NdSpline
https://github.com/pyccel/splf2003
https://github.com/jacobwilliams/bspline-fortran

评分 Rate

参与人数
Participants 2
eV +8 收起 理由
Reason
hebrewsnabla + 5
wxhwbh + 3 谢谢

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

35

帖子

0

威望

560

eV
积分
595

Level 4 (黑子)

6#
发表于 Post on 2020-6-4 02:00:26 | 只看该作者 Only view this author
origin 做图可以解决的吧

3621

帖子

3

威望

1万

eV
积分
18427

Level 6 (一方通行)

第一原理惨品小作坊

7#
发表于 Post on 2020-6-4 02:23:32 | 只看该作者 Only view this author
可能是先插值,让两条线上的点对应且数量相同。然后曲线的相似性我觉得可以用Fréchet distance之类的方式来衡量。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
wxhwbh + 2 谢谢

查看全部评分 View all ratings

日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。
本周忙

120

帖子

0

威望

2560

eV
积分
2680

Level 5 (御坂)

8#
发表于 Post on 2020-6-4 09:41:13 | 只看该作者 Only view this author
插值后,我还建议可以使用内积来度量两个曲线的平局差异。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
wxhwbh + 2 谢谢

查看全部评分 View all ratings

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 21:02 , Processed in 1.246443 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list