声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3726|回复: 15

[综合讨论] 对一组数据在对数坐标下描点和积分的问题

[复制链接]
发表于 2007-10-6 17:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我有这样一组数据
          x            y
10.021
1.080.042
1.60.09
20.03
2.10.24
2.60.3
3.70.105
4.20.04
50.08
60.021
70.011
90.006
100.005
120.013
130.012
150.02
200.008
220.005
300.007
400.009
500.006
600.0045
700.004
800.004
900.003
1000.003

我想把这组数据在对数坐标下描出点以后用一条光滑的曲线连接各点
然后求这个曲线的积分

有谁可以帮我解决吗
谢谢了

[ 本帖最后由 eight 于 2007-10-6 17:47 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-10-6 17:49 | 显示全部楼层
loglog(x,y)
1.JPG

评分

1

查看全部评分

发表于 2007-10-6 17:54 | 显示全部楼层
积分的话 论坛上有很多帖子的 你搜索一下

在matlab里
doc int
doc inline
发表于 2007-10-6 17:54 | 显示全部楼层
原帖由 angela214 于 2007-10-6 17:39 发表
我有这样一组数据
          x            y10.0211.080.0421.60.0920.032.10.242.60.33.70.1054.20.0450.0860.02170.01190.006100.005120.013130.012150.02200.008220.005300.007400.009500.006600.0045700.0 ...


建议搜索一下版面,对数坐标的问题有很多讨论。至于积分问题,按照离散点的积分定义,个人认为是求曲线与x轴围成的面积,对此,请 help polyarea 看看相关帮助,然后注意横纵坐标的单位问题。当然,也可以搜索一下版面看看求积分的帖子,看有否收获

评分

1

查看全部评分

发表于 2007-10-6 17:56 | 显示全部楼层
原帖由 appleseed05 于 2007-10-6 17:54 发表
积分的话 论坛上有很多帖子的 你搜索一下

在matlab里
doc int
doc inline


这两个函数都需要表达式吧?如果只有离散数据,没有表达式,是否管用?
发表于 2007-10-6 18:29 | 显示全部楼层
离散的话应该不管用吧

对离散的数据还是应该像eight你说的求面积算
发表于 2007-10-6 18:53 | 显示全部楼层
我对离散数据做过测试,按照数值积分的定义做不过没有系统自带的积分函数精度好。另外数值积分似乎也需要表达式,没有表达式并且如果要求精度不高可以自己按照定义做。polyarea这个函数还是第一看到,以前没有用过,感谢分享:victory:

[ 本帖最后由 花如月 于 2007-10-6 18:54 编辑 ]
 楼主| 发表于 2007-10-8 16:57 | 显示全部楼层

polyarea是实现什么功能的命令

如题
我有一个这样的曲线
未命名.jpg


我想求它曲线以及和X轴Y轴相交部分的面积
我该用什么命令
是不是polyarea(x,y)??
发表于 2007-10-8 17:28 | 显示全部楼层
如果图是根据离散的数据点绘制的,那么polyarea应该可以计算的。自己先看一下帮助文档吧
发表于 2007-10-8 19:56 | 显示全部楼层
原帖由 angela214 于 2007-10-8 16:57 发表
我想求它曲线以及和X轴Y轴相交部分的面积
我该用什么命令
是不是polyarea(x,y)??


自己摸索一下就可以了,不要遇到问题就只懂得提问,这样太依赖别人了,而且自己动手的话能够学到更多东西。这个问题其实简单 doc polyarea 就知道如何做了,下面是例子:

  1. x = [0         0    0.1    0.15    0.2    0.28    0.3    0.4];
  2. y  = [0    0.5313    0.9063    0.9931    1 1 1 1];
  3. X = [x, x(end), x(1)];
  4. Y = [y, 0, 0];
  5. d = polyarea(X,Y)
复制代码
 楼主| 发表于 2007-10-9 09:08 | 显示全部楼层
我摸索过很多遍了
就是因为结果和实际的不符才来问的
我把后面的点坐标改小后面积反而更大
所以我来问下这个命令是不是求曲线以及XY轴之间的面积
如果是
那么我把纵坐标改小以后面积应该变小才对
发表于 2007-10-9 09:33 | 显示全部楼层
原帖由 angela214 于 2007-10-9 09:08 发表
我摸索过很多遍了
就是因为结果和实际的不符才来问的
我把后面的点坐标改小后面积反而更大
所以我来问下这个命令是不是求曲线以及XY轴之间的面积
如果是
那么我把纵坐标改小以后面积应该变小才对


这个命令是求多边形的面积,只要是封闭的多边形,都可以求。由于在实际描点中,我们只能得到有限的离散数据,因此,在“求由这些离散数据组成的曲线的积分”时,由于等价于求曲线以下部分的面积,因此可以采取“求多边形面积”的方法。

结合上述的文字、 doc polyarea 后的图形,还有我给出的代码例子一起来理解吧

[ 本帖最后由 eight 于 2007-10-9 09:37 编辑 ]
 楼主| 发表于 2007-10-9 09:42 | 显示全部楼层
我想问下代码例子中的
X = [x, x(end), x(1)];
Y = [y, 0, 0];
是什么意思
是限制求面积得区间吗
但是x(1)和Y中得最后一个0是什么意思呢
发表于 2007-10-9 09:52 | 显示全部楼层
是限制求面积得区间吗

是,多边形当然是封闭的,不然如何求面积

但是x(1)和Y中得最后一个0是什么意思呢

起点与终点重合才能做成“封闭”,我上面写得不够准确(因为我的数据x、y刚好从(x(1),0)开始),比较恰当的写法是:

  1. X = [x, x(end), x(1), x(1)];
  2. Y = [y, 0, 0, y(1)];
复制代码
(x(end), 0)、(x(1), 0)是 x 轴上的点,添加这两个点是求曲线以下面积所必需的,最后那个点(x(1), y(1))是曲线起点,你画图理解一下吧

[ 本帖最后由 eight 于 2007-10-9 09:55 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-10-9 10:18 | 显示全部楼层
终于明白了
谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 20:41 , Processed in 0.075882 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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