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

离散点组成的曲线的求导?

[复制链接]
发表于 2009-3-5 01:50:31 | 显示全部楼层 |阅读模式 来自 美国
曲线不是很光滑那种(附件),我用gradient求一阶两阶导,结果都不知道对不对。
dataq=xlsread('flow','A2:B89');
  qto=dataq(:,1); qo=dataq(:,2);

  for i=1:800
    qt(i)=(i-1)*0.765/n;
    q(i)=interp1(qto,qo,qt(i),'linear');
  end
  dq=gradient(q,qt);
  dq2=gradient(dq,qt);
  
  figure(4)
  plot(qto,qo,'o',qt,q,'+',qt,dq,'-',qt,dq2,'--')

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2009-3-5 09:07:38 | 显示全部楼层 来自 北京
Simdroid开发平台
gradient是用来求梯度、方向导数的
不是用来求一阶导数的函数
应该考虑其他方法
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-5 11:22:49 | 显示全部楼层 来自 美国
请问什么函数比较好?谢先。
回复 不支持

使用道具 举报

发表于 2009-3-5 13:23:43 | 显示全部楼层 来自 浙江杭州
没有现成的函数,要编程,根据导数的定义,不是很难
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-5 13:53:10 | 显示全部楼层 来自 美国
不是很明白,现在只知道离散点 f(xi), 那怎么表达导数?
回复 不支持

使用道具 举报

发表于 2009-3-5 14:52:16 | 显示全部楼层 来自 浙江杭州
y=f(x),则x(i)点处的导数为(y(i+1)-y(i-1))/(x(i+1)-x(i-1))
回复 不支持

使用道具 举报

发表于 2009-3-5 17:00:23 | 显示全部楼层 来自 北京
请问什么函数比较好?谢先。
mapi 发表于 2009-3-5 11:22

diff 函数
与6楼是一样的方法
缺点是少点
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-6 09:11:25 | 显示全部楼层 来自 美国
y=f(x),则x(i)点处的导数为(y(i+1)-y(i-1))/(x(i+1)-x(i-1))
messenger 发表于 2009-3-5 14:52


如果这样,那就可以用gradient.
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-6 09:12:33 | 显示全部楼层 来自 美国
diff 函数
与6楼是一样的方法
缺点是少点
ljelly 发表于 2009-3-5 17:00


diff没有gradient精确
回复 不支持

使用道具 举报

发表于 2009-3-6 12:53:58 | 显示全部楼层 来自 新疆乌鲁木齐
gradient算出的不是真正的梯度,因为没有考虑坐标的问题.等间距网格下实际梯度值应为:
  1. fx=fx/Δx;
  2. fy=fy/Δy
复制代码
但是在网格间距比较大时误差很大.另外也可以采用样条先拟合再求导.
印象中这个问题早就讨论过了.
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-6 13:25:17 | 显示全部楼层 来自 美国
我的数据点不到100个(假设为准确的值),我是先插值,得到更多点(比如1500)。然后用gradient来求:gradient(y,x) =(y(i+1)-y(i-1))/(x(i+1)-x(i-1)), 如6楼所说的表达式。只是在最后一个和最前一个点采用向后和向前差分。
当然要是数据不是准确的,那就先拟合,如10楼所说。
回复 不支持

使用道具 举报

发表于 2010-10-18 18:51:28 | 显示全部楼层 来自 香港
我刚好有朋友遇到这个问题,翻出这个帖子,学习先。
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-6 17:21 , Processed in 0.043173 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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