查看: 1863|回复: 6|关注: 0

[已答复] 数值法求曲率半径

[复制链接]

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
发表于 2017-5-28 23:35:49 | 显示全部楼层 |阅读模式
找到一个对应的x,y数组,画出函数图像,并且求出每点的曲率半径,为了验证算法,以圆的曲率半径为例,但是在计算过程中出现了问题












plot(t(1:end-2),r);subplot(3,1,3);plot(t(1:end-1),y_1);subplot(3,1,2);axis equalplot(x,y);subplot(3,1,1);r=abs((1+y_1(1:end-1).^2).^1.5./y_2);y_2=diff(y_1)./diff(x(1:end-1));y_1=diff(y)./diff(x);y=sin(t);x=cos(t);t=0:0.01:2*pi;
请指教
file:///C:/Users/Indiana%20Johns/AppData/Roaming/Tencent/Users/781768633/QQ/WinTemp/RichOle/~M4BQZ2$Y_OJZ]S7TK$0%7D_J.png

这是画出来的结果

这是画出来的结果

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2017-5-28 23:36:29 | 显示全部楼层
  1. t=0:0.01:2*pi;
  2. x=cos(t);
  3. y=sin(t);
  4. y_1=diff(y)./diff(x);
  5. y_2=diff(y_1)./diff(x(1:end-1));
  6. r=abs((1+y_1(1:end-1).^2).^1.5./y_2);
  7. subplot(3,1,1);
  8. plot(x,y);
  9. axis equal
  10. subplot(3,1,2);
  11. plot(t(1:end-1),y_1);
  12. subplot(3,1,3);
  13. plot(t(1:end-2),r);
复制代码

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2017-5-28 23:36:46 | 显示全部楼层

论坛优秀回答者

中级

850 麦片

财富积分


5001500


53

主题

1712

帖子

153

最佳答案
  • 关注者: 41
发表于 2017-5-29 00:02:09 | 显示全部楼层
出错的是哪里?图像的间断点吗?这个是分母是一个接近0的原因造成的

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2017-5-29 08:19:22 | 显示全部楼层
倔强的笨蛋 发表于 2017-5-29 00:02
出错的是哪里?图像的间断点吗?这个是分母是一个接近0的原因造成的

是的,那应该怎样解决呢,请指教

论坛优秀回答者

中级

850 麦片

财富积分


5001500


53

主题

1712

帖子

153

最佳答案
  • 关注者: 41
发表于 2017-5-29 09:40:23 | 显示全部楼层
neujing 发表于 2017-5-29 08:19
是的,那应该怎样解决呢,请指教

如果你不想要要那点,可以把那个间断去掉

新手

5 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
发表于 2019-6-13 00:22:37 | 显示全部楼层
倔强的笨蛋 发表于 2017-5-29 09:40
如果你不想要要那点,可以把那个间断去掉

怎么去掉呢 能发一下代码吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

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