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

matlab如何对输入的试验数据二维曲线数值积分

[复制链接]
发表于 2015-3-22 18:38:54 | 显示全部楼层 |阅读模式 来自 广东中山
本帖最后由 hotpuma 于 2015-3-26 21:44 编辑


time =[
457


529
537
545
553
561
569
577
585
593

657
665
673
681
689
697
705
713
721
729
737
745
753
761
769
777
785
793
801
809
817

881
889
897
905
913
921
];vel=[
135.4598
133.2623
133.4086
134.7852
134.6397
134.1996
133.3202
136.8153

150.8063
153.2973
155.3696
159.2517
166.6253
170.8871
179.3311
188.3931

306.3686
307.9512
310.4104
312.5943
314.5199
]
发表于 2015-3-22 20:17:42 | 显示全部楼层 来自 北美地区
Simdroid开发平台
可以用 trapz 求散点积分,它本质上相当于在各相邻点之间线性内插后积分
除了线性内插,还可以用样条内插(spline)后用 integral 函数积分
回复 不支持

使用道具 举报

 楼主| 发表于 2015-3-23 06:19:02 | 显示全部楼层 来自 广东中山
谢谢!trapz(time,vel)可以算出总的面积,求占总面积35%的点对应的坐标,这个怎么弄:)
回复 不支持

使用道具 举报

发表于 2015-3-23 10:12:21 | 显示全部楼层 来自 北美地区
本帖最后由 winner245 于 2015-3-23 10:15 编辑
hotpuma 发表于 2015-3-23 06:19
谢谢!trapz(time,vel)可以算出总的面积,求占总面积35%的点对应的坐标,这个怎么弄 ...

如果是从你现有的散点里找出占总面积35%点的坐标,可以用:
s = cumtrapz(time,vel);
[~,id] = min(abs(0.35*s(end)-s));
coordinate = [time(id),s(id)]
s(id)/s(end)

如果在散点线性内插的基础上,可以在散点之间找寻更接近的点,那可以用:
x = fzero(@(x)integral(@(x) interp1(time,vel,x),time(1),x)/s(end)-0.35,time(id))

如果不限制线性内插,想快速估计一下,可以用:
interp1(s/s(end),time,0.35)

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2015-3-23 19:45:46 | 显示全部楼层 来自 广东中山
多谢,我研究一下
回复 不支持

使用道具 举报

 楼主| 发表于 2015-3-24 18:56:01 | 显示全部楼层 来自 广东中山
>> y = fzero(@(y)integral(@(y) interp1(vel,time,y),vel(1),y)/s(end)-0.35,vel(id))

y =

  196.4029

>> interp1(s/s(end),vel,0.35)

ans =

  243.5141
值不一样,一y的等式错在哪里.
回复 不支持

使用道具 举报

发表于 2015-3-24 20:39:09 | 显示全部楼层 来自 加拿大
hotpuma 发表于 2015-3-24 18:56
>> y = fzero(@(y)integral(@(y) interp1(vel,time,y),vel(1),y)/s(end)-0.35,vel(id))

y =

你求的是反函数占35%的面积
回复 不支持

使用道具 举报

 楼主| 发表于 2015-3-24 21:39:09 | 显示全部楼层 来自 广东中山
本帖最后由 hotpuma 于 2015-3-24 21:40 编辑

哦,不好意思!要怎么写出和下面这个值一样的y等式(类似“x = fzero(@(x)integral(@(x) interp1(time,vel,x),time(1),x)/s(end)-0.35,time(id))”)呢

>>interp1(s/s(end),vel,0.35)

ans = 243.5141
回复 不支持

使用道具 举报

发表于 2015-3-24 23:01:23 | 显示全部楼层 来自 加拿大
hotpuma 发表于 2015-3-24 21:39
哦,不好意思!要怎么写出和下面这个值一样的y等式(类似“x = fzero(@(x)integral(@(x) interp1(time,vel, ...

4L 已经解释得很清楚了,两种内插方式一个是针对原始散点曲线,一个是针对面积曲线,二者的结果不会完全相等
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-9-30 09:32 , Processed in 0.034838 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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